diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 43e301ef..e2c396d4 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -11,5 +11,10 @@ reviews: auto_review: enabled: true drafts: false + path_filters: + - "!source/build/**" + - "*.min.js" + - "*.min.css" + - "*.map" chat: auto_reply: true diff --git a/.github/workflows/build-and-commit.yml b/.github/workflows/build-and-commit.yml new file mode 100644 index 00000000..e3d6584d --- /dev/null +++ b/.github/workflows/build-and-commit.yml @@ -0,0 +1,51 @@ +name: Build JS and CSS + +on: + push: + branches: + - main + - dev + paths: + - 'source/js/**' + - 'source/css/**' + - 'source/build/**' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + persist-credentials: false # Prevent using GITHUB_TOKEN automatically + fetch-depth: 0 # Fetch all history for accurate file diffs + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.x' # Specify your Node.js version + + - name: Install Dependencies + run: npm install + + - name: Build Project + run: npm run build + + - name: Configure Git + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + + - name: Commit and Push Changes + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git add source/build/js source/build/css + # Check if there are any changes + if ! git diff --cached --quiet; then + git commit -m "ci: build and update source/build/js and source/build/css [skip ci]" + git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git" HEAD:${GITHUB_REF#refs/heads/} + else + echo "No changes to commit" + fi \ No newline at end of file diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index e2404ded..87fd19b1 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -21,7 +21,7 @@ jobs: - run: npm ci - - run: npm run build:css + - run: npm run build - run: npm publish env: diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..d6cb2884 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npm run build diff --git a/_config.yml b/_config.yml index fa75966a..4ec4c337 100755 --- a/_config.yml +++ b/_config.yml @@ -317,6 +317,8 @@ articles: default: cc_by_nc_sa # Default license, can be cc_by_nc_sa, cc_by_nd, cc_by_nc, cc_by_sa, cc_by, all_rights_reserved, public_domain # Whether to enable lazyload for images lazyload: true + # Pangu.js (automatically add space between Chinese and English). See https://github.com/vinta/pangu.js + pangu_js: false # Article recommendation. Requires nodejieba (npm install nodejieba). Transplanted from hexo-theme-volantis. recommendation: # Whether to enable article recommendation @@ -461,7 +463,7 @@ cdn: # Whether to enable CDN enable: false # CDN Provider - provider: npmmirror # npmmirror, zstatic, sustech, cdnjs, jsdelivr, unpkg, custom + provider: npmmirror # npmmirror, zstatic, cdnjs, jsdelivr, unpkg, custom # Custom CDN URL # format example: https://cdn.custom.com/hexo-theme-redefine/${version}/source/${path} # The ${path} must leads to the root of the "source" folder of the theme diff --git a/languages/fr.yml b/languages/fr.yml new file mode 100644 index 00000000..0dbaad4b --- /dev/null +++ b/languages/fr.yml @@ -0,0 +1,92 @@ +# ---------------------------------------- +# Traduction du site +# ---------------------------------------- +search: recherche... +toc: Sur cette page +prev: Précédent +next: Suivant +prev_posts: Articles précédents +next_posts: Articles suivants +page: Page %d +recent_posts: Articles récents +share: Partager +powered_by: "POWERED BY %s" +theme: THEME +rss_feed: Flux RSS +category: Catégorie +categories: Catégories +tag: Tag +tags: Tags +post: Post +posts: Posts +tagcloud: Nuage de tags +comment: Commentaire +comments: Commentaires +home: Accueil +archive: Archive +archives: Archives +top: TOP +sticky: Sticky +go-back-home: Retour à l'accueil + +# ---------------------------------------- +# Traduction du menu +# ---------------------------------------- +about: À propos +changelog: Journal des modifications +links: Liens +link: Lien +friends: Amis +friend: Ami +timeline: Chronologie +shuoshuo: Shuoshuo + +# ---------------------------------------- +# Nombre de sites Web +# ---------------------------------------- +site_uv: VISITEURS +site_pv: NOMBRE TOTAL DE PAGES VUES +read_more: Lire la suite +wordcount: Mots +min2read: Min +status: Status + +# ---------------------------------------- +# Pied de page +# ---------------------------------------- +runtime: Blog en ligne depuis +days: Jours +hours: Hrs +minutes: Min +seconds: Sec +optimized_by: et Propulsé par Evan +rights: Tous droits réservés +site_posts: "%s posts au total" +site_wordcount: "%s mots au total" + +# ---------------------------------------- +# Post +# ---------------------------------------- +copyright: + author: Auteur + title: Titre + link: Lien + create_time: Créé à + update_time: Mis à jour à + license_title: Licence + license_content: "Cette œuvre est sous licence %s." + all_rights_reserved: "Tous droits réservés à © %s" + public_domain: "Cette œuvre est dans le domaine public." + +ago: + second: "Il y a %s secondes" + minute: "Il y a %s minutes" + hour: "Il y a %s heures" + day: "Il y a %s jours" + week: "Il y a %s semaines" + month: "Il y a %s mois" + year: "Il y a %s années" + +create_time: Créé +update_time: Mis à jour +expired: "Ce message a été écrit il y a %s jours et son contenu peut être obsolète." \ No newline at end of file diff --git a/layout/_partials/page-template.ejs b/layout/_partials/page-template.ejs deleted file mode 100755 index 528d1d51..00000000 --- a/layout/_partials/page-template.ejs +++ /dev/null @@ -1,42 +0,0 @@ -
- <% - const friendsTitle = ['friends', 'friend', '友情链接', '友情鏈接', '友情鏈結', '友情鏈結', '朋友', '朋友們', '朋友们', 'links','link', 'Link', 'Links']; - const friendsTypes = ['links', 'link']; - const isLoadFriendsLink = ( - theme.links - && (friendsTypes.includes(page.type) || friendsTitle.includes(page.title)) - ); - const shuoshuoTitle = ['essays', 'essay', 'shuoshuo', '说说', '即刻短文', 'Shuoshuo']; - const shuoshuoTypes = ['essays', 'essay', 'shuoshuo']; - const isLoadShuoshuo = ( - (theme.essays || theme.shuoshuo) - && (shuoshuoTypes.includes(page.type) || shuoshuoTitle.includes(page.title)) - ); - const masonryTitles = ['masonry', 'gallery', 'Masonry', 'Gallery', '照片墙', '照片牆', '相册', '相冊', '瀑布流', '瀑布流', 'photos', 'Photos', 'photo', 'Photo']; - const masonryTypes = ['masonry', 'gallery', '瀑布流', '相册', 'photos', 'photo']; - const isLoadMasonry = ( - (theme.masonry || theme.gallery || theme.photos) - && (masonryTypes.includes(page.type) || masonryTitles.includes(page.title)) - ) - %> - - <% if (isLoadFriendsLink) { %> - <%- partial('_widgets/friends-link') %> - <% } else if (isLoadShuoshuo) { %> - <%- partial('_widgets/essays') %> - <% } else if (isLoadMasonry) { %> - <%- partial('_widgets/masonry') %> - <% } %> -
- <% if (isLoadFriendsLink || page.content || isLoadShuoshuo || isLoadMasonry) { %> - <%- page.content %> - <% } else { %> -

<%- page.title %>

- <% } %> -
-
- <% if (page.hasOwnProperty('comment') && (page.comment === true || page.comments === true) ) { %> - <%- partial('_partials/comments/comment') %> - <% } %> -
-
diff --git a/layout/_widgets/essays.ejs b/layout/_widgets/essays.ejs deleted file mode 100644 index 1af66de1..00000000 --- a/layout/_widgets/essays.ejs +++ /dev/null @@ -1,23 +0,0 @@ -
-

<%= page.title %>

- -
\ No newline at end of file diff --git a/layout/_widgets/friends-link.ejs b/layout/_widgets/friends-link.ejs deleted file mode 100755 index 2cb1948a..00000000 --- a/layout/_widgets/friends-link.ejs +++ /dev/null @@ -1,65 +0,0 @@ - diff --git a/layout/_widgets/local-search.ejs b/layout/_widgets/local-search.ejs deleted file mode 100755 index 97b4bc2c..00000000 --- a/layout/_widgets/local-search.ejs +++ /dev/null @@ -1,27 +0,0 @@ -
- -
diff --git a/layout/_widgets/masonry.ejs b/layout/_widgets/masonry.ejs deleted file mode 100644 index 9c24be83..00000000 --- a/layout/_widgets/masonry.ejs +++ /dev/null @@ -1,27 +0,0 @@ -<% -// Define an array of images to display in the masonry layout -const images = theme.masonry; -%> - -

<%= page.title %>

- -
-
-
-
-
-
-
- -
- <% images.forEach(function(image) { %> -
-
- <%- image.title %> -
<%- image.title %>
-
<%- image.description %>
-
-
- <% }); %> -
- diff --git a/layout/_widgets/paginator.ejs b/layout/_widgets/paginator.ejs deleted file mode 100755 index c4bf513d..00000000 --- a/layout/_widgets/paginator.ejs +++ /dev/null @@ -1,7 +0,0 @@ -
- <%- paginator({ - prev_text: '', - next_text: '', - escape: false - }) %> -
diff --git a/layout/_widgets/post-tools.ejs b/layout/_widgets/post-tools.ejs deleted file mode 100755 index b649c8cb..00000000 --- a/layout/_widgets/post-tools.ejs +++ /dev/null @@ -1,17 +0,0 @@ -
- -
diff --git a/layout/_widgets/progress-bar.ejs b/layout/_widgets/progress-bar.ejs deleted file mode 100755 index 1cc558e5..00000000 --- a/layout/_widgets/progress-bar.ejs +++ /dev/null @@ -1,13 +0,0 @@ -
- <% if (theme.global.scroll_progress.bar === true) { %> - - <% } %> - - <% if (theme.global.single_page === true) { %> - - - - - <% } %> -
- diff --git a/layout/_widgets/side-tools.ejs b/layout/_widgets/side-tools.ejs deleted file mode 100755 index c90ccfc7..00000000 --- a/layout/_widgets/side-tools.ejs +++ /dev/null @@ -1,54 +0,0 @@ -
- - - -
diff --git a/layout/article-content.ejs b/layout/article-content.ejs deleted file mode 100755 index 0a697c6f..00000000 --- a/layout/article-content.ejs +++ /dev/null @@ -1,160 +0,0 @@ -
-
- -
- <% if (page.cover || page.banner || (page.thumbnail && page.thumbnail !== false)) { %> - <% let articleCover = ""; - if (page.cover && page.cover.includes("/")) { - articleCover = page.cover; - } else if (page.banner && page.banner.includes("/")) { - articleCover = page.banner; - } else if (page.thumbnail && page.thumbnail !== null) { - articleCover = page.thumbnail; - } else if (config.marked.postAsset && config.marked.postAsset == true) { - articleCover = [page.path, page.cover || page.banner].join("/"); - } - %> - <% if (articleCover) { %> - <%= page.title %> - <% } %> -
"> -

<%= page.title %>

-
- <% } else { %> -
"> -

<%= page.title %>

-
- <% } %> -
- - <% if (theme.info.author || config.author) { %> -
-
- <%- image_tag((typeof page.avatar === "string" && (page.avatar)) || page.author?.avatar || theme.defaults.avatar) %> -
-
-
- <%= (typeof page.author === "string" && (page.author)) || page.author?.name || theme.info.author || config.author %> - <% if (theme.hasOwnProperty('articles') && theme.articles.author_label.enable === true) { %> - <%- getAuthorLabel(site.posts.length, theme.articles.author_label.auto, theme.articles.author_label.list) %> - <% } %> -
-
- <%- partial('_meta/article-info', {articleObject: page, index: true}) %> -
-
-
- <% } else { %> -
-
- <%- partial('_meta/article-info', {articleObject: page, index: true}) %> -
-
- <% } %> - - <% if (page.expires && page.expires !== "") {%> - - - - <% } %> - - -
- <%- page.content %> -
- - <% if (theme.articles.copyright.enable || theme.articles.copyright === true) { %> -
- <%- partial('_meta/article-copyright') %> -
- <% } %> - - <% if (page.tags.length) { %> - - <% } %> - - <%- articleRecommendationGenerator(page) %> - - <% if (page.prev || page.next) { %> -
- <% if (page.prev) { %> -
- -
- <% } %> - <% if (page.next) { %> -
- -
- <% } %> -
- <% } %> - - - <% if (theme.comment.enable === true && theme.comment.hasOwnProperty('system') && page.comment !== false) { %> -
- <%- partial('_partials/comments/comment') %> -
- <% } %> -
- - <% if (is_post() && theme.articles.toc.enable === true) { %> -
- <%- partial('_widgets/toc') %> -
- <% } %> -
- diff --git a/layout/category-content.ejs b/layout/category-content.ejs deleted file mode 100755 index d7fb95cf..00000000 --- a/layout/category-content.ejs +++ /dev/null @@ -1,12 +0,0 @@ -
-
-  <%= page.category %> -
-
- <%- partial('_widgets/archive-list', {posts_new: page.posts}) %> -
-
-
- <%- partial('_widgets/paginator', {pageObject: page}) %> -
- diff --git a/layout/category-list.ejs b/layout/category-list.ejs deleted file mode 100755 index b5620fad..00000000 --- a/layout/category-list.ejs +++ /dev/null @@ -1,20 +0,0 @@ -
-
-

- <% const useCustomTitle = page.title.toLowerCase() !== "categories" && page.title.toLowerCase() !=="category" && page.title !=="分类" %> - <% if (useCustomTitle) { %> - <%= page.title %> - <% } else { %> - <%- __('categories') %> - <% } %> -

-
-
- <%- list_categories(site.categories, { class: 'all-category', depth: 5, - style: 'list', }) %> -
-
- <% if (page.comment) { %> <%- partial('_partials/comments/comment') %> - <% } %> -
-
diff --git a/layout/_partials/comments/comment.ejs b/layout/components/comments/comment.ejs similarity index 73% rename from layout/_partials/comments/comment.ejs rename to layout/components/comments/comment.ejs index 4c53bd55..5e2efd21 100755 --- a/layout/_partials/comments/comment.ejs +++ b/layout/components/comments/comment.ejs @@ -6,16 +6,16 @@ <% if (theme.comment.enable === true && theme.comment.hasOwnProperty('system')) { %> <% if (theme.comment.system === 'waline') { %> - <%- partial('waline') %> + <%- partial('components/comments/waline') %> <% } else if (theme.comment.system === 'gitalk') { %> - <%- partial('gitalk') %> + <%- partial('components/comments/gitalk') %> <% } else if (theme.comment.system === 'twikoo') { %> - <%- partial('twikoo') %> + <%- partial('components/comments/twikoo') %> <% } else if (theme.comment.system === 'giscus') { %> - <%- partial('giscus') %> + <%- partial('components/comments/giscus') %> <% } %> <% } %> diff --git a/layout/_partials/comments/giscus.ejs b/layout/components/comments/giscus.ejs similarity index 100% rename from layout/_partials/comments/giscus.ejs rename to layout/components/comments/giscus.ejs diff --git a/layout/_partials/comments/gitalk.ejs b/layout/components/comments/gitalk.ejs similarity index 100% rename from layout/_partials/comments/gitalk.ejs rename to layout/components/comments/gitalk.ejs diff --git a/layout/_partials/comments/twikoo.ejs b/layout/components/comments/twikoo.ejs similarity index 100% rename from layout/_partials/comments/twikoo.ejs rename to layout/components/comments/twikoo.ejs diff --git a/layout/_partials/comments/waline.ejs b/layout/components/comments/waline.ejs similarity index 100% rename from layout/_partials/comments/waline.ejs rename to layout/components/comments/waline.ejs diff --git a/layout/_partials/footer.ejs b/layout/components/footer/footer.ejs similarity index 100% rename from layout/_partials/footer.ejs rename to layout/components/footer/footer.ejs diff --git a/layout/_partials/head.ejs b/layout/components/header/head.ejs similarity index 96% rename from layout/_partials/head.ejs rename to layout/components/header/head.ejs index 12e2d0b0..47795d0f 100755 --- a/layout/_partials/head.ejs +++ b/layout/components/header/head.ejs @@ -17,7 +17,6 @@ 'unpkg': 'https://unpkg.com', 'aliyun': 'https://evan.beee.top', 'cdnjs': 'https://cdnjs.cloudflare.com', - 'sustech': 'https://mirrors.sustech.edu.cn', 'zstatic': 'https://s4.zstatic.net', 'npmmirror': 'https://registry.npmmirror.com', @@ -27,7 +26,7 @@ <% } %> <% } %> - <%- generate_seo(theme, page) %> + <%- generateMeta(theme, page) %> <%- autoCanonical(config, page) %> @@ -93,9 +92,9 @@ <%- css('css/style') %> <% if (theme.developer && theme.developer.enable) {%> - <%- css('assets/build/styles.css') %> + <%- css('build/css/tailwind.css') %> <% } else {%> - <%- renderCSS('assets/build/styles.css') %> + <%- renderCSS('build/css/tailwind.css') %> <% } %> <%- renderCSS('fonts/GeistMono/geist-mono.css') %> diff --git a/layout/_partials/navbar.ejs b/layout/components/header/navbar.ejs similarity index 96% rename from layout/_partials/navbar.ejs rename to layout/components/header/navbar.ejs index 11972b5a..f9fc4d83 100755 --- a/layout/_partials/navbar.ejs +++ b/layout/components/header/navbar.ejs @@ -25,7 +25,7 @@ <% let link = theme.navbar.links[i]; let hasSubmenus = link.submenus; - let isActive = isInHomePaging(page.path, link.path) || is_current(link.path); + let isActive = isHomePagePagination(page.path, link.path) || is_current(link.path); let linkHref = hasSubmenus ? '#' : url_for(link.path); let onClickAction = hasSubmenus ? 'onClick="return false;"' : ''; let iconClass = link.icon ? `` : ''; @@ -85,7 +85,7 @@ <% // Function to check if link is active function isActiveLink(pagePath, linkPath) { - return isInHomePaging(pagePath, linkPath) || is_current(linkPath); + return isHomePagePagination(pagePath, linkPath) || is_current(linkPath); } // Variables for cleaner code @@ -154,7 +154,7 @@ <% } %> - <%- partial("sidebar-components/statistics") %> + <%- partial("components/sidebar/statistics") %>
diff --git a/layout/_partials/preloader.ejs b/layout/components/header/preloader.ejs similarity index 100% rename from layout/_partials/preloader.ejs rename to layout/components/header/preloader.ejs diff --git a/layout/components/header/progress-bar.ejs b/layout/components/header/progress-bar.ejs new file mode 100755 index 00000000..918aebed --- /dev/null +++ b/layout/components/header/progress-bar.ejs @@ -0,0 +1,12 @@ +
+ <% if (theme.global.scroll_progress.bar === true) { %> + + <% } %> + + <% if (theme.global.single_page === true) { %> + + + + + <% } %> +
\ No newline at end of file diff --git a/layout/_plugins/aplayer.ejs b/layout/components/plugins/aplayer.ejs similarity index 100% rename from layout/_plugins/aplayer.ejs rename to layout/components/plugins/aplayer.ejs diff --git a/layout/_partials/scripts.ejs b/layout/components/scripts.ejs similarity index 86% rename from layout/_partials/scripts.ejs rename to layout/components/scripts.ejs index 5797c2c0..978ebea8 100755 --- a/layout/_partials/scripts.ejs +++ b/layout/components/scripts.ejs @@ -72,3 +72,15 @@ <%- renderJS('js/libs/moment-with-locales.min.js', { swupReload: true }) %> <%- renderJS('js/layouts/essays.js', { swupReload: true, module: true }) %> +<% if (theme.articles.pangu_js) { %> + <%- renderJS([ + 'js/libs/pangu.min.js', + 'js/plugins/pangu.js' + ]) %> +<% } %> + +<% if (theme.bookmarks && theme.bookmarks.length !== 0) { %> + <%- renderJS('js/layouts/bookmarkNav.js', { + module: true + }) %> +<% } %> \ No newline at end of file diff --git a/layout/_partials/sidebar-components/author.ejs b/layout/components/sidebar/author.ejs similarity index 100% rename from layout/_partials/sidebar-components/author.ejs rename to layout/components/sidebar/author.ejs diff --git a/layout/_partials/sidebar-components/avatar.ejs b/layout/components/sidebar/avatar.ejs similarity index 100% rename from layout/_partials/sidebar-components/avatar.ejs rename to layout/components/sidebar/avatar.ejs diff --git a/layout/_partials/sidebar-components/statistics.ejs b/layout/components/sidebar/statistics.ejs similarity index 100% rename from layout/_partials/sidebar-components/statistics.ejs rename to layout/components/sidebar/statistics.ejs diff --git a/layout/_plugins/swup.ejs b/layout/components/swup.ejs similarity index 100% rename from layout/_plugins/swup.ejs rename to layout/components/swup.ejs diff --git a/layout/layout.ejs b/layout/layout.ejs index 13264e41..0c76d6c2 100755 --- a/layout/layout.ejs +++ b/layout/layout.ejs @@ -1,11 +1,13 @@ -<%- partial('_partials/head') %> +<%- partial('components/header/head') %> + -<%- body %> -<%- partial('_partials/scripts') %> -<% if (theme.plugins.aplayer.enable) { %> - <%- partial('_plugins/aplayer') %> -<% } %> + <%- body %> + <%- partial('components/scripts') %> + <% if (theme.plugins.aplayer.enable) { %> + <%- partial('components/plugins/aplayer') %> + <% } %> - + + \ No newline at end of file diff --git a/layout/page.ejs b/layout/page.ejs index 2fdb52fe..c3a6efe8 100755 --- a/layout/page.ejs +++ b/layout/page.ejs @@ -1,92 +1,57 @@ -<%- partial('_widgets/progress-bar') %> +<%- partial('components/header/progress-bar') %> <% if (theme.global.preloader === true || theme.global.preloader.enable === true) { %> - <%- partial('_partials/preloader') %> +<%- partial('components/header/preloader') %> <% } %>
- <% if (theme.home_banner.enable === true && is_home() && !page.prev) { %> - <%- partial('_partials/home-banner') %> - <% } else if (theme.home_banner.enable === true && is_home() && page.prev && theme.home_banner.style === "fixed") { %> - <%- partial('_partials/home-background') %> - <% } %> + <% if (theme.home_banner.enable === true && is_home() && !page.prev) { %> + <%- partial('pages/home/home-banner') %> + <% } else if (theme.home_banner.enable === true && is_home() && page.prev && theme.home_banner.style === "fixed") { %> + <%- partial('pages/home/home-background') %> + <% } %> -
+
+
+ <%- partial('components/header/navbar') %> +
+
+ <% if (is_home() && theme.home.sidebar.enable === true && theme.home.sidebar.position === "left") { %> + <%- partial('pages/home/home-sidebar') %> + <% } %> -
- <%- partial('_partials/navbar') %> -
+
+ <%- partial(getPagePartialPath(page)) %> +
-
+ <% if (is_home() && theme.home.sidebar.enable === true && theme.home.sidebar.position === "right") { %> + <%- partial('pages/home/home-sidebar') %> + <% } %> +
- <% if (is_home() && theme.home.sidebar.enable === true && theme.home.sidebar.position === "left") { %> - <%- partial('_partials/home-sidebar') %> - <% } %> + +
-
+ <% if (is_post()) { %> +
+ <%- partial('pages/post/post-tools') %> +
+ <% } %> - <% if (is_home()) { %> - <%- partial('_partials/home-content') %> -
- <% } else if (is_archive()) { %> - <%- partial('archive-content') %> +
+ <%- partial('utils/side-tools') %> +
- <% } else if (is_post()) { %> - <%- partial('article-content') %> + <%- partial('utils/image-viewer') %> - <% } else if (is_category()) { %> - <%- partial('category-content') %> - - <% } else if (is_tag()) { %> - <%- partial('tag-content') %> - - <% } else if (page.title === 'category' || page.title === 'categories' || page.type === "categories" || page.type === "category") { %> - <%- partial('category-list') %> - - <% } else if (page.title === 'tag' || page.title === 'tags' || page.type === "tags" || page.type === "tag") { %> - <%- partial('_widgets/tagcloud') %> - - <% } else if (page.title === 'Page Not Found' || page.title === '404') { %> - <%- partial('_partials/404-template') %> - - <% } else { %> - <%- partial('_partials/page-template') %> - - <% } %> - -
- - <% if (is_home() && theme.home.sidebar.enable === true && theme.home.sidebar.position === "right") { %> - <%- partial('_partials/home-sidebar') %> - <% } %> - -
- - -
- - <% if (is_post()) { %> -
- <%- partial('_widgets/post-tools') %> -
- <% } %> - -
- <%- partial('_widgets/side-tools') %> -
- - <%- partial('_widgets/image-viewer') %> - - <% if (theme.navbar.search.enable) { %> - <%- partial('_widgets/local-search') %> - <% } %> + <% if (theme.navbar.search.enable) { %> + <%- partial('utils/local-search') %> + <% } %>
<% if (theme.global.single_page !== false) { %> - <%- partial('_plugins/swup') %> -<% } %> - - +<%- partial('components/swup') %> +<% } %> \ No newline at end of file diff --git a/layout/archive-content.ejs b/layout/pages/archive/archive.ejs similarity index 63% rename from layout/archive-content.ejs rename to layout/pages/archive/archive.ejs index 9b2007c8..5dcc1cca 100755 --- a/layout/archive-content.ejs +++ b/layout/pages/archive/archive.ejs @@ -1,3 +1,3 @@
- <%- partial('_widgets/archive-list', {posts_new: site.posts}) %> + <%- partial('utils/posts-list', {posts: site.posts}) %>
\ No newline at end of file diff --git a/layout/pages/bookmarks/bookmarks.ejs b/layout/pages/bookmarks/bookmarks.ejs new file mode 100644 index 00000000..d9996a11 --- /dev/null +++ b/layout/pages/bookmarks/bookmarks.ejs @@ -0,0 +1,68 @@ +
+ + +

+ <%- getPageTitle(page) %> +

+
+ + + +
+ +
+ + +
+ <% for (const category of theme.bookmarks) { %> +
+

+ <%= category.category %> +

+ +
+ <% for (const item of category.items) { %> + +
+
+
+ <%= item.name %> +
+
+
+

+ <%= item.name %> +

+ +
+

+ <%= item.description %> +

+
+
+
+
+ <% } %> +
+
+ <% } %> +
+
+ +
\ No newline at end of file diff --git a/layout/pages/category/categories.ejs b/layout/pages/category/categories.ejs new file mode 100755 index 00000000..66e9fddf --- /dev/null +++ b/layout/pages/category/categories.ejs @@ -0,0 +1,11 @@ +

+ <%- getPageTitle(page) %> +

+
+ <%- list_categories(site.categories, { class: 'all-category', depth: 5, + style: 'list' }) %> +
+
+ <% if (page.comment) { %> <%- partial('components/comments/comment') %> + <% } %> +
\ No newline at end of file diff --git a/layout/pages/category/category-detail.ejs b/layout/pages/category/category-detail.ejs new file mode 100644 index 00000000..3f651200 --- /dev/null +++ b/layout/pages/category/category-detail.ejs @@ -0,0 +1,6 @@ +
+  <%= page.category %> +
+
+ <%- partial('utils/posts-list', {posts: page.posts}) %> +
diff --git a/layout/pages/friends/friends-link.ejs b/layout/pages/friends/friends-link.ejs new file mode 100755 index 00000000..6b97fd8f --- /dev/null +++ b/layout/pages/friends/friends-link.ejs @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/layout/_meta/home-article.ejs b/layout/pages/home/home-article.ejs similarity index 100% rename from layout/_meta/home-article.ejs rename to layout/pages/home/home-article.ejs diff --git a/layout/_partials/home-background.ejs b/layout/pages/home/home-background.ejs similarity index 100% rename from layout/_partials/home-background.ejs rename to layout/pages/home/home-background.ejs diff --git a/layout/_partials/home-banner.ejs b/layout/pages/home/home-banner.ejs similarity index 99% rename from layout/_partials/home-banner.ejs rename to layout/pages/home/home-banner.ejs index ba918851..6891a6bc 100755 --- a/layout/_partials/home-banner.ejs +++ b/layout/pages/home/home-banner.ejs @@ -39,7 +39,7 @@ <% } %> -
+
style="font-family: '<%- theme.home_banner.custom_font.family %>', sans-serif; !important;" diff --git a/layout/_partials/home-content.ejs b/layout/pages/home/home-content.ejs similarity index 95% rename from layout/_partials/home-content.ejs rename to layout/pages/home/home-content.ejs index a349008e..398cc0fc 100755 --- a/layout/_partials/home-content.ejs +++ b/layout/pages/home/home-content.ejs @@ -50,13 +50,13 @@ <% } %>
- <%- partial('_meta/home-article', {post: post}) %> + <%- partial('pages/home/home-article', {post: post}) %>
<% }) %>
- <%- partial('_widgets/paginator', {pageObject: page}) %> + <%- partial('utils/paginator', {pageObject: page}) %>
diff --git a/layout/_partials/home-sidebar.ejs b/layout/pages/home/home-sidebar.ejs similarity index 91% rename from layout/_partials/home-sidebar.ejs rename to layout/pages/home/home-sidebar.ejs index 9d54803c..7acd14ad 100644 --- a/layout/_partials/home-sidebar.ejs +++ b/layout/pages/home/home-sidebar.ejs @@ -6,9 +6,9 @@ %> <% if (theme.home.sidebar.first_item === "info") { %> <% if (hasSidebarLinks || hasSidebarAnnouncement) {%> <% } %> <% } %> diff --git a/layout/pages/masonry/masonry.ejs b/layout/pages/masonry/masonry.ejs new file mode 100644 index 00000000..2c8fea0b --- /dev/null +++ b/layout/pages/masonry/masonry.ejs @@ -0,0 +1,28 @@ +<% +// Define an array of images to display in the masonry layout +const images = theme.masonry; +%> + +

+ <%- getPageTitle(page) %> +

+ +
+
+
+
+
+
+
+ +
+ <% images.forEach(function(image) { %> +
+
+ <%- image.title %> +
<%- image.title %>
+
<%- image.description %>
+
+
+ <% }); %> +
\ No newline at end of file diff --git a/layout/_partials/404-template.ejs b/layout/pages/notfound/notfound.ejs similarity index 100% rename from layout/_partials/404-template.ejs rename to layout/pages/notfound/notfound.ejs diff --git a/layout/pages/page-template.ejs b/layout/pages/page-template.ejs new file mode 100755 index 00000000..fcee64ba --- /dev/null +++ b/layout/pages/page-template.ejs @@ -0,0 +1,23 @@ +
+ <% const pageData = getPageData(page); %> + + <% if (pageData) { %> + <%- partial(pageData.partial) %> + <% } %> + +
+ <% if (!pageData) { %> +

<%- page.title %>

+ <% } %> + + <%- page.content %> +
+ +
+ <% if (page.hasOwnProperty('comment') && (page.comment === true || page.comments === true) ) { %> + <%- partial('components/comments/comment') %> + <% } %> +
+
+ +<%- partial('utils/paginator', {pageObject: page}) %> \ No newline at end of file diff --git a/layout/pages/post/article-content.ejs b/layout/pages/post/article-content.ejs new file mode 100755 index 00000000..29fef7bc --- /dev/null +++ b/layout/pages/post/article-content.ejs @@ -0,0 +1,153 @@ +
+
+ +
+ <% if (page.cover || page.banner || (page.thumbnail && page.thumbnail !== false)) { %> + <% let articleCover = ""; + if (page.cover && page.cover.includes("/")) { + articleCover = page.cover; + } else if (page.banner && page.banner.includes("/")) { + articleCover = page.banner; + } else if (page.thumbnail && page.thumbnail !== null) { + articleCover = page.thumbnail; + } else if (config.marked.postAsset && config.marked.postAsset == true) { + articleCover = [page.path, page.cover || page.banner].join("/"); + } + %> + <% if (articleCover) { %> + <%= page.title %> + <% } %> +
"> +

<%= page.title %>

+
+ <% } else { %> +
"> +

<%= page.title %>

+
+ <% } %> +
+ + <% if (theme.info.author || config.author) { %> +
+
+ <%- image_tag((typeof page.avatar === "string" && (page.avatar)) || page.author?.avatar || theme.defaults.avatar) %> +
+
+
+ <%= (typeof page.author === "string" && (page.author)) || page.author?.name || theme.info.author || config.author %> + <% if (theme.hasOwnProperty('articles') && theme.articles.author_label.enable === true) { %> + <%- getAuthorLabel(site.posts.length, theme.articles.author_label.auto, theme.articles.author_label.list) %> + <% } %> +
+
+ <%- partial('pages/post/article-info', {articleObject: page, index: true}) %> +
+
+
+ <% } else { %> +
+
+ <%- partial('pages/post/article-info', {articleObject: page, index: true}) %> +
+
+ <% } %> + + <% if (page?.expires && page?.expires !== "") {%> + + + + <% } %> + + +
+ <%- page.content %> +
+ + <% if (theme.articles.copyright.enable || theme.articles.copyright === true) { %> +
+ <%- partial('pages/post/article-copyright') %> +
+ <% } %> + + <% if (page?.tags?.length) { %> + + <% } %> + + <%- articleRecommendationGenerator(page) %> + + <% if (page?.prev || page?.next) { %> +
+ <% if (page?.prev) { %> +
+ +
+ <% } %> + <% if (page?.next) { %> +
+ +
+ <% } %> +
+ <% } %> + + + <% if (theme.comment.enable === true && theme.comment.hasOwnProperty('system') && page.comment !== false) { %> +
+ <%- partial('components/comments/comment') %> +
+ <% } %> +
+ + <% if (is_post() && theme.articles.toc.enable === true) { %> +
+ <%- partial('pages/post/toc') %> +
+ <% } %> +
\ No newline at end of file diff --git a/layout/_meta/article-copyright.ejs b/layout/pages/post/article-copyright.ejs similarity index 100% rename from layout/_meta/article-copyright.ejs rename to layout/pages/post/article-copyright.ejs diff --git a/layout/_meta/article-info.ejs b/layout/pages/post/article-info.ejs similarity index 95% rename from layout/_meta/article-info.ejs rename to layout/pages/post/article-info.ejs index 960da878..90ab234b 100755 --- a/layout/_meta/article-info.ejs +++ b/layout/pages/post/article-info.ejs @@ -5,7 +5,7 @@ <%= date(articleObject.date, is_post() ? `${config.date_format} ${config.time_format}` : `${config.date_format}`).replace(" 00:00:00", "").replace(":00", "") %> <%= __("create_time") %> - <% if (articleObject.updated && articleObject.updated !== articleObject.date) { %> + <% if (articleObject?.updated && articleObject.updated !== articleObject.date) { %>   <%= date(articleObject.updated, is_post() ? `${config.date_format} ${config.time_format}` : `${config.date_format}`).replace(" 00:00:00", "").replace(":00", "") %> @@ -14,7 +14,7 @@ <% } %> - <% if (articleObject.categories.length) { %> + <% if (articleObject?.categories?.length) { %>   <% } %> - <% if (articleObject.tags.length) { %> + <% if (articleObject?.tags?.length) { %>   <% } %> - <% } %> diff --git a/layout/post.ejs b/layout/post.ejs new file mode 100644 index 00000000..907e0ab4 --- /dev/null +++ b/layout/post.ejs @@ -0,0 +1 @@ +<%- partial('page') %> diff --git a/layout/tag-content.ejs b/layout/tag-content.ejs deleted file mode 100755 index 9cad922d..00000000 --- a/layout/tag-content.ejs +++ /dev/null @@ -1,12 +0,0 @@ -
-
-  <%= page.tag %> -
-
- <%- partial('_widgets/archive-list', {posts_new: page.posts}) %> -
-
- -
- <%- partial('_widgets/paginator', {pageObject: page}) %> -
diff --git a/layout/_widgets/image-viewer.ejs b/layout/utils/image-viewer.ejs similarity index 60% rename from layout/_widgets/image-viewer.ejs rename to layout/utils/image-viewer.ejs index 2573efeb..e9235188 100755 --- a/layout/_widgets/image-viewer.ejs +++ b/layout/utils/image-viewer.ejs @@ -1,3 +1,3 @@
- -
+ + \ No newline at end of file diff --git a/layout/utils/local-search.ejs b/layout/utils/local-search.ejs new file mode 100755 index 00000000..7b7fed51 --- /dev/null +++ b/layout/utils/local-search.ejs @@ -0,0 +1,20 @@ +
+ +
\ No newline at end of file diff --git a/layout/utils/paginator.ejs b/layout/utils/paginator.ejs new file mode 100755 index 00000000..fc3bcedb --- /dev/null +++ b/layout/utils/paginator.ejs @@ -0,0 +1,8 @@ +
+ <%- paginator({ + prev_text: '', + next_text: '', + escape: false + }) %> +
+ \ No newline at end of file diff --git a/layout/_widgets/archive-list.ejs b/layout/utils/posts-list.ejs old mode 100755 new mode 100644 similarity index 96% rename from layout/_widgets/archive-list.ejs rename to layout/utils/posts-list.ejs index 34f8093d..04dffd59 --- a/layout/_widgets/archive-list.ejs +++ b/layout/utils/posts-list.ejs @@ -1,4 +1,4 @@ -<% const postList = createNewArchivePosts(posts_new) %> +<% const postList = createNewArchivePosts(posts) %>
<% postList.forEach(postYear => { %>
@@ -25,4 +25,4 @@
<% }) %> -
+ \ No newline at end of file diff --git a/layout/utils/side-tools.ejs b/layout/utils/side-tools.ejs new file mode 100755 index 00000000..db6cc8b2 --- /dev/null +++ b/layout/utils/side-tools.ejs @@ -0,0 +1,51 @@ +
+ + + +
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 398b7ab1..854887d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,20 @@ { "name": "hexo-theme-redefine", - "version": "2.7.3", + "version": "2.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hexo-theme-redefine", - "version": "2.7.3", + "version": "2.8.0", "license": "GPL-3.0", "devDependencies": { "eslint": "^8.47.0", + "glob-promise": "^6.0.7", + "husky": "^9.1.6", "postcss": "^8.4.47", - "tailwindcss": "^3.4.14" + "tailwindcss": "^3.4.14", + "terser": "^5.36.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -125,47 +128,57 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -336,6 +349,12 @@ "node": ">=8" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -809,20 +828,21 @@ "dev": true }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -840,6 +860,45 @@ "node": ">=10.13.0" } }, + "node_modules/glob-promise": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-6.0.7.tgz", + "integrity": "sha512-DEAe6br1w8ZF+y6KM2pzgdfhpreladtNvyNNVgSkxxkFWzXTJFXxQrJQQbAnc7kL0EUd7w5cR8u4K0P4+/q+Gw==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^8.0.3" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { "version": "13.21.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", @@ -882,6 +941,21 @@ "node": ">=8" } }, + "node_modules/husky": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", + "dev": true, + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -1563,6 +1637,27 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1607,6 +1702,15 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1616,6 +1720,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1662,6 +1776,27 @@ "node": ">=8" } }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1723,6 +1858,30 @@ "node": ">=14.0.0" } }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/package.json b/package.json index 6b43ffe6..f5076340 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,15 @@ { "name": "hexo-theme-redefine", - "version": "2.7.3", + "version": "2.8.0", "private": false, "description": "Redefine your writing with Hexo Theme Redefine.", "scripts": { - "npm:publish": "tailwindcss build -i source/css/style.styl -o source/assets/build/styles.css && npm publish", - "build:css": "tailwindcss build -i source/css/style.styl -o source/assets/build/styles.css", - "watch:css": "tailwindcss build -i source/css/style.styl -o source/assets/build/styles.css --watch" + "npm:publish": "npm run build && npm publish", + "build": "npm run build:css && npm run build:js", + "build:css": "tailwindcss build -i source/css/tailwind.source.css -o source/build/css/tailwind.css --minify", + "build:js": "node source/js/build.js", + "watch:css": "tailwindcss build -i source/css/tailwind.source.css -o source/build/css/tailwind.css --watch --minify", + "prepare": "husky" }, "repository": { "type": "git", @@ -29,7 +32,10 @@ "homepage": "https://redefine.ohevan.com", "devDependencies": { "eslint": "^8.47.0", + "glob-promise": "^6.0.7", + "husky": "^9.1.6", "postcss": "^8.4.47", - "tailwindcss": "^3.4.14" + "tailwindcss": "^3.4.14", + "terser": "^5.36.0" } } diff --git a/scripts/helpers/configExport.js b/scripts/config-export.js similarity index 93% rename from scripts/helpers/configExport.js rename to scripts/config-export.js index 68efdf3c..0d3ded6f 100755 --- a/scripts/helpers/configExport.js +++ b/scripts/config-export.js @@ -6,7 +6,7 @@ const url = require("url"); const fs = require("fs"); const path = require("path"); const yaml = require("js-yaml"); -const { version } = require("../../package.json"); +const { version } = require("../package.json"); /** * Export theme config to js @@ -37,7 +37,7 @@ hexo.extend.helper.register("export_config", function () { footerStart: this.theme.footer.start, }; - const languageDir = path.join(__dirname, "../../languages"); + const languageDir = path.join(__dirname, "../languages"); let file = fs .readdirSync(languageDir) .find((v) => v === `${this.config.language}.yml`); diff --git a/scripts/dataHandle.js b/scripts/data-handle.js similarity index 87% rename from scripts/dataHandle.js rename to scripts/data-handle.js index de89921c..77b6d1ec 100755 --- a/scripts/dataHandle.js +++ b/scripts/data-handle.js @@ -4,7 +4,6 @@ hexo.on('generateBefore', function () { const data = hexo.locals.get('data'); if (data) { - // theme config file handle if (data._config) { hexo.theme.config = data._config; @@ -29,6 +28,10 @@ hexo.on('generateBefore', function () { hexo.theme.config.masonry = (data.masonry || data.gallery || data.photos); } + if (data.bookmarks || data.tools) { + hexo.theme.config.bookmarks = data.bookmarks || data.tools; + } + } } }); diff --git a/scripts/events/welcome.js b/scripts/events/welcome.js index ad91d6fa..112c1a61 100644 --- a/scripts/events/welcome.js +++ b/scripts/events/welcome.js @@ -61,7 +61,6 @@ hexo.on("ready", async () => { } catch (error) { hexo.log.warn(`Check latest version failed: ${error}`); hexo.locals.set(`cdnTestStatus_cdnjs`, 404); - hexo.locals.set(`cdnTestStatus_sustech`, 404); hexo.locals.set(`cdnTestStatus_zstatic`, 404); hexo.locals.set(`cdnTestStatus_npmMirror`, 404); } @@ -130,14 +129,6 @@ function checkVersionAndCDNAvailability(data) { hexo.locals.set(`cdnTestStatus_zstatic`, 404); } - if (data.sustechCDN) { - hexo.log.info(`\x1b[32m%s\x1b[0m`, `CDN available: SUSTech`); - hexo.locals.set(`cdnTestStatus_sustech`, 200); - } else { - hexo.log.warn(`\x1b[31m%s\x1b[0m`, `SUSTech CDN is unavailable yet.`); - hexo.locals.set(`cdnTestStatus_sustech`, 404); - } - if (data.cdnjsCDN) { hexo.log.info(`\x1b[32m%s\x1b[0m`, `CDN available: CDNJS`); hexo.locals.set(`cdnTestStatus_cdnjs`, 200); diff --git a/scripts/filters/imgHandle.js b/scripts/filters/img-handle.js similarity index 100% rename from scripts/filters/imgHandle.js rename to scripts/filters/img-handle.js diff --git a/scripts/filters/lazyloadHandle.js b/scripts/filters/lazyload-handle.js similarity index 100% rename from scripts/filters/lazyloadHandle.js rename to scripts/filters/lazyload-handle.js diff --git a/scripts/filters/linkHandle.js b/scripts/filters/link-handle.js similarity index 90% rename from scripts/filters/linkHandle.js rename to scripts/filters/link-handle.js index bfef248b..beb44337 100755 --- a/scripts/filters/linkHandle.js +++ b/scripts/filters/link-handle.js @@ -33,7 +33,7 @@ hexo.extend.filter.register( if (theme.config.articles.style.link_icon == false) { return `${html}`; } else { - return `${html} `; + return `${html}`; } }, ); diff --git a/scripts/filters/stylHandle.js b/scripts/filters/stylus-handle.js similarity index 100% rename from scripts/filters/stylHandle.js rename to scripts/filters/stylus-handle.js diff --git a/scripts/filters/tableHandle.js b/scripts/filters/table-handle.js similarity index 100% rename from scripts/filters/tableHandle.js rename to scripts/filters/table-handle.js diff --git a/scripts/helpers/autoCanonical.js b/scripts/helpers/autoCanonical.js deleted file mode 100644 index 229c7115..00000000 --- a/scripts/helpers/autoCanonical.js +++ /dev/null @@ -1,15 +0,0 @@ -/** -* hexo-auto-canonical -* https://github.com/hyunseob/hexo-auto-canonical.git -* Copyright (c) 2015, HyunSeob -* Licensed under the MIT license. -*/ - -'use strict'; - -hexo.extend.helper.register('autoCanonical', function (config, page) { - var base_url = config.url; - if (config.url.charAt(config.url.length - 1) !== '/') base_url += '/'; - - return ''; -}); \ No newline at end of file diff --git a/scripts/helpers/seoGenerate.js b/scripts/helpers/meta-helpers.js similarity index 56% rename from scripts/helpers/seoGenerate.js rename to scripts/helpers/meta-helpers.js index dd56573b..47fbd13c 100755 --- a/scripts/helpers/seoGenerate.js +++ b/scripts/helpers/meta-helpers.js @@ -1,4 +1,4 @@ -hexo.extend.helper.register('generate_seo', function (theme, page) { +hexo.extend.helper.register('generateMeta', function (theme, page) { const hexo = this; let robots_content=""; if (page.robots) { @@ -21,4 +21,18 @@ hexo.extend.helper.register('generate_seo', function (theme, page) { if(robots_content){ return `` } +}); + +/** +* hexo-auto-canonical +* https://github.com/hyunseob/hexo-auto-canonical.git +* Copyright (c) 2015, HyunSeob +* Licensed under the MIT license. +*/ + +hexo.extend.helper.register('autoCanonical', function (config, page) { + var base_url = config.url; + if (config.url.charAt(config.url.length - 1) !== '/') base_url += '/'; + + return ''; }); \ No newline at end of file diff --git a/scripts/helpers/page-helpers.js b/scripts/helpers/page-helpers.js new file mode 100644 index 00000000..f0f43e8d --- /dev/null +++ b/scripts/helpers/page-helpers.js @@ -0,0 +1,153 @@ +/* + pageData is an object that defines various page types and their associated rendering details. + + Each page type includes the following properties: + + - titles: An array of possible titles for the page, which are used to identify the page type. + - types: An array of page types that can be matched; the type takes precedence over the title for identification. + - partial: The path to the partial template that will be used to render the content of the page. + - layout: Specifies the layout style for the page. "raw" indicates that no theme layout will be applied, while "default" means the standard theme layout (container) will be used. +*/ + +const pageData = { + home: { + titles: ["home", "首页"], + types: ["home"], + partial: "pages/home/home-content", + layout: "raw", + }, + archive: { + titles: ["archive", "归档"], + types: ["archive", "archives"], + partial: "pages/archive/archive", + layout: "raw", + }, + post: { + titles: ["post", "文章"], + types: ["post", "posts"], + partial: "pages/post/article-content", + layout: "raw", + }, + categories: { + titles: ["category", "categories"], + types: ["category", "categories"], + partial: "pages/category/categories", + layout: "default", + }, + categoryDetail: { + titles: [], + types: [], + partial: "pages/category/category-detail", + layout: "default", + }, + tags: { + titles: ["tag", "tags"], + types: ["tag", "tags"], + partial: "pages/tag/tags", + layout: "default", + }, + tagDetail: { + titles: [], + types: [], + partial: "pages/tag/tag-detail", + layout: "default", + }, + notFound: { + titles: ["404", "notfound"], + types: ["404", "notfound"], + partial: "pages/notfound/notfound", + layout: "raw", + }, + friends: { + titles: ["friends", "links", "link", "friend", "友情链接"], + types: ["links", "link"], + partial: "pages/friends/friends-link", + layout: "default", + }, + shuoshuo: { + titles: ["shuoshuo", "说说"], + types: ["essays", "essay", "shuoshuo"], + partial: "pages/shuoshuo/essays", + layout: "default", + }, + masonry: { + titles: ["gallery", "瀑布流", "相册", "photos", "photo"], + types: ["masonry", "gallery", "瀑布流", "相册", "photos", "photo"], + partial: "pages/masonry/masonry", + layout: "default", + }, + bookmarks: { + titles: [], + types: ["bookmarks", "bookmark", "tools"], + partial: "pages/bookmarks/bookmarks", + layout: "raw", + }, + pageTemplate: { + titles: [], + types: [], + partial: "pages/page-template", + layout: "default", + }, +}; + +hexo.extend.helper.register("getAllPageData", function () { + return pageData; +}); + +hexo.extend.helper.register("getPageData", function (page) { + if (this.is_home()) return pageData.home; + if (this.is_archive()) return pageData.archive; + if (this.is_post()) return pageData.post; + if (this.is_category()) return pageData.categoryDetail; + if (this.is_tag()) return pageData.tagDetail; + + const currentPageConfig = Object.entries(pageData).find(([type, config]) => { + return config.types.includes(page.template || page.type) || config.titles.includes(page.title?.toLowerCase()); + }); + return currentPageConfig ? pageData[currentPageConfig[0]] : null; +}); + +hexo.extend.helper.register("getPagePartialPath", function (page) { + const matchesPageType = (type) => { + const config = pageData[type]; + return ( + config.types.includes(page.template || page.type) || + config.titles.includes(page.title?.toLowerCase()) + ); + }; + + // Check built-in page types first + if (this.is_home()) return pageData.home.partial; + + if (this.is_post()) return pageData.post.partial; + // Check custom page types + for (const [type, config] of Object.entries(pageData)) { + if (matchesPageType(type) && config.layout === "raw") { + return config.partial; + } else if (this.is_archive() && pageData.archive.layout === "raw") { // return raw layout for archive page + return pageData.archive.partial; + } else if (this.is_category() && pageData.categoryDetail.layout === "raw") { // return raw layout for category page + return pageData.categoryDetail.partial; + } else if (this.is_tag() && pageData.tagDetail.layout === "raw") { // return raw layout for tag page + return pageData.tagDetail.partial; + } + } + + return pageData.pageTemplate.partial; +}); + +hexo.extend.helper.register("getPageTitle", function (page) { + const pageData = this.getPageData(page); + let type = null; + + // Determine the type based on page properties + if (this.is_home()) type = "home"; + else if (this.is_archive()) type = "archive"; + else if (this.is_post()) type = "post"; + else { + type = pageData.type; + } + + // const config = type ? pageData[type] : null; + return page.title || this.__(type) || "Untitled"; +}); diff --git a/scripts/helpers/articleRecommend.js b/scripts/helpers/recommendation-helpers.js similarity index 100% rename from scripts/helpers/articleRecommend.js rename to scripts/helpers/recommendation-helpers.js diff --git a/scripts/helpers/themeHelpers.js b/scripts/helpers/theme-helpers.js similarity index 94% rename from scripts/helpers/themeHelpers.js rename to scripts/helpers/theme-helpers.js index f0209b5a..e8ce64bf 100755 --- a/scripts/helpers/themeHelpers.js +++ b/scripts/helpers/theme-helpers.js @@ -6,7 +6,7 @@ const url = require("url"); const { version } = require("../../package.json"); const themeVersion = version; -hexo.extend.helper.register("isInHomePaging", function (pagePath, route) { +hexo.extend.helper.register("isHomePagePagination", function (pagePath, route) { if (pagePath.length > 5 && route === "/") { return pagePath.slice(0, 5) === "page/"; } @@ -92,9 +92,13 @@ hexo.extend.helper.register("renderJS", function (path, options = {}) { const _js = hexo.extend.helper.get("js").bind(hexo); const { module = false, async = false, swupReload = false } = options; + if (Array.isArray(path)) { + path = path.map((p) => "build/" + p); + } else { + path = "build/" + path; + } + const cdnProviders = { - sustech: - "https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/hexo-theme-redefine/:version/:path", zstatic: "https://s4.zstatic.net/ajax/libs/hexo-theme-redefine/:version/:path", cdnjs: @@ -158,10 +162,6 @@ hexo.extend.helper.register("renderCSS", function (path) { const _css = hexo.extend.helper.get("css").bind(hexo); const cdnProviders = { - // FUCK STATICFILE, CDN POISONING - // FUCK BOOTCDN, CDN POISONING - sustech: - "https://mirrors.sustech.edu.cn/cdnjs/ajax/libs/hexo-theme-redefine/:version/:path", zstatic: "https://s4.zstatic.net/ajax/libs/hexo-theme-redefine/:version/:path", cdnjs: diff --git a/scripts/helpers/walineConfig.js b/scripts/helpers/waline-helpers.js similarity index 100% rename from scripts/helpers/walineConfig.js rename to scripts/helpers/waline-helpers.js diff --git a/source/assets/build/styles.css b/source/assets/build/styles.css deleted file mode 100644 index b97bea20..00000000 --- a/source/assets/build/styles.css +++ /dev/null @@ -1,1845 +0,0 @@ -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; - --tw-contain-size: ; - --tw-contain-layout: ; - --tw-contain-paint: ; - --tw-contain-style: ; -} - -/* -! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -7. Disable tap highlights on iOS -*/ - -html, -:host { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ - -webkit-tap-highlight-color: transparent; - /* 7 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font-family by default. -2. Use the user's configured `mono` font-feature-settings by default. -3. Use the user's configured `mono` font-variation-settings by default. -4. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-feature-settings: normal; - /* 2 */ - font-variation-settings: normal; - /* 3 */ - font-size: 1em; - /* 4 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-feature-settings: inherit; - /* 1 */ - font-variation-settings: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - letter-spacing: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -input:where([type='button']), -input:where([type='reset']), -input:where([type='submit']) { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden]:where(:not([hidden="until-found"])) { - display: none; -} - -.container { - width: 100%; -} - -@media (min-width: 640px) { - .container { - max-width: 640px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 768px; - } -} - -@media (min-width: 1024px) { - .container { - max-width: 1024px; - } -} - -@media (min-width: 1280px) { - .container { - max-width: 1280px; - } -} - -@media (min-width: 1536px) { - .container { - max-width: 1536px; - } -} - -.visible { - visibility: visible; -} - -.invisible { - visibility: hidden; -} - -.static { - position: static; -} - -.fixed { - position: fixed; -} - -.absolute { - position: absolute; -} - -.relative { - position: relative; -} - -.sticky { - position: sticky; -} - -.bottom-0 { - bottom: 0px; -} - -.bottom-0\.5 { - bottom: 0.125rem; -} - -.left-0 { - left: 0px; -} - -.left-\[50\.5px\] { - left: 50.5px; -} - -.right-0 { - right: 0px; -} - -.right-\[12px\] { - right: 12px; -} - -.top-0 { - top: 0px; -} - -.top-3 { - top: 0.75rem; -} - -.top-\[12px\] { - top: 12px; -} - -.top-\[2px\] { - top: 2px; -} - -.z-1 { - z-index: 1001; -} - -.z-\[1100\] { - z-index: 1100; -} - -.m-1 { - margin: 0.25rem; -} - -.mx-0 { - margin-left: 0px; - margin-right: 0px; -} - -.mx-0\.5 { - margin-left: 0.125rem; - margin-right: 0.125rem; -} - -.mx-2 { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -.mx-6 { - margin-left: 1.5rem; - margin-right: 1.5rem; -} - -.my-0\.5 { - margin-top: 0.125rem; - margin-bottom: 0.125rem; -} - -.my-1 { - margin-top: 0.25rem; - margin-bottom: 0.25rem; -} - -.my-1\.5 { - margin-top: 0.375rem; - margin-bottom: 0.375rem; -} - -.my-2\.5 { - margin-top: 0.625rem; - margin-bottom: 0.625rem; -} - -.my-6 { - margin-top: 1.5rem; - margin-bottom: 1.5rem; -} - -.my-8 { - margin-top: 2rem; - margin-bottom: 2rem; -} - -.mb-14 { - margin-bottom: 3.5rem; -} - -.mb-2 { - margin-bottom: 0.5rem; -} - -.mb-4 { - margin-bottom: 1rem; -} - -.mb-5 { - margin-bottom: 1.25rem; -} - -.mb-6 { - margin-bottom: 1.5rem; -} - -.mb-spacing-unit { - margin-bottom: 38px; -} - -.ml-1\.5 { - margin-left: 0.375rem; -} - -.mr-0\.5 { - margin-right: 0.125rem; -} - -.mr-2 { - margin-right: 0.5rem; -} - -.mr-3 { - margin-right: 0.75rem; -} - -.mr-4 { - margin-right: 1rem; -} - -.mr-\[3px\] { - margin-right: 3px; -} - -.mt-1 { - margin-top: 0.25rem; -} - -.mt-1\.5 { - margin-top: 0.375rem; -} - -.mt-10 { - margin-top: 2.5rem; -} - -.mt-2 { - margin-top: 0.5rem; -} - -.mt-4 { - margin-top: 1rem; -} - -.mt-5 { - margin-top: 1.25rem; -} - -.mt-8 { - margin-top: 2rem; -} - -.box-border { - box-sizing: border-box; -} - -.block { - display: block; -} - -.inline-block { - display: inline-block; -} - -.inline { - display: inline; -} - -.flex { - display: flex; -} - -.table { - display: table; -} - -.table-cell { - display: table-cell; -} - -.grid { - display: grid; -} - -.contents { - display: contents; -} - -.hidden { - display: none; -} - -.aspect-square { - aspect-ratio: 1 / 1; -} - -.h-1 { - height: 0.25rem; -} - -.h-10 { - height: 2.5rem; -} - -.h-16 { - height: 4rem; -} - -.h-2 { - height: 0.5rem; -} - -.h-2\.5 { - height: 0.625rem; -} - -.h-32 { - height: 8rem; -} - -.h-4 { - height: 1rem; -} - -.h-60 { - height: 15rem; -} - -.h-8 { - height: 2rem; -} - -.h-\[150px\] { - height: 150px; -} - -.h-\[46px\] { - height: 46px; -} - -.h-auto { - height: auto; -} - -.h-dvh { - height: 100dvh; -} - -.h-full { - height: 100%; -} - -.h-screen { - height: 100vh; -} - -.min-h-dvh { - min-height: 100dvh; -} - -.w-10 { - width: 2.5rem; -} - -.w-16 { - width: 4rem; -} - -.w-2 { - width: 0.5rem; -} - -.w-20 { - width: 5rem; -} - -.w-64 { - width: 16rem; -} - -.w-8 { - width: 2rem; -} - -.w-\[1px\] { - width: 1px; -} - -.w-\[46px\] { - width: 46px; -} - -.w-fit { - width: -moz-fit-content; - width: fit-content; -} - -.w-full { - width: 100%; -} - -.w-screen { - width: 100vw; -} - -.min-w-0 { - min-width: 0px; -} - -.\!max-w-none { - max-width: none !important; -} - -.max-w-\[1340px\] { - max-width: 1340px; -} - -.max-w-none { - max-width: none; -} - -.flex-shrink-0 { - flex-shrink: 0; -} - -.shrink { - flex-shrink: 1; -} - -.translate-y-0\.5 { - --tw-translate-y: 0.125rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.-rotate-45 { - --tw-rotate: -45deg; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.scale-100 { - --tw-scale-x: 1; - --tw-scale-y: 1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.scale-125 { - --tw-scale-x: 1.25; - --tw-scale-y: 1.25; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.transform { - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.cursor-default { - cursor: default; -} - -.cursor-pointer { - cursor: pointer; -} - -.resize { - resize: both; -} - -.grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); -} - -.flex-row { - flex-direction: row; -} - -.flex-row-reverse { - flex-direction: row-reverse; -} - -.flex-col { - flex-direction: column; -} - -.flex-wrap { - flex-wrap: wrap; -} - -.items-start { - align-items: flex-start; -} - -.items-center { - align-items: center; -} - -.justify-start { - justify-content: flex-start; -} - -.justify-center { - justify-content: center; -} - -.justify-between { - justify-content: space-between; -} - -.justify-around { - justify-content: space-around; -} - -.gap-1 { - gap: 0.25rem; -} - -.gap-2 { - gap: 0.5rem; -} - -.gap-3 { - gap: 0.75rem; -} - -.gap-4 { - gap: 1rem; -} - -.gap-5 { - gap: 1.25rem; -} - -.gap-6 { - gap: 1.5rem; -} - -.space-x-0\.5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.125rem * var(--tw-space-x-reverse)); - margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-y-2 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); -} - -.overflow-hidden { - overflow: hidden; -} - -.truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.rounded-2xl { - border-radius: 1rem; -} - -.rounded-3xl { - border-radius: 1.5rem; -} - -.rounded-\[6\.2px\] { - border-radius: 6.2px; -} - -.rounded-full { - border-radius: 9999px; -} - -.rounded-lg { - border-radius: 0.5rem; -} - -.rounded-medium { - border-radius: 14px; -} - -.rounded-sm { - border-radius: 0.125rem; -} - -.rounded-small { - border-radius: 9px; -} - -.rounded-xl { - border-radius: 0.75rem; -} - -.rounded-l-lg { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.rounded-t-large { - border-top-left-radius: 18px; - border-top-right-radius: 18px; -} - -.rounded-t-lg { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - -.rounded-bl-lg { - border-bottom-left-radius: 0.5rem; -} - -.rounded-tl-none { - border-top-left-radius: 0px; -} - -.border { - border-width: 1px; -} - -.border-b { - border-bottom-width: 1px; -} - -.border-l { - border-left-width: 1px; -} - -.border-l-2 { - border-left-width: 2px; -} - -.border-t { - border-top-width: 1px; -} - -.border-t-2 { - border-top-width: 2px; -} - -.border-solid { - border-style: solid; -} - -.border-border-color { - border-color: var(--border-color); -} - -.border-shadow-color-1 { - border-color: var(--shadow-color-1); -} - -.border-white\/20 { - border-color: rgb(255 255 255 / 0.2); -} - -.border-t-border-color { - border-top-color: var(--border-color); -} - -.bg-background-color { - background-color: var(--background-color); -} - -.bg-background-color-transparent { - background-color: var(--background-color-transparent); -} - -.bg-background-color-transparent-15 { - background-color: var(--background-color-transparent-15); -} - -.bg-background-color-transparent-40 { - background-color: var(--background-color-transparent-40); -} - -.bg-gray-300\/50 { - background-color: rgb(209 213 219 / 0.5); -} - -.bg-third-background-color { - background-color: var(--third-background-color); -} - -.bg-third-text-color { - background-color: var(--third-text-color); -} - -.bg-zinc-50 { - --tw-bg-opacity: 1; - background-color: rgb(250 250 250 / var(--tw-bg-opacity)); -} - -.bg-cover { - background-size: cover; -} - -.object-cover { - -o-object-fit: cover; - object-fit: cover; -} - -.p-1 { - padding: 0.25rem; -} - -.p-3 { - padding: 0.75rem; -} - -.p-4 { - padding: 1rem; -} - -.p-5 { - padding: 1.25rem; -} - -.p-\[1px\] { - padding: 1px; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.px-4 { - padding-left: 1rem; - padding-right: 1rem; -} - -.px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; -} - -.px-7 { - padding-left: 1.75rem; - padding-right: 1.75rem; -} - -.px-8 { - padding-left: 2rem; - padding-right: 2rem; -} - -.px-\[10px\] { - padding-left: 10px; - padding-right: 10px; -} - -.py-0\.5 { - padding-top: 0.125rem; - padding-bottom: 0.125rem; -} - -.py-1\.5 { - padding-top: 0.375rem; - padding-bottom: 0.375rem; -} - -.py-2 { - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.py-3 { - padding-top: 0.75rem; - padding-bottom: 0.75rem; -} - -.py-5 { - padding-top: 1.25rem; - padding-bottom: 1.25rem; -} - -.py-\[2px\] { - padding-top: 2px; - padding-bottom: 2px; -} - -.pb-2 { - padding-bottom: 0.5rem; -} - -.pb-7 { - padding-bottom: 1.75rem; -} - -.pb-8 { - padding-bottom: 2rem; -} - -.pl-0 { - padding-left: 0px; -} - -.pt-10 { - padding-top: 2.5rem; -} - -.pt-5 { - padding-top: 1.25rem; -} - -.pt-6 { - padding-top: 1.5rem; -} - -.pt-7 { - padding-top: 1.75rem; -} - -.text-center { - text-align: center; -} - -.align-baseline { - vertical-align: baseline; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; -} - -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; -} - -.text-\[0\.65rem\] { - font-size: 0.65rem; -} - -.text-\[0\.7rem\] { - font-size: 0.7rem; -} - -.text-\[3\.2rem\] { - font-size: 3.2rem; -} - -.text-base { - font-size: 1rem; - line-height: 1.5rem; -} - -.text-lg { - font-size: 1.125rem; - line-height: 1.75rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.text-xs { - font-size: 0.75rem; - line-height: 1rem; -} - -.font-bold { - font-weight: 700; -} - -.font-medium { - font-weight: 500; -} - -.font-semibold { - font-weight: 600; -} - -.uppercase { - text-transform: uppercase; -} - -.lowercase { - text-transform: lowercase; -} - -.italic { - font-style: italic; -} - -.ordinal { - --tw-ordinal: ordinal; - font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); -} - -.leading-\[1\.5\] { - line-height: 1.5; -} - -.leading-\[1\] { - line-height: 1; -} - -.tracking-tight { - letter-spacing: -0.025em; -} - -.text-default-text-color { - color: var(--default-text-color); -} - -.text-red-600 { - --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity)); -} - -.text-second-text-color { - color: var(--second-text-color); -} - -.text-third-text-color { - color: var(--third-text-color); -} - -.opacity-0 { - opacity: 0; -} - -.shadow { - --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); - --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-none { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-redefine-flat { - --tw-shadow: 0px 1px 4px 0px var(--shadow-color-2), 0px 0px 0px 1px var(--shadow-color-1); - --tw-shadow-colored: 0px 1px 4px 0px var(--tw-shadow-color), 0px 0px 0px 1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.shadow-shadow-color-2 { - --tw-shadow-color: var(--shadow-color-2); - --tw-shadow: var(--tw-shadow-colored); -} - -.blur { - --tw-blur: blur(8px); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.drop-shadow { - --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06)); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.invert { - --tw-invert: invert(100%); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -.backdrop-blur-lg { - --tw-backdrop-blur: blur(16px); - -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); - backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); -} - -.backdrop-filter { - -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); - backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); -} - -.transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-all { - transition-property: all; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-shadow { - transition-property: box-shadow; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.transition-transform { - transition-property: transform; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-duration: 150ms; -} - -.duration-100 { - transition-duration: 100ms; -} - -.ease-linear { - transition-timing-function: linear; -} - -.will-change-transform { - will-change: transform; -} - -.last\:mb-0:last-child { - margin-bottom: 0px; -} - -.hover\:border-primary:hover { - border-color: var(--primary-color); -} - -.hover\:\!text-primary:hover { - color: var(--primary-color) !important; -} - -.hover\:text-first-text-color:hover { - color: var(--first-text-color); -} - -.hover\:underline:hover { - text-decoration-line: underline; -} - -.hover\:underline-offset-1:hover { - text-underline-offset: 1px; -} - -.hover\:shadow-none:hover { - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.hover\:shadow-redefine-flat-hover:hover { - --tw-shadow: 0px 1px 4px 0px var(--shadow-color-2), 0px 0px 0px 1px var(--shadow-color-1), 0px 0px 0px 1px inset var(--shadow-color-1); - --tw-shadow-colored: 0px 1px 4px 0px var(--tw-shadow-color), 0px 0px 0px 1px var(--tw-shadow-color), inset 0px 0px 0px 1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); -} - -.hover\:shadow-shadow-color-2:hover { - --tw-shadow-color: var(--shadow-color-2); - --tw-shadow: var(--tw-shadow-colored); -} - -.active\:scale-95:active { - --tw-scale-x: .95; - --tw-scale-y: .95; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.active\:\!text-primary:active { - color: var(--primary-color) !important; -} - -.active\:underline:active { - text-decoration-line: underline; -} - -.group:hover .group-hover\:visible { - visibility: visible; -} - -.group:hover .group-hover\:translate-y-0 { - --tw-translate-y: 0px; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.group:hover .group-hover\:translate-y-1 { - --tw-translate-y: 0.25rem; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); -} - -.group:hover .group-hover\:\!text-primary { - color: var(--primary-color) !important; -} - -.group:hover .group-hover\:opacity-100 { - opacity: 1; -} - -.dark\:block:is(.dark *) { - display: block; -} - -.dark\:hidden:is(.dark *) { - display: none; -} - -.dark\:border-gray-500\/30:is(.dark *) { - border-color: rgb(107 114 128 / 0.3); -} - -.dark\:bg-gray-500\/40:is(.dark *) { - background-color: rgb(107 114 128 / 0.4); -} - -.dark\:bg-zinc-800:is(.dark *) { - --tw-bg-opacity: 1; - background-color: rgb(39 39 42 / var(--tw-bg-opacity)); -} - -.dark\:text-red-400:is(.dark *) { - --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); -} - -.dark\:brightness-75:is(.dark *) { - --tw-brightness: brightness(.75); - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -@media (min-width: 640px) { - .sm\:mx-6 { - margin-left: 1.5rem; - margin-right: 1.5rem; - } - - .sm\:h-10 { - height: 2.5rem; - } - - .sm\:h-72 { - height: 18rem; - } - - .sm\:w-10 { - width: 2.5rem; - } - - .sm\:scale-110 { - --tw-scale-x: 1.1; - --tw-scale-y: 1.1; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - } - - .sm\:grid-cols-3 { - grid-template-columns: repeat(3, minmax(0, 1fr)); - } - - .sm\:gap-2 { - gap: 0.5rem; - } - - .sm\:rounded-t-large { - border-top-left-radius: 18px; - border-top-right-radius: 18px; - } - - .sm\:px-12 { - padding-left: 3rem; - padding-right: 3rem; - } - - .sm\:px-6 { - padding-left: 1.5rem; - padding-right: 1.5rem; - } - - .sm\:text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; - } - - .sm\:text-xl { - font-size: 1.25rem; - line-height: 1.75rem; - } - - .sm\:shadow-redefine { - --tw-shadow: 0px 6px 24px 0px var(--shadow-color-2), 0px 0px 0px 1px var(--shadow-color-1); - --tw-shadow-colored: 0px 6px 24px 0px var(--tw-shadow-color), 0px 0px 0px 1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - } - - .sm\:hover\:shadow-redefine-hover:hover { - --tw-shadow: 0px 6px 24px 0px var(--shadow-color-2), 0px 0px 0px 1px var(--shadow-color-1), 0px 0px 0px 1px inset var(--shadow-color-1); - --tw-shadow-colored: 0px 6px 24px 0px var(--tw-shadow-color), 0px 0px 0px 1px var(--tw-shadow-color), inset 0px 0px 0px 1px var(--tw-shadow-color); - box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); - } -} - -@media (min-width: 768px) { - .md\:mx-8 { - margin-left: 2rem; - margin-right: 2rem; - } - - .md\:my-2\.5 { - margin-top: 0.625rem; - margin-bottom: 0.625rem; - } - - .md\:hidden { - display: none; - } - - .md\:h-44 { - height: 11rem; - } - - .md\:h-80 { - height: 20rem; - } - - .md\:px-12 { - padding-left: 3rem; - padding-right: 3rem; - } - - .md\:px-8 { - padding-left: 2rem; - padding-right: 2rem; - } - - .md\:pl-8 { - padding-left: 2rem; - } - - .md\:text-3xl { - font-size: 1.875rem; - line-height: 2.25rem; - } - - .md\:text-5xl { - font-size: 3rem; - line-height: 1; - } - - .md\:text-6xl { - font-size: 3.75rem; - line-height: 1; - } - - .md\:text-sm { - font-size: 0.875rem; - line-height: 1.25rem; - } -} - -@media (min-width: 1024px) { - .lg\:absolute { - position: absolute; - } - - .lg\:left-\[20px\] { - left: 20px; - } - - .lg\:right-\[20px\] { - right: 20px; - } - - .lg\:top-1\/2 { - top: 50%; - } - - .lg\:\!block { - display: block !important; - } - - .lg\:block { - display: block; - } - - .lg\:-translate-y-1\/2 { - --tw-translate-y: -50%; - transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - } - - .lg\:text-left { - text-align: left; - } - - .lg\:text-right { - text-align: right; - } -} diff --git a/source/build/css/tailwind.css b/source/build/css/tailwind.css new file mode 100644 index 00000000..26dbe552 --- /dev/null +++ b/source/build/css/tailwind.css @@ -0,0 +1 @@ +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:240 5.9% 10%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:240 10% 3.9%;--radius:0.5rem;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%}.dark{--background:240 10% 3.9%;--foreground:0 0% 98%;--card:240 10% 3.9%;--card-foreground:0 0% 98%;--popover:240 10% 3.9%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:240 5.9% 10%;--secondary:240 3.7% 15.9%;--secondary-foreground:0 0% 98%;--muted:240 3.7% 15.9%;--muted-foreground:240 5% 64.9%;--accent:240 3.7% 15.9%;--accent-foreground:0 0% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:240 3.7% 15.9%;--input:240 3.7% 15.9%;--ring:240 4.9% 83.9%;--chart-1:220 70% 50%;--chart-2:160 60% 45%;--chart-3:30 80% 55%;--chart-4:280 65% 60%;--chart-5:340 75% 55%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.left-0{left:0}.left-\[50\.5px\]{left:50.5px}.right-0{right:0}.right-\[12px\]{right:12px}.top-0{top:0}.top-3{top:.75rem}.top-\[12px\]{top:12px}.top-\[2px\]{top:2px}.z-1{z-index:1001}.z-\[1100\]{z-index:1100}.m-1{margin:.25rem}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-spacing-unit{margin-bottom:38px}.ml-1\.5{margin-left:.375rem}.ml-\[0\.2em\]{margin-left:.2em}.mr-0\.5{margin-right:.125rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-\[3px\]{margin-right:3px}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.box-border{box-sizing:border-box}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.table-cell{display:table-cell}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-32{height:8rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-8{height:2rem}.h-\[150px\]{height:150px}.h-\[46px\]{height:46px}.h-auto{height:auto}.h-dvh{height:100dvh}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-screen{height:100vh}.min-h-dvh{min-height:100dvh}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[1px\]{width:1px}.w-\[46px\]{width:46px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0}.\!max-w-none{max-width:none!important}.max-w-\[1340px\]{max-width:1340px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.translate-y-0\.5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y:0.125rem}.-rotate-45{--tw-rotate:-45deg}.-rotate-45,.scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-125{--tw-scale-x:1.25;--tw-scale-y:1.25}.scale-125,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.125rem*var(--tw-space-x-reverse));margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[6\.2px\]{border-radius:6.2px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-medium{border-radius:14px}.rounded-sm{border-radius:.125rem}.rounded-small{border-radius:9px}.rounded-xl{border-radius:.75rem}.rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-t-large{border-top-left-radius:18px;border-top-right-radius:18px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-tl-none{border-top-left-radius:0}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-border-color{border-color:var(--border-color)}.border-shadow-color-1{border-color:var(--shadow-color-1)}.border-transparent{border-color:transparent}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-t-border-color{border-top-color:var(--border-color)}.bg-background-color{background-color:var(--background-color)}.bg-background-color-transparent{background-color:var(--background-color-transparent)}.bg-background-color-transparent-15{background-color:var(--background-color-transparent-15)}.bg-background-color-transparent-40{background-color:var(--background-color-transparent-40)}.bg-gray-300\/50{background-color:rgba(209,213,219,.5)}.bg-second-background-color{background-color:var(--second-background-color)}.bg-third-background-color{background-color:var(--third-background-color)}.bg-third-text-color{background-color:var(--third-text-color)}.bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity))}.bg-cover{background-size:cover}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-\[1px\]{padding:1px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[10px\]{padding-left:10px;padding-right:10px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-7{padding-bottom:1.75rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pt-10{padding-top:2.5rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.text-center{text-align:center}.align-baseline{vertical-align:baseline}.align-text-top{vertical-align:text-top}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.7em\]{font-size:.7em}.text-\[0\.7rem\]{font-size:.7rem}.text-\[3\.2rem\]{font-size:3.2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.5\]{line-height:1.5}.leading-\[1\]{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-default-text-color{color:var(--default-text-color)}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.text-second-text-color{color:var(--second-text-color)}.text-third-text-color{color:var(--third-text-color)}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-redefine-flat{--tw-shadow:0px 1px 4px 0px var(--shadow-color-2),0px 0px 0px 1px var(--shadow-color-1);--tw-shadow-colored:0px 1px 4px 0px var(--tw-shadow-color),0px 0px 0px 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-shadow-color-2{--tw-shadow-color:var(--shadow-color-2);--tw-shadow:var(--tw-shadow-colored)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.backdrop-blur-lg,.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-linear{transition-timing-function:linear}.will-change-transform{will-change:transform}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.last\:mb-0:last-child{margin-bottom:0}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:transform:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-primary:hover{border-color:var(--primary-color)}.hover\:border-second-background-color:hover{border-color:var(--second-background-color)}.hover\:bg-second-background-color:hover{background-color:var(--second-background-color)}.hover\:\!text-primary:hover{color:var(--primary-color)!important}.hover\:text-first-text-color:hover{color:var(--first-text-color)}.hover\:text-primary:hover{color:var(--primary-color)}.hover\:underline:hover{text-decoration-line:underline}.hover\:underline-offset-1:hover{text-underline-offset:1px}.hover\:shadow-none:hover{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.hover\:shadow-none:hover,.hover\:shadow-redefine-flat-hover:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-redefine-flat-hover:hover{--tw-shadow:0px 1px 4px 0px var(--shadow-color-2),0px 0px 0px 1px var(--shadow-color-1),0px 0px 0px 1px inset var(--shadow-color-1);--tw-shadow-colored:0px 1px 4px 0px var(--tw-shadow-color),0px 0px 0px 1px var(--tw-shadow-color),inset 0px 0px 0px 1px var(--tw-shadow-color)}.hover\:shadow-shadow-color-2:hover{--tw-shadow-color:var(--shadow-color-2);--tw-shadow:var(--tw-shadow-colored)}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:\!text-primary:active{color:var(--primary-color)!important}.active\:underline:active{text-decoration-line:underline}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:translate-x-0{--tw-translate-x:0px}.group:hover .group-hover\:translate-x-0,.group:hover .group-hover\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-0{--tw-translate-y:0px}.group:hover .group-hover\:translate-y-1{--tw-translate-y:0.25rem}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:\!text-primary{color:var(--primary-color)!important}.group:hover .group-hover\:text-primary{color:var(--primary-color)}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-gray-500\/30:is(.dark *){border-color:hsla(220,9%,46%,.3)}.dark\:bg-gray-500\/40:is(.dark *){background-color:hsla(220,9%,46%,.4)}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.dark\:brightness-75:is(.dark *){--tw-brightness:brightness(.75);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width:640px){.sm\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.sm\:h-10{height:2.5rem}.sm\:h-72{height:18rem}.sm\:w-10{width:2.5rem}.sm\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-2{gap:.5rem}.sm\:rounded-t-large{border-top-left-radius:18px;border-top-right-radius:18px}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0;padding-bottom:0}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:shadow-redefine{--tw-shadow:0px 6px 24px 0px var(--shadow-color-2),0px 0px 0px 1px var(--shadow-color-1);--tw-shadow-colored:0px 6px 24px 0px var(--tw-shadow-color),0px 0px 0px 1px var(--tw-shadow-color)}.sm\:hover\:shadow-redefine-hover:hover,.sm\:shadow-redefine{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sm\:hover\:shadow-redefine-hover:hover{--tw-shadow:0px 6px 24px 0px var(--shadow-color-2),0px 0px 0px 1px var(--shadow-color-1),0px 0px 0px 1px inset var(--shadow-color-1);--tw-shadow-colored:0px 6px 24px 0px var(--tw-shadow-color),0px 0px 0px 1px var(--tw-shadow-color),inset 0px 0px 0px 1px var(--tw-shadow-color)}}@media (min-width:768px){.md\:sticky{position:sticky}.md\:top-\[var\(--navbar-height\)\]{top:var(--navbar-height)}.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.md\:block{display:block}.md\:hidden{display:none}.md\:h-44{height:11rem}.md\:h-80{height:20rem}.md\:w-48{width:12rem}.md\:flex-row{flex-direction:row}.md\:gap-12{gap:3rem}.md\:whitespace-normal{white-space:normal}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pb-0{padding-bottom:0}.md\:pl-8{padding-left:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:absolute{position:absolute}.lg\:left-\[20px\]{left:20px}.lg\:right-\[20px\]{right:20px}.lg\:top-1\/2{top:50%}.lg\:\!block{display:block!important}.lg\:block{display:block}.lg\:-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:text-left{text-align:left}.lg\:text-right{text-align:right}} \ No newline at end of file diff --git a/source/build/js/layouts/bookmarkNav.js b/source/build/js/layouts/bookmarkNav.js new file mode 100644 index 00000000..23fc8765 --- /dev/null +++ b/source/build/js/layouts/bookmarkNav.js @@ -0,0 +1,2 @@ +export default function initBookmarkNav(){const t=document.querySelectorAll(".bookmark-nav-item"),e=document.querySelectorAll("section[id]");function setActiveNavItem(){const o=window.scrollY+100;let n=null;e.forEach((t=>{const e=t.offsetTop,c=t.offsetHeight;o>=e&&o{t.classList.remove("bg-second-background-color"),n&&t.getAttribute("data-category")===n.getAttribute("id")&&t.classList.add("bg-second-background-color")}))}t.length&&e.length&&(window.addEventListener("scroll",function throttle(t,e){let o;return function(){const n=arguments,c=this;o||(t.apply(c,n),o=!0,setTimeout((()=>o=!1),e))}}(setActiveNavItem,100)),setActiveNavItem())}try{swup.hooks.on("page:view",initBookmarkNav)}catch(t){}document.addEventListener("DOMContentLoaded",initBookmarkNav); +//# sourceMappingURL=bookmarkNav.js.map \ No newline at end of file diff --git a/source/build/js/layouts/bookmarkNav.js.map b/source/build/js/layouts/bookmarkNav.js.map new file mode 100644 index 00000000..8c92efb8 --- /dev/null +++ b/source/build/js/layouts/bookmarkNav.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bookmarkNav.js","names":["initBookmarkNav","navItems","document","querySelectorAll","sections","setActiveNavItem","fromTop","window","scrollY","currentSection","forEach","section","sectionTop","offsetTop","sectionHeight","offsetHeight","item","classList","remove","getAttribute","add","length","addEventListener","throttle","func","limit","inThrottle","args","arguments","context","this","apply","setTimeout","swup","hooks","on","e"],"sources":["0"],"mappings":"eAAe,SAASA,kBACtB,MAAMC,EAAWC,SAASC,iBAAiB,sBACrCC,EAAWF,SAASC,iBAAiB,eAkB3C,SAASE,mBACP,MAAMC,EAAUC,OAAOC,QAAU,IACjC,IAAIC,EAAiB,KAErBL,EAASM,SAAQC,IACf,MAAMC,EAAaD,EAAQE,UACrBC,EAAgBH,EAAQI,aAE1BT,GAAWM,GAAcN,EAAUM,EAAaE,IAClDL,EAAiBE,EACnB,IAGFV,EAASS,SAAQM,IACfA,EAAKC,UAAUC,OAAO,8BAClBT,GAAkBO,EAAKG,aAAa,mBAAqBV,EAAeU,aAAa,OACvFH,EAAKC,UAAUG,IAAI,6BACrB,GAEJ,CAnCKnB,EAASoB,QAAWjB,EAASiB,SAkDlCd,OAAOe,iBAAiB,SA/CxB,SAASC,SAASC,EAAMC,GACtB,IAAIC,EACJ,OAAO,WACL,MAAMC,EAAOC,UACPC,EAAUC,KACXJ,IACHF,EAAKO,MAAMF,EAASF,GACpBD,GAAa,EACbM,YAAW,IAAMN,GAAa,GAAOD,GAEzC,CACF,CAoCkCF,CAASlB,iBAAkB,MAG7DA,mBACF,CAEA,IACE4B,KAAKC,MAAMC,GAAG,YAAanC,gBAC7B,CAAE,MAAOoC,GAAI,CAEblC,SAASoB,iBAAiB,mBAAoBtB","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/layouts/categoryList.js b/source/build/js/layouts/categoryList.js new file mode 100644 index 00000000..690a73bf --- /dev/null +++ b/source/build/js/layouts/categoryList.js @@ -0,0 +1,2 @@ +const toggleStyle=(e,t,o,l)=>{e.style[t]=e.style[t]===o?l:o},setupCategoryList=()=>{const e=Array.from(document.querySelectorAll(".all-category-list-item")).filter((e=>e.parentElement.classList.contains("all-category-list")));e.forEach((t=>{const o=t.querySelectorAll(".all-category-list-child");o.forEach((e=>{e.style.maxHeight="0px",e.style.marginTop="0px"})),t.addEventListener("click",(()=>{const l=t.offsetTop;o.forEach((e=>{toggleStyle(e,"maxHeight","0px","1000px"),toggleStyle(e,"marginTop","0px","15px")})),e.forEach((e=>{if(e.offsetTop===l&&e!==t){e.querySelectorAll(".all-category-list-child").forEach((e=>{toggleStyle(e,"maxHeight","0px","1000px"),toggleStyle(e,"marginTop","0px","15px")}))}}))}))}))};try{swup.hooks.on("page:view",setupCategoryList)}catch(e){console.error(e)}document.addEventListener("DOMContentLoaded",setupCategoryList); +//# sourceMappingURL=categoryList.js.map \ No newline at end of file diff --git a/source/build/js/layouts/categoryList.js.map b/source/build/js/layouts/categoryList.js.map new file mode 100644 index 00000000..3d2533dd --- /dev/null +++ b/source/build/js/layouts/categoryList.js.map @@ -0,0 +1 @@ +{"version":3,"file":"categoryList.js","names":["toggleStyle","element","style","firstValue","secondValue","setupCategoryList","parentElements","Array","from","document","querySelectorAll","filter","item","parentElement","classList","contains","forEach","childElements","childElement","maxHeight","marginTop","addEventListener","clickedElementTopOffset","offsetTop","siblingElement","siblingChildElement","swup","hooks","on","e","console","error"],"sources":["0"],"mappings":"AAAA,MAAMA,YAAc,CAACC,EAASC,EAAOC,EAAYC,KAC/CH,EAAQC,MAAMA,GACZD,EAAQC,MAAMA,KAAWC,EAAaC,EAAcD,CAAU,EAG5DE,kBAAoB,KACxB,MAAMC,EAAiBC,MAAMC,KAC3BC,SAASC,iBAAiB,4BAC1BC,QAAQC,GACRA,EAAKC,cAAcC,UAAUC,SAAS,uBAGxCT,EAAeU,SAASH,IACtB,MAAMI,EAAgBJ,EAAcH,iBAClC,4BAEFO,EAAcD,SAASE,IACrBA,EAAahB,MAAMiB,UAAY,MAC/BD,EAAahB,MAAMkB,UAAY,KAAK,IAGtCP,EAAcQ,iBAAiB,SAAS,KACtC,MAAMC,EAA0BT,EAAcU,UAC9CN,EAAcD,SAASE,IACrBlB,YAAYkB,EAAc,YAAa,MAAO,UAC9ClB,YAAYkB,EAAc,YAAa,MAAO,OAAO,IAGvDZ,EAAeU,SAASQ,IACtB,GACEA,EAAeD,YAAcD,GAC7BE,IAAmBX,EACnB,CAC6BW,EAAed,iBAC1C,4BAEmBM,SAASS,IAC5BzB,YAAYyB,EAAqB,YAAa,MAAO,UACrDzB,YAAYyB,EAAqB,YAAa,MAAO,OAAO,GAEhE,IACA,GACF,GACF,EAGJ,IACEC,KAAKC,MAAMC,GAAG,YAAavB,kBAC7B,CAAE,MAAOwB,GACPC,QAAQC,MAAMF,EAChB,CAEApB,SAASY,iBAAiB,mBAAoBhB","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/layouts/essays.js b/source/build/js/layouts/essays.js new file mode 100644 index 00000000..e0ffa142 --- /dev/null +++ b/source/build/js/layouts/essays.js @@ -0,0 +1,2 @@ +function formatEssayDates(){const t=document.querySelectorAll(".essay-date");t&&t.forEach((function(t){const e=t.getAttribute("data-date"),a=config.language||"en",o=moment(e).locale(a).calendar();t.textContent=o}))}try{swup.hooks.on("page:view",formatEssayDates)}catch(t){console.error(t)}document.addEventListener("DOMContentLoaded",formatEssayDates); +//# sourceMappingURL=essays.js.map \ No newline at end of file diff --git a/source/build/js/layouts/essays.js.map b/source/build/js/layouts/essays.js.map new file mode 100644 index 00000000..ba38b3c6 --- /dev/null +++ b/source/build/js/layouts/essays.js.map @@ -0,0 +1 @@ +{"version":3,"file":"essays.js","names":["formatEssayDates","dateElements","document","querySelectorAll","forEach","element","rawDate","getAttribute","locale","config","language","formattedDate","moment","calendar","textContent","swup","hooks","on","e","console","error","addEventListener"],"sources":["0"],"mappings":"AACA,SAASA,mBACP,MAAMC,EAAeC,SAASC,iBAAiB,eAE1CF,GAILA,EAAaG,SAAQ,SAAUC,GAC7B,MAAMC,EAAUD,EAAQE,aAAa,aAC/BC,EAASC,OAAOC,UAAY,KAE5BC,EAAgBC,OAAON,GAASE,OAAOA,GAAQK,WACrDR,EAAQS,YAAcH,CACxB,GACF,CAEA,IACEI,KAAKC,MAAMC,GAAG,YAAajB,iBAC7B,CAAE,MAAOkB,GACPC,QAAQC,MAAMF,EAChB,CAGAhB,SAASmB,iBAAiB,mBAAoBrB","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/layouts/lazyload.js b/source/build/js/layouts/lazyload.js new file mode 100644 index 00000000..b4496370 --- /dev/null +++ b/source/build/js/layouts/lazyload.js @@ -0,0 +1,2 @@ +export default function initLazyLoad(){const t=document.querySelectorAll("img"),e=new IntersectionObserver(((t,e)=>{t.forEach((t=>{if(t.isIntersecting){const r=t.target;r.src=r.getAttribute("data-src"),r.removeAttribute("lazyload"),e.unobserve(r)}}))}),{rootMargin:"0px",threshold:.1});t.forEach((t=>{t.hasAttribute("lazyload")&&e.observe(t)}))} +//# sourceMappingURL=lazyload.js.map \ No newline at end of file diff --git a/source/build/js/layouts/lazyload.js.map b/source/build/js/layouts/lazyload.js.map new file mode 100644 index 00000000..622e21bc --- /dev/null +++ b/source/build/js/layouts/lazyload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lazyload.js","names":["initLazyLoad","imgs","document","querySelectorAll","observer","IntersectionObserver","entries","forEach","entry","isIntersecting","img","target","src","getAttribute","removeAttribute","unobserve","rootMargin","threshold","hasAttribute","observe"],"sources":["0"],"mappings":"eAAe,SAASA,eACtB,MAAMC,EAAOC,SAASC,iBAAiB,OAKjCC,EAAW,IAAIC,sBAAqB,CAACC,EAASF,KAClDE,EAAQC,SAASC,IACf,GAAIA,EAAMC,eAAgB,CACxB,MAAMC,EAAMF,EAAMG,OAClBD,EAAIE,IAAMF,EAAIG,aAAa,YAC3BH,EAAII,gBAAgB,YACpBV,EAASW,UAAUL,EACrB,IACA,GAZY,CACdM,WAAY,MACZC,UAAW,KAYbhB,EAAKM,SAASG,IACRA,EAAIQ,aAAa,aACnBd,EAASe,QAAQT,EACnB,GAEJ","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/layouts/navbarShrink.js b/source/build/js/layouts/navbarShrink.js new file mode 100644 index 00000000..120d053a --- /dev/null +++ b/source/build/js/layouts/navbarShrink.js @@ -0,0 +1,2 @@ +import{navigationState as e}from"../utils.js";export const navbarShrink={navbarDom:document.querySelector(".navbar-container"),leftAsideDom:document.querySelector(".page-aside"),isnavbarShrink:!1,navbarHeight:0,init(){this.navbarHeight=this.navbarDom.getBoundingClientRect().height,this.shrink(),this.togglenavbarDrawerShow(),this.toggleSubmenu(),window.addEventListener("scroll",(()=>{this.shrink()}))},shrink(){const e=document.documentElement.scrollTop||document.body.scrollTop;!this.isnavbarShrink&&e>this.navbarHeight?(this.isnavbarShrink=!0,document.body.classList.add("navbar-shrink")):this.isnavbarShrink&&e<=this.navbarHeight&&(this.isnavbarShrink=!1,document.body.classList.remove("navbar-shrink"))},togglenavbarDrawerShow(){const e=[document.querySelector(".window-mask"),document.querySelector(".navbar-bar")];document.querySelector(".navbar-drawer")&&e.push(...document.querySelectorAll(".navbar-drawer .drawer-navbar-list .drawer-navbar-item"),...document.querySelectorAll(".navbar-drawer .tag-count-item")),e.forEach((e=>{e.dataset.navbarInitialized||(e.dataset.navbarInitialized=1,e.addEventListener("click",(()=>{document.body.classList.toggle("navbar-drawer-show")})))}));const t=document.querySelector(".navbar-container .navbar-content .logo-title");t&&!t.dataset.navbarInitialized&&(t.dataset.navbarInitialized=1,t.addEventListener("click",(()=>{document.body.classList.remove("navbar-drawer-show")})))},toggleSubmenu(){document.querySelectorAll("[navbar-data-toggle]").forEach((e=>{e.dataset.eventListenerAdded||(e.dataset.eventListenerAdded="true",e.addEventListener("click",(function(){const e=document.querySelector('[data-target="'+this.getAttribute("navbar-data-toggle")+'"]'),t=e.children,a=this.querySelector(".fa-chevron-right");if(e){const n=!e.classList.contains("hidden");a&&a.classList.toggle("icon-rotated",!n),n?anime({targets:t,opacity:0,translateY:-10,duration:300,easing:"easeInQuart",delay:anime.stagger(80,{start:20,direction:"reverse"}),complete:function(){e.classList.add("hidden")}}):(e.classList.remove("hidden"),anime({targets:t,opacity:[0,1],translateY:[10,0],duration:300,easing:"easeOutQuart",delay:anime.stagger(80,{start:20})}))}})))}))}};try{swup.hooks.on("page:view",(()=>{navbarShrink.init(),e.isNavigating=!1})),swup.hooks.on("visit:start",(()=>{e.isNavigating=!0,document.body.classList.remove("navbar-shrink")}))}catch(e){}document.addEventListener("DOMContentLoaded",(()=>{navbarShrink.init()})); +//# sourceMappingURL=navbarShrink.js.map \ No newline at end of file diff --git a/source/build/js/layouts/navbarShrink.js.map b/source/build/js/layouts/navbarShrink.js.map new file mode 100644 index 00000000..a6fff662 --- /dev/null +++ b/source/build/js/layouts/navbarShrink.js.map @@ -0,0 +1 @@ +{"version":3,"file":"navbarShrink.js","names":["navigationState","navbarShrink","navbarDom","document","querySelector","leftAsideDom","isnavbarShrink","navbarHeight","init","this","getBoundingClientRect","height","shrink","togglenavbarDrawerShow","toggleSubmenu","window","addEventListener","scrollTop","documentElement","body","classList","add","remove","domList","push","querySelectorAll","forEach","v","dataset","navbarInitialized","toggle","logoTitleDom","eventListenerAdded","target","getAttribute","submenuItems","children","icon","isVisible","contains","anime","targets","opacity","translateY","duration","easing","delay","stagger","start","direction","complete","swup","hooks","on","isNavigating","error"],"sources":["0"],"mappings":"0BAASA,MAAuB,qBAEzB,MAAMC,aAAe,CAC1BC,UAAWC,SAASC,cAAc,qBAClCC,aAAcF,SAASC,cAAc,eACrCE,gBAAgB,EAChBC,aAAc,EAEd,IAAAC,GACEC,KAAKF,aAAeE,KAAKP,UAAUQ,wBAAwBC,OAC3DF,KAAKG,SACLH,KAAKI,yBACLJ,KAAKK,gBACLC,OAAOC,iBAAiB,UAAU,KAChCP,KAAKG,QAAQ,GAEjB,EAEA,MAAAA,GACE,MAAMK,EACJd,SAASe,gBAAgBD,WAAad,SAASgB,KAAKF,WAEjDR,KAAKH,gBAAkBW,EAAYR,KAAKF,cAC3CE,KAAKH,gBAAiB,EACtBH,SAASgB,KAAKC,UAAUC,IAAI,kBACnBZ,KAAKH,gBAAkBW,GAAaR,KAAKF,eAClDE,KAAKH,gBAAiB,EACtBH,SAASgB,KAAKC,UAAUE,OAAO,iBAEnC,EAEA,sBAAAT,GACE,MAAMU,EAAU,CACdpB,SAASC,cAAc,gBACvBD,SAASC,cAAc,gBAGrBD,SAASC,cAAc,mBACzBmB,EAAQC,QACHrB,SAASsB,iBACV,6DAECtB,SAASsB,iBAAiB,mCAIjCF,EAAQG,SAASC,IACVA,EAAEC,QAAQC,oBACbF,EAAEC,QAAQC,kBAAoB,EAC9BF,EAAEX,iBAAiB,SAAS,KAC1Bb,SAASgB,KAAKC,UAAUU,OAAO,qBAAqB,IAExD,IAGF,MAAMC,EAAe5B,SAASC,cAC5B,iDAEE2B,IAAiBA,EAAaH,QAAQC,oBACxCE,EAAaH,QAAQC,kBAAoB,EACzCE,EAAaf,iBAAiB,SAAS,KACrCb,SAASgB,KAAKC,UAAUE,OAAO,qBAAqB,IAG1D,EAEA,aAAAR,GACyBX,SAASsB,iBAAiB,wBAElCC,SAASI,IACjBA,EAAOF,QAAQI,qBAClBF,EAAOF,QAAQI,mBAAqB,OACpCF,EAAOd,iBAAiB,SAAS,WAE/B,MAAMiB,EAAS9B,SAASC,cACtB,iBAAmBK,KAAKyB,aAAa,sBAAwB,MAEzDC,EAAeF,EAAOG,SACtBC,EAAO5B,KAAKL,cAAc,qBAEhC,GAAI6B,EAAQ,CACV,MAAMK,GAAaL,EAAOb,UAAUmB,SAAS,UAEzCF,GACFA,EAAKjB,UAAUU,OAAO,gBAAiBQ,GAGrCA,EAEFE,MAAM,CACJC,QAASN,EACTO,QAAS,EACTC,YAAa,GACbC,SAAU,IACVC,OAAQ,cACRC,MAAON,MAAMO,QAAQ,GAAI,CAAEC,MAAO,GAAIC,UAAW,YACjDC,SAAU,WACRjB,EAAOb,UAAUC,IAAI,SACvB,KAIFY,EAAOb,UAAUE,OAAO,UAExBkB,MAAM,CACJC,QAASN,EACTO,QAAS,CAAC,EAAG,GACbC,WAAY,CAAC,GAAI,GACjBC,SAAU,IACVC,OAAQ,eACRC,MAAON,MAAMO,QAAQ,GAAI,CAAEC,MAAO,OAGxC,CACF,IACF,GAEJ,GAGF,IACEG,KAAKC,MAAMC,GAAG,aAAa,KACzBpD,aAAaO,OACbR,EAAgBsD,cAAe,CAAK,IAGtCH,KAAKC,MAAMC,GAAG,eAAe,KAC3BrD,EAAgBsD,cAAe,EAC/BnD,SAASgB,KAAKC,UAAUE,OAAO,gBAAgB,GAEnD,CAAE,MAAOiC,GAAQ,CAEjBpD,SAASa,iBAAiB,oBAAoB,KAC5Cf,aAAaO,MAAM","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/layouts/toc.js b/source/build/js/layouts/toc.js new file mode 100644 index 00000000..f6b83e91 --- /dev/null +++ b/source/build/js/layouts/toc.js @@ -0,0 +1,2 @@ +import{initTocToggle as e}from"../tools/tocToggle.js";import{main as t}from"../main.js";export function initTOC(){const o={navItems:document.querySelectorAll(".post-toc-wrap .post-toc li"),updateActiveTOCLink(){if(!Array.isArray(o.sections))return;let e=o.sections.findIndex((e=>e&&e.getBoundingClientRect().top-100>0));-1===e?e=o.sections.length-1:e>0&&e--,this.activateTOCLink(e)},registerTOCScroll(){o.sections=[...document.querySelectorAll(".post-toc li a.nav-link")].map((e=>document.getElementById(decodeURI(e.getAttribute("href")).replace("#",""))))},activateTOCLink(e){const t=document.querySelectorAll(".post-toc li a.nav-link")[e];if(!t||t.classList.contains("active-current"))return;document.querySelectorAll(".post-toc .active").forEach((e=>{e.classList.remove("active","active-current")})),t.classList.add("active","active-current");const o=document.querySelector(".toc-content-container"),n=o.getBoundingClientRect().top,i=o.offsetHeight>window.innerHeight?(o.offsetHeight-window.innerHeight)/2:0,c=t.getBoundingClientRect().top-n-Math.max(document.documentElement.clientHeight,window.innerHeight||0)/2+t.offsetHeight/2-i,r=o.scrollTop+c;o.scrollTo({top:r,behavior:"smooth"})},showTOCAside(){const openHandle=()=>{const o=t.getStyleStatus(),n="isOpenPageAside";o&&o.hasOwnProperty(n)?e().pageAsideHandleOfTOC(o[n]):e().pageAsideHandleOfTOC(!0)},o="init_open";theme.articles.toc.hasOwnProperty(o)?theme.articles.toc[o]?openHandle():e().pageAsideHandleOfTOC(!1):openHandle()}};return o.navItems.length>0?(o.showTOCAside(),o.registerTOCScroll()):document.querySelectorAll(".toc-content-container, .toc-marker").forEach((e=>{e.remove()})),o}try{swup.hooks.on("page:view",(()=>{initTOC()}))}catch(o){}document.addEventListener("DOMContentLoaded",initTOC); +//# sourceMappingURL=toc.js.map \ No newline at end of file diff --git a/source/build/js/layouts/toc.js.map b/source/build/js/layouts/toc.js.map new file mode 100644 index 00000000..33f2578e --- /dev/null +++ b/source/build/js/layouts/toc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toc.js","names":["initTocToggle","main","initTOC","utils","navItems","document","querySelectorAll","updateActiveTOCLink","Array","isArray","sections","index","findIndex","element","getBoundingClientRect","top","length","this","activateTOCLink","registerTOCScroll","map","getElementById","decodeURI","getAttribute","replace","target","classList","contains","forEach","remove","add","tocElement","querySelector","tocTop","scrollTopOffset","offsetHeight","window","innerHeight","distanceToCenter","Math","max","documentElement","clientHeight","scrollTop","scrollTo","behavior","showTOCAside","openHandle","styleStatus","getStyleStatus","key","hasOwnProperty","pageAsideHandleOfTOC","initOpenKey","theme","articles","toc","elem","swup","hooks","on","e","addEventListener"],"sources":["0"],"mappings":"wBAESA,MAAqB,uCACrBC,MAAY,oBACd,SAASC,UACd,MAAMC,EAAQ,CACZC,SAAUC,SAASC,iBAAiB,+BAEpC,mBAAAC,GACE,IAAKC,MAAMC,QAAQN,EAAMO,UAAW,OACpC,IAAIC,EAAQR,EAAMO,SAASE,WAAWC,GAC7BA,GAAWA,EAAQC,wBAAwBC,IAAM,IAAM,KAEjD,IAAXJ,EACFA,EAAQR,EAAMO,SAASM,OAAS,EACvBL,EAAQ,GACjBA,IAEFM,KAAKC,gBAAgBP,EACvB,EAEA,iBAAAQ,GACEhB,EAAMO,SAAW,IACZL,SAASC,iBAAiB,4BAC7Bc,KAAKP,GACUR,SAASgB,eACtBC,UAAUT,EAAQU,aAAa,SAASC,QAAQ,IAAK,MAI3D,EAEA,eAAAN,CAAgBP,GACd,MAAMc,EAASpB,SAASC,iBAAiB,2BACvCK,GAGF,IAAKc,GAAUA,EAAOC,UAAUC,SAAS,kBACvC,OAGFtB,SAASC,iBAAiB,qBAAqBsB,SAASf,IACtDA,EAAQa,UAAUG,OAAO,SAAU,iBAAiB,IAEtDJ,EAAOC,UAAUI,IAAI,SAAU,kBAE/B,MAAMC,EAAa1B,SAAS2B,cAAc,0BACpCC,EAASF,EAAWjB,wBAAwBC,IAC5CmB,EACJH,EAAWI,aAAeC,OAAOC,aAC5BN,EAAWI,aAAeC,OAAOC,aAAe,EACjD,EAMAC,EALYb,EAAOX,wBAAwBC,IAAMkB,EAChCM,KAAKC,IAC1BnC,SAASoC,gBAAgBC,aACzBN,OAAOC,aAAe,GAIL,EACjBZ,EAAOU,aAAe,EACtBD,EACIS,EAAYZ,EAAWY,UAAYL,EAEzCP,EAAWa,SAAS,CAClB7B,IAAK4B,EACLE,SAAU,UAEd,EAEA,YAAAC,GACE,MAAMC,WAAa,KACjB,MAAMC,EAAc/C,EAAKgD,iBACnBC,EAAM,kBACRF,GAAeA,EAAYG,eAAeD,GAC5ClD,IAAgBoD,qBAAqBJ,EAAYE,IAEjDlD,IAAgBoD,sBAAqB,EACvC,EAGIC,EAAc,YAEhBC,MAAMC,SAASC,IAAIL,eAAeE,GACpCC,MAAMC,SAASC,IAAIH,GACfN,aACA/C,IAAgBoD,sBAAqB,GAEzCL,YAEJ,GAcF,OAXI5C,EAAMC,SAASY,OAAS,GAC1Bb,EAAM2C,eACN3C,EAAMgB,qBAENd,SACGC,iBAAiB,uCACjBsB,SAAS6B,IACRA,EAAK5B,QAAQ,IAIZ1B,CACT,CAGA,IACEuD,KAAKC,MAAMC,GAAG,aAAa,KACzB1D,SAAS,GAEb,CAAE,MAAO2D,GAAI,CAEbxD,SAASyD,iBAAiB,mBAAoB5D","ignoreList":[]} \ No newline at end of file diff --git a/source/build/js/libs/APlayer.min.js b/source/build/js/libs/APlayer.min.js new file mode 100755 index 00000000..6ba17e35 --- /dev/null +++ b/source/build/js/libs/APlayer.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("APlayer",[],t):"object"==typeof exports?exports.APlayer=t():e.APlayer=t()}(window,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=41)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=/mobile/i.test(window.navigator.userAgent),a={secondToTime:function(e){var t=Math.floor(e/3600),n=Math.floor((e-3600*t)/60),i=Math.floor(e-3600*t-60*n);return(t>0?[t,n,i]:[n,i]).map(function(e){return e<10?"0"+e:""+e}).join(":")},getElementViewLeft:function(e){var t=e.offsetLeft,n=e.offsetParent,i=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==e;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return t-i},getElementViewTop:function(e,t){for(var n,i=e.offsetTop,a=e.offsetParent;null!==a;)i+=a.offsetTop,a=a.offsetParent;return n=document.body.scrollTop+document.documentElement.scrollTop,t?i:i-n},isMobile:i,storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},nameMap:{dragStart:i?"touchstart":"mousedown",dragMove:i?"touchmove":"mousemove",dragEnd:i?"touchend":"mouseup"},randomOrder:function(e){return function(e){for(var t=e.length-1;t>=0;t--){var n=Math.floor(Math.random()*(t+1)),i=e[n];e[n]=e[t],e[t]=i}return e}([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t
\n ',t+=r(n+s),t+='\n ',t+=r(e.name),t+='\n ',t+=r(e.artist),t+="\n\n"}),t}},function(e,t,n){"use strict";e.exports=n(15)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=g(n(33)),a=g(n(32)),r=g(n(31)),o=g(n(30)),s=g(n(29)),l=g(n(28)),u=g(n(27)),c=g(n(26)),p=g(n(25)),d=g(n(24)),h=g(n(23)),y=g(n(22)),f=g(n(21)),v=g(n(20)),m=g(n(19));function g(e){return e&&e.__esModule?e:{default:e}}var w={play:i.default,pause:a.default,volumeUp:r.default,volumeDown:o.default,volumeOff:s.default,orderRandom:l.default,orderList:u.default,menu:c.default,loopAll:p.default,loopOne:d.default,loopNone:h.default,loading:y.default,right:f.default,skip:v.default,lrc:m.default};t.default=w},function(e,t,n){"use strict";var i,a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":a(window))&&(i=window)}e.exports=i},function(e,t,n){"use strict";var i,a,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};void 0===(a="function"==typeof(i=function(){if("object"===("undefined"==typeof window?"undefined":r(window))&&void 0!==document.querySelectorAll&&void 0!==window.pageYOffset&&void 0!==history.pushState){var e=function(e,t,n,i){return n>i?t:e+(t-e)*((a=n/i)<.5?4*a*a*a:(a-1)*(2*a-2)*(2*a-2)+1);var a},t=function(t,n,i,a){n=n||500;var r=(a=a||window).scrollTop||window.pageYOffset;if("number"==typeof t)var o=parseInt(t);else var o=function(e,t){return"HTML"===e.nodeName?-t:e.getBoundingClientRect().top+t}(t,r);var s=Date.now(),l=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){window.setTimeout(e,15)};!function u(){var c=Date.now()-s;a!==window?a.scrollTop=e(r,o,c,n):window.scroll(0,e(r,o,c,n)),c>n?"function"==typeof i&&i(t):l(u)}()},n=function(e){if(!e.defaultPrevented){e.preventDefault(),location.hash!==this.hash&&window.history.pushState(null,null,this.hash);var n=document.getElementById(this.hash.substring(1));if(!n)return;t(n,500,function(e){location.replace("#"+e.id)})}};return document.addEventListener("DOMContentLoaded",function(){for(var e,t=document.querySelectorAll('a[href^="#"]:not([href="#"])'),i=t.length;e=t[--i];)e.addEventListener("click",n,!1)}),t}})?i.call(t,n,t,e):i)||(e.exports=a)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n1),n=0===this.audios.length;this.player.template.listOl.innerHTML+=(0,a.default)({theme:this.player.options.theme,audio:e,index:this.audios.length+1}),this.audios=this.audios.concat(e),t&&this.audios.length>1&&this.player.container.classList.add("aplayer-withlist"),this.player.randomOrder=r.default.randomOrder(this.audios.length),this.player.template.listCurs=this.player.container.querySelectorAll(".aplayer-list-cur"),this.player.template.listCurs[this.audios.length-1].style.backgroundColor=e.theme||this.player.options.theme,n&&("random"===this.player.options.order?this.switch(this.player.randomOrder[0]):this.switch(0))}},{key:"remove",value:function(e){if(this.player.events.trigger("listremove",{index:e}),this.audios[e])if(this.audios.length>1){var t=this.player.container.querySelectorAll(".aplayer-list li");t[e].remove(),this.audios.splice(e,1),this.player.lrc&&this.player.lrc.remove(e),e===this.index&&(this.audios[e]?this.switch(e):this.switch(e-1)),this.index>e&&this.index--;for(var n=e;nt&&!e.player.audio.paused&&(e.player.container.classList.remove("aplayer-loading"),i=!1),t=n)},100)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.forEach(function(t){e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"])})}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n1?"one"===e.player.options.loop?(e.player.options.loop="none",e.player.template.loop.innerHTML=r.default.loopNone):"none"===e.player.options.loop?(e.player.options.loop="all",e.player.template.loop.innerHTML=r.default.loopAll):"all"===e.player.options.loop&&(e.player.options.loop="one",e.player.template.loop.innerHTML=r.default.loopOne):"one"===e.player.options.loop||"all"===e.player.options.loop?(e.player.options.loop="none",e.player.template.loop.innerHTML=r.default.loopNone):"none"===e.player.options.loop&&(e.player.options.loop="all",e.player.template.loop.innerHTML=r.default.loopAll)})}},{key:"initMenuButton",value:function(){var e=this;this.player.template.menu.addEventListener("click",function(){e.player.list.toggle()})}},{key:"initMiniSwitcher",value:function(){var e=this;this.player.template.miniSwitcher.addEventListener("click",function(){e.player.setMode("mini"===e.player.mode?"normal":"mini")})}},{key:"initSkipButton",value:function(){var e=this;this.player.template.skipBackButton.addEventListener("click",function(){e.player.skipBack()}),this.player.template.skipForwardButton.addEventListener("click",function(){e.player.skipForward()}),this.player.template.skipPlayButton.addEventListener("click",function(){e.player.toggle()})}},{key:"initLrcButton",value:function(){var e=this;this.player.template.lrcButton.addEventListener("click",function(){e.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity")?(e.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"),e.player.lrc&&e.player.lrc.show()):(e.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"),e.player.lrc&&e.player.lrc.hide())})}}]),e}();t.default=s},function(e,t,n){var i=n(2);e.exports=function(e){"use strict";e=e||{};var t="",n=i.$each,a=e.lyrics,r=(e.$value,e.$index,i.$escape);return n(a,function(e,n){t+="\n \n"}),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||e=this.current[this.index+1][0])for(var t=0;t=this.current[t][0]&&(!this.current[t+1]||e=200&&n.status<300||304===n.status?t.parsed[e]=t.parse(n.responseText):(t.player.notice("LRC file request fails: status "+n.status),t.parsed[e]=[["00:00","Not available"]]),t.container.innerHTML=(0,o.default)({lyrics:t.parsed[e]}),t.update(0),t.current=t.parsed[e])};var i=this.player.list.audios[e].lrc;n.open("get",i,!0),n.send(null)}else this.player.list.audios[e].lrc?this.parsed[e]=this.parse(this.player.list.audios[e].lrc):this.parsed[e]=[["00:00","Not available"]];this.container.innerHTML=(0,o.default)({lyrics:this.parsed[e]}),this.update(0),this.current=this.parsed[e]}},{key:"parse",value:function(e){if(e){for(var t=(e=e.replace(/([^\]^\n])\[/g,function(e,t){return t+"\n["})).split("\n"),n=[],i=t.length,a=0;a/g,"").replace(/^\s+|\s+$/g,"");if(r)for(var s=r.length,l=0;l]/;a.$escape=function(e){return function(e){var t=""+e,n=r.exec(t);if(!n)return e;var i="",a=void 0,o=void 0,s=void 0;for(a=n.index,o=0;a\n \n
',t+=s.play,t+='
\n \n \n
\n
\n\n
\n
\n
\n'):(t+='\n
\n
\n
',t+=s.play,t+='
\n
\n
\n
\n No audio\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n ',t+=s.loading,t+='\n \n
\n
\n
\n
\n \n 00:00 / 00:00\n \n \n ',t+=s.skip,t+='\n \n \n ',t+=s.play,t+='\n \n \n ',t+=s.skip,t+='\n \n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n '},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,n){"use strict";var i,a,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(i===setTimeout)return setTimeout(e,0);if((i===o||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:o}catch(e){i=o}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var u,c=[],p=!1,d=-1;function h(){p&&u&&(p=!1,u.length?c=u.concat(c):d=-1,c.length&&y())}function y(){if(!p){var e=l(h);p=!0;for(var t=c.length;t;){for(u=c,c=[];++d1)for(var n=1;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(35),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){"use strict";(function(t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=setTimeout;function a(){}function r(e){if(!(this instanceof r))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void l(t.promise,e)}s(t.promise,i)}else(1===e._state?s:l)(t.promise,e._value)})):e._deferreds.push(t)}function s(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":n(t))||"function"==typeof t)){var i=t.then;if(t instanceof r)return e._state=3,e._value=t,void u(e);if("function"==typeof i)return void c((a=i,o=t,function(){a.apply(o,arguments)}),e)}e._state=1,e._value=t,u(e)}catch(t){l(e,t)}var a,o}function l(e,t){e._state=2,e._value=t,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t1&&this.container.classList.add("aplayer-withlist"),r.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.container=this.options.container,2===this.options.lrcType||!0===this.options.lrcType)for(var n=this.container.getElementsByClassName("aplayer-lrc-content"),i=0;i1?(e.notice("An audio error has occurred, player will skip forward in 2 seconds."),t=setTimeout(function(){e.skipForward(),e.paused||e.play()},2e3)):1===e.list.audios.length&&e.notice("An audio error has occurred.")}),this.events.on("listswitch",function(){t&&clearTimeout(t)}),this.on("ended",function(){"none"===e.options.loop?"list"===e.options.order?e.list.index0&&void 0!==arguments[0]?arguments[0]:this.list.audios[this.list.index].theme||this.options.theme,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.list.index;(!(arguments.length>2&&void 0!==arguments[2])||arguments[2])&&this.list.audios[t]&&(this.list.audios[t].theme=e),this.template.listCurs[t]&&(this.template.listCurs[t].style.backgroundColor=e),t===this.list.index&&(this.template.pic.style.backgroundColor=e,this.template.played.style.background=e,this.template.thumb.style.background=e,this.template.volume.style.background=e)}},{key:"seek",value:function(e){e=Math.max(e,0),e=Math.min(e,this.duration),this.audio.currentTime=e,this.bar.set("played",e/this.duration,"width"),this.template.ptime.innerHTML=r.default.secondToTime(e)}},{key:"setUIPlaying",value:function(){var e=this;if(this.paused&&(this.paused=!1,this.template.button.classList.remove("aplayer-play"),this.template.button.classList.add("aplayer-pause"),this.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=o.default.pause},100),this.template.skipPlayButton.innerHTML=o.default.pause),this.timer.enable("loading"),this.options.mutex)for(var t=0;t=.95?this.template.volumeButton.innerHTML=o.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=o.default.volumeDown:this.template.volumeButton.innerHTML=o.default.volumeOff}},{key:"volume",value:function(e,t){return e=parseFloat(e),isNaN(e)||(e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"height"),t||this.storage.set("volume",e),this.audio.volume=e,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"switchAudio",value:function(e){this.list.switch(e)}},{key:"addAudio",value:function(e){this.list.add(e)}},{key:"removeAudio",value:function(e){this.list.remove(e)}},{key:"destroy",value:function(){m.splice(m.indexOf(this),1),this.pause(),this.container.innerHTML="",this.audio.src="",this.timer.destroy(),this.events.trigger("destroy")}},{key:"setMode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"normal";this.mode=e,"mini"===e?this.container.classList.add("aplayer-narrow"):"normal"===e&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("noticeshow",{text:e}),n&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("noticehide")},n))}},{key:"prevIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return this.list.index-1<0?this.list.audios.length-1:this.list.index-1;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return 0===e?this.randomOrder[this.randomOrder.length-1]:this.randomOrder[e-1]}}},{key:"nextIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return(this.list.index+1)%this.list.audios.length;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return e===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[e+1]}}},{key:"skipBack",value:function(){this.list.switch(this.prevIndex())}},{key:"skipForward",value:function(){this.list.switch(this.nextIndex())}},{key:"duration",get:function(){return isNaN(this.audio.duration)?0:this.audio.duration}}],[{key:"version",get:function(){return"1.10.1"}}]),e}();t.default=g},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(40);var i,a=n(38),r=(i=a)&&i.__esModule?i:{default:i};console.log("\n %c APlayer v1.10.1 af84efb %c http://aplayer.js.org \n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),t.default=r.default}]).default}); +//# sourceMappingURL=APlayer.min.js.map \ No newline at end of file diff --git a/source/build/js/libs/Swup.min.js b/source/build/js/libs/Swup.min.js new file mode 100644 index 00000000..8c97ab64 --- /dev/null +++ b/source/build/js/libs/Swup.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t||self).Swup=e()}(this,function(){const t=(t,e)=>String(t).toLowerCase().replace(/[\s/_.]+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+|-+$/g,"")||e||"",e=function(t){let{hash:e}=void 0===t?{}:t;return location.pathname+location.search+(e?location.hash:"")},n=function(t,n){void 0===n&&(n={});const i={url:t=t||e({hash:!0}),random:Math.random(),source:"swup",...n};history.pushState(i,"",t)},i=function(t,n){void 0===t&&(t=null),void 0===n&&(n={}),t=t||e({hash:!0});const i={...history.state||{},url:t,random:Math.random(),source:"swup",...n};history.replaceState(i,"",t)},r=new WeakMap;function o(t,e,n,i){if(!t&&!r.has(e))return!1;const o=r.get(e)??new WeakMap;r.set(e,o);const s=o.get(n)??new Set;o.set(n,s);const a=s.has(i);return t?s.add(i):s.delete(i),a&&t}const s=(t,e,n,i)=>{const r=new AbortController;return function(t,e,n,i={}){const{signal:r,base:s=document}=i;if(r?.aborted)return;const{once:a,...c}=i,l=s instanceof Document?s.documentElement:s,h=Boolean("object"==typeof i?i.capture:i),u=i=>{const r=function(t,e){let n=t.target;if(n instanceof Text&&(n=n.parentElement),n instanceof Element&&t.currentTarget instanceof Element){const i=n.closest(e);if(i&&t.currentTarget.contains(i))return i}}(i,t);if(r){const t=Object.assign(i,{delegateTarget:r});n.call(l,t),a&&(l.removeEventListener(e,u,c),o(!1,l,n,d))}},d=JSON.stringify({selector:t,type:e,capture:h});o(!0,l,n,d)||l.addEventListener(e,u,c),r?.addEventListener("abort",()=>{o(!1,l,n,d)})}(t,e,n,i={...i,signal:r.signal}),{destroy:()=>r.abort()}};class a extends URL{constructor(t,e){void 0===e&&(e=document.baseURI),super(t.toString(),e)}get url(){return this.pathname+this.search}static fromElement(t){const e=t.getAttribute("href")||t.getAttribute("xlink:href")||"";return new a(e)}static fromUrl(t){return new a(t)}}class c{constructor(t){this.swup=void 0,this.pages=new Map,this.swup=t}get size(){return this.pages.size}get all(){const t=new Map;return this.pages.forEach((e,n)=>{t.set(n,{...e})}),t}has(t){return this.pages.has(this.resolve(t))}get(t){const e=this.pages.get(this.resolve(t));return e?{...e}:e}set(t,e){t=this.resolve(t),e={...e,url:t},this.pages.set(t,e),this.swup.hooks.callSync("cache:set",{page:e})}update(t,e){t=this.resolve(t);const n={...this.get(t),...e,url:t};this.pages.set(t,n)}delete(t){this.pages.delete(this.resolve(t))}clear(){this.pages.clear(),this.swup.hooks.callSync("cache:clear",void 0)}prune(t){this.pages.forEach((e,n)=>{t(n,e)&&this.delete(n)})}resolve(t){const{url:e}=a.fromUrl(t);return this.swup.resolveUrl(e)}}const l=function(t,e){return void 0===e&&(e=document),e.querySelector(t)},h=function(t,e){return void 0===e&&(e=document),Array.from(e.querySelectorAll(t))},u=()=>new Promise(t=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{t()})})});function d(t){return!!t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof t.then}const m=t=>window.CSS&&window.CSS.escape?CSS.escape(t):t,f=t=>1e3*Number(t.slice(0,-1).replace(",","."));class p{constructor(t){this.swup=void 0,this.swupClasses=["to-","is-changing","is-rendering","is-popstate","is-animating"],this.swup=t}get selectors(){const{scope:t}=this.swup.visit.animation;return"containers"===t?this.swup.visit.containers:"html"===t?["html"]:Array.isArray(t)?t:[]}get selector(){return this.selectors.join(",")}get targets(){return this.selector.trim()?h(this.selector):[]}add(){this.targets.forEach(t=>t.classList.add(...[].slice.call(arguments)))}remove(){this.targets.forEach(t=>t.classList.remove(...[].slice.call(arguments)))}clear(){this.targets.forEach(t=>{const e=t.className.split(" ").filter(t=>this.isSwupClass(t));t.classList.remove(...e)})}isSwupClass(t){return this.swupClasses.some(e=>t.startsWith(e))}}function v(t){let{to:e,from:n=this.currentPageUrl,hash:i,el:r,event:o}=t;return{from:{url:n},to:{url:e,hash:i},containers:this.options.containers,animation:{animate:!0,wait:!1,name:void 0,scope:this.options.animationScope,selector:this.options.animationSelector},trigger:{el:r,event:o},cache:{read:this.options.cache,write:this.options.cache},history:{action:"push",popstate:!1,direction:void 0},scroll:{reset:!0,target:void 0}}}const g="undefined"!=typeof Symbol?Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator")):"@@iterator";function w(t,e,n){if(!t.s){if(n instanceof y){if(!n.s)return void(n.o=w.bind(null,t,e));1&e&&(e=n.s),n=n.v}if(n&&n.then)return void n.then(w.bind(null,t,e),w.bind(null,t,2));t.s=e,t.v=n;const i=t.o;i&&i(t)}}const y=/*#__PURE__*/function(){function t(){}return t.prototype.then=function(e,n){const i=new t,r=this.s;if(r){const t=1&r?e:n;if(t){try{w(i,1,t(this.v))}catch(t){w(i,2,t)}return i}return this}return this.o=function(t){try{const r=t.v;1&t.s?w(i,1,e?e(r):r):n?w(i,1,n(r)):w(i,2,r)}catch(t){w(i,2,t)}},i},t}();function P(t){return t instanceof y&&1&t.s}class k{constructor(t){this.swup=void 0,this.registry=new Map,this.hooks=["animation:out:start","animation:out:await","animation:out:end","animation:in:start","animation:in:await","animation:in:end","animation:skip","cache:clear","cache:set","content:replace","content:scroll","enable","disable","fetch:request","fetch:error","history:popstate","link:click","link:self","link:anchor","link:newtab","page:load","page:view","scroll:top","scroll:anchor","visit:start","visit:end"],this.swup=t,this.init()}init(){this.hooks.forEach(t=>this.create(t))}create(t){this.registry.has(t)||this.registry.set(t,new Map)}exists(t){return this.registry.has(t)}get(t){const e=this.registry.get(t);if(e)return e;console.error(`Unknown hook '${t}'`)}clear(){this.registry.forEach(t=>t.clear())}on(t,e,n){void 0===n&&(n={});const i=this.get(t);if(!i)return console.warn(`Hook '${t}' not found.`),()=>{};const r=i.size+1,o={...n,id:r,hook:t,handler:e};return i.set(e,o),()=>this.off(t,e)}before(t,e,n){return void 0===n&&(n={}),this.on(t,e,{...n,before:!0})}replace(t,e,n){return void 0===n&&(n={}),this.on(t,e,{...n,replace:!0})}once(t,e,n){return void 0===n&&(n={}),this.on(t,e,{...n,once:!0})}off(t,e){const n=this.get(t);n&&e?n.delete(e)||console.warn(`Handler for hook '${t}' not found.`):n&&n.clear()}call(t,e,n){try{const i=this,{before:r,handler:o,after:s}=i.getHandlers(t,n);return Promise.resolve(i.run(r,e)).then(function(){return Promise.resolve(i.run(o,e)).then(function(n){let[r]=n;return Promise.resolve(i.run(s,e)).then(function(){return i.dispatchDomEvent(t,e),r})})})}catch(t){return Promise.reject(t)}}callSync(t,e,n){const{before:i,handler:r,after:o}=this.getHandlers(t,n);this.runSync(i,e);const[s]=this.runSync(r,e);return this.runSync(o,e),this.dispatchDomEvent(t,e),s}run(t,e){try{const n=this,i=[],r=function(t,e,n){if("function"==typeof t[g]){var i,r,o,s=t[g]();if(function t(n){try{for(;!(i=s.next()).done;)if((n=e(i.value))&&n.then){if(!P(n))return void n.then(t,o||(o=w.bind(null,r=new y,2)));n=n.v}r?w(r,1,n):r=n}catch(t){w(r||(r=new y),2,t)}}(),s.return){var a=function(t){try{i.done||s.return()}catch(t){}return t};if(r&&r.then)return r.then(a,function(t){throw a(t)});a()}return r}if(!("length"in t))throw new TypeError("Object is not iterable");for(var c=[],l=0;l{const r=t(...e);d(r)?r.then(n,i):n(r)})}(o,[n.swup.visit,e,s])).then(function(t){i.push(t),a&&n.off(r,o)})});return Promise.resolve(r&&r.then?r.then(function(){return i}):i)}catch(t){return Promise.reject(t)}}runSync(t,e){const n=[];for(const{hook:i,handler:r,defaultHandler:o,once:s}of t){const t=r(this.swup.visit,e,o);n.push(t),d(t)&&console.warn(`Promise returned from handler for synchronous hook '${i}'.Swup will not wait for it to resolve.`),s&&this.off(i,r)}return n}getHandlers(t,e){const n=this.get(t);if(!n)return{found:!1,before:[],handler:[],after:[],replaced:!1};const i=Array.from(n.values()),r=this.sortRegistrations,o=i.filter(t=>{let{before:e,replace:n}=t;return e&&!n}).sort(r),s=i.filter(t=>{let{replace:e}=t;return e}).filter(t=>!0).sort(r),a=i.filter(t=>{let{before:e,replace:n}=t;return!e&&!n}).sort(r),c=s.length>0;let l=[];if(e&&(l=[{id:0,hook:t,handler:e}],c)){const n=s.length-1,i=t=>{const n=s[t-1];return n?(e,r)=>n.handler(e,r,i(t-1)):e};l=[{id:0,hook:t,handler:s[n].handler,defaultHandler:i(n)}]}return{found:!0,before:o,handler:l,after:a,replaced:c}}sortRegistrations(t,e){return(t.priority??0)-(e.priority??0)||t.id-e.id||0}dispatchDomEvent(t,e){document.dispatchEvent(new CustomEvent(`swup:${t}`,{detail:{hook:t,args:e,visit:this.swup.visit}}))}}const S=t=>{if(t&&"#"===t.charAt(0)&&(t=t.substring(1)),!t)return null;const e=decodeURIComponent(t);let n=document.getElementById(t)||document.getElementById(e)||l(`a[name='${m(t)}']`)||l(`a[name='${m(e)}']`);return n||"top"!==t||(n=document.body),n},b=function(t){let{elements:e,selector:n}=t;try{if(!1===n&&!e)return Promise.resolve();let t=[];if(e)t=Array.from(e);else if(n&&(t=h(n,document.body),!t.length))return console.warn(`[swup] No elements found matching animationSelector \`${n}\``),Promise.resolve();const i=t.map(t=>function(t){const{type:e,timeout:n,propCount:i}=function(t,e){const n=window.getComputedStyle(t),i=C(n,`${E}Delay`),r=C(n,`${E}Duration`),o=$(i,r),s=C(n,`${U}Delay`),a=C(n,`${U}Duration`),c=$(s,a);let l=null,h=0,u=0;return e===E?o>0&&(l=E,h=o,u=r.length):e===U?c>0&&(l=U,h=c,u=a.length):(h=Math.max(o,c),l=h>0?o>c?E:U:null,u=l?l===E?r.length:a.length:0),{type:l,timeout:h,propCount:u}}(t);return!(!e||!n)&&new Promise(r=>{const o=`${e}end`,s=performance.now();let a=0;const c=()=>{t.removeEventListener(o,l),r()},l=e=>{if(e.target===t){if(!function(t){return[`${E}end`,`${U}end`].includes(t.type)}(e))throw new Error("Not a transition or animation event.");(performance.now()-s)/1e3=i&&c()}};setTimeout(()=>{a0?Promise.resolve(Promise.all(i)).then(function(){}):(n&&console.warn(`[swup] No CSS animation duration defined on elements matching \`${n}\``),Promise.resolve())}catch(t){return Promise.reject(t)}},E="transition",U="animation";function C(t,e){return(t[e]||"").split(", ")}function $(t,e){for(;t.lengthf(e)+f(t[n])))}const x=function(t){void 0===t&&(t={});try{const r=this,{el:o}=r.visit.trigger;t.referrer=t.referrer||r.currentPageUrl,!1===t.animate&&(r.visit.animation.animate=!1),r.visit.animation.animate||r.classes.clear();const s=t.history||o?.getAttribute("data-swup-history")||void 0;s&&["push","replace"].includes(s)&&(r.visit.history.action=s);const a=t.animation||o?.getAttribute("data-swup-animation")||void 0;return a&&(r.visit.animation.name=a),"object"==typeof t.cache?(r.visit.cache.read=t.cache.read??r.visit.cache.read,r.visit.cache.write=t.cache.write??r.visit.cache.write):void 0!==t.cache&&(r.visit.cache={read:!!t.cache,write:!!t.cache}),delete t.cache,Promise.resolve(function(o,s){try{var a=Promise.resolve(r.hooks.call("visit:start",void 0)).then(function(){function o(){const t=r.animatePageOut();return Promise.resolve(Promise.all([s,t])).then(function(t){let[e]=t;return Promise.resolve(r.renderPage(r.visit.to.url,e)).then(function(){return Promise.resolve(r.animatePageIn()).then(function(){return Promise.resolve(r.hooks.call("visit:end",void 0,()=>r.classes.clear())).then(function(){})})})})}const s=r.hooks.call("page:load",{options:t},function(t,e){try{function n(t){return e.page=t,e.cache=!!i,e.page}let i;return r.visit.cache.read&&(i=r.cache.get(t.to.url)),Promise.resolve(i?n(i):Promise.resolve(r.fetchPage(t.to.url,e.options)).then(n))}catch(o){return Promise.reject(o)}});if(!r.visit.history.popstate){const t=r.visit.to.url+r.visit.to.hash;"replace"===r.visit.history.action||r.visit.to.url===r.currentPageUrl?i(t):n(t,{index:r.currentHistoryIndex+1})}r.currentPageUrl=e();const a=function(){if(r.visit.animation.wait)return Promise.resolve(s).then(function(t){let{html:e}=t;r.visit.to.html=e})}();return a&&a.then?a.then(o):o()})}catch(t){return s(t)}return a&&a.then?a.then(void 0,s):a}(0,function(t){t&&(console.error(t),r.options.skipPopStateHandling=()=>(window.location.href=r.visit.to.url+r.visit.to.hash,!0),window.history.go(-1))}))}catch(t){return Promise.reject(t)}};function A(t,e,n){if(void 0===e&&(e={}),void 0===n&&(n={}),"string"!=typeof t)throw new Error("swup.navigate() requires a URL parameter");if(this.shouldIgnoreVisit(t,{el:n.el,event:n.event}))return void(window.location.href=t);const{url:i,hash:r}=a.fromUrl(t);this.visit=this.createVisit({...n,to:i,hash:r}),this.performNavigation(e)}const j=function(t,e){void 0===e&&(e={});try{const n=this;t=a.fromUrl(t).url;const i={...n.options.requestHeaders,...e.headers};return e={...e,headers:i},Promise.resolve(n.hooks.call("fetch:request",{url:t,options:e},(t,e)=>{let{url:n,options:i}=e;return fetch(n,i)})).then(function(i){const{status:r,url:o}=i;return Promise.resolve(i.text()).then(function(s){if(500===r)throw n.hooks.call("fetch:error",{status:r,response:i,url:o}),new H(`Server error: ${o}`,{status:r,url:o});if(!s)throw new H(`Empty response: ${o}`,{status:r,url:o});const{url:c}=a.fromUrl(o),l={url:c,html:s};return!n.visit.cache.write||e.method&&"GET"!==e.method||t!==c||n.cache.set(l.url,l),l})})}catch(t){return Promise.reject(t)}};class H extends Error{constructor(t,e){super(t),this.url=void 0,this.status=void 0,this.name="FetchError",this.url=e.url,this.status=e.status}}const L=function(){try{let n;const i=this;function e(e){return n?e:Promise.resolve(i.hooks.call("animation:out:start",void 0,e=>{i.classes.add("is-changing","is-leaving","is-animating"),e.history.popstate&&i.classes.add("is-popstate"),e.animation.name&&i.classes.add(`to-${t(e.animation.name)}`)})).then(function(){return Promise.resolve(i.hooks.call("animation:out:await",{skip:!1},function(t,e){let{skip:n}=e;try{return n?Promise.resolve():Promise.resolve(i.awaitAnimations({selector:t.animation.selector})).then(function(){})}catch(t){return Promise.reject(t)}})).then(function(){return Promise.resolve(i.hooks.call("animation:out:end",void 0)).then(function(){})})})}const r=function(){if(!i.visit.animation.animate)return Promise.resolve(i.hooks.call("animation:skip",void 0)).then(function(){n=1})}();return Promise.resolve(r&&r.then?r.then(e):e(r))}catch(o){return Promise.reject(o)}},T=function(t,e){let{html:n}=t,{containers:i}=void 0===e?this.options:e;const r=(new DOMParser).parseFromString(n,"text/html"),o=r.querySelector("title")?.innerText||"";document.title=o;const s=h('[data-swup-persist]:not([data-swup-persist=""])'),a=i.map(t=>{const e=document.querySelector(t),n=r.querySelector(t);return e&&n?(e.replaceWith(n),!0):(e||console.warn(`[swup] Container missing in current document: ${t}`),n||console.warn(`[swup] Container missing in incoming document: ${t}`),!1)}).filter(Boolean);return s.forEach(t=>{const e=t.getAttribute("data-swup-persist"),n=l(`[data-swup-persist="${e}"]`);n&&n!==t&&n.replaceWith(t)}),a.length===i.length},q=function(){const t={behavior:"auto"},{target:e,reset:n}=this.visit.scroll,i=e??this.visit.to.hash;let r=!1;return i&&(r=this.hooks.callSync("scroll:anchor",{hash:i,options:t},(t,e)=>{let{hash:n,options:i}=e;const r=this.getAnchorElement(n);return r&&r.scrollIntoView(i),!!r})),n&&!r&&(r=this.hooks.callSync("scroll:top",{options:t},(t,e)=>{let{options:n}=e;return window.scrollTo({top:0,left:0,...n}),!0})),r},R=function(){try{const t=this;if(!t.visit.animation.animate)return Promise.resolve();const e=t.hooks.call("animation:in:await",{skip:!1},function(e,n){let{skip:i}=n;try{return i?Promise.resolve():Promise.resolve(t.awaitAnimations({selector:e.animation.selector})).then(function(){})}catch(t){return Promise.reject(t)}});return Promise.resolve(u()).then(function(){return Promise.resolve(t.hooks.call("animation:in:start",void 0,()=>{t.classes.remove("is-animating")})).then(function(){return Promise.resolve(e).then(function(){return Promise.resolve(t.hooks.call("animation:in:end",void 0)).then(function(){})})})})}catch(t){return Promise.reject(t)}},N=function(n,r){try{const o=this,{url:s,html:a}=r;return o.classes.remove("is-leaving"),o.isSameResolvedUrl(e(),n)?(o.isSameResolvedUrl(e(),s)||(i(s),o.currentPageUrl=e(),o.visit.to.url=o.currentPageUrl),o.visit.animation.animate&&o.classes.add("is-rendering"),o.visit.to.html=a,Promise.resolve(o.hooks.call("content:replace",{page:r},(e,n)=>{let{page:i}=n;if(!o.replaceContent(i,{containers:e.containers}))throw new Error("[swup] Container mismatch, aborting");e.animation.animate&&(o.classes.add("is-animating","is-changing","is-rendering"),e.animation.name&&o.classes.add(`to-${t(e.animation.name)}`))})).then(function(){return Promise.resolve(o.hooks.call("content:scroll",void 0,()=>o.scrollToContent())).then(function(){return Promise.resolve(o.hooks.call("page:view",{url:o.currentPageUrl,title:document.title})).then(function(){})})})):Promise.resolve()}catch(t){return Promise.reject(t)}},D=function(t){var e;if(e=t,Boolean(e?.isSwupPlugin)){if(t.swup=this,!t._checkRequirements||t._checkRequirements())return t._beforeMount&&t._beforeMount(),t.mount(),this.plugins.push(t),this.plugins}else console.error("Not a swup plugin instance",t)};function I(t){const e=this.findPlugin(t);if(e)return e.unmount(),e._afterUnmount&&e._afterUnmount(),this.plugins=this.plugins.filter(t=>t!==e),this.plugins;console.error("No such plugin",e)}function M(t){return this.plugins.find(e=>e===t||e.name===t||e.name===`Swup${String(t)}`)}function W(t){if("function"!=typeof this.options.resolveUrl)return console.warn("[swup] options.resolveUrl expects a callback function."),t;const e=this.options.resolveUrl(t);return e&&"string"==typeof e?e.startsWith("//")||e.startsWith("http")?(console.warn("[swup] options.resolveUrl needs to return a relative url"),t):e:(console.warn("[swup] options.resolveUrl needs to return a url"),t)}function V(t,e){return this.resolveUrl(t)===this.resolveUrl(e)}const B={animateHistoryBrowsing:!1,animationSelector:'[class*="transition-"]',animationScope:"html",cache:!0,containers:["#swup"],ignoreVisit:function(t,e){let{el:n}=void 0===e?{}:e;return!!n?.closest("[data-no-swup]")},linkSelector:"a[href]",linkToSelf:"scroll",plugins:[],resolveUrl:t=>t,requestHeaders:{"X-Requested-With":"swup",Accept:"text/html, application/xhtml+xml"},skipPopStateHandling:t=>"swup"!==t.state?.source};return class{constructor(t){void 0===t&&(t={}),this.version="4.3.1",this.options=void 0,this.defaults=B,this.plugins=[],this.visit=void 0,this.cache=void 0,this.hooks=void 0,this.classes=void 0,this.currentPageUrl=e(),this.currentHistoryIndex=1,this.clickDelegate=void 0,this.use=D,this.unuse=I,this.findPlugin=M,this.log=()=>{},this.navigate=A,this.performNavigation=x,this.createVisit=v,this.delegateEvent=s,this.fetchPage=j,this.awaitAnimations=b,this.renderPage=N,this.replaceContent=T,this.animatePageIn=R,this.animatePageOut=L,this.scrollToContent=q,this.getAnchorElement=S,this.getCurrentUrl=e,this.resolveUrl=W,this.isSameResolvedUrl=V,this.options={...this.defaults,...t},this.handleLinkClick=this.handleLinkClick.bind(this),this.handlePopState=this.handlePopState.bind(this),this.cache=new c(this),this.classes=new p(this),this.hooks=new k(this),this.visit=this.createVisit({to:""}),this.checkRequirements()&&this.enable()}checkRequirements(){return"undefined"!=typeof Promise||(console.warn("Promise is not supported"),!1)}enable(){try{const t=this,{linkSelector:e}=t.options;return t.clickDelegate=t.delegateEvent(e,"click",t.handleLinkClick),window.addEventListener("popstate",t.handlePopState),t.options.animateHistoryBrowsing&&(window.history.scrollRestoration="manual"),t.options.plugins.forEach(e=>t.use(e)),i(null,{index:1}),Promise.resolve(u()).then(function(){return Promise.resolve(t.hooks.call("enable",void 0,()=>{document.documentElement.classList.add("swup-enabled")})).then(function(){})})}catch(t){return Promise.reject(t)}}destroy(){try{const t=this;return t.clickDelegate.destroy(),window.removeEventListener("popstate",t.handlePopState),t.cache.clear(),t.options.plugins.forEach(e=>t.unuse(e)),Promise.resolve(t.hooks.call("disable",void 0,()=>{document.documentElement.classList.remove("swup-enabled")})).then(function(){t.hooks.clear()})}catch(t){return Promise.reject(t)}}shouldIgnoreVisit(t,e){let{el:n,event:i}=void 0===e?{}:e;const{origin:r,url:o,hash:s}=a.fromUrl(t);return r!==window.location.origin||!(!n||!this.triggerWillOpenNewWindow(n))||!!this.options.ignoreVisit(o+s,{el:n,event:i})}handleLinkClick(t){const e=t.delegateTarget,{href:n,url:r,hash:o}=a.fromElement(e);this.shouldIgnoreVisit(n,{el:e,event:t})||(this.visit=this.createVisit({to:r,hash:o,el:e,event:t}),t.metaKey||t.ctrlKey||t.shiftKey||t.altKey?this.hooks.call("link:newtab",{href:n}):0===t.button&&this.hooks.callSync("link:click",{el:e,event:t},()=>{const e=this.visit.from.url??"";t.preventDefault(),r&&r!==e?this.isSameResolvedUrl(r,e)||this.performNavigation():o?this.hooks.callSync("link:anchor",{hash:o},()=>{i(r+o),this.scrollToContent()}):this.hooks.callSync("link:self",void 0,()=>"navigate"===this.options.linkToSelf?this.performNavigation():this.scrollToContent())}))}handlePopState(t){const n=t.state?.url??location.href;if(this.options.skipPopStateHandling(t))return;if(this.isSameResolvedUrl(e(),this.currentPageUrl))return;const{url:i,hash:r}=a.fromUrl(n);this.visit=this.createVisit({to:i,hash:r,event:t}),this.visit.history.popstate=!0;const o=Number(t.state?.index);o&&(this.visit.history.direction=o-this.currentHistoryIndex>0?"forwards":"backwards"),this.visit.animation.animate=!1,this.visit.scroll.reset=!1,this.visit.scroll.target=!1,this.options.animateHistoryBrowsing&&(this.visit.animation.animate=!0,this.visit.scroll.reset=!0),this.hooks.callSync("history:popstate",{event:t},()=>{this.performNavigation()})}triggerWillOpenNewWindow(t){return!!t.matches('[download], [target="_blank"]')}}}); +//# sourceMappingURL=Swup.min.js.map \ No newline at end of file diff --git a/source/build/js/libs/SwupPreloadPlugin.min.js b/source/build/js/libs/SwupPreloadPlugin.min.js new file mode 100644 index 00000000..f2391d19 --- /dev/null +++ b/source/build/js/libs/SwupPreloadPlugin.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e||self).SwupPreloadPlugin=t()}(this,function(){function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;tString(e).split(".").map(e=>String(parseInt(e||"0",10))).concat(["0","0"]).slice(0,3).join(".");class r{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(e=>e()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return"object"!=typeof this.requires||Object.entries(this.requires).forEach(([e,r])=>{if(!function(e,r,o){const s=function(e,t){var r;if("swup"===e)return null!=(r=t.version)?r:"";{var o;const r=t.findPlugin(e);return null!=(o=null==r?void 0:r.version)?o:""}}(e,o);return!!s&&((e,r)=>r.every(r=>{const[,o,s]=r.match(/^([\D]+)?(.*)$/)||[];var i,n;return((e,t)=>{const r={"":e=>0===e,">":e=>e>0,">=":e=>e>=0,"<":e=>e<0,"<=":e=>e<=0};return(r[t]||r[""])(e)})((n=s,i=t(i=e),n=t(n),i.localeCompare(n,void 0,{numeric:!0})),o||">=")}))(s,r)}(e,r=Array.isArray(r)?r:[r],this.swup)){const t=`${e} ${r.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${t}`)}}),!0}on(e,t,r={}){var o;t=!(o=t).name.startsWith("bound ")||o.hasOwnProperty("prototype")?t.bind(this):t;const s=this.swup.hooks.on(e,t,r);return this.handlersToUnregister.push(s),s}once(t,r,o={}){return this.on(t,r,e({},o,{once:!0}))}before(t,r,o={}){return this.on(t,r,e({},o,{before:!0}))}replace(t,r,o={}){return this.on(t,r,e({},o,{replace:!0}))}off(e,t){return this.swup.hooks.off(e,t)}}const o=({hash:e}={})=>location.pathname+location.search+(e?location.hash:"");class s extends URL{constructor(e,t=document.baseURI){super(e.toString(),t)}get url(){return this.pathname+this.search}static fromElement(e){const t=e.getAttribute("href")||e.getAttribute("xlink:href")||"";return new s(t)}static fromUrl(e){return new s(e)}}function i(){return window.matchMedia("(hover: hover)").matches}const n=window.requestIdleCallback||(e=>setTimeout(e,1));return class extends r{constructor(e){void 0===e&&(e={}),super();const t=this;this.name="SwupPreloadPlugin",this.requires={swup:">=4"},this.defaults={throttle:5,preloadInitialPage:!0,preloadHoveredLinks:!0,preloadVisibleLinks:{enabled:!1,threshold:.2,delay:500,containers:["body"],ignore:()=>!1}},this.options=void 0,this.queue=void 0,this.preloadObserver=void 0,this.preloadPromises=new Map,this.mouseEnterDelegate=void 0,this.touchStartDelegate=void 0,this.focusDelegate=void 0,this.onPageLoad=(e,t,r)=>{const{url:o}=e.to;return o&&this.preloadPromises.has(o)?this.preloadPromises.get(o):r(e,t)},this.onMouseEnter=function(e){try{if(e.target!==e.delegateTarget)return Promise.resolve();if(!i())return Promise.resolve();const r=e.delegateTarget;return r instanceof HTMLAnchorElement?(t.swup.hooks.callSync("link:hover",{el:r,event:e}),t.preload(r,{priority:!0}),Promise.resolve()):Promise.resolve()}catch(e){return Promise.reject(e)}},this.onTouchStart=e=>{if(i())return;const t=e.delegateTarget;t instanceof HTMLAnchorElement&&this.preload(t,{priority:!0})},this.onFocus=e=>{const t=e.delegateTarget;t instanceof HTMLAnchorElement&&this.preload(t,{priority:!0})};const{preloadVisibleLinks:r,...o}=e;this.options={...this.defaults,...o},"object"==typeof r?this.options.preloadVisibleLinks={...this.options.preloadVisibleLinks,enabled:!0,...r}:this.options.preloadVisibleLinks.enabled=Boolean(r),this.preload=this.preload.bind(this),this.queue=function(e){void 0===e&&(e=1);const t=[],r=[];let o=0,s=0;function i(){s0&&((r.shift()||t.shift()||(()=>{}))(),o--,s++)}return{add:function(e,s){if(void 0===s&&(s=!1),e.__queued){if(!s)return;{const r=t.indexOf(e);if(r>=0){const e=t.splice(r,1);o-=e.length}}}e.__queued=!0,(s?r:t).push(e),o++,o<=1&&i()},next:function(){s--,i()}}}(this.options.throttle)}mount(){const e=this.swup;if(!e.options.cache)return void console.warn("SwupPreloadPlugin: swup cache needs to be enabled for preloading");e.hooks.create("page:preload"),e.hooks.create("link:hover"),e.preload=this.preload,e.preloadLinks=this.preloadLinks;const{linkSelector:t}=e.options,r={passive:!0,capture:!0};this.mouseEnterDelegate=e.delegateEvent(t,"mouseenter",this.onMouseEnter,r),this.touchStartDelegate=e.delegateEvent(t,"touchstart",this.onTouchStart,r),this.focusDelegate=e.delegateEvent(t,"focus",this.onFocus,r),this.replace("page:load",this.onPageLoad),this.options.preloadHoveredLinks&&(this.preloadLinks(),this.on("page:view",()=>this.preloadLinks())),this.options.preloadVisibleLinks.enabled&&(this.preloadVisibleLinks(),this.on("page:view",()=>this.preloadVisibleLinks())),this.options.preloadInitialPage&&this.preload(o())}unmount(){this.swup.preload=void 0,this.swup.preloadLinks=void 0,this.preloadPromises.clear(),this.mouseEnterDelegate?.destroy(),this.touchStartDelegate?.destroy(),this.focusDelegate?.destroy(),this.stopPreloadingVisibleLinks()}preload(e,t){void 0===t&&(t={});try{const r=this;let o,i;const n=t.priority??!1;if(Array.isArray(e))return Promise.all(e.map(e=>r.preload(e)));if(e instanceof HTMLAnchorElement)i=e,({url:o}=s.fromElement(e));else{if("string"!=typeof e)return Promise.resolve();o=e}if(r.preloadPromises.has(o))return Promise.resolve(r.preloadPromises.get(o));if(!r.shouldPreload(o,{el:i}))return Promise.resolve();const a=new Promise(e=>{r.queue.add(()=>{r.performPreload(o).catch(()=>{}).then(t=>e(t)).finally(()=>{r.queue.next(),r.preloadPromises.delete(o)})},n)});return r.preloadPromises.set(o,a),Promise.resolve(a)}catch(e){return Promise.reject(e)}}preloadLinks(){n(()=>{Array.from(document.querySelectorAll("a[data-swup-preload], [data-swup-preload-all] a")).forEach(e=>this.preload(e))})}preloadVisibleLinks(){if(this.preloadObserver)return void this.preloadObserver.update();const{threshold:e,delay:t,containers:r}=this.options.preloadVisibleLinks;this.preloadObserver=function(e){let{threshold:t,delay:r,containers:o,callback:s,filter:i}=e;const a=new Map,l=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting?h(e.target):u(e.target)})},{threshold:t}),h=e=>{const t=a.get(e.href)??new Set;a.set(e.href,t),t.add(e),setTimeout(()=>{const t=a.get(e.href);t?.size&&(s(e),l.unobserve(e),t.delete(e))},r)},u=e=>a.get(e.href)?.delete(e),c=()=>{n(()=>{const e=o.map(e=>`${e} a[href]`).join(", ");Array.from(document.querySelectorAll(e)).filter(e=>i(e)).forEach(e=>l.observe(e))})};return{start:()=>c(),stop:()=>l.disconnect(),update:()=>(a.clear(),c())}}({threshold:e,delay:t,containers:r,callback:e=>this.preload(e),filter:e=>!this.options.preloadVisibleLinks.ignore(e)&&this.shouldPreload(e.href,{el:e})}),this.preloadObserver.start()}stopPreloadingVisibleLinks(){this.preloadObserver&&this.preloadObserver.stop()}shouldPreload(e,t){let{el:r}=void 0===t?{}:t;const{url:i,href:n}=s.fromUrl(e);return!(!function(){if(navigator.connection){if(navigator.connection.saveData)return!1;if(navigator.connection.effectiveType?.endsWith("2g"))return!1}return!0}()||this.swup.cache.has(i)||this.preloadPromises.has(i)||this.swup.shouldIgnoreVisit(n,{el:r})||r&&this.swup.resolveUrl(i)===this.swup.resolveUrl(o()))}performPreload(e){try{const t=this;return Promise.resolve(t.swup.fetchPage(e)).then(function(e){return Promise.resolve(t.swup.hooks.call("page:preload",{page:e})).then(function(){return e})})}catch(e){return Promise.reject(e)}}}}); +//# sourceMappingURL=SwupPreloadPlugin.min.js.map diff --git a/source/build/js/libs/SwupProgressPlugin.min.js b/source/build/js/libs/SwupProgressPlugin.min.js new file mode 100644 index 00000000..d409527a --- /dev/null +++ b/source/build/js/libs/SwupProgressPlugin.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t||self).SwupProgressPlugin=e()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var e=1;eString(t).split(".").map(t=>String(parseInt(t||"0",10))).concat(["0","0"]).slice(0,3).join(".");class s{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(t=>t()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return"object"!=typeof this.requires||Object.entries(this.requires).forEach(([t,s])=>{if(!function(t,s,i){const r=function(t,e){var s;if("swup"===t)return null!=(s=e.version)?s:"";{var i;const s=e.findPlugin(t);return null!=(i=null==s?void 0:s.version)?i:""}}(t,i);return!!r&&((t,s)=>s.every(s=>{const[,i,r]=s.match(/^([\D]+)?(.*)$/)||[];var n,o;return((t,e)=>{const s={"":t=>0===t,">":t=>t>0,">=":t=>t>=0,"<":t=>t<0,"<=":t=>t<=0};return(s[e]||s[""])(t)})((o=r,n=e(n=t),o=e(o),n.localeCompare(o,void 0,{numeric:!0})),i||">=")}))(r,s)}(t,s=Array.isArray(s)?s:[s],this.swup)){const e=`${t} ${s.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${e}`)}}),!0}on(t,e,s={}){var i;e=!(i=e).name.startsWith("bound ")||i.hasOwnProperty("prototype")?e.bind(this):e;const r=this.swup.hooks.on(t,e,s);return this.handlersToUnregister.push(r),r}once(e,s,i={}){return this.on(e,s,t({},i,{once:!0}))}before(e,s,i={}){return this.on(e,s,t({},i,{before:!0}))}replace(e,s,i={}){return this.on(e,s,t({},i,{replace:!0}))}off(t,e){return this.swup.hooks.off(t,e)}}class i{constructor(t){let{className:e,styleAttr:s,animationDuration:i,minValue:r,initialValue:n,trickleValue:o}=void 0===t?{}:t;this.value=0,this.visible=!1,this.hiding=!1,this.className="progress-bar",this.styleAttr="data-progressbar-styles data-swup-theme",this.animationDuration=300,this.minValue=.1,this.initialValue=.25,this.trickleValue=.03,this.trickleInterval=void 0,this.styleElement=void 0,this.progressElement=void 0,this.trickle=()=>{const t=Math.random()*this.trickleValue;this.setValue(this.value+t)},void 0!==e&&(this.className=String(e)),void 0!==s&&(this.styleAttr=String(s)),void 0!==i&&(this.animationDuration=Number(i)),void 0!==r&&(this.minValue=Number(r)),void 0!==n&&(this.initialValue=Number(n)),void 0!==o&&(this.trickleValue=Number(o)),this.styleElement=this.createStyleElement(),this.progressElement=this.createProgressElement()}get defaultStyles(){return`\n\t\t.${this.className} {\n\t\t\tposition: fixed;\n\t\t\tdisplay: block;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\theight: 3px;\n\t\t\tbackground-color: black;\n\t\t\tz-index: 9999;\n\t\t\ttransition:\n\t\t\t\twidth ${this.animationDuration}ms ease-out,\n\t\t\t\topacity ${this.animationDuration/2}ms ${this.animationDuration/2}ms ease-in;\n\t\t\ttransform: translate3d(0, 0, 0);\n\t\t}\n\t`}show(){this.visible||(this.visible=!0,this.installStyleElement(),this.installProgressElement(),this.startTrickling())}hide(){this.visible&&!this.hiding&&(this.hiding=!0,this.fadeProgressElement(()=>{this.uninstallProgressElement(),this.stopTrickling(),this.visible=!1,this.hiding=!1}))}setValue(t){this.value=Math.min(1,Math.max(this.minValue,t)),this.refresh()}installStyleElement(){document.head.insertBefore(this.styleElement,document.head.firstChild)}installProgressElement(){this.progressElement.style.width="0%",this.progressElement.style.opacity="1",document.documentElement.insertBefore(this.progressElement,document.body),this.progressElement.scrollTop=0,this.setValue(Math.random()*this.initialValue)}fadeProgressElement(t){this.progressElement.style.opacity="0",setTimeout(t,1.5*this.animationDuration)}uninstallProgressElement(){this.progressElement.parentNode&&document.documentElement.removeChild(this.progressElement)}startTrickling(){this.trickleInterval||(this.trickleInterval=window.setInterval(this.trickle,this.animationDuration))}stopTrickling(){window.clearInterval(this.trickleInterval),delete this.trickleInterval}refresh(){requestAnimationFrame(()=>{this.progressElement.style.width=100*this.value+"%"})}createStyleElement(){const t=document.createElement("style");return this.styleAttr.split(" ").forEach(e=>t.setAttribute(e,"")),t.textContent=this.defaultStyles,t}createProgressElement(){const t=document.createElement("div");return t.className=this.className,t}}return class extends s{constructor(t){void 0===t&&(t={}),super(),this.name="SwupProgressPlugin",this.defaults={className:"swup-progress-bar",delay:300,transition:300,minValue:.1,initialValue:.25,finishAnimation:!0},this.options=void 0,this.progressBar=void 0,this.showProgressBarTimeout=void 0,this.hideProgressBarTimeout=void 0,this.options={...this.defaults,...t};const{className:e,minValue:s,initialValue:r,transition:n}=this.options;this.progressBar=new i({className:e,minValue:s,initialValue:r,animationDuration:n})}mount(){this.on("visit:start",this.startShowingProgress),this.on("page:view",this.stopShowingProgress)}startShowingProgress(){this.progressBar.setValue(0),this.showProgressBarAfterDelay()}stopShowingProgress(){this.progressBar.setValue(1),this.options.finishAnimation?this.finishAnimationAndHideProgressBar():this.hideProgressBar()}showProgressBar(){this.cancelHideProgressBarTimeout(),this.progressBar.show()}showProgressBarAfterDelay(){this.cancelShowProgressBarTimeout(),this.cancelHideProgressBarTimeout(),this.showProgressBarTimeout=window.setTimeout(this.showProgressBar.bind(this),this.options.delay)}hideProgressBar(){this.cancelShowProgressBarTimeout(),this.progressBar.hide()}finishAnimationAndHideProgressBar(){this.cancelShowProgressBarTimeout(),this.hideProgressBarTimeout=window.setTimeout(this.hideProgressBar.bind(this),this.options.transition)}cancelShowProgressBarTimeout(){window.clearTimeout(this.showProgressBarTimeout),delete this.showProgressBarTimeout}cancelHideProgressBarTimeout(){window.clearTimeout(this.hideProgressBarTimeout),delete this.hideProgressBarTimeout}}}); \ No newline at end of file diff --git a/source/build/js/libs/SwupScriptsPlugin.min.js b/source/build/js/libs/SwupScriptsPlugin.min.js new file mode 100644 index 00000000..8c49b462 --- /dev/null +++ b/source/build/js/libs/SwupScriptsPlugin.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t||self).SwupScriptsPlugin=e()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var e=1;eString(t).split(".").map(t=>String(parseInt(t||"0",10))).concat(["0","0"]).slice(0,3).join(".");class r{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(t=>t()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return"object"!=typeof this.requires||Object.entries(this.requires).forEach(([t,r])=>{if(!function(t,r,n){const o=function(t,e){var r;if("swup"===t)return null!=(r=e.version)?r:"";{var n;const r=e.findPlugin(t);return null!=(n=null==r?void 0:r.version)?n:""}}(t,n);return!!o&&((t,r)=>r.every(r=>{const[,n,o]=r.match(/^([\D]+)?(.*)$/)||[];var s,i;return((t,e)=>{const r={"":t=>0===t,">":t=>t>0,">=":t=>t>=0,"<":t=>t<0,"<=":t=>t<=0};return(r[e]||r[""])(t)})((i=o,s=e(s=t),i=e(i),s.localeCompare(i,void 0,{numeric:!0})),n||">=")}))(o,r)}(t,r=Array.isArray(r)?r:[r],this.swup)){const e=`${t} ${r.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${e}`)}}),!0}on(t,e,r={}){var n;e=!(n=e).name.startsWith("bound ")||n.hasOwnProperty("prototype")?e.bind(this):e;const o=this.swup.hooks.on(t,e,r);return this.handlersToUnregister.push(o),o}once(e,r,n={}){return this.on(e,r,t({},n,{once:!0}))}before(e,r,n={}){return this.on(e,r,t({},n,{before:!0}))}replace(e,r,n={}){return this.on(e,r,t({},n,{replace:!0}))}off(t,e){return this.swup.hooks.off(t,e)}}return class extends r{constructor(t){void 0===t&&(t={}),super(),this.name="SwupScriptsPlugin",this.requires={swup:">=4"},this.defaults={head:!0,body:!0,optin:!1},this.options={...this.defaults,...t}}mount(){this.on("content:replace",this.runScripts)}runScripts(){const{head:t,body:e,optin:r}=this.options,n=this.getScope({head:t,body:e});if(!n)return;const o=Array.from(n.querySelectorAll(r?"script[data-swup-reload-script]":"script:not([data-swup-ignore-script])"));o.forEach(t=>this.runScript(t)),this.swup.log(`Executed ${o.length} scripts.`)}runScript(t){const e=document.createElement("script");for(const{name:r,value:n}of t.attributes)e.setAttribute(r,n);return e.textContent=t.textContent,t.replaceWith(e),e}getScope(t){let{head:e,body:r}=t;return e&&r?document:e?document.head:r?document.body:null}}}); \ No newline at end of file diff --git a/source/build/js/libs/SwupScrollPlugin.min.js b/source/build/js/libs/SwupScrollPlugin.min.js new file mode 100644 index 00000000..de29e28f --- /dev/null +++ b/source/build/js/libs/SwupScrollPlugin.min.js @@ -0,0 +1,2 @@ +!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(t||self).SwupScrollPlugin=o()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var o=1;oString(t).split(".").map(t=>String(parseInt(t||"0",10))).concat(["0","0"]).slice(0,3).join(".");class s{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(t=>t()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return"object"!=typeof this.requires||Object.entries(this.requires).forEach(([t,s])=>{if(!function(t,s,i){const n=function(t,o){var s;if("swup"===t)return null!=(s=o.version)?s:"";{var i;const s=o.findPlugin(t);return null!=(i=null==s?void 0:s.version)?i:""}}(t,i);return!!n&&((t,s)=>s.every(s=>{const[,i,n]=s.match(/^([\D]+)?(.*)$/)||[];var e,r;return((t,o)=>{const s={"":t=>0===t,">":t=>t>0,">=":t=>t>=0,"<":t=>t<0,"<=":t=>t<=0};return(s[o]||s[""])(t)})((r=n,e=o(e=t),r=o(r),e.localeCompare(r,void 0,{numeric:!0})),i||">=")}))(n,s)}(t,s=Array.isArray(s)?s:[s],this.swup)){const o=`${t} ${s.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${o}`)}}),!0}on(t,o,s={}){var i;o=!(i=o).name.startsWith("bound ")||i.hasOwnProperty("prototype")?o.bind(this):o;const n=this.swup.hooks.on(t,o,s);return this.handlersToUnregister.push(n),n}once(o,s,i={}){return this.on(o,s,t({},i,{once:!0}))}before(o,s,i={}){return this.on(o,s,t({},i,{before:!0}))}replace(o,s,i={}){return this.on(o,s,t({},i,{replace:!0}))}off(t,o){return this.swup.hooks.off(t,o)}}const i=(t,o=document)=>Array.from(o.querySelectorAll(t));function n(){return n=Object.assign?Object.assign.bind():function(t){for(var o=1;o{if(t&&t.nodeType)this._targetPositionY=Math.round(t.getBoundingClientRect().top+window.pageYOffset);else{if(parseInt(this._targetPositionY)!==this._targetPositionY)return void console.error("Argument must be a number or an element.");this._targetPositionY=Math.round(t)}this._targetPositionY>document.documentElement.scrollHeight-window.innerHeight&&(this._targetPositionY=document.documentElement.scrollHeight-window.innerHeight),this._positionY=document.body.scrollTop||document.documentElement.scrollTop,this._direction=this._positionY>this._targetPositionY?-1:1,this._targetPositionYWithOffset=this._targetPositionY+this._direction,this._velocityY=0,this._positionY!==this._targetPositionY?(this.options.onStart(),this._animate()):this.options.onAlreadyAtPositions()},this._animate=()=>{this._update(),this._render(),1===this._direction&&this._targetPositionY>this._positionY||-1===this._direction&&this._targetPositionY{const t=this._targetPositionYWithOffset-this._positionY;return this._velocityY+=t*this.options.acceleration,this._velocityY*=this.options.friction,this._positionY+=this._velocityY,Math.abs(t)},this._render=()=>{window.scrollTo(0,this._positionY)},this.options=n({},{onAlreadyAtPositions:()=>{},onCancel:()=>{},onEnd:()=>{},onStart:()=>{},onTick:()=>{},friction:.7,acceleration:.04},t),t&&t.friction&&(this.options.friction=1-t.friction),window.addEventListener("mousewheel",t=>{this._raf&&(this.options.onCancel(),cancelAnimationFrame(this._raf),this._raf=null)},{passive:!0})}}return class extends s{constructor(t){var o;void 0===t&&(t={}),super(),o=this,this.name="SwupScrollPlugin",this.requires={swup:">=4.2.0"},this.scrl=void 0,this.defaults={doScrollingRightAway:!1,animateScroll:{betweenPages:!0,samePageWithHash:!0,samePage:!0},scrollFriction:.3,scrollAcceleration:.04,getAnchorElement:void 0,offset:0,scrollContainers:"[data-swup-scroll-container]",shouldResetScrollPosition:()=>!0},this.options=void 0,this.cachedScrollPositions={},this.previousScrollRestoration=void 0,this.currentCacheKey=void 0,this.getAnchorElement=function(t){return void 0===t&&(t=""),"function"==typeof o.options.getAnchorElement?o.options.getAnchorElement(t):o.swup.getAnchorElement(t)},this.getOffset=t=>t?"function"==typeof this.options.offset?parseInt(String(this.options.offset(t)),10):parseInt(String(this.options.offset),10):0,this.handleScrollToTop=()=>(this.swup.scrollTo?.(0,this.shouldAnimate("samePage")),!0),this.handleScrollToAnchor=(t,o)=>{let{hash:s}=o;return this.maybeScrollToAnchor(s,this.shouldAnimate("samePageWithHash"))},this.onVisitStart=t=>{this.maybeResetScrollPositions(t),this.cacheScrollPositions(t.from.url);const o=t.scroll.target||t.to.hash;t.scroll.scrolledToContent=!1,this.options.doScrollingRightAway&&!o&&(t.scroll.scrolledToContent=!0,this.doScrollingBetweenPages(t))},this.onScrollToContent=t=>{t.scroll.scrolledToContent||this.doScrollingBetweenPages(t),this.restoreScrollContainers(t.to.url)},this.doScrollingBetweenPages=t=>{if(t.history.popstate&&!t.animation.animate)return;if(this.maybeScrollToAnchor(t.scroll.target||t.to.hash,this.shouldAnimate("betweenPages")))return;if(!t.scroll.reset)return;const o=this.getCachedScrollPositions(this.swup.resolveUrl((({hash:t}={})=>location.pathname+location.search+(t?location.hash:""))())),s=o?.window?.top||0;requestAnimationFrame(()=>this.swup.scrollTo?.(s,this.shouldAnimate("betweenPages")))},this.maybeResetScrollPositions=t=>{const{url:o}=t.to,{el:s}=t.trigger;s&&this.options.shouldResetScrollPosition(s)&&this.resetScrollPositions(o)},this.options={...this.defaults,...t}}mount(){var t=this;const o=this.swup;o.hooks.create("scroll:start"),o.hooks.create("scroll:end"),this.scrl=new e({onStart:()=>o.hooks.callSync("scroll:start"),onEnd:()=>o.hooks.callSync("scroll:end"),onCancel:()=>o.hooks.callSync("scroll:end"),friction:this.options.scrollFriction,acceleration:this.options.scrollAcceleration}),o.scrollTo=function(s,i){void 0===i&&(i=!0),i?t.scrl.scrollTo(s):(o.hooks.callSync("scroll:start"),window.scrollTo(0,s),o.hooks.callSync("scroll:end"))},this.previousScrollRestoration=window.history.scrollRestoration,o.options.animateHistoryBrowsing&&(window.history.scrollRestoration="manual"),this.on("visit:start",this.onVisitStart),this.replace("content:scroll",this.onScrollToContent),this.replace("scroll:top",this.handleScrollToTop),this.replace("scroll:anchor",this.handleScrollToAnchor)}unmount(){super.unmount(),this.previousScrollRestoration&&(window.history.scrollRestoration=this.previousScrollRestoration),this.cachedScrollPositions={},delete this.swup.scrollTo,delete this.scrl}shouldAnimate(t){return"boolean"==typeof this.options.animateScroll?this.options.animateScroll:this.options.animateScroll[t]}maybeScrollToAnchor(t,o){if(void 0===o&&(o=!1),!t)return!1;const s=this.getAnchorElement(t);if(!s)return console.warn(`Anchor target ${t} not found`),!1;if(!(s instanceof Element))return console.warn(`Anchor target ${t} is not a DOM node`),!1;const{top:i}=s.getBoundingClientRect(),n=i+window.scrollY-this.getOffset(s);return this.swup.scrollTo?.(n,o),!0}cacheScrollPositions(t){const o=i(this.options.scrollContainers).map(t=>({top:t.scrollTop,left:t.scrollLeft})),s={window:{top:window.scrollY,left:window.scrollX},containers:o};this.cachedScrollPositions[t]=s}resetScrollPositions(t){const o=this.swup.resolveUrl(t);delete this.cachedScrollPositions[o]}getCachedScrollPositions(t){const o=this.swup.resolveUrl(t);return this.cachedScrollPositions[o]}restoreScrollContainers(t){const o=this.getCachedScrollPositions(t);o&&0!==o.containers.length&&i(this.options.scrollContainers).forEach((t,s)=>{const i=o.containers[s];null!=i&&(t.scrollTop=i.top,t.scrollLeft=i.left)})}}}); +//# sourceMappingURL=SwupScrollPlugin.min.js.map diff --git a/source/build/js/libs/SwupSlideTheme.min.js b/source/build/js/libs/SwupSlideTheme.min.js new file mode 100644 index 00000000..7e9df3c7 --- /dev/null +++ b/source/build/js/libs/SwupSlideTheme.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e||self).SwupSlideTheme=t()}(this,function(){function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;tString(e).split(".").map(e=>String(parseInt(e||"0",10))).concat(["0","0"]).slice(0,3).join(".");class s{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(e=>e()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return"object"!=typeof this.requires||Object.entries(this.requires).forEach(([e,s])=>{if(!function(e,s,n){const r=function(e,t){var s;if("swup"===e)return null!=(s=t.version)?s:"";{var n;const s=t.findPlugin(e);return null!=(n=null==s?void 0:s.version)?n:""}}(e,n);return!!r&&((e,s)=>s.every(s=>{const[,n,r]=s.match(/^([\D]+)?(.*)$/)||[];var i,o;return((e,t)=>{const s={"":e=>0===e,">":e=>e>0,">=":e=>e>=0,"<":e=>e<0,"<=":e=>e<=0};return(s[t]||s[""])(e)})((o=r,i=t(i=e),o=t(o),i.localeCompare(o,void 0,{numeric:!0})),n||">=")}))(r,s)}(e,s=Array.isArray(s)?s:[s],this.swup)){const t=`${e} ${s.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${t}`)}}),!0}on(e,t,s={}){var n;t=!(n=t).name.startsWith("bound ")||n.hasOwnProperty("prototype")?t.bind(this):t;const r=this.swup.hooks.on(e,t,s);return this.handlersToUnregister.push(r),r}once(t,s,n={}){return this.on(t,s,e({},n,{once:!0}))}before(t,s,n={}){return this.on(t,s,e({},n,{before:!0}))}replace(t,s,n={}){return this.on(t,s,e({},n,{replace:!0}))}off(e,t){return this.swup.hooks.off(e,t)}}class n extends s{constructor(...e){super(...e),this._addedStyleElements=[],this._addedHTMLContent=[],this._classNameAddedToElements=[],this._addClassNameToElement=()=>{this._classNameAddedToElements.forEach(e=>{Array.from(document.querySelectorAll(e.selector)).forEach(t=>{t.classList.add(`swup-transition-${e.name}`)})})}}_beforeMount(){this._originalAnimationSelectorOption=String(this.swup.options.animationSelector),this.swup.options.animationSelector='[class*="swup-transition-"]',this.swup.hooks.on("content:replace",this._addClassNameToElement)}_afterUnmount(){this.swup.options.animationSelector=this._originalAnimationSelectorOption,this._addedStyleElements.forEach(e=>{e.outerHTML="",e=null}),this._addedHTMLContent.forEach(e=>{e.outerHTML="",e=null}),this._classNameAddedToElements.forEach(e=>{Array.from(document.querySelectorAll(e.selector)).forEach(e=>{e.className.split(" ").forEach(t=>{new RegExp("^swup-transition-").test(t)&&e.classList.remove(t)})})}),this.swup.hooks.off("content:replace",this._addClassNameToElement)}applyStyles(e){const t=document.createElement("style");t.setAttribute("data-swup-theme",""),t.appendChild(document.createTextNode(e)),document.head.prepend(t),this._addedStyleElements.push(t)}applyHTML(e){const t=document.createElement("div");t.innerHTML=e,document.body.appendChild(t),this._addedHTMLContent.push(t)}addClassName(e,t){this._classNameAddedToElements.push({selector:e,name:t}),this._addClassNameToElement()}}return class extends n{constructor(e){void 0===e&&(e={}),super(),this.name="SwupSlideTheme",this.defaults={mainElement:"#swup",reversed:!1},this.options={...this.defaults,...e}}mount(){this.applyStyles("html{--swup-slide-theme-direction:1;--swup-slide-theme-translate:60px;--swup-slide-theme-duration-fade:.3s;--swup-slide-theme-duration-slide:.4s;--swup-slide-theme-translate-forward:calc(var(--swup-slide-theme-direction)*var(--swup-slide-theme-translate));--swup-slide-theme-translate-backward:calc(var(--swup-slide-theme-translate-forward)*-1)}html.swup-theme-reverse{--swup-slide-theme-direction:-1}html.is-changing .swup-transition-main{opacity:1;transform:translateZ(0);transition:opacity var(--swup-slide-theme-duration-fade),transform var(--swup-slide-theme-duration-slide)}html.is-animating .swup-transition-main{opacity:0;transform:translate3d(0,var(--swup-slide-theme-translate-backward),0)}html.is-animating.is-leaving .swup-transition-main{transform:translate3d(0,var(--swup-slide-theme-translate-forward),0)}"),this.addClassName(this.options.mainElement,"main"),this.options.reversed&&document.documentElement.classList.add("swup-theme-reverse")}unmount(){document.documentElement.classList.remove("swup-theme-reverse")}}}); \ No newline at end of file diff --git a/source/build/js/libs/Typed.min.js b/source/build/js/libs/Typed.min.js new file mode 100644 index 00000000..e7f544a8 --- /dev/null +++ b/source/build/js/libs/Typed.min.js @@ -0,0 +1,10 @@ +/*! + * + * typed.js - A JavaScript Typing Animation Library + * Author: Matt Boldt + * Version: v2.0.12 + * Url: https://github.com/mattboldt/typed.js + * License(s): MIT + * + */ +(function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typed=e():t.Typed=e()})(this,function(){return function(t){function e(n){if(s[n])return s[n].exports;var i=s[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var s={};return e.m=t,e.c=s,e.p="",e(0)}([function(t,e,s){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var s=0;st.length)););var u=t.substring(0,e),l=t.substring(u.length+1,e+i),c=t.substring(e+i+1);t=u+l+c,i--}s.timeout=setTimeout(function(){s.toggleBlinking(!1),e>=t.length?s.doneTyping(t,e):s.keepTyping(t,e,i),s.temporaryPause&&(s.temporaryPause=!1,s.options.onTypingResumed(s.arrayPos,s))},n)},n))}},{key:"keepTyping",value:function(t,e,s){0===e&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this)),e+=s;var n=t.substr(0,e);this.replaceText(n),this.typewrite(t,e)}},{key:"doneTyping",value:function(t,e){var s=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),this.loop===!1||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){s.backspace(t,e)},this.backDelay))}},{key:"backspace",value:function(t,e){var s=this;if(this.pause.status===!0)return void this.setPauseStatus(t,e,!1);if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var n=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){e=o.htmlParser.backSpaceHtmlChars(t,e,s);var n=t.substr(0,e);if(s.replaceText(n),s.smartBackspace){var i=s.strings[s.arrayPos+1];i&&n===i.substr(0,e)?s.stopNum=e:s.stopNum=0}e>s.stopNum?(e--,s.backspace(t,e)):e<=s.stopNum&&(s.arrayPos++,s.arrayPos===s.strings.length?(s.arrayPos=0,s.options.onLastStringBackspaced(),s.shuffleStringsIfNeeded(),s.begin()):s.typewrite(s.strings[s.sequence[s.arrayPos]],e))},n)}},{key:"complete",value:function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0}},{key:"setPauseStatus",value:function(t,e,s){this.pause.typewrite=s,this.pause.curString=t,this.pause.curStrPos=e}},{key:"toggleBlinking",value:function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))}},{key:"humanizer",value:function(t){return Math.round(Math.random()*t/2)+t}},{key:"shuffleStringsIfNeeded",value:function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))}},{key:"initFadeOut",value:function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)}},{key:"replaceText",value:function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t}},{key:"bindFocusEvents",value:function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(e){t.stop()}),this.el.addEventListener("blur",function(e){t.el.value&&0!==t.el.value.length||t.start()}))}},{key:"insertCursor",value:function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,s){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e":";";t.substr(e+1).charAt(0)!==i&&(e++,!(e+1>t.length)););e++}return e}},{key:"backSpaceHtmlChars",value:function(t,e,s){if("html"!==s.contentType)return e;var n=t.substr(e).charAt(0);if(">"===n||";"===n){var i="";for(i=">"===n?"<":"&";t.substr(e-1).charAt(0)!==i&&(e--,!(e<0)););e--}return e}}]),t}();e["default"]=i;var r=new i;e.htmlParser=r}])}); \ No newline at end of file diff --git a/source/build/js/libs/anime.min.js b/source/build/js/libs/anime.min.js new file mode 100755 index 00000000..99b263aa --- /dev/null +++ b/source/build/js/libs/anime.min.js @@ -0,0 +1,8 @@ +/* + * anime.js v3.1.0 + * (c) 2019 Julian Garnier + * Released under the MIT license + * animejs.com + */ + +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.anime=e()}(this,function(){"use strict";var n={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},e={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},r=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective"],t={CSS:{},springs:{}};function a(n,e,r){return Math.min(Math.max(n,e),r)}function o(n,e){return n.indexOf(e)>-1}function u(n,e){return n.apply(null,e)}var i={arr:function(n){return Array.isArray(n)},obj:function(n){return o(Object.prototype.toString.call(n),"Object")},pth:function(n){return i.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return n.nodeType||i.svg(n)},str:function(n){return"string"==typeof n},fnc:function(n){return"function"==typeof n},und:function(n){return void 0===n},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return i.hex(n)||i.rgb(n)||i.hsl(n)},key:function(r){return!n.hasOwnProperty(r)&&!e.hasOwnProperty(r)&&"targets"!==r&&"keyframes"!==r}};function c(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(n){return parseFloat(n)}):[]}function s(n,e){var r=c(n),o=a(i.und(r[0])?1:r[0],.1,100),u=a(i.und(r[1])?100:r[1],.1,100),s=a(i.und(r[2])?10:r[2],.1,100),f=a(i.und(r[3])?0:r[3],.1,100),l=Math.sqrt(u/o),d=s/(2*Math.sqrt(u*o)),p=d<1?l*Math.sqrt(1-d*d):0,h=1,v=d<1?(d*l-f)/p:-f+l;function g(n){var r=e?e*n/1e3:n;return r=d<1?Math.exp(-r*d*l)*(h*Math.cos(p*r)+v*Math.sin(p*r)):(h+v*r)*Math.exp(-r*l),0===n||1===n?n:1-r}return e?g:function(){var e=t.springs[n];if(e)return e;for(var r=0,a=0;;)if(1===g(r+=1/6)){if(++a>=16)break}else a=0;var o=r*(1/6)*1e3;return t.springs[n]=o,o}}function f(n){return void 0===n&&(n=10),function(e){return Math.round(e*n)*(1/n)}}var l,d,p=function(){var n=11,e=1/(n-1);function r(n,e){return 1-3*e+3*n}function t(n,e){return 3*e-6*n}function a(n){return 3*n}function o(n,e,o){return((r(e,o)*n+t(e,o))*n+a(e))*n}function u(n,e,o){return 3*r(e,o)*n*n+2*t(e,o)*n+a(e)}return function(r,t,a,i){if(0<=r&&r<=1&&0<=a&&a<=1){var c=new Float32Array(n);if(r!==t||a!==i)for(var s=0;s=.001?function(n,e,r,t){for(var a=0;a<4;++a){var i=u(e,r,t);if(0===i)return e;e-=(o(e,r,t)-n)/i}return e}(t,l,r,a):0===d?l:function(n,e,r,t,a){for(var u,i,c=0;(u=o(i=e+(r-e)/2,t,a)-n)>0?r=i:e=i,Math.abs(u)>1e-7&&++c<10;);return i}(t,i,i+e,r,a)}}}(),h=(l={linear:function(){return function(n){return n}}},d={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var e,r=4;n<((e=Math.pow(2,--r))-1)/11;);return 1/Math.pow(4,3-r)-7.5625*Math.pow((3*e-2)/22-n,2)}},Elastic:function(n,e){void 0===n&&(n=1),void 0===e&&(e=.5);var r=a(n,1,10),t=a(e,.1,2);return function(n){return 0===n||1===n?n:-r*Math.pow(2,10*(n-1))*Math.sin((n-1-t/(2*Math.PI)*Math.asin(1/r))*(2*Math.PI)/t)}}},["Quad","Cubic","Quart","Quint","Expo"].forEach(function(n,e){d[n]=function(){return function(n){return Math.pow(n,e+2)}}}),Object.keys(d).forEach(function(n){var e=d[n];l["easeIn"+n]=e,l["easeOut"+n]=function(n,r){return function(t){return 1-e(n,r)(1-t)}},l["easeInOut"+n]=function(n,r){return function(t){return t<.5?e(n,r)(2*t)/2:1-e(n,r)(-2*t+2)/2}}}),l);function v(n,e){if(i.fnc(n))return n;var r=n.split("(")[0],t=h[r],a=c(n);switch(r){case"spring":return s(n,e);case"cubicBezier":return u(p,a);case"steps":return u(f,a);default:return u(t,a)}}function g(n){try{return document.querySelectorAll(n)}catch(n){return}}function m(n,e){for(var r=n.length,t=arguments.length>=2?arguments[1]:void 0,a=[],o=0;o1&&(r-=1),r<1/6?n+6*(e-n)*r:r<.5?e:r<2/3?n+(e-n)*(2/3-r)*6:n}if(0==u)e=r=t=i;else{var f=i<.5?i*(1+u):i+u-i*u,l=2*i-f;e=s(l,f,o+1/3),r=s(l,f,o),t=s(l,f,o-1/3)}return"rgba("+255*e+","+255*r+","+255*t+","+c+")"}(n):void 0;var e,r,t,a}function C(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function B(n,e){return i.fnc(n)?n(e.target,e.id,e.total):n}function P(n,e){return n.getAttribute(e)}function I(n,e,r){if(M([r,"deg","rad","turn"],C(e)))return e;var a=t.CSS[e+r];if(!i.und(a))return a;var o=document.createElement(n.tagName),u=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;u.appendChild(o),o.style.position="absolute",o.style.width=100+r;var c=100/o.offsetWidth;u.removeChild(o);var s=c*parseFloat(e);return t.CSS[e+r]=s,s}function T(n,e,r){if(e in n.style){var t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),a=n.style[e]||getComputedStyle(n).getPropertyValue(t)||"0";return r?I(n,a,r):a}}function D(n,e){return i.dom(n)&&!i.inp(n)&&(P(n,e)||i.svg(n)&&n[e])?"attribute":i.dom(n)&&M(r,e)?"transform":i.dom(n)&&"transform"!==e&&T(n,e)?"css":null!=n[e]?"object":void 0}function E(n){if(i.dom(n)){for(var e,r=n.style.transform||"",t=/(\w+)\(([^)]*)\)/g,a=new Map;e=t.exec(r);)a.set(e[1],e[2]);return a}}function F(n,e,r,t){var a,u=o(e,"scale")?1:0+(o(a=e,"translate")||"perspective"===a?"px":o(a,"rotate")||o(a,"skew")?"deg":void 0),i=E(n).get(e)||u;return r&&(r.transforms.list.set(e,i),r.transforms.last=e),t?I(n,i,t):i}function N(n,e,r,t){switch(D(n,e)){case"transform":return F(n,e,t,r);case"css":return T(n,e,r);case"attribute":return P(n,e);default:return n[e]||0}}function A(n,e){var r=/^(\*=|\+=|-=)/.exec(n);if(!r)return n;var t=C(n)||0,a=parseFloat(e),o=parseFloat(n.replace(r[0],""));switch(r[0][0]){case"+":return a+o+t;case"-":return a-o+t;case"*":return a*o+t}}function L(n,e){if(i.col(n))return O(n);if(/\s/g.test(n))return n;var r=C(n),t=r?n.substr(0,n.length-r.length):n;return e?t+e:t}function j(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function S(n){for(var e,r=n.points,t=0,a=0;a0&&(t+=j(e,o)),e=o}return t}function q(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return o=n,2*Math.PI*P(o,"r");case"rect":return 2*P(a=n,"width")+2*P(a,"height");case"line":return j({x:P(t=n,"x1"),y:P(t,"y1")},{x:P(t,"x2"),y:P(t,"y2")});case"polyline":return S(n);case"polygon":return r=(e=n).points,S(e)+j(r.getItem(r.numberOfItems-1),r.getItem(0))}var e,r,t,a,o}function $(n,e){var r=e||{},t=r.el||function(n){for(var e=n.parentNode;i.svg(e)&&i.svg(e.parentNode);)e=e.parentNode;return e}(n),a=t.getBoundingClientRect(),o=P(t,"viewBox"),u=a.width,c=a.height,s=r.viewBox||(o?o.split(" "):[0,0,u,c]);return{el:t,viewBox:s,x:s[0]/1,y:s[1]/1,w:u/s[2],h:c/s[3]}}function X(n,e){function r(r){void 0===r&&(r=0);var t=e+r>=1?e+r:0;return n.el.getPointAtLength(t)}var t=$(n.el,n.svg),a=r(),o=r(-1),u=r(1);switch(n.property){case"x":return(a.x-t.x)*t.w;case"y":return(a.y-t.y)*t.h;case"angle":return 180*Math.atan2(u.y-o.y,u.x-o.x)/Math.PI}}function Y(n,e){var r=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,t=L(i.pth(n)?n.totalLength:n,e)+"";return{original:t,numbers:t.match(r)?t.match(r).map(Number):[0],strings:i.str(n)||e?t.split(r):[]}}function Z(n){return m(n?y(i.arr(n)?n.map(b):b(n)):[],function(n,e,r){return r.indexOf(n)===e})}function Q(n){var e=Z(n);return e.map(function(n,r){return{target:n,id:r,total:e.length,transforms:{list:E(n)}}})}function V(n,e){var r=x(e);if(/^spring/.test(r.easing)&&(r.duration=s(r.easing)),i.arr(n)){var t=n.length;2===t&&!i.obj(n[0])?n={value:n}:i.fnc(e.duration)||(r.duration=e.duration/t)}var a=i.arr(n)?n:[n];return a.map(function(n,r){var t=i.obj(n)&&!i.pth(n)?n:{value:n};return i.und(t.delay)&&(t.delay=r?0:e.delay),i.und(t.endDelay)&&(t.endDelay=r===a.length-1?e.endDelay:0),t}).map(function(n){return k(n,r)})}function z(n,e){var r=[],t=e.keyframes;for(var a in t&&(e=k(function(n){for(var e=m(y(n.map(function(n){return Object.keys(n)})),function(n){return i.key(n)}).reduce(function(n,e){return n.indexOf(e)<0&&n.push(e),n},[]),r={},t=function(t){var a=e[t];r[a]=n.map(function(n){var e={};for(var r in n)i.key(r)?r==a&&(e.value=n[r]):e[r]=n[r];return e})},a=0;a-1&&(_.splice(o,1),r=_.length)}else a.tick(e);t++}n()}else U=cancelAnimationFrame(U)}return n}();function rn(r){void 0===r&&(r={});var t,o=0,u=0,i=0,c=0,s=null;function f(n){var e=window.Promise&&new Promise(function(n){return s=n});return n.finished=e,e}var l,d,p,h,v,g,y,b,M=(d=w(n,l=r),p=w(e,l),h=z(p,l),v=Q(l.targets),g=W(v,h),y=J(g,p),b=K,K++,k(d,{id:b,children:[],animatables:v,animations:g,duration:y.duration,delay:y.delay,endDelay:y.endDelay}));f(M);function x(){var n=M.direction;"alternate"!==n&&(M.direction="normal"!==n?"normal":"reverse"),M.reversed=!M.reversed,t.forEach(function(n){return n.reversed=M.reversed})}function O(n){return M.reversed?M.duration-n:n}function C(){o=0,u=O(M.currentTime)*(1/rn.speed)}function B(n,e){e&&e.seek(n-e.timelineOffset)}function P(n){for(var e=0,r=M.animations,t=r.length;e2||(b=Math.round(b*p)/p)),h.push(b)}var k=d.length;if(k){g=d[0];for(var O=0;O0&&(M.began=!0,I("begin")),!M.loopBegan&&M.currentTime>0&&(M.loopBegan=!0,I("loopBegin")),d<=r&&0!==M.currentTime&&P(0),(d>=l&&M.currentTime!==e||!e)&&P(e),d>r&&d=e&&(u=0,M.remaining&&!0!==M.remaining&&M.remaining--,M.remaining?(o=i,I("loopComplete"),M.loopBegan=!1,"alternate"===M.direction&&x()):(M.paused=!0,M.completed||(M.completed=!0,I("loopComplete"),I("complete"),!M.passThrough&&"Promise"in window&&(s(),f(M)))))}return M.reset=function(){var n=M.direction;M.passThrough=!1,M.currentTime=0,M.progress=0,M.paused=!0,M.began=!1,M.loopBegan=!1,M.changeBegan=!1,M.completed=!1,M.changeCompleted=!1,M.reversePlayback=!1,M.reversed="reverse"===n,M.remaining=M.loop,t=M.children;for(var e=c=t.length;e--;)M.children[e].reset();(M.reversed&&!0!==M.loop||"alternate"===n&&1===M.loop)&&M.remaining++,P(M.reversed?M.duration:0)},M.set=function(n,e){return R(n,e),M},M.tick=function(n){i=n,o||(o=i),T((i+(u-o))*rn.speed)},M.seek=function(n){T(O(n))},M.pause=function(){M.paused=!0,C()},M.play=function(){M.paused&&(M.completed&&M.reset(),M.paused=!1,_.push(M),C(),U||en())},M.reverse=function(){x(),C()},M.restart=function(){M.reset(),M.play()},M.reset(),M.autoplay&&M.play(),M}function tn(n,e){for(var r=e.length;r--;)M(n,e[r].animatable.target)&&e.splice(r,1)}return"undefined"!=typeof document&&document.addEventListener("visibilitychange",function(){document.hidden?(_.forEach(function(n){return n.pause()}),nn=_.slice(0),rn.running=_=[]):nn.forEach(function(n){return n.play()})}),rn.version="3.1.0",rn.speed=1,rn.running=_,rn.remove=function(n){for(var e=Z(n),r=_.length;r--;){var t=_[r],a=t.animations,o=t.children;tn(e,a);for(var u=o.length;u--;){var i=o[u],c=i.animations;tn(e,c),c.length||i.children.length||o.splice(u,1)}a.length||o.length||t.pause()}},rn.get=N,rn.set=R,rn.convertPx=I,rn.path=function(n,e){var r=i.str(n)?g(n)[0]:n,t=e||100;return function(n){return{property:n,el:r,svg:$(r),totalLength:q(r)*(t/100)}}},rn.setDashoffset=function(n){var e=q(n);return n.setAttribute("stroke-dasharray",e),e},rn.stagger=function(n,e){void 0===e&&(e={});var r=e.direction||"normal",t=e.easing?v(e.easing):null,a=e.grid,o=e.axis,u=e.from||0,c="first"===u,s="center"===u,f="last"===u,l=i.arr(n),d=l?parseFloat(n[0]):parseFloat(n),p=l?parseFloat(n[1]):0,h=C(l?n[1]:n)||0,g=e.start||0+(l?d:0),m=[],y=0;return function(n,e,i){if(c&&(u=0),s&&(u=(i-1)/2),f&&(u=i-1),!m.length){for(var v=0;v-1&&_.splice(o,1);for(var s=0;sWr in ln?XY(ln,Wr,{enumerable:!0,configurable:!0,writable:!0,value:Bi}):ln[Wr]=Bi;var za=(ln,Wr,Bi)=>(KY(ln,typeof Wr!="symbol"?Wr+"":Wr,Bi),Bi);var ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wr(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Bi={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(ln,function(){var r;function n(){return r.apply(null,arguments)}function i(h){return h instanceof Array||Object.prototype.toString.call(h)==="[object Array]"}function s(h){return h!=null&&Object.prototype.toString.call(h)==="[object Object]"}function a(h,y){return Object.prototype.hasOwnProperty.call(h,y)}function o(h){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(h).length===0;for(var y in h)if(a(h,y))return;return 1}function l(h){return h===void 0}function u(h){return typeof h=="number"||Object.prototype.toString.call(h)==="[object Number]"}function d(h){return h instanceof Date||Object.prototype.toString.call(h)==="[object Date]"}function f(h,y){for(var _=[],S=h.length,R=0;R>>0,S=0;S<_;S++)if(S in y&&h.call(this,y[S],S,y))return!0;return!1},E=n.momentProperties=[],I=!1;function V(h,y){var _,S,R,it=E.length;if(l(y._isAMomentObject)||(h._isAMomentObject=y._isAMomentObject),l(y._i)||(h._i=y._i),l(y._f)||(h._f=y._f),l(y._l)||(h._l=y._l),l(y._strict)||(h._strict=y._strict),l(y._tzm)||(h._tzm=y._tzm),l(y._isUTC)||(h._isUTC=y._isUTC),l(y._offset)||(h._offset=y._offset),l(y._pf)||(h._pf=b(y)),l(y._locale)||(h._locale=y._locale),0Jt(h)?(it=h+1,mt-Jt(h)):(it=h,mt);return{year:it,dayOfYear:Ct}}function Be(h,y,_){var S,R,it=De(h.year(),y,_),it=Math.floor((h.dayOfYear()-it-1)/7)+1;return it<1?S=it+Re(R=h.year()-1,y,_):it>Re(h.year(),y,_)?(S=it-Re(h.year(),y,_),R=h.year()+1):(R=h.year(),S=it),{week:S,year:R}}function Re(h,R,_){var S=De(h,R,_),R=De(h+1,R,_);return(Jt(h)-S+R)/7}j("w",["ww",2],"wo","week"),j("W",["WW",2],"Wo","isoWeek"),ut("week","w"),ut("isoWeek","W"),P("week",5),P("isoWeek",5),st("w",U),st("ww",U,ce),st("W",U),st("WW",U,ce),Ee(["w","ww","W","WW"],function(h,y,_,S){y[S.substr(0,1)]=F(h)});function Pe(h,y){return h.slice(y,7).concat(h.slice(0,y))}j("d",0,"do","day"),j("dd",0,0,function(h){return this.localeData().weekdaysMin(this,h)}),j("ddd",0,0,function(h){return this.localeData().weekdaysShort(this,h)}),j("dddd",0,0,function(h){return this.localeData().weekdays(this,h)}),j("e",0,0,"weekday"),j("E",0,0,"isoWeekday"),ut("day","d"),ut("weekday","e"),ut("isoWeekday","E"),P("day",11),P("weekday",11),P("isoWeekday",11),st("d",U),st("e",U),st("E",U),st("dd",function(h,y){return y.weekdaysMinRegex(h)}),st("ddd",function(h,y){return y.weekdaysShortRegex(h)}),st("dddd",function(h,y){return y.weekdaysRegex(h)}),Ee(["dd","ddd","dddd"],function(h,y,_,S){S=_._locale.weekdaysParse(h,S,_._strict),S!=null?y.d=S:b(_).invalidWeekday=h}),Ee(["d","e","E"],function(h,y,_,S){y[S]=F(h)});var Ye="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ie="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),$e="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ar=pt,zt=pt,Z=pt;function At(){function h(It,ue){return ue.length-It.length}for(var y,_,S,R=[],it=[],mt=[],Ct=[],Pt=0;Pt<7;Pt++)S=g([2e3,1]).day(Pt),y=Xt(this.weekdaysMin(S,"")),_=Xt(this.weekdaysShort(S,"")),S=Xt(this.weekdays(S,"")),R.push(y),it.push(_),mt.push(S),Ct.push(y),Ct.push(_),Ct.push(S);R.sort(h),it.sort(h),mt.sort(h),Ct.sort(h),this._weekdaysRegex=new RegExp("^("+Ct.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+mt.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+it.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+R.join("|")+")","i")}function Nt(){return this.hours()%12||12}function pe(h,y){j(h,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),y)})}function Me(h,y){return y._meridiemParse}j("H",["HH",2],0,"hour"),j("h",["hh",2],0,Nt),j("k",["kk",2],0,function(){return this.hours()||24}),j("hmm",0,0,function(){return""+Nt.apply(this)+Q(this.minutes(),2)}),j("hmmss",0,0,function(){return""+Nt.apply(this)+Q(this.minutes(),2)+Q(this.seconds(),2)}),j("Hmm",0,0,function(){return""+this.hours()+Q(this.minutes(),2)}),j("Hmmss",0,0,function(){return""+this.hours()+Q(this.minutes(),2)+Q(this.seconds(),2)}),pe("a",!0),pe("A",!1),ut("hour","h"),P("hour",13),st("a",Me),st("A",Me),st("H",U),st("h",U),st("k",U),st("HH",U,ce),st("hh",U,ce),st("kk",U,ce),st("hmm",Yt),st("hmmss",et),st("Hmm",Yt),st("Hmmss",et),Gt(["H","HH"],ft),Gt(["k","kk"],function(h,y,_){h=F(h),y[ft]=h===24?0:h}),Gt(["a","A"],function(h,y,_){_._isPm=_._locale.isPM(h),_._meridiem=h}),Gt(["h","hh"],function(h,y,_){y[ft]=F(h),b(_).bigHour=!0}),Gt("hmm",function(h,y,_){var S=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S)),b(_).bigHour=!0}),Gt("hmmss",function(h,y,_){var S=h.length-4,R=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S,2)),y[bt]=F(h.substr(R)),b(_).bigHour=!0}),Gt("Hmm",function(h,y,_){var S=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S))}),Gt("Hmmss",function(h,y,_){var S=h.length-4,R=h.length-2;y[ft]=F(h.substr(0,S)),y[Lt]=F(h.substr(S,2)),y[bt]=F(h.substr(R))}),pt=O("Hours",!0);var Le,We={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:ee,monthsShort:fe,week:{dow:0,doy:6},weekdays:Ye,weekdaysMin:$e,weekdaysShort:Ie,meridiemParse:/[ap]\.?m?\.?/i},ve={},Ne={};function Xi(h){return h&&h.toLowerCase().replace("_","-")}function Ki(h){for(var y,_,S,R,it=0;it=y&&function(mt,Ct){for(var Pt=Math.min(mt.length,Ct.length),It=0;It=y-1)break;y--}it++}return Le}function zr(h){var y;if(ve[h]===void 0&&!0&&t&&t.exports&&h.match("^[^/\\\\]*$")!=null)try{y=Le._abbr,Wr("./locale/"+h),qt(y)}catch{ve[h]=null}return ve[h]}function qt(h,y){return h&&((y=l(y)?oe(h):te(h,y))?Le=y:typeof console<"u"&&console.warn&&console.warn("Locale "+h+" not found. Did you forget to load it?")),Le._abbr}function te(h,y){if(y===null)return delete ve[h],null;var _,S=We;if(y.abbr=h,ve[h]!=null)D("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),S=ve[h]._config;else if(y.parentLocale!=null)if(ve[y.parentLocale]!=null)S=ve[y.parentLocale]._config;else{if((_=zr(y.parentLocale))==null)return Ne[y.parentLocale]||(Ne[y.parentLocale]=[]),Ne[y.parentLocale].push({name:h,config:y}),null;S=_._config}return ve[h]=new M(v(S,y)),Ne[h]&&Ne[h].forEach(function(R){te(R.name,R.config)}),qt(h),ve[h]}function oe(h){var y;if(!(h=h&&h._locale&&h._locale._abbr?h._locale._abbr:h))return Le;if(!i(h)){if(y=zr(h))return y;h=[h]}return Ki(h)}function Rt(h){var y=h._a;return y&&b(h).overflow===-2&&(y=y[Ft]<0||11dt(y[Vt],y[Ft])?xt:y[ft]<0||24Re(it,Pt,It)?b(S)._overflowWeeks=!0:ue!=null?b(S)._overflowWeekday=!0:(re=ae(it,mt,Ct,Pt,It),S._a[Vt]=re.year,S._dayOfYear=re.dayOfYear)),h._dayOfYear!=null&&(R=Qn(h._a[Vt],_[Vt]),(h._dayOfYear>Jt(R)||h._dayOfYear===0)&&(b(h)._overflowDayOfYear=!0),ue=Xr(R,0,h._dayOfYear),h._a[Ft]=ue.getUTCMonth(),h._a[xt]=ue.getUTCDate()),y=0;y<3&&h._a[y]==null;++y)h._a[y]=He[y]=_[y];for(;y<7;y++)h._a[y]=He[y]=h._a[y]==null?y===2?1:0:h._a[y];h._a[ft]===24&&h._a[Lt]===0&&h._a[bt]===0&&h._a[Ut]===0&&(h._nextDay=!0,h._a[ft]=0),h._d=(h._useUTC?Xr:Nn).apply(null,He),it=h._useUTC?h._d.getUTCDay():h._d.getDay(),h._tzm!=null&&h._d.setUTCMinutes(h._d.getUTCMinutes()-h._tzm),h._nextDay&&(h._a[ft]=24),h._w&&h._w.d!==void 0&&h._w.d!==it&&(b(h).weekdayMismatch=!0)}}function ll(h){if(h._f===n.ISO_8601)Gu(h);else if(h._f===n.RFC_2822)Zn(h);else{h._a=[],b(h).empty=!0;for(var y,_,S,R,it,mt=""+h._i,Ct=mt.length,Pt=0,It=rt(h._f,h._locale).match(x)||[],ue=It.length,re=0;reh.valueOf():h.valueOf()"}),C.toJSON=function(){return this.isValid()?this.toISOString():null},C.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},C.unix=function(){return Math.floor(this.valueOf()/1e3)},C.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},C.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},C.eraName=function(){for(var h,y=this.localeData().eras(),_=0,S=y.length;_this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},C.isLocal=function(){return!!this.isValid()&&!this._isUTC},C.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},C.isUtc=cb,C.isUTC=cb,C.zoneAbbr=function(){return this._isUTC?"UTC":""},C.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},C.dates=W("dates accessor is deprecated. Use date instead.",ts),C.months=W("months accessor is deprecated. Use month instead",se),C.years=W("years accessor is deprecated. Use year instead",Ku),C.zone=W("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(h,y){return h!=null?(this.utcOffset(h=typeof h!="string"?-h:h,y),this):-this.utcOffset()}),C.isDSTShifted=W("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var h,y={};return V(y,this),(y=qu(y))._a?(h=(y._isUTC?g:Se)(y._a),this._isDSTShifted=this.isValid()&&0{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},Qu=function(t="fatal"){let e=Jn.fatal;typeof t=="string"?(t=t.toLowerCase(),t in Jn&&(e=Jn[t])):typeof t=="number"&&(e=t),B.trace=()=>{},B.debug=()=>{},B.info=()=>{},B.warn=()=>{},B.error=()=>{},B.fatal=()=>{},e<=Jn.fatal&&(B.fatal=console.error?console.error.bind(console,Qr("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Qr("FATAL"))),e<=Jn.error&&(B.error=console.error?console.error.bind(console,Qr("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Qr("ERROR"))),e<=Jn.warn&&(B.warn=console.warn?console.warn.bind(console,Qr("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Qr("WARN"))),e<=Jn.info&&(B.info=console.info?console.info.bind(console,Qr("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Qr("INFO"))),e<=Jn.debug&&(B.debug=console.debug?console.debug.bind(console,Qr("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Qr("DEBUG"))),e<=Jn.trace&&(B.trace=console.debug?console.debug.bind(console,Qr("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Qr("TRACE")))},Qr=t=>`%c${cn().format("ss.SSS")} : ${t} : `;var Ju={};Object.defineProperty(Ju,"__esModule",{value:!0});var ti=Ju.sanitizeUrl=void 0,Eb=/^([^\w]*)(javascript|data|vbscript)/im,Cb=/&#(\w+)(^\w|;)?/g,Sb=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,Ab=/^([^:]+):/gm,Lb=[".","/"];function Db(t){return Lb.indexOf(t[0])>-1}function Mb(t){return t.replace(Cb,function(e,r){return String.fromCharCode(r)})}function Nb(t){var e=Mb(t||"").replace(Sb,"").trim();if(!e)return"about:blank";if(Db(e))return e;var r=e.match(Ab);if(!r)return e;var n=r[0];return Eb.test(n)?"about:blank":e}ti=Ju.sanitizeUrl=Nb;function ul(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Bb(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function th(t){let e,r,n;t.length!==2?(e=ul,r=(o,l)=>ul(t(o),l),n=(o,l)=>t(o)-l):(e=t===ul||t===Bb?t:Ib,r=t,n=t);function i(o,l,u=0,d=o.length){if(u>>1;r(o[f],l)<0?u=f+1:d=f}while(u>>1;r(o[f],l)<=0?u=f+1:d=f}while(uu&&n(o[f-1],l)>-n(o[f],l)?f-1:f}return{left:i,center:a,right:s}}function Ib(){return 0}function Ob(t){return t===null?NaN:+t}const Rb=th(ul).right;th(Ob).center;const Fb=Rb;class Hd extends Map{constructor(e,r=Vb){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),e!=null)for(const[n,i]of e)this.set(n,i)}get(e){return super.get(Gd(this,e))}has(e){return super.has(Gd(this,e))}set(e,r){return super.set(Pb(this,e),r)}delete(e){return super.delete(Yb(this,e))}}function Gd({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):r}function Pb({_intern:t,_key:e},r){const n=e(r);return t.has(n)?t.get(n):(t.set(n,r),r)}function Yb({_intern:t,_key:e},r){const n=e(r);return t.has(n)&&(r=t.get(n),t.delete(n)),r}function Vb(t){return t!==null&&typeof t=="object"?t.valueOf():t}var eh=Math.sqrt(50),rh=Math.sqrt(10),nh=Math.sqrt(2);function Ub(t,e,r){var n,i=-1,s,a,o;if(e=+e,t=+t,r=+r,t===e&&r>0)return[t];if((n=e0){let l=Math.round(t/o),u=Math.round(e/o);for(l*oe&&--u,a=new Array(s=u-l+1);++ie&&--u,a=new Array(s=u-l+1);++i=0?(s>=eh?10:s>=rh?5:s>=nh?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(s>=eh?10:s>=rh?5:s>=nh?2:1)}function ih(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),s=n/i;return s>=eh?i*=10:s>=rh?i*=5:s>=nh&&(i*=2),e=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r=i)&&(r=i)}return r}function Wb(t,e){let r;if(e===void 0)for(const n of t)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function Hb(t){return t}var hl=1,sh=2,ah=3,dl=4,jd=1e-6;function Gb(t){return"translate("+t+",0)"}function qb(t){return"translate(0,"+t+")"}function jb(t){return e=>+t(e)}function $b(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function Xb(){return!this.__axis}function $d(t,e){var r=[],n=null,i=null,s=6,a=6,o=3,l=typeof window<"u"&&window.devicePixelRatio>1?0:.5,u=t===hl||t===dl?-1:1,d=t===dl||t===sh?"x":"y",f=t===hl||t===ah?Gb:qb;function p(g){var b=n==null?e.ticks?e.ticks.apply(e,r):e.domain():n,k=i==null?e.tickFormat?e.tickFormat.apply(e,r):Hb:i,T=Math.max(s,0)+o,L=e.range(),E=+L[0]+l,I=+L[L.length-1]+l,V=(e.bandwidth?$b:jb)(e.copy(),l),H=g.selection?g.selection():g,G=H.selectAll(".domain").data([null]),Y=H.selectAll(".tick").data(b,e).order(),W=Y.exit(),N=Y.enter().append("g").attr("class","tick"),D=Y.select("line"),w=Y.select("text");G=G.merge(G.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),Y=Y.merge(N),D=D.merge(N.append("line").attr("stroke","currentColor").attr(d+"2",u*s)),w=w.merge(N.append("text").attr("fill","currentColor").attr(d,u*T).attr("dy",t===hl?"0em":t===ah?"0.71em":"0.32em")),g!==H&&(G=G.transition(g),Y=Y.transition(g),D=D.transition(g),w=w.transition(g),W=W.transition(g).attr("opacity",jd).attr("transform",function(v){return isFinite(v=V(v))?f(v+l):this.getAttribute("transform")}),N.attr("opacity",jd).attr("transform",function(v){var M=this.parentNode.__axis;return f((M&&isFinite(M=M(v))?M:V(v))+l)})),W.remove(),G.attr("d",t===dl||t===sh?a?"M"+u*a+","+E+"H"+l+"V"+I+"H"+u*a:"M"+l+","+E+"V"+I:a?"M"+E+","+u*a+"V"+l+"H"+I+"V"+u*a:"M"+E+","+l+"H"+I),Y.attr("opacity",1).attr("transform",function(v){return f(V(v)+l)}),D.attr(d+"2",u*s),w.attr(d,u*T).text(k),H.filter(Xb).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===sh?"start":t===dl?"end":"middle"),H.each(function(){this.__axis=V})}return p.scale=function(g){return arguments.length?(e=g,p):e},p.ticks=function(){return r=Array.from(arguments),p},p.tickArguments=function(g){return arguments.length?(r=g==null?[]:Array.from(g),p):r.slice()},p.tickValues=function(g){return arguments.length?(n=g==null?null:Array.from(g),p):n&&n.slice()},p.tickFormat=function(g){return arguments.length?(i=g,p):i},p.tickSize=function(g){return arguments.length?(s=a=+g,p):s},p.tickSizeInner=function(g){return arguments.length?(s=+g,p):s},p.tickSizeOuter=function(g){return arguments.length?(a=+g,p):a},p.tickPadding=function(g){return arguments.length?(o=+g,p):o},p.offset=function(g){return arguments.length?(l=+g,p):l},p}function Kb(t){return $d(hl,t)}function Zb(t){return $d(ah,t)}var Qb={value:()=>{}};function Xd(){for(var t=0,e=arguments.length,r={},n;t=0&&(n=r.slice(i+1),r=r.slice(0,i)),r&&!e.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:n}})}fl.prototype=Xd.prototype={constructor:fl,on:function(t,e){var r=this._,n=Jb(t+"",r),i,s=-1,a=n.length;if(arguments.length<2){for(;++s0)for(var r=new Array(i),n=0,i,s;n=0&&(e=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Zd.hasOwnProperty(e)?{space:Zd[e],local:t}:t}function e5(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===oh&&e.documentElement.namespaceURI===oh?e.createElement(t):e.createElementNS(r,t)}}function r5(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Qd(t){var e=pl(t);return(e.local?r5:e5)(e)}function n5(){}function lh(t){return t==null?n5:function(){return this.querySelector(t)}}function i5(t){typeof t!="function"&&(t=lh(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i=I&&(I=E+1);!(H=T[I])&&++I=0;)(a=n[i])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function A5(t){t||(t=L5);function e(f,p){return f&&p?t(f.__data__,p.__data__):!f-!p}for(var r=this._groups,n=r.length,i=new Array(n),s=0;se?1:t>=e?0:NaN}function D5(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function M5(){return Array.from(this)}function N5(){for(var t=this._groups,e=0,r=t.length;e1?this.each((e==null?W5:typeof e=="function"?G5:H5)(t,e,r==null?"":r)):Vs(this.node(),t)}function Vs(t,e){return t.style.getPropertyValue(e)||sf(t).getComputedStyle(t,null).getPropertyValue(e)}function j5(t){return function(){delete this[t]}}function $5(t,e){return function(){this[t]=e}}function X5(t,e){return function(){var r=e.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function K5(t,e){return arguments.length>1?this.each((e==null?j5:typeof e=="function"?X5:$5)(t,e)):this.node()[t]}function af(t){return t.trim().split(/^|\s+/)}function ch(t){return t.classList||new of(t)}function of(t){this._node=t,this._names=af(t.getAttribute("class")||"")}of.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function lf(t,e){for(var r=ch(t),n=-1,i=e.length;++n=0&&(r=e.slice(n+1),e=e.slice(0,n)),{type:e,name:r}})}function T_(t){return function(){var e=this.__on;if(!!e){for(var r=0,n=-1,i=e.length,s;r>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?bl(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?bl(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=B_.exec(t))?new vr(e[1],e[2],e[3],1):(e=I_.exec(t))?new vr(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=O_.exec(t))?bl(e[1],e[2],e[3],e[4]):(e=R_.exec(t))?bl(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=F_.exec(t))?bf(e[1],e[2]/100,e[3]/100,1):(e=P_.exec(t))?bf(e[1],e[2]/100,e[3]/100,e[4]):hf.hasOwnProperty(t)?pf(hf[t]):t==="transparent"?new vr(NaN,NaN,NaN,0):null}function pf(t){return new vr(t>>16&255,t>>8&255,t&255,1)}function bl(t,e,r,n){return n<=0&&(t=e=r=NaN),new vr(t,e,r,n)}function gf(t){return t instanceof es||(t=rs(t)),t?(t=t.rgb(),new vr(t.r,t.g,t.b,t.opacity)):new vr}function dh(t,e,r,n){return arguments.length===1?gf(t):new vr(t,e,r,n==null?1:n)}function vr(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}Ha(vr,dh,yl(es,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new vr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ga:Math.pow(Ga,t),new vr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new vr(ns(this.r),ns(this.g),ns(this.b),_l(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:yf,formatHex:yf,formatHex8:U_,formatRgb:mf,toString:mf}));function yf(){return`#${is(this.r)}${is(this.g)}${is(this.b)}`}function U_(){return`#${is(this.r)}${is(this.g)}${is(this.b)}${is((isNaN(this.opacity)?1:this.opacity)*255)}`}function mf(){const t=_l(this.opacity);return`${t===1?"rgb(":"rgba("}${ns(this.r)}, ${ns(this.g)}, ${ns(this.b)}${t===1?")":`, ${t})`}`}function _l(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ns(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function is(t){return t=ns(t),(t<16?"0":"")+t.toString(16)}function bf(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new un(t,e,r,n)}function _f(t){if(t instanceof un)return new un(t.h,t.s,t.l,t.opacity);if(t instanceof es||(t=rs(t)),!t)return new un;if(t instanceof un)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),a=NaN,o=s-i,l=(s+i)/2;return o?(e===s?a=(r-n)/o+(r0&&l<1?0:a,new un(a,o,l,t.opacity)}function z_(t,e,r,n){return arguments.length===1?_f(t):new un(t,e,r,n==null?1:n)}function un(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}Ha(un,z_,yl(es,{brighter(t){return t=t==null?ml:Math.pow(ml,t),new un(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ga:Math.pow(Ga,t),new un(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new vr(fh(t>=240?t-240:t+120,i,n),fh(t,i,n),fh(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new un(xf(this.h),xl(this.s),xl(this.l),_l(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=_l(this.opacity);return`${t===1?"hsl(":"hsla("}${xf(this.h)}, ${xl(this.s)*100}%, ${xl(this.l)*100}%${t===1?")":`, ${t})`}`}}));function xf(t){return t=(t||0)%360,t<0?t+360:t}function xl(t){return Math.max(0,Math.min(1,t||0))}function fh(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}const W_=Math.PI/180,H_=180/Math.PI,vl=18,vf=.96422,kf=1,wf=.82521,Tf=4/29,zs=6/29,Ef=3*zs*zs,G_=zs*zs*zs;function Cf(t){if(t instanceof Fn)return new Fn(t.l,t.a,t.b,t.opacity);if(t instanceof ei)return Sf(t);t instanceof vr||(t=gf(t));var e=mh(t.r),r=mh(t.g),n=mh(t.b),i=ph((.2225045*e+.7168786*r+.0606169*n)/kf),s,a;return e===r&&r===n?s=a=i:(s=ph((.4360747*e+.3850649*r+.1430804*n)/vf),a=ph((.0139322*e+.0971045*r+.7141733*n)/wf)),new Fn(116*i-16,500*(s-i),200*(i-a),t.opacity)}function q_(t,e,r,n){return arguments.length===1?Cf(t):new Fn(t,e,r,n==null?1:n)}function Fn(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}Ha(Fn,q_,yl(es,{brighter(t){return new Fn(this.l+vl*(t==null?1:t),this.a,this.b,this.opacity)},darker(t){return new Fn(this.l-vl*(t==null?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return e=vf*gh(e),t=kf*gh(t),r=wf*gh(r),new vr(yh(3.1338561*e-1.6168667*t-.4906146*r),yh(-.9787684*e+1.9161415*t+.033454*r),yh(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}}));function ph(t){return t>G_?Math.pow(t,1/3):t/Ef+Tf}function gh(t){return t>zs?t*t*t:Ef*(t-Tf)}function yh(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function mh(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function j_(t){if(t instanceof ei)return new ei(t.h,t.c,t.l,t.opacity);if(t instanceof Fn||(t=Cf(t)),t.a===0&&t.b===0)return new ei(NaN,0()=>t;function Af(t,e){return function(r){return t+r*e}}function $_(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function X_(t,e){var r=e-t;return r?Af(t,r>180||r<-180?r-360*Math.round(r/360):r):kl(isNaN(t)?e:t)}function K_(t){return(t=+t)==1?ja:function(e,r){return r-e?$_(e,r,t):kl(isNaN(e)?r:e)}}function ja(t,e){var r=e-t;return r?Af(t,r):kl(isNaN(t)?e:t)}const wl=function t(e){var r=K_(e);function n(i,s){var a=r((i=dh(i)).r,(s=dh(s)).r),o=r(i.g,s.g),l=r(i.b,s.b),u=ja(i.opacity,s.opacity);return function(d){return i.r=a(d),i.g=o(d),i.b=l(d),i.opacity=u(d),i+""}}return n.gamma=t,n}(1);function Z_(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(s){for(i=0;ir&&(s=e.slice(r,s),o[a]?o[a]+=s:o[++a]=s),(n=n[0])===(i=i[0])?o[a]?o[a]+=i:o[++a]=i:(o[++a]=null,l.push({i:a,x:hn(n,i)})),r=xh.lastIndex;return r180?d+=360:d-u>180&&(u+=360),p.push({i:f.push(i(f)+"rotate(",null,n)-2,x:hn(u,d)})):d&&f.push(i(f)+"rotate("+d+n)}function o(u,d,f,p){u!==d?p.push({i:f.push(i(f)+"skewX(",null,n)-2,x:hn(u,d)}):d&&f.push(i(f)+"skewX("+d+n)}function l(u,d,f,p,g,b){if(u!==f||d!==p){var k=g.push(i(g)+"scale(",null,",",null,")");b.push({i:k-4,x:hn(u,f)},{i:k-2,x:hn(d,p)})}else(f!==1||p!==1)&&g.push(i(g)+"scale("+f+","+p+")")}return function(u,d){var f=[],p=[];return u=t(u),d=t(d),s(u.translateX,u.translateY,d.translateX,d.translateY,f,p),a(u.rotate,d.rotate,f,p),o(u.skewX,d.skewX,f,p),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,p),u=d=null,function(g){for(var b=-1,k=p.length,T;++b=0&&t._call.call(void 0,e),t=t._next;--Ws}function Rf(){ss=(Cl=Za.now())+Sl,Ws=$a=0;try{dx()}finally{Ws=0,px(),ss=0}}function fx(){var t=Za.now(),e=t-Cl;e>Bf&&(Sl-=e,Cl=t)}function px(){for(var t,e=El,r,n=1/0;e;)e._call?(n>e._time&&(n=e._time),t=e,e=e._next):(r=e._next,e._next=null,e=t?t._next=r:El=r);Ka=t,Th(n)}function Th(t){if(!Ws){$a&&($a=clearTimeout($a));var e=t-ss;e>24?(t<1/0&&($a=setTimeout(Rf,t-Za.now()-Sl)),Xa&&(Xa=clearInterval(Xa))):(Xa||(Cl=Za.now(),Xa=setInterval(fx,Bf)),Ws=1,If(Rf))}}function Ff(t,e,r){var n=new Al;return e=e==null?0:+e,n.restart(i=>{n.stop(),t(i+e)},e,r),n}var gx=Xd("start","end","cancel","interrupt"),yx=[],Pf=0,Yf=1,Eh=2,Ll=3,Vf=4,Ch=5,Dl=6;function Ml(t,e,r,n,i,s){var a=t.__transition;if(!a)t.__transition={};else if(r in a)return;mx(t,r,{name:e,index:n,group:i,on:gx,tween:yx,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:Pf})}function Sh(t,e){var r=dn(t,e);if(r.state>Pf)throw new Error("too late; already scheduled");return r}function Pn(t,e){var r=dn(t,e);if(r.state>Ll)throw new Error("too late; already running");return r}function dn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function mx(t,e,r){var n=t.__transition,i;n[e]=r,r.timer=Of(s,0,r.time);function s(u){r.state=Yf,r.timer.restart(a,r.delay,r.time),r.delay<=u&&a(u-r.delay)}function a(u){var d,f,p,g;if(r.state!==Yf)return l();for(d in n)if(g=n[d],g.name===r.name){if(g.state===Ll)return Ff(a);g.state===Vf?(g.state=Dl,g.timer.stop(),g.on.call("interrupt",t,t.__data__,g.index,g.group),delete n[d]):+dEh&&n.state=0&&(e=e.slice(0,r)),!e||e==="start"})}function $x(t,e,r){var n,i,s=jx(e)?Sh:Pn;return function(){var a=s(this,t),o=a.on;o!==n&&(i=(n=o).copy()).on(e,r),a.on=i}}function Xx(t,e){var r=this._id;return arguments.length<2?dn(this.node(),r).on.on(t):this.each($x(r,t,e))}function Kx(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}function Zx(){return this.on("end.remove",Kx(this._id))}function Qx(t){var e=this._name,r=this._id;typeof t!="function"&&(t=lh(t));for(var n=this._groups,i=n.length,s=new Array(i),a=0;aas)if(!(Math.abs(d*o-l*u)>as)||!i)this._+="L"+(this._x1=t)+","+(this._y1=e);else{var p=r-s,g=n-a,b=o*o+l*l,k=p*p+g*g,T=Math.sqrt(b),L=Math.sqrt(f),E=i*Math.tan((Lh-Math.acos((b+f-k)/(2*T*L)))/2),I=E/L,V=E/T;Math.abs(I-1)>as&&(this._+="L"+(t+I*u)+","+(e+I*d)),this._+="A"+i+","+i+",0,0,"+ +(d*p>u*g)+","+(this._x1=t+V*o)+","+(this._y1=e+V*l)}},arc:function(t,e,r,n,i,s){t=+t,e=+e,r=+r,s=!!s;var a=r*Math.cos(n),o=r*Math.sin(n),l=t+a,u=e+o,d=1^s,f=s?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);this._x1===null?this._+="M"+l+","+u:(Math.abs(this._x1-l)>as||Math.abs(this._y1-u)>as)&&(this._+="L"+l+","+u),r&&(f<0&&(f=f%Dh+Dh),f>w6?this._+="A"+r+","+r+",0,1,"+d+","+(t-a)+","+(e-o)+"A"+r+","+r+",0,1,"+d+","+(this._x1=l)+","+(this._y1=u):f>as&&(this._+="A"+r+","+r+",0,"+ +(f>=Lh)+","+d+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};function T6(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function E6(t,e){return fetch(t,e).then(T6)}function C6(t){return(e,r)=>E6(e,r).then(n=>new DOMParser().parseFromString(n,t))}var S6=C6("image/svg+xml");function A6(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Nl(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Hs(t){return t=Nl(Math.abs(t)),t?t[1]:NaN}function L6(t,e){return function(r,n){for(var i=r.length,s=[],a=0,o=t[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),s.push(r.substring(i-=o,i+o)),!((l+=o+1)>n));)o=t[a=(a+1)%t.length];return s.reverse().join(e)}}function D6(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var M6=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Bl(t){if(!(e=M6.exec(t)))throw new Error("invalid format: "+t);var e;return new Bh({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Bl.prototype=Bh.prototype;function Bh(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Bh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function N6(t){t:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var Hf;function B6(t,e){var r=Nl(t,e);if(!r)return t+"";var n=r[0],i=r[1],s=i-(Hf=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return s===a?n:s>a?n+new Array(s-a+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+Nl(t,Math.max(0,e+s-1))[0]}function Gf(t,e){var r=Nl(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const qf={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:A6,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Gf(t*100,e),r:Gf,s:B6,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function jf(t){return t}var $f=Array.prototype.map,Xf=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function I6(t){var e=t.grouping===void 0||t.thousands===void 0?jf:L6($f.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",s=t.numerals===void 0?jf:D6($f.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"\u2212":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function u(f){f=Bl(f);var p=f.fill,g=f.align,b=f.sign,k=f.symbol,T=f.zero,L=f.width,E=f.comma,I=f.precision,V=f.trim,H=f.type;H==="n"?(E=!0,H="g"):qf[H]||(I===void 0&&(I=12),V=!0,H="g"),(T||p==="0"&&g==="=")&&(T=!0,p="0",g="=");var G=k==="$"?r:k==="#"&&/[boxX]/.test(H)?"0"+H.toLowerCase():"",Y=k==="$"?n:/[%p]/.test(H)?a:"",W=qf[H],N=/[defgprs%]/.test(H);I=I===void 0?6:/[gprs]/.test(H)?Math.max(1,Math.min(21,I)):Math.max(0,Math.min(20,I));function D(w){var v=G,M=Y,m,Q,x;if(H==="c")M=W(w)+M,w="";else{w=+w;var ct=w<0||1/w<0;if(w=isNaN(w)?l:W(Math.abs(w),I),V&&(w=N6(w)),ct&&+w==0&&b!=="+"&&(ct=!1),v=(ct?b==="("?b:o:b==="-"||b==="("?"":b)+v,M=(H==="s"?Xf[8+Hf/3]:"")+M+(ct&&b==="("?")":""),N){for(m=-1,Q=w.length;++mx||x>57){M=(x===46?i+w.slice(m+1):w.slice(m))+M,w=w.slice(0,m);break}}}E&&!T&&(w=e(w,1/0));var Dt=v.length+w.length+M.length,kt=Dt>1)+v+w+M+kt.slice(Dt);break;default:w=kt+v+w+M;break}return s(w)}return D.toString=function(){return f+""},D}function d(f,p){var g=u((f=Bl(f),f.type="f",f)),b=Math.max(-8,Math.min(8,Math.floor(Hs(p)/3)))*3,k=Math.pow(10,-b),T=Xf[8+b/3];return function(L){return g(k*L)+T}}return{format:u,formatPrefix:d}}var Il,Kf,Zf;O6({thousands:",",grouping:[3],currency:["$",""]});function O6(t){return Il=I6(t),Kf=Il.format,Zf=Il.formatPrefix,Il}function R6(t){return Math.max(0,-Hs(Math.abs(t)))}function F6(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Hs(e)/3)))*3-Hs(Math.abs(t)))}function P6(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Hs(e)-Hs(t))+1}function Ih(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}const Qf=Symbol("implicit");function Jf(){var t=new Hd,e=[],r=[],n=Qf;function i(s){let a=t.get(s);if(a===void 0){if(n!==Qf)return n;t.set(s,a=e.push(s)-1)}return r[a%r.length]}return i.domain=function(s){if(!arguments.length)return e.slice();e=[],t=new Hd;for(const a of s)t.has(a)||t.set(a,e.push(a)-1);return i},i.range=function(s){return arguments.length?(r=Array.from(s),i):r.slice()},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return Jf(e,r).unknown(n)},Ih.apply(i,arguments),i}function Y6(t){return function(){return t}}function V6(t){return+t}var t2=[0,1];function Gs(t){return t}function Oh(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:Y6(isNaN(e)?NaN:.5)}function U6(t,e){var r;return t>e&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function z6(t,e,r){var n=t[0],i=t[1],s=e[0],a=e[1];return i2?W6:z6,l=u=null,f}function f(p){return p==null||isNaN(p=+p)?s:(l||(l=o(t.map(n),e,r)))(n(a(p)))}return f.invert=function(p){return a(i((u||(u=o(e,t.map(n),hn)))(p)))},f.domain=function(p){return arguments.length?(t=Array.from(p,V6),d()):t.slice()},f.range=function(p){return arguments.length?(e=Array.from(p),d()):e.slice()},f.rangeRound=function(p){return e=Array.from(p),r=ix,d()},f.clamp=function(p){return arguments.length?(a=p?!0:Gs,d()):a!==Gs},f.interpolate=function(p){return arguments.length?(r=p,d()):r},f.unknown=function(p){return arguments.length?(s=p,f):s},function(p,g){return n=p,i=g,d()}}function r2(){return H6()(Gs,Gs)}function G6(t,e,r,n){var i=ih(t,e,r),s;switch(n=Bl(n==null?",f":n),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(s=F6(i,a))&&(n.precision=s),Zf(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(s=P6(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=s-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(s=R6(i))&&(n.precision=s-(n.type==="%")*2);break}}return Kf(n)}function q6(t){var e=t.domain;return t.ticks=function(r){var n=e();return Ub(n[0],n[n.length-1],r==null?10:r)},t.tickFormat=function(r,n){var i=e();return G6(i[0],i[i.length-1],r==null?10:r,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,s=n.length-1,a=n[i],o=n[s],l,u,d=10;for(o0;){if(u=qd(a,o,r),u===l)return n[i]=a,n[s]=o,e(n);if(u>0)a=Math.floor(a/u)*u,o=Math.ceil(o/u)*u;else if(u<0)a=Math.ceil(a*u)/u,o=Math.floor(o*u)/u;else break;l=u}return t},t}function n2(){var t=r2();return t.copy=function(){return e2(t,n2())},Ih.apply(t,arguments),q6(t)}function j6(t,e){t=t.slice();var r=0,n=t.length-1,i=t[r],s=t[n],a;return s0))return l;do l.push(u=new Date(+s)),e(s,o),t(s);while(u=a)for(;t(a),!s(a);)a.setTime(a-1)},function(a,o){if(a>=a)if(o<0)for(;++o<=0;)for(;e(a,-1),!s(a););else for(;--o>=0;)for(;e(a,1),!s(a););})},r&&(i.count=function(s,a){return Rh.setTime(+s),Fh.setTime(+a),t(Rh),t(Fh),Math.floor(r(Rh,Fh))},i.every=function(s){return s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(n?function(a){return n(a)%s===0}:function(a){return i.count(0,a)%s===0}):i}),i}var Ol=dr(function(){},function(t,e){t.setTime(+t+e)},function(t,e){return e-t});Ol.every=function(t){return t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?dr(function(e){e.setTime(Math.floor(e/t)*t)},function(e,r){e.setTime(+e+r*t)},function(e,r){return(r-e)/t}):Ol};const $6=Ol;Ol.range;const ii=1e3,Jr=ii*60,si=Jr*60,os=si*24,Ph=os*7,i2=os*30,Yh=os*365;var s2=dr(function(t){t.setTime(t-t.getMilliseconds())},function(t,e){t.setTime(+t+e*ii)},function(t,e){return(e-t)/ii},function(t){return t.getUTCSeconds()});const Qa=s2;s2.range;var a2=dr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ii)},function(t,e){t.setTime(+t+e*Jr)},function(t,e){return(e-t)/Jr},function(t){return t.getMinutes()});const Rl=a2;a2.range;var o2=dr(function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*ii-t.getMinutes()*Jr)},function(t,e){t.setTime(+t+e*si)},function(t,e){return(e-t)/si},function(t){return t.getHours()});const Fl=o2;o2.range;var l2=dr(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Jr)/os,t=>t.getDate()-1);const qs=l2;l2.range;function ls(t){return dr(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,r){e.setDate(e.getDate()+r*7)},function(e,r){return(r-e-(r.getTimezoneOffset()-e.getTimezoneOffset())*Jr)/Ph})}var js=ls(0),Pl=ls(1),X6=ls(2),K6=ls(3),$s=ls(4),Z6=ls(5),Q6=ls(6);js.range,Pl.range,X6.range,K6.range,$s.range,Z6.range,Q6.range;var c2=dr(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,e){t.setMonth(t.getMonth()+e)},function(t,e){return e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12},function(t){return t.getMonth()});const Yl=c2;c2.range;var Vh=dr(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});Vh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:dr(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,r){e.setFullYear(e.getFullYear()+r*t)})};const cs=Vh;Vh.range;var u2=dr(function(t){t.setUTCSeconds(0,0)},function(t,e){t.setTime(+t+e*Jr)},function(t,e){return(e-t)/Jr},function(t){return t.getUTCMinutes()});const J6=u2;u2.range;var h2=dr(function(t){t.setUTCMinutes(0,0,0)},function(t,e){t.setTime(+t+e*si)},function(t,e){return(e-t)/si},function(t){return t.getUTCHours()});const tv=h2;h2.range;var d2=dr(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/os},function(t){return t.getUTCDate()-1});const Uh=d2;d2.range;function us(t){return dr(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCDate(e.getUTCDate()+r*7)},function(e,r){return(r-e)/Ph})}var zh=us(0),Vl=us(1),ev=us(2),rv=us(3),Xs=us(4),nv=us(5),iv=us(6);zh.range,Vl.range,ev.range,rv.range,Xs.range,nv.range,iv.range;var f2=dr(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCMonth(t.getUTCMonth()+e)},function(t,e){return e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12},function(t){return t.getUTCMonth()});const sv=f2;f2.range;var Wh=dr(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Wh.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:dr(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})};const Ks=Wh;Wh.range;function p2(t,e,r,n,i,s){const a=[[Qa,1,ii],[Qa,5,5*ii],[Qa,15,15*ii],[Qa,30,30*ii],[s,1,Jr],[s,5,5*Jr],[s,15,15*Jr],[s,30,30*Jr],[i,1,si],[i,3,3*si],[i,6,6*si],[i,12,12*si],[n,1,os],[n,2,2*os],[r,1,Ph],[e,1,i2],[e,3,3*i2],[t,1,Yh]];function o(u,d,f){const p=dT).right(a,p);if(g===a.length)return t.every(ih(u/Yh,d/Yh,f));if(g===0)return $6.every(Math.max(ih(u,d,f),1));const[b,k]=a[p/a[g-1][2]53)return null;"w"in O||(O.w=1),"Z"in O?(J=Gh(Ja(O.y,0,1)),C=J.getUTCDay(),J=C>4||C===0?Vl.ceil(J):Vl(J),J=Uh.offset(J,(O.V-1)*7),O.y=J.getUTCFullYear(),O.m=J.getUTCMonth(),O.d=J.getUTCDate()+(O.w+6)%7):(J=Hh(Ja(O.y,0,1)),C=J.getDay(),J=C>4||C===0?Pl.ceil(J):Pl(J),J=qs.offset(J,(O.V-1)*7),O.y=J.getFullYear(),O.m=J.getMonth(),O.d=J.getDate()+(O.w+6)%7)}else("W"in O||"U"in O)&&("w"in O||(O.w="u"in O?O.u%7:"W"in O?1:0),C="Z"in O?Gh(Ja(O.y,0,1)).getUTCDay():Hh(Ja(O.y,0,1)).getDay(),O.m=0,O.d="W"in O?(O.w+6)%7+O.W*7-(C+5)%7:O.w+O.U*7-(C+6)%7);return"Z"in O?(O.H+=O.Z/100|0,O.M+=O.Z%100,Gh(O)):Hh(O)}}function W(z,X,F,O){for(var A=0,J=X.length,C=F.length,ht,U;A=C)return-1;if(ht=X.charCodeAt(A++),ht===37){if(ht=X.charAt(A++),U=H[ht in g2?X.charAt(A++):ht],!U||(O=U(z,F,O))<0)return-1}else if(ht!=F.charCodeAt(O++))return-1}return O}function N(z,X,F){var O=u.exec(X.slice(F));return O?(z.p=d.get(O[0].toLowerCase()),F+O[0].length):-1}function D(z,X,F){var O=g.exec(X.slice(F));return O?(z.w=b.get(O[0].toLowerCase()),F+O[0].length):-1}function w(z,X,F){var O=f.exec(X.slice(F));return O?(z.w=p.get(O[0].toLowerCase()),F+O[0].length):-1}function v(z,X,F){var O=L.exec(X.slice(F));return O?(z.m=E.get(O[0].toLowerCase()),F+O[0].length):-1}function M(z,X,F){var O=k.exec(X.slice(F));return O?(z.m=T.get(O[0].toLowerCase()),F+O[0].length):-1}function m(z,X,F){return W(z,e,X,F)}function Q(z,X,F){return W(z,r,X,F)}function x(z,X,F){return W(z,n,X,F)}function ct(z){return a[z.getDay()]}function Dt(z){return s[z.getDay()]}function kt(z){return l[z.getMonth()]}function j(z){return o[z.getMonth()]}function ot(z){return i[+(z.getHours()>=12)]}function rt(z){return 1+~~(z.getMonth()/3)}function nt(z){return a[z.getUTCDay()]}function ut(z){return s[z.getUTCDay()]}function _t(z){return l[z.getUTCMonth()]}function K(z){return o[z.getUTCMonth()]}function Ot(z){return i[+(z.getUTCHours()>=12)]}function P(z){return 1+~~(z.getUTCMonth()/3)}return{format:function(z){var X=G(z+="",I);return X.toString=function(){return z},X},parse:function(z){var X=Y(z+="",!1);return X.toString=function(){return z},X},utcFormat:function(z){var X=G(z+="",V);return X.toString=function(){return z},X},utcParse:function(z){var X=Y(z+="",!0);return X.toString=function(){return z},X}}}var g2={"-":"",_:" ",0:"0"},fr=/^\s*\d+/,cv=/^%/,uv=/[\\^$*+?|[\]().{}]/g;function Ae(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",s=i.length;return n+(s[e.toLowerCase(),r]))}function dv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.w=+n[0],r+n[0].length):-1}function fv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.u=+n[0],r+n[0].length):-1}function pv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.U=+n[0],r+n[0].length):-1}function gv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.V=+n[0],r+n[0].length):-1}function yv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.W=+n[0],r+n[0].length):-1}function y2(t,e,r){var n=fr.exec(e.slice(r,r+4));return n?(t.y=+n[0],r+n[0].length):-1}function m2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function mv(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function bv(t,e,r){var n=fr.exec(e.slice(r,r+1));return n?(t.q=n[0]*3-3,r+n[0].length):-1}function _v(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function b2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function xv(t,e,r){var n=fr.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function _2(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function vv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function kv(t,e,r){var n=fr.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function wv(t,e,r){var n=fr.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function Tv(t,e,r){var n=fr.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function Ev(t,e,r){var n=cv.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function Cv(t,e,r){var n=fr.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function Sv(t,e,r){var n=fr.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function x2(t,e){return Ae(t.getDate(),e,2)}function Av(t,e){return Ae(t.getHours(),e,2)}function Lv(t,e){return Ae(t.getHours()%12||12,e,2)}function Dv(t,e){return Ae(1+qs.count(cs(t),t),e,3)}function v2(t,e){return Ae(t.getMilliseconds(),e,3)}function Mv(t,e){return v2(t,e)+"000"}function Nv(t,e){return Ae(t.getMonth()+1,e,2)}function Bv(t,e){return Ae(t.getMinutes(),e,2)}function Iv(t,e){return Ae(t.getSeconds(),e,2)}function Ov(t){var e=t.getDay();return e===0?7:e}function Rv(t,e){return Ae(js.count(cs(t)-1,t),e,2)}function k2(t){var e=t.getDay();return e>=4||e===0?$s(t):$s.ceil(t)}function Fv(t,e){return t=k2(t),Ae($s.count(cs(t),t)+(cs(t).getDay()===4),e,2)}function Pv(t){return t.getDay()}function Yv(t,e){return Ae(Pl.count(cs(t)-1,t),e,2)}function Vv(t,e){return Ae(t.getFullYear()%100,e,2)}function Uv(t,e){return t=k2(t),Ae(t.getFullYear()%100,e,2)}function zv(t,e){return Ae(t.getFullYear()%1e4,e,4)}function Wv(t,e){var r=t.getDay();return t=r>=4||r===0?$s(t):$s.ceil(t),Ae(t.getFullYear()%1e4,e,4)}function Hv(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Ae(e/60|0,"0",2)+Ae(e%60,"0",2)}function w2(t,e){return Ae(t.getUTCDate(),e,2)}function Gv(t,e){return Ae(t.getUTCHours(),e,2)}function qv(t,e){return Ae(t.getUTCHours()%12||12,e,2)}function jv(t,e){return Ae(1+Uh.count(Ks(t),t),e,3)}function T2(t,e){return Ae(t.getUTCMilliseconds(),e,3)}function $v(t,e){return T2(t,e)+"000"}function Xv(t,e){return Ae(t.getUTCMonth()+1,e,2)}function Kv(t,e){return Ae(t.getUTCMinutes(),e,2)}function Zv(t,e){return Ae(t.getUTCSeconds(),e,2)}function Qv(t){var e=t.getUTCDay();return e===0?7:e}function Jv(t,e){return Ae(zh.count(Ks(t)-1,t),e,2)}function E2(t){var e=t.getUTCDay();return e>=4||e===0?Xs(t):Xs.ceil(t)}function tk(t,e){return t=E2(t),Ae(Xs.count(Ks(t),t)+(Ks(t).getUTCDay()===4),e,2)}function ek(t){return t.getUTCDay()}function rk(t,e){return Ae(Vl.count(Ks(t)-1,t),e,2)}function nk(t,e){return Ae(t.getUTCFullYear()%100,e,2)}function ik(t,e){return t=E2(t),Ae(t.getUTCFullYear()%100,e,2)}function sk(t,e){return Ae(t.getUTCFullYear()%1e4,e,4)}function ak(t,e){var r=t.getUTCDay();return t=r>=4||r===0?Xs(t):Xs.ceil(t),Ae(t.getUTCFullYear()%1e4,e,4)}function ok(){return"+0000"}function C2(){return"%"}function S2(t){return+t}function A2(t){return Math.floor(+t/1e3)}var Zs,Ul;lk({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lk(t){return Zs=lv(t),Ul=Zs.format,Zs.parse,Zs.utcFormat,Zs.utcParse,Zs}function ck(t){return new Date(t)}function uk(t){return t instanceof Date?+t:+new Date(+t)}function L2(t,e,r,n,i,s,a,o,l,u){var d=r2(),f=d.invert,p=d.domain,g=u(".%L"),b=u(":%S"),k=u("%I:%M"),T=u("%I %p"),L=u("%a %d"),E=u("%b %d"),I=u("%B"),V=u("%Y");function H(G){return(l(G)1?0:t<-1?ro:Math.acos(t)}function M2(t){return t>=1?zl:t<=-1?-zl:Math.asin(t)}function pk(t){return t.innerRadius}function gk(t){return t.outerRadius}function yk(t){return t.startAngle}function mk(t){return t.endAngle}function bk(t){return t&&t.padAngle}function _k(t,e,r,n,i,s,a,o){var l=r-t,u=n-e,d=a-i,f=o-s,p=f*l-d*u;if(!(p*pm*m+Q*Q&&(W=D,N=w),{cx:W,cy:N,x01:-d,y01:-f,x11:W*(i/H-1),y11:N*(i/H-1)}}function jh(){var t=pk,e=gk,r=Xe(0),n=null,i=yk,s=mk,a=bk,o=null;function l(){var u,d,f=+t.apply(this,arguments),p=+e.apply(this,arguments),g=i.apply(this,arguments)-zl,b=s.apply(this,arguments)-zl,k=D2(b-g),T=b>g;if(o||(o=u=Nh()),pRr))o.moveTo(0,0);else if(k>Wl-Rr)o.moveTo(p*hs(g),p*Yn(g)),o.arc(0,0,p,g,b,!T),f>Rr&&(o.moveTo(f*hs(b),f*Yn(b)),o.arc(0,0,f,b,g,T));else{var L=g,E=b,I=g,V=b,H=k,G=k,Y=a.apply(this,arguments)/2,W=Y>Rr&&(n?+n.apply(this,arguments):Qs(f*f+p*p)),N=qh(D2(p-f)/2,+r.apply(this,arguments)),D=N,w=N,v,M;if(W>Rr){var m=M2(W/f*Yn(Y)),Q=M2(W/p*Yn(Y));(H-=m*2)>Rr?(m*=T?1:-1,I+=m,V-=m):(H=0,I=V=(g+b)/2),(G-=Q*2)>Rr?(Q*=T?1:-1,L+=Q,E-=Q):(G=0,L=E=(g+b)/2)}var x=p*hs(L),ct=p*Yn(L),Dt=f*hs(V),kt=f*Yn(V);if(N>Rr){var j=p*hs(E),ot=p*Yn(E),rt=f*hs(I),nt=f*Yn(I),ut;if(kRr?w>Rr?(v=Hl(rt,nt,x,ct,p,w,T),M=Hl(j,ot,Dt,kt,p,w,T),o.moveTo(v.cx+v.x01,v.cy+v.y01),wRr)||!(H>Rr)?o.lineTo(Dt,kt):D>Rr?(v=Hl(Dt,kt,j,ot,f,-D,T),M=Hl(x,ct,rt,nt,f,-D,T),o.lineTo(v.cx+v.x01,v.cy+v.y01),Dt?1:e>=t?0:NaN}function wk(t){return t}function Tk(){var t=wk,e=kk,r=null,n=Xe(0),i=Xe(Wl),s=Xe(0);function a(o){var l,u=(o=N2(o)).length,d,f,p=0,g=new Array(u),b=new Array(u),k=+n.apply(this,arguments),T=Math.min(Wl,Math.max(-Wl,i.apply(this,arguments)-k)),L,E=Math.min(Math.abs(T)/u,s.apply(this,arguments)),I=E*(T<0?-1:1),V;for(l=0;l0&&(p+=V);for(e!=null?g.sort(function(H,G){return e(b[H],b[G])}):r!=null&&g.sort(function(H,G){return r(o[H],o[G])}),l=0,f=p?(T-u*I)/p:0;l0?V*f:0)+I,b[d]={data:o[d],index:l,value:V,startAngle:k,endAngle:L,padAngle:E};return b}return a.value=function(o){return arguments.length?(t=typeof o=="function"?o:Xe(+o),a):t},a.sortValues=function(o){return arguments.length?(e=o,r=null,a):e},a.sort=function(o){return arguments.length?(r=o,e=null,a):r},a.startAngle=function(o){return arguments.length?(n=typeof o=="function"?o:Xe(+o),a):n},a.endAngle=function(o){return arguments.length?(i=typeof o=="function"?o:Xe(+o),a):i},a.padAngle=function(o){return arguments.length?(s=typeof o=="function"?o:Xe(+o),a):s},a}function Gl(){}function ql(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function I2(t){this._context=t}I2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ql(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function ta(t){return new I2(t)}function O2(t){this._context=t}O2.prototype={areaStart:Gl,areaEnd:Gl,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ek(t){return new O2(t)}function R2(t){this._context=t}R2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ql(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function Ck(t){return new R2(t)}function F2(t){this._context=t}F2.prototype={areaStart:Gl,areaEnd:Gl,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function Sk(t){return new F2(t)}function P2(t){return t<0?-1:1}function Y2(t,e,r){var n=t._x1-t._x0,i=e-t._x1,s=(t._y1-t._y0)/(n||i<0&&-0),a=(r-t._y1)/(i||n<0&&-0),o=(s*i+a*n)/(n+i);return(P2(s)+P2(a))*Math.min(Math.abs(s),Math.abs(a),.5*Math.abs(o))||0}function V2(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function $h(t,e,r){var n=t._x0,i=t._y0,s=t._x1,a=t._y1,o=(s-n)/3;t._context.bezierCurveTo(n+o,i+o*e,s-o,a-o*r,s,a)}function jl(t){this._context=t}jl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$h(this,this._t0,V2(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var r=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,$h(this,V2(this,r=Y2(this,t,e)),r);break;default:$h(this,this._t0,r=Y2(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}}};function U2(t){this._context=new z2(t)}(U2.prototype=Object.create(jl.prototype)).point=function(t,e){jl.prototype.point.call(this,e,t)};function z2(t){this._context=t}z2.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,r,n,i,s){this._context.bezierCurveTo(e,t,n,r,s,i)}};function Ak(t){return new jl(t)}function Lk(t){return new U2(t)}function W2(t){this._context=t}W2.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),r===2)this._context.lineTo(t[1],e[1]);else for(var n=H2(t),i=H2(e),s=0,a=1;a=0;--e)i[e]=(a[e]-i[e+1])/s[e];for(s[r-1]=(t[r]+i[r-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}break}}this._x=t,this._y=e}};function Mk(t){return new $l(t,.5)}function Nk(t){return new $l(t,0)}function Bk(t){return new $l(t,1)}function ea(t,e,r){this.k=t,this.x=e,this.y=r}ea.prototype={constructor:ea,scale:function(t){return t===1?this:new ea(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new ea(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new ea(1,0,0),ea.prototype;/*! @license DOMPurify 2.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.1/LICENSE */function Ii(t){return Ii=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ii(t)}function Xh(t,e){return Xh=Object.setPrototypeOf||function(n,i){return n.__proto__=i,n},Xh(t,e)}function Ik(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Xl(t,e,r){return Ik()?Xl=Reflect.construct:Xl=function(i,s,a){var o=[null];o.push.apply(o,s);var l=Function.bind.apply(i,o),u=new l;return a&&Xh(u,a.prototype),u},Xl.apply(null,arguments)}function fn(t){return Ok(t)||Rk(t)||Fk(t)||Pk()}function Ok(t){if(Array.isArray(t))return Kh(t)}function Rk(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Fk(t,e){if(!!t){if(typeof t=="string")return Kh(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Kh(t,e)}}function Kh(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?r-1:0),i=1;i/gm),Jk=pn(/\${[\w\W]*}/gm),t8=pn(/^data-[\-\w.\u00B7-\uFFFF]/),e8=pn(/^aria-[\-\w]+$/),r8=pn(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),n8=pn(/^(?:\w+script|data):/i),i8=pn(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),s8=pn(/^html$/i),a8=function(){return typeof window>"u"?null:window},o8=function(e,r){if(Ii(e)!=="object"||typeof e.createPolicy!="function")return null;var n=null,i="data-tt-policy-suffix";r.currentScript&&r.currentScript.hasAttribute(i)&&(n=r.currentScript.getAttribute(i));var s="dompurify"+(n?"#"+n:"");try{return e.createPolicy(s,{createHTML:function(o){return o},createScriptURL:function(o){return o}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}};function Q2(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:a8(),e=function(Z){return Q2(Z)};if(e.version="2.4.1",e.removed=[],!t||!t.document||t.document.nodeType!==9)return e.isSupported=!1,e;var r=t.document,n=t.document,i=t.DocumentFragment,s=t.HTMLTemplateElement,a=t.Node,o=t.Element,l=t.NodeFilter,u=t.NamedNodeMap,d=u===void 0?t.NamedNodeMap||t.MozNamedAttrMap:u,f=t.HTMLFormElement,p=t.DOMParser,g=t.trustedTypes,b=o.prototype,k=Ql(b,"cloneNode"),T=Ql(b,"nextSibling"),L=Ql(b,"childNodes"),E=Ql(b,"parentNode");if(typeof s=="function"){var I=n.createElement("template");I.content&&I.content.ownerDocument&&(n=I.content.ownerDocument)}var V=o8(g,r),H=V?V.createHTML(""):"",G=n,Y=G.implementation,W=G.createNodeIterator,N=G.createDocumentFragment,D=G.getElementsByTagName,w=r.importNode,v={};try{v=ds(n).documentMode?n.documentMode:{}}catch{}var M={};e.isSupported=typeof E=="function"&&Y&&typeof Y.createHTMLDocument<"u"&&v!==9;var m=Zk,Q=Qk,x=Jk,ct=t8,Dt=e8,kt=n8,j=i8,ot=r8,rt=null,nt=we({},[].concat(fn($2),fn(t1),fn(e1),fn(r1),fn(X2))),ut=null,_t=we({},[].concat(fn(K2),fn(n1),fn(Z2),fn(Jl))),K=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ot=null,P=null,z=!0,X=!0,F=!1,O=!1,A=!1,J=!1,C=!1,ht=!1,U=!1,Yt=!1,et=!0,Mt=!1,Tt="user-content-",gt=!0,Et=!1,wt={},pt=null,st=we({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),le=null,Xt=we({},["audio","video","img","source","image","track"]),jt=null,Kt=we({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Gt="http://www.w3.org/1998/Math/MathML",Ee="http://www.w3.org/2000/svg",Ht="http://www.w3.org/1999/xhtml",Vt=Ht,Ft=!1,xt=null,ft=we({},[Gt,Ee,Ht],Qh),Lt,bt=["application/xhtml+xml","text/html"],Ut="text/html",at,ie=null,dt=n.createElement("form"),ee=function(Z){return Z instanceof RegExp||Z instanceof Function},fe=function(Z){ie&&ie===Z||((!Z||Ii(Z)!=="object")&&(Z={}),Z=ds(Z),Lt=bt.indexOf(Z.PARSER_MEDIA_TYPE)===-1?Lt=Ut:Lt=Z.PARSER_MEDIA_TYPE,at=Lt==="application/xhtml+xml"?Qh:Zl,rt="ALLOWED_TAGS"in Z?we({},Z.ALLOWED_TAGS,at):nt,ut="ALLOWED_ATTR"in Z?we({},Z.ALLOWED_ATTR,at):_t,xt="ALLOWED_NAMESPACES"in Z?we({},Z.ALLOWED_NAMESPACES,Qh):ft,jt="ADD_URI_SAFE_ATTR"in Z?we(ds(Kt),Z.ADD_URI_SAFE_ATTR,at):Kt,le="ADD_DATA_URI_TAGS"in Z?we(ds(Xt),Z.ADD_DATA_URI_TAGS,at):Xt,pt="FORBID_CONTENTS"in Z?we({},Z.FORBID_CONTENTS,at):st,Ot="FORBID_TAGS"in Z?we({},Z.FORBID_TAGS,at):{},P="FORBID_ATTR"in Z?we({},Z.FORBID_ATTR,at):{},wt="USE_PROFILES"in Z?Z.USE_PROFILES:!1,z=Z.ALLOW_ARIA_ATTR!==!1,X=Z.ALLOW_DATA_ATTR!==!1,F=Z.ALLOW_UNKNOWN_PROTOCOLS||!1,O=Z.SAFE_FOR_TEMPLATES||!1,A=Z.WHOLE_DOCUMENT||!1,ht=Z.RETURN_DOM||!1,U=Z.RETURN_DOM_FRAGMENT||!1,Yt=Z.RETURN_TRUSTED_TYPE||!1,C=Z.FORCE_BODY||!1,et=Z.SANITIZE_DOM!==!1,Mt=Z.SANITIZE_NAMED_PROPS||!1,gt=Z.KEEP_CONTENT!==!1,Et=Z.IN_PLACE||!1,ot=Z.ALLOWED_URI_REGEXP||ot,Vt=Z.NAMESPACE||Ht,Z.CUSTOM_ELEMENT_HANDLING&&ee(Z.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(K.tagNameCheck=Z.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Z.CUSTOM_ELEMENT_HANDLING&&ee(Z.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(K.attributeNameCheck=Z.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Z.CUSTOM_ELEMENT_HANDLING&&typeof Z.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(K.allowCustomizedBuiltInElements=Z.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),O&&(X=!1),U&&(ht=!0),wt&&(rt=we({},fn(X2)),ut=[],wt.html===!0&&(we(rt,$2),we(ut,K2)),wt.svg===!0&&(we(rt,t1),we(ut,n1),we(ut,Jl)),wt.svgFilters===!0&&(we(rt,e1),we(ut,n1),we(ut,Jl)),wt.mathMl===!0&&(we(rt,r1),we(ut,Z2),we(ut,Jl))),Z.ADD_TAGS&&(rt===nt&&(rt=ds(rt)),we(rt,Z.ADD_TAGS,at)),Z.ADD_ATTR&&(ut===_t&&(ut=ds(ut)),we(ut,Z.ADD_ATTR,at)),Z.ADD_URI_SAFE_ATTR&&we(jt,Z.ADD_URI_SAFE_ATTR,at),Z.FORBID_CONTENTS&&(pt===st&&(pt=ds(pt)),we(pt,Z.FORBID_CONTENTS,at)),gt&&(rt["#text"]=!0),A&&we(rt,["html","head","body"]),rt.table&&(we(rt,["tbody"]),delete Ot.tbody),Lr&&Lr(Z),ie=Z)},be=we({},["mi","mo","mn","ms","mtext"]),_e=we({},["foreignobject","desc","title","annotation-xml"]),ke=we({},["title","style","font","a","script"]),$t=we({},t1);we($t,e1),we($t,Xk);var se=we({},r1);we(se,Kk);var ye=function(Z){var At=E(Z);(!At||!At.tagName)&&(At={namespaceURI:Vt,tagName:"template"});var Nt=Zl(Z.tagName),pe=Zl(At.tagName);return xt[Z.namespaceURI]?Z.namespaceURI===Ee?At.namespaceURI===Ht?Nt==="svg":At.namespaceURI===Gt?Nt==="svg"&&(pe==="annotation-xml"||be[pe]):Boolean($t[Nt]):Z.namespaceURI===Gt?At.namespaceURI===Ht?Nt==="math":At.namespaceURI===Ee?Nt==="math"&&_e[pe]:Boolean(se[Nt]):Z.namespaceURI===Ht?At.namespaceURI===Ee&&!_e[pe]||At.namespaceURI===Gt&&!be[pe]?!1:!se[Nt]&&(ke[Nt]||!$t[Nt]):!!(Lt==="application/xhtml+xml"&&xt[Z.namespaceURI]):!1},Jt=function(Z){no(e.removed,{element:Z});try{Z.parentNode.removeChild(Z)}catch{try{Z.outerHTML=H}catch{Z.remove()}}},Nn=function(Z,At){try{no(e.removed,{attribute:At.getAttributeNode(Z),from:At})}catch{no(e.removed,{attribute:null,from:At})}if(At.removeAttribute(Z),Z==="is"&&!ut[Z])if(ht||U)try{Jt(At)}catch{}else try{At.setAttribute(Z,"")}catch{}},Xr=function(Z){var At,Nt;if(C)Z=""+Z;else{var pe=Gk(Z,/^[\r\n\t ]+/);Nt=pe&&pe[0]}Lt==="application/xhtml+xml"&&Vt===Ht&&(Z=''+Z+"");var Me=V?V.createHTML(Z):Z;if(Vt===Ht)try{At=new p().parseFromString(Me,Lt)}catch{}if(!At||!At.documentElement){At=Y.createDocument(Vt,"template",null);try{At.documentElement.innerHTML=Ft?"":Me}catch{}}var Le=At.body||At.documentElement;return Z&&Nt&&Le.insertBefore(n.createTextNode(Nt),Le.childNodes[0]||null),Vt===Ht?D.call(At,A?"html":"body")[0]:A?At.documentElement:Le},De=function(Z){return W.call(Z.ownerDocument||Z,Z,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null,!1)},ae=function(Z){return Z instanceof f&&(typeof Z.nodeName!="string"||typeof Z.textContent!="string"||typeof Z.removeChild!="function"||!(Z.attributes instanceof d)||typeof Z.removeAttribute!="function"||typeof Z.setAttribute!="function"||typeof Z.namespaceURI!="string"||typeof Z.insertBefore!="function"||typeof Z.hasChildNodes!="function")},Be=function(Z){return Ii(a)==="object"?Z instanceof a:Z&&Ii(Z)==="object"&&typeof Z.nodeType=="number"&&typeof Z.nodeName=="string"},Re=function(Z,At,Nt){!M[Z]||Hk(M[Z],function(pe){pe.call(e,At,Nt,ie)})},Pe=function(Z){var At;if(Re("beforeSanitizeElements",Z,null),ae(Z)||Dr(/[\u0080-\uFFFF]/,Z.nodeName))return Jt(Z),!0;var Nt=at(Z.nodeName);if(Re("uponSanitizeElement",Z,{tagName:Nt,allowedTags:rt}),Z.hasChildNodes()&&!Be(Z.firstElementChild)&&(!Be(Z.content)||!Be(Z.content.firstElementChild))&&Dr(/<[/\w]/g,Z.innerHTML)&&Dr(/<[/\w]/g,Z.textContent)||Nt==="select"&&Dr(/