From 231cfc31cf5fa38db0b4354d9d0b37eed224ad30 Mon Sep 17 00:00:00 2001 From: Cell <1024@lruihao.cn> Date: Tue, 15 Feb 2022 22:42:14 +0800 Subject: [PATCH] :wrench: Chore: replace theme logo icon --- assets/css/_core/_base.scss | 8 -------- assets/css/_partial/_footer.scss | 4 ++++ assets/css/_partial/_icon.scss | 9 +++++++++ assets/css/_partial/_single/_cardlink.scss | 9 +++------ assets/css/_variables.scss | 3 --- assets/js/theme.min.js | 2 +- assets/js/theme.min.js.map | 2 +- exampleSite/config.toml | 12 ++++++------ exampleSite/content/about/index.en.md | 2 +- exampleSite/content/about/index.zh-cn.md | 2 +- layouts/partials/footer.html | 2 +- src/js/theme.js | 2 +- static/svg/fixit.svg | 1 + 13 files changed, 29 insertions(+), 29 deletions(-) create mode 100644 static/svg/fixit.svg diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss index 3948a59a..fe32cb82 100644 --- a/assets/css/_core/_base.scss +++ b/assets/css/_core/_base.scss @@ -59,12 +59,4 @@ body { img { @include object-fit(contain); -} - -i.logo-icon{ - width: 2em; - - .fa-ban { - color: $global-logo-icon-color; - } } \ No newline at end of file diff --git a/assets/css/_partial/_footer.scss b/assets/css/_partial/_footer.scss index b9274bcc..2b08e066 100644 --- a/assets/css/_partial/_footer.scss +++ b/assets/css/_partial/_footer.scss @@ -17,6 +17,10 @@ footer { margin-right: .25rem; } + .fixit-icon { + top: .25em; + } + .animate-icon { color: #dc143c; animation: icon-animate 1.33s ease-in-out infinite; diff --git a/assets/css/_partial/_icon.scss b/assets/css/_partial/_icon.scss index f42d2e61..8e3ebc05 100644 --- a/assets/css/_partial/_icon.scss +++ b/assets/css/_partial/_icon.scss @@ -15,3 +15,12 @@ img.emoji { margin: 0 .05em 0 .1em; vertical-align: -.1em; } + +.fixit-icon{ + display: inline-block; + height: 1.5em; + width: 1.5em; + line-height: 1.5em; + position: relative; + vertical-align: text-bottom; +} diff --git a/assets/css/_partial/_single/_cardlink.scss b/assets/css/_partial/_single/_cardlink.scss index 87ed71e2..c282b644 100644 --- a/assets/css/_partial/_single/_cardlink.scss +++ b/assets/css/_partial/_single/_cardlink.scss @@ -23,9 +23,10 @@ bottom: .75rem; left: 0; right: 0; - background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjQyNjg5OTA1MDE0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ0NzYiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTExMi40IDExOS42djUzNGg4MDRWMTE5LjZoLTgwNHogbTU3My4yIDQzOC44Yy05My4yIDkzLjItMjQ0LjQgOTMuMi0zMzggMC05My4yLTkzLjItOTMuMi0yNDQuNCAwLTMzOCA5My4yLTkzLjIgMjQ0LjQtOTMuMiAzMzcuNiAwIDkzLjYgOTMuMiA5My42IDI0NC40IDAuNCAzMzh6IiBmaWxsPSIjRkZENTUyIiBwLWlkPSI0NDc3Ij48L3BhdGg+PHBhdGggZD0iTTk0NC44IDg0MC40SDc5LjJDMzYuNCA4NDAuNCAxLjYgODA1LjYgMS42IDc2Mi44Vjc3LjZDMS42IDM0LjggMzYuNCAwIDc5LjIgMGg4NjZjNDIuNCAwIDc3LjIgMzQuNCA3Ny4yIDc3LjJ2Njg2YzAgNDIuNC0zNC44IDc3LjItNzcuNiA3Ny4yek03OS4yIDE0LjRDNDQuNCAxNC40IDE2IDQyLjggMTYgNzcuNnY2ODUuNmMwIDM0LjggMjguNCA2My4yIDYzLjIgNjMuMmg4NjUuNmMzNC44IDAgNjMuMi0yOC40IDYzLjItNjMuMlY3Ny4yYzAtMzQuNC0yOC02Mi44LTYyLjgtNjIuOEg3OS4yeiBtODY4LjQgNjcwLjRIODEuMlY4OC40aDg2Ni40djU5Ni40eiBtLTg1Mi0xNC40aDgzNy42VjEwMi44SDk1LjZ2NTY3LjZ6IiBmaWxsPSIjNEE1NTVGIiBwLWlkPSI0NDc4Ij48L3BhdGg+PHBhdGggZD0iTTc5LjIgMzEuMkM1My42IDMxLjIgMzIuOCA1MiAzMi44IDc3LjZ2Njg1LjZjMCAyNS42IDIwLjggNDYuNCA0Ni40IDQ2LjRoODY1LjZjMjUuNiAwIDQ2LjQtMjAuOCA0Ni40LTQ2LjRWNzEuNmMwLTIyLjQtMTgtNDAuNC00MC40LTQwLjRINzkuMnogbTg4NS4yIDY3MC40aC05MDBWNzEuNmg5MDB2NjMweiIgZmlsbD0iI0UwRTBFMCIgcC1pZD0iNDQ3OSI+PC9wYXRoPjxwYXRoIGQ9Ik02NzYuOCA5NjEuMmgtMzIwbDU2LjQtMTM1LjJoMjA3LjZsNTYgMTM1LjJ6IG0tMjk4LjQtMTQuNGgyNzYuOGwtNDQuNC0xMDYuNGgtMTg4LjRsLTQ0IDEwNi40eiIgZmlsbD0iIzRBNTU1RiIgcC1pZD0iNDQ4MCI+PC9wYXRoPjxwYXRoIGQ9Ik00MDMuNiA5MzBsMzAuNC03Mi44SDYwMGwzMCA3Mi44eiIgZmlsbD0iI0UwRTBFMCIgcC1pZD0iNDQ4MSI+PC9wYXRoPjxwYXRoIGQ9Ik04MDcuMiAxMDI0SDIyNi44di03Ny4yaDU4MC40VjEwMjR6IG0tNTY2LTE0LjRoNTUxLjZ2LTQ4LjRIMjQxLjJ2NDguNHoiIGZpbGw9IiM0QTU1NUYiIHAtaWQ9IjQ0ODIiPjwvcGF0aD48cGF0aCBkPSJNMjU4IDk3OEg3NzZ2MTQuOEgyNTh6IiBmaWxsPSIjRTBFMEUwIiBwLWlkPSI0NDgzIj48L3BhdGg+PHBhdGggZD0iTTM1LjIgMTAwOS42aDk2Mi44djE0LjRIMzUuMnoiIGZpbGw9IiM0QTU1NUYiIHAtaWQ9IjQ0ODQiPjwvcGF0aD48cGF0aCBkPSJNNTE3LjYgNzU2LjRtLTM4IDBhMzggMzggMCAxIDAgNzYgMCAzOCAzOCAwIDEgMC03NiAwWiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNDQ4NSI+PC9wYXRoPjxwYXRoIGQ9Ik01MTcuNiA4MDEuNmMtMjQuOCAwLTQ1LjItMjAuNC00NS4yLTQ1LjIgMC0yNC44IDIwLjQtNDUuMiA0NS4yLTQ1LjIgMjQuOCAwIDQ1LjIgMjAuNCA0NS4yIDQ1LjIgMCAyNC44LTIwLjQgNDUuMi00NS4yIDQ1LjJ6IG0wLTc2Yy0xNi44IDAtMzAuOCAxMy42LTMwLjggMzAuOHMxMy42IDMwLjggMzAuOCAzMC44IDMwLjgtMTMuNiAzMC44LTMwLjgtMTQtMzAuOC0zMC44LTMwLjh6IiBmaWxsPSIjNEE1NTVGIiBwLWlkPSI0NDg2Ij48L3BhdGg+PHBhdGggZD0iTTU4NCA0MjcuMmwtNDkuNi00OS42TDU3MiAzNDBsNC44IDYuOGMxNC40IDIwIDE4IDQ1LjYgMTAuNCA2OS4ybC0zLjIgMTEuMnogbS0yOS4yLTQ5LjJsMjEuNiAyMS42YzEuNi0xMi40LTAuOC0yNS42LTYuOC0zNi44bC0xNC44IDE1LjJ6TTQ5MS42IDQ5MmMtMTYuNCAwLTMxLjYtNC44LTQ0LjgtMTQuNGwtNi44LTQuOCA2OC44LTY4LjggNTEuNiA1MS42LTE0IDE0Yy0xNC44IDE0LjQtMzQuNCAyMi40LTU0LjggMjIuNHogbS0yOS4yLTIxLjZjOC44IDQuOCAxOC44IDcuMiAyOS4yIDcuMiAxNi44IDAgMzIuNC02LjQgNDQuNC0xOC40bDQtNC0zMS4yLTMxLjItNDYuNCA0Ni40ek01MjggMzcxLjZsLTQ5LjYtNDkuNiAxMS4yLTMuNmM3LjYtMi40IDE2LTQgMjQtNCAxNi40IDAgMzIgNS4yIDQ0LjggMTQuNGw2LjggNC44LTM3LjIgMzh6IG0tMjEuNi00MmwyMS42IDIxLjYgMTQuOC0xNC44Yy04LjgtNC44LTE4LjgtNy4yLTI5LjItNy4yLTIgMC00LjggMC03LjIgMC40ek00MzMuNiA0NjYuNGwtNC44LTYuOGMtMjItMzAuOC0xOC40LTcyLjggOC40LTk5LjZsMTQtMTQgNTEuNiA1MS42LTY5LjIgNjguOHogbTE3LjItMTAwLjRsLTQgNGMtMjAgMjAtMjQgNDkuNi0xMS4yIDczLjZsNDYuNC00Ni40LTMxLjItMzEuMnpNNTk2LjQgMzQ4LjRjLTcuMiAwLTEzLjYtMi44LTE4LjgtNy42bC0xMi40LTEyLjRhMjYuNTYgMjYuNTYgMCAwIDEgMC0zNy42YzQuOC00LjggMTEuNi03LjYgMTguOC03LjYgNy4yIDAgMTMuNiAyLjggMTguOCA3LjZsMTIuNCAxMi40YzQuOCA0LjggNy42IDExLjYgNy42IDE4LjggMCA3LjItMi44IDEzLjYtNy42IDE4LjgtNS4yIDUuMi0xMS42IDcuNi0xOC44IDcuNnpNNTg0IDI5Ny42Yy0zLjIgMC02LjQgMS4yLTguNCAzLjYtNC44IDQuOC00LjggMTIuNCAwIDE3LjJsMTIuNCAxMi40YzQuNCA0LjQgMTIuNCA0LjQgMTcuMiAwIDIuNC0yLjQgMy42LTUuMiAzLjYtOC40cy0xLjItNi40LTMuNi04LjRsLTEyLjQtMTIuNGMtMi40LTIuOC01LjYtNC04LjgtNHoiIGZpbGw9IiM0QTU1NUYiIHAtaWQ9IjQ0ODciPjwvcGF0aD48cGF0aCBkPSJNNTk4LjggMjk3LjZsLTEwLTEwYzkuMi05LjIgOS4yLTI0LjQgMC0zMy42bC03LjItNy4yIDEwLTEwIDcuMiA3LjJjMTUuMiAxNC40IDE1LjIgMzguNCAwIDUzLjZ6TTY1OS42IDMyNC40bC03LjItNy4yYy05LjItOS4yLTI0LjQtOS4yLTMzLjYgMGwtMTAtMTBjMTQuOC0xNC44IDM5LjItMTQuOCA1NCAwbDcuMiA3LjItMTAuNCAxMHoiIGZpbGw9IiM0QTU1NUYiIHAtaWQ9IjQ0ODgiPjwvcGF0aD48cGF0aCBkPSJNNTA4LjggMzI3LjJsLTIzLjItMjMuMmMtMTItMTItMTcuNi0yOS4yLTE1LjItNDYuNGwyLjgtMTcuNiAxNC40IDIuNC0yLjggMTcuNmMtMiAxMi40IDIgMjQuOCAxMS4yIDM0bDIzLjIgMjMuMi0xMC40IDEweiIgZmlsbD0iIzRBNTU1RiIgcC1pZD0iNDQ4OSI+PC9wYXRoPjxwYXRoIGQ9Ik02NDAuOCA0MzYuOGMtMTQgMC0yOC01LjYtMzgtMTUuNmwtMjMuMi0yMy4yIDEwLTEwIDIzLjIgMjMuMmM4LjggOC44IDIxLjYgMTIuOCAzNCAxMS4ybDE3LjYtMi44IDIuNCAxNC40LTE3LjYgMi44Yy0yLjgtMC40LTUuNiAwLTguNCAweiIgZmlsbD0iIzRBNTU1RiIgcC1pZD0iNDQ5MCI+PC9wYXRoPjxwYXRoIGQ9Ik0zNDggMjIwLjRjLTkzLjIgOTMuMi05My4yIDI0NC40IDAgMzM3LjYgOTMuMiA5My4yIDI0NC40IDkzLjIgMzM4IDBzOTMuMi0yNDQuNCAwLTMzNy42Yy05My42LTkzLjItMjQ0LjgtOTMuMi0zMzggMHogbTMyMy4yIDI4NGwtMjY5LjItMjY5LjJjNzUuMi01Ni40IDE4Mi40LTUwIDI1MS4yIDE4LjQgNjggNjggNzQgMTc1LjYgMTggMjUwLjh6TTM2NS42IDI3MC40bDI3MCAyNzBjLTc1LjYgNTkuNi0xODUuMiA1NC40LTI1NC44LTE1LjItNjkuNi02OS42LTc0LjgtMTc5LjItMTUuMi0yNTQuOHoiIGZpbGw9IiNGNjhGNkYiIHAtaWQ9IjQ0OTEiPjwvcGF0aD48cGF0aCBkPSJNMzQ4IDIyMC40Yy05My4yIDkzLjItOTMuMiAyNDQuNCAwIDMzNy42IDkzLjIgOTMuMiAyNDQuNCA5My4yIDMzOCAwczkzLjItMjQ0LjQgMC0zMzcuNmMtOTMuNi05My4yLTI0NC44LTkzLjItMzM4IDB6IG0zMjMuMiAyODRsLTI2OS4yLTI2OS4yYzc1LjItNTYuNCAxODIuNC01MCAyNTEuMiAxOC40IDY4IDY4IDc0IDE3NS42IDE4IDI1MC44ek0zNjUuNiAyNzAuNGwyNzAgMjcwYy03NS42IDU5LjYtMTg1LjIgNTQuNC0yNTQuOC0xNS4yLTY5LjYtNjkuNi03NC44LTE3OS4yLTE1LjItMjU0Ljh6IiBmaWxsPSIjRjY4RjZGIiBwLWlkPSI0NDkyIj48L3BhdGg+PHBhdGggZD0iTTUzNS42IDU1My4ybC0xMi44LTYuNCAxMC40LTIxLjJjNC40LTguOCAyLjgtMTkuNi00LjQtMjYuOGwtMTQuOC0xNC44IDEwLTEwIDE0LjggMTQuOGMxMS42IDExLjYgMTQuNCAyOC44IDcuMiA0My42bC0xMC40IDIwLjh6IiBmaWxsPSIjNEE1NTVGIiBwLWlkPSI0NDkzIj48L3BhdGg+PHBhdGggZD0iTTQyMy4yIDM5My4ybC0xNC44LTE0LjhhMjMuMiAyMy4yIDAgMCAwLTI2LjgtNC40bC0yMS4yIDEwLjQtNi40LTEyLjggMjEuMi0xMC40YzE0LjQtNy4yIDMyLTQuNCA0My42IDcuMmwxNC44IDE0LjgtMTAuNCAxMHoiIGZpbGw9IiM0QTU1NUYiIHAtaWQ9IjQ0OTQiPjwvcGF0aD48L3N2Zz4="); + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB2ZXJzaW9uPSIxLjEiPjxkZWZzPjxzdHlsZT4uZml4aXQtYmFue29wYWNpdHk6Ljk7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGQ9Ik0xNTkuMTIgMzM4LjY5bDI0LjgtMTYuNTRhNzguODcgNzguODcgMCAwIDEtNi43Ny0yMi43MmwtMzAuODggNC40MWExNiAxNiAwIDAgMS00LjU0LTMxLjY4bDM0LjI3LTQuOXYtLjc2bDk4Ljk0IDk4Ljk1YTc2Ljg5IDc2Ljg5IDAgMCAxLTcxLjY4LTE3LjczbC0yNi4zOSAxNy41OWMtLjE1LjExLS4zMS4yMS0uNDcuMzFhMTYgMTYgMCAwIDEtMTcuMjgtMjYuOTN6bTIyNC43Mi00OC40MmExNiAxNiAwIDAgMC0xMy41Ny0xOC4xMWwtMzQuMjctNC45VjI0NC45bDM0LjI3LTQuOWExNiAxNiAwIDEgMC00LjU0LTMxLjY4bC0zMC41NCA0LjM2YTc5LjMxIDc5LjMxIDAgMCAwLTYuODUtMjIuODVsMjQuNTQtMTYuMzZhMTYgMTYgMCAxIDAtMTcuMjktMjYuOTNsLS40Ni4zMS0yNiAxNy4zNGE3OS45IDc5LjkgMCAwIDAtMTAyLjY0LTNsMTM5LjgzIDEzOS44OCAxOS40MSAyLjc3YTE2IDE2IDAgMCAwIDE4LjExLTEzLjU3eiIgZmlsbD0iIzAwZDI2YSIgY2xhc3M9ImZpeGl0LWJ1ZyIvPjxwYXRoIGQ9Ik0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0wIDQzMmMtMTAxLjQ2IDAtMTg0LTgyLjU0LTE4NC0xODRhMTgyLjg0IDE4Mi44NCAwIDAgMSAzMy4zOC0xMDUuMzdsMjU2IDI1NkExODIuODYgMTgyLjg2IDAgMCAxIDI1NiA0NDB6bTE1MC42Mi03OC42M2wtMjU2LTI1NkExODIuODQgMTgyLjg0IDAgMCAxIDI1NiA3MmMxMDEuNDYgMCAxODQgODIuNTQgMTg0IDE4NGExODIuODQgMTgyLjg0IDAgMCAxLTMzLjM4IDEwNS4zN3oiIGZpbGw9IiNmZjYzNDciIGNsYXNzPSJmaXhpdC1iYW4iLz48L3N2Zz4="); background-repeat: no-repeat; - filter: blur(.1rem); + filter: blur(.15rem); + opacity: 0.5; background-size: contain; background-position: center; } @@ -83,10 +84,6 @@ } [theme=dark] & { - &backdrop { - background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjQyNjkxOTIyMjk0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE2MzYwIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj48ZGVmcz48c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PC9kZWZzPjxwYXRoIGQ9Ik05NDYuNzA0NTY2IDUyMy41MjE0MDRjLTcuNzU3Njg0LTQuMjI4MzAxLTE3LjU2MDk1OC02LjE5ODE2Ni0zMC44NTI2ODItNi4xOTgxNjZsLTEwMS4xODc1ODcgMEw4MTQuNjY0Mjk4IDM2NC4xMDk3NDJsODUuNTI1ODg1LTg1LjUyNTg4NWM2LjEyMDM5NC02LjEyMDM5NCAxNC4yNTc3MjUtMTUuNzY0MDMyIDE0LjI1NzcyNS0yOC43OTg5MDZzLTguMTM2MzA4LTIyLjY3ODUxMi0xNC4yNTY3MDItMjguNzk3ODgzYy03LjQwNDY0NC03LjQwNTY2Ny0xNS43ODA0MDUtMTQuMjU3NzI1LTI2LjgzMjExMi0xNC4yNTc3MjUtMTEuMDUwNjg0IDAtMTkuNDI1NDIyIDYuODUyMDU4LTI2LjgzMTA4OSAxNC4yNTc3MjVsLTg1LjUyNTg4NSA4NS41MjY5MDlMMzAyLjY0NDg1NSAzMDYuNTEzOTc2IDIxNy4xMTg5NjkgMjIwLjk4NjA0M2MtNy41MTMxMTQtNy41MTMxMTQtMTUuMTM2NzQ1LTE0LjI1NzcyNS0yNS43NTM1NDctMTQuMjU3NzI1LTEwLjYxNzgyNSAwLTE4LjI0MDQzMyA2Ljc0MzU4OC0yNS43NTM1NDcgMTQuMjU3NzI1LTYuODk4MTA3IDYuODk3MDg0LTE0LjI1NjcwMiAxNS4xODk5NTctMTQuMjU2NzAyIDI2LjMzMzc2MnM3LjM1ODU5NSAxOS40MzY2NzggMTQuMjU2NzAyIDI2LjMzNDc4NWw4NS41MjY5MDkgODUuNTI2OTA5IDAgMTU2LjM1MTk3Ny0xMDEuMTg3NTg3IDBjLTQ1LjE3NjkyMiAwLTQ4LjY4ODkwOSAzMC4xODc1MzMtNDguNjg4OTA5IDM5LjQzOTI0NCAwIDExLjU0MzkxNyA0Ljc0NDA0OCAzOC4zOTU0NzIgNDguNjg4OTA5IDM4LjM5NTQ3MmwxMDEuNTE1MDQ1IDBjMi4wNDA0NzMgNDguNTAyNjY3IDEzLjQ3MDgwMyAxMDAuMzcyMDEyIDMwLjU3ODQzNiAxMzguNTAwNDAxbC05OC4zMjIzMjkgMTEwLjUzNDQ2Ni0wLjIwNTY4NSAwLjIzNTM2Yy0xOC41ODIyMTcgMjEuNzY2NzQ2LTE4LjU0MDI2MiA0NS45ODAyMTcgMC4xMDk0OTQgNjMuMTkwMTgxbDAuNDYyNTM0IDAuNDA5MzIyYzkuOTU0NzIzIDguNDY5OTA1IDE1LjYzNjExOSA5LjM1NTA2NSAyNi4yMjczMzggOS4zNTUwNjVsMC4xOTIzODIgMGMxMi44MTg5NTcgMCAyNS4yNjY0NTMtNi4xNDA4NiAzNS45OTQ3OTYtMTcuNzU4NDU2bDg1LjI0NDQ3Ni05Ni4zODcyNTdjMjYuMTc4MjE5IDIxLjgyOTE2OCA5Mi4yNjEyODcgNjguNTkwMTY4IDE3Ny45NTYwMTggNjguNTkwMTY4bDE1LjM0OTU5MyAwTDUyNS4wNTMyOTQgNDAzLjgxNTA0NWwxNS40NDM3MzcgMCAwIDQ2Ni4yMjIzOTcgMTUuMzQ5NTkzIDBjNzQuNDUzNzEyIDAgMTQzLjczOTcyOC00My40MzUyNTUgMTcwLjA3MTQ0NC02Mi4wOTgzMTNsOTMuNDM3MDY2IDkyLjkyOTUwNmM4LjY3NTU5IDkuMjg2NTA0IDIxLjE5ODgxMSAxNC42MDM2MDMgMzQuNDI2MDY3IDE0LjYwMzYwMyAxLjE0MzAzMyAwIDIuMTk5MDg1IDAuMDMxNzIyIDMuMTg5NjQ1IDAuMDU5MzUyIDcuMTIzMjM0IDAuMjAzNjM4IDE2Ljg1Mzg1MyAwLjQ3NDgxNCAyNi43Njk2OS0xMC4xNjI0NTQgOS4xMTk3MDUtOS4yMjIwMzUgMTEuMDQzNTItMTguNjUzODQ5IDExLjA0MzUyLTI0Ljk2NTYwMSAwLTE1LjI2NDY1OS0xMC43NDE2NDUtMjcuNzM5Nzg0LTE4Ljc3NzY2OS0zNS43NTIyNzJsLTEwMC4yNTAyMzgtMTAwLjc2OTA1NWMxOC40OTQyMTMtMzcuMDgxNTQ3IDM1LjgxMTYyNC05My45NzgzOTUgMzguNTM0NjQyLTE1MS4xMTE2MjZsMTAxLjU1ODAyNCAwYzEzLjI4NTU4NCAwIDIzLjExMDM0Ny0yLjAwMzYzNCAzMC45MTcxNS02LjMwNzY1OSAxMS40NjAwMDYtNi4zMTU4NDYgMTcuNzcwNzM1LTE3LjUwMDU4MyAxNy43NzA3MzUtMzEuNDkxMjI1Qzk2NC41Mzg3NDcgNTQwLjk1OTU2NSA5NTguMjA1NTA1IDUyOS43ODkxNTUgOTQ2LjcwNDU2NiA1MjMuNTIxNDA0ek05MzEuOTQ5NTE0IDU1OS41Nzk2NDVjLTIuMDY0MDA5IDEuMTM2ODkzLTYuNTMxNzYzIDIuNDkzNzk3LTE2LjA5NzYzIDIuNDkzNzk3TDc4My45NjQwODggNTYyLjA3MzQ0MmwwIDE1LjM0OTU5M2MwIDYxLjg0MTQ2My0yMC45NTczMTEgMTI3LjE5MDgyMS00MC40MzA4MjggMTYxLjczODY2MWwtNS43MDU5NTUgMTAuMTI0NTkyIDExNi40NjE0NTUgMTE3LjA2MjEzNmM5LjMyNDM2NiA5LjI5Nzc2IDkuNzk3MTM0IDEzLjM0MDg0MyA5Ljc5NzEzNCAxNC4wNTYxMzQgMCAxLjEyNjY2LTEuNzI4MzY0IDIuOTM3OTEyLTIuMjU4NDM3IDMuNDY1OTM4bC0wLjQ3MTc0NCAwLjQ5MjIxYy0wLjIwNDY2MSAwLjIyMzA4MS0wLjM3NDUzIDAuMzk0OTk2LTAuNTA5NjA2IDAuNTI0OTU2LTAuNzgxODA2IDAuMDIzNTM2LTIuMDMyMjg2LTAuMDE0MzI2LTMuMDA4NTItMC4wNDA5MzItMS4yNTg2NjctMC4wMzU4MTYtMi42MDIyNjgtMC4wNzE2MzEtNC4wNTUzNjItMC4wNzE2MzEtNC43MTY0MTggMC05LjIzMDIyMi0xLjg1MDEzOC0xMi4wNzI5NjctNC45NDc2ODVMNzI4LjQzNjQyNCA3NjcuMTQ0MDA0bC0xMC43MDY4NTMgOC42MzI2MTFjLTAuNzM5ODUgMC41OTU1NjQtNzAuMjE1MTc4IDU1LjkzMTg3LTE0Ni41MzEzMDggNjIuODU0NTM3TDU3MS4xOTgyNjQgMzczLjExNTg1OWwtNzYuODQyMTA5IDAgMCA0NjUuNjMzOTk2Yy00My40NTU3MjEtMy4zMTg1ODItODAuNDUwMjg3LTIwLjA0MTQ1Mi0xMDQuODA3MDIxLTM0LjMwOTQxLTI5Ljk1ODMxMi0xNy41NDc2NTUtNDguMDU3NTI5LTM1LjQwNzQxOC00OC4yMjEyNTgtMzUuNTY5MWwtMTEuNTQwODQ3LTExLjU0NTk2NEwyMjMuODQ0MTM4IDg3Ny4xMjI4MTVjLTQuNTk2NjkxIDQuOTQwNTIyLTkuNDUwMjMzIDcuNzcyMDExLTEzLjMzMzY4IDcuNzcyMDExbC0wLjE5MzQwNSAwYy0xLjQxNTIzMiAwLTIuOTg0OTg0IDAtMy44MjQwOTUtMC4wNTMyMTItMC4zNzA0MzctMC4yNTE3MzMtMS4wNjczMDgtMC43Njc0OC0yLjI3Njg1Ni0xLjc4NjY5My0zLjAxMTU5LTIuNzkzNjI2LTcuOTkyMDIxLTcuOTUzMTM2IDIuNTU4MjY1LTIwLjM3NTA1bDExMS45MjQxMTUtMTI1LjgyNTczLTQuNzI2NjUxLTkuMzI3NDM2Yy0xNC44MjM2MTQtMjkuMjUyMjMxLTMyLjEzMzg2MS04NS45NTk3NjctMzIuMTMzODYxLTE0OS41MDcwODJsMC0xNS4zNDk1OTNMMTQ5Ljk1MTE5NyA1NjIuNjcwMDNjLTkuNzgzODMxIDAtMTQuMTI4Nzg5LTEuNjYwODI2LTE1Ljg0Nzk0My0yLjY1MTM4Ni0xLjEwMTA3Ny0wLjYzMzQyNy0yLjE0MDc1Ny0xLjIzMjA2MS0yLjE0MDc1Ny01LjA0NTkyMyAwLTMuMDU0NTY5IDAtOC43NDAwNTggMTcuOTg5NzIzLTguNzQwMDU4bDEzMS44ODY3NzMgMEwyODEuODM4OTkzIDM0Ni40NjU4OTYgMTg3LjMyMDI5MyAyNTEuOTQ4MjE5Yy0yLjEyMjMzNy0yLjEyMjMzNy0zLjQ1MDU4OS0zLjYxMjI3MS00LjI3NzQyLTQuNjI3MzkxIDAuODI2ODMxLTEuMDE1MTIgMi4xNTUwODMtMi41MDUwNTQgNC4yNzc0Mi00LjYyNjM2NyAxLjc2MTExLTEuNzYxMTEgMy4wNzI5ODktMi45OTAxMDEgNC4wNDUxMjktMy44NDU1ODUgMC45NzIxNDEgMC44NTU0ODQgMi4yODQwMTkgMi4wODQ0NzUgNC4wNDYxNTMgMy44NDU1ODVsOTQuNTE3Njc3IDk0LjUxODcgNDgzLjc4ODQ3MSAwIDk0LjUxNzY3Ny05NC41MTg3YzIuNDc4NDQ4LTIuNDc3NDI0IDQuMTA4NTc0LTMuODQ5Njc4IDUuMTIzNjk0LTQuNjA0ODc4IDEuMDE1MTIgMC43NTQxNzcgMi42NDYyNyAyLjEyNjQzIDUuMTIzNjk0IDQuNjA0ODc4IDQuOTE0OTQgNC45MTM5MTYgNS4yNjE4NCA3LjA3MzA5MiA1LjI2NTkzNCA3LjA3MzA5Mi0wLjAwMjA0NyAwLjAyMDQ2Ni0wLjMzNTY0NCAyLjE3NzU5Ni01LjI2NTkzNCA3LjEwODkwOGwtOTQuNTE3Njc3IDk0LjUxNzY3NyAwIDE5Ni42MjgyODYgMTMxLjg4Njc3MyAwYzkuNjM2NDc0IDAgMTQuMTA3Mjk5IDEuMzM0MzkxIDE2LjE2MjA5OCAyLjQ1Mzg4OCAxLjAyMDIzNiAwLjU1NTY1NSAxLjgyNjYwMiAwLjk5NTY3NyAxLjgyNjYwMiA0LjQ5NjQwN0M5MzMuODM5NTYxIDU1OC41Mzc5MTkgOTMzLjAwNTU2NiA1NTguOTk3Mzg0IDkzMS45NDk1MTQgNTU5LjU3OTY0NXoiIHAtaWQ9IjE2MzYxIiBmaWxsPSIjYTlhOWIzIj48L3BhdGg+PHBhdGggZD0iTTcxNC43NTc4OSAyNTMuMTk4Njk5YzAtNDguNjQ5LTE4Ljg5NjM3Mi05NC4zMzc1NzUtNTMuMjA3ODI5LTEyOC42NDkwMzItMzQuMzExNDU3LTM0LjMxMjQ4LTgwLjAwMTA1NS01My4yMDg4NTItMTI4LjY1MDA1NS01My4yMDg4NTItNDguNjQ5IDAtOTQuMzM2NTUyIDE4Ljg5NjM3Mi0xMjguNjQ5MDMyIDUzLjIwODg1Mi0zNC4zMTE0NTcgMzQuMzExNDU3LTUzLjIwNzgyOSA4MC4wMDAwMzItNTMuMjA3ODI5IDEyOC42NDkwMzJsMCAxNS4zNDk1OTMgMzYzLjcxNDc0NSAwTDcxNC43NTc4OSAyNTMuMTk4Njk5ek0zODIuNTE1OTUgMjM3Ljg0OTEwNmM3LjcxMzY4Mi03Ni4xNjk3OTcgNzIuMjE0NzE4LTEzNS44MDkxMDUgMTUwLjM4NDA1Ni0xMzUuODA5MTA1czE0Mi42NzEzOTcgNTkuNjM5MzA5IDE1MC4zODUwNzkgMTM1LjgwOTEwNUwzODIuNTE1OTUgMjM3Ljg0OTEwNnoiIHAtaWQ9IjE2MzYyIiBmaWxsPSIjYTlhOWIzIj48L3BhdGg+PC9zdmc+"); - } - &content { background-color: rgba(61, 62, 65, 0.88); } diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss index 04a2bcb7..28585aec 100644 --- a/assets/css/_variables.scss +++ b/assets/css/_variables.scss @@ -9,9 +9,6 @@ $global-font-size: 16px; $global-font-weight: 400; $global-line-height: 1.5rem; -// Color of the theme logo -$global-logo-icon-color: Tomato !default; - // Color of the background $global-background-color: #fff !default; $global-background-color-dark: #292a2d !default; diff --git a/assets/js/theme.min.js b/assets/js/theme.min.js index f3162b38..5c319b74 100644 --- a/assets/js/theme.min.js +++ b/assets/js/theme.min.js @@ -1,3 +1,3 @@ -"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),k=k.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(f,">$1"))}),b[i]={uri:i,title:j,date:h.date,context:k}}}),Object.values(b).slice(0,d)};a._index?h(i()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.lunrLanguageCode]),this.ref("objectID"),this.field("title",{boost:50}),this.field("tags",{boost:20}),this.field("categories",{boost:20}),this.field("content",{boost:10}),this.metadataWhitelist=["position"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,h(i())}).catch(function(a){console.error(a),h([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*d,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(e)],highlightPreTag:"<".concat(f,">"),highlightPostTag:"")}).then(function(a){var b=a.hits,c={};b.forEach(function(a){var b=a.uri,d=a.date,e=a._highlightResult.title,f=a._snippetResult.content;c[b]&&c[b].context.length>f.value||(c[b]={uri:b,title:e.value,date:d,context:f.value})}),h(Object.values(c).slice(0,d))}).catch(function(a){console.error(a),h([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"
Search by ").concat(e," ").concat(d,"
")}}});h.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=h:a._searchDesktop=h};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var n=document.createElement("script");n.id="lunr-segmentit",n.type="text/javascript",n.src=b.lunrSegmentitURL,n.async=!0,n.readyState?n.onreadystatechange=function(){("loaded"==n.readyState||"complete"==n.readyState)&&(n.onreadystatechange=null,m())}:n.onload=function(){m()},document.body.appendChild(n)}else m()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("header-link"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if("true"===document.getElementById("toc-static").getAttribute("kept")||this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("header-link"),j="normal"!==document.body.getAttribute("header-desktop"),k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"default"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;b FixIt Theme",appendTo:this.config.watermark.appendTo||".wrapper>.main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowSpacing,colSpacing:this.config.watermark.colSpacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontSize,fontFamily:this.config.watermark.fontFamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"onScroll",value:function onScroll(){var a=this,b=[];if("auto"===document.body.getAttribute("header-desktop")&&b.push(document.getElementById("header-desktop")),"auto"===document.body.getAttribute("header-mobile")&&b.push(document.getElementById("header-mobile")),document.getElementById("comments")){var e=document.getElementById("view-comments");e.href="#comments",e.style.display="block"}var c=document.getElementById("fixed-buttons"),d=20;window.addEventListener("scroll",function(){a.newScrollTop=a.util.getScrollTop();var e=a.newScrollTop-a.oldScrollTop,f=a.util.isMobile();a.util.forEach(b,function(b){e>d?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>100?f&&e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):(!f||e<-d)&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):(!f&&(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)),c.style.display="none");var g,h=_createForOfIteratorHelper(a.scrollEventSet);try{for(h.s();!(g=h.n()).done;){var i=g.value;i()}}catch(a){h.e(a)}finally{h.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){var a=this;try{this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.initCookieconsent(),this.initSiteTime(),this.initServiceWorker(),this.initWatermark(),this.initPangu()}catch(a){console.error(a)}window.setTimeout(function(){a.initToc(),a.initComment(),a.onScroll(),a.onResize(),a.onClickMask()},100)}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); +"use strict";function _objectDestructuringEmpty(a){if(null==a)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c.return||c.return()}finally{if(h)throw f}}}}function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_unsupportedIterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _iterableToArray(a){if("undefined"!=typeof Symbol&&null!=a[Symbol.iterator]||null!=a["@@iterator"])return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a))return _arrayLikeToArray(a)}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c$1")),k=k.replace(new RegExp("(".concat(a,")"),"gi"),"<".concat(f,">$1"))}),b[i]={uri:i,title:j,date:h.date,context:k}}}),Object.values(b).slice(0,d)};a._index?h(i()):fetch(b.lunrIndexURL).then(function(a){return a.json()}).then(function(c){var d={};a._index=lunr(function(){var a=this;b.lunrLanguageCode&&this.use(lunr[b.lunrLanguageCode]),this.ref("objectID"),this.field("title",{boost:50}),this.field("tags",{boost:20}),this.field("categories",{boost:20}),this.field("content",{boost:10}),this.metadataWhitelist=["position"],c.forEach(function(b){d[b.objectID]=b,a.add(b)})}),a._indexData=d,h(i())}).catch(function(a){console.error(a),h([])})}else"algolia"===b.type&&(a._algoliaIndex=a._algoliaIndex||algoliasearch(b.algoliaAppID,b.algoliaSearchKey).initIndex(b.algoliaIndex),a._algoliaIndex.search(c,{offset:0,length:8*d,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(e)],highlightPreTag:"<".concat(f,">"),highlightPostTag:"")}).then(function(a){var b=a.hits,c={};b.forEach(function(a){var b=a.uri,d=a.date,e=a._highlightResult.title,f=a._snippetResult.content;c[b]&&c[b].context.length>f.value||(c[b]={uri:b,title:e.value,date:d,context:f.value})}),h(Object.values(c).slice(0,d))}).catch(function(a){console.error(a),h([])}))},templates:{suggestion:function suggestion(a){var b=a.title,c=a.date,d=a.context;return"
".concat(b,"").concat(c,"
").concat(d,"
")},empty:function empty(a){var c=a.query;return"
".concat(b.noResultsFound,": \"").concat(c,"\"
")},footer:function footer(a){_objectDestructuringEmpty(a);var c="algolia"===b.type?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},d=c.searchType,e=c.icon,f=c.href;return"")}}});h.on("autocomplete:selected",function(a,b){window.location.assign(b.uri)}),c?a._searchMobile=h:a._searchDesktop=h};if(b.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var n=document.createElement("script");n.id="lunr-segmentit",n.type="text/javascript",n.src=b.lunrSegmentitURL,n.async=!0,n.readyState?n.onreadystatechange=function(){("loaded"==n.readyState||"complete"==n.readyState)&&(n.onreadystatechange=null,m())}:n.onload=function(){m()},document.body.appendChild(n)}else m()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function(a){var b=a.getElementsByClassName("details-summary")[0];b.addEventListener("click",function(){a.classList.toggle("open")},!1)})}},{key:"initLightGallery",value:function initLightGallery(){this.config.lightGallery&&lightGallery(document.getElementById("content"),this.config.lightGallery)}},{key:"initHighlight",value:function initHighlight(){var a=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(b){var c=b.querySelectorAll("pre.chroma > code");if(c.length){var d=c[c.length-1],e=document.createElement("div");e.className="code-header "+d.className.toLowerCase();var f=document.createElement("span");f.classList.add("code-title"),f.insertAdjacentHTML("afterbegin",""),f.addEventListener("click",function(){b.classList.toggle("open")},!1),e.appendChild(f);var g=document.createElement("span");g.insertAdjacentHTML("afterbegin",""),g.classList.add("ellipses"),g.addEventListener("click",function(){b.classList.add("open")},!1),e.appendChild(g);var h=document.createElement("span");h.insertAdjacentHTML("afterbegin",""),h.classList.add("copy");var i=d.innerText;if((0>a.config.code.maxShownLines||i.split("\n").length=a;a++)this.util.forEach(document.querySelectorAll(".single .content > h"+a),function(a){a.classList.add("header-link"),a.insertAdjacentHTML("afterbegin",""))})}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("TableOfContents");if(null!==b)if("true"===document.getElementById("toc-static").getAttribute("kept")||this.util.isTocStatic()){var o=document.getElementById("toc-content-static");b.parentElement!==o&&(b.parentElement.removeChild(b),o.appendChild(b)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var p=document.getElementById("toc-content-auto");b.parentElement!==p&&(b.parentElement.removeChild(b),p.appendChild(b));var c=document.getElementById("toc-auto"),d=document.getElementsByClassName("page")[0],e=d.getBoundingClientRect();c.style.left="".concat(e.left+e.width+20,"px"),c.style.maxWidth="".concat(d.getBoundingClientRect().left-20,"px"),c.style.visibility="visible";var f=b.querySelectorAll("a:first-child"),g=b.getElementsByTagName("li"),h=document.getElementsByClassName("header-link"),j="normal"!==document.body.getAttribute("header-desktop"),k=document.getElementById("header-desktop").offsetHeight,l=20+(j?k:0),m=c.offsetTop,n=m-l+(j?0:k);this._tocOnScroll=this._tocOnScroll||function(){var d=document.getElementById("post-footer").offsetTop,e=d-c.getBoundingClientRect().height,o=e-l+(j?0:k);a.newScrollTopo?(c.style.position="absolute",c.style.top="".concat(e,"px")):(c.style.position="fixed",c.style.top="".concat(l,"px")),a.util.forEach(f,function(a){a.classList.remove("active")}),a.util.forEach(g,function(a){a.classList.remove("has-active")});for(var p=20+(j?k:0),q=h.length-1,r=0;rp||s<=p&&t>p){q=r;break}}if(-1!==q){f[q].classList.add("active");for(var u=f[q].parentElement;u!==b;)u.classList.add("has-active"),u=u.parentElement.parentElement}},this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initMath",value:function initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}},{key:"initMermaid",value:function initMermaid(){var a=this,b=document.getElementsByClassName("mermaid");b.length&&(mermaid.initialize({startOnLoad:!1,theme:"default"}),this.util.forEach(b,function(b){mermaid.mermaidAPI.render("svg-"+b.id,a.data[b.id],function(a){b.insertAdjacentHTML("afterbegin",a)},b)}))}},{key:"initEcharts",value:function initEcharts(){var a=this;this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){a._echartsArr=a._echartsArr||[];for(var b=0;b FixIt Theme",appendTo:this.config.watermark.appendTo||".wrapper>.main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowSpacing,colSpacing:this.config.watermark.colSpacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontSize,fontFamily:this.config.watermark.fontFamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"onScroll",value:function onScroll(){var a=this,b=[];if("auto"===document.body.getAttribute("header-desktop")&&b.push(document.getElementById("header-desktop")),"auto"===document.body.getAttribute("header-mobile")&&b.push(document.getElementById("header-mobile")),document.getElementById("comments")){var e=document.getElementById("view-comments");e.href="#comments",e.style.display="block"}var c=document.getElementById("fixed-buttons"),d=20;window.addEventListener("scroll",function(){a.newScrollTop=a.util.getScrollTop();var e=a.newScrollTop-a.oldScrollTop,f=a.util.isMobile();a.util.forEach(b,function(b){e>d?(b.classList.remove("fadeInDown"),a.util.animateCSS(b,["fadeOutUp","faster"],!0)):e<-d&&(b.classList.remove("fadeOutUp"),a.util.animateCSS(b,["fadeInDown","faster"],!0))}),a.newScrollTop>100?f&&e>d?(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)):(!f||e<-d)&&(c.style.display="block",c.classList.remove("fadeOut"),a.util.animateCSS(c,["fadeIn","faster"],!0)):(!f&&(c.classList.remove("fadeIn"),a.util.animateCSS(c,["fadeOut","faster"],!0)),c.style.display="none");var g,h=_createForOfIteratorHelper(a.scrollEventSet);try{for(h.s();!(g=h.n()).done;){var i=g.value;i()}}catch(a){h.e(a)}finally{h.f()}a.oldScrollTop=a.newScrollTop},!1)}},{key:"onResize",value:function onResize(){var a=this;window.addEventListener("resize",function(){a._resizeTimeout||(a._resizeTimeout=window.setTimeout(function(){a._resizeTimeout=null;var b,c=_createForOfIteratorHelper(a.resizeEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}a.initToc(),a.initMermaid(),a.initSearch()},100))},!1)}},{key:"onClickMask",value:function onClickMask(){var a=this;document.getElementById("mask").addEventListener("click",function(){var b,c=_createForOfIteratorHelper(a.clickMaskEventSet);try{for(c.s();!(b=c.n()).done;){var d=b.value;d()}}catch(a){c.e(a)}finally{c.f()}document.body.classList.remove("blur")},!1)}},{key:"init",value:function init(){var a=this;try{this.initSVGIcon(),this.initTwemoji(),this.initMenuMobile(),this.initSwitchTheme(),this.initSearch(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.initCookieconsent(),this.initSiteTime(),this.initServiceWorker(),this.initWatermark(),this.initPangu()}catch(a){console.error(a)}window.setTimeout(function(){a.initToc(),a.initComment(),a.onScroll(),a.onResize(),a.onClickMask()},100)}}]),a}(),themeInit=function(){var a=new Theme;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",themeInit,!1):themeInit(); //# sourceMappingURL=theme.min.js.map \ No newline at end of file diff --git a/assets/js/theme.min.js.map b/assets/js/theme.min.js.map index 5b12fa08..7a55cd64 100644 --- a/assets/js/theme.min.js.map +++ b/assets/js/theme.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"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","file":"theme.min.js","sourcesContent":["class Util {\n forEach(elements, handler) {\n elements = elements || [];\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\n }\n\n getScrollTop() {\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\n }\n\n isMobile() {\n return window.matchMedia('only screen and (max-width: 680px)').matches;\n }\n\n isTocStatic() {\n return window.matchMedia('only screen and (max-width: 960px)').matches;\n }\n\n animateCSS(element, animation, reserved, callback) {\n if (!Array.isArray(animation)) animation = [animation];\n element.classList.add('animated', ...animation);\n const handler = () => {\n element.classList.remove('animated', ...animation);\n element.removeEventListener('animationend', handler);\n if (typeof callback === 'function') callback();\n };\n if (!reserved) element.addEventListener('animationend', handler, false);\n }\n}\n\nclass Theme {\n constructor() {\n this.config = window.config;\n this.data = this.config.data;\n this.isDark = document.body.getAttribute('theme') === 'dark';\n this.util = new Util();\n this.newScrollTop = this.util.getScrollTop();\n this.oldScrollTop = this.newScrollTop;\n this.scrollEventSet = new Set();\n this.resizeEventSet = new Set();\n this.switchThemeEventSet = new Set();\n this.clickMaskEventSet = new Set();\n if (window.objectFitImages) objectFitImages();\n }\n\n initSVGIcon() {\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\n fetch($icon.getAttribute('data-svg-src'))\n .then(response => response.text())\n .then(svg => {\n const $temp = document.createElement('div');\n $temp.insertAdjacentHTML('afterbegin', svg);\n const $svg = $temp.firstChild;\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\n $svg.classList.add('icon');\n const $titleElements = $svg.getElementsByTagName('title');\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\n $icon.parentElement.replaceChild($svg, $icon);\n })\n .catch(err => { console.error(err); });\n });\n }\n\n initTwemoji() {\n if (this.config.twemoji) twemoji.parse(document.body);\n }\n\n initMenuMobile() {\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\n const $menuMobile = document.getElementById('menu-mobile');\n $menuToggleMobile.addEventListener('click', () => {\n document.body.classList.toggle('blur');\n $menuToggleMobile.classList.toggle('active');\n $menuMobile.classList.toggle('active');\n }, false);\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\n $menuToggleMobile.classList.remove('active');\n $menuMobile.classList.remove('active');\n });\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\n }\n\n initSwitchTheme() {\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\n $themeSwitch.addEventListener('click', () => {\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\n else document.body.setAttribute('theme', 'dark');\n this.isDark = !this.isDark;\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\n for (let event of this.switchThemeEventSet) event();\n }, false);\n });\n }\n\n initSearch() {\n const searchConfig = this.config.search;\n const isMobile = this.util.isMobile();\n if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return;\n\n const maxResultLength = searchConfig.maxResultLength ? searchConfig.maxResultLength : 10;\n const snippetLength = searchConfig.snippetLength ? searchConfig.snippetLength : 50;\n const highlightTag = searchConfig.highlightTag ? searchConfig.highlightTag : 'em';\n\n const suffix = isMobile ? 'mobile' : 'desktop';\n const $header = document.getElementById(`header-${suffix}`);\n const $searchInput = document.getElementById(`search-input-${suffix}`);\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\n if (isMobile) {\n this._searchMobileOnce = true;\n $searchInput.addEventListener('focus', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n }, false);\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\n $header.classList.remove('open');\n document.body.classList.remove('blur');\n document.getElementById('menu-toggle-mobile').classList.remove('active');\n document.getElementById('menu-mobile').classList.remove('active');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n }, false);\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\n } else {\n this._searchDesktopOnce = true;\n $searchToggle.addEventListener('click', () => {\n document.body.classList.add('blur');\n $header.classList.add('open');\n $searchInput.focus();\n }, false);\n $searchClear.addEventListener('click', () => {\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n }, false);\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask || (() => {\n $header.classList.remove('open');\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'none';\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\n });\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\n }\n $searchInput.addEventListener('input', () => {\n if ($searchInput.value === '') $searchClear.style.display = 'none';\n else $searchClear.style.display = 'inline';\n }, false);\n\n const initAutosearch = () => {\n const autosearch = autocomplete(`#search-input-${suffix}`, {\n hint: false,\n autoselect: true,\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\n clearOnSelected: true,\n cssClasses: { noPrefix: true },\n debug: true,\n }, {\n name: 'search',\n source: (query, callback) => {\n $searchLoading.style.display = 'inline';\n $searchClear.style.display = 'none';\n const finish = (results) => {\n $searchLoading.style.display = 'none';\n $searchClear.style.display = 'inline';\n callback(results);\n };\n if (searchConfig.type === 'lunr') {\n const search = () => {\n if (lunr.queryHandler) query = lunr.queryHandler(query);\n const results = {};\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\n const matchData = this._indexData[ref];\n let { uri, title, content: context } = matchData;\n if (results[uri]) return;\n let position = 0;\n Object.values(metadata).forEach(({ content }) => {\n if (content) {\n const matchPosition = content.position[0][0];\n if (matchPosition < position || position === 0) position = matchPosition;\n }\n });\n position -= snippetLength / 5;\n if (position > 0) {\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\n context = '...' + context.substr(position, snippetLength);\n } else {\n context = context.substr(0, snippetLength);\n }\n Object.keys(metadata).forEach(key => {\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\n });\n results[uri] = {\n 'uri': uri,\n 'title' : title,\n 'date' : matchData.date,\n 'context' : context,\n };\n });\n return Object.values(results).slice(0, maxResultLength);\n }\n if (!this._index) {\n fetch(searchConfig.lunrIndexURL)\n .then(response => response.json())\n .then(data => {\n const indexData = {};\n this._index = lunr(function () {\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\n this.ref('objectID');\n this.field('title', { boost: 50 });\n this.field('tags', { boost: 20 });\n this.field('categories', { boost: 20 });\n this.field('content', { boost: 10 });\n this.metadataWhitelist = ['position'];\n data.forEach((record) => {\n indexData[record.objectID] = record;\n this.add(record);\n });\n });\n this._indexData = indexData;\n finish(search());\n }).catch(err => {\n console.error(err);\n finish([]);\n });\n } else finish(search());\n } else if (searchConfig.type === 'algolia') {\n this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\n this._algoliaIndex\n .search(query, {\n offset: 0,\n length: maxResultLength * 8,\n attributesToHighlight: ['title'],\n attributesToSnippet: [`content:${snippetLength}`],\n highlightPreTag: `<${highlightTag}>`,\n highlightPostTag: ``,\n })\n .then(({ hits }) => {\n const results = {};\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\n if (results[uri] && results[uri].context.length > content.value) return;\n results[uri] = {\n uri: uri,\n title: title.value,\n date: date,\n context: content.value,\n };\n });\n finish(Object.values(results).slice(0, maxResultLength));\n })\n .catch(err => {\n console.error(err);\n finish([]);\n });\n }\n },\n templates: {\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\n footer: ({}) => {\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\n searchType: 'algolia',\n icon: '',\n href: 'https://www.algolia.com/',\n } : {\n searchType: 'Lunr.js',\n icon: '',\n href: 'https://lunrjs.com/',\n };\n return ``;},\n },\n });\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\n window.location.assign(suggestion.uri);\n });\n if (isMobile) this._searchMobile = autosearch;\n else this._searchDesktop = autosearch;\n };\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\n const script = document.createElement('script');\n script.id = 'lunr-segmentit';\n script.type = 'text/javascript';\n script.src = searchConfig.lunrSegmentitURL;\n script.async = true;\n if (script.readyState) {\n script.onreadystatechange = () => {\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\n script.onreadystatechange = null;\n initAutosearch();\n }\n };\n } else {\n script.onload = () => {\n initAutosearch();\n };\n }\n document.body.appendChild(script);\n } else initAutosearch();\n }\n\n initDetails() {\n this.util.forEach(document.getElementsByClassName('details'), $details => {\n const $summary = $details.getElementsByClassName('details-summary')[0];\n $summary.addEventListener('click', () => {\n $details.classList.toggle('open');\n }, false);\n });\n }\n\n initLightGallery() {\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\n }\n\n initHighlight() {\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\n const $chroma = document.createElement('div');\n $chroma.className = $preChroma.className;\n const $table = document.createElement('table');\n $chroma.appendChild($table);\n const $tbody = document.createElement('tbody');\n $table.appendChild($tbody);\n const $tr = document.createElement('tr');\n $tbody.appendChild($tr);\n const $td = document.createElement('td');\n $tr.appendChild($td);\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\n $td.appendChild($preChroma);\n });\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\n if ($codeElements.length) {\n const $code = $codeElements[$codeElements.length - 1];\n const $header = document.createElement('div');\n $header.className = 'code-header ' + $code.className.toLowerCase();\n const $title = document.createElement('span');\n $title.classList.add('code-title');\n $title.insertAdjacentHTML('afterbegin', '');\n $title.addEventListener('click', () => {\n $chroma.classList.toggle('open');\n }, false);\n $header.appendChild($title);\n const $ellipses = document.createElement('span');\n $ellipses.insertAdjacentHTML('afterbegin', '');\n $ellipses.classList.add('ellipses');\n $ellipses.addEventListener('click', () => {\n $chroma.classList.add('open');\n }, false);\n $header.appendChild($ellipses);\n const $copy = document.createElement('span');\n $copy.insertAdjacentHTML('afterbegin', '');\n $copy.classList.add('copy');\n const code = $code.innerText;\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\n if (this.config.code.copyTitle) {\n $copy.setAttribute('data-clipboard-text', code);\n $copy.title = this.config.code.copyTitle;\n const clipboard = new ClipboardJS($copy);\n clipboard.on('success', _e => {\n this.util.animateCSS($code, 'flash');\n });\n $header.appendChild($copy);\n }\n $chroma.insertBefore($header, $chroma.firstChild);\n }\n });\n }\n\n initTable() {\n this.util.forEach(document.querySelectorAll('.content table'), $table => {\n const $wrapper = document.createElement('div');\n $wrapper.className = 'table-wrapper';\n $table.parentElement.replaceChild($wrapper, $table);\n $wrapper.appendChild($table);\n });\n }\n\n initHeaderLink() {\n for (let num = 1; num <= 6; num++) {\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), $header => {\n $header.classList.add('header-link');\n $header.insertAdjacentHTML('afterbegin', ``);\n });\n }\n }\n\n initToc() {\n const $tocCore = document.getElementById('TableOfContents');\n if ($tocCore === null){\n return;\n }\n if (document.getElementById('toc-static').getAttribute('kept') === 'true' || this.util.isTocStatic()) {\n const $tocContentStatic = document.getElementById('toc-content-static');\n if ($tocCore.parentElement !== $tocContentStatic) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentStatic.appendChild($tocCore);\n }\n if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\n } else {\n const $tocContentAuto = document.getElementById('toc-content-auto');\n if ($tocCore.parentElement !== $tocContentAuto) {\n $tocCore.parentElement.removeChild($tocCore);\n $tocContentAuto.appendChild($tocCore);\n }\n const $toc = document.getElementById('toc-auto');\n const $page = document.getElementsByClassName('page')[0];\n const rect = $page.getBoundingClientRect();\n $toc.style.left = `${rect.left + rect.width + 20}px`;\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\n $toc.style.visibility = 'visible';\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\n const $tocLiElements = $tocCore.getElementsByTagName('li');\n const $headerLinkElements = document.getElementsByClassName('header-link');\n const headerIsFixed = document.body.getAttribute('header-desktop') !== 'normal';\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n const minTocTop = $toc.offsetTop;\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n this._tocOnScroll = this._tocOnScroll || (() => {\n const footerTop = document.getElementById('post-footer').offsetTop;\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\n if (this.newScrollTop < minScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${minTocTop}px`;\n } else if (this.newScrollTop > maxScrollTop) {\n $toc.style.position = 'absolute';\n $toc.style.top = `${maxTocTop}px`;\n } else {\n $toc.style.position = 'fixed';\n $toc.style.top = `${TOP_SPACING}px`;\n }\n\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\n let activeTocIndex = $headerLinkElements.length - 1;\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\n if ((i == 0 && thisTop > INDEX_SPACING)\n || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\n activeTocIndex = i;\n break;\n }\n }\n if (activeTocIndex !== -1) {\n $tocLinkElements[activeTocIndex].classList.add('active');\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\n while ($parent !== $tocCore) {\n $parent.classList.add('has-active');\n $parent = $parent.parentElement.parentElement;\n }\n }\n });\n this._tocOnScroll();\n this.scrollEventSet.add(this._tocOnScroll);\n }\n }\n\n initMath() {\n if (this.config.math) renderMathInElement(document.body, this.config.math);\n }\n\n initMermaid() {\n const $mermaidElements = document.getElementsByClassName('mermaid');\n if ($mermaidElements.length) {\n mermaid.initialize({startOnLoad: false, theme: 'default'});\n this.util.forEach($mermaidElements, $mermaid => {\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\n }, $mermaid);\n });\n }\n }\n\n initEcharts() {\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\n this._echartsArr = this._echartsArr || [];\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].dispose();\n }\n this._echartsArr = [];\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\n chart.setOption(JSON.parse(this.data[$echarts.id]));\n this._echartsArr.push(chart);\n });\n });\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\n this._echartsOnSwitchTheme();\n this._echartsOnResize = this._echartsOnResize || (() => {\n for (let i = 0; i < this._echartsArr.length; i++) {\n this._echartsArr[i].resize();\n }\n });\n this.resizeEventSet.add(this._echartsOnResize);\n }\n\n initMapbox() {\n if (this.config.mapbox) {\n mapboxgl.accessToken = this.config.mapbox.accessToken;\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\n this._mapboxArr = this._mapboxArr || [];\n this.util.forEach(document.getElementsByClassName('mapbox'), $mapbox => {\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\n const mapbox = new mapboxgl.Map({\n container: $mapbox,\n center: [lng, lat],\n zoom: zoom,\n minZoom: .2,\n style: this.isDark ? darkStyle : lightStyle,\n attributionControl: false,\n });\n if (marked) {\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\n }\n if (navigation) {\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\n }\n if (geolocate) {\n mapbox.addControl(new mapboxgl.GeolocateControl({\n positionOptions: {\n enableHighAccuracy: true,\n },\n showUserLocation: true,\n trackUserLocation: true,\n }), 'bottom-right');\n }\n if (scale) {\n mapbox.addControl(new mapboxgl.ScaleControl());\n }\n if (fullscreen) {\n mapbox.addControl(new mapboxgl.FullscreenControl());\n }\n mapbox.addControl(new MapboxLanguage());\n this._mapboxArr.push(mapbox);\n });\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\n this.util.forEach(this._mapboxArr, mapbox => {\n const $mapbox = mapbox.getContainer();\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\n mapbox.addControl(new MapboxLanguage());\n });\n });\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\n }\n }\n\n initTypeit() {\n if (this.config.typeit) {\n const typeitConfig = this.config.typeit;\n const speed = typeitConfig.speed ? typeitConfig.speed : 100;\n const cursorSpeed = typeitConfig.cursorSpeed ? typeitConfig.cursorSpeed : 1000;\n const cursorChar = typeitConfig.cursorChar ? typeitConfig.cursorChar : '|';\n Object.values(typeitConfig.data).forEach(group => {\n const typeone = (i) => {\n const id = group[i];\n const instance = new TypeIt(`#${id}`, {\n strings: this.data[id],\n speed: speed,\n lifeLike: true,\n cursorSpeed: cursorSpeed,\n cursorChar: cursorChar,\n waitUntilVisible: true,\n afterComplete: () => {\n if (i === group.length - 1) {\n if (typeitConfig.duration >= 0) window.setTimeout(() => {\n instance.destroy();\n }, typeitConfig.duration);\n return;\n }\n instance.destroy();\n typeone(i + 1);\n },\n }).go();\n };\n typeone(0);\n });\n }\n }\n\n initComment() {\n if (this.config.comment) {\n if (this.config.comment.artalk) {\n const artalk = new Artalk(this.config.comment.artalk);\n artalk.setDarkMode(this.isDark);\n this.switchThemeEventSet.add(() => {\n artalk.setDarkMode(this.isDark);\n })\n this.config.lightGallery && this.config.comment.artalk.lightgallery && artalk.on('comments-loaded', () => {\n document.querySelectorAll('.atk-comment .atk-content').forEach(($content) => {\n const $imgs = $content.querySelectorAll('img:not([atk-emoticon]):not([atk-lightbox-loaded])');\n $imgs.forEach(($img) => {\n $img.setAttribute('atk-lightbox-loaded', '');\n const $link = document.createElement('a');\n $link.setAttribute('class', 'atk-img-link');\n $link.setAttribute('href', $img.src);\n $link.setAttribute('data-src', $img.src);\n $link.append($img.cloneNode());\n $img.replaceWith($link);\n })\n if ($imgs.length) lightGallery($content, { selector: '.atk-img-link' });\n })\n })\n }\n if (this.config.comment.gitalk) {\n this.config.comment.gitalk.body = decodeURI(window.location.href);\n const gitalk = new Gitalk(this.config.comment.gitalk);\n gitalk.render('gitalk');\n }\n if (this.config.comment.valine) {\n new Valine(this.config.comment.valine);\n }\n if (this.config.comment.utterances) {\n const utterancesConfig = this.config.comment.utterances;\n const script = document.createElement('script');\n script.src = 'https://utteranc.es/client.js';\n script.type = 'text/javascript';\n script.setAttribute('repo', utterancesConfig.repo);\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\n script.crossOrigin = 'anonymous';\n script.async = true;\n document.getElementById('utterances').appendChild(script);\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\n const message = {\n type: 'set-theme',\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme,\n };\n const iframe = document.querySelector('.utterances-frame');\n iframe.contentWindow.postMessage(message, 'https://utteranc.es');\n });\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\n }\n }\n }\n\n initCookieconsent() {\n if (this.config.cookieconsent) cookieconsent.initialise(this.config.cookieconsent);\n }\n\n getSiteTime() {\n let now = new Date();\n let run = new Date(this.config.ibruce.siteTime);\n let runTime = (now - run) / 1000,\n days = Math.floor(runTime / 60 / 60 / 24),\n hours = Math.floor(runTime / 60 / 60 - (24 * days)),\n minutes = Math.floor(runTime / 60 - (24 * 60 * days) - (60 * hours)),\n seconds = Math.floor((now - run) / 1000 - (24 * 60 * 60 * days) - (60 * 60 * hours) - (60 * minutes));\n document.querySelector(\".run-times\").innerHTML = `${days},${String(hours).padStart(2,0)}:${String(minutes).padStart(2,0)}:${String(seconds).padStart(2,0)}`;\n }\n\n initSiteTime() {\n if(this.config.ibruce.enable && this.config.ibruce.siteTime){\n this.siteTime = setInterval(this.getSiteTime, 500);\n document.addEventListener(\"visibilitychange\", () => {\n if (document.hidden) {\n return clearInterval(this.siteTime);\n }\n this.siteTime = setInterval(this.getSiteTime, 500);\n });\n }\n }\n\n initServiceWorker() {\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\n navigator.serviceWorker\n .register('/service-worker.min.js', { scope: '/' })\n .then(function (registration) {\n // console.log('Service Worker Registered');\n })\n .catch(function (error) {\n console.error('error: ', error);\n });\n navigator.serviceWorker.ready.then(function (registration) {\n // console.log('Service Worker Ready');\n });\n }\n }\n\n initWatermark() {\n this.config.watermark.enable && new Watermark({\n content: this.config.watermark.content || ' FixIt Theme',\n appendTo:this.config.watermark.appendTo || '.wrapper>.main',\n opacity: this.config.watermark.opacity,\n width: this.config.watermark.width,\n height: this.config.watermark.height,\n rowSpacing: this.config.watermark.rowSpacing,\n colSpacing: this.config.watermark.colSpacing,\n rotate: this.config.watermark.rotate,\n fontSize: this.config.watermark.fontSize,\n fontFamily: this.config.watermark.fontFamily\n });\n }\n\n initPangu() {\n this.config.enablePangu && pangu.autoSpacingPage();\n }\n\n onScroll() {\n const $headers = [];\n if (document.body.getAttribute('header-desktop') === 'auto') $headers.push(document.getElementById('header-desktop'));\n if (document.body.getAttribute('header-mobile') === 'auto') $headers.push(document.getElementById('header-mobile'));\n if (document.getElementById('comments')) {\n const $viewComments = document.getElementById('view-comments');\n $viewComments.href = `#comments`;\n $viewComments.style.display = 'block';\n }\n const $fixedButtons = document.getElementById('fixed-buttons');\n const ACCURACY = 20, MINIMUM = 100;\n window.addEventListener('scroll', () => {\n this.newScrollTop = this.util.getScrollTop();\n const scroll = this.newScrollTop - this.oldScrollTop;\n const isMobile = this.util.isMobile();\n this.util.forEach($headers, $header => {\n if (scroll > ACCURACY) {\n $header.classList.remove('fadeInDown');\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\n } else if (scroll < - ACCURACY) {\n $header.classList.remove('fadeOutUp');\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\n }\n });\n if (this.newScrollTop > MINIMUM) {\n if (isMobile && scroll > ACCURACY) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n } else if (!isMobile || scroll < - ACCURACY) {\n $fixedButtons.style.display = 'block';\n $fixedButtons.classList.remove('fadeOut');\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\n }\n } else {\n if (!isMobile) {\n $fixedButtons.classList.remove('fadeIn');\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\n }\n $fixedButtons.style.display = 'none';\n }\n for (let event of this.scrollEventSet) event();\n this.oldScrollTop = this.newScrollTop;\n }, false);\n }\n\n onResize() {\n window.addEventListener('resize', () => {\n if (!this._resizeTimeout) {\n this._resizeTimeout = window.setTimeout(() => {\n this._resizeTimeout = null;\n for (let event of this.resizeEventSet) event();\n this.initToc();\n this.initMermaid();\n this.initSearch();\n }, 100);\n }\n }, false);\n }\n\n onClickMask() {\n document.getElementById('mask').addEventListener('click', () => {\n for (let event of this.clickMaskEventSet) event();\n document.body.classList.remove('blur');\n }, false);\n }\n\n init() {\n try {\n this.initSVGIcon();\n this.initTwemoji();\n this.initMenuMobile();\n this.initSwitchTheme();\n this.initSearch();\n this.initDetails();\n this.initLightGallery();\n this.initHighlight();\n this.initTable();\n this.initHeaderLink();\n this.initMath();\n this.initMermaid();\n this.initEcharts();\n this.initTypeit();\n this.initMapbox();\n this.initCookieconsent();\n this.initSiteTime();\n this.initServiceWorker();\n this.initWatermark();\n this.initPangu();\n } catch (err) {\n console.error(err);\n }\n\n window.setTimeout(() => {\n this.initToc();\n this.initComment();\n\n this.onScroll();\n this.onResize();\n this.onClickMask();\n }, 100);\n }\n}\n\nconst themeInit = () => {\n const theme = new Theme();\n theme.init();\n};\n\nif (document.readyState !== 'loading') {\n themeInit();\n} else {\n document.addEventListener('DOMContentLoaded', themeInit, false);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/js/theme.js"],"names":[],"mappings":"0sEAAM,CAAA,I,6FACJ,iBAAQ,CAAR,CAAkB,CAAlB,CAA2B,CACzB,CAAQ,CAAG,CAAQ,EAAI,EADE,CAEzB,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAQ,CAAC,MAA7B,CAAqC,CAAC,EAAtC,CAA0C,CAAO,CAAC,CAAQ,CAAC,CAAD,CAAT,CAClD,C,4BAED,uBAAe,CACb,MAAQ,CAAA,QAAQ,CAAC,eAAT,EAA4B,QAAQ,CAAC,eAAT,CAAyB,SAAtD,EAAoE,QAAQ,CAAC,IAAT,CAAc,SAC1F,C,wBAED,mBAAW,CACT,MAAO,CAAA,MAAM,CAAC,UAAP,CAAkB,oCAAlB,EAAwD,OAChE,C,2BAED,sBAAc,CACZ,MAAO,CAAA,MAAM,CAAC,UAAP,CAAkB,oCAAlB,EAAwD,OAChE,C,0BAED,oBAAW,CAAX,CAAoB,CAApB,CAA+B,CAA/B,CAAyC,CAAzC,CAAmD,OAC5C,KAAK,CAAC,OAAN,CAAc,CAAd,CAD4C,GAClB,CAAS,CAAG,CAAC,CAAD,CADM,EAEjD,GAAA,CAAO,CAAC,SAAR,EAAkB,GAAlB,UAAsB,UAAtB,4BAAqC,CAArC,GAFiD,CAGjD,GAAM,CAAA,CAAO,CAAG,UAAM,OACpB,GAAA,CAAO,CAAC,SAAR,EAAkB,MAAlB,UAAyB,UAAzB,4BAAwC,CAAxC,GADoB,CAEpB,CAAO,CAAC,mBAAR,CAA4B,cAA5B,CAA4C,CAA5C,CAFoB,CAGI,UAApB,QAAO,CAAA,CAHS,EAGgB,CAAQ,EAC7C,CAJD,CAKK,CAR4C,EAQlC,CAAO,CAAC,gBAAR,CAAyB,cAAzB,CAAyC,CAAzC,IAChB,C,SAGG,K,YACJ,YAAc,yBACZ,KAAK,MAAL,CAAc,MAAM,CAAC,MADT,CAEZ,KAAK,IAAL,CAAY,KAAK,MAAL,CAAY,IAFZ,CAGZ,KAAK,MAAL,CAAsD,MAAxC,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAHF,CAIZ,KAAK,IAAL,CAAY,GAAI,CAAA,IAJJ,CAKZ,KAAK,YAAL,CAAoB,KAAK,IAAL,CAAU,YAAV,EALR,CAMZ,KAAK,YAAL,CAAoB,KAAK,YANb,CAOZ,KAAK,cAAL,CAAsB,GAAI,CAAA,GAPd,CAQZ,KAAK,cAAL,CAAsB,GAAI,CAAA,GARd,CASZ,KAAK,mBAAL,CAA2B,GAAI,CAAA,GATnB,CAUZ,KAAK,iBAAL,CAAyB,GAAI,CAAA,GAVjB,CAWR,MAAM,CAAC,eAXC,EAWgB,eAAe,EAC5C,C,gDAED,sBAAc,CACZ,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,gBAA1B,CAAlB,CAA+D,SAAA,CAAK,CAAI,CACtE,KAAK,CAAC,CAAK,CAAC,YAAN,CAAmB,cAAnB,CAAD,CAAL,CACG,IADH,CACQ,SAAA,CAAQ,QAAI,CAAA,CAAQ,CAAC,IAAT,EAAJ,CADhB,EAEG,IAFH,CAEQ,SAAA,CAAG,CAAI,CACX,GAAM,CAAA,CAAK,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAd,CACA,CAAK,CAAC,kBAAN,CAAyB,YAAzB,CAAuC,CAAvC,CAFW,CAGX,GAAM,CAAA,CAAI,CAAG,CAAK,CAAC,UAAnB,CACA,CAAI,CAAC,YAAL,CAAkB,cAAlB,CAAkC,CAAK,CAAC,YAAN,CAAmB,cAAnB,CAAlC,CAJW,CAKX,CAAI,CAAC,SAAL,CAAe,GAAf,CAAmB,MAAnB,CALW,CAMX,GAAM,CAAA,CAAc,CAAG,CAAI,CAAC,oBAAL,CAA0B,OAA1B,CAAvB,CACI,CAAc,CAAC,MAPR,EAOgB,CAAI,CAAC,WAAL,CAAiB,CAAc,CAAC,CAAD,CAA/B,CAPhB,CAQX,CAAK,CAAC,aAAN,CAAoB,YAApB,CAAiC,CAAjC,CAAuC,CAAvC,CACD,CAXH,EAYG,KAZH,CAYS,SAAA,CAAG,CAAI,CAAE,OAAO,CAAC,KAAR,CAAc,CAAd,CAAqB,CAZvC,CAaD,CAdD,CAeD,C,2BAED,sBAAc,CACR,KAAK,MAAL,CAAY,OADJ,EACa,OAAO,CAAC,KAAR,CAAc,QAAQ,CAAC,IAAvB,CAC1B,C,8BAED,yBAAiB,IACT,CAAA,CAAiB,CAAG,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,CADX,CAET,CAAW,CAAG,QAAQ,CAAC,cAAT,CAAwB,aAAxB,CAFL,CAGf,CAAiB,CAAC,gBAAlB,CAAmC,OAAnC,CAA4C,UAAM,CAChD,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CADgD,CAEhD,CAAiB,CAAC,SAAlB,CAA4B,MAA5B,CAAmC,QAAnC,CAFgD,CAGhD,CAAW,CAAC,SAAZ,CAAsB,MAAtB,CAA6B,QAA7B,CACD,CAJD,IAHe,CAQf,KAAK,sBAAL,CAA8B,KAAK,sBAAL,EAAgC,UAAM,CAClE,CAAiB,CAAC,SAAlB,CAA4B,MAA5B,CAAmC,QAAnC,CADkE,CAElE,CAAW,CAAC,SAAZ,CAAsB,MAAtB,CAA6B,QAA7B,CACD,CAXc,CAYf,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,sBAAhC,CACD,C,+BAED,0BAAkB,YAChB,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,cAAhC,CAAlB,CAAmE,SAAA,CAAY,CAAI,CACjF,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACC,MAAxC,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CADuC,CACS,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAAoC,OAApC,CADT,CAEtC,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,OAA3B,CAAoC,MAApC,CAFsC,CAG3C,CAAI,CAAC,MAAL,CAAc,CAAC,CAAI,CAAC,MAHuB,CAI3C,MAAM,CAAC,YAAP,EAAuB,YAAY,CAAC,OAAb,CAAqB,OAArB,CAA8B,CAAI,CAAC,MAAL,CAAc,MAAd,CAAuB,OAArD,CAJoB,oCAKzB,CAAI,CAAC,mBALoB,MAK3C,+BAAS,CAAA,CAAT,SAA4C,CAAK,EAAjD,CAL2C,+BAM5C,CAND,IAOD,CARD,CASD,C,0BAED,qBAAa,YACL,CAAY,CAAG,KAAK,MAAL,CAAY,MADtB,CAEL,CAAQ,CAAG,KAAK,IAAL,CAAU,QAAV,EAFN,CAGX,KAAI,CAAC,CAAD,EAAiB,CAAQ,EAAI,KAAK,iBAAlC,EAAuD,CAAC,CAAD,EAAa,KAAK,kBAA7E,MAEM,CAAA,CAAe,CAAG,CAAY,CAAC,eAAb,CAA+B,CAAY,CAAC,eAA5C,CAA8D,EAFtF,CAGM,CAAa,CAAG,CAAY,CAAC,aAAb,CAA6B,CAAY,CAAC,aAA1C,CAA0D,EAHhF,CAIM,CAAY,CAAG,CAAY,CAAC,YAAb,CAA4B,CAAY,CAAC,YAAzC,CAAwD,IAJ7E,CAMM,CAAM,CAAG,CAAQ,CAAG,QAAH,CAAc,SANrC,CAOM,CAAO,CAAG,QAAQ,CAAC,cAAT,kBAAkC,CAAlC,EAPhB,CAQM,CAAY,CAAG,QAAQ,CAAC,cAAT,wBAAwC,CAAxC,EARrB,CASM,CAAa,CAAG,QAAQ,CAAC,cAAT,yBAAyC,CAAzC,EATtB,CAUM,CAAc,CAAG,QAAQ,CAAC,cAAT,0BAA0C,CAA1C,EAVvB,CAWM,CAAY,CAAG,QAAQ,CAAC,cAAT,wBAAwC,CAAxC,EAXrB,CAYI,CAZJ,EAaE,KAAK,iBAAL,GAbF,CAcE,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CAC3C,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,GAAxB,CAA4B,MAA5B,CAD2C,CAE3C,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACD,CAHD,IAdF,CAkBE,QAAQ,CAAC,cAAT,CAAwB,sBAAxB,EAAgD,gBAAhD,CAAiE,OAAjE,CAA0E,UAAM,CAC9E,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CAD8E,CAE9E,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CAF8E,CAG9E,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,EAA8C,SAA9C,CAAwD,MAAxD,CAA+D,QAA/D,CAH8E,CAI9E,QAAQ,CAAC,cAAT,CAAwB,aAAxB,EAAuC,SAAvC,CAAiD,MAAjD,CAAwD,QAAxD,CAJ8E,CAK9E,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAL+C,CAM9E,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MANiD,CAO9E,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACvB,CARD,IAlBF,CA2BE,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CAC3C,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MADc,CAE3C,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACvB,CAHD,IA3BF,CA+BE,KAAK,wBAAL,CAAgC,KAAK,wBAAL,EAAkC,UAAM,CACtE,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CADsE,CAEtE,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAFuC,CAGtE,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAHyC,CAItE,CAAI,CAAC,aAAL,EAAsB,CAAI,CAAC,aAAL,CAAmB,YAAnB,CAAgC,MAAhC,CAAuC,EAAvC,CACvB,CApCH,CAqCE,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,wBAAhC,CArCF,GAuCE,KAAK,kBAAL,GAvCF,CAwCE,CAAa,CAAC,gBAAd,CAA+B,OAA/B,CAAwC,UAAM,CAC5C,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,GAAxB,CAA4B,MAA5B,CAD4C,CAE5C,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CAF4C,CAG5C,CAAY,CAAC,KAAb,EACD,CAJD,IAxCF,CA6CE,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CAC3C,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MADc,CAE3C,CAAI,CAAC,cAAL,EAAuB,CAAI,CAAC,cAAL,CAAoB,YAApB,CAAiC,MAAjC,CAAwC,EAAxC,CACxB,CAHD,IA7CF,CAiDE,KAAK,yBAAL,CAAiC,KAAK,yBAAL,EAAmC,UAAM,CACxE,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CADwE,CAExE,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MAFyC,CAGxE,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAH2C,CAIxE,CAAI,CAAC,cAAL,EAAuB,CAAI,CAAC,cAAL,CAAoB,YAApB,CAAiC,MAAjC,CAAwC,EAAxC,CACxB,CAtDH,CAuDE,KAAK,iBAAL,CAAuB,GAAvB,CAA2B,KAAK,yBAAhC,CAvDF,EAyDA,CAAY,CAAC,gBAAb,CAA8B,OAA9B,CAAuC,UAAM,CACZ,CAAY,CAAC,KAAb,CAAmB,OADP,CAChB,EAAvB,GAAA,CAAY,CAAC,KAD0B,CACiB,MADjB,CAET,QACnC,CAHD,IAzDA,CA8DA,GAAM,CAAA,CAAc,CAAG,UAAM,CAC3B,GAAM,CAAA,CAAU,CAAG,YAAY,yBAAkB,CAAlB,EAA4B,CACzD,IAAI,GADqD,CAEzD,UAAU,GAF+C,CAGzD,qBAAqB,4BAAsB,CAAtB,CAHoC,CAIzD,eAAe,GAJ0C,CAKzD,UAAU,CAAE,CAAE,QAAQ,GAAV,CAL6C,CAMzD,KAAK,GANoD,CAA5B,CAO5B,CACD,IAAI,CAAE,QADL,CAED,MAAM,CAAE,gBAAC,CAAD,CAAQ,CAAR,CAAqB,CAC3B,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,QADJ,CAE3B,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,MAFF,CAG3B,GAAM,CAAA,CAAM,CAAG,SAAC,CAAD,CAAa,CAC1B,CAAc,CAAC,KAAf,CAAqB,OAArB,CAA+B,MADL,CAE1B,CAAY,CAAC,KAAb,CAAmB,OAAnB,CAA6B,QAFH,CAG1B,CAAQ,CAAC,CAAD,CACT,CAJD,CAKA,GAA0B,MAAtB,GAAA,CAAY,CAAC,IAAjB,CAAkC,CAChC,GAAM,CAAA,CAAM,CAAG,UAAM,CACf,IAAI,CAAC,YADU,GACI,CAAK,CAAG,IAAI,CAAC,YAAL,CAAkB,CAAlB,CADZ,EAEnB,GAAM,CAAA,CAAO,CAAG,EAAhB,CA8BA,MA7BA,CAAA,CAAI,CAAC,MAAL,CAAY,MAAZ,CAAmB,CAAnB,EAA0B,OAA1B,CAAkC,WAAsC,IAAnC,CAAA,CAAmC,GAAnC,GAAmC,CAAjB,CAAiB,GAA9B,SAA8B,CAAjB,QAAiB,CAChE,CAAS,CAAG,CAAI,CAAC,UAAL,CAAgB,CAAhB,CADoD,CAEhE,CAFgE,CAE/B,CAF+B,CAEhE,GAFgE,CAE3D,CAF2D,CAE/B,CAF+B,CAE3D,KAF2D,CAE3C,CAF2C,CAE/B,CAF+B,CAEpD,OAFoD,CAGtE,IAAI,CAAO,CAAC,CAAD,CAAX,EACA,GAAI,CAAA,CAAQ,CAAG,CAAf,CACA,MAAM,CAAC,MAAP,CAAc,CAAd,EAAwB,OAAxB,CAAgC,WAAiB,IAAd,CAAA,CAAc,GAAd,OAAc,CAC/C,GAAI,CAAJ,CAAa,CACX,GAAM,CAAA,CAAa,CAAG,CAAO,CAAC,QAAR,CAAiB,CAAjB,EAAoB,CAApB,CAAtB,CADW,CAEP,CAAa,CAAG,CAAhB,EAAyC,CAAb,GAAA,CAFrB,IAEqC,CAAQ,CAAG,CAFhD,CAGZ,CACF,CALD,CAFA,CAQA,CAAQ,EAAI,CAAa,CAAG,CAR5B,CASe,CAAX,CAAA,CATJ,EAUE,CAAQ,EAAI,CAAO,CAAC,MAAR,CAAe,CAAf,CAAyB,EAAzB,EAA6B,WAA7B,CAAyC,GAAzC,EAAgD,CAV9D,CAWE,CAAO,CAAG,MAAQ,CAAO,CAAC,MAAR,CAAe,CAAf,CAAyB,CAAzB,CAXpB,EAaE,CAAO,CAAG,CAAO,CAAC,MAAR,CAAe,CAAf,CAAkB,CAAlB,CAbZ,CAeA,MAAM,CAAC,IAAP,CAAY,CAAZ,EAAsB,OAAtB,CAA8B,SAAA,CAAG,CAAI,CACnC,CAAK,CAAG,CAAK,CAAC,OAAN,CAAc,GAAI,CAAA,MAAJ,YAAe,CAAf,MAAuB,IAAvB,CAAd,YAAgD,CAAhD,iBAAoE,CAApE,MAD2B,CAEnC,CAAO,CAAG,CAAO,CAAC,OAAR,CAAgB,GAAI,CAAA,MAAJ,YAAe,CAAf,MAAuB,IAAvB,CAAhB,YAAkD,CAAlD,iBAAsE,CAAtE,MACX,CAHD,CAfA,CAmBA,CAAO,CAAC,CAAD,CAAP,CAAe,CACb,IAAO,CADM,CAEb,MAAU,CAFG,CAGb,KAAS,CAAS,CAAC,IAHN,CAIb,QAAY,CAJC,CAnBf,CAyBD,CA5BD,CA6BA,CAAO,MAAM,CAAC,MAAP,CAAc,CAAd,EAAuB,KAAvB,CAA6B,CAA7B,CAAgC,CAAhC,CACR,CAjCD,CAkCK,CAAI,CAAC,MAnCsB,CA2DzB,CAAM,CAAC,CAAM,EAAP,CA3DmB,CAoC9B,KAAK,CAAC,CAAY,CAAC,YAAd,CAAL,CACG,IADH,CACQ,SAAA,CAAQ,QAAI,CAAA,CAAQ,CAAC,IAAT,EAAJ,CADhB,EAEG,IAFH,CAEQ,SAAA,CAAI,CAAI,CACZ,GAAM,CAAA,CAAS,CAAG,EAAlB,CACA,CAAI,CAAC,MAAL,CAAc,IAAI,CAAC,UAAY,YACzB,CAAY,CAAC,gBADY,EACM,KAAK,GAAL,CAAS,IAAI,CAAC,CAAY,CAAC,gBAAd,CAAb,CADN,CAE7B,KAAK,GAAL,CAAS,UAAT,CAF6B,CAG7B,KAAK,KAAL,CAAW,OAAX,CAAoB,CAAE,KAAK,CAAE,EAAT,CAApB,CAH6B,CAI7B,KAAK,KAAL,CAAW,MAAX,CAAmB,CAAE,KAAK,CAAE,EAAT,CAAnB,CAJ6B,CAK7B,KAAK,KAAL,CAAW,YAAX,CAAyB,CAAE,KAAK,CAAE,EAAT,CAAzB,CAL6B,CAM7B,KAAK,KAAL,CAAW,SAAX,CAAsB,CAAE,KAAK,CAAE,EAAT,CAAtB,CAN6B,CAO7B,KAAK,iBAAL,CAAyB,CAAC,UAAD,CAPI,CAQ7B,CAAI,CAAC,OAAL,CAAa,SAAC,CAAD,CAAY,CACvB,CAAS,CAAC,CAAM,CAAC,QAAR,CAAT,CAA6B,CADN,CAEvB,CAAI,CAAC,GAAL,CAAS,CAAT,CACD,CAHD,CAID,CAZiB,CAFN,CAeZ,CAAI,CAAC,UAAL,CAAkB,CAfN,CAgBZ,CAAM,CAAC,CAAM,EAAP,CACP,CAnBH,EAmBK,KAnBL,CAmBW,SAAA,CAAG,CAAI,CACd,OAAO,CAAC,KAAR,CAAc,CAAd,CADc,CAEd,CAAM,CAAC,EAAD,CACP,CAtBH,CAwBH,CA5DD,IA4DiC,SAAtB,GAAA,CAAY,CAAC,IA5DxB,GA6DE,CAAI,CAAC,aAAL,CAAqB,CAAI,CAAC,aAAL,EAAsB,aAAa,CAAC,CAAY,CAAC,YAAd,CAA4B,CAAY,CAAC,gBAAzC,CAAb,CAAwE,SAAxE,CAAkF,CAAY,CAAC,YAA/F,CA7D7C,CA8DE,CAAI,CAAC,aAAL,CACG,MADH,CACU,CADV,CACiB,CACb,MAAM,CAAE,CADK,CAEb,MAAM,CAAoB,CAAlB,CAAA,CAFK,CAGb,qBAAqB,CAAE,CAAC,OAAD,CAHV,CAIb,mBAAmB,CAAE,mBAAY,CAAZ,EAJR,CAKb,eAAe,YAAM,CAAN,KALF,CAMb,gBAAgB,aAAO,CAAP,KANH,CADjB,EASG,IATH,CASQ,WAAc,IAAX,CAAA,CAAW,GAAX,IAAW,CACZ,CAAO,CAAG,EADE,CAElB,CAAI,CAAC,OAAL,CAAa,WAA6E,IAA1E,CAAA,CAA0E,GAA1E,GAA0E,CAArE,CAAqE,GAArE,IAAqE,CAA3C,CAA2C,GAA/D,gBAA+D,CAA3C,KAA2C,CAAhB,CAAgB,GAAlC,cAAkC,CAAhB,OAAgB,CACpF,CAAO,CAAC,CAAD,CAAP,EAAgB,CAAO,CAAC,CAAD,CAAP,CAAa,OAAb,CAAqB,MAArB,CAA8B,CAAO,CAAC,KAD8B,GAExF,CAAO,CAAC,CAAD,CAAP,CAAe,CACb,GAAG,CAAE,CADQ,CAEb,KAAK,CAAE,CAAK,CAAC,KAFA,CAGb,IAAI,CAAE,CAHO,CAIb,OAAO,CAAE,CAAO,CAAC,KAJJ,CAFyE,CAQzF,CARD,CAFkB,CAWlB,CAAM,CAAC,MAAM,CAAC,MAAP,CAAc,CAAd,EAAuB,KAAvB,CAA6B,CAA7B,CAAgC,CAAhC,CAAD,CACP,CArBH,EAsBG,KAtBH,CAsBS,SAAA,CAAG,CAAI,CACZ,OAAO,CAAC,KAAR,CAAc,CAAd,CADY,CAEZ,CAAM,CAAC,EAAD,CACP,CAzBH,CA9DF,CAyFD,CAnGA,CAoGD,SAAS,CAAE,CACT,UAAU,CAAE,0BAAG,CAAA,CAAH,GAAG,KAAH,CAAU,CAAV,GAAU,IAAV,CAAgB,CAAhB,GAAgB,OAAhB,uDAAqE,CAArE,mDAAkH,CAAlH,2DAAsK,CAAtK,WADH,CAET,KAAK,CAAE,qBAAG,CAAA,CAAH,GAAG,KAAH,6CAA4C,CAAY,CAAC,cAAzD,6CAAwG,CAAxG,oBAFE,CAGT,MAAM,CAAE,kBAAQ,8BACd,MAAyD,SAAtB,GAAA,CAAY,CAAC,IAAb,CAAkC,CACnE,UAAU,CAAE,SADuD,CAEnE,IAAI,CAAE,wCAF6D,CAGnE,IAAI,CAAE,0BAH6D,CAAlC,CAI/B,CACF,UAAU,CAAE,SADV,CAEF,IAAI,CAAE,EAFJ,CAGF,IAAI,CAAE,qBAHJ,CAJJ,CAAQ,CAAR,GAAQ,UAAR,CAAoB,CAApB,GAAoB,IAApB,CAA0B,CAA1B,GAA0B,IAA1B,CASA,iEAAwD,CAAxD,2DAAyG,CAAzG,aAAiH,CAAjH,cAAyI,CAblI,CApGV,CAP4B,CAA/B,CA2HA,CAAU,CAAC,EAAX,CAAc,uBAAd,CAAuC,SAAC,CAAD,CAAS,CAAT,CAA4C,CACjF,MAAM,CAAC,QAAP,CAAgB,MAAhB,CAAuB,CAAU,CAAC,GAAlC,CACD,CAFD,CA5H2B,CA+HvB,CA/HuB,CA+Hb,CAAI,CAAC,aAAL,CAAqB,CA/HR,CAgItB,CAAI,CAAC,cAAL,CAAsB,CAC5B,CAjID,CAkIA,GAAI,CAAY,CAAC,gBAAb,EAAiC,CAAC,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,CAAtC,CAAiF,CAC/E,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,QAAvB,CAAf,CACA,CAAM,CAAC,EAAP,CAAY,gBAFmE,CAG/E,CAAM,CAAC,IAAP,CAAc,iBAHiE,CAI/E,CAAM,CAAC,GAAP,CAAa,CAAY,CAAC,gBAJqD,CAK/E,CAAM,CAAC,KAAP,GAL+E,CAM3E,CAAM,CAAC,UANoE,CAO7E,CAAM,CAAC,kBAAP,CAA4B,UAAM,EACP,QAArB,EAAA,CAAM,CAAC,UAAP,EAAsD,UAArB,EAAA,CAAM,CAAC,UADZ,IAE9B,CAAM,CAAC,kBAAP,CAA4B,IAFE,CAG9B,CAAc,EAHgB,CAKjC,CAZ4E,CAc7E,CAAM,CAAC,MAAP,CAAgB,UAAM,CACpB,CAAc,EACf,CAhB4E,CAkB/E,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,CAA1B,CACD,CAnBD,IAmBO,CAAA,CAAc,EAnNrB,CAoND,C,2BAED,sBAAc,CACZ,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CAAlB,CAA8D,SAAA,CAAQ,CAAI,CACxE,GAAM,CAAA,CAAQ,CAAG,CAAQ,CAAC,sBAAT,CAAgC,iBAAhC,EAAmD,CAAnD,CAAjB,CACA,CAAQ,CAAC,gBAAT,CAA0B,OAA1B,CAAmC,UAAM,CACvC,CAAQ,CAAC,SAAT,CAAmB,MAAnB,CAA0B,MAA1B,CACD,CAFD,IAGD,CALD,CAMD,C,gCAED,2BAAmB,CACb,KAAK,MAAL,CAAY,YADC,EACa,YAAY,CAAC,QAAQ,CAAC,cAAT,CAAwB,SAAxB,CAAD,CAAqC,KAAK,MAAL,CAAY,YAAjD,CAC3C,C,6BAED,wBAAgB,YACd,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,yBAA1B,CAAlB,CAAwE,SAAA,CAAU,CAAI,CACpF,GAAM,CAAA,CAAO,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAhB,CACA,CAAO,CAAC,SAAR,CAAoB,CAAU,CAAC,SAFqD,CAGpF,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAAf,CACA,CAAO,CAAC,WAAR,CAAoB,CAApB,CAJoF,CAKpF,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,OAAvB,CAAf,CACA,CAAM,CAAC,WAAP,CAAmB,CAAnB,CANoF,CAOpF,GAAM,CAAA,CAAG,CAAG,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAZ,CACA,CAAM,CAAC,WAAP,CAAmB,CAAnB,CARoF,CASpF,GAAM,CAAA,CAAG,CAAG,QAAQ,CAAC,aAAT,CAAuB,IAAvB,CAAZ,CACA,CAAG,CAAC,WAAJ,CAAgB,CAAhB,CAVoF,CAWpF,CAAU,CAAC,aAAX,CAAyB,YAAzB,CAAsC,CAAtC,CAA+C,CAA/C,CAXoF,CAYpF,CAAG,CAAC,WAAJ,CAAgB,CAAhB,CACD,CAbD,CADc,CAed,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,sBAA1B,CAAlB,CAAqE,SAAA,CAAO,CAAI,CAC9E,GAAM,CAAA,CAAa,CAAG,CAAO,CAAC,gBAAR,CAAyB,mBAAzB,CAAtB,CACA,GAAI,CAAa,CAAC,MAAlB,CAA0B,IAClB,CAAA,CAAK,CAAG,CAAa,CAAC,CAAa,CAAC,MAAd,CAAuB,CAAxB,CADH,CAElB,CAAO,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAFQ,CAGxB,CAAO,CAAC,SAAR,CAAoB,eAAiB,CAAK,CAAC,SAAN,CAAgB,WAAhB,EAHb,CAIxB,GAAM,CAAA,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAf,CACA,CAAM,CAAC,SAAP,CAAiB,GAAjB,CAAqB,YAArB,CALwB,CAMxB,CAAM,CAAC,kBAAP,CAA0B,YAA1B,CAAwC,oDAAxC,CANwB,CAOxB,CAAM,CAAC,gBAAP,CAAwB,OAAxB,CAAiC,UAAM,CACrC,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,MAAzB,CACD,CAFD,IAPwB,CAUxB,CAAO,CAAC,WAAR,CAAoB,CAApB,CAVwB,CAWxB,GAAM,CAAA,CAAS,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAlB,CACA,CAAS,CAAC,kBAAV,CAA6B,YAA7B,CAA2C,2CAA3C,CAZwB,CAaxB,CAAS,CAAC,SAAV,CAAoB,GAApB,CAAwB,UAAxB,CAbwB,CAcxB,CAAS,CAAC,gBAAV,CAA2B,OAA3B,CAAoC,UAAM,CACxC,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACD,CAFD,IAdwB,CAiBxB,CAAO,CAAC,WAAR,CAAoB,CAApB,CAjBwB,CAkBxB,GAAM,CAAA,CAAK,CAAG,QAAQ,CAAC,aAAT,CAAuB,MAAvB,CAAd,CACA,CAAK,CAAC,kBAAN,CAAyB,YAAzB,CAAuC,qCAAvC,CAnBwB,CAoBxB,CAAK,CAAC,SAAN,CAAgB,GAAhB,CAAoB,MAApB,CApBwB,CAqBxB,GAAM,CAAA,CAAI,CAAG,CAAK,CAAC,SAAnB,CAEA,IADqC,CAAjC,CAAA,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,aAAjB,EAAsC,CAAI,CAAC,KAAL,CAAW,IAAX,EAAiB,MAAjB,CAA0B,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,aAAjB,CAAiC,CACrG,GADwG,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,MAAtB,CACxG,CAAI,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,SAArB,CAAgC,CAC9B,CAAK,CAAC,YAAN,CAAmB,qBAAnB,CAA0C,CAA1C,CAD8B,CAE9B,CAAK,CAAC,KAAN,CAAc,CAAI,CAAC,MAAL,CAAY,IAAZ,CAAiB,SAFD,CAG9B,GAAM,CAAA,CAAS,CAAG,GAAI,CAAA,WAAJ,CAAgB,CAAhB,CAAlB,CACA,CAAS,CAAC,EAAV,CAAa,SAAb,CAAwB,UAAM,CAC5B,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA4B,OAA5B,CACD,CAFD,CAJ8B,CAO9B,CAAO,CAAC,WAAR,CAAoB,CAApB,CACD,CACD,CAAO,CAAC,YAAR,CAAqB,CAArB,CAA8B,CAAO,CAAC,UAAtC,CACD,CACF,CApCD,CAqCD,C,yBAED,oBAAY,CACV,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,gBAA1B,CAAlB,CAA+D,SAAA,CAAM,CAAI,CACvE,GAAM,CAAA,CAAQ,CAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAjB,CACA,CAAQ,CAAC,SAAT,CAAqB,eAFkD,CAGvE,CAAM,CAAC,aAAP,CAAqB,YAArB,CAAkC,CAAlC,CAA4C,CAA5C,CAHuE,CAIvE,CAAQ,CAAC,WAAT,CAAqB,CAArB,CACD,CALD,CAMD,C,8BAED,yBAAiB,CACf,IAAK,GAAI,CAAA,CAAG,CAAG,CAAf,CAAyB,CAAP,EAAA,CAAlB,CAA4B,CAAG,EAA/B,CACE,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,gBAAT,CAA0B,uBAAyB,CAAnD,CAAlB,CAA2E,SAAA,CAAO,CAAI,CACpF,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,aAAtB,CADoF,CAEpF,CAAO,CAAC,kBAAR,CAA2B,YAA3B,sBAAsD,CAAO,CAAC,EAA9D,kCACD,CAHD,CAKH,C,uBAED,kBAAU,YACF,CAAQ,CAAG,QAAQ,CAAC,cAAT,CAAwB,iBAAxB,CADT,CAER,GAAiB,IAAb,GAAA,CAAJ,CAGA,GAAmE,MAA/D,GAAA,QAAQ,CAAC,cAAT,CAAwB,YAAxB,EAAsC,YAAtC,CAAmD,MAAnD,GAAyE,KAAK,IAAL,CAAU,WAAV,EAA7E,CAAsG,CACpG,GAAM,CAAA,CAAiB,CAAG,QAAQ,CAAC,cAAT,CAAwB,oBAAxB,CAA1B,CACI,CAAQ,CAAC,aAAT,GAA2B,CAFqE,GAGlG,CAAQ,CAAC,aAAT,CAAuB,WAAvB,CAAmC,CAAnC,CAHkG,CAIlG,CAAiB,CAAC,WAAlB,CAA8B,CAA9B,CAJkG,EAMhG,KAAK,YAN2F,EAM7E,KAAK,cAAL,CAAoB,MAApB,CAA2B,KAAK,YAAhC,CACxB,CAPD,IAOO,CACL,GAAM,CAAA,CAAe,CAAG,QAAQ,CAAC,cAAT,CAAwB,kBAAxB,CAAxB,CACI,CAAQ,CAAC,aAAT,GAA2B,CAF1B,GAGH,CAAQ,CAAC,aAAT,CAAuB,WAAvB,CAAmC,CAAnC,CAHG,CAIH,CAAe,CAAC,WAAhB,CAA4B,CAA5B,CAJG,KAMC,CAAA,CAAI,CAAG,QAAQ,CAAC,cAAT,CAAwB,UAAxB,CANR,CAOC,CAAK,CAAG,QAAQ,CAAC,sBAAT,CAAgC,MAAhC,EAAwC,CAAxC,CAPT,CAQC,CAAI,CAAG,CAAK,CAAC,qBAAN,EARR,CASL,CAAI,CAAC,KAAL,CAAW,IAAX,WAAqB,CAAI,CAAC,IAAL,CAAY,CAAI,CAAC,KAAjB,CAAyB,EAA9C,MATK,CAUL,CAAI,CAAC,KAAL,CAAW,QAAX,WAAyB,CAAK,CAAC,qBAAN,GAA8B,IAA9B,CAAqC,EAA9D,MAVK,CAWL,CAAI,CAAC,KAAL,CAAW,UAAX,CAAwB,SAXnB,IAYC,CAAA,CAAgB,CAAG,CAAQ,CAAC,gBAAT,CAA0B,eAA1B,CAZpB,CAaC,CAAc,CAAG,CAAQ,CAAC,oBAAT,CAA8B,IAA9B,CAblB,CAcC,CAAmB,CAAG,QAAQ,CAAC,sBAAT,CAAgC,aAAhC,CAdvB,CAeC,CAAa,CAAoD,QAAjD,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,gBAA3B,CAfjB,CAgBC,CAAY,CAAG,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,EAA0C,YAhB1D,CAiBC,CAAW,CAAG,IAAM,CAAa,CAAG,CAAH,CAAkB,CAArC,CAjBf,CAkBC,CAAS,CAAG,CAAI,CAAC,SAlBlB,CAmBC,CAAY,CAAG,CAAS,CAAG,CAAZ,EAA2B,CAAa,CAAG,CAAH,CAAO,CAA/C,CAnBhB,CAoBL,KAAK,YAAL,CAAoB,KAAK,YAAL,EAAsB,UAAM,IACxC,CAAA,CAAS,CAAG,QAAQ,CAAC,cAAT,CAAwB,aAAxB,EAAuC,SADX,CAExC,CAAS,CAAG,CAAS,CAAG,CAAI,CAAC,qBAAL,GAA6B,MAFb,CAGxC,CAAY,CAAG,CAAS,CAAG,CAAZ,EAA2B,CAAa,CAAG,CAAH,CAAO,CAA/C,CAHyB,CAI1C,CAAI,CAAC,YAAL,CAAoB,CAJsB,EAK5C,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,UALsB,CAM5C,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MAN4C,EAOnC,CAAI,CAAC,YAAL,CAAoB,CAPe,EAQ5C,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,UARsB,CAS5C,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MAT4C,GAW5C,CAAI,CAAC,KAAL,CAAW,QAAX,CAAsB,OAXsB,CAY5C,CAAI,CAAC,KAAL,CAAW,GAAX,WAAoB,CAApB,MAZ4C,EAe9C,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAoC,SAAA,CAAQ,CAAI,CAAE,CAAQ,CAAC,SAAT,CAAmB,MAAnB,CAA0B,QAA1B,CAAsC,CAAxF,CAf8C,CAgB9C,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAkC,SAAA,CAAM,CAAI,CAAE,CAAM,CAAC,SAAP,CAAiB,MAAjB,CAAwB,YAAxB,CAAwC,CAAtF,CAhB8C,CAmB9C,OAFM,CAAA,CAAa,CAAG,IAAM,CAAa,CAAG,CAAH,CAAkB,CAArC,CAEtB,CADI,CAAc,CAAG,CAAmB,CAAC,MAApB,CAA6B,CAClD,CAAS,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAmB,CAAC,MAApB,CAA6B,CAAjD,CAAoD,CAAC,EAArD,CAAyD,IACjD,CAAA,CAAO,CAAG,CAAmB,CAAC,CAAD,CAAnB,CAAuB,qBAAvB,GAA+C,GADR,CAEjD,CAAO,CAAG,CAAmB,CAAC,CAAC,CAAG,CAAL,CAAnB,CAA2B,qBAA3B,GAAmD,GAFZ,CAGvD,GAAU,CAAL,EAAA,CAAC,EAAS,CAAO,CAAG,CAArB,EACC,CAAO,EAAI,CAAX,EAA4B,CAAO,CAAG,CAD3C,CAC2D,CACzD,CAAc,CAAG,CADwC,CAEzD,KACD,CACF,CACD,GAAuB,CAAC,CAApB,GAAA,CAAJ,CAA2B,CACzB,CAAgB,CAAC,CAAD,CAAhB,CAAiC,SAAjC,CAA2C,GAA3C,CAA+C,QAA/C,CADyB,KAEzB,GAAI,CAAA,CAAO,CAAG,CAAgB,CAAC,CAAD,CAAhB,CAAiC,aAFtB,CAGlB,CAAO,GAAK,CAHM,EAIvB,CAAO,CAAC,SAAR,CAAkB,GAAlB,CAAsB,YAAtB,CAJuB,CAKvB,CAAO,CAAG,CAAO,CAAC,aAAR,CAAsB,aAEnC,CACF,CAxDI,CAyDL,KAAK,YAAL,EAzDK,CA0DL,KAAK,cAAL,CAAoB,GAApB,CAAwB,KAAK,YAA7B,CACD,CACF,C,wBAED,mBAAW,CACL,KAAK,MAAL,CAAY,IADP,EACa,mBAAmB,CAAC,QAAQ,CAAC,IAAV,CAAgB,KAAK,MAAL,CAAY,IAA5B,CAC1C,C,2BAED,sBAAc,YACN,CAAgB,CAAG,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CADb,CAER,CAAgB,CAAC,MAFT,GAGV,OAAO,CAAC,UAAR,CAAmB,CAAC,WAAW,GAAZ,CAAqB,KAAK,CAAE,SAA5B,CAAnB,CAHU,CAIV,KAAK,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAAoC,SAAA,CAAQ,CAAI,CAC9C,OAAO,CAAC,UAAR,CAAmB,MAAnB,CAA0B,OAAS,CAAQ,CAAC,EAA5C,CAAgD,CAAI,CAAC,IAAL,CAAU,CAAQ,CAAC,EAAnB,CAAhD,CAAwE,SAAA,CAAO,CAAI,CACjF,CAAQ,CAAC,kBAAT,CAA4B,YAA5B,CAA0C,CAA1C,CACD,CAFD,CAEG,CAFH,CAGD,CAJD,CAJU,CAUb,C,2BAED,sBAAc,YACZ,KAAK,qBAAL,CAA6B,KAAK,qBAAL,EAA+B,UAAM,CAChE,CAAI,CAAC,WAAL,CAAmB,CAAI,CAAC,WAAL,EAAoB,EADyB,CAEhE,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAI,CAAC,WAAL,CAAiB,MAArC,CAA6C,CAAC,EAA9C,CACE,CAAI,CAAC,WAAL,CAAiB,CAAjB,EAAoB,OAApB,GAEF,CAAI,CAAC,WAAL,CAAmB,EAL6C,CAMhE,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,SAAhC,CAAlB,CAA8D,SAAA,CAAQ,CAAI,CACxE,GAAM,CAAA,CAAK,CAAG,OAAO,CAAC,IAAR,CAAa,CAAb,CAAuB,CAAI,CAAC,MAAL,CAAc,MAAd,CAAuB,UAA9C,CAA0D,CAAC,QAAQ,CAAE,KAAX,CAA1D,CAAd,CACA,CAAK,CAAC,SAAN,CAAgB,IAAI,CAAC,KAAL,CAAW,CAAI,CAAC,IAAL,CAAU,CAAQ,CAAC,EAAnB,CAAX,CAAhB,CAFwE,CAGxE,CAAI,CAAC,WAAL,CAAiB,IAAjB,CAAsB,CAAtB,CACD,CAJD,CAKD,CAZW,CAaZ,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,KAAK,qBAAlC,CAbY,CAcZ,KAAK,qBAAL,EAdY,CAeZ,KAAK,gBAAL,CAAwB,KAAK,gBAAL,EAA0B,UAAM,CACtD,IAAK,GAAI,CAAA,CAAC,CAAG,CAAb,CAAgB,CAAC,CAAG,CAAI,CAAC,WAAL,CAAiB,MAArC,CAA6C,CAAC,EAA9C,CACE,CAAI,CAAC,WAAL,CAAiB,CAAjB,EAAoB,MAApB,EAEH,CAnBW,CAoBZ,KAAK,cAAL,CAAoB,GAApB,CAAwB,KAAK,gBAA7B,CACD,C,0BAED,qBAAa,YACP,KAAK,MAAL,CAAY,MADL,GAET,QAAQ,CAAC,WAAT,CAAuB,KAAK,MAAL,CAAY,MAAZ,CAAmB,WAFjC,CAGT,QAAQ,CAAC,gBAAT,CAA0B,KAAK,MAAL,CAAY,MAAZ,CAAmB,aAA7C,CAHS,CAIT,KAAK,UAAL,CAAkB,KAAK,UAAL,EAAmB,EAJ5B,CAKT,KAAK,IAAL,CAAU,OAAV,CAAkB,QAAQ,CAAC,sBAAT,CAAgC,QAAhC,CAAlB,CAA6D,SAAA,CAAO,CAAI,OAC8B,CAAI,CAAC,IAAL,CAAU,CAAO,CAAC,EAAlB,CAD9B,CAC9D,CAD8D,GAC9D,GAD8D,CACzD,CADyD,GACzD,GADyD,CACpD,CADoD,GACpD,IADoD,CAC9C,CAD8C,GAC9C,UAD8C,CAClC,CADkC,GAClC,SADkC,CACvB,CADuB,GACvB,MADuB,CACf,CADe,GACf,UADe,CACH,CADG,GACH,SADG,CACQ,CADR,GACQ,KADR,CACe,CADf,GACe,UADf,CAEhE,CAAM,CAAG,GAAI,CAAA,QAAQ,CAAC,GAAb,CAAiB,CAC9B,SAAS,CAAE,CADmB,CAE9B,MAAM,CAAE,CAAC,CAAD,CAAM,CAAN,CAFsB,CAG9B,IAAI,CAAE,CAHwB,CAI9B,OAAO,CAAE,EAJqB,CAK9B,KAAK,CAAE,CAAI,CAAC,MAAL,CAAc,CAAd,CAA0B,CALH,CAM9B,kBAAkB,GANY,CAAjB,CAFuD,CAUlE,CAVkE,EAWpE,GAAI,CAAA,QAAQ,CAAC,MAAb,GAAsB,SAAtB,CAAgC,CAAC,CAAD,CAAM,CAAN,CAAhC,EAA4C,KAA5C,CAAkD,CAAlD,CAXoE,CAalE,CAbkE,EAcpE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,iBAA/B,CAAoD,cAApD,CAdoE,CAgBlE,CAhBkE,EAiBpE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,gBAAb,CAA8B,CAC9C,eAAe,CAAE,CACf,kBAAkB,GADH,CAD6B,CAI9C,gBAAgB,GAJ8B,CAK9C,iBAAiB,GAL6B,CAA9B,CAAlB,CAMI,cANJ,CAjBoE,CAyBlE,CAzBkE,EA0BpE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,YAA/B,CA1BoE,CA4BlE,CA5BkE,EA6BpE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,QAAQ,CAAC,iBAA/B,CA7BoE,CA+BtE,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,cAAtB,CA/BsE,CAgCtE,CAAI,CAAC,UAAL,CAAgB,IAAhB,CAAqB,CAArB,CACD,CAjCD,CALS,CAuCT,KAAK,oBAAL,CAA4B,KAAK,oBAAL,EAA8B,UAAM,CAC9D,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAI,CAAC,UAAvB,CAAmC,SAAA,CAAM,CAAI,IACrC,CAAA,CAAO,CAAG,CAAM,CAAC,YAAP,EAD2B,GAET,CAAI,CAAC,IAAL,CAAU,CAAO,CAAC,EAAlB,CAFS,CAEnC,CAFmC,GAEnC,UAFmC,CAEvB,CAFuB,GAEvB,SAFuB,CAG3C,CAAM,CAAC,QAAP,CAAgB,CAAI,CAAC,MAAL,CAAc,CAAd,CAA0B,CAA1C,CAH2C,CAI3C,CAAM,CAAC,UAAP,CAAkB,GAAI,CAAA,cAAtB,CACD,CALD,CAMD,CA9CQ,CA+CT,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,KAAK,oBAAlC,CA/CS,CAiDZ,C,0BAED,qBAAa,YACX,GAAI,KAAK,MAAL,CAAY,MAAhB,CAAwB,IAChB,CAAA,CAAY,CAAG,KAAK,MAAL,CAAY,MADX,CAEhB,CAAK,CAAG,CAAY,CAAC,KAAb,CAAqB,CAAY,CAAC,KAAlC,CAA0C,GAFlC,CAGhB,CAAW,CAAG,CAAY,CAAC,WAAb,CAA2B,CAAY,CAAC,WAAxC,CAAsD,GAHpD,CAIhB,CAAU,CAAG,CAAY,CAAC,UAAb,CAA0B,CAAY,CAAC,UAAvC,CAAoD,GAJjD,CAKtB,MAAM,CAAC,MAAP,CAAc,CAAY,CAAC,IAA3B,EAAiC,OAAjC,CAAyC,SAAA,CAAK,CAAI,CAChD,GAAM,CAAA,CAAO,CAAG,SAAC,CAAD,CAAO,IACf,CAAA,CAAE,CAAG,CAAK,CAAC,CAAD,CADK,CAEf,CAAQ,CAAG,GAAI,CAAA,MAAJ,YAAe,CAAf,EAAqB,CACpC,OAAO,CAAE,CAAI,CAAC,IAAL,CAAU,CAAV,CAD2B,CAEpC,KAAK,CAAE,CAF6B,CAGpC,QAAQ,GAH4B,CAIpC,WAAW,CAAE,CAJuB,CAKpC,UAAU,CAAE,CALwB,CAMpC,gBAAgB,GANoB,CAOpC,aAAa,CAAE,wBAAM,OACf,CAAA,CAAC,GAAK,CAAK,CAAC,MAAN,CAAe,CADN,MAEY,CAAzB,EAAA,CAAY,CAAC,QAFA,EAEe,MAAM,CAAC,UAAP,CAAkB,UAAM,CACtD,CAAQ,CAAC,OAAT,EACD,CAF+B,CAE7B,CAAY,CAAC,QAFgB,CAFf,OAOnB,CAAQ,CAAC,OAAT,EAPmB,CAQnB,CAAO,CAAC,CAAC,CAAG,CAAL,CARY,CASpB,CAhBmC,CAArB,EAiBd,EAjBc,EAkBlB,CApBD,CAqBA,CAAO,CAAC,CAAD,CACR,CAvBD,CAwBD,CACF,C,2BAED,sBAAc,YACZ,GAAI,KAAK,MAAL,CAAY,OAAhB,CAAyB,CACvB,GAAI,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAAxB,CAAgC,CAC9B,GAAM,CAAA,CAAM,CAAG,GAAI,CAAA,MAAJ,CAAW,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAA/B,CAAf,CACA,CAAM,CAAC,WAAP,CAAmB,KAAK,MAAxB,CAF8B,CAG9B,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,UAAM,CACjC,CAAM,CAAC,WAAP,CAAmB,CAAI,CAAC,MAAxB,CACD,CAFD,CAH8B,CAM9B,KAAK,MAAL,CAAY,YAAZ,EAA4B,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAApB,CAA2B,YAAvD,EAAuE,CAAM,CAAC,EAAP,CAAU,iBAAV,CAA6B,UAAM,CACxG,QAAQ,CAAC,gBAAT,CAA0B,2BAA1B,EAAuD,OAAvD,CAA+D,SAAC,CAAD,CAAc,CAC3E,GAAM,CAAA,CAAK,CAAG,CAAQ,CAAC,gBAAT,CAA0B,oDAA1B,CAAd,CACA,CAAK,CAAC,OAAN,CAAc,SAAC,CAAD,CAAU,CACtB,CAAI,CAAC,YAAL,CAAkB,qBAAlB,CAAyC,EAAzC,CADsB,CAEtB,GAAM,CAAA,CAAK,CAAG,QAAQ,CAAC,aAAT,CAAuB,GAAvB,CAAd,CACA,CAAK,CAAC,YAAN,CAAmB,OAAnB,CAA4B,cAA5B,CAHsB,CAItB,CAAK,CAAC,YAAN,CAAmB,MAAnB,CAA2B,CAAI,CAAC,GAAhC,CAJsB,CAKtB,CAAK,CAAC,YAAN,CAAmB,UAAnB,CAA+B,CAAI,CAAC,GAApC,CALsB,CAMtB,CAAK,CAAC,MAAN,CAAa,CAAI,CAAC,SAAL,EAAb,CANsB,CAOtB,CAAI,CAAC,WAAL,CAAiB,CAAjB,CACD,CARD,CAF2E,CAWvE,CAAK,CAAC,MAXiE,EAWzD,YAAY,CAAC,CAAD,CAAW,CAAE,QAAQ,CAAE,eAAZ,CAAX,CAC/B,CAZD,CAaD,CAdsE,CAexE,CACD,GAAI,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAAxB,CAAgC,CAC9B,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAApB,CAA2B,IAA3B,CAAkC,SAAS,CAAC,MAAM,CAAC,QAAP,CAAgB,IAAjB,CADb,CAE9B,GAAM,CAAA,CAAM,CAAG,GAAI,CAAA,MAAJ,CAAW,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAA/B,CAAf,CACA,CAAM,CAAC,MAAP,CAAc,QAAd,CACD,CAID,GAHI,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAGxB,EAFE,GAAI,CAAA,MAAJ,CAAW,KAAK,MAAL,CAAY,OAAZ,CAAoB,MAA/B,CAEF,CAAI,KAAK,MAAL,CAAY,OAAZ,CAAoB,UAAxB,CAAoC,IAC5B,CAAA,CAAgB,CAAG,KAAK,MAAL,CAAY,OAAZ,CAAoB,UADX,CAE5B,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,QAAvB,CAFmB,CAGlC,CAAM,CAAC,GAAP,CAAa,+BAHqB,CAIlC,CAAM,CAAC,IAAP,CAAc,iBAJoB,CAKlC,CAAM,CAAC,YAAP,CAAoB,MAApB,CAA4B,CAAgB,CAAC,IAA7C,CALkC,CAMlC,CAAM,CAAC,YAAP,CAAoB,YAApB,CAAkC,CAAgB,CAAC,SAAnD,CANkC,CAO9B,CAAgB,CAAC,KAPa,EAON,CAAM,CAAC,YAAP,CAAoB,OAApB,CAA6B,CAAgB,CAAC,KAA9C,CAPM,CAQlC,CAAM,CAAC,YAAP,CAAoB,OAApB,CAA6B,KAAK,MAAL,CAAc,CAAgB,CAAC,SAA/B,CAA2C,CAAgB,CAAC,UAAzF,CARkC,CASlC,CAAM,CAAC,WAAP,CAAqB,WATa,CAUlC,CAAM,CAAC,KAAP,GAVkC,CAWlC,QAAQ,CAAC,cAAT,CAAwB,YAAxB,EAAsC,WAAtC,CAAkD,CAAlD,CAXkC,CAYlC,KAAK,wBAAL,CAAgC,KAAK,wBAAL,EAAkC,UAAM,IAChE,CAAA,CAAO,CAAG,CACd,IAAI,CAAE,WADQ,CAEd,KAAK,CAAE,CAAI,CAAC,MAAL,CAAc,CAAgB,CAAC,SAA/B,CAA2C,CAAgB,CAAC,UAFrD,CADsD,CAKhE,CAAM,CAAG,QAAQ,CAAC,aAAT,CAAuB,mBAAvB,CALuD,CAMtE,CAAM,CAAC,aAAP,CAAqB,WAArB,CAAiC,CAAjC,CAA0C,qBAA1C,CACD,CAnBiC,CAoBlC,KAAK,mBAAL,CAAyB,GAAzB,CAA6B,KAAK,wBAAlC,CACD,CACF,CACF,C,iCAED,4BAAoB,CACd,KAAK,MAAL,CAAY,aADE,EACa,aAAa,CAAC,UAAd,CAAyB,KAAK,MAAL,CAAY,aAArC,CAChC,C,2BAED,sBAAc,OAIH,IAAI,CAAC,KAJF,CACR,CAAG,CAAG,GAAI,CAAA,IADF,CAER,CAAG,CAAG,GAAI,CAAA,IAAJ,CAAS,KAAK,MAAL,CAAY,MAAZ,CAAmB,QAA5B,CAFE,CAGR,CAAO,CAAG,CAAC,CAAG,CAAG,CAAP,EAAc,GAHhB,CAIV,CAAI,CAAG,EAAW,CAAO,CAAG,EAAV,CAAe,EAAf,CAAoB,EAA/B,CAJG,CAKV,CAAK,CAAG,EAAW,CAAO,CAAG,EAAV,CAAe,EAAf,CAAqB,GAAK,CAArC,CALE,CAMV,CAAO,CAAG,EAAW,CAAO,CAAG,EAAV,CAAgB,KAAU,CAA1B,CAAmC,GAAK,CAAnD,CANA,CAOV,CAAO,CAAG,EAAW,CAAC,CAAG,CAAG,CAAP,EAAc,GAAd,CAAsB,MAAe,CAArC,CAA8C,KAAU,CAAxD,CAAkE,GAAK,CAAlF,CAPA,CAQZ,QAAQ,CAAC,aAAT,CAAuB,YAAvB,EAAqC,SAArC,WAAoD,CAApD,aAA4D,CAAO,CAAP,KAAc,QAAd,CAAuB,CAAvB,CAAyB,CAAzB,CAA5D,aAA2F,CAAO,CAAP,KAAgB,QAAhB,CAAyB,CAAzB,CAA2B,CAA3B,CAA3F,aAA4H,CAAO,CAAP,KAAgB,QAAhB,CAAyB,CAAzB,CAA2B,CAA3B,CAA5H,CACD,C,4BAED,uBAAe,YACV,KAAK,MAAL,CAAY,MAAZ,CAAmB,MAAnB,EAA6B,KAAK,MAAL,CAAY,MAAZ,CAAmB,QADtC,GAEX,KAAK,QAAL,CAAgB,WAAW,CAAC,KAAK,WAAN,CAAmB,GAAnB,CAFhB,CAGX,QAAQ,CAAC,gBAAT,CAA0B,kBAA1B,CAA8C,UAAM,OAC9C,CAAA,QAAQ,CAAC,MADqC,CAEzC,aAAa,CAAC,CAAI,CAAC,QAAN,CAF4B,MAIlD,CAAI,CAAC,QAAL,CAAgB,WAAW,CAAC,CAAI,CAAC,WAAN,CAAmB,GAAnB,CAJuB,CAKnD,CALD,CAHW,CAUd,C,iCAED,4BAAoB,CACd,KAAK,MAAL,CAAY,SAAZ,EAAyB,iBAAmB,CAAA,SAD9B,GAEhB,SAAS,CAAC,aAAV,CACG,QADH,CACY,wBADZ,CACsC,CAAE,KAAK,CAAE,GAAT,CADtC,EAEG,IAFH,CAEQ,UAAwB,CAE7B,CAJH,EAKG,KALH,CAKS,SAAU,CAAV,CAAiB,CACtB,OAAO,CAAC,KAAR,CAAc,SAAd,CAAyB,CAAzB,CACD,CAPH,CAFgB,CAUhB,SAAS,CAAC,aAAV,CAAwB,KAAxB,CAA8B,IAA9B,CAAmC,UAAwB,CAE1D,CAFD,CAVgB,CAcnB,C,6BAED,wBAAgB,CACd,KAAK,MAAL,CAAY,SAAZ,CAAsB,MAAtB,EAAgC,GAAI,CAAA,SAAJ,CAAc,CAC5C,OAAO,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,OAAtB,EAAiC,oFADE,CAE5C,QAAQ,CAAC,KAAK,MAAL,CAAY,SAAZ,CAAsB,QAAtB,EAAkC,gBAFC,CAG5C,OAAO,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,OAHa,CAI5C,KAAK,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,KAJe,CAK5C,MAAM,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,MALc,CAM5C,UAAU,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,UANU,CAO5C,UAAU,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,UAPU,CAQ5C,MAAM,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,MARc,CAS5C,QAAQ,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,QATY,CAU5C,UAAU,CAAE,KAAK,MAAL,CAAY,SAAZ,CAAsB,UAVU,CAAd,CAYjC,C,yBAED,oBAAY,CACV,KAAK,MAAL,CAAY,WAAZ,EAA2B,KAAK,CAAC,eAAN,EAC5B,C,wBAED,mBAAW,YACH,CAAQ,CAAG,EADR,CAIT,GAFqD,MAAjD,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,gBAA3B,CAEJ,EAF6D,CAAQ,CAAC,IAAT,CAAc,QAAQ,CAAC,cAAT,CAAwB,gBAAxB,CAAd,CAE7D,CADoD,MAAhD,GAAA,QAAQ,CAAC,IAAT,CAAc,YAAd,CAA2B,eAA3B,CACJ,EAD4D,CAAQ,CAAC,IAAT,CAAc,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CAAd,CAC5D,CAAI,QAAQ,CAAC,cAAT,CAAwB,UAAxB,CAAJ,CAAyC,CACvC,GAAM,CAAA,CAAa,CAAG,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CAAtB,CACA,CAAa,CAAC,IAAd,YAFuC,CAGvC,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,OAC/B,CARQ,GASH,CAAA,CAAa,CAAG,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CATb,CAUH,CAAQ,CAAG,EAVR,CAWT,MAAM,CAAC,gBAAP,CAAwB,QAAxB,CAAkC,UAAM,CACtC,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,IAAL,CAAU,YAAV,EADkB,IAEhC,CAAA,CAAM,CAAG,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,YAFF,CAGhC,CAAQ,CAAG,CAAI,CAAC,IAAL,CAAU,QAAV,EAHqB,CAItC,CAAI,CAAC,IAAL,CAAU,OAAV,CAAkB,CAAlB,CAA4B,SAAA,CAAO,CAAI,CACjC,CAAM,CAAG,CADwB,EAEnC,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,YAAzB,CAFmC,CAGnC,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA8B,CAAC,WAAD,CAAc,QAAd,CAA9B,IAHmC,EAI1B,CAAM,CAAG,CAAE,CAJe,GAKnC,CAAO,CAAC,SAAR,CAAkB,MAAlB,CAAyB,WAAzB,CALmC,CAMnC,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAA8B,CAAC,YAAD,CAAe,QAAf,CAA9B,IANmC,CAQtC,CARD,CAJsC,CAalC,CAAI,CAAC,YAAL,CAdyB,GACS,CAchC,CAAQ,EAAI,CAAM,CAAG,CAdW,EAelC,CAAa,CAAC,SAAd,CAAwB,MAAxB,CAA+B,QAA/B,CAfkC,CAgBlC,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAAoC,CAAC,SAAD,CAAY,QAAZ,CAApC,IAhBkC,GAiBzB,CAAC,CAAD,EAAa,CAAM,CAAG,CAAE,CAjBC,IAkBlC,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,OAlBI,CAmBlC,CAAa,CAAC,SAAd,CAAwB,MAAxB,CAA+B,SAA/B,CAnBkC,CAoBlC,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAAoC,CAAC,QAAD,CAAW,QAAX,CAApC,IApBkC,GAuBhC,CAAC,CAvB+B,GAwBlC,CAAa,CAAC,SAAd,CAAwB,MAAxB,CAA+B,QAA/B,CAxBkC,CAyBlC,CAAI,CAAC,IAAL,CAAU,UAAV,CAAqB,CAArB,CAAoC,CAAC,SAAD,CAAY,QAAZ,CAApC,IAzBkC,EA2BpC,CAAa,CAAC,KAAd,CAAoB,OAApB,CAA8B,MA3BM,qCA6BpB,CAAI,CAAC,cA7Be,MA6BtC,+BAAS,CAAA,CAAT,SAAuC,CAAK,EAA5C,CA7BsC,+BA8BtC,CAAI,CAAC,YAAL,CAAoB,CAAI,CAAC,YAC1B,CA/BD,IAgCD,C,wBAED,mBAAW,YACT,MAAM,CAAC,gBAAP,CAAwB,QAAxB,CAAkC,UAAM,CACjC,CAAI,CAAC,cAD4B,GAEpC,CAAI,CAAC,cAAL,CAAsB,MAAM,CAAC,UAAP,CAAkB,UAAM,CAC5C,CAAI,CAAC,cAAL,CAAsB,IADsB,oCAE1B,CAAI,CAAC,cAFqB,MAE5C,+BAAS,CAAA,CAAT,SAAuC,CAAK,EAA5C,CAF4C,+BAG5C,CAAI,CAAC,OAAL,EAH4C,CAI5C,CAAI,CAAC,WAAL,EAJ4C,CAK5C,CAAI,CAAC,UAAL,EACD,CANqB,CAMnB,GANmB,CAFc,CAUvC,CAVD,IAWD,C,2BAED,sBAAc,YACZ,QAAQ,CAAC,cAAT,CAAwB,MAAxB,EAAgC,gBAAhC,CAAiD,OAAjD,CAA0D,UAAM,oCAC5C,CAAI,CAAC,iBADuC,MAC9D,+BAAS,CAAA,CAAT,SAA0C,CAAK,EAA/C,CAD8D,+BAE9D,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,MAAxB,CAA+B,MAA/B,CACD,CAHD,IAID,C,oBAED,eAAO,YACL,GAAI,CACF,KAAK,WAAL,EADE,CAEF,KAAK,WAAL,EAFE,CAGF,KAAK,cAAL,EAHE,CAIF,KAAK,eAAL,EAJE,CAKF,KAAK,UAAL,EALE,CAMF,KAAK,WAAL,EANE,CAOF,KAAK,gBAAL,EAPE,CAQF,KAAK,aAAL,EARE,CASF,KAAK,SAAL,EATE,CAUF,KAAK,cAAL,EAVE,CAWF,KAAK,QAAL,EAXE,CAYF,KAAK,WAAL,EAZE,CAaF,KAAK,WAAL,EAbE,CAcF,KAAK,UAAL,EAdE,CAeF,KAAK,UAAL,EAfE,CAgBF,KAAK,iBAAL,EAhBE,CAiBF,KAAK,YAAL,EAjBE,CAkBF,KAAK,iBAAL,EAlBE,CAmBF,KAAK,aAAL,EAnBE,CAoBF,KAAK,SAAL,EACD,CAAC,MAAO,CAAP,CAAY,CACZ,OAAO,CAAC,KAAR,CAAc,CAAd,CACD,CAED,MAAM,CAAC,UAAP,CAAkB,UAAM,CACtB,CAAI,CAAC,OAAL,EADsB,CAEtB,CAAI,CAAC,WAAL,EAFsB,CAItB,CAAI,CAAC,QAAL,EAJsB,CAKtB,CAAI,CAAC,QAAL,EALsB,CAMtB,CAAI,CAAC,WAAL,EACD,CAPD,CAOG,GAPH,CAQD,C,SAGG,SAAS,CAAG,UAAM,CACtB,GAAM,CAAA,CAAK,CAAG,GAAI,CAAA,KAAlB,CACA,CAAK,CAAC,IAAN,EACD,C,CAE2B,SAAxB,GAAA,QAAQ,CAAC,U,CAGX,QAAQ,CAAC,gBAAT,CAA0B,kBAA1B,CAA8C,SAA9C,I,CAFA,SAAS,E","file":"theme.min.js","sourcesContent":["class Util {\r\n forEach(elements, handler) {\r\n elements = elements || [];\r\n for (let i = 0; i < elements.length; i++) handler(elements[i]);\r\n }\r\n\r\n getScrollTop() {\r\n return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\r\n }\r\n\r\n isMobile() {\r\n return window.matchMedia('only screen and (max-width: 680px)').matches;\r\n }\r\n\r\n isTocStatic() {\r\n return window.matchMedia('only screen and (max-width: 960px)').matches;\r\n }\r\n\r\n animateCSS(element, animation, reserved, callback) {\r\n if (!Array.isArray(animation)) animation = [animation];\r\n element.classList.add('animated', ...animation);\r\n const handler = () => {\r\n element.classList.remove('animated', ...animation);\r\n element.removeEventListener('animationend', handler);\r\n if (typeof callback === 'function') callback();\r\n };\r\n if (!reserved) element.addEventListener('animationend', handler, false);\r\n }\r\n}\r\n\r\nclass Theme {\r\n constructor() {\r\n this.config = window.config;\r\n this.data = this.config.data;\r\n this.isDark = document.body.getAttribute('theme') === 'dark';\r\n this.util = new Util();\r\n this.newScrollTop = this.util.getScrollTop();\r\n this.oldScrollTop = this.newScrollTop;\r\n this.scrollEventSet = new Set();\r\n this.resizeEventSet = new Set();\r\n this.switchThemeEventSet = new Set();\r\n this.clickMaskEventSet = new Set();\r\n if (window.objectFitImages) objectFitImages();\r\n }\r\n\r\n initSVGIcon() {\r\n this.util.forEach(document.querySelectorAll('[data-svg-src]'), $icon => {\r\n fetch($icon.getAttribute('data-svg-src'))\r\n .then(response => response.text())\r\n .then(svg => {\r\n const $temp = document.createElement('div');\r\n $temp.insertAdjacentHTML('afterbegin', svg);\r\n const $svg = $temp.firstChild;\r\n $svg.setAttribute('data-svg-src', $icon.getAttribute('data-svg-src'));\r\n $svg.classList.add('icon');\r\n const $titleElements = $svg.getElementsByTagName('title');\r\n if ($titleElements.length) $svg.removeChild($titleElements[0]);\r\n $icon.parentElement.replaceChild($svg, $icon);\r\n })\r\n .catch(err => { console.error(err); });\r\n });\r\n }\r\n\r\n initTwemoji() {\r\n if (this.config.twemoji) twemoji.parse(document.body);\r\n }\r\n\r\n initMenuMobile() {\r\n const $menuToggleMobile = document.getElementById('menu-toggle-mobile');\r\n const $menuMobile = document.getElementById('menu-mobile');\r\n $menuToggleMobile.addEventListener('click', () => {\r\n document.body.classList.toggle('blur');\r\n $menuToggleMobile.classList.toggle('active');\r\n $menuMobile.classList.toggle('active');\r\n }, false);\r\n this._menuMobileOnClickMask = this._menuMobileOnClickMask || (() => {\r\n $menuToggleMobile.classList.remove('active');\r\n $menuMobile.classList.remove('active');\r\n });\r\n this.clickMaskEventSet.add(this._menuMobileOnClickMask);\r\n }\r\n\r\n initSwitchTheme() {\r\n this.util.forEach(document.getElementsByClassName('theme-switch'), $themeSwitch => {\r\n $themeSwitch.addEventListener('click', () => {\r\n if (document.body.getAttribute('theme') === 'dark') document.body.setAttribute('theme', 'light');\r\n else document.body.setAttribute('theme', 'dark');\r\n this.isDark = !this.isDark;\r\n window.localStorage && localStorage.setItem('theme', this.isDark ? 'dark' : 'light');\r\n for (let event of this.switchThemeEventSet) event();\r\n }, false);\r\n });\r\n }\r\n\r\n initSearch() {\r\n const searchConfig = this.config.search;\r\n const isMobile = this.util.isMobile();\r\n if (!searchConfig || isMobile && this._searchMobileOnce || !isMobile && this._searchDesktopOnce) return;\r\n\r\n const maxResultLength = searchConfig.maxResultLength ? searchConfig.maxResultLength : 10;\r\n const snippetLength = searchConfig.snippetLength ? searchConfig.snippetLength : 50;\r\n const highlightTag = searchConfig.highlightTag ? searchConfig.highlightTag : 'em';\r\n\r\n const suffix = isMobile ? 'mobile' : 'desktop';\r\n const $header = document.getElementById(`header-${suffix}`);\r\n const $searchInput = document.getElementById(`search-input-${suffix}`);\r\n const $searchToggle = document.getElementById(`search-toggle-${suffix}`);\r\n const $searchLoading = document.getElementById(`search-loading-${suffix}`);\r\n const $searchClear = document.getElementById(`search-clear-${suffix}`);\r\n if (isMobile) {\r\n this._searchMobileOnce = true;\r\n $searchInput.addEventListener('focus', () => {\r\n document.body.classList.add('blur');\r\n $header.classList.add('open');\r\n }, false);\r\n document.getElementById('search-cancel-mobile').addEventListener('click', () => {\r\n $header.classList.remove('open');\r\n document.body.classList.remove('blur');\r\n document.getElementById('menu-toggle-mobile').classList.remove('active');\r\n document.getElementById('menu-mobile').classList.remove('active');\r\n $searchLoading.style.display = 'none';\r\n $searchClear.style.display = 'none';\r\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\r\n }, false);\r\n $searchClear.addEventListener('click', () => {\r\n $searchClear.style.display = 'none';\r\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\r\n }, false);\r\n this._searchMobileOnClickMask = this._searchMobileOnClickMask || (() => {\r\n $header.classList.remove('open');\r\n $searchLoading.style.display = 'none';\r\n $searchClear.style.display = 'none';\r\n this._searchMobile && this._searchMobile.autocomplete.setVal('');\r\n });\r\n this.clickMaskEventSet.add(this._searchMobileOnClickMask);\r\n } else {\r\n this._searchDesktopOnce = true;\r\n $searchToggle.addEventListener('click', () => {\r\n document.body.classList.add('blur');\r\n $header.classList.add('open');\r\n $searchInput.focus();\r\n }, false);\r\n $searchClear.addEventListener('click', () => {\r\n $searchClear.style.display = 'none';\r\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\r\n }, false);\r\n this._searchDesktopOnClickMask = this._searchDesktopOnClickMask || (() => {\r\n $header.classList.remove('open');\r\n $searchLoading.style.display = 'none';\r\n $searchClear.style.display = 'none';\r\n this._searchDesktop && this._searchDesktop.autocomplete.setVal('');\r\n });\r\n this.clickMaskEventSet.add(this._searchDesktopOnClickMask);\r\n }\r\n $searchInput.addEventListener('input', () => {\r\n if ($searchInput.value === '') $searchClear.style.display = 'none';\r\n else $searchClear.style.display = 'inline';\r\n }, false);\r\n\r\n const initAutosearch = () => {\r\n const autosearch = autocomplete(`#search-input-${suffix}`, {\r\n hint: false,\r\n autoselect: true,\r\n dropdownMenuContainer: `#search-dropdown-${suffix}`,\r\n clearOnSelected: true,\r\n cssClasses: { noPrefix: true },\r\n debug: true,\r\n }, {\r\n name: 'search',\r\n source: (query, callback) => {\r\n $searchLoading.style.display = 'inline';\r\n $searchClear.style.display = 'none';\r\n const finish = (results) => {\r\n $searchLoading.style.display = 'none';\r\n $searchClear.style.display = 'inline';\r\n callback(results);\r\n };\r\n if (searchConfig.type === 'lunr') {\r\n const search = () => {\r\n if (lunr.queryHandler) query = lunr.queryHandler(query);\r\n const results = {};\r\n this._index.search(query).forEach(({ ref, matchData: { metadata } }) => {\r\n const matchData = this._indexData[ref];\r\n let { uri, title, content: context } = matchData;\r\n if (results[uri]) return;\r\n let position = 0;\r\n Object.values(metadata).forEach(({ content }) => {\r\n if (content) {\r\n const matchPosition = content.position[0][0];\r\n if (matchPosition < position || position === 0) position = matchPosition;\r\n }\r\n });\r\n position -= snippetLength / 5;\r\n if (position > 0) {\r\n position += context.substr(position, 20).lastIndexOf(' ') + 1;\r\n context = '...' + context.substr(position, snippetLength);\r\n } else {\r\n context = context.substr(0, snippetLength);\r\n }\r\n Object.keys(metadata).forEach(key => {\r\n title = title.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\r\n context = context.replace(new RegExp(`(${key})`, 'gi'), `<${highlightTag}>$1`);\r\n });\r\n results[uri] = {\r\n 'uri': uri,\r\n 'title' : title,\r\n 'date' : matchData.date,\r\n 'context' : context,\r\n };\r\n });\r\n return Object.values(results).slice(0, maxResultLength);\r\n }\r\n if (!this._index) {\r\n fetch(searchConfig.lunrIndexURL)\r\n .then(response => response.json())\r\n .then(data => {\r\n const indexData = {};\r\n this._index = lunr(function () {\r\n if (searchConfig.lunrLanguageCode) this.use(lunr[searchConfig.lunrLanguageCode]);\r\n this.ref('objectID');\r\n this.field('title', { boost: 50 });\r\n this.field('tags', { boost: 20 });\r\n this.field('categories', { boost: 20 });\r\n this.field('content', { boost: 10 });\r\n this.metadataWhitelist = ['position'];\r\n data.forEach((record) => {\r\n indexData[record.objectID] = record;\r\n this.add(record);\r\n });\r\n });\r\n this._indexData = indexData;\r\n finish(search());\r\n }).catch(err => {\r\n console.error(err);\r\n finish([]);\r\n });\r\n } else finish(search());\r\n } else if (searchConfig.type === 'algolia') {\r\n this._algoliaIndex = this._algoliaIndex || algoliasearch(searchConfig.algoliaAppID, searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);\r\n this._algoliaIndex\r\n .search(query, {\r\n offset: 0,\r\n length: maxResultLength * 8,\r\n attributesToHighlight: ['title'],\r\n attributesToSnippet: [`content:${snippetLength}`],\r\n highlightPreTag: `<${highlightTag}>`,\r\n highlightPostTag: ``,\r\n })\r\n .then(({ hits }) => {\r\n const results = {};\r\n hits.forEach(({ uri, date, _highlightResult: { title }, _snippetResult: { content } }) => {\r\n if (results[uri] && results[uri].context.length > content.value) return;\r\n results[uri] = {\r\n uri: uri,\r\n title: title.value,\r\n date: date,\r\n context: content.value,\r\n };\r\n });\r\n finish(Object.values(results).slice(0, maxResultLength));\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n finish([]);\r\n });\r\n }\r\n },\r\n templates: {\r\n suggestion: ({ title, date, context }) => `
${title}${date}
${context}
`,\r\n empty: ({ query }) => `
${searchConfig.noResultsFound}: \"${query}\"
`,\r\n footer: ({}) => {\r\n const { searchType, icon, href } = searchConfig.type === 'algolia' ? {\r\n searchType: 'algolia',\r\n icon: '',\r\n href: 'https://www.algolia.com/',\r\n } : {\r\n searchType: 'Lunr.js',\r\n icon: '',\r\n href: 'https://lunrjs.com/',\r\n };\r\n return ``;},\r\n },\r\n });\r\n autosearch.on('autocomplete:selected', (_event, suggestion, _dataset, _context) => {\r\n window.location.assign(suggestion.uri);\r\n });\r\n if (isMobile) this._searchMobile = autosearch;\r\n else this._searchDesktop = autosearch;\r\n };\r\n if (searchConfig.lunrSegmentitURL && !document.getElementById('lunr-segmentit')) {\r\n const script = document.createElement('script');\r\n script.id = 'lunr-segmentit';\r\n script.type = 'text/javascript';\r\n script.src = searchConfig.lunrSegmentitURL;\r\n script.async = true;\r\n if (script.readyState) {\r\n script.onreadystatechange = () => {\r\n if (script.readyState == 'loaded' || script.readyState == 'complete'){\r\n script.onreadystatechange = null;\r\n initAutosearch();\r\n }\r\n };\r\n } else {\r\n script.onload = () => {\r\n initAutosearch();\r\n };\r\n }\r\n document.body.appendChild(script);\r\n } else initAutosearch();\r\n }\r\n\r\n initDetails() {\r\n this.util.forEach(document.getElementsByClassName('details'), $details => {\r\n const $summary = $details.getElementsByClassName('details-summary')[0];\r\n $summary.addEventListener('click', () => {\r\n $details.classList.toggle('open');\r\n }, false);\r\n });\r\n }\r\n\r\n initLightGallery() {\r\n if (this.config.lightGallery) lightGallery(document.getElementById('content'), this.config.lightGallery);\r\n }\r\n\r\n initHighlight() {\r\n this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), $preChroma => {\r\n const $chroma = document.createElement('div');\r\n $chroma.className = $preChroma.className;\r\n const $table = document.createElement('table');\r\n $chroma.appendChild($table);\r\n const $tbody = document.createElement('tbody');\r\n $table.appendChild($tbody);\r\n const $tr = document.createElement('tr');\r\n $tbody.appendChild($tr);\r\n const $td = document.createElement('td');\r\n $tr.appendChild($td);\r\n $preChroma.parentElement.replaceChild($chroma, $preChroma);\r\n $td.appendChild($preChroma);\r\n });\r\n this.util.forEach(document.querySelectorAll('.highlight > .chroma'), $chroma => {\r\n const $codeElements = $chroma.querySelectorAll('pre.chroma > code');\r\n if ($codeElements.length) {\r\n const $code = $codeElements[$codeElements.length - 1];\r\n const $header = document.createElement('div');\r\n $header.className = 'code-header ' + $code.className.toLowerCase();\r\n const $title = document.createElement('span');\r\n $title.classList.add('code-title');\r\n $title.insertAdjacentHTML('afterbegin', '');\r\n $title.addEventListener('click', () => {\r\n $chroma.classList.toggle('open');\r\n }, false);\r\n $header.appendChild($title);\r\n const $ellipses = document.createElement('span');\r\n $ellipses.insertAdjacentHTML('afterbegin', '');\r\n $ellipses.classList.add('ellipses');\r\n $ellipses.addEventListener('click', () => {\r\n $chroma.classList.add('open');\r\n }, false);\r\n $header.appendChild($ellipses);\r\n const $copy = document.createElement('span');\r\n $copy.insertAdjacentHTML('afterbegin', '');\r\n $copy.classList.add('copy');\r\n const code = $code.innerText;\r\n if (this.config.code.maxShownLines < 0 || code.split('\\n').length < this.config.code.maxShownLines + 2) $chroma.classList.add('open');\r\n if (this.config.code.copyTitle) {\r\n $copy.setAttribute('data-clipboard-text', code);\r\n $copy.title = this.config.code.copyTitle;\r\n const clipboard = new ClipboardJS($copy);\r\n clipboard.on('success', _e => {\r\n this.util.animateCSS($code, 'flash');\r\n });\r\n $header.appendChild($copy);\r\n }\r\n $chroma.insertBefore($header, $chroma.firstChild);\r\n }\r\n });\r\n }\r\n\r\n initTable() {\r\n this.util.forEach(document.querySelectorAll('.content table'), $table => {\r\n const $wrapper = document.createElement('div');\r\n $wrapper.className = 'table-wrapper';\r\n $table.parentElement.replaceChild($wrapper, $table);\r\n $wrapper.appendChild($table);\r\n });\r\n }\r\n\r\n initHeaderLink() {\r\n for (let num = 1; num <= 6; num++) {\r\n this.util.forEach(document.querySelectorAll('.single .content > h' + num), $header => {\r\n $header.classList.add('header-link');\r\n $header.insertAdjacentHTML('afterbegin', ``);\r\n });\r\n }\r\n }\r\n\r\n initToc() {\r\n const $tocCore = document.getElementById('TableOfContents');\r\n if ($tocCore === null){\r\n return;\r\n }\r\n if (document.getElementById('toc-static').getAttribute('kept') === 'true' || this.util.isTocStatic()) {\r\n const $tocContentStatic = document.getElementById('toc-content-static');\r\n if ($tocCore.parentElement !== $tocContentStatic) {\r\n $tocCore.parentElement.removeChild($tocCore);\r\n $tocContentStatic.appendChild($tocCore);\r\n }\r\n if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);\r\n } else {\r\n const $tocContentAuto = document.getElementById('toc-content-auto');\r\n if ($tocCore.parentElement !== $tocContentAuto) {\r\n $tocCore.parentElement.removeChild($tocCore);\r\n $tocContentAuto.appendChild($tocCore);\r\n }\r\n const $toc = document.getElementById('toc-auto');\r\n const $page = document.getElementsByClassName('page')[0];\r\n const rect = $page.getBoundingClientRect();\r\n $toc.style.left = `${rect.left + rect.width + 20}px`;\r\n $toc.style.maxWidth = `${$page.getBoundingClientRect().left - 20}px`;\r\n $toc.style.visibility = 'visible';\r\n const $tocLinkElements = $tocCore.querySelectorAll('a:first-child');\r\n const $tocLiElements = $tocCore.getElementsByTagName('li');\r\n const $headerLinkElements = document.getElementsByClassName('header-link');\r\n const headerIsFixed = document.body.getAttribute('header-desktop') !== 'normal';\r\n const headerHeight = document.getElementById('header-desktop').offsetHeight;\r\n const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\r\n const minTocTop = $toc.offsetTop;\r\n const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\r\n this._tocOnScroll = this._tocOnScroll || (() => {\r\n const footerTop = document.getElementById('post-footer').offsetTop;\r\n const maxTocTop = footerTop - $toc.getBoundingClientRect().height;\r\n const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);\r\n if (this.newScrollTop < minScrollTop) {\r\n $toc.style.position = 'absolute';\r\n $toc.style.top = `${minTocTop}px`;\r\n } else if (this.newScrollTop > maxScrollTop) {\r\n $toc.style.position = 'absolute';\r\n $toc.style.top = `${maxTocTop}px`;\r\n } else {\r\n $toc.style.position = 'fixed';\r\n $toc.style.top = `${TOP_SPACING}px`;\r\n }\r\n\r\n this.util.forEach($tocLinkElements, $tocLink => { $tocLink.classList.remove('active'); });\r\n this.util.forEach($tocLiElements, $tocLi => { $tocLi.classList.remove('has-active'); });\r\n const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);\r\n let activeTocIndex = $headerLinkElements.length - 1;\r\n for (let i = 0; i < $headerLinkElements.length - 1; i++) {\r\n const thisTop = $headerLinkElements[i].getBoundingClientRect().top;\r\n const nextTop = $headerLinkElements[i + 1].getBoundingClientRect().top;\r\n if ((i == 0 && thisTop > INDEX_SPACING)\r\n || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {\r\n activeTocIndex = i;\r\n break;\r\n }\r\n }\r\n if (activeTocIndex !== -1) {\r\n $tocLinkElements[activeTocIndex].classList.add('active');\r\n let $parent = $tocLinkElements[activeTocIndex].parentElement;\r\n while ($parent !== $tocCore) {\r\n $parent.classList.add('has-active');\r\n $parent = $parent.parentElement.parentElement;\r\n }\r\n }\r\n });\r\n this._tocOnScroll();\r\n this.scrollEventSet.add(this._tocOnScroll);\r\n }\r\n }\r\n\r\n initMath() {\r\n if (this.config.math) renderMathInElement(document.body, this.config.math);\r\n }\r\n\r\n initMermaid() {\r\n const $mermaidElements = document.getElementsByClassName('mermaid');\r\n if ($mermaidElements.length) {\r\n mermaid.initialize({startOnLoad: false, theme: 'default'});\r\n this.util.forEach($mermaidElements, $mermaid => {\r\n mermaid.mermaidAPI.render('svg-' + $mermaid.id, this.data[$mermaid.id], svgCode => {\r\n $mermaid.insertAdjacentHTML('afterbegin', svgCode);\r\n }, $mermaid);\r\n });\r\n }\r\n }\r\n\r\n initEcharts() {\r\n this._echartsOnSwitchTheme = this._echartsOnSwitchTheme || (() => {\r\n this._echartsArr = this._echartsArr || [];\r\n for (let i = 0; i < this._echartsArr.length; i++) {\r\n this._echartsArr[i].dispose();\r\n }\r\n this._echartsArr = [];\r\n this.util.forEach(document.getElementsByClassName('echarts'), $echarts => {\r\n const chart = echarts.init($echarts, this.isDark ? 'dark' : 'macarons', {renderer: 'svg'});\r\n chart.setOption(JSON.parse(this.data[$echarts.id]));\r\n this._echartsArr.push(chart);\r\n });\r\n });\r\n this.switchThemeEventSet.add(this._echartsOnSwitchTheme);\r\n this._echartsOnSwitchTheme();\r\n this._echartsOnResize = this._echartsOnResize || (() => {\r\n for (let i = 0; i < this._echartsArr.length; i++) {\r\n this._echartsArr[i].resize();\r\n }\r\n });\r\n this.resizeEventSet.add(this._echartsOnResize);\r\n }\r\n\r\n initMapbox() {\r\n if (this.config.mapbox) {\r\n mapboxgl.accessToken = this.config.mapbox.accessToken;\r\n mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);\r\n this._mapboxArr = this._mapboxArr || [];\r\n this.util.forEach(document.getElementsByClassName('mapbox'), $mapbox => {\r\n const { lng, lat, zoom, lightStyle, darkStyle, marked, navigation, geolocate, scale, fullscreen } = this.data[$mapbox.id];\r\n const mapbox = new mapboxgl.Map({\r\n container: $mapbox,\r\n center: [lng, lat],\r\n zoom: zoom,\r\n minZoom: .2,\r\n style: this.isDark ? darkStyle : lightStyle,\r\n attributionControl: false,\r\n });\r\n if (marked) {\r\n new mapboxgl.Marker().setLngLat([lng, lat]).addTo(mapbox);\r\n }\r\n if (navigation) {\r\n mapbox.addControl(new mapboxgl.NavigationControl(), 'bottom-right');\r\n }\r\n if (geolocate) {\r\n mapbox.addControl(new mapboxgl.GeolocateControl({\r\n positionOptions: {\r\n enableHighAccuracy: true,\r\n },\r\n showUserLocation: true,\r\n trackUserLocation: true,\r\n }), 'bottom-right');\r\n }\r\n if (scale) {\r\n mapbox.addControl(new mapboxgl.ScaleControl());\r\n }\r\n if (fullscreen) {\r\n mapbox.addControl(new mapboxgl.FullscreenControl());\r\n }\r\n mapbox.addControl(new MapboxLanguage());\r\n this._mapboxArr.push(mapbox);\r\n });\r\n this._mapboxOnSwitchTheme = this._mapboxOnSwitchTheme || (() => {\r\n this.util.forEach(this._mapboxArr, mapbox => {\r\n const $mapbox = mapbox.getContainer();\r\n const { lightStyle, darkStyle } = this.data[$mapbox.id];\r\n mapbox.setStyle(this.isDark ? darkStyle : lightStyle);\r\n mapbox.addControl(new MapboxLanguage());\r\n });\r\n });\r\n this.switchThemeEventSet.add(this._mapboxOnSwitchTheme);\r\n }\r\n }\r\n\r\n initTypeit() {\r\n if (this.config.typeit) {\r\n const typeitConfig = this.config.typeit;\r\n const speed = typeitConfig.speed ? typeitConfig.speed : 100;\r\n const cursorSpeed = typeitConfig.cursorSpeed ? typeitConfig.cursorSpeed : 1000;\r\n const cursorChar = typeitConfig.cursorChar ? typeitConfig.cursorChar : '|';\r\n Object.values(typeitConfig.data).forEach(group => {\r\n const typeone = (i) => {\r\n const id = group[i];\r\n const instance = new TypeIt(`#${id}`, {\r\n strings: this.data[id],\r\n speed: speed,\r\n lifeLike: true,\r\n cursorSpeed: cursorSpeed,\r\n cursorChar: cursorChar,\r\n waitUntilVisible: true,\r\n afterComplete: () => {\r\n if (i === group.length - 1) {\r\n if (typeitConfig.duration >= 0) window.setTimeout(() => {\r\n instance.destroy();\r\n }, typeitConfig.duration);\r\n return;\r\n }\r\n instance.destroy();\r\n typeone(i + 1);\r\n },\r\n }).go();\r\n };\r\n typeone(0);\r\n });\r\n }\r\n }\r\n\r\n initComment() {\r\n if (this.config.comment) {\r\n if (this.config.comment.artalk) {\r\n const artalk = new Artalk(this.config.comment.artalk);\r\n artalk.setDarkMode(this.isDark);\r\n this.switchThemeEventSet.add(() => {\r\n artalk.setDarkMode(this.isDark);\r\n })\r\n this.config.lightGallery && this.config.comment.artalk.lightgallery && artalk.on('comments-loaded', () => {\r\n document.querySelectorAll('.atk-comment .atk-content').forEach(($content) => {\r\n const $imgs = $content.querySelectorAll('img:not([atk-emoticon]):not([atk-lightbox-loaded])');\r\n $imgs.forEach(($img) => {\r\n $img.setAttribute('atk-lightbox-loaded', '');\r\n const $link = document.createElement('a');\r\n $link.setAttribute('class', 'atk-img-link');\r\n $link.setAttribute('href', $img.src);\r\n $link.setAttribute('data-src', $img.src);\r\n $link.append($img.cloneNode());\r\n $img.replaceWith($link);\r\n })\r\n if ($imgs.length) lightGallery($content, { selector: '.atk-img-link' });\r\n })\r\n })\r\n }\r\n if (this.config.comment.gitalk) {\r\n this.config.comment.gitalk.body = decodeURI(window.location.href);\r\n const gitalk = new Gitalk(this.config.comment.gitalk);\r\n gitalk.render('gitalk');\r\n }\r\n if (this.config.comment.valine) {\r\n new Valine(this.config.comment.valine);\r\n }\r\n if (this.config.comment.utterances) {\r\n const utterancesConfig = this.config.comment.utterances;\r\n const script = document.createElement('script');\r\n script.src = 'https://utteranc.es/client.js';\r\n script.type = 'text/javascript';\r\n script.setAttribute('repo', utterancesConfig.repo);\r\n script.setAttribute('issue-term', utterancesConfig.issueTerm);\r\n if (utterancesConfig.label) script.setAttribute('label', utterancesConfig.label);\r\n script.setAttribute('theme', this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme);\r\n script.crossOrigin = 'anonymous';\r\n script.async = true;\r\n document.getElementById('utterances').appendChild(script);\r\n this._utterancesOnSwitchTheme = this._utterancesOnSwitchTheme || (() => {\r\n const message = {\r\n type: 'set-theme',\r\n theme: this.isDark ? utterancesConfig.darkTheme : utterancesConfig.lightTheme,\r\n };\r\n const iframe = document.querySelector('.utterances-frame');\r\n iframe.contentWindow.postMessage(message, 'https://utteranc.es');\r\n });\r\n this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);\r\n }\r\n }\r\n }\r\n\r\n initCookieconsent() {\r\n if (this.config.cookieconsent) cookieconsent.initialise(this.config.cookieconsent);\r\n }\r\n\r\n getSiteTime() {\r\n let now = new Date();\r\n let run = new Date(this.config.ibruce.siteTime);\r\n let runTime = (now - run) / 1000,\r\n days = Math.floor(runTime / 60 / 60 / 24),\r\n hours = Math.floor(runTime / 60 / 60 - (24 * days)),\r\n minutes = Math.floor(runTime / 60 - (24 * 60 * days) - (60 * hours)),\r\n seconds = Math.floor((now - run) / 1000 - (24 * 60 * 60 * days) - (60 * 60 * hours) - (60 * minutes));\r\n document.querySelector(\".run-times\").innerHTML = `${days},${String(hours).padStart(2,0)}:${String(minutes).padStart(2,0)}:${String(seconds).padStart(2,0)}`;\r\n }\r\n\r\n initSiteTime() {\r\n if(this.config.ibruce.enable && this.config.ibruce.siteTime){\r\n this.siteTime = setInterval(this.getSiteTime, 500);\r\n document.addEventListener(\"visibilitychange\", () => {\r\n if (document.hidden) {\r\n return clearInterval(this.siteTime);\r\n }\r\n this.siteTime = setInterval(this.getSiteTime, 500);\r\n });\r\n }\r\n }\r\n\r\n initServiceWorker() {\r\n if (this.config.enablePWA && 'serviceWorker' in navigator) {\r\n navigator.serviceWorker\r\n .register('/service-worker.min.js', { scope: '/' })\r\n .then(function (registration) {\r\n // console.log('Service Worker Registered');\r\n })\r\n .catch(function (error) {\r\n console.error('error: ', error);\r\n });\r\n navigator.serviceWorker.ready.then(function (registration) {\r\n // console.log('Service Worker Ready');\r\n });\r\n }\r\n }\r\n\r\n initWatermark() {\r\n this.config.watermark.enable && new Watermark({\r\n content: this.config.watermark.content || '\"FixIt FixIt Theme',\r\n appendTo:this.config.watermark.appendTo || '.wrapper>.main',\r\n opacity: this.config.watermark.opacity,\r\n width: this.config.watermark.width,\r\n height: this.config.watermark.height,\r\n rowSpacing: this.config.watermark.rowSpacing,\r\n colSpacing: this.config.watermark.colSpacing,\r\n rotate: this.config.watermark.rotate,\r\n fontSize: this.config.watermark.fontSize,\r\n fontFamily: this.config.watermark.fontFamily\r\n });\r\n }\r\n\r\n initPangu() {\r\n this.config.enablePangu && pangu.autoSpacingPage();\r\n }\r\n\r\n onScroll() {\r\n const $headers = [];\r\n if (document.body.getAttribute('header-desktop') === 'auto') $headers.push(document.getElementById('header-desktop'));\r\n if (document.body.getAttribute('header-mobile') === 'auto') $headers.push(document.getElementById('header-mobile'));\r\n if (document.getElementById('comments')) {\r\n const $viewComments = document.getElementById('view-comments');\r\n $viewComments.href = `#comments`;\r\n $viewComments.style.display = 'block';\r\n }\r\n const $fixedButtons = document.getElementById('fixed-buttons');\r\n const ACCURACY = 20, MINIMUM = 100;\r\n window.addEventListener('scroll', () => {\r\n this.newScrollTop = this.util.getScrollTop();\r\n const scroll = this.newScrollTop - this.oldScrollTop;\r\n const isMobile = this.util.isMobile();\r\n this.util.forEach($headers, $header => {\r\n if (scroll > ACCURACY) {\r\n $header.classList.remove('fadeInDown');\r\n this.util.animateCSS($header, ['fadeOutUp', 'faster'], true);\r\n } else if (scroll < - ACCURACY) {\r\n $header.classList.remove('fadeOutUp');\r\n this.util.animateCSS($header, ['fadeInDown', 'faster'], true);\r\n }\r\n });\r\n if (this.newScrollTop > MINIMUM) {\r\n if (isMobile && scroll > ACCURACY) {\r\n $fixedButtons.classList.remove('fadeIn');\r\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\r\n } else if (!isMobile || scroll < - ACCURACY) {\r\n $fixedButtons.style.display = 'block';\r\n $fixedButtons.classList.remove('fadeOut');\r\n this.util.animateCSS($fixedButtons, ['fadeIn', 'faster'], true);\r\n }\r\n } else {\r\n if (!isMobile) {\r\n $fixedButtons.classList.remove('fadeIn');\r\n this.util.animateCSS($fixedButtons, ['fadeOut', 'faster'], true);\r\n }\r\n $fixedButtons.style.display = 'none';\r\n }\r\n for (let event of this.scrollEventSet) event();\r\n this.oldScrollTop = this.newScrollTop;\r\n }, false);\r\n }\r\n\r\n onResize() {\r\n window.addEventListener('resize', () => {\r\n if (!this._resizeTimeout) {\r\n this._resizeTimeout = window.setTimeout(() => {\r\n this._resizeTimeout = null;\r\n for (let event of this.resizeEventSet) event();\r\n this.initToc();\r\n this.initMermaid();\r\n this.initSearch();\r\n }, 100);\r\n }\r\n }, false);\r\n }\r\n\r\n onClickMask() {\r\n document.getElementById('mask').addEventListener('click', () => {\r\n for (let event of this.clickMaskEventSet) event();\r\n document.body.classList.remove('blur');\r\n }, false);\r\n }\r\n\r\n init() {\r\n try {\r\n this.initSVGIcon();\r\n this.initTwemoji();\r\n this.initMenuMobile();\r\n this.initSwitchTheme();\r\n this.initSearch();\r\n this.initDetails();\r\n this.initLightGallery();\r\n this.initHighlight();\r\n this.initTable();\r\n this.initHeaderLink();\r\n this.initMath();\r\n this.initMermaid();\r\n this.initEcharts();\r\n this.initTypeit();\r\n this.initMapbox();\r\n this.initCookieconsent();\r\n this.initSiteTime();\r\n this.initServiceWorker();\r\n this.initWatermark();\r\n this.initPangu();\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n\r\n window.setTimeout(() => {\r\n this.initToc();\r\n this.initComment();\r\n\r\n this.onScroll();\r\n this.onResize();\r\n this.onClickMask();\r\n }, 100);\r\n }\r\n}\r\n\r\nconst themeInit = () => {\r\n const theme = new Theme();\r\n theme.init();\r\n};\r\n\r\nif (document.readyState !== 'loading') {\r\n themeInit();\r\n} else {\r\n document.addEventListener('DOMContentLoaded', themeInit, false);\r\n}\r\n"]} \ No newline at end of file diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 3d0a82d5..8b90434c 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -456,11 +456,11 @@ enableEmoji = true [languages.zh-cn.params.watermark] enable = true # 水印内容 (允许 HTML 格式) - content = ' FixIt 主题' + content = 'FixIt logo FixIt 主题' # 水印透明度 opacity = 0.02 # 单水印高度 单位:px - height = 23 + height = 21 [params] # FixIt theme version @@ -499,13 +499,13 @@ enableEmoji = true [params.header.title] # URL of the LOGO # LOGO 的 URL - logo = "" + logo = "/svg/fixit.svg" # title name # 标题名称 name = "FixIt" # you can add extra information before the name (HTML format is supported), such as icons # 你可以在名称 (允许 HTML 格式) 之前添加其他信息, 例如图标 - pre = '' + pre = "" # you can add extra information after the name (HTML format is supported), such as icons # 你可以在名称 (允许 HTML 格式) 之后添加其他信息, 例如图标 post = "" @@ -854,7 +854,7 @@ enableEmoji = true enable = true # watermark's text (HTML format is supported) # 水印内容 (允许 HTML 格式) - content = ' FixIt Theme' + content = 'FixIt logo FixIt Theme' # watermark's transparency # 水印透明度 opacity = 0.02 @@ -866,7 +866,7 @@ enableEmoji = true width = 150 # watermark's height. unit: px # 单水印高度 单位:px - height = 23 + height = 21 # row spacing of watermarks. unit: px # 水印行间距 单位:px rowSpacing = 60 diff --git a/exampleSite/content/about/index.en.md b/exampleSite/content/about/index.en.md index 179c7ac0..0a06974a 100644 --- a/exampleSite/content/about/index.en.md +++ b/exampleSite/content/about/index.en.md @@ -18,7 +18,7 @@ math: [![GitHub forks](https://img.shields.io/github/forks/Lruihao/FixIt?style=social)](https://github.com/Lruihao/FixIt/fork) {{< /style >}} -> [ FixIt](https://github.com/Lruihao/FixIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Lruihao](https://lruihao.cn). +> [FixIt logo FixIt](https://github.com/Lruihao/FixIt) is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/) developed by [Lruihao](https://lruihao.cn). > > It is based on the original [LoveIt Theme](https://github.com/dillonzq/LoveIt), [LeaveIt Theme](https://github.com/liuzc/LeaveIt) and [KeepIt Theme](https://github.com/Fastbyte01/KeepIt). diff --git a/exampleSite/content/about/index.zh-cn.md b/exampleSite/content/about/index.zh-cn.md index 411707e5..97bbee96 100644 --- a/exampleSite/content/about/index.zh-cn.md +++ b/exampleSite/content/about/index.zh-cn.md @@ -18,7 +18,7 @@ math: [![GitHub forks](https://img.shields.io/github/forks/Lruihao/FixIt?style=social)](https://github.com/Lruihao/FixIt/fork) {{< /style >}} -> [ FixIt](https://github.com/Lruihao/FixIt) 是一个由 [Lruihao](https://lruihao.cn) 开发的**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。 +> [FixIt logo FixIt](https://github.com/Lruihao/FixIt) 是一个由 [Lruihao](https://lruihao.cn) 开发的**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。 > > 它的原型基于 [LoveIt 主题](https://github.com/dillonzq/LoveIt),[LeaveIt 主题](https://github.com/liuzc/LeaveIt) 和 [KeepIt 主题](https://github.com/Fastbyte01/KeepIt)。 diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 1bc0ec38..9aafdabe 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -12,7 +12,7 @@ {{- if ne .Site.Params.footer.hugo false -}} {{- end -}} diff --git a/src/js/theme.js b/src/js/theme.js index adb3d9a0..3655d1f7 100644 --- a/src/js/theme.js +++ b/src/js/theme.js @@ -693,7 +693,7 @@ class Theme { initWatermark() { this.config.watermark.enable && new Watermark({ - content: this.config.watermark.content || ' FixIt Theme', + content: this.config.watermark.content || 'FixIt logo FixIt Theme', appendTo:this.config.watermark.appendTo || '.wrapper>.main', opacity: this.config.watermark.opacity, width: this.config.watermark.width, diff --git a/static/svg/fixit.svg b/static/svg/fixit.svg new file mode 100644 index 00000000..5fea8ef1 --- /dev/null +++ b/static/svg/fixit.svg @@ -0,0 +1 @@ + \ No newline at end of file