From 94d8029ebe28b77aca1a5d3da4189a9f05d7f209 Mon Sep 17 00:00:00 2001 From: liuzhihang Date: Tue, 30 May 2023 23:54:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=8F=8A=E4=BE=A7=E6=A0=8F?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- settings.yaml | 74 +- templates/assets/css/custom.css | 559 ++ .../{zhheo/zhheoblog.css => css/main.css} | 5529 ++++------------- templates/assets/css/var.css | 182 + templates/assets/images/home.png | Bin 0 -> 4586 bytes templates/assets/images/home.webp | Bin 512 -> 0 bytes .../assets/js/extend/covercolor/local.js | 146 + templates/assets/js/extend/covercolor/web.js | 135 + .../assets/js/extend/search/algolia-search.js | 140 + .../assets/js/extend/search/local-search.js | 162 + templates/assets/js/halo.js | 12 - templates/assets/js/heo.js | 460 -- templates/assets/js/main.js | 1234 ++-- templates/assets/js/utils.js | 263 +- templates/assets/lib/lazyload.min.js | 1 + templates/assets/lib/pjax.min.js | 1 + templates/assets/lib/qrcode.min.js | 1 + templates/assets/lib/rgbaster.min.js | 1 + templates/assets/lib/snackbar.min.css | 1 + templates/assets/lib/snackbar.min.js | 16 + templates/assets/lib/swiper.min.css | 13 + templates/assets/lib/swiper.min.js | 13 + templates/assets/lib/view-image.min.js | 13 + templates/assets/lib/waterfall.min.js | 1 + .../assets/libs/clipboard/clipboard.min.js | 7 - .../libs/color-thief/color-thief.umd.js | 1 - .../fast-average-color/index.browser.min.js | 2 - templates/assets/libs/iconfont/iconfont.css | 479 -- templates/assets/libs/iconfont/iconfont.js | 1 - templates/assets/libs/iconfont/iconfont.json | 821 --- templates/assets/libs/iconfont/iconfont.ttf | Bin 36752 -> 0 bytes templates/assets/libs/iconfont/iconfont.woff | Bin 23108 -> 0 bytes templates/assets/libs/iconfont/iconfont.woff2 | Bin 19952 -> 0 bytes .../libs/instantpage/instantpage.min.js | 2 - .../assets/libs/swiper/swiper-bundle.min.css | 13 - .../assets/libs/swiper/swiper-bundle.min.js | 14 - .../assets/libs/waterfall/waterfall.min.js | 1 - templates/assets/zhheo/blogex.js | 789 --- templates/assets/zhheo/commentBarrage.css | 165 - templates/assets/zhheo/commentBarrage.js | 150 - templates/assets/zhheo/custom.css | 48 - templates/assets/zhheo/rightmenu.js | 420 -- templates/index.html | 4 +- templates/modules/bar/category.html | 2 +- templates/modules/bar/custom-category.html | 2 +- templates/modules/bar/custom-tag.html | 2 +- templates/modules/bar/custom-url.html | 2 +- templates/modules/bar/tag.html | 2 +- templates/modules/head.html | 191 +- templates/modules/layouts/layout.html | 184 +- templates/modules/moment.html | 21 +- templates/modules/nav.html | 7 +- templates/modules/post-list.html | 39 +- templates/modules/sidebar.html | 110 +- templates/modules/widgets/aside/profile.html | 7 +- templates/modules/widgets/banner-group.html | 22 +- templates/modules/widgets/console.html | 75 +- templates/modules/widgets/nav-left.html | 14 +- templates/modules/widgets/nav-menu.html | 3 +- templates/modules/widgets/nav-right.html | 48 +- 61 files changed, 3453 insertions(+), 9156 deletions(-) create mode 100644 templates/assets/css/custom.css rename templates/assets/{zhheo/zhheoblog.css => css/main.css} (73%) create mode 100644 templates/assets/css/var.css create mode 100644 templates/assets/images/home.png delete mode 100644 templates/assets/images/home.webp create mode 100644 templates/assets/js/extend/covercolor/local.js create mode 100644 templates/assets/js/extend/covercolor/web.js create mode 100644 templates/assets/js/extend/search/algolia-search.js create mode 100644 templates/assets/js/extend/search/local-search.js delete mode 100644 templates/assets/js/halo.js delete mode 100644 templates/assets/js/heo.js create mode 100644 templates/assets/lib/lazyload.min.js create mode 100644 templates/assets/lib/pjax.min.js create mode 100644 templates/assets/lib/qrcode.min.js create mode 100644 templates/assets/lib/rgbaster.min.js create mode 100644 templates/assets/lib/snackbar.min.css create mode 100644 templates/assets/lib/snackbar.min.js create mode 100644 templates/assets/lib/swiper.min.css create mode 100644 templates/assets/lib/swiper.min.js create mode 100644 templates/assets/lib/view-image.min.js create mode 100644 templates/assets/lib/waterfall.min.js delete mode 100644 templates/assets/libs/clipboard/clipboard.min.js delete mode 100644 templates/assets/libs/color-thief/color-thief.umd.js delete mode 100644 templates/assets/libs/fast-average-color/index.browser.min.js delete mode 100644 templates/assets/libs/iconfont/iconfont.css delete mode 100644 templates/assets/libs/iconfont/iconfont.js delete mode 100644 templates/assets/libs/iconfont/iconfont.json delete mode 100644 templates/assets/libs/iconfont/iconfont.ttf delete mode 100644 templates/assets/libs/iconfont/iconfont.woff delete mode 100644 templates/assets/libs/iconfont/iconfont.woff2 delete mode 100644 templates/assets/libs/instantpage/instantpage.min.js delete mode 100644 templates/assets/libs/swiper/swiper-bundle.min.css delete mode 100644 templates/assets/libs/swiper/swiper-bundle.min.js delete mode 100644 templates/assets/libs/waterfall/waterfall.min.js delete mode 100644 templates/assets/zhheo/blogex.js delete mode 100644 templates/assets/zhheo/commentBarrage.css delete mode 100644 templates/assets/zhheo/commentBarrage.js delete mode 100644 templates/assets/zhheo/custom.css delete mode 100644 templates/assets/zhheo/rightmenu.js diff --git a/README.md b/README.md index 196a7db4..070d693e 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,9 @@   [Halo-Theme-Hao](https://github.com/liuzhihang/halo-theme-hao) 是一款适用于 [Halo2.x](https://github.com/halo-dev/halo) 的博客主题。 -  移植自 [Hexo](https://hexo.io/zh-cn/index.html) 社区中 [张洪 Heo](https://blog.zhheo.com/) 对 [Hexo-Theme-Butterfly](https://github.com/liuzhihang/halo-theme-hao) 主题的魔改版本。 +  移植自 [Hexo](https://hexo.io/zh-cn/index.html) 社区中 [张洪 Heo](https://blog.zhheo.com/) +对 [Hexo-Theme-Butterfly](https://github.com/liuzhihang/halo-theme-hao) +主题的魔改版本。同步参考 [Hexo-Theme-Acrylic-Next](https://github.com/hexo-theme-Acrylic/Hexo-Theme-Acrylic-Next) ## 安装 diff --git a/settings.yaml b/settings.yaml index 5ebf9956..f3026ddf 100644 --- a/settings.yaml +++ b/settings.yaml @@ -345,61 +345,61 @@ spec: label: 图标 options: - label: 电子邮箱 - value: icon-mail-line + value: fa-solid fa-envelope - label: 微信 - value: icon-wechat2 - - label: 公众号 - value: icon-weixingongzhonghao + value: fa-brands fa-weixin + # - label: 公众号 + # value: - label: 腾讯 QQ - value: icon-qq-line + value: fa-brands fa-qq - label: 新浪微博 - value: icon-weibo-line + value: fa-brands fa-weibo - label: 知乎 - value: icon-zhihu-line - - label: 豆瓣 - value: icon-douban-line + value: fa-brands fa-zhihu + # - label: 豆瓣 + # value: - label: 哔哩哔哩 - value: icon-bilibili-line + value: fa-brands fa-bilibili - label: GitHub - value: icon-github-line + value: fa-brands fa-github - label: GitLab - value: icon-gitlab-line - - label: 百度 - value: icon-baidu-line - - label: 掘金 - value: icon-juejin - - label: 语雀 - value: icon-yuque - - label: 博客园 - value: icon-CN_cnblogs - - label: CSDN - value: icon-csdn1 - - label: LeetCode - value: icon-leetcode - - label: 头条 - value: icon-jinritoutiao + value: fa-brands fa-gitlab + # - label: 百度 + # value: icon-baidu-line + # - label: 掘金 + # value: icon-juejin + # - label: 语雀 + # value: icon-yuque + # - label: 博客园 + # value: icon-CN_cnblogs + # - label: CSDN + # value: icon-csdn1 + # - label: LeetCode + # value: icon-leetcode + # - label: 头条 + # value: icon-jinritoutiao - label: 抖音 / TikTok - value: icon-douyin + value: fa-brands fa-tiktok - label: Telegram - value: icon-telegram-line + value: fa-brands fa-telegram - label: Facebook - value: icon-facebook-box-line + value: fa-brands fa-facebook - label: Instagram - value: icon-instagram-line + value: fa-brands fa-instagram - label: LinkedIn - value: icon-linkedin-box-line + value: fa-brands fa-linkedin - label: Twitter - value: icon-twitter-line + value: fa-brands fa-twitter - label: Slack - value: icon-slack-line + value: fa-brands fa-slack - label: Discord - value: icon-discord-line + value: fa-brands fa-discord - label: YouTube - value: icon-youtube-line + value: fa-brands fa-youtube - label: Steam - value: icon-steam-fill + value: fa-brands fa-steam - label: Dribbble - value: icon-dribbble-line + value: fa-brands fa-dribbble - $formkit: text name: name label: 名称 diff --git a/templates/assets/css/custom.css b/templates/assets/css/custom.css new file mode 100644 index 00000000..931888d0 --- /dev/null +++ b/templates/assets/css/custom.css @@ -0,0 +1,559 @@ +@media screen and (min-width: 900px) { + #page-header #nav a:hover .heoicon { + transition: .3s; + opacity: 0; + } +} + +#sidebar-menus .menus_item .not-child { + padding: 4px 8px !important; + width: 100%; + background: var(--heo-card-bg); + border-radius: 8px; + border: var(--style-border-always); + align-items: center; + font-size: 14px !important; + margin: 10px 0; + justify-content: center; +} + +#sidebar-menus .menus_item .not-child span { + color: var(--heo-fontcolor) !important; +} + +.meta-secondline > span { + opacity: .6; + transition: .3s; + margin-right: 1.1rem; +} + +#category #category-bar { + border-radius: 0; +} + +/* 侧公众号卡片 */ +#flip-wrapper .left { + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + line-height: 1.3; + color: white; +} + +#flip-wrapper .left .title { + font-size: 1.35rem; + font-weight: 700; +} + +#flip-wrapper .left .desc { + font-size: small; + font-weight: 600; +} + +#article-container .highlight-tools { + position: relative; + display: flex; + -webkit-box-align: center; + align-items: center; + overflow: hidden; + min-height: 1.2rem; + height: 2.15em; + background: var(--heo-secondbg); + border-bottom: var(--style-border-always); + color: var(--heo-fontcolor); + font-size: var(--global-font-size); +} + +#article-container .highlight-tools .copy-button { + position: absolute; + right: 0.7rem; + cursor: pointer; + transition: color .2s; + font-size: 18px; +} + +#article-container .highlight-tools .code-lang { + position: absolute; + font-weight: 700; + font-size: 1.15em; + user-select: none; + left: 0.6rem; +} + +#article-container .code-expand-btn.expand-done { + display: none !important; +} + + +#article-container .bilibili_box { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + background: var(--heo-card-bg); + border: var(--style-border-always); + border-radius: 10px; + overflow: hidden; + color: var(--heo-fontcolor) !important; + text-decoration: none !important; + -webkit-transition: .3s; + -moz-transition: .3s; + -o-transition: .3s; + -ms-transition: .3s; + transition: .3s +} + +#article-container .bilibili_box:hover { + border-color: var(--heo-theme) +} + +@media screen and (max-width: 768px) { + #article-container .bilibili_box { + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column + } +} + +#article-container .bilibili_box .bilibili_cover { + width: 200px; + position: relative +} + +@media screen and (max-width: 768px) { + #article-container .bilibili_box .bilibili_cover { + width: 100% + } +} + +#article-container .bilibili_box .bilibili_cover img { + width: 100%; + filter: none; + margin: 0 !important; + border-radius: 0 !important +} + +#article-container .bilibili_box .bilibili_cover .play_icon { + position: absolute; + width: 45px; + height: 45px; + opacity: .8; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%) +} + +#article-container .bilibili_box .bilibili_cover span { + position: absolute; + bottom: 0; + right: 5px; + color: #fff; +} + +#article-container .bilibili_box .bilibili_info { + padding: 10px 10px 10px 18px; + width: calc(100% - 200px); + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -o-box-orient: vertical; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: distribute; + -moz-box-pack: distribute; + -o-box-pack: distribute; + -ms-flex-pack: distribute; + -webkit-justify-content: space-around; + justify-content: space-around +} + +@media screen and (max-width: 768px) { + #article-container .bilibili_box .bilibili_info { + width: 100%; + padding-bottom: 25px + } +} + +#article-container .bilibili_box .bilibili_info .title { + font-size: 1.2rem; + font-weight: 700; + white-space: nowrap; + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + line-height: 1.7 +} + +#article-container .bilibili_box .bilibili_info .stat { + font-size: 15px +} + +#article-container .bilibili_box .bilibili_info .stat svg { + margin-right: 3px; + font-size: 18px; + vertical-align: -0.15em; +} + +#article-container .bilibili_box .bilibili_info .stat svg path { + fill: #99a9bf +} + +#article-container .bilibili_box .bilibili_info .stat span { + margin-right: 10px +} + +#article-container .bilibili_box .bilibili_info .owner { + display: -webkit-box; + display: -moz-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -moz-box-align: center; + -o-box-align: center; + -ms-flex-align: center; + -webkit-align-items: center; + align-items: center; + line-height: 1; + font-size: 15px; + margin-top: 3px +} + +#article-container .bilibili_box .bilibili_info .owner .tip { + color: #f69; + border: 1px solid; + padding: 4px 7px; + font-size: 13px; + border-radius: 5px; + margin-right: 10px +} + +#article-container .bilibili_box .bilibili_info .owner img { + width: 25px; + height: 25px; + border-radius: 50% !important; + object-fit: cover; + margin: 0 5px 0 0 !important +} + +[data-theme=dark] #article-container .bilibili_box .bilibili_cover, [data-theme=light] #article-container .bilibili_box .bilibili_info .stat svg { + opacity: .8 +} + +/* 配置相册界面album的CSS */ +/* 相册顶部那一坨 */ +.author-content.author-content-item.album { + height: 19rem; + color: var(--heo-white); + overflow: hidden; + margin-top: 0; +} + +/* 移动端那一坨 */ +@media screen and (max-width: 768px) { + .author-content.author-content-item.album { + height: 9rem; + } +} + +#album .card-album { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: var(--album-spacing-xxl) 0 0; +} + +#album .card-album .album-content-nocover { + width: calc(100% / 4 - 40px); +} + +#album .card-album .card { + list-style: none; + position: relative; + display: flex; + width: calc(100% / 4 - 10px); + padding: 10px; +} + +#album .card-album .card:hover { + cursor: pointer; +} + +#album .card_cover { + border-radius: var(--album-spacing-l); + filter: brightness(0.75) saturate(1.2) contrast(0.85); + transform-origin: center; + transform: scale(1) translateZ(0); + transition: filter 200ms linear, transform 200ms linear; + max-width: 100%; + overflow: hidden; + height: 550px; + width: 100%; + max-width: 100%; + object-fit: cover; + border-radius: var(--album-spacing-l); +} + +#album .card:hover .card_cover { + transform: scale(1.05) translateZ(0); + filter: brightness(0.9) saturate(1.2) contrast(1); +} + +#album .card-album:hover > .card:not(:hover) .card_cover { + filter: brightness(0.5) saturate(0.9) contrast(1.2) blur(20px); +} + +#album .card__content { + left: 0; + padding: var(--album-spacing-l); + position: absolute; + top: 0; +} + +#album .card__category { + color: var(--album-text-light); + font-size: 0.9rem; + margin-bottom: var(--album-spacing-s); + text-transform: uppercase; +} + +#album .card__heading { + color: var(--album-text-lighter); + font-size: 1.9rem; + text-shadow: 2px 2px 20px rgba(0, 0, 0, 0.2); + line-height: 1.4; + word-spacing: 100vw; +} + +@media (min-width: 1300px) { + #album img.card_cover { + height: 600px; + } +} + +@media (max-width: 960px) { + #album .card-album .card { + width: calc(100% / 2 - 40px); + } +} + +@media (max-width: 540px) { + #album .card-album .card { + width: calc(100%); + } +} + +/* 配置相册界面album_detail的CSS */ +/* 处理页面样式 */ +#album_detail .album-container-img { + display: flex; + align-items: center; + justify-content: space-around; + width: 100%; + height: 100%; + flex-wrap: wrap; + margin-bottom: 0.3rem; +} + +#album_detail .album-container-img .album-content-noimg { + width: calc(100% / 2 - 5px); +} + +#album_detail .album-content-img img { + object-fit: cover; + max-width: 100%; + border-radius: 12px; + margin: 10px 0; +} + +#album_detail .album-content-img { + height: 100%; + max-height: 300px; + border-radius: 12px; + overflow: hidden; + display: flex; + position: relative; +} + +#album_detail .album-content .datacont { + order: 0; + font-size: 0.8rem; + font-weight: 700; + color: var(--heo-fontcolor); + width: 100%; + line-height: 1.38; + border-radius: 12px; + margin-bottom: 0.5rem; + display: flex; + flex-direction: column; + text-align: justify; +} + +#album_detail p { + margin: 0px; +} + +#album_detail div.album-content { + display: flex; + flex-flow: wrap; + border-radius: 12px; + width: 100%; + height: 100%; +} + +#album_detail .timeline ul li.album-item { + position: relative; + width: 32%; + border: var(--style-border-always); + border-radius: 12px; + padding: 1rem 1rem 0.5rem; + transition: all 0.3s ease 0s; + display: flex; + flex-flow: column nowrap; + justify-content: space-between; + align-items: flex-start; + background: var(--heo-card-bg); + box-shadow: var(--heo-shadow-border); + margin-right: 2%; +} + +#album_detail .timeline #waterfall.show { + opacity: 1; +} + +#album_detail .timeline #waterfall { + opacity: 0; + transition: all 0.3s ease 0s; +} + +#album_detail ul.list { + display: flex; + flex-flow: row wrap; + justify-content: space-between; +} + +#album_detail { + margin-top: 1rem; + width: 100%; +} + +#album_detail > section > ul > li.album-item { + margin-bottom: 1rem; +} + +#album-tips { + font-size: 14px; + display: flex; + justify-content: center; + margin-top: 1rem; +} + +#album_detail .timeline ul li.album-item hr { + display: flex; + position: relative; + margin: 8px 0px; + border: 1px dashed var(--heo-theme-op); + width: 100%; +} + +#album_detail .album-info { + display: flex; + align-items: center; +} + +#album_detail > section > ul > li > div .album-info-time, +#album_detail > section > ul > li > div .album-info-address, +#album_detail > section > ul > li > div .album-info-from { + color: var(--heo-fontcolor); + font-size: 0.7rem; + background-color: var(--heo-gray-op); + padding: 0px 8px; + border-radius: 20px; + cursor: default; + display: flex; + align-items: center; +} + +#album_detail > section > ul > li > div .album-info-address, +#album_detail > section > ul > li > div .album-info-from { + margin-left: 4px; +} + +#album_detail > section > ul > li > div .album-info-address span, +#album_detail > section > ul > li > div .album-info-from span { + margin-left: 4px; +} + +#album_detail .album-info .fa-brands.fa-instagram { + margin-right: 8px; +} + +#album_detail .album-bottom { + display: flex; + justify-content: space-between; + width: 100%; + margin-top: 10px; +} + +#album_detail .album-bottom .album-reply { + cursor: pointer; +} + +#album_detail .timeline ul li.album-item:hover { + border: var(--style-border-hover); +} + +#album_detail .album-content-link { + display: flex; + margin-left: 0.5rem; + font-size: 0.7rem; + align-items: center; + background-color: rgba(245, 108, 108, 0.13); + color: rgb(245, 108, 108); + padding: 0px 8px; + border-radius: 20px; +} + +#album_detail .album-content-link i { + margin-right: 3px; +} + +#album_detail .album-content-link:hover { + background-color: var(--heo-main); + color: var(--heo-white); +} + +body[data-type="album_detail"] #page .author-content-item .card-content .banner-button-group .banner-button:hover { + color: var(--heo-white); + border-radius: 20px !important; +} + +/* 响应式 */ +@media screen and (max-width: 1300px) { + #album_detail .timeline ul li.album-item { + width: 49%; + margin-right: 1%; + } +} + +@media screen and (max-width: 768px) { + #album_detail .timeline ul li.album-item { + width: 100%; + margin-right: 0px; + } +} \ No newline at end of file diff --git a/templates/assets/zhheo/zhheoblog.css b/templates/assets/css/main.css similarity index 73% rename from templates/assets/zhheo/zhheoblog.css rename to templates/assets/css/main.css index 16b3b8eb..911601d6 100644 --- a/templates/assets/zhheo/zhheoblog.css +++ b/templates/assets/css/main.css @@ -1,115 +1,5 @@ @charset "UTF-8"; -:root { - --heo-white: #fff; - --heo-white-op: rgba(255, 255, 255, 0.2); - --heo-black: #000; - --heo-black-op: rgba(0, 0, 0, 0.2); - --heo-none: #00000000; - --heo-gray: #999999; - --heo-gray-op: #9999992b; - --heo-vip: #e5a80d; - --heo-main: var(--heo-theme); - --heo-main-op: var(--heo-theme-op); - --heo-main-op-deep: var(--heo-theme-op-deep); - --heo-main-none: var(--heo-theme-none); - --heo-shadow-theme: 0 8px 12px -3px var(--heo-theme-op); - --heo-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, 0.15); - --heo-shadow-main: 0 8px 12px -3px var(--heo-main-op); - --heo-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, 0.2); - --heo-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, 0.2); - --heo-shadow-black: 0 0 12px 4px rgba(0, 0, 0, 0.05); - --heo-shadow-yellow: 0px 38px 77px -26px rgba(255, 201, 62, 0.12); - --heo-shadow-red: 0 8px 12px -3px #ee7d7936; - --heo-shadow-green: 0 8px 12px -3px #87ee7936; - --heo-logo-color: linear-gradient(215deg, #4584ff 0%, #cf0db9 100%); - --heo-snackbar-time: 5s; - --style-border: 1px solid var(--heo-card-border); - --style-border-always: 1px solid var(--heo-card-border); - --style-border-hover: 1px solid var(--heo-main); - --style-border-hover-always: 1px solid var(--heo-main); - --style-border-dashed: 1px dashed var(--heo-theme-op); -} - -::selection { - background: var(--heo-fontcolor); - color: var(--heo-background); -} - -[data-theme=light] { - --heo-theme: #425AEF; - --heo-theme-op: #4259ef23; - --heo-theme-op-deep: #4259efdd; - --heo-theme-none: #4259ef01; - --heo-blue: #425AEF; - --heo-red: #D8213C; - --heo-pink: #FF7C7C; - --heo-green: #28a63f; - --heo-yellow: #c28b00; - --heo-yellow-op: #d99c001a; - --heo-orange: #e38100; - --heo-fontcolor: #363636; - --heo-background: #f7f9fe; - --heo-reverse: #000; - --heo-maskbg: rgba(255, 255, 255, 0.6); - --heo-maskbgdeep: rgba(255, 255, 255, 0.85); - --heo-hovertext: var(--heo-main); - --heo-ahoverbg: #F7F7FA; - --heo-lighttext: var(--heo-main); - --heo-secondtext: rgba(60, 60, 67, 0.6); - --heo-scrollbar: rgba(60, 60, 67, 0.4); - --heo-card-btn-bg: #edf0f7; - --heo-post-blockquote-bg: #fafcff; - --heo-post-tabs-bg: #f2f5f8; - --heo-secondbg: #f1f3f8; - --heo-shadow-nav: 0 5px 12px -5px rgba(102, 68, 68, 0.05); - --heo-card-bg: #fff; - --heo-card-bg-op: var(--heo-black-op); - --heo-card-bg-none: rgba(255, 255, 255, 0); - --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0); - --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0); - --heo-card-border: #e3e8f7; - --heo-shadow-border: 0 8px 16px -4px #2c2d300c; - --style-border-forever: 2px solid var(--heo-main); -} - -[data-theme=dark] { - --heo-theme: #0084FF; - --heo-theme-op: #0084FF23; - --heo-theme-op-deep: #0084ffdd; - --heo-theme-none: #0084FF00; - --heo-blue: #0084FF; - --heo-red: #FF3842; - --heo-pink: #FF7C7C; - --heo-green: #57bd6a; - --heo-yellow: #ffc93e; - --heo-yellow-op: #ffc93e30; - --heo-orange: #ff953e; - --heo-fontcolor: #F7F7FA; - --heo-background: #18171d; - --heo-reverse: #fff; - --heo-maskbg: rgba(0, 0, 0, 0.6); - --heo-maskbgdeep: rgba(0, 0, 0, 0.85); - --heo-hovertext: #0A84FF; - --heo-ahoverbg: #fff; - --heo-lighttext: #f2b94b; - --heo-secondtext: #a1a2b8; - --heo-scrollbar: rgba(200, 200, 223, 0.4); - --heo-card-btn-bg: #30343f; - --heo-post-blockquote-bg: #000; - --heo-post-tabs-bg: #121212; - --heo-secondbg: #30343f; - --heo-shadow-nav: 0 5px 20px 0px rgba(28, 28, 28, 0.4); - --heo-card-bg: #1d1e22; - --heo-card-bg-op: var(--heo-white-op); - --heo-card-bg-none: #1d1b2600; - --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0); - --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0); - --heo-card-border: #282829; - --heo-shadow-border: 0 8px 16px -4px #00000050; - --style-border-forever: 2px solid var(--heo-lighttext); -} - @media screen and (max-width: 768px) { :root { --style-border: 0px solid var(--heo-card-border); @@ -153,12 +43,12 @@ main { h1 { font-size: 2em; - margin: 0.67em 0px; + margin: 0.67em 0; } hr { box-sizing: content-box; - height: 0px; + height: 0; overflow: visible; } @@ -169,6 +59,11 @@ pre { a { background-color: transparent; + color: var(--heo-fontcolor); + text-decoration: none; + transition: all 0.2s ease 0s; + overflow-wrap: break-word; + -webkit-user-drag: none; } abbr[title] { @@ -176,14 +71,11 @@ abbr[title] { text-decoration: underline dotted; } -b, -strong { +b, strong { font-weight: bolder; } -code, -kbd, -samp { +code, kbd, samp { font-family: monospace, monospace; font-size: 1em; } @@ -192,8 +84,7 @@ small { font-size: 80%; } -sub, -sup { +sub, sup { font-size: 75%; line-height: 0; position: relative; @@ -208,35 +99,22 @@ sup { top: -0.5em; } -img { - border-style: none; -} - -button, -input, -optgroup, -select, -textarea { +button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; - margin: 0px; + margin: 0; } -button, -input { +button, input { overflow: visible; } -button, -select { +button, select { text-transform: none; } -[type="button"], -[type="reset"], -[type="submit"], -button { +[type="button"], [type="reset"], [type="submit"], button { appearance: button; } @@ -249,7 +127,7 @@ legend { color: inherit; display: table; max-width: 100%; - padding: 0px; + padding: 0; white-space: normal; } @@ -261,14 +139,12 @@ textarea { overflow: auto; } -[type="checkbox"], -[type="radio"] { +[type="checkbox"], [type="radio"] { box-sizing: border-box; padding: 0px; } -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { +[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } @@ -298,48 +174,21 @@ template { display: none; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span, -#aside-content .card-info .card-info-data > .card-info-data-item a .headline, -#pagination .next_info, -#pagination .prev_info, -#sidebar #sidebar-menus .menus_items .site-page, -#sidebar #sidebar-menus .site-data .data-item .data-item-link > a > div, -.flink#article-container .flink-list > .flink-list-item a .flink-item-desc, -.flink#article-container .flink-list > .flink-list-item a .flink-item-name, -.limit-one-line { - overflow: hidden; +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span, #aside-content .card-info .card-info-data > .card-info-data-item a .headline, #pagination .next_info, #pagination .prev_info, #sidebar #sidebar-menus .menus_items .site-page, #sidebar #sidebar-menus .site-data .data-item .data-item-link > a > div, .flink#article-container .flink-list > .flink-list-item a .flink-item-desc, .flink#article-container .flink-list > .flink-list-item a .flink-item-name, .limit-one-line { text-overflow: ellipsis; white-space: nowrap; } -/*#aside-content .aside-list > .aside-list-item .content > .comment,*/ -/*#aside-content .aside-list > .aside-list-item .content > .name,*/ -/*#aside-content .aside-list > .aside-list-item .content > .title,*/ -/*#error-wrap .error-content .error-info .error_subtitle,*/ -/*#post-info .post-title,*/ -/*#recent-posts > .recent-post-item > .recent-post-info > .article-title,*/ -/*#recent-posts > .recent-post-item > .recent-post-info > .content,*/ -/*.article-sort-item-title,*/ -/*.limit-more-line,*/ -/*.relatedPosts > .relatedPosts-list .content .title,*/ - /*figure.gallery-group .gallery-group-name,*/ - /*figure.gallery-group p {*/ - /* display: -webkit-box;*/ - /* overflow: hidden;*/ - /* -webkit-box-orient: vertical;*/ - /*}*/ +#aside-content .aside-list > .aside-list-item .content > .comment, #aside-content .aside-list > .aside-list-item .content > .name, #aside-content .aside-list > .aside-list-item .content > .title, #error-wrap .error-content .error-info .error_subtitle, #post-info .post-title, #recent-posts > .recent-post-item > .recent-post-info > .article-title, #recent-posts > .recent-post-item > .recent-post-info > .content, .article-sort-item-title, .limit-more-line, .relatedPosts > .relatedPosts-list .content .title, figure.gallery-group .gallery-group-name, figure.gallery-group p { + display: -webkit-box; + -webkit-box-orient: vertical; +} -#article-container h1::before, -#article-container h2::before, -#article-container h3::before, -#article-container h4::before, -#article-container h5::before, -#article-container h6::before, -#post .post-copyright::before, -#post .post-outdate-notice::before, -.fontawesomeIcon, -.note:not(.no-icon)::before { +#aside-content .aside-list > .aside-list-item .content > .title { + overflow: hidden; +} + +#article-container h1::before, #article-container h2::before, #article-container h3::before, #article-container h4::before, #article-container h5::before, #article-container h6::before, #post .post-copyright::before, #post .post-outdate-notice::before, .fontawesomeIcon, .note:not(.no-icon)::before { display: inline-block; font-weight: 600; font-style: normal; @@ -349,55 +198,10 @@ template { -webkit-font-smoothing: antialiased; } -.card-announcement-animation { - color: red; - animation: 0.8s linear 0s infinite normal none running announ_animation; -} - -.scroll-down-effects { - animation: 1.5s ease 0s infinite normal none running scroll-down-effect; -} - .reward-main { animation: 0.3s ease 0.1s 1 normal both running donate_effcet; } -@-webkit-keyframes scroll-down-effect { - 0% { - top: 0px; - opacity: 0.4; - } - - 50% { - top: -16px; - opacity: 1; - filter: none; - } - - 100% { - top: 0px; - opacity: 0.4; - } -} - -@keyframes scroll-down-effect { - 0% { - top: 0px; - opacity: 0.4; - } - - 50% { - top: -16px; - opacity: 1; - filter: none; - } - - 100% { - top: 0px; - opacity: 0.4; - } -} - @-webkit-keyframes header-effect { 0% { opacity: 0; @@ -453,7 +257,7 @@ template { 100% { opacity: 1; filter: none; - margin-top: 0px; + margin-top: 0; } } @@ -660,8 +464,7 @@ template { @-webkit-keyframes announ_animation { - 0%, - 100% { + 0%, 100% { transform: scale(1); filter: blur(0px); } @@ -674,8 +477,7 @@ template { @keyframes announ_animation { - 0%, - 100% { + 0%, 100% { transform: scale(1); filter: blur(0px); } @@ -709,7 +511,6 @@ template { :root { --global-font-size: 16px; --global-bg: #fff; - --font-color: #4c4948; --hr-border: #97bcfb; --hr-before-color: #6ea2f9; --search-bg: #f6f8fa; @@ -722,14 +523,12 @@ template { --tab-botton-color: #1f2d3d; --tab-button-hover-bg: #dcdcdc; --tab-button-active-bg: #fff; - --card-bg: #fff; --sidebar-bg: #f6f8fa; --btn-hover-color: #ff7242; --btn-color: #fff; --btn-bg: #307af6; --text-bg-hover: #307af6; --light-grey: #eee; - --white: #fff; --text-highlight-color: #1f2d3d; --blockquote-color: #6a737d; --blockquote-bg: rgba(73, 177, 245, 0.1); @@ -747,7 +546,7 @@ html { body { position: relative; min-height: 100%; - background: var(--global-bg); + background: var(--heo-background); color: var(--heo-fontcolor); font-size: var(--global-font-size); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei"; @@ -760,30 +559,12 @@ input::placeholder { color: var(--heo-fontcolor); } -#web_bg { - position: fixed; - z-index: -999; - background: center center / cover no-repeat local rgb(244, 244, 244); -} - -h1, -h2, -h3, -h4, -h5, -h6 { +h1, h2, h3, h4, h5, h6 { position: relative; - margin: 1rem 0px 0.7rem; - color: var(--text-highlight-color); font-weight: 700; } -h1 code, -h2 code, -h3 code, -h4 code, -h5 code, -h6 code { +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { font-size: inherit !important; } @@ -794,7 +575,7 @@ h6 code { hr { position: relative; margin: 2rem auto; - border: 2px dashed var(--hr-border); + border: 1px dashed var(--heo-theme-op); } .table-wrap { @@ -805,6 +586,8 @@ hr { table { display: table; width: 100%; + max-width: 100%; + table-layout: fixed; border-spacing: 0px; border-collapse: collapse; empty-cells: show; @@ -814,8 +597,7 @@ table thead { background: rgba(153, 169, 191, 0.1); } -table td, -table th { +table td, table th { padding: 0.3rem 0.6rem; border: 1px solid var(--light-grey); vertical-align: middle; @@ -834,27 +616,24 @@ button { cursor: pointer; } -a { - color: rgb(153, 169, 191); - text-decoration: none; - transition: all 0.2s ease 0s; - overflow-wrap: break-word; -} - a:hover { - color: rgb(48, 122, 246); + color: var(--heo-lighttext); } -#aside-content .author-info__description, -#aside-content .author-info__name, -#site-name, -#site-subtitle, -#site-title { +#aside-content .author-info__description, #aside-content .author-info__name, #site-name, #site-subtitle, #site-title { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; } .is-center { text-align: center; + display: flex; + flex-wrap: wrap; + justify-content: center; + flex-direction: row; +} + +.card-info-avatar.is-center { + flex-direction: column; } .copy-true { @@ -894,10 +673,10 @@ a:hover { img { max-width: 100%; transition: all 0.2s ease 0s; + border-style: none; } -img:not([src]), -img[src=""] { +img:not([src]), img[src=""] { opacity: 0; } @@ -910,143 +689,92 @@ img[src=""] { text-decoration: none !important; } -:root { - --hl-color: #eff; - --hl-bg: #212121; - --hltools-bg: #1c1c1c; - --hltools-color: rgba(238, 255, 255, 0.8); - --hlnumber-bg: #212121; - --hlnumber-color: rgba(238, 255, 255, 0.5); - --hlscrollbar-bg: #121212; - --hlexpand-bg: linear-gradient(180deg, rgba(33, 33, 33, 0.6), rgba(33, 33, 33, 0.9)); +figure.highlight table::-webkit-scrollbar-thumb { + background: var(--hlscrollbar-bg); } -/*figure.highlight table::-webkit-scrollbar-thumb {*/ -/* background: var(--hlscrollbar-bg);*/ -/*}*/ +figure.highlight pre .deletion { + color: rgb(191, 66, 191); +} -/*figure.highlight pre .deletion {*/ -/* color: rgb(191, 66, 191);*/ -/*}*/ +figure.highlight pre .addition { + color: rgb(16, 94, 222); +} -/*figure.highlight pre .addition {*/ -/* color: rgb(16, 94, 222);*/ -/*}*/ +figure.highlight pre .meta { + color: rgb(199, 146, 234); +} -/*figure.highlight pre .meta {*/ -/* color: rgb(199, 146, 234);*/ -/*}*/ +figure.highlight pre .comment { + color: rgb(150, 152, 150); +} -/*figure.highlight pre .comment {*/ -/* color: rgb(150, 152, 150);*/ -/*}*/ +figure.highlight pre .attribute, figure.highlight pre .css .class, figure.highlight pre .css .id, figure.highlight pre .css .pseudo, figure.highlight pre .html .doctype, figure.highlight pre .regexp, figure.highlight pre .ruby .constant, figure.highlight pre .tag .name, figure.highlight pre .variable, figure.highlight pre .xml .doctype, figure.highlight pre .xml .pi, figure.highlight pre .xml .tag .title { + color: var(--heo-red); +} -/*figure.highlight pre .attribute,*/ -/*figure.highlight pre .css .class,*/ -/*figure.highlight pre .css .id,*/ -/*figure.highlight pre .css .pseudo,*/ -/*figure.highlight pre .html .doctype,*/ -/*figure.highlight pre .regexp,*/ -/*figure.highlight pre .ruby .constant,*/ -/*figure.highlight pre .tag .name,*/ -/*figure.highlight pre .variable,*/ -/*figure.highlight pre .xml .doctype,*/ -/*figure.highlight pre .xml .pi,*/ -/*figure.highlight pre .xml .tag .title {*/ -/* color: var(--heo-red);*/ -/*}*/ +figure.highlight pre .tag { + color: var(--heo-pink); +} -/*figure.highlight pre .tag {*/ -/* color: rgb(137, 221, 255);*/ -/*}*/ +figure.highlight pre .command, figure.highlight pre .constant, figure.highlight pre .literal, figure.highlight pre .number, figure.highlight pre .params, figure.highlight pre .preprocessor { + color: var(--heo-orange); +} -/*figure.highlight pre .command,*/ -/*figure.highlight pre .constant,*/ -/*figure.highlight pre .literal,*/ -/*figure.highlight pre .number,*/ -/*figure.highlight pre .params,*/ -/*figure.highlight pre .preprocessor {*/ -/* color: var(--heo-orange);*/ -/*}*/ +figure.highlight pre .built_in { + color: var(--heo-yellow); +} -/*figure.highlight pre .built_in {*/ -/* color: var(--heo-yellow);*/ -/*}*/ +figure.highlight pre .css .rules .attribute, figure.highlight pre .formula, figure.highlight pre .header, figure.highlight pre .inheritance, figure.highlight pre .number, figure.highlight pre .ruby .class .title, figure.highlight pre .ruby .symbol, figure.highlight pre .special, figure.highlight pre .string, figure.highlight pre .value, figure.highlight pre .xml .cdata { + color: var(--heo-green); +} -/*figure.highlight pre .css .rules .attribute,*/ -/*figure.highlight pre .formula,*/ -/*figure.highlight pre .header,*/ -/*figure.highlight pre .inheritance,*/ -/*figure.highlight pre .number,*/ -/*figure.highlight pre .ruby .class .title,*/ -/*figure.highlight pre .ruby .symbol,*/ -/*figure.highlight pre .special,*/ -/*figure.highlight pre .string,*/ -/*figure.highlight pre .value,*/ -/*figure.highlight pre .xml .cdata {*/ -/* color: var(--heo-green);*/ -/*}*/ +figure.highlight pre .css .hexcolor, figure.highlight pre .keyword, figure.highlight pre .title { + color: rgb(62, 177, 223); +} -/*figure.highlight pre .css .hexcolor,*/ -/*figure.highlight pre .keyword,*/ -/*figure.highlight pre .title {*/ -/* color: rgb(137, 221, 255);*/ -/*}*/ +figure.highlight pre .coffeescript .title, figure.highlight pre .function, figure.highlight pre .javascript .title, figure.highlight pre .perl .sub, figure.highlight pre .python .decorator, figure.highlight pre .python .title, figure.highlight pre .ruby .function .title, figure.highlight pre .ruby .title .keyword { + color: var(--heo-blue); +} -/*figure.highlight pre .coffeescript .title,*/ -/*figure.highlight pre .function,*/ -/*figure.highlight pre .javascript .title,*/ -/*figure.highlight pre .perl .sub,*/ -/*figure.highlight pre .python .decorator,*/ -/*figure.highlight pre .python .title,*/ -/*figure.highlight pre .ruby .function .title,*/ -/*figure.highlight pre .ruby .title .keyword {*/ -/* color: var(--heo-blue);*/ -/*}*/ +figure.highlight pre .javascript .function, figure.highlight pre .tag .attr { + color: rgb(199, 146, 234); +} -/*figure.highlight pre .javascript .function,*/ -/*figure.highlight pre .tag .attr {*/ -/* color: rgb(199, 146, 234);*/ -/*}*/ +#article-container figure.highlight .line.marked { + background-color: rgba(97, 97, 97, 0.314); +} -/*#article-container figure.highlight .line.marked {*/ -/* background-color: rgba(97, 97, 97, 0.314);*/ -/*}*/ +#article-container figure.highlight table { + display: block; + overflow-x: auto; + overflow-y: hidden; + border: none; + transition: .3s; +} -/*#article-container figure.highlight table {*/ -/* display: block;*/ -/* overflow: auto;*/ -/* border: none;*/ -/*}*/ +#article-container figure.highlight table td { + padding: 0px; + border: none; + height: 100%; +} -/*#article-container figure.highlight table td {*/ -/* padding: 0px;*/ -/* border: none;*/ -/*}*/ +#article-container figure.highlight table td.code { + width: 100%; +} -/*#article-container figure.highlight .gutter pre {*/ -/* padding-right: 0.5rem;*/ -/* padding-left: 0.5rem;*/ -/* background-color: var(--hlnumber-bg);*/ -/* color: var(--hlnumber-color);*/ -/* text-align: right;*/ -/*}*/ +#article-container figure.highlight .code pre { + padding-right: 0.5rem; + padding-left: 0.5rem; + width: 100%; +} -/*#article-container figure.highlight .code pre {*/ -/* padding-right: 0.5rem;*/ -/* padding-left: 0.5rem;*/ -/* width: 100%;*/ -/*}*/ - -/*#article-container figure.highlight,*/ -/*#article-container pre {*/ -/* overflow: auto;*/ -/* margin: 0px 0px 1rem;*/ -/* padding: 0px;*/ -/* background: var(--hl-bg);*/ -/* color: var(--hl-color);*/ -/* line-height: 1.6;*/ -/*}*/ +#article-container figure.highlight, #article-container pre { + overflow: auto; + margin: 0px 0px 1rem; + padding: 0px; + line-height: 1.6; +} blockquote { margin: 0px 0px 1rem; @@ -1074,120 +802,48 @@ blockquote footer cite::before { content: "—"; } -/*#article-container code,*/ -/*#article-container pre {*/ -/* font-size: var(--global-font-size);*/ -/* font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", sans-serif !important;*/ -/*}*/ +#article-container code, #article-container pre { + font-size: var(--global-font-size); + font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", sans-serif !important; +} -/*#article-container code {*/ -/* padding: 0.1rem 0.2rem;*/ -/* background: rgba(27, 31, 35, 0.05);*/ -/* color: rgb(244, 116, 102);*/ -/*}*/ +#article-container code { + padding: 0.1rem 0.2rem; + background: rgba(27, 31, 35, 0.05); + color: rgb(244, 116, 102); +} -/*#article-container pre {*/ -/* padding: 10px 20px;*/ -/*}*/ +#article-container pre code { + padding: 0px; + background: 0px 0px; + color: var(--hl-color); + text-shadow: none; +} -/*#article-container pre code {*/ -/* padding: 0px;*/ -/* background: 0px 0px;*/ -/* color: var(--hl-color);*/ -/* text-shadow: none;*/ -/*}*/ +#article-container figure.highlight { + position: relative; +} -/*#article-container figure.highlight {*/ -/* position: relative;*/ -/*}*/ +#article-container figure.highlight pre { + margin: 0px; + padding: 8px 0px; + border: none; +} -/*#article-container figure.highlight pre {*/ -/* margin: 0px;*/ -/* padding: 8px 0px;*/ -/* border: none;*/ -/*}*/ +#article-container figure.highlight .caption, #article-container figure.highlight figcaption { + padding: 0.3rem 0px 0.1rem 0.7rem; + font-size: var(--global-font-size); + line-height: 1em; +} -/*#article-container figure.highlight .caption,*/ -/*#article-container figure.highlight figcaption {*/ -/* padding: 0.3rem 0px 0.1rem 0.7rem;*/ -/* font-size: var(--global-font-size);*/ -/* line-height: 1em;*/ -/*}*/ +#article-container figure.highlight .caption a, #article-container figure.highlight figcaption a { + float: right; + padding-right: 10px; + color: var(--hl-color); +} -/*#article-container figure.highlight .caption a,*/ -/*#article-container figure.highlight figcaption a {*/ -/* float: right;*/ -/* padding-right: 10px;*/ -/* color: var(--hl-color);*/ -/*}*/ - -/*#article-container figure.highlight .caption a:hover,*/ -/*#article-container figure.highlight figcaption a:hover {*/ -/* border-bottom-color: var(--hl-color);*/ -/*}*/ - -/*#article-container .highlight-tools {*/ -/* position: relative;*/ -/* display: flex;*/ -/* -webkit-box-align: center;*/ -/* align-items: center;*/ -/* overflow: hidden;*/ -/* min-height: 1.2rem;*/ -/* height: 2.15em;*/ -/* background: var(--hltools-bg);*/ -/* color: var(--hltools-color);*/ -/* font-size: var(--global-font-size);*/ -/*}*/ - -/*#article-container .highlight-tools.closed + table {*/ -/* display: none;*/ -/*}*/ - -/*#article-container .highlight-tools .expand {*/ -/* position: absolute;*/ -/* padding: 0.4rem 0.7rem;*/ -/* cursor: pointer;*/ -/* transition: transform 0.3s ease 0s;*/ -/*}*/ - -/*#article-container .highlight-tools .expand + .code-lang {*/ -/* left: 1.7rem;*/ -/*}*/ - -/*#article-container .highlight-tools .expand.closed {*/ -/* transition: all 0.3s ease 0s;*/ -/* transform: rotate(-90deg) !important;*/ -/*}*/ - -/*#article-container .highlight-tools .code-lang {*/ -/* position: absolute;*/ -/* left: 0.7rem;*/ -/* text-transform: uppercase;*/ -/* font-weight: 700;*/ -/* font-size: 1.15em;*/ -/* user-select: none;*/ -/*}*/ - -/*#article-container .highlight-tools .copy-notice {*/ -/* position: absolute;*/ -/* right: 1.7rem;*/ -/* opacity: 0;*/ -/* transition: opacity 0.4s ease 0s;*/ -/*}*/ - -/*#article-container .highlight-tools .copy-button {*/ -/* position: absolute;*/ -/* right: 0.7rem;*/ -/* cursor: pointer;*/ -/* transition: color 0.2s ease 0s;*/ -/*}*/ - -/*#article-container .highlight-tools .copy-button:hover {*/ -/* color: rgb(48, 122, 246);*/ -/*}*/ - -#article-container .gutter { - user-select: none; +#article-container figure.highlight .caption a:hover, #article-container figure.highlight figcaption a:hover { + border-bottom-color: var(--hl-color); } #article-container .gist table { @@ -1198,39 +854,6 @@ blockquote footer cite::before { border: none; } -/* 代码块增加边框 */ -#article-container pre { - border: var(--style-border-always); -} - - -/*#article-container .code-expand-btn {*/ -/* position: absolute;*/ -/* bottom: 0px;*/ -/* z-index: 10;*/ -/* width: 100%;*/ -/* background: var(--hlexpand-bg);*/ -/* text-align: center;*/ -/* font-size: var(--global-font-size);*/ -/* cursor: pointer;*/ -/*}*/ - -/*#article-container .code-expand-btn i {*/ -/* padding: 0.3rem 0px;*/ -/* color: var(--hlnumber-color);*/ -/* animation: 1.2s ease 0s infinite normal none running code-expand-key;*/ -/*}*/ - -/*#article-container .code-expand-btn.expand-done {*/ -/* display: none !important;*/ -/*}*/ - -/*#article-container .code-expand-btn:not(.expand-done) ~ pre,*/ -/*#article-container .code-expand-btn:not(.expand-done) ~ table {*/ -/* overflow: hidden;*/ -/* height: 400px;*/ -/*}*/ - @-webkit-keyframes code-expand-key { 0% { opacity: 0.6; @@ -1265,18 +888,6 @@ blockquote footer cite::before { border-left: 2px solid rgb(146, 185, 250); } -.article-sort-title { - position: relative; - margin-left: 0.5rem; - padding-bottom: 1rem; - padding-left: 1rem; - font-size: 1.72em; -} - -.article-sort-title:hover::before { - border-color: rgb(255, 114, 66); -} - .article-sort-title::before { position: absolute; top: calc((100% - 1.8rem) / 2); @@ -1286,7 +897,7 @@ blockquote footer cite::before { height: 0.5rem; border: 0.25rem solid rgb(48, 122, 246); border-radius: 0.5rem; - background: var(--card-bg); + background: var(--heo-card-bg); content: ""; line-height: 0.5rem; transition: all 0.2s ease-in-out 0s; @@ -1323,7 +934,7 @@ blockquote footer cite::before { height: 0.3rem; border: 0.15rem solid rgb(48, 122, 246); border-radius: 0.3rem; - background: var(--card-bg); + background: var(--heo-card-bg); content: ""; transition: all 0.2s ease-in-out 0s; } @@ -1499,7 +1110,7 @@ blockquote footer cite::before { align-self: flex-start; padding: 50px 40px; border-radius: 8px; - background: var(--card-bg); + background: var(--heo-card-bg); box-shadow: var(--card-box-shadow); } @@ -1561,6 +1172,10 @@ blockquote footer cite::before { transition: all 0.3s ease 0s; } +.flink#article-container .flink-list.mini > .flink-list-item { + height: 60px; +} + @media screen and (max-width: 1200px) { .flink#article-container .flink-list > .flink-list-item { width: calc(25% - 12px) !important; @@ -1604,25 +1219,35 @@ blockquote footer cite::before { transition: all 0.3s ease 0s; } +.flink#article-container .flink-list.mini > .flink-list-item a img { + width: 30px; + height: 30px; + min-width: 30px; + min-height: 30px; +} + .flink#article-container .flink-list > .flink-list-item a .img-alt { display: none; } .flink#article-container .flink-list > .flink-list-item a .flink-item-name { display: block; - padding: 16px 10px 0px 0px; - height: 40px; + padding: 0px 10px 0px 0px; font-weight: 700; font-size: 1.43em; } .flink#article-container .flink-list > .flink-list-item a .flink-item-desc { display: block; - padding: 16px 10px 16px 0px; + padding: 4px 10px 0px 0px; height: 50px; font-size: 0.93em; } +.flink#article-container .flink-list.mini > .flink-list-item a .flink-item-desc { + display: none; +} + .flink#article-container .site-card-group { display: flex; flex-wrap: wrap; @@ -1735,10 +1360,6 @@ blockquote footer cite::before { color: rgb(255, 87, 34); } -#recent-posts > .recent-post-item:not(:first-child) { - margin-top: 1rem; -} - #recent-posts > .recent-post-item { display: flex; -webkit-box-orient: horizontal; @@ -1747,7 +1368,7 @@ blockquote footer cite::before { align-items: center; height: 15.5em; border-radius: 12px 8px 8px 12px; - background: var(--card-bg); + background: var(--heo-card-bg); box-shadow: var(--card-box-shadow); transition: all 0.3s ease 0s; } @@ -1789,7 +1410,6 @@ blockquote footer cite::before { #recent-posts > .recent-post-item .post_cover img.post_bg { width: 100%; height: 100%; - transition: all 0.6s ease 0s; object-fit: cover; } @@ -1797,13 +1417,6 @@ blockquote footer cite::before { transform: scale(1.1); } -#recent-posts > .recent-post-item > .recent-post-info { - display: inline-block; - overflow: hidden; - padding: 0px 40px; - width: 55%; -} - #recent-posts > .recent-post-item > .recent-post-info.no-cover { width: 100%; } @@ -1822,8 +1435,8 @@ blockquote footer cite::before { } #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap { - color: rgb(133, 133, 133); - font-size: 90%; + color: var(--heo-fontcolor); + font-size: 0.7rem; } #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap > .post-meta-date { @@ -1854,21 +1467,6 @@ blockquote footer cite::before { margin: 0px 0.2rem; } -#recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap time { - display: none; -} - -#recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap a { - color: rgb(133, 133, 133); -} - -#recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap a:hover { - color: rgb(48, 122, 246); - cursor: pointer; - border-radius: 4px; - background-color: rgba(59, 130, 255, 0.25); -} - #recent-posts > .recent-post-item > .recent-post-info > .content { margin-top: 0.3rem; -webkit-line-clamp: 3; @@ -1937,14 +1535,10 @@ blockquote footer cite::before { } #error-wrap { - position: absolute; - top: 50%; - right: 0px; - left: 0px; - margin: 0px auto; - padding: 0px 1rem; - max-width: 1000px; - transform: translate(0px, -50%); + display: flex; + justify-content: center; + margin: 0 1rem; + width: 100%; } #error-wrap .error-content { @@ -1957,10 +1551,12 @@ blockquote footer cite::before { align-items: center; margin: 0px 1rem; height: 18rem; + max-width: 800px; border-radius: 5px; - background: var(--card-bg); + background: var(--heo-card-bg); box-shadow: var(--card-box-shadow); transition: all 0.3s ease 0s; + border: var(--style-border-always); } #error-wrap .error-content:hover { @@ -1973,6 +1569,7 @@ blockquote footer cite::before { flex-direction: column; margin: 0px; height: 25rem; + width: 100%; } } @@ -1980,6 +1577,7 @@ blockquote footer cite::before { -webkit-box-flex: 1; flex: 1 1 0%; height: 100%; + width: 600px; border-top-left-radius: 8px; border-bottom-left-radius: 8px; background-color: rgb(48, 122, 246); @@ -1992,8 +1590,7 @@ blockquote footer cite::before { -webkit-box-flex: 1; flex: 1 1 0%; width: 100%; - border-top-right-radius: 8px; - border-bottom-left-radius: 0px; + border-radius: 12px; } } @@ -2006,27 +1603,28 @@ blockquote footer cite::before { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; } + +#error-wrap .error-content .error-info .error_title { + font-size: 9em; + line-height: 1; + margin: 0; +} + @media screen and (max-width: 768px) { #error-wrap .error-content .error-info { -webkit-box-flex: 1.1; flex: 1.1 1 0%; width: 100%; + padding-bottom: 2rem; } -} -#error-wrap .error-content .error-info .error_title { - margin-top: -4rem; - font-size: 9em; -} - -@media screen and (max-width: 768px) { #error-wrap .error-content .error-info .error_title { - margin-top: -3rem; + font-size: 4rem; } } + #error-wrap .error-content .error-info .error_subtitle { - margin-top: -3.5rem; word-break: break-word; font-size: 1.6em; -webkit-line-clamp: 2; @@ -2183,21 +1781,6 @@ blockquote footer cite::before { text-align: center; } -#aside-content .aside-list > .aside-list-item { - display: flex; - -webkit-box-align: center; - align-items: center; - padding: 0.3rem 0px; -} - -#aside-content .aside-list > .aside-list-item:first-child { - padding-top: 0px; -} - -#aside-content .aside-list > .aside-list-item:not(:last-child) { - border-bottom: 1px dashed rgb(245, 245, 245); -} - #aside-content .aside-list > .aside-list-item:last-child { padding-bottom: 0px; } @@ -2224,29 +1807,28 @@ blockquote footer cite::before { flex: 1 1 0%; padding-left: 10px; word-break: break-all; + display: flex; + flex-direction: column; } #aside-content .aside-list > .aside-list-item .content > .name { -webkit-line-clamp: 1; } -#aside-content .aside-list > .aside-list-item .content > .name, -#aside-content .aside-list > .aside-list-item .content > time { +#aside-content .aside-list > .aside-list-item .content > .name, #aside-content .aside-list > .aside-list-item .content > time { display: block; color: rgb(133, 133, 133); font-size: 85%; } -#aside-content .aside-list > .aside-list-item .content > .comment, -#aside-content .aside-list > .aside-list-item .content > .title { +#aside-content .aside-list > .aside-list-item .content > .comment, #aside-content .aside-list > .aside-list-item .content > .title { color: var(--heo-fontcolor); font-size: 95%; - line-height: 1.5; + line-height: 1.3; -webkit-line-clamp: 2; } -#aside-content .aside-list > .aside-list-item .content > .comment:hover, -#aside-content .aside-list > .aside-list-item .content > .title:hover { +#aside-content .aside-list > .aside-list-item .content > .comment:hover, #aside-content .aside-list > .aside-list-item .content > .title:hover { color: rgb(48, 122, 246); } @@ -2254,73 +1836,42 @@ blockquote footer cite::before { min-height: 4.4em; } -#aside-content .card-archives ul.card-archive-list, -#aside-content .card-categories ul.card-category-list { - margin: 0px; +#aside-content .card-archives ul.card-archive-list { padding: 0px; list-style: none; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a { display: inline-block; padding: 0.15rem 0.5rem; width: 100%; color: var(--heo-fontcolor); transition: all 0.4s ease 0s; border-radius: 5px; + cursor: pointer; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover { padding: 0.15rem 0.85rem; background-color: rgb(255, 255, 255); color: rgb(66, 123, 238); border-radius: 5px; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span { display: inline-block; vertical-align: bottom; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { width: 80%; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:last-child, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:last-child { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:last-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:last-child { width: 20%; text-align: right; } -#aside-content .card-categories .card-category-list.child { - padding: 0px 0px 0px 0.8rem; -} - -#aside-content .card-categories .card-category-list > .parent > a .card-category-list-name { - width: 70% !important; -} - -#aside-content .card-categories .card-category-list > .parent > a .card-category-list-count { - width: calc(30% - 20px); - text-align: right; -} - -#aside-content .card-categories .card-category-list > .parent i { - float: right; - margin-right: -0.35rem; - padding: 0.35rem; - transition: transform 0.3s ease 0s; - transform: rotate(0deg); -} - -#aside-content .card-categories .card-category-list > .parent i.expand { - transform: rotate(-90deg); -} - #aside-content .card-webinfo .webinfo .webinfo-item { display: flex; -webkit-box-align: center; @@ -2378,8 +1929,7 @@ blockquote footer cite::before { display: block; } -#aside-content #card-toc .toc-content li, -#aside-content #card-toc .toc-content ol { +#aside-content #card-toc .toc-content li, #aside-content #card-toc .toc-content ol { list-style: none; } @@ -2440,7 +1990,7 @@ blockquote footer cite::before { } html.hide-aside .layout > div:first-child { - width: 80%; + width: 100%; } } @@ -2452,8 +2002,7 @@ blockquote footer cite::before { @-webkit-keyframes more-btn-move { - 0%, - 100% { + 0%, 100% { transform: translateX(0px); } @@ -2464,8 +2013,7 @@ blockquote footer cite::before { @keyframes more-btn-move { - 0%, - 100% { + 0%, 100% { transform: translateX(0px); } @@ -2514,15 +2062,11 @@ blockquote footer cite::before { } } -#post-comment .comment-head { - margin-bottom: 1rem; -} - #post-comment .comment-head .comment-headline { display: inline-block; vertical-align: middle; font-weight: 700; - font-size: 1.43em; + font-size: 20px; } #post-comment .comment-head #comment-switch { @@ -2637,16 +2181,9 @@ blockquote footer cite::before { width: 100%; } -#page-header #scroll-down .scroll-down-effects, -#page-header #site-subtitle, -#page-header #site-title { - text-align: center; - line-height: 1.5; -} - #page-header #site-title { margin: 0px; - color: var(--white); + color: var(--heo-white); font-size: 1.85em; } @@ -2696,13 +2233,6 @@ blockquote footer cite::before { display: none; } -#page-header #scroll-down .scroll-down-effects { - position: relative; - width: 100%; - color: var(--light-grey); - font-size: 30px; -} - #page-header.not-home-page { height: 20rem; } @@ -2774,10 +2304,6 @@ blockquote footer cite::before { background: 0px center; } -#page-header.not-top-img #nav { - background: rgba(255, 255, 255, 0.8); -} - #page-header.not-top-img #nav a { color: var(--heo-fontcolor); text-shadow: none; @@ -2785,30 +2311,20 @@ blockquote footer cite::before { #page-header.nav-fixed #nav { position: fixed; - top: -60px; + top: 0px; z-index: 91; - background: rgba(255, 255, 255, 0.8); - transition: transform 0.2s ease-in-out 0s, opacity 0.2s ease-in-out 0s; + transition: 0.3s; } -#page-header.nav-fixed #nav #site-name, -#page-header.nav-fixed #nav #toggle-menu, -#page-header.nav-fixed #nav a { +#page-header.nav-fixed #nav #site-name, #page-header.nav-fixed #nav #toggle-menu, #page-header.nav-fixed #nav a { color: var(--heo-fontcolor); text-shadow: none; } -#page-header.nav-fixed #nav #site-name:hover, -#page-header.nav-fixed #nav #toggle-menu:hover, -#page-header.nav-fixed #nav a:hover { +#page-header.nav-fixed #nav #site-name:hover, #page-header.nav-fixed #nav #toggle-menu:hover, #page-header.nav-fixed #nav a:hover { color: rgb(48, 122, 246); } -#page-header.nav-visible #nav { - transition: all 0.5s ease 0s; - transform: translate3d(0px, 100%, 0px); -} - #page-header.nav-visible + .layout > .aside-content > .sticky_layout { top: 70px; transition: top 0.5s ease 0s; @@ -2832,14 +2348,13 @@ blockquote footer cite::before { float: right; } -#post > #post-info #post-meta, -#post > #post-info #post-meta a { +#post > #post-info #post-meta, #post > #post-info #post-meta a { color: rgb(120, 129, 138); } #post-info .post-title { margin-bottom: 0.4rem; - color: var(--white); + color: var(--heo-white); font-weight: 400; font-size: 2.5em; line-height: 1.5; @@ -2861,12 +2376,6 @@ blockquote footer cite::before { font-size: 95%; } -@media screen and (min-width: 768px) { - /*#post-info #post-meta > .meta-secondline > span:first-child {*/ - /* display: none;*/ - /*}*/ -} - @media screen and (max-width: 768px) { #post-info #post-meta { font-size: 90%; @@ -2909,6 +2418,7 @@ blockquote footer cite::before { font-size: 1.3em; opacity: 0; transition: all 0.5s ease 0s; + outline: 1px solid var(--heo-none); } @media screen and (max-width: 768px) { @@ -2929,17 +2439,17 @@ blockquote footer cite::before { } #nav #toggle-menu:hover { - color: var(--white); + color: var(--heo-white); } #nav a { - color: var(--light-grey); + color: var(--heo-white); padding: 0.3rem 0.4rem 0px; border-radius: 5px; } #nav a:hover { - color: var(--white); + color: var(--heo-white); background: rgba(0, 0, 0, 0.25); } @@ -2949,16 +2459,6 @@ blockquote footer cite::before { cursor: pointer; } -#nav .menus_items { - display: inline; -} - -#nav .menus_items .menus_item { - position: relative; - display: inline-block; - padding: 0px 0.4rem 0px 0px; -} - #nav .menus_items .menus_item:hover .menus_item_child { display: block; } @@ -2993,6 +2493,24 @@ blockquote footer cite::before { content: ""; } +#nav .menus_items .menus_item:last-child .menus_item_child::after { + position: absolute; + top: -60px; + right: 0px; + width: 50%; + height: 60px; + content: ""; +} + +#nav .menus_items .menus_item:first-child .menus_item_child::after { + position: absolute; + top: -60px; + left: 0px; + width: 50%; + height: 60px; + content: ""; +} + #nav.hide-menu #toggle-menu { display: inline-block !important; } @@ -3031,8 +2549,7 @@ blockquote footer cite::before { text-align: center; } -li, -ul { +li, ul { list-style: none; display: block; margin: 0px; @@ -3127,12 +2644,6 @@ ul { } } -#pagination { - overflow: hidden; - margin-top: 1rem; - width: 100%; -} - #pagination .pagination { text-align: center; } @@ -3149,13 +2660,12 @@ ul { #pagination .page-number.current { background: rgb(0, 121, 255); - color: var(--white); + color: var(--heo-white); cursor: default; border-radius: 5px; } -#pagination img.next-cover, -#pagination img.prev-cover { +#pagination img.next-cover, #pagination img.prev-cover { position: absolute; width: 100%; height: 100%; @@ -3172,9 +2682,8 @@ ul { transform: translate(0px, -50%); } -#pagination .next_info, -#pagination .prev_info { - color: var(--white); +#pagination .next_info, #pagination .prev_info { + color: var(--heo-white); font-weight: 500; } @@ -3186,47 +2695,35 @@ ul { width: 100% !important; } -#pagination .next-post .label, -#pagination .prev-post .label { +#pagination .next-post .label, #pagination .prev-post .label { color: var(--light-grey); text-transform: uppercase; font-size: 90%; } -#pagination .next-post, -#pagination .prev-post { +#pagination .next-post, #pagination .prev-post { width: 50%; } @media screen and (max-width: 768px) { - #pagination .next-post, - #pagination .prev-post { + #pagination .next-post, #pagination .prev-post { width: 100%; } } -#pagination .next-post a, -#pagination .prev-post a { +#pagination .next-post a, #pagination .prev-post a { position: relative; display: block; overflow: hidden; height: 150px; } -#pagination .next-post:hover img.next-cover, -#pagination .next-post:hover img.prev-cover, -#pagination .prev-post:hover img.next-cover, -#pagination .prev-post:hover img.prev-cover { +#pagination .next-post:hover img.next-cover, #pagination .next-post:hover img.prev-cover, #pagination .prev-post:hover img.next-cover, #pagination .prev-post:hover img.prev-cover { opacity: 0.8; transform: scale(1.1); } -#pagination.pagination-post { - margin-top: 2rem; - background: rgb(0, 0, 0); -} - #article-container { overflow-wrap: break-word; } @@ -3250,6 +2747,8 @@ ul { #article-container iframe { margin: 0px 0px 1rem; + width: 100%; + height: fit-content; } #article-container kbd { @@ -3267,21 +2766,11 @@ ul { line-height: 1em; } -#article-container h1, -#article-container h2, -#article-container h3, -#article-container h4, -#article-container h5, -#article-container h6 { +#article-container h1, #article-container h2, #article-container h3, #article-container h4, #article-container h5, #article-container h6 { transition: all 0.2s ease-out 0s; } -#article-container h1::before, -#article-container h2::before, -#article-container h3::before, -#article-container h4::before, -#article-container h5::before, -#article-container h6::before { +#article-container h1::before, #article-container h2::before, #article-container h3::before, #article-container h4::before, #article-container h5::before, #article-container h6::before { position: absolute; top: calc(50% - 0.35rem); color: rgb(242, 186, 75); @@ -3290,19 +2779,10 @@ ul { transition: all 0.2s ease-out 0s; } -#article-container h1:hover::before, -#article-container h2:hover::before, -#article-container h3:hover::before, -#article-container h4:hover::before, -#article-container h5:hover::before, -#article-container h6:hover::before { +#article-container h1:hover::before, #article-container h2:hover::before, #article-container h3:hover::before, #article-container h4:hover::before, #article-container h5:hover::before, #article-container h6:hover::before { color: rgb(48, 122, 246); } -#article-container h1 { - padding-left: 1.4rem; -} - #article-container h1 code { font-size: 1rem; } @@ -3312,14 +2792,6 @@ ul { font-size: 1rem; } -#article-container h1:hover { - padding-left: 1.6rem; -} - -#article-container h2 { - padding-left: 1.3rem; -} - #article-container h2 code { font-size: 0.9rem; } @@ -3329,14 +2801,6 @@ ul { font-size: 0.9rem; } -#article-container h2:hover { - padding-left: 1.5rem; -} - -#article-container h3 { - padding-left: 1.2rem; -} - #article-container h3 code { font-size: 0.8rem; } @@ -3346,14 +2810,6 @@ ul { font-size: 0.8rem; } -#article-container h3:hover { - padding-left: 1.4rem; -} - -#article-container h4 { - padding-left: 1.1rem; -} - #article-container h4 code { font-size: 0.7rem; } @@ -3363,14 +2819,6 @@ ul { font-size: 0.7rem; } -#article-container h4:hover { - padding-left: 1.3rem; -} - -#article-container h5 { - padding-left: 1rem; -} - #article-container h5 code { font-size: 0.6rem; } @@ -3380,14 +2828,6 @@ ul { font-size: 0.6rem; } -#article-container h5:hover { - padding-left: 1.2rem; -} - -#article-container h6 { - padding-left: 1rem; -} - #article-container h6 code { font-size: 0.6rem; } @@ -3397,12 +2837,7 @@ ul { font-size: 0.6rem; } -#article-container h6:hover { - padding-left: 1.2rem; -} - -#article-container ol, -#article-container ul { +#article-container ol, #article-container ul { margin-top: 0.4rem; padding: 0px 0px 0px 0.8rem; list-style: none; @@ -3411,47 +2846,36 @@ ul { @media screen and (max-width: 768px) { - #article-container ol, - #article-container ul { + #article-container ol, #article-container ul { padding: 0px 0px 0px 0.4rem; } } -#article-container ol p, -#article-container ul p { +#article-container ol p, #article-container ul p { margin: 0px 0px 0.5rem; } -#article-container ol ol, -#article-container ol ul, -#article-container ul ol, -#article-container ul ul { +#article-container ol ol, #article-container ol ul, #article-container ul ol, #article-container ul ul { padding-left: 0.6rem; } @media screen and (max-width: 768px) { - #article-container ol ol, - #article-container ol ul, - #article-container ul ol, - #article-container ul ul { + #article-container ol ol, #article-container ol ul, #article-container ul ol, #article-container ul ul { padding-left: 0.2rem; } } -#article-container ol li:not(.tab), -#article-container ul li:not(.tab) { +#article-container ol li:not(.tab), #article-container ul li:not(.tab) { position: relative; margin: 0.2rem 0px; } -#article-container ol li:hover::before, -#article-container ul li:hover::before { +#article-container ol li:hover::before, #article-container ul li:hover::before { transform: rotate(360deg); } -#article-container ol li::before, -#article-container ul li::before { +#article-container ol li::before, #article-container ul li::before { position: absolute; top: 0px; left: 0px; @@ -3514,7 +2938,7 @@ ul { font-size: 0.85em; transition: all 0.2s ease-in-out 0s; background: rgb(48, 122, 246); - color: var(--white); + color: var(--heo-white); } #post .tag_share .post-meta__tags:hover { @@ -3522,6 +2946,11 @@ ul { background: 0px 0px; } +#post .tag_share .post-meta__tags span.tags-punctuation { + font-size: 12px; + margin-right: 1px; +} + #post .tag_share .post_share { display: inline-block; float: right; @@ -3541,15 +2970,6 @@ ul { line-height: 1.85em; } -#post .post-copyright { - position: relative; - margin: 2rem 0px 0.5rem; - padding: 0.5rem 0.8rem; - transition: box-shadow 0.3s ease-in-out 0s; - background: rgb(22, 24, 26); - border-radius: 12px !important; -} - #post .post-copyright::before { position: absolute; top: 0.1rem; @@ -3609,12 +3029,7 @@ ul { .relatedPosts { margin-top: 2rem; -} - -.relatedPosts > .headline { - margin-bottom: 5px; - font-weight: 700; - font-size: 1.43em; + -webkit-user-select: none; } .relatedPosts > .relatedPosts-list > div { @@ -3653,6 +3068,7 @@ ul { opacity: 0.4; transition: all 0.6s ease 0s; object-fit: cover; + filter: brightness(0.9); } .relatedPosts > .relatedPosts-list .content { @@ -3669,7 +3085,7 @@ ul { } .relatedPosts > .relatedPosts-list .content .title { - color: var(--white); + color: var(--heo-white); -webkit-line-clamp: 2; } @@ -3761,8 +3177,7 @@ ul { transform: translate(0px, 0px) !important; } -#rightside > div > a, -#rightside > div > button { +#rightside > div > a, #rightside > div > button { display: block; margin-bottom: 2px; width: 30px; @@ -3773,8 +3188,7 @@ ul { font-size: 16px; } -#rightside > div > a:hover, -#rightside > div > button:hover { +#rightside > div > a:hover, #rightside > div > button:hover { background-color: var(--btn-hover-color); } @@ -3796,11 +3210,15 @@ ul { #sidebar #menu-mask { position: fixed; - z-index: 102; + z-index: 1001; display: none; width: 100%; height: 100%; - background: rgba(0, 0, 0, 0.8); + background: var(--heo-maskbg); + backdrop-filter: saturate(180%) blur(20px); + -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); + animation: 0.6s ease 0s 1 normal none running to_show; } #sidebar #sidebar-menus { @@ -3811,10 +3229,11 @@ ul { overflow: hidden auto; width: 300px; height: 100%; - background: var(--sidebar-bg); + background: var(--heo-background); transition: all 0.5s ease 0s; padding-top: 30px; z-index: 1001; + border-left: var(--style-border-always); } #sidebar #sidebar-menus.open { @@ -3842,6 +3261,12 @@ ul { border-radius: 8px; } +@media screen and (max-width: 768px) { + #sidebar #sidebar-menus .back-menu-list-groups .back-menu-list .back-menu-item { + width: calc(50% - 16px); + } +} + #sidebar #sidebar-menus .back-home-button { display: none; } @@ -3901,6 +3326,12 @@ ul { font-weight: bold; } +@media screen and (max-width: 768px) { + #sidebar #sidebar-menus .menus_items .site-page { + font-weight: normal; + } +} + #sidebar #sidebar-menus .menus_items .site-page span:hover { color: rgb(48, 122, 246); } @@ -3966,7 +3397,7 @@ ul { border-radius: 8px; border: var(--style-border-always); background: var(--heo-card-bg); - font-size: 14px; + font-size: 14px !important; } #sidebar #sidebar-menus .card-tag-cloud a sup { @@ -3993,6 +3424,7 @@ ul { border: var(--style-border-always); display: flex; align-items: center; + font-size: 14px; } #sidebar #sidebar-menus .sidebar-menu-item a.menu-child i { @@ -4010,57 +3442,32 @@ ul { justify-content: space-between; } -#vcomment, -#waline { +#vcomment, #waline { font-size: 1.1em; } -#vcomment .vbtn, -#waline .vbtn { +#vcomment .vbtn, #waline .vbtn { border: none; background: var(--btn-bg); color: var(--btn-color); } -#vcomment .vbtn:hover, -#waline .vbtn:hover { +#vcomment .vbtn:hover, #waline .vbtn:hover { background: var(--btn-hover-color); } -#vcomment .vimg, -#waline .vimg { +#vcomment .vimg, #waline .vimg { transition: all 0.3s ease 0s; } -#vcomment .vimg:hover, -#waline .vimg:hover { +#vcomment .vimg:hover, #waline .vimg:hover { transform: rotate(360deg); } -#vcomment .vcards .vcard .vcontent.expand::after, -#vcomment .vcards .vcard .vcontent.expand::before, -#waline .vcards .vcard .vcontent.expand::after, -#waline .vcards .vcard .vcontent.expand::before { +#vcomment .vcards .vcard .vcontent.expand::after, #vcomment .vcards .vcard .vcontent.expand::before, #waline .vcards .vcard .vcontent.expand::after, #waline .vcards .vcard .vcontent.expand::before { z-index: 22; } -.fireworks { - position: fixed; - top: 0px; - left: 0px; - z-index: 9999; - pointer-events: none; -} - -.medium-zoom-image--opened { - z-index: 99999 !important; - margin: 0px !important; -} - -.medium-zoom-overlay { - z-index: 99999 !important; -} - .mermaid { overflow: auto; margin: 0px 0px 1rem; @@ -4075,8 +3482,7 @@ ul { filter: none; } -.fb-comments iframe, -.utterances { +.fb-comments iframe, .utterances { width: 100% !important; } @@ -4102,288 +3508,24 @@ mjx-container[jax="CHTML"][display="true"] { padding-bottom: 0.3rem; } -.aplayer { -} - #article-container .aplayer { margin: 0px 0px 1rem; } -#article-container .aplayer ol, -#article-container .aplayer ul { +#article-container .aplayer ol, #article-container .aplayer ul { margin: 0px; padding: 0px; } -#article-container .aplayer ol li, -#article-container .aplayer ul li { +#article-container .aplayer ol li, #article-container .aplayer ul li { margin: 0px; padding: 0px 15px; } -#article-container .aplayer ol li::before, -#article-container .aplayer ul li::before { +#article-container .aplayer ol li::before, #article-container .aplayer ul li::before { content: none; } -#article-container .btn-center { - margin: 0px 0px 1rem; - text-align: center; -} - -#article-container .btn-beautify { - display: inline-block; - margin: 0px 0.2rem 0.3rem; - padding: 0px 1rem; - background-color: rgb(119, 119, 119); - color: rgb(255, 255, 255); - line-height: 2; -} - -#article-container .btn-beautify i + span { - margin-left: 0.3rem; -} - -#article-container .btn-beautify:not(.block) + .btn-beautify:not(.block) { - margin: 0px 0.2rem 1rem; -} - -#article-container .btn-beautify.block { - display: block; - margin: 0px 0px 1rem; - width: fit-content; -} - -#article-container .btn-beautify.block.center { - margin: 0px auto 1rem; -} - -#article-container .btn-beautify.block.right { - margin: 0px 0px 1rem auto; -} - -#article-container .btn-beautify.larger { - padding: 0.3rem 1.3rem; -} - -#article-container .btn-beautify:hover { - text-decoration: none; -} - -#article-container .btn-beautify.blue { - background-color: rgb(66, 139, 202); -} - -#article-container .btn-beautify.pink { - background-color: rgb(255, 105, 180); -} - -#article-container .btn-beautify.red { - background-color: red; -} - -#article-container .btn-beautify.purple { - background-color: rgb(111, 66, 193); -} - -#article-container .btn-beautify.orange { - background-color: rgb(255, 140, 0); -} - -#article-container .btn-beautify.green { - background-color: rgb(92, 184, 92); -} - -#article-container .btn-beautify.outline { - border: 1px solid rgb(119, 119, 119); - background-color: transparent; - color: rgb(119, 119, 119); - transition: all 0.3s ease 0s; -} - -#article-container .btn-beautify.outline.button--animated::before { - background: rgb(119, 119, 119); -} - -#article-container .btn-beautify.outline:hover { - color: rgb(255, 255, 255) !important; -} - -#article-container .btn-beautify.outline.blue { - border-color: rgb(66, 139, 202); - color: rgb(66, 139, 202); -} - -#article-container .btn-beautify.outline.blue.button--animated::before { - background: rgb(66, 139, 202); -} - -#article-container .btn-beautify.outline.pink { - border-color: rgb(255, 105, 180); - color: rgb(255, 105, 180); -} - -#article-container .btn-beautify.outline.pink.button--animated::before { - background: rgb(255, 105, 180); -} - -#article-container .btn-beautify.outline.red { - border-color: red; - color: red; -} - -#article-container .btn-beautify.outline.red.button--animated::before { - background: red; -} - -#article-container .btn-beautify.outline.purple { - border-color: rgb(111, 66, 193); - color: rgb(111, 66, 193); -} - -#article-container .btn-beautify.outline.purple.button--animated::before { - background: rgb(111, 66, 193); -} - -#article-container .btn-beautify.outline.orange { - border-color: rgb(255, 140, 0); - color: rgb(255, 140, 0); -} - -#article-container .btn-beautify.outline.orange.button--animated::before { - background: rgb(255, 140, 0); -} - -#article-container .btn-beautify.outline.green { - border-color: rgb(92, 184, 92); - color: rgb(92, 184, 92); -} - -#article-container .btn-beautify.outline.green.button--animated::before { - background: rgb(92, 184, 92); -} - -figure.gallery-group { - position: relative; - float: left; - overflow: hidden; - margin: 0.3rem 0.2rem; - width: calc(50% - 0.4rem); - height: 250px; - border-radius: 5px; - background: rgb(0, 0, 0); - transform: translate3d(0px, 0px, 0px); -} - -@media screen and (max-width: 600px) { - figure.gallery-group { - width: calc(100% - 0.4rem); - } -} - -figure.gallery-group:hover img { - opacity: 0.4; - transform: translate3d(0px, 0px, 0px); -} - -figure.gallery-group:hover .gallery-group-name::after { - transform: translate3d(0px, 0px, 0px); -} - -figure.gallery-group:hover p { - opacity: 1; - filter: none; - transform: translate3d(0px, 0px, 0px); -} - -figure.gallery-group img { - position: relative; - max-width: none; - width: calc(100% + 20px); - height: 250px; - backface-visibility: hidden; - opacity: 0.8; - transition: opacity 0.35s ease 0s, transform 0.35s ease 0s; - transform: translate3d(-10px, 0px, 0px); - object-fit: cover; - margin: 0px !important; -} - -figure.gallery-group figcaption { - position: absolute; - top: 0px; - left: 0px; - padding: 1.5rem; - width: 100%; - height: 100%; - color: rgb(255, 255, 255); - text-transform: uppercase; - backface-visibility: hidden; -} - -figure.gallery-group figcaption > a { - position: absolute; - inset: 0px; - z-index: 1000; - opacity: 0; -} - -figure.gallery-group p { - margin: 0px; - padding: 0.4rem 0px 0px; - letter-spacing: 1px; - font-size: 1.1em; - line-height: 1.5; - opacity: 0; - transition: opacity 0.35s ease 0s, transform 0.35s ease 0s; - transform: translate3d(100%, 0px, 0px); - -webkit-line-clamp: 4; -} - -figure.gallery-group .gallery-group-name { - position: relative; - margin: 0px; - padding: 0.4rem 0px; - font-weight: 700; - font-size: 1.65em; - line-height: 1.5; - -webkit-line-clamp: 2; -} - -figure.gallery-group .gallery-group-name::after { - position: absolute; - bottom: 0px; - left: 0px; - width: 100%; - height: 2px; - background: rgb(255, 255, 255); - content: ""; - transition: transform 0.35s ease 0s; - transform: translate3d(-100%, 0px, 0px); -} - -.gallery-group-main { - overflow: auto; - padding: 0px 0px 0.8rem; -} - -.justified-gallery { - margin: 0px 0px 0.8rem; -} - -.justified-gallery img { - opacity: 0; -} - -.justified-gallery .img-alt { - display: none; -} - -.justified-gallery .fancybox { - width: auto; - text-align: inherit; -} - blockquote.pullquote { position: relative; max-width: 45%; @@ -4417,76 +3559,6 @@ blockquote.pullquote.right { height: 100%; } -.hide-block > .hide-button, -.hide-inline > .hide-button { - display: inline-block; - padding: 0.3rem 1rem; - background: rgb(48, 122, 246); - color: var(--white); -} - -.hide-block > .hide-button.open, -.hide-inline > .hide-button.open { - display: none; -} - -.hide-block > .hide-button.open + div, -.hide-inline > .hide-button.open + div { - display: block; -} - -.hide-block > .hide-button.open + span, -.hide-inline > .hide-button.open + span { - display: inline; -} - -.hide-block > .hide-content, -.hide-inline > .hide-content { - display: none; -} - -.hide-inline > .hide-button { - margin: 0px 0.3rem; -} - -.hide-inline > .hide-content { - margin: 0px 0.3rem; -} - -.hide-block { - margin: 0px 0px 0.8rem; -} - -.hide-toggle { - margin-bottom: 1rem; - border: 1px solid rgb(240, 240, 240); -} - -.hide-toggle > .hide-button { - padding: 0.3rem 0.5rem; - background: rgb(240, 240, 240); - color: rgb(31, 45, 61); - cursor: pointer; -} - -.hide-toggle > .hide-button > i { - font-size: 1.2em; - transition: all 0.3s ease 0s; -} - -.hide-toggle > .hide-button.open i { - transform: rotate(90deg); -} - -.hide-toggle > .hide-button.open + div { - display: block; -} - -.hide-toggle > .hide-content { - display: none; - margin: 1.5rem 1.2rem; -} - #article-container .inline-img { display: inline; margin: 0px 3px; @@ -4494,460 +3566,49 @@ blockquote.pullquote.right { vertical-align: text-bottom; } -.hl-label { - padding: 2px 4px; - border-radius: 3px; - color: rgb(255, 255, 255); -} - -.hl-label.default { - background-color: rgb(119, 119, 119); -} - -.hl-label.blue { - background-color: rgb(66, 139, 202); -} - -.hl-label.pink { - background-color: rgb(255, 105, 180); -} - -.hl-label.red { - background-color: red; -} - -.hl-label.purple { - background-color: rgb(111, 66, 193); -} - -.hl-label.orange { - background-color: rgb(255, 140, 0); -} - -.hl-label.green { - background-color: rgb(92, 184, 92); -} - .note { position: relative; margin: 0px 0px 1rem; - padding: 15px; - border-radius: 3px; + padding: 1px 1rem; + border-radius: 8px; + border: 1px solid } -.note.icon { - padding-left: 2.25rem; -} - -.note > .note-icon { - position: absolute; - top: calc(50% - 0.4rem); - left: 0.7rem; - font-size: larger; -} - -.note.blue:not(.disabled) { - border-left-color: rgb(66, 139, 202) !important; -} - -.note.blue:not(.disabled).modern { - color: rgb(66, 139, 202); - border-left-color: transparent !important; -} - -.note.blue:not(.disabled):not(.simple) { - background: rgb(227, 238, 247) !important; -} - -.note.blue > .note-icon { - color: rgb(66, 139, 202); -} - -.note.pink:not(.disabled) { - border-left-color: rgb(255, 105, 180) !important; -} - -.note.pink:not(.disabled).modern { - color: rgb(255, 105, 180); - border-left-color: transparent !important; -} - -.note.pink:not(.disabled):not(.simple) { - background: rgb(255, 233, 244) !important; -} - -.note.pink > .note-icon { - color: rgb(255, 105, 180); -} - -.note.red:not(.disabled) { - border-left-color: red !important; -} - -.note.red:not(.disabled).modern { - color: red; - border-left-color: transparent !important; -} - -.note.red:not(.disabled):not(.simple) { - background: rgb(255, 217, 217) !important; -} - -.note.red > .note-icon { - color: red; -} - -.note.purple:not(.disabled) { - border-left-color: rgb(111, 66, 193) !important; -} - -.note.purple:not(.disabled).modern { - color: rgb(111, 66, 193); - border-left-color: transparent !important; -} - -.note.purple:not(.disabled):not(.simple) { - background: rgb(233, 227, 246) !important; -} - -.note.purple > .note-icon { - color: rgb(111, 66, 193); -} - -.note.orange:not(.disabled) { - border-left-color: rgb(255, 140, 0) !important; -} - -.note.orange:not(.disabled).modern { - color: rgb(255, 140, 0); - border-left-color: transparent !important; -} - -.note.orange:not(.disabled):not(.simple) { - background: rgb(255, 238, 217) !important; -} - -.note.orange > .note-icon { - color: rgb(255, 140, 0); -} - -.note.green:not(.disabled) { - border-left-color: rgb(92, 184, 92) !important; -} - -.note.green:not(.disabled).modern { - color: rgb(92, 184, 92); - border-left-color: transparent !important; -} - -.note.green:not(.disabled):not(.simple) { - background: rgb(231, 244, 231) !important; -} - -.note.green > .note-icon { - color: rgb(92, 184, 92); -} - -.note.simple { - border-width: 1px 1px 1px 5px; - border-style: solid; - border-color: rgb(238, 238, 238); - border-image: initial; -} - -.note.modern { - background-color: rgb(245, 245, 245); - color: rgb(76, 73, 72); - border: 1px solid transparent !important; -} - -.note.flat { - border-top: initial; - border-right: initial; - border-bottom: initial; - border-image: initial; - border-left: 5px solid rgb(238, 238, 238); - background-color: rgb(249, 249, 249); - color: rgb(76, 73, 72); -} - -.note h2, -.note h3, -.note h4, -.note h5, -.note h6 { +.note h2, .note h3, .note h4, .note h5, .note h6 { margin-top: 3px; margin-bottom: 0px; border-bottom: initial; padding-top: 0px !important; } -.note blockquote:first-child, -.note img:first-child, -.note ol:first-child, -.note p:first-child, -.note pre:first-child, -.note table:first-child, -.note ul:first-child { - margin-top: 0px !important; +.note.default { + border-color: rgb(225 225 225); + background: rgb(248 248 248); + color: var(--heo-gray); } -.note blockquote:last-child, -.note img:last-child, -.note ol:last-child, -.note p:last-child, -.note pre:last-child, -.note table:last-child, -.note ul:last-child { - margin-bottom: 0px !important; - font-size: 14px !important; +.note.info { + border-color: #b3e4ff; + background: #d9f1ff; + color: #1aadff; } -.note:not(.no-icon) { - padding-left: 2.25rem; +.note.success { + border-color: #acffdd; + background: #d6ffee; + color: #00bd6f; } -.note:not(.no-icon)::before { - position: absolute; - top: calc(50% - 15px); - left: 0.7rem; - font-size: larger; +.note.warning { + border-color: #fcedb7; + background: #fdf6db; + color: #daac0a; } -.note.default.flat { - background: rgb(247, 247, 247); -} - -.note.default.modern { - border-color: rgb(225, 225, 225); - background: rgb(243, 243, 243); - color: rgb(102, 102, 102); -} - -.note.default.modern a:not(.btn) { - color: rgb(102, 102, 102); -} - -.note.default.modern a:not(.btn):hover { - color: rgb(69, 69, 69); -} - -.note.default:not(.modern) { - border-left-color: rgb(119, 119, 119); -} - -.note.default:not(.modern) h2, -.note.default:not(.modern) h3, -.note.default:not(.modern) h4, -.note.default:not(.modern) h5, -.note.default:not(.modern) h6 { - color: rgb(119, 119, 119); -} - -.note.default:not(.no-icon)::before { - content: ""; -} - -.note.default:not(.no-icon):not(.modern)::before { - color: rgb(119, 119, 119); -} - -.note.primary.flat { - background: rgb(245, 240, 250); -} - -.note.primary.modern { - border-color: rgb(225, 194, 255); - background: rgb(243, 218, 255); - color: rgb(111, 66, 193); -} - -.note.primary.modern a:not(.btn) { - color: rgb(111, 66, 193); -} - -.note.primary.modern a:not(.btn):hover { - color: rgb(69, 50, 152); -} - -.note.primary:not(.modern) { - border-left-color: rgb(111, 66, 193); -} - -.note.primary:not(.modern) h2, -.note.primary:not(.modern) h3, -.note.primary:not(.modern) h4, -.note.primary:not(.modern) h5, -.note.primary:not(.modern) h6 { - color: rgb(111, 66, 193); -} - -.note.primary:not(.no-icon)::before { - content: ""; -} - -.note.primary:not(.no-icon):not(.modern)::before { - color: rgb(111, 66, 193); -} - -.note.info.flat { - background: rgb(238, 247, 250); -} - -.note.info.modern { - border-color: rgb(179, 229, 239); - background: rgb(217, 237, 247); - color: rgb(49, 112, 143); -} - -.note.info.modern a:not(.btn) { - color: rgb(49, 112, 143); -} - -.note.info.modern a:not(.btn):hover { - color: rgb(33, 87, 97); -} - -.note.info:not(.modern) { - border-left-color: rgb(66, 139, 202); -} - -.note.info:not(.modern) h2, -.note.info:not(.modern) h3, -.note.info:not(.modern) h4, -.note.info:not(.modern) h5, -.note.info:not(.modern) h6 { - color: rgb(66, 139, 202); -} - -.note.info:not(.no-icon)::before { - content: ""; -} - -.note.info:not(.no-icon):not(.modern)::before { - color: rgb(66, 139, 202); -} - -.note.success.flat { - background: rgb(239, 248, 240); -} - -.note.success.modern { - border-color: rgb(208, 230, 190); - background: rgb(223, 240, 216); - color: rgb(60, 118, 61); -} - -.note.success.modern a:not(.btn) { - color: rgb(60, 118, 61); -} - -.note.success.modern a:not(.btn):hover { - color: rgb(50, 86, 44); -} - -.note.success:not(.modern) { - border-left-color: rgb(92, 184, 92); -} - -.note.success:not(.modern) h2, -.note.success:not(.modern) h3, -.note.success:not(.modern) h4, -.note.success:not(.modern) h5, -.note.success:not(.modern) h6 { - color: rgb(92, 184, 92); -} - -.note.success:not(.no-icon)::before { - content: ""; -} - -.note.success:not(.no-icon):not(.modern)::before { - color: rgb(92, 184, 92); -} - -.note.warning.flat { - background: rgb(253, 248, 234); -} - -.note.warning.modern { - border-color: rgb(250, 228, 205); - background: rgb(252, 244, 227); - color: rgb(138, 109, 59); -} - -.note.warning.modern a:not(.btn) { - color: rgb(138, 109, 59); -} - -.note.warning.modern a:not(.btn):hover { - color: rgb(113, 79, 48); -} - -.note.warning:not(.modern) { - border-left-color: rgb(240, 173, 78); -} - -.note.warning:not(.modern) h2, -.note.warning:not(.modern) h3, -.note.warning:not(.modern) h4, -.note.warning:not(.modern) h5, -.note.warning:not(.modern) h6 { - color: rgb(240, 173, 78); -} - -.note.warning:not(.no-icon)::before { - content: ""; -} - -.note.warning:not(.no-icon):not(.modern)::before { - color: rgb(240, 173, 78); -} - -.note.danger.flat { - background: rgb(252, 241, 242); -} - -.note.danger.modern { - border-color: rgb(235, 205, 210); - background: rgb(242, 223, 223); - color: rgb(169, 68, 66); -} - -.note.danger.modern a:not(.btn) { - color: rgb(169, 68, 66); -} - -.note.danger.modern a:not(.btn):hover { - color: rgb(132, 51, 63); -} - -.note.danger:not(.modern) { - border-left-color: rgb(217, 83, 79); -} - -.note.danger:not(.modern) h2, -.note.danger:not(.modern) h3, -.note.danger:not(.modern) h4, -.note.danger:not(.modern) h5, -.note.danger:not(.modern) h6 { - color: rgb(217, 83, 79); -} - -.note.danger:not(.no-icon)::before { - content: ""; -} - -.note.danger:not(.no-icon):not(.modern)::before { - color: rgb(217, 83, 79); -} - -#article-container .tabs { - position: relative; - margin: 0px 0px 1rem; - border-right: 1px solid var(--tab-border-color); - border-bottom: 1px solid var(--tab-border-color); - border-left: 1px solid var(--tab-border-color); +.note.danger { + border-color: #ffb7b3; + background: #ffdbd9; + color: #ff281a; } #article-container .tabs > .nav-tabs { @@ -4975,17 +3636,6 @@ blockquote.pullquote.right { width: 1.5em; } -#article-container .tabs > .nav-tabs > .tab.active button { - border-top: 2px solid rgb(48, 122, 246); - background: var(--tab-button-active-bg); - cursor: default; -} - -#article-container .tabs > .nav-tabs > .tab:not(.active) button:hover { - border-top: 2px solid var(--tab-button-hover-bg); - background: var(--tab-button-hover-bg); -} - #article-container .tabs > .tab-contents .tab-item-content { position: relative; display: none; @@ -5032,286 +3682,6 @@ blockquote.pullquote.right { } } -[data-theme="dark"] { - --global-bg: #191919; - --font-color: rgba(255, 255, 255, 0.9); - --hr-border: rgba(255, 255, 255, 0.3); - --hr-before-color: rgba(255, 255, 255, 0.6); - --search-bg: #1e1e1e; - --search-input-color: rgba(255, 255, 255, 0.8); - --search-result-title: rgba(255, 255, 255, 0.1); - --preloader-bg: #1e1e1e; - --preloader-color: rgba(255, 255, 255, 0.6); - --tab-border-color: #2c2c2c; - --tab-botton-bg: #2c2c2c; - --tab-botton-color: #fff; - --tab-button-hover-bg: #444; - --tab-button-active-bg: #1e1e1e; - --card-bg: #1e1e1e; - --sidebar-bg: #1e1e1e; - --btn-hover-color: #848484; - --btn-color: #fff; - --btn-bg: #3f3f3f; - --text-bg-hover: #444; - --light-grey: #fff; - --white: #fff; - --text-highlight-color: #fff; - --blockquote-color: #fff; - --blockquote-bg: #2c2c2c; - --reward-pop: #2c2c2c; - --toc-link-color: rgba(255, 255, 255, 0.6); - --hl-color: rgba(255, 255, 255, 0.7); - --hl-bg: #171717; - --hltools-bg: #1a1a1a; - --hltools-color: #90a4ae; - --hlnumber-bg: #171717; - --hlnumber-color: rgba(255, 255, 255, 0.4); - --hlscrollbar-bg: #1f1f1f; - --hlexpand-bg: linear-gradient(180deg, rgba(23, 23, 23, 0.6), rgba(23, 23, 23, 0.9)); -} - -[data-theme="dark"] #footer::before, -[data-theme="dark"] #page-header::before, -[data-theme="dark"] #web_bg::before { - position: absolute; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); - content: ""; -} - -[data-theme="dark"] #article-container pre > code { - background: rgb(23, 23, 23); -} - -[data-theme="dark"] #article-container figure.highlight { - box-shadow: none; -} - -[data-theme="dark"] #article-container .note code { - background: rgba(27, 31, 35, 0.05); -} - -[data-theme="dark"] #article-container .aplayer { - filter: brightness(0.8); -} - -[data-theme="dark"] #article-container kbd { - border-color: rgb(105, 105, 105); - background-color: rgb(82, 82, 82); - color: rgb(226, 241, 255); -} - -[data-theme="dark"] #page-header.nav-fixed > #nav, -[data-theme="dark"] #page-header.not-top-img > #nav { - background: rgba(18, 18, 18, 0.8); - box-shadow: rgba(133, 133, 133, 0) 0px 5px 6px -5px; -} - -[data-theme="dark"] #post-comment #comment-switch { - background: rgb(44, 44, 44) !important; -} - -[data-theme="dark"] #post-comment #comment-switch .switch-btn { - filter: brightness(0.8); -} - -[data-theme="dark"] .note { - filter: brightness(0.8); -} - -[data-theme="dark"] img { - filter: brightness(0.8); -} - -[data-theme="dark"] #aside-content .aside-list > .aside-list-item:not(:last-child) { - border-bottom: 1px dashed rgba(255, 255, 255, 0.1); -} - -[data-theme="dark"] #gitalk-container { - filter: brightness(0.8); -} - -[data-theme="dark"] #gitalk-container svg { - fill: rgba(255, 255, 255, 0.9) !important; -} - -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-no-comment, -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-tab-active { - color: rgba(255, 255, 255, 0.7); -} - -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-order-label { - background-color: rgb(43, 43, 43); -} - -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-post-body { - color: rgba(255, 255, 255, 0.7); -} - -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-post-body code, -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-post-body pre { - background: rgb(44, 44, 44); -} - -[data-theme="dark"] #disqus_thread #dsqjs .dsqjs-post-body blockquote { - color: rgba(255, 255, 255, 0.7); -} - -[data-theme="dark"] #artitalk_main #lazy { - background: rgb(18, 18, 18); -} - -[data-theme="dark"] #operare_artitalk .c2 { - background: rgb(18, 18, 18); -} - -.search-dialog { - position: fixed; - top: 5rem; - left: 50%; - z-index: 1001; - display: none; - margin-left: -15rem; - padding: 1rem; - width: 30rem; - background: var(--search-bg); - border-radius: 5px; -} - -@media screen and (max-width: 768px) { - .search-dialog { - top: 0px; - left: 0px; - margin: 0px; - width: 100%; - height: 100%; - } -} - -.search-dialog hr { - margin: 1rem auto; -} - -.search-dialog span.search-close-button { - position: absolute; - top: 0.8rem; - right: 1rem; - color: rgb(133, 133, 133); - font-size: 1.4em; - line-height: 1; - cursor: pointer; - transition: color 0.2s ease-in-out 0s; -} - -.search-dialog span.search-close-button:hover { - color: rgb(48, 122, 246); -} - -.search-dialog__title { - padding: 0px 0px 0.7rem; - color: rgb(48, 122, 246); - font-size: 1.4em; - line-height: 1; -} - -#search-mask { - position: fixed; - inset: 0px; - z-index: 1000; - display: none; - background: rgba(0, 0, 0, 0.6); -} - -#algolia-search .search-dialog { - animation: 0.5s ease 0s 1 normal none running titlescale; -} - -#algolia-search .search-dialog .ais-search-box { - margin: 0px auto; - max-width: 100%; - width: 100%; -} - -#algolia-search .search-dialog .ais-search-box input { - padding: 0.25rem 0.7rem; - outline: 0px; - border: 2px solid rgb(48, 122, 246); - border-radius: 2rem; - background: var(--search-bg); - color: var(--search-input-color); -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item { - position: relative; - padding-left: 1.2rem; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item:hover::before { - border-color: rgb(255, 114, 66); -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item::before { - position: absolute; - top: 0.53em; - left: 0px; - width: 0.5em; - height: 0.5em; - border: 0.15rem solid rgb(48, 122, 246); - border-radius: 0.5em; - background: 0px 0px; - content: ""; - line-height: 0.5em; - transition: all 0.2s ease-in-out 0s; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item a { - display: block; - color: var(--search-result-title); - cursor: pointer; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item a:hover { - color: rgb(48, 122, 246); -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item em { - color: rgb(244, 116, 102); - font-weight: 700; -} - -#algolia-search .search-dialog .ais-pagination.pagination { - margin: 0.8rem 0px 0px; - padding: 0px; - text-align: center; -} - -#algolia-search .search-dialog .ais-pagination.pagination .ais-pagination--item { - margin: 0px 0.2rem; - padding: 0px; -} - -#algolia-search .search-dialog .ais-pagination.pagination .ais-pagination--item a { - display: inline-block; - min-width: 1.2rem; - height: 1.2rem; - text-align: center; - line-height: 1.2rem; -} - -#algolia-search .search-dialog .ais-pagination.pagination .ais-pagination--item.current a { - background: rgb(0, 121, 255); - color: rgb(238, 238, 238); - cursor: default; -} - -#algolia-search .search-dialog .algolia-logo { - padding-top: 2px; - width: 4rem; - height: 1.5rem; -} - - /* 全局 ---------------------------------------------------------------- */ @@ -5376,6 +3746,7 @@ html { transition: 0.3s; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); top: 35px; } @@ -5384,8 +3755,7 @@ html { box-shadow: var(--heo-shadow-main); } -#page-header.nav-fixed > #nav, -#page-header.not-top-img > #nav { +#page-header.nav-fixed > #nav, #page-header.not-top-img > #nav { box-shadow: none; } @@ -5397,20 +3767,7 @@ html { display: none; } -.fa, -.fa-brands, -.fas, -.fa-light, -.fa-regular, -.fa-solid, -.fa-thin, -.fab, -.fad, -.fal, -.far, -.fas, -.fat -.iconfont { +.fa, .fa-brands, .fas, .fa-light, .fa-regular, .fa-solid, .fa-thin, .fab, .fad, .fal, .far, .fas, .fat { line-height: 1; } @@ -5440,7 +3797,7 @@ html { box-shadow: var(--heo-shadow-main); margin: 0 auto; transform: scale(1) !important; - padding: 0.3rem 0.7rem; + padding: 0.3rem 1rem; } #nav .menus_items .menus_item .menus_item_child li a i:not(.fa-brands) { @@ -5454,6 +3811,7 @@ html { flex-direction: column; align-items: center; margin: auto; + position: relative; } #nav .menus_items .menus_item .menus_item_child li { @@ -5466,7 +3824,6 @@ html { /* 导航栏按钮悬浮 */ #nav a { border-radius: 8px; - color: var(--heo-white); } .nav-fixed #nav a { @@ -5493,8 +3850,7 @@ html { background: var(--heo-main); } -#page-header.nav-fixed #assist-open:hover i, -.page #nav #assist-open.nav-button:hover i { +#page-header.nav-fixed #assist-open:hover i, .page #nav #assist-open.nav-button:hover i { color: var(--heo-white); } @@ -5502,51 +3858,13 @@ html { background: var(--heo-main); } -.topbar-html { - background: #aeaeae !important; -} - -/* 无障碍 */ -@media screen and (max-width: 768px) { - #assist-open { - display: none; - } -} - -#mozi-assist { - position: fixed; - z-index: 999; -} - -.topbar-html-content { - height: 160px !important; - align-items: flex-end; - padding-bottom: 12px; -} - -.topbar-html { - box-shadow: none !important; -} - -.bigtext-html-btn { - display: flex; - align-items: center; - justify-content: center; -} - -.topbar-html-content-item img { - border-radius: 12px !important; -} - /* 导航栏禁止隐藏 */ #page-header.nav-fixed #nav { top: 0; box-shadow: none; - border-bottom: var(--style-border); - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); - background: var(--heo-background); + background: var(--heo-card-bg); + outline: 1px solid var(--heo-card-border); } #nav { @@ -5555,10 +3873,10 @@ html { #page-header #nav { box-shadow: none; - transition: 0s; + transition: 0.3s; display: flex; justify-content: center; - /*z-index: 1000 !important;*/ + -webkit-user-select: none; } @media screen and (max-width: 768px) { @@ -5602,18 +3920,11 @@ html { overflow: hidden; } -@media screen and (max-width: 1300px) { - #page-header #nav #nav-left { - display: none; - } -} - .nav-button { cursor: pointer; } -#page-header #nav #nav-right .nav-button a, -#page-header #nav #nav-left .nav-button a { +#page-header #nav #nav-right .nav-button a, #page-header #nav #nav-left .nav-button a, #nav #nav-right #toggle-menu a { height: 35px; width: 35px; display: flex; @@ -5622,13 +3933,11 @@ html { border-radius: 40px; } -#page-header #nav #nav-right .nav-button a i, -#page-header #nav #nav-left .nav-button a i { +#page-header #nav #nav-right .nav-button a i, #page-header #nav #nav-left .nav-button a i { line-height: 1; } -#page-header #nav #nav-right div, -#page-header #nav #nav-left div { +#page-header #nav #nav-right div { margin-left: 0.5rem; padding: 0; } @@ -5657,10 +3966,13 @@ html { #page-header #nav #nav-right { margin-right: 12px; } + + #nav #toggle-menu { + display: inline-block !important; + } } #nav.show { - transform: translate3d(0px, 0px, 0px) !important; top: 0; transition: 0.2s; position: fixed; @@ -5670,27 +3982,12 @@ html { #page-header.not-top-img #nav { transition: 0.3s; - background: var(--heo-maskbgdeep); - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); -} - -@media screen and (max-width: 768px) { - #page-header.not-top-img #nav { - background: var(--heo-background) !important; - } - - #page-header.not-top-img:not(.nav-fixed) #nav { - background: var(--heo-background) !important; - } -} - -#sidebar #menu-mask { - z-index: 1001; + background: var(--heo-card-bg); } #page-header.not-top-img:not(.nav-fixed) #nav { background: var(--heo-none); + transition: 0.3s; } #page-header.nav-fixed #nav #menus > div.menus_items { @@ -5701,7 +3998,6 @@ html { #page-header.not-top-img { margin-bottom: 0rem; - z-index: 99; } #nav #toggle-menu { @@ -5736,10 +4032,6 @@ html { width: 121px; } -#site-logo:hover { - transform: scale(1.03); -} - /* 返回顶部 */ #nav-totop { @@ -5754,7 +4046,7 @@ html { } #nav-totop.long { - width: 70px; + width: 80px; } #nav-totop .totopbtn { @@ -5784,8 +4076,7 @@ html { white-space: nowrap; } -.nav-fixed #nav-totop #percent, -.page #nav-totop #percent { +.nav-fixed #nav-totop #percent, .page #nav-totop #percent { font-size: 12px; border-radius: 35px; display: flex; @@ -5818,7 +4109,7 @@ html { height: 25px; border-radius: 40px; background: var(--heo-fontcolor); - color: var(--card-bg); + color: var(--heo-card-bg); position: absolute; top: 5px; right: 5px; @@ -5842,7 +4133,7 @@ html { /* 导航栏图标 */ #nav #site-name i { - font-size: 50px; + font-size: 18px; line-height: 35px; padding: 0 12px; } @@ -5924,6 +4215,12 @@ html { color: var(--heo-fontcolor); } +@media screen and (max-width: 768px) { + .back-menu-list-groups .back-menu-list .back-menu-item .back-menu-item-text { + font-size: 14px; + } +} + .back-menu-list-groups .back-menu-list .back-menu-item:hover .back-menu-item-text { color: var(--heo-white); } @@ -6014,15 +4311,6 @@ html { transition: 0.3s; } - #nav #site-name span { - transition: 0.3s; - } - - #nav #site-name:hover span { - opacity: 0; - transition: 0.3s; - } - #page-header.nav-fixed #nav #site-name { opacity: 1; transition: 0.1s; @@ -6035,7 +4323,7 @@ html { } #nav #site-name:after { - background: url(../images/home.webp) no-repeat 50% 50%; + background: url(../images/home.png) no-repeat 50% 50%; opacity: 0; position: absolute; display: flex; @@ -6049,7 +4337,7 @@ html { } .post #nav #site-name:hover { - background: var(--heo-white-op); + background: var(--heo-main); } .nav-fixed #nav #site-name:hover { @@ -6189,10 +4477,7 @@ html { transform-origin: left bottom; box-shadow: var(--heo-shadow-border); border-radius: 40px; -} - -#nav-music:active { - transform: scale(0.97); + overflow: hidden; } #nav-music.playing { @@ -6202,7 +4487,7 @@ html { @-webkit-keyframes playingShadow { 0% { - box-shadow: 0 0px 12px -3px var(--heo-none); + box-shadow: 0 0px 12px -6px var(--heo-none); } 50% { @@ -6210,7 +4495,7 @@ html { } 100% { - box-shadow: 0 0px 12px -3px var(--heo-none); + box-shadow: 0 0px 12px -6px var(--heo-none); } } @@ -6242,7 +4527,7 @@ html { 25% { -webkit-transform: rotate(90deg) scale(1.1); - box-shadow: 0 0 14px #ffffff; + box-shadow: 0 0 10px #ffffff; } 50% { @@ -6252,7 +4537,7 @@ html { 75% { -webkit-transform: rotate(270deg) scale(1.1); - box-shadow: 0 0 14px #ffffff; + box-shadow: 0 0 10px #ffffff; } 100% { @@ -6303,7 +4588,7 @@ html { } #nav-music .aplayer { - background: var(--card-bg); + background: var(--heo-card-bg); border-radius: 60px; height: 41px; display: flex; @@ -6319,6 +4604,7 @@ html { border: var(--style-border-hover); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); } #nav-music .aplayer .aplayer-notice { @@ -6333,8 +4619,7 @@ html { position: relative; display: flex; align-items: center; - padding: 0 8px; - padding-right: 12px; + padding: 0 12px 0 8px; } #nav-music .aplayer .aplayer-pic .aplayer-play { @@ -6396,6 +4681,11 @@ html { #nav-music .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar { height: 100%; background: none; + opacity: 0; +} + +#nav-music.playing .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar { + opacity: 1; } #nav-music .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded { @@ -6407,6 +4697,11 @@ html { opacity: 0.1; background-color: var(--heo-white) !important; -webkit-animation: lightBar 5s ease infinite; + animation-play-state: paused; +} + +#nav-music.playing .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played { + animation-play-state: running; } @-webkit-keyframes lightBar { @@ -6440,20 +4735,21 @@ html { opacity: 1; } +#nav-music .aplayer .aplayer-lrc p { + color: #ffffffb3; + filter: blur(0.8px); +} + #nav-music .aplayer .aplayer-lrc p.aplayer-lrc-current { color: var(--heo-white); border: none; + filter: blur(0px); } -#nav-music .aplayer .aplayer-lrc:after, -#nav-music .aplayer .aplayer-lrc:before { +#nav-music .aplayer .aplayer-lrc:after, #nav-music .aplayer .aplayer-lrc:before { display: none; } -#nav-music .aplayer .aplayer-lrc p { - color: #ffffffb3; -} - /* 导航栏隐藏文字 */ /* #menus > div.menus_items > div > a > span{ display: none; @@ -6543,16 +4839,9 @@ i.fab { } #nav a:hover { - color: var(--heo-white) !important; - background: var(--heo-white-op); - transition: 0.3s; -} - -.page #nav a:hover { color: var(--heo-white) !important; background: var(--heo-main); transition: 0.3s; - box-shadow: var(--heo-shadow-main); } .nav-fixed #nav a:hover { @@ -6563,9 +4852,8 @@ i.fab { @media screen and (min-width: 768px) { .menus_item:hover > a.site-page { color: var(--heo-white) !important; - background: var(--heo-white-op); + background: var(--heo-main); transition: 0.3s; - box-shadow: var(--heo-shadow-main); } .page .menus_item:hover > a.site-page { @@ -6601,121 +4889,6 @@ i.fab { color: var(--heo-white); } - -/* 搜索背景模糊 */ -#search-mask { - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); - background: var(--heo-maskbg); -} - -/* 搜索输入框 */ -#algolia-search .search-dialog .ais-search-box input { - border-radius: 8px !important; - border: var(--style-border); -} - -#algolia-search .search-dialog .ais-search-box input:focus { - border: var(--style-border-hover); -} - - -#algolia-search .search-dialog .ais-search-box input::placeholder { - opacity: 0.6; -} - -#algolia-input-panel { - margin-bottom: 8px; -} - -/* 搜索窗口 */ -.search-dialog { - border-radius: 12px !important; - box-shadow: var(--heo-shadow-lightblack); - background: var(--heo-card-bg); - border: var(--style-border); - transition: 0.3s; -} - -.search-dialog:hover { - border: var(--style-border-hover); - box-shadow: var(--heo-shadow-theme); -} - -.search-dialog__title { - font-weight: bold; - color: var(--heo-main); -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item a:hover { - color: var(--heo-hovertext); -} - -#algolia-search .search-dialog .algolia-logo { - display: none; -} - -/* 搜索提示文字 */ -#algolia-tips { - padding-top: 12px; - color: var(--heo-secondtext); - right: 0; - margin: auto; -} - -.algolia-tips-text { - margin-left: 0.4rem; -} - -/* 搜索结果间距 */ -#algolia-search-results { - padding-top: 8px; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item:before { - display: none; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item { - padding-left: 0rem; - font-weight: bold; -} - -#algolia-search .search-dialog .ais-pagination.pagination { - margin: 0.2rem 0 0; -} - -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item em { - color: var(--heo-theme); - font-style: normal; -} - -/* 搜索框间距 */ -#algolia-search .search-dialog .ais-search-box { - padding-top: 8px; -} - -/* 搜索页码样式 */ -#algolia-search .search-dialog .ais-pagination.pagination .ais-pagination--item.current a { - border-radius: 4px; - background: var(--heo-main); - color: var(--heo-white); -} - -/* 全局超链接 */ -a { - color: var(--heo-fontcolor); -} - -a:hover { - color: var(--heo-hovertext); -} - -/* 分割线 */ -hr { - display: none; -} - /* footer样式 */ #footer-wrap { color: var(--heo-fontcolor); @@ -6739,47 +4912,6 @@ div#footer_deal { align-items: center; } -/* 古诗词卡片 */ -#card-poem { - display: flex; - flex-direction: column; - padding: 0.5rem !important; - min-height: 130px; -} - -div#poem_sentence { - text-align: center; - font-family: serif, cursive; - line-height: 1.4; - margin-bottom: 0.5rem; - padding: 1rem; - border-radius: 12px; - background: var(--heo-secondbg); - min-height: 62px; -} - -div#poem_info { - display: flex; - color: var(--heo-secondtext); - font-size: 0.5rem; - justify-content: center; - flex-wrap: wrap; -} - -div#poem_author { - order: 1; - padding: 2px; - margin-left: 8px; -} - -div#poem_dynasty { - order: 0; - padding: 2px 4px 2px 6px; - background: var(--heo-card-btn-bg); - color: var(--heo-fontcolor); - border-radius: 8px; -} - @media screen and (max-width: 768px) { img.footer_mini_logo { display: none; @@ -6814,7 +4946,9 @@ img.footer_mini_logo { height: 50px; margin: 0 1rem; cursor: pointer; + border-radius: 50%; transition: cubic-bezier(0, 0, 0, 1.29) 0.5s; + -webkit-user-select: none; } img.footer_mini_logo:hover { @@ -6822,16 +4956,6 @@ img.footer_mini_logo:hover { -webkit-transform-style: preserve-3d; } -@media screen and (min-width: 1300px) { - img.footer_mini_logo:hover { - transform: scale(1.03); - } - - img.footer_mini_logo:active { - transform: scale(0.97); - } -} - /* logo居中 */ #weblogo { align-self: center; @@ -6845,10 +4969,6 @@ img.footer_mini_logo:hover { filter: drop-shadow(0 12px 12px #ee7d7936); } -.heoblog_footerlogo_img:hover { - transform: scale(1.03); -} - /* 导航栏居中 */ #nav #menus { display: flex; @@ -6888,7 +5008,7 @@ img.footer_mini_logo:hover { display: flex; align-items: center; border-radius: 100px; - padding: 0.3rem 1rem; + padding: 0.3rem 0.8rem; width: 100%; color: var(--heo-fontcolor) !important; text-shadow: none !important; @@ -6923,6 +5043,7 @@ img.footer_mini_logo:hover { background-color: var(--heo-maskbgdeep); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); + transform: translateZ(0); color: var(--heo-fontcolor); border-radius: 12px; z-index: 99994; @@ -6971,10 +5092,6 @@ img.footer_mini_logo:hover { box-shadow: var(--heo-shadow-main); } -#rightMenu .rightMenu-group .rightMenu-item:active { - transform: scale(0.97); -} - #rightMenu .rightMenu-group .rightMenu-item i { display: inline-block; text-align: center; @@ -7085,11 +5202,6 @@ a.console_switchbutton { display: none; } -/* 下拉图标 */ -#nav .menus_items .menus_item i.expand { - display: none; -} - /* 右下角设置按钮间距 */ #rightside { display: none; @@ -7102,14 +5214,12 @@ a.console_switchbutton { transition: all 0.5s ease 0s; } -#rightside > div > button, -#rightside > div > a { +#rightside > div > button, #rightside > div > a { margin-bottom: 8px; transition: 0.3s; } -#rightside > div > button, -#rightside > div > a:hover { +#rightside > div > button, #rightside > div > a:hover { transition: 0.3s; } @@ -7123,19 +5233,18 @@ a.console_switchbutton { margin-top: 1rem; display: flex; flex-direction: column; - z-index: 1002; } @media screen and (max-width: 768px) { #footer { background: linear-gradient(180deg, var(--heo-background) 0%, var(--heo-card-bg) 25%); margin-top: 0; - z-index: 999; + z-index: 50; } } /* 搜索 */ -#algolia-search .ais-hits--item.algolia-hit-item a { +.ais-hits--item.algolia-hit-item a { color: var(--heo-fontcolor); } @@ -7143,6 +5252,7 @@ a.console_switchbutton { .aplayer .aplayer-list ol { backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px); + transform: translateZ(0); } .aplayer .aplayer-lrc:after { @@ -7214,7 +5324,7 @@ a.console_switchbutton { } /* 搜索结果文字 */ -#algolia-search .search-dialog .ais-hits--item.algolia-hit-item a { +.search-dialog .ais-hits--item.algolia-hit-item a { color: var(--heo-fontcolor); width: auto; max-width: 100%; @@ -7284,7 +5394,6 @@ a.console_switchbutton { transform: translate3d(0, 0, 0); max-width: 200px; - position: fixed; z-index: 2000; display: block; position: absolute; @@ -7383,30 +5492,27 @@ a.console_switchbutton { /* 最新文章侧边栏标题 */ #aside-content .aside-list > .aside-list-item .content > .title { - -webkit-line-clamp: 3; font-weight: bold; padding: 2px 0; } +.article-recent_post_categories { + font-size: 12px; + font-weight: bold; + opacity: 0.6; + line-height: 1; +} + /* 最新文章侧边栏悬浮 */ #aside-content .aside-list > .aside-list-item { - padding: 8px; - padding-top: 6px !important; - padding-bottom: 6px !important; + padding: 6px; border-radius: 12px; transition: 0.3s; margin: 4px 0; cursor: pointer; -} - -@media screen and (min-width: 1300px) { - #aside-content .aside-list > .aside-list-item:hover { - transform: scale(1.03); - } - - #aside-content .aside-list > .aside-list-item:active { - transform: scale(0.97); - } + display: flex; + -webkit-box-align: center; + align-items: center; } #aside-content .aside-list > .aside-list-item:hover .thumbnail > img { @@ -7434,6 +5540,70 @@ a.console_switchbutton { color: var(--heo-white) !important; } +/* 文章顶部波浪效果 */ +/* 波浪css */ +.main-hero-waves-area { + width: 100%; + position: absolute; + left: 0; + bottom: -11px; + z-index: 5; +} + +.waves-area .waves-svg { + width: 100%; + height: 60px; +} + +/* Animation */ + +.parallax > use { + animation: move-forever 30s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite; +} + +.parallax > use:nth-child(1) { + animation-delay: -2s; + animation-duration: 7s; + fill: var(--heo-background); + opacity: 0.5; +} + +.parallax > use:nth-child(2) { + animation-delay: -3s; + animation-duration: 10s; + fill: var(--heo-background); + opacity: 0.6; +} + +.parallax > use:nth-child(3) { + animation-delay: -4s; + animation-duration: 13s; + fill: var(--heo-background); + opacity: 0.7; +} + +.parallax > use:nth-child(4) { + animation-delay: -5s; + animation-duration: 20s; + fill: var(--heo-background); +} + +@keyframes move-forever { + 0% { + transform: translate3d(-90px, 0, 0); + } + 100% { + transform: translate3d(85px, 0, 0); + } +} + +/*Shrinking for mobile*/ +@media (max-width: 768px) { + .main-hero-waves-area { + display: none; + } +} + /* 侧边栏按钮文字 */ a.card-archive-list-link-more { color: var(--heo-white) !important; @@ -7441,8 +5611,7 @@ a.card-archive-list-link-more { margin-top: 8px; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a, #aside-content .card-categories ul.card-category-list > .card-category-list-item a { border-radius: 8px; margin: 4px 0; display: flex; @@ -7451,13 +5620,11 @@ a.card-archive-list-link-more { border: var(--style-border); } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:first-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:first-child { width: auto; } -#aside-content .card-archives ul.card-archive-list, -#aside-content .card-categories ul.card-category-list { +#aside-content .card-archives ul.card-archive-list { display: flex; flex-direction: row; justify-content: space-between; @@ -7471,6 +5638,10 @@ a.card-archive-list-link-more { border: 1px dashed var(--heo-theme-op); } +.card-allinfo .card-archive-list { + margin: 10px 0; +} + .card-allinfo .item-headline { display: none; } @@ -7489,8 +5660,7 @@ span.card-archive-list-count { align-items: baseline; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:last-child, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a span:last-child { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a span:last-child, #aside-content .card-categories ul.card-category-list > .card-category-list-item a span:last-child { width: fit-content; margin-left: 4px; } @@ -7556,11 +5726,11 @@ li.card-archive-list-item { } #aside-content .sticky_layout { - top: calc(60px + 0.5rem); + top: calc(60px + 1rem); } #page-header.nav-visible + .layout > .aside-content > .sticky_layout { - top: calc(60px + 0.5rem); + top: calc(60px + 1rem); } [data-theme=dark] #aside-content > .card-widget.card-info { @@ -7573,19 +5743,6 @@ li.card-archive-list-item { } - -/* madium-zoom */ -.medium-zoom-overlay { - background: var(--heo-maskbg) !important; - z-index: 99998 !important; - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); -} - -.medium-zoom-image--opened { - border-radius: 2px; -} - /* 通用 */ #toggle-sidebar { bottom: 80px; @@ -7600,7 +5757,6 @@ li.card-archive-list-item { #error-wrap .error-content .error-info a:hover { background-color: var(--heo-blue); transition: 0.3s; - transform: scale(1.03); box-shadow: var(--heo-shadow-blue); } @@ -7647,124 +5803,13 @@ li.tree-list-item { margin-bottom: 0 !important; } -/* 基金 */ - -#card-funds .funds-list::-webkit-scrollbar { - display: none !important; -} - -.funds-tips { - font-size: 0.5rem; - width: 100%; - text-align: center; +.title-h2-a-right { + font-size: 14px; color: var(--heo-secondtext); - margin: 0.5rem 0 0 0; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - position: absolute; - bottom: 0.5rem; - left: 0px; - padding: 0 1rem; -} - -.funds-list { - height: 200px; - overflow: scroll; -} - -span.fund_name { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.funds-info { - margin-left: 4px; - color: var(--heo-secondtext); -} - -.funds-list-item .content { - display: flex; - flex-direction: row; - justify-content: space-between; - flex-wrap: nowrap; -} - -.fund_dayGrowth { - display: inline; - float: right; -} - -.fund-up { - color: var(--heo-red); -} - -.fund-down { - color: var(--heo-green); -} - -/* 音乐宣传 */ -#aside-content .card-widget#card-music { - background: var(--heo-pink); - display: flex; - justify-content: center; - align-content: center; - padding: 0; - cursor: pointer; - border: none; -} - -#aside-content .card-widget#card-music img { - max-height: 110px; - object-fit: cover; -} - -#aside-content .card-widget#card-music:hover img { - transform: scale(1.03); - transition: 0.5s; - -webkit-backface-visibility: hidden; - -webkit-transform-style: preserve-3d; -} - -.music-link { - display: flex; - justify-content: center; - align-content: center; -} - -/* 友情链接 */ -#aside-content .card-widget#card-friendlinks { - background: var(--heo-main); - display: flex; - justify-content: center; - align-content: center; - padding: 0; - cursor: pointer; - border: none; -} - -#aside-content .card-widget#card-friendlinks img { - max-height: 110px; - object-fit: cover; -} - -#aside-content .card-widget#card-friendlinks:hover img { - transform: scale(1.03); - transition: 0.5s; - -webkit-backface-visibility: hidden; - -webkit-transform-style: preserve-3d; -} - -.friend-link { - display: flex; - justify-content: center; - align-content: center; } /* 微信公众号 */ #aside-content .card-widget#card-wechat { - background: #07C160; display: flex; justify-content: center; align-content: center; @@ -7775,8 +5820,9 @@ span.fund_name { } #aside-content .card-widget#card-wechat img { - max-height: 110px; + max-width: 80px; object-fit: cover; + border-radius: 12px; } .friend-link { @@ -7788,18 +5834,14 @@ span.fund_name { /* 微信公众号翻转 */ #flip-wrapper { + -webkit-perspective: 1000; + perspective: 1000; position: relative; width: 235px; height: 110px; z-index: 1; } -/* this need to be here - i dont know why?*/ -#flip-wrapper { - -webkit-perspective: 1000; - perspective: 1000; -} - #flip-content { width: 100%; height: 100%; @@ -7819,197 +5861,15 @@ span.fund_name { height: 100%; -webkit-backface-visibility: hidden; backface-visibility: hidden; - /* background-color: #e71840; */ - /*background: url(../images/wechat/wechat1.png) center center no-repeat;*/ - background-size: 100%; } .back.face { - display: block; + display: flex; + align-items: center; + gap: 20px; -webkit-transform: rotateY(180deg); transform: rotateY(180deg); box-sizing: border-box; - /* background-color: #212121; */ - /*background: url(../images/wechat/wechat2.png) center center no-repeat;*/ - background-size: 100%; -} - -/* 商务广告-设计周刊 */ -#card-vip-designweekly.card-widget { - display: flex !important; - padding: 0; - cursor: pointer; -} - -#card-vip-designweekly.card-widget .card-vip-designweekly-img { - width: 100%; - object-fit: cover; -} - -.card-vip-tips { - display: flex; - position: absolute; - font-size: 12px; - bottom: 8px; - left: 8px; - padding: 1px 6px; - background: var(--heo-black-op); - border-radius: 8px; - color: var(--heo-white); -} - -/* 开关 */ -#widget-tree-button { - background-color: var(--heo-secondbg) !important; - box-shadow: var(--heo-shadow-light2black) !important; - color: var(--heo-fontcolor); -} - -#widget-tree:hover #widget-tree-button { - /* display: none!important; */ - opacity: 0; - left: -1.5rem; -} - -#widget-tree { - background-color: var(--heo-maskbg) !important; -} - -#widget-tree:hover { - left: 0 !important; - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); -} - -#widget-tree a { - -webkit-line-clamp: 2; - color: var(--heo-fontcolor) !important; -} - -#widget-tree a:hover { - color: var(--heo-hovertext) !important; -} - -.toggle-post-icon, -.toggle-toc-icon { - color: var(--heo-fontcolor) !important; -} - -@media screen and (max-width: 768px) { - #widget-tree { - display: none !important; - } -} - - -/* guli置顶 */ - -.guli_top { - position: fixed; - z-index: 99; - right: 30px; - display: flex; - transition: 0.3s; - opacity: 0; - bottom: -25px; - width: 88px; - height: 123px; - user-select: none; -} - -.guli_top.guli-fixed { - opacity: 1; - bottom: 25px; -} - -#guli_top .guli_body { - position: relative; - height: 123px; - z-index: 1003; -} - -#guli_top .guli_body:hover { - cursor: pointer; -} - -#guli_top .guli_wing { - position: relative; - height: 64px; - z-index: 1002; - bottom: -120px; - transform: scale(0.01); - box-shadow: var(--heo-shadow-yellow); -} - -#guli_top.open_wing .guli_wing { - transform: scale(1.03); -} - -#guli_top.open_wing .guli_body { - transform: scale(1); -} - -@media screen and (max-width: 1300px) { - #guli_top { - display: none; - } -} - -/* cookies */ -#introduction-window { - min-width: 300px; - background: var(--heo-maskbgdeep); - color: var(--heo-fontcolor); - padding: 8px 16px; - display: flex; - flex-direction: column; - bottom: 20px; - right: 20px; - position: fixed; - border-radius: 12px; - transition: 0.3s; - z-index: 1002; - user-select: none; - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: saturate(180%) blur(20px); - border: var(--style-border); - animation: barrageIn 0.6s cubic-bezier(0.42, 0, 0.3, 1.11); -} - -#introduction-window.cw-hide { - opacity: 0; - animation: barrageOut 0.6s cubic-bezier(0.42, 0, 0.3, 1.11); - z-index: -1; -} - -#introduction-window .introduction-window-title { - padding-bottom: 4px; - border-bottom: var(--style-border); - font-size: 12px; - font-weight: bold; -} - -#introduction-window .introduction-window-content { - font-size: 14px; - display: flex; - justify-content: space-around; - align-items: center; -} - -.cookie-to { - margin-right: 4px; - font-weight: bold; -} - -.introduction-link { - margin-left: auto; - font-size: 16px; -} - -@media screen and (max-width: 1300px) { - #introduction-window { - display: none; - } } .heo-tag { @@ -8030,47 +5890,6 @@ span.fund_name { background: var(--heo-red); } -/* 加载页 ----------------------------------------------------------------- */ - -/* 已经写在loading.pug中了 */ - -/* #loading-box .loading-bg{ - display: flex; - width: 100%; - height: 100%; - position: fixed; - background: var(--heo-card-bg); - z-index: 99999; - opacity: 1; - transition: 0.3s; - pointer-events: all; -} - -#loading-box.loaded .loading-bg{ - opacity: 0; - pointer-events: none; -} - -#loading-box .loading-img{ - width: 100px; - margin: auto; - animation-duration: 0.3s; - animation-name: loadingAction; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -@keyframes loadingAction { - from { - opacity: 1; - } - - to { - opacity: 0.4; - } -} */ - /* 主页 ---------------------------------------------------------------- */ @@ -8085,39 +5904,10 @@ span.fund_name { display: none; } -/* 主页导航栏让位偏移 */ -/* .layout_page .recent-posts{ - margin-top: 2em; -} -.layout_page .aside_content{ - margin-top: 2em; -} */ - .layout > div:first-child { width: calc(100% - 300px); } -/* 当隐藏边栏时,显示 100% */ -.layout.hide-aside > div:first-child { - width: 100%; -} - -/* 侧边栏在左侧时,显示 100% */ -.layout.left-aside > div:first-child { - -webkit-box-ordinal-group: 2; - -moz-box-ordinal-group: 2; - -o-box-ordinal-group: 2; - -ms-flex-order: 2; - -webkit-order: 2; - order: 2; -} - -/* 侧栏在左侧时,关闭左边距,打开右边距 */ -.layout.left-aside .aside-content { - padding-right: 15px; - padding-left: 0px !important; -} - /* 主页分类 */ div#categoryList { display: flex; @@ -8146,7 +5936,6 @@ a.categoryButton { color: var(--heo-white); transition: all 0.8s cubic-bezier(0.39, 0.575, 0.565, 1); transform: scale(1); - overflow: hidden; font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei; } @@ -8154,19 +5943,13 @@ a.categoryButton i { transform: scale(1.0) rotate(15deg); } -@media screen and (min-width: 1300px) { - a.categoryButton:active { - transform: scale(0.97); - } -} - @media screen and (max-width: 768px) { a.categoryButton { border-radius: 8px; } .categoryItem { - border-radius: 0px; + border-radius: 0; height: 47%; box-shadow: none !important; } @@ -8191,7 +5974,7 @@ a.categoryButton i { font-size: 5rem; opacity: 0.2; position: absolute; - right: 0%; + right: 0; top: 20%; transition: 0.3s; width: 100px; @@ -8206,7 +5989,6 @@ a.categoryButton i { .recent-post-top .categoryGroup { min-width: 130px !important; - margin-bottom: 0.5rem; margin-left: 1rem; max-height: 164px; overflow: hidden; @@ -8232,10 +6014,8 @@ div#banners { @media screen and (min-width: 1300px) { .topGroup { - display: flex; flex-direction: row; flex-wrap: wrap; - justify-content: flex-end; height: calc(328px + 0.5rem); align-content: space-between; width: calc(600px + 1.5rem); @@ -8263,7 +6043,6 @@ div#banners { position: relative; box-shadow: var(--heo-shadow-border); flex-direction: column; - overflow: hidden; transition: 0.3s; clip-path: inset(0 0 0 0 round 12px); } @@ -8372,9 +6151,10 @@ div#banners { #banners:hover #banner-hover { opacity: 1; padding-left: 2rem; - background: #4259efc9; + background: var(--heo-theme-op-deep); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); + transform: translateZ(0); -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d; transition: 0.3s; @@ -8389,7 +6169,7 @@ div#banners { z-index: 1; top: 0; left: 0; - background: var(--card-bg); + background: var(--heo-card-bg); border-radius: 12px; margin-left: 0.5rem; overflow: hidden; @@ -8462,6 +6242,7 @@ div#banners { cursor: pointer; backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); height: 40px; width: 124px; justify-content: center; @@ -8570,10 +6351,10 @@ div#banners { height: 24px; width: 44px; content: ""; - background: url(../images/top.png) no-repeat; + background: url(https://p.zhheo.com/20235ba0ff2cde251cd0819f60a48cf9cc71082802.png!cover) no-repeat; background-size: 38px 24px; position: absolute; - top: 0px; + top: 0; left: 0; } @@ -8680,7 +6461,7 @@ a.categoryButton:hover { /* 首页分类条展示 */ #category-bar { - padding: 0.4rem 1rem 0.4rem 0.5rem; + padding: 0.4rem 1rem 0.4rem 0.7rem; background: var(--heo-card-bg); border-radius: 12px; display: flex; @@ -8691,6 +6472,7 @@ a.categoryButton:hover { transition: 0.3s; width: 100%; justify-content: space-between; + -webkit-user-select: none; } @media screen and (min-width: 1300px) { @@ -8713,7 +6495,7 @@ a.categoryButton:hover { position: sticky; top: 60px; z-index: 1; - padding: 0rem 1rem 0rem 16px; + padding: 0rem 1rem 0rem 1rem; height: 50px; margin-top: 0; align-items: center; @@ -8743,7 +6525,11 @@ a.categoryButton:hover { .category-bar-items { white-space: nowrap; overflow-x: scroll; + overflow-y: hidden; display: flex; + border-radius: 8px; + align-items: center; + height: 30px; } .category-in-bar .category-in-bar-tips { @@ -8761,9 +6547,12 @@ a.categoryButton:hover { .category-bar-item a { padding: 0.1rem 0.5rem; - margin: 0 4px; + margin-right: 6px; font-weight: bold; border-radius: 8px; + display: flex; + align-items: center; + height: 30px; } .category-bar-item:hover a { @@ -8796,10 +6585,14 @@ a.categoryButton:hover { } .category-bar-more { - margin-left: 1rem; + margin-left: 14px; font-weight: bold; } +.category-bar-more:hover { + color: var(--heo-lighttext); +} + /* 主页哔哔bb */ #bber-talk { width: 100%; @@ -8836,8 +6629,7 @@ a.categoryButton:hover { transition: 0.3s; } -ul, -li { +ul, li { list-style: none; display: block; margin: 0; @@ -8845,7 +6637,7 @@ li { } #bbTimeList { - background: var(--heo-none); + background: var(--heo-card-bg); color: var(--heo-fontcolor); padding: 0.5rem 1rem; border-radius: 12px; @@ -8856,13 +6648,18 @@ li { border: var(--style-border); align-items: center; height: 50px; + -webkit-user-select: none; } -#bbTimeList:hover { - border: var(--style-border-hover); - box-shadow: var(--heo-shadow-main); +@media screen and (min-width: 768px) { + #bbTimeList:hover { + border: var(--style-border-hover); + box-shadow: var(--heo-shadow-main); + background: var(--heo-card-bg); + } } + @media screen and (min-width: 1300px) { #bbTimeList { margin-bottom: 1rem; @@ -8883,29 +6680,23 @@ li { } /* 哔哔标志 */ -.icon-logo-moment { - font-size: 2rem; - font-size: 2rem; +.icon-bblogo { + font-size: 1rem; line-height: 22px; margin-right: 1rem; transition: 0.3s; cursor: pointer; } -.icon-logo-moment:hover { +.icon-bblogo:hover { opacity: 0.8; color: var(--heo-theme); } -/* 文章卡片相关 */ -#recent-posts > .recent-post-item > .recent-post-info { - padding: 0; -} - .recent-post-item .recent-post-info .recent-post-info-top { position: relative; transition: 0.3s; - padding: 32px; + padding: 0 32px; width: 100%; } @@ -8924,24 +6715,53 @@ li { -webkit-box-orient: vertical; } -/*.recent-post-item .recent-post-info .recent-post-info-top .pinned-post {*/ -/* display: none;*/ -/*}*/ +.recent-post-item .recent-post-info .recent-post-info-top .original { + display: flex; + color: var(--heo-secondtext); + font-size: 0.5rem; + position: relative; + margin-right: 8px; +} + + +.recent-post-item .recent-post-info .recent-post-info-top .lastestpost { + display: none; + margin-right: 8px; +} + +.recent-post-info-top-tips { + display: flex; + margin-top: 20px; +} + +.recent-post-item .recent-post-info .recent-post-info-top a.unvisited-post { + display: flex; + color: var(--heo-secondtext); + font-size: 0.5rem; + position: relative; +} + +.recent-post-item .recent-post-info .recent-post-info-top a.unvisited-post:visited { + color: var(--heo-card-bg); +} + +@media screen and (max-width: 768px) { + .recent-post-info-top-tips { + display: none; + } +} @media screen and (min-width: 1300px) { - #recent-posts > .recent-post-item .pinned-post { + + #recent-posts > .recent-post-item:nth-child(2) .lastestpost { display: flex; - color: var(--heo-lighttext); + color: var(--heo-secondtext); font-size: 0.5rem; position: relative; } - #recent-posts .recent-post-item.pinned-post-item .recent-post-info-top { - padding-top: 16px; - } - .recent-post-item .recent-post-info .recent-post-info-top .article-title { - font-size: 22px; + font-size: 20px; -webkit-line-clamp: 2; } @@ -8956,7 +6776,7 @@ li { } .recent-post-item.post-card-large .recent-post-info .recent-post-info-top .content { - opacity: 0.8 !important; + opacity: 0 !important; -webkit-line-clamp: 2 !important; } @@ -8965,7 +6785,8 @@ li { } } -.recent-post-info-top:not(:has(> span)) .content { +.recent-post-item .recent-post-info .recent-post-info-top .content { + opacity: 0; transition: 0.3s; display: -webkit-box; overflow: hidden; @@ -8976,26 +6797,15 @@ li { margin-top: 0.5rem; } -span + a + .content:last-child { - transition: 0.3s; - display: -webkit-box; - overflow: hidden; - -webkit-box-orient: vertical; - -webkit-line-clamp: 1; - line-height: 1.4; - color: var(--heo-secondtext); - margin-top: 0.5rem; -} - @media screen and (max-width: 1300px) { .recent-post-item:hover .recent-post-info .recent-post-info-top .content { - + display: none; } } @media screen and (min-width: 1300px) { .recent-post-item:hover .recent-post-info .recent-post-info-top .content { - + display: none; } } @@ -9018,7 +6828,8 @@ span + a + .content:last-child { .recent-post-item .recent-post-info .recent-post-info-top .content { opacity: 1; - -webkit-line-clamp: 2; + -webkit-line-clamp: 3; + display: none; } #recent-posts .recent-post-item .recent-post-info .article-title { @@ -9026,11 +6837,6 @@ span + a + .content:last-child { } } -/* 文章卡片文字信息 */ -#recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap a { - color: var(--heo-fontcolor); -} - /* 文章封面 */ #recent-post-top .recent-post-item .post_cover { @@ -9062,18 +6868,12 @@ span + a + .content:last-child { } #recent-posts > .recent-post-item .right_radius { - border-top-left-radius: 12px; - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 12px; + border-radius: 12px 0 0 12px; } @media screen and (min-width: 1300px) { #recent-posts > .recent-post-item .right_radius { - border-top-left-radius: 12px; - border-top-right-radius: 12px; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; + border-radius: 12px 12px 0 0; } } @@ -9087,12 +6887,8 @@ span + a + .content:last-child { /* 文章卡片偏移样式 */ @media screen and (max-width: 1300px) { - #recent-posts > .recent-post-item .right_radius, - #recent-posts > .recent-post-item .left_radius { - border-top-left-radius: 12px; - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 12px; + #recent-posts > .recent-post-item .right_radius, #recent-posts > .recent-post-item .left_radius { + border-radius: 12px 0 0 12px; width: 75%; display: flex; height: 200px; @@ -9102,7 +6898,6 @@ span + a + .content:last-child { transform: scale(1.03); transition: 0.3s ease-in-out; filter: brightness(0.85); - border-radius: 12px 0 0 12px; } #recent-posts > .recent-post-item.post-card-large:hover .post_cover img.post_bg { @@ -9113,7 +6908,6 @@ span + a + .content:last-child { min-width: 100%; -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d; - transition: 0.3s ease-in-out; min-height: 100%; } @@ -9131,33 +6925,22 @@ span + a + .content:last-child { transform: scale(1.03); transition: 0.3s ease-in-out; filter: brightness(0.85); - border-radius: 12px 0 0 12px; } @media screen and (min-width: 1300px) { - #recent-posts > .recent-post-item .right_radius, - #recent-posts > .recent-post-item .left_radius { - border-top-left-radius: 12px; - border-top-right-radius: 12px; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; + #recent-posts > .recent-post-item .right_radius, #recent-posts > .recent-post-item .left_radius { + border-radius: 12px 12px 0px 0px; width: 100%; display: flex; } } -#recent-posts > .recent-post-item .right_radius a, -#recent-posts > .recent-post-item .left_radius a { +#recent-posts > .recent-post-item .right_radius a, #recent-posts > .recent-post-item .left_radius a { min-height: 100%; min-width: 100%; } -#recent-posts > .recent-post-item > .recent-post-info { - display: inline-block; - overflow: hidden; -} - /* 文章置顶卡片样式 */ .recent-top-post-group { border-radius: 12px; @@ -9165,6 +6948,7 @@ span + a + .content:last-child { overflow-x: auto; width: 100%; margin-bottom: 0rem; + -webkit-user-select: none; } .recent-post-top { @@ -9216,10 +7000,6 @@ span + a + .content:last-child { margin-bottom: 0.5rem; } - .recent-post-top .recent-post-item:active { - transform: scale(0.97); - } - .recent-post-top { overflow-x: visible; } @@ -9249,18 +7029,6 @@ span.recent-post-top-text { left: 0; } -@media screen and (min-width: 1300px) { - .recent-post-top .recent-post-item:hover { - border: var(--style-border-hover); - box-shadow: var(--heo-shadow-main); - transform: scale(1.03); - } - - .recent-post-top .recent-post-item:active { - transform: scale(0.97); - } -} - @media screen and (max-width: 768px) { .recent-top-post-group { border-radius: 0; @@ -9324,7 +7092,6 @@ span.recent-post-top-text { justify-content: center; align-items: flex-end; align-content: center; - padding-top: .5rem; font-weight: bold; font-size: 0.8rem !important; padding: 0 !important; @@ -9357,7 +7124,6 @@ span.recent-post-top-text { box-shadow: var(--heo-shadow-border); background: var(--heo-card-bg); border: var(--style-border); - transition: 0.3s; border-radius: 12px; transition: 0.3s; position: relative; @@ -9376,31 +7142,14 @@ span.recent-post-top-text { } #recent-posts > .recent-post-item:not(:first-child) { - margin-top: 0.5rem; margin-bottom: 1rem; position: relative; overflow: hidden; + margin-top: 1rem; + position: relative; + overflow: hidden; } -/* 图片在左侧 */ -#recent-posts > .recent-post-item.left, .recent-post-item.alternate.odd { - flex-direction: row !important; -} - -#recent-posts > .recent-post-item.left .cover_radius, .recent-post-item.alternate.odd .cover_radius { - border-radius: 12px 0px 0px 12px !important; -} - -/* 图片在右侧 */ -#recent-posts > .recent-post-item.right, .recent-post-item.alternate.even { - flex-direction: row-reverse !important; -} - -#recent-posts > .recent-post-item.right .cover_radius, .recent-post-item.alternate.even .cover_radius { - border-radius: 0px 12px 12px 0px !important; -} - - @media screen and (min-width: 1300px) { #recent-posts > .recent-post-item { @@ -9408,39 +7157,13 @@ span.recent-post-top-text { } #recent-posts > .recent-post-item:not(:first-child) { - /*width: calc(50% - 0.5rem);*/ + width: calc(100% / 2 - 0.5rem); margin-top: 0.25rem; margin-bottom: 0.75rem; box-shadow: var(--heo-shadow-border); clip-path: inset(0 0 0 0 round 12px); } - #recent-posts > .recent-post-item:not(:first-child):active { - transform: scale(0.97); - } - - /* 设置分列 */ - /* 1 列:左右排列 */ - #recent-posts > .recent-post-item.col1 { - width: calc(100% - .5rem); - - } - - /* 2 列 */ - #recent-posts > .recent-post-item.col2 { - width: calc(100% / 2 - .5rem); - } - - /* 3 列 */ - #recent-posts > .recent-post-item.col3 { - width: calc(100% / 3 - .5rem); - } - - /* 4 列 */ - #recent-posts > .recent-post-item.col4 { - width: calc(100% / 4 - .5rem); - } - #category-bar { margin-bottom: 0.75rem; box-shadow: var(--heo-shadow-border); @@ -9453,6 +7176,7 @@ span.recent-post-top-text { justify-content: space-between; align-items: flex-start; align-content: flex-start; + -webkit-user-select: none; } } @@ -9464,9 +7188,8 @@ span.recent-post-top-text { } #recent-posts > .recent-post-item:not(:first-child) { - margin: 1.5rem 1rem; border-radius: 12px; - margin-top: 0.5rem; + margin: 0.5rem 1rem 1.5rem; border: var(--style-border-always); box-shadow: var(--heo-shadow-border); display: block; @@ -9499,13 +7222,6 @@ span.recent-post-top-text { } } -/* 置顶卡片数量优化 */ -@media screen and (min-width: 1300px) { - .topGroup .recent-post-item:nth-child(7) { - display: none; - } -} - /* 手机端精简优化 */ @media screen and (max-width: 768px) { @@ -9525,92 +7241,34 @@ span.recent-post-top-text { right: 0; } - /* 右下角设置按钮 */ - #rightside { - display: none; - } - - /* 背景 */ - #web_bg { - background: none !important; - } - #recent-posts > .recent-post-item .post_cover img.post_bg { border-radius: 12px 12px 0 0 !important; } - #recent-posts > .recent-post-item .post_cover img.post_bg:hover { - transform: scale(1); - } - - #recent-posts > .recent-post-item:hover img.post_bg { - transform: scale(1); - } - - .recent-post-top .recent-post-item:hover .post_cover img { - transform: scale(1); - } - - #recent-posts > .recent-post-item > .recent-post-info > .article-title, - #recent-posts > .recent-post-item > .recent-post-info > .content, - #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap { + #recent-posts > .recent-post-item > .recent-post-info > .article-title, #recent-posts > .recent-post-item > .recent-post-info > .content, #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap { padding: 0 20px !important; } } -/* 主页文章封面左侧显示 */ -/* #recent-posts>.recent-post-item .right_radius{ - order: 0; - border-radius: 8px 0 0 8px; -} */ - -/* 主页文章卡片尺寸变化 */ -/* #recent-posts > div:nth-child(1){ - height: 22em; -} -#recent-posts > div:nth-child(1) > div.recent-post-info > div.content{ - height: 120px; - margin-top: 20px!important; -} -#recent-posts > div:nth-child(4){ - height: 22em; -} -#recent-posts > div:nth-child(4) > div.recent-post-info > div.content{ - height: 120px; - margin-top: 20px!important; -} -#recent-posts > div:nth-child(8){ - height: 22em; -} -#recent-posts > div:nth-child(8) > div.recent-post-info > div.content{ - height: 120px; - margin-top: 20px!important; -} */ - -.article-meta__categories { - position: absolute; - top: 8px; - left: 8px; - display: flex; -} - - /* 自定义的文章分类 */ -a.article-meta__category { - display: block; - padding: 2px 6px; +a.article-meta__categories { + position: absolute; + padding: 1px 6px; background: var(--heo-black-op); - border-radius: 6px; - margin: 0 5px 0 0; - font-size: 14px; + border-radius: 8px; + margin-left: 0px; + font-size: 12px; font-weight: bold; color: var(--heo-white); + top: 8px; + left: 8px; backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); } -a.article-meta__category:hover { +a.article-meta__categories:hover { background: var(--heo-theme) !important; color: var(--heo-white) !important; box-shadow: var(--heo-shadow-theme); @@ -9653,11 +7311,6 @@ a.article-meta__category:hover { } } -/* 文章卡片标签边距 */ -.article-meta-wrap { - color: var(--heo-secondtext) !important; -} - /* 日期右侧显示 */ #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap > .post-meta-date { /* display: none; */ @@ -9669,21 +7322,9 @@ a.article-meta__category:hover { display: none; } -.post-meta-date .far { - opacity: 0.6; -} - -.post-meta-date .article-meta-label { - display: none; -} - -.post-meta-date { - margin-right: 0.8rem; -} - /* 文章目录 */ #aside-content #card-toc .toc-content .toc-link.active { - line-height: 1.2; + line-height: 24px; border-radius: 12px; border-left-color: var(--heo-hovertext); background-color: var(--heo-card-bg); @@ -9702,12 +7343,15 @@ a.article-meta__category:hover { } #aside-content #card-toc .toc-content .toc-link { - line-height: 1.2; + line-height: 24px; padding: 8px; border-left: 0px solid transparent; border-radius: 12px; color: var(--heo-secondtext); cursor: default; + min-height: 40px; + display: flex; + align-items: center; } #aside-content #card-toc .toc-content .toc-link:not(.active) span { @@ -9726,11 +7370,6 @@ a.article-meta__category:hover { color: var(--heo-lighttext); } -/* 目录卡片边距 */ -#card-toc { - padding: 0.5rem 0.5rem !important; -} - /* 不显示分割线 */ #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap .article-meta__separator { display: none; @@ -9750,8 +7389,9 @@ a.article-meta__category:hover { } .article-meta__tags { - margin-right: 4px; - padding: 0 0.2rem 0 0; + margin-right: 8px; + padding: 0 .2rem 0 0; + color: var(--heo-fontcolor); } /* 多分类兼容性调整 */ @@ -9766,6 +7406,9 @@ a.article-meta__category:hover { width: 100%; cursor: pointer; position: relative; + padding: 0; + display: inline-block; + overflow: hidden; } @media screen and (max-width: 768px) { @@ -9804,15 +7447,16 @@ a.article-meta__category:hover { /* 首页文章标签样式 */ #recent-posts > .recent-post-item > .recent-post-info > .article-meta-wrap a:hover { - background-color: var(--heo-post-blockquote-bg); - color: var(--heo-hovertext); + background-color: var(--heo-none); + color: var(--heo-lighttext); + cursor: pointer; + border-radius: 4px; } /* 首页顶部banner区域 */ #home_top { max-width: 1400px; - margin: auto; - margin-top: 0.5rem; + margin: 0.5rem auto auto; padding: 0 1.5rem; } @@ -9825,32 +7469,6 @@ a.article-meta__category:hover { } -/* 热门标签提醒 */ - -/* sketch */ -#aside-content .card-tag-cloud a[href*="/tags/Sketch/"] { - color: var(--heo-lighttext) !important; - font-weight: 500; -} - -/* 设计 */ -#aside-content .card-tag-cloud a[href*="/tags/%E8%AE%BE%E8%AE%A1/"] { - color: var(--heo-lighttext) !important; - font-weight: 500; -} - -/* 干货 */ -#aside-content .card-tag-cloud a[href*="/tags/%E5%B9%B2%E8%B4%A7/"] { - color: var(--heo-lighttext) !important; - font-weight: 500; -} - -/* 教程 */ -#aside-content .card-tag-cloud a[href*="/tags/%E6%95%99%E7%A8%8B/"] { - color: var(--heo-lighttext) !important; - font-weight: 500; -} - #aside-content .card-tag-cloud a sup { opacity: 0.4; margin-left: 2px; @@ -9932,6 +7550,14 @@ div#author-info__sayhi { padding: 2px 8px; border-radius: 12px; width: fit-content; + cursor: pointer; + -webkit-user-select: none; + transition: 0.3s; +} + +div#author-info__sayhi:hover { + background: var(--heo-card-bg); + color: var(--heo-fontcolor); } #aside-content .card-info .author-info__name { @@ -10005,25 +7631,12 @@ div#author-info__sayhi { color: var(--heo-white); } -/* 作者卡片描述2 */ -.author-info__description2 { - line-height: 1.38; - margin: .3rem 0; - text-align: justify; - width: 100%; - z-index: 2; - color: rgba(255, 255, 255, 0.8); -} - -.author-info__description2 b { - color: var(--heo-white); -} - .card-widget.card-info .banner-button-group { position: absolute; right: 1rem; bottom: 1rem; display: flex; + -webkit-user-select: none; } .card-widget.card-info .banner-button-group .banner-button { @@ -10048,35 +7661,6 @@ div#author-info__sayhi { font-size: 1rem; } - -/* 头像背景 */ -/* 隐藏文章数等信息 */ -#aside-content .card-info .card-info-data { - display: none; -} - -/* 作者头像 */ -#aside-content .card-info a img { - border-radius: 0px; - height: 200px; - display: inherit; - filter: drop-shadow(-5px 14px 8px #00000008); - position: absolute; - right: -24px; - bottom: -82px; - width: auto; - z-index: 0; - transition: cubic-bezier(0.48, -0.21, 0, 1.5) 0.3s; -} - -#aside-content .card-info a img:hover { - bottom: -42px; -} - -[data-theme=light] #aside-content .card-info a img { - filter: drop-shadow(-5px 14px 8px #ffffff08); -} - .card-widget.card-info { padding: 0 !important; } @@ -10087,29 +7671,11 @@ div#author-info__sayhi { position: relative; } -#aside-content > div.card-widget.card-info > div.card-info-avatarimg { - overflow: hidden; - background: var(--heo-yellow); - transition: 1.5s; - min-height: 160px; - position: relative; - box-shadow: var(--heo-shadow-yellow); -} - -#aside-content > div.card-widget.card-info > div.card-info-avatarimg:hover img { - transform: scale(1.03); -} - /* 作者文章列表链接 */ #aside-content > div.card-widget.card-info > div > div.card-info-data > div:nth-child() > a > div.headline { font-weight: bold; } -/* 作者名称和头像间距 */ -/* #aside-content .card-info .author-info__name{ - padding-top: 30px; -} */ - /* pad端隐藏部分侧边栏 */ @media screen and (max-width: 900px) { #aside-content .card-announcement { @@ -10140,8 +7706,7 @@ div#author-info__sayhi { } #aside-content .card-info .card-info-social-icons .social-icon { - margin: 0; - margin-right: 8px; + margin: 0 8px 0 0; } #aside-content .card-info .card-info-social-icons i { @@ -10183,17 +7748,10 @@ div#author-info__sayhi { transform: scale(0.97); } -#aside-content > div.card-widget.card-info > div.card-content > div.card-info-data > .card-info-data-item:hover > a > div.headline, -#aside-content > div.card-widget.card-info > div.card-content > div.card-info-data > .card-info-data-item:hover > a > div.length-num { +#aside-content > div.card-widget.card-info > div.card-content > div.card-info-data > .card-info-data-item:hover > a > div.headline, #aside-content > div.card-widget.card-info > div.card-content > div.card-info-data > .card-info-data-item:hover > a > div.length-num { color: var(--heo-blue); } -/* 公告 */ -.announcement_content p { - margin: 0.5rem 0 0 0; - line-height: 1.38; -} - /* 卡片标题 */ #aside-content .item-headline { padding-bottom: 0; @@ -10206,9 +7764,9 @@ div#author-info__sayhi { min-width: 19.5px; } -#aside-content .item-headline + div, -#aside-content .item-headline + ul { +#aside-content .item-headline + div, #aside-content .item-headline + ul { padding: 0; + -webkit-user-select: none; } @media screen and (min-width: 1300px) { @@ -10238,13 +7796,7 @@ div#author-info__sayhi { transition: 0.3s !important; } -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item.more span, -#aside-content .card-categories ul.card-category-list > .card-category-list-item.more span { - transition: 0.3s !important; -} - -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item:hover.more span, -#aside-content .card-categories ul.card-category-list > .card-category-list-item.more span { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item.more span, #aside-content .card-categories ul.card-category-list > .card-category-list-item.more span { transition: 0.3s !important; } @@ -10253,25 +7805,17 @@ div#author-info__sayhi { } #web_bg { - background-repeat: repeat; - background-size: auto; - width: 200%; - height: 200%; - top: -50%; - left: -50%; - transform: rotate(-15deg); + width: 100%; + height: 100%; + top: 0; + left: 0; opacity: 1; - background-color: var(--heo-background); + position: fixed; + z-index: -999; + background: var(--heo-background); } -#web_bg:before { - background-color: var(--heo-background) !important; - opacity: 1; -} - -[data-theme='dark'] #web_bg:before, -[data-theme='dark'] #footer:before, -[data-theme='dark'] #page-header:before { +[data-theme='dark'] #web_bg:before, [data-theme='dark'] #footer:before, [data-theme='dark'] #page-header:before { background-color: var(--heo-none) !important; } @@ -10301,20 +7845,8 @@ div#author-info__sayhi { font-size: var(--global-font-size) !important; } - -@media screen and (min-width: 1300px) { - #aside-content .card-tag-cloud a:hover { - transform: scale(1.03); - } - - #aside-content .card-tag-cloud a:active { - transform: scale(0.97); - } -} - /* 时间轴卡片 */ -#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, -#aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { +#aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover { color: var(--heo-white); background-color: var(--heo-theme); box-shadow: var(--heo-shadow-theme); @@ -10323,20 +7855,6 @@ div#author-info__sayhi { border: var(--style-border-hover); } - -@media screen and (min-width: 1300px) { - - #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:hover, - #aside-content .card-categories ul.card-category-list > .card-category-list-item a:hover { - transform: scale(1.03); - } - - #aside-content .card-archives ul.card-archive-list > .card-archive-list-item a:active, - #aside-content .card-categories ul.card-category-list > .card-category-list-item a:active { - transform: scale(0.97); - } -} - /* 翻页 */ a.extend.next { right: 0; @@ -10346,6 +7864,10 @@ a.extend.prev { left: 0; } +#pagination { + width: 100%; +} + @media screen and (max-width: 768px) { #pagination { margin-bottom: 0rem; @@ -10416,7 +7938,6 @@ a.extend.prev { background-color: var(--heo-main); transition: 0s; overflow: hidden; - box-shadow: var(--heo-shadow-main); } .post-bg #post-cover { @@ -10432,11 +7953,11 @@ a.extend.prev { width: 70%; height: 100%; position: relative; - margin: 0 -20% 0 auto; overflow: hidden; - margin-bottom: 0; + margin: 0 -20% 0 auto; transform: rotate(10deg) translateY(-10%) scale(2); filter: blur(10px); + opacity: 0.5; } .coverdiv.loaded { @@ -10582,31 +8103,26 @@ a.extend.prev { display: flex; flex-direction: column; align-items: flex-start; - height: calc(100% + 30px); + height: calc(100% + 0px); justify-content: center; } @media screen and (max-width: 768px) { #page-header #post-info { - padding: 0 6%; justify-content: normal; - padding-top: 18rem; + padding: 18rem 6% 0; } } @media screen and (min-width: 1300px) { #page-header #post-info { - height: calc(100% + 30px); + height: calc(100% + 0px); top: 0; display: flex; justify-content: center; } } -/*#post-info #post-meta > .meta-secondline > span:first-child {*/ -/* margin-right: 0.8rem;*/ -/*}*/ - .meta-secondline span { display: flex; align-items: center; @@ -10624,6 +8140,7 @@ a.extend.prev { text-align: left; display: flex; white-space: nowrap; + -webkit-user-select: none; } #post-firstinfo .post-meta__tags { @@ -10657,6 +8174,9 @@ span.post-meta-categories:hover { a.post-meta-categories { color: var(--heo-white); font-size: 0.7rem; + width: 100%; + height: 100%; + display: flex; } span.post-meta-categories:hover a.post-meta-categories { @@ -10695,6 +8215,9 @@ a.post-meta-original { font-weight: bold; height: 32px; line-height: 32px; + width: 100%; + height: 100%; + display: flex; } a.post-meta-original:hover { @@ -10799,102 +8322,31 @@ a.post-meta-original:hover { font-size: 15px; } -/* 热度间隔 */ -span.post-meta-pv-cv { - margin-left: 0.8rem; -} - -/* 微信公众号同步 */ -span.post-meta-wechat { - margin-right: 0.8rem; - opacity: 0.6; - transition: 0.3s; - cursor: pointer; -} - .post-meta-wechat:hover { opacity: 1; } -span.post-meta-position { - margin-right: 0.8rem; - opacity: 0.6; -} - -/* 隐藏信息文字 */ -#post-info #post-meta .post-meta-label { - display: none; -} - /* 图标数字间距 */ #post-info #post-meta .post-meta-icon { margin-right: 0.4rem; } -/* 每组间距 */ -#post-info #post-meta .post-meta-separator { - margin: 0px 0.4rem; -} - -/* 文章信息数值 */ -.post-meta-pv-cv #visit { +#post-meta > div > span > span { font-weight: 800; } -#post-meta > div > span.post-meta-wordcount > span.word-count { - font-weight: 800; -} - -#post-meta > div > span.post-meta-wordcount > span:nth-child(7) { - font-weight: 800; -} - -#post-firstinfo > div > span.post-meta-categories > a { - font-weight: 800; -} - -/* 文章信息透明度 */ -.post-meta-wordcount { - opacity: 0.6; - margin-right: 0.8rem -} - -@media screen and (max-width: 768px) { - .post-meta-wordcount { - margin-left: 0; - } -} - -.post-meta-date { - opacity: 0.6; -} - -.post-meta-pv-cv { - opacity: 0.6; -} - -.post-meta-pv { - opacity: 0.6; - margin-right: 0.8rem; -} - -.post-meta-commentcount { - opacity: 0.6; - cursor: pointer; - transition: 0.3s; -} - .post-meta-commentcount:hover { opacity: 1; } -#comment-count { +#twikoo-count { font-weight: 800; color: var(--heo-white); } .el-textarea .el-input__count { color: var(--heo-secondtext) !important; + -webkit-user-select: none; } .post-meta-commentcount i { @@ -10930,6 +8382,7 @@ span.post-meta-position { margin: 1rem 0 1rem 0 !important; -webkit-line-clamp: 2; padding: 0; + overflow: hidden; } @media screen and (max-width: 768px) { @@ -10952,6 +8405,7 @@ span.post-meta-position { margin-top: 0.4rem; transition: 0.3s; display: flex; + -webkit-user-select: none; } #post-info #post-meta a { @@ -10967,48 +8421,28 @@ span.post-meta-position { } /* 文章标题前图标 */ -#article-container h1:before, -#article-container h2:before, -#article-container h3:before, -#article-container h4:before, -#article-container h5:before, -#article-container h6:before { +#article-container h1:before, #article-container h2:before, #article-container h3:before, #article-container h4:before, #article-container h5:before, #article-container h6:before { top: calc(50% - .45rem); content: ''; } /* 文章标题前图标悬浮 */ -#article-container h1:hover:before, -#article-container h2:hover:before, -#article-container h3:hover:before, -#article-container h4:hover:before, -#article-container h5:hover:before, -#article-container h6:hover:before { +#article-container h1:hover:before, #article-container h2:hover:before, #article-container h3:hover:before, #article-container h4:hover:before, #article-container h5:hover:before, #article-container h6:hover:before { color: var(--heo-lighttext); } -/* 标题悬浮效果 */ -#article-container h1:hover, -#article-container h2:hover, -#article-container h3:hover, -#article-container h4:hover, -#article-container h5:hover, -#article-container h6:hover { - padding-left: 1.3rem; -} - /* 文章tab样式 */ #article-container ul > li:not(.tab):before { border: 0.21em solid var(--heo-lighttext); background: var(--heo-lighttext); } -#article-container ol, -#article-container ul { +#article-container ol, #article-container ul { padding: 0; } #article-container .tabs { + position: relative; margin: 1rem 0 !important; border-radius: 12px; overflow: hidden; @@ -11062,20 +8496,8 @@ span.post-meta-position { border: var(--style-border-hover-always); } -.tab-item-content { - background: var(--heo-card-bg); -} - -/* tab边框 */ -#article-container .tabs { - border: 3px solid var(--heo-secondbg) !important; -} - - /* 切换tab标签 */ #article-container .tabs > .tab-contents .tab-item-content.active { - animation: tabshow 0s; - -webkit-animation: tabshow 0s; padding: 1.2rem 1.2rem; border-radius: 8px; } @@ -11092,40 +8514,49 @@ span.post-meta-position { } /* 文章details折叠 */ -details { +details:not(.tk-admin-config-group) { display: block; position: relative; margin-bottom: 1rem; min-height: 54px; overflow: hidden; + border-radius: 12px; + border: var(--style-border); + transition: border 0.3s; } -details summary { +details:not(.tk-admin-config-group):hover { + border: var(--style-border-hover-always); +} + +details:not(.tk-admin-config-group) summary { position: absolute; padding: 0.5rem 1rem; background: var(--heo-card-bg); - border-radius: 12px; margin: 0; transition: 0.3s; - border: var(--style-border); box-shadow: var(--heo-shadow-border); position: absolute; left: 0; width: 100%; + font-weight: bold; } -details > *:nth-child(2) { +details:not(.tk-admin-config-group) > *:nth-child(2) { margin-top: calc(54px + 1rem) !important; } -details[open] summary { - border-radius: 12px 12px 0 0; +details[open]:not(.tk-admin-config-group) summary { background: var(--heo-main); color: var(--heo-white); - border: var(--style-border-hover-always); } -details summary:hover { +details:not(.tk-admin-config-group) summary::before { + content: ''; + padding: 4px; +} + +details:not(.tk-admin-config-group) summary:hover { cursor: pointer; background: var(--heo-main); color: var(--heo-white); @@ -11133,31 +8564,31 @@ details summary:hover { box-shadow: var(--heo-shadow-main); } -details summary:focus { +details:not(.tk-admin-config-group) summary:focus { outline: none; } -details summary::marker { +details:not(.tk-admin-config-group) summary::marker { color: var(--heo-main); transition: 0.3s; } -details[open] summary::marker { +details[open]:not(.tk-admin-config-group) summary::marker { color: var(--heo-white); } -details summary:hover::marker { +details:not(.tk-admin-config-group) summary:hover::marker { color: var(--heo-white); } -details[open] { +details[open]:not(.tk-admin-config-group) { border-radius: 12px; border: var(--style-border-hover-always); padding: 0 1.5rem; background: var(--heo-card-bg); } -details summary:hover:after { +details:not(.tk-admin-config-group) summary:hover:after { position: absolute; content: '+'; text-align: center; @@ -11167,13 +8598,13 @@ details summary:hover:after { line-height: 1; } -details[open] > summary:hover:after { +details[open]:not(.tk-admin-config-group) > summary:hover:after { content: '-'; } @media screen and (max-width: 768px) { - details[open] { - padding: 0; + details[open]:not(.tk-admin-config-group) { + padding: 0 16px; } } @@ -11183,7 +8614,7 @@ details[open] > summary:hover:after { } /* 文章中的超链接 */ -#article-container a { +#article-container a:not(.bilibili_box) { text-decoration: none; border-bottom: 2px solid var(--heo-lighttext); color: var(--heo-fontcolor); @@ -11192,7 +8623,7 @@ details[open] > summary:hover:after { border-radius: 4px 4px 0 0; } -#article-container a:not(.fancybox):hover { +#article-container a:not(.fancybox):not(.bilibili_box):hover { text-decoration: none; border-bottom: 2px solid var(--heo-none); color: var(--heo-white); @@ -11207,10 +8638,11 @@ details[open] > summary:hover:after { margin: auto; display: contents; width: fit-content; + -webkit-user-select: none; } #article-container a.fancybox img { - cursor: pointer; + cursor: zoom-in; } .site-card-avatar a.fancybox { @@ -11223,28 +8655,27 @@ details[open] > summary:hover:after { letter-spacing: 0.6px; } -/*#article-container code {*/ -/* color: var(--heo-white);*/ -/* padding: 0.2rem 0.4rem;*/ -/* border-radius: 4px;*/ -/* margin: 0px 4px;*/ -/* background: var(--heo-pink);*/ -/* line-height: 2;*/ -/* box-shadow: var(--heo-shadow-border);*/ -/*}*/ +#article-container code { + color: var(--heo-white); + padding: 0.2rem 0.4rem; + border-radius: 4px; + margin: 0px 4px; + background: var(--heo-pink); + line-height: 2; + box-shadow: var(--heo-shadow-border); +} -/*#article-container code::selection {*/ -/* background: var(--heo-main) !important;*/ -/*}*/ +#article-container code::selection { + background: var(--heo-main) !important; +} /* 文章表格间距 */ .table-wrap { - margin: 1rem 0px; + margin: 1rem 0; border-radius: 8px; } -table th, -table td { +table th, table td { border: var(--style-border-always); } @@ -11253,8 +8684,7 @@ table thead { } /* 文章中的加粗文本颜色 */ -b, -strong { +b, strong { color: var(--heo-lighttext); } @@ -11265,11 +8695,8 @@ strong { font-weight: 400; } -#article-container.post-content h1, -#article-container.post-content h2, -#article-container.post-content h3, -#article-container.post-content h4 { - /*display: flex;*/ +#article-container.post-content h1, #article-container.post-content h2, #article-container.post-content h3, #article-container.post-content h4 { + display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; @@ -11303,32 +8730,15 @@ strong { } } -/* 外挂标签 */ - -.note.warning:not(.no-icon):not(.modern)::before { - display: flex; - align-items: center; - height: 30px; - color: var(--heo-yellow); -} - -.note.warning:not(.modern) { - border-radius: 8px; - border-width: 1px; - border-color: var(--heo-yellow); - box-shadow: var(--heo-shadow-border); - background: var(--card-bg); -} - /* 链接外挂标签 */ #article-container .tag-Link { background: var(--heo-secondbg); border-radius: 8px !important; display: flex; - border: var(--style-border); + border: var(--style-border-always); + border-bottom: none !important; flex-direction: column; - padding: 0.5rem 1rem; - border-width: 1px !important; + padding: 0.3rem 1rem 0.6rem !important; margin-top: 1rem; } @@ -11362,9 +8772,17 @@ strong { min-width: 60px; height: 60px; background-size: cover !important; - border-radius: 60px; + border-radius: 8px; background: var(--heo-card-bg); pointer-events: none; + display: flex; +} + +#article-container .tag-Link .tag-link-bottom .tag-link-left i { + padding: 0; + margin: auto; + font-size: 24px; + color: var(--heo-fontcolor); } #article-container .tag-Link .tag-link-bottom .tag-link-right { @@ -11373,17 +8791,27 @@ strong { } #article-container .tag-Link .tag-link-bottom .tag-link-right .tag-link-title { - font-size: 1rem; + font-size: 16px; line-height: 1.2; pointer-events: none; + word-break: break-all; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; /* 这里是超出几行省略 */ + overflow: hidden; } #article-container .tag-Link .tag-link-bottom .tag-link-right .tag-link-sitename { font-size: 0.7rem; color: var(--heo-gray); font-weight: normal; - margin-top: 4px; + margin-top: 8px; pointer-events: none; + line-height: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } #article-container .tag-Link:hover .tag-link-bottom .tag-link-right .tag-link-sitename { @@ -11396,25 +8824,11 @@ strong { pointer-events: none; } -/* 文章标题 */ -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 1rem; - padding-top: 0; - padding-left: 0 !important; - font-weight: weight; -} - #post h2 { margin-top: 1.5rem; } -#article-container > h2:nth-child(1), -#article-container > h1:nth-child(1) { +#article-container > h2:nth-child(1), #article-container > h1:nth-child(1) { margin: 0; } @@ -11520,11 +8934,9 @@ blockquote p { #article-container .headerlink { float: right; opacity: 0.08; - border-bottom-style: none; - border-bottom: none; position: relative; padding: 0px; - border: none; + border-style: none; border-radius: 8px !important; line-height: 1; font-size: 1rem; @@ -11552,75 +8964,71 @@ blockquote p { object-fit: cover; } -#article-container img.error { - content: url(../images/404.gif); -} - /* 文章视频 */ .doge-inner-player { border-radius: 12px !important; } /* 文章数字头 */ -#article-container ol li:before, -#article-container ul li:before { +#article-container ol li:before, #article-container ul li:before { background: var(--heo-theme); cursor: default; } -#article-container ol li:hover:before, -#article-container ul li:hover:before { +#article-container ol li:hover:before, #article-container ul li:hover:before { transform: rotate(0deg); } /* 文章代码框 */ -/*figure {*/ -/* margin-top: 0.5rem !important;*/ -/*}*/ - -/*#article-container figure.highlight .highlight-tools {*/ -/* background: var(--heo-secondbg) !important;*/ -/*}*/ +figure { + margin-top: 0.5rem !important; +} #article-container .gutter { opacity: 0.6; + user-select: none; } #article-container .code-lang { margin-left: 6px; } -/*#article-container .highlight-tools .code-lang {*/ -/* text-transform: capitalize;*/ -/* left: 1.9rem;*/ -/*}*/ +#article-container figure.highlight table::-webkit-scrollbar { + color: var(--heo-blue); + background: var(--heo-secondbg); + height: 8px; +} -/*#article-container figure.highlight table::-webkit-scrollbar {*/ -/* color: var(--heo-blue);*/ -/* background: var(--heo-secondbg);*/ -/* height: 8px;*/ -/*}*/ +#article-container figure.highlight table::-webkit-scrollbar-thumb { + background: var(--heo-gray); +} -/*#article-container figure.highlight table::-webkit-scrollbar-thumb {*/ -/* background: var(--heo-gray);*/ -/*}*/ - -/*#article-container figure.highlight table::-webkit-scrollbar-thumb:hover {*/ -/* background: var(--heo-main);*/ -/*}*/ +#article-container figure.highlight table::-webkit-scrollbar-thumb:hover { + background: var(--heo-main); +} /* 代码展开图标 */ #article-container .code-expand-btn i { color: var(--heo-fontcolor); font-size: 1rem; + padding: 0.3rem 0px; + animation: 1.2s ease 0s infinite normal none running code-expand-key; } #article-container .code-expand-btn { - background-color: var(--heo-mask); background: var(--heo-secondbg); transition: 0.3s; backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); + border-top: var(--style-border-always); + position: absolute; + bottom: 0px; + z-index: 10; + width: 100%; + text-align: center; + font-size: var(--global-font-size); + cursor: pointer; } #article-container .code-expand-btn:hover { @@ -11645,53 +9053,54 @@ blockquote p { border-radius: 12px; } */ -.relatedPosts > .relatedPosts-list .cover::after { - content: ' '; - display: block; - position: absolute; - z-index: 0; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: url(../images/404.gif) 50%; - background-size: cover; +/* .relatedPosts>.relatedPosts-list .cover::after { + content: ' '; + display: block; + position: absolute; + z-index: 0; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: url('https://img.zhheo.com/i/2022/08/31/630efd3d82799.webp') 50%; + background-size: cover; } -.relatedPosts > .relatedPosts-list a { - display: flex; - width: 100%; - height: 100%; +.relatedPosts>.relatedPosts-list a { + display: flex; + width: 100%; + height: 100%; } @media screen and (min-width: 768px) { - #post > div.relatedPosts > div.relatedPosts-list > div { - -webkit-mask-image: -webkit-radial-gradient(center, rgb(255, 255, 255), rgb(0, 0, 0)); + #post>div.relatedPosts>div.relatedPosts-list>div { + -webkit-mask-image: -webkit-radial-gradient(center, rgb(255, 255, 255), rgb(0, 0, 0)); + } + + #post>div.relatedPosts>div.relatedPosts-list>div { + border-radius: 12px; + } + + .relatedPosts>.headline { + font-size: 0.8em; + } + + @media screen and (max-width: 1300px) { + #post>div.relatedPosts>div.relatedPosts-list>div:nth-child(7) { + display: none; } - #post > div.relatedPosts > div.relatedPosts-list > div { - border-radius: 12px; - } - - .relatedPosts > .headline { - font-size: 0.8em; - } - - @media screen and (max-width: 1300px) { - #post > div.relatedPosts > div.relatedPosts-list > div:nth-child(7) { - display: none; - } - - #post > div.relatedPosts > div.relatedPosts-list > div:nth-child(8) { - display: none; - } + #post>div.relatedPosts>div.relatedPosts-list>div:nth-child(8) { + display: none; } + } } -.relatedPosts > .headline { - margin-bottom: 0.8rem !important; - font-size: 1.2em; -} +.relatedPosts>.headline { + margin-bottom: 0.8rem; + font-weight: bold; + font-size: 20px; +} */ /* 文章标签 */ @@ -11737,6 +9146,9 @@ blockquote p { border: var(--style-border); border-width: 1px; transition: 0.3s; + position: relative; + margin: 2rem 0px 0.5rem; + border-radius: 12px; } #post .post-copyright:after { @@ -11772,6 +9184,7 @@ blockquote p { font-weight: bold; line-height: 1.5; white-space: nowrap; + -webkit-user-select: none; } .post-copyright__original:hover { @@ -11801,8 +9214,7 @@ blockquote p { .post-copyright-copybtn { margin-left: 0.5rem; color: var(--heo-fontcolor); - opacity: 0.4; - transition: 0.3s; + z-index: 1; } .post-copyright-copybtn:hover { @@ -11985,7 +9397,7 @@ a.reward-main-btn { a.reward-main-btn:hover { color: var(--heo-white); background: var(--heo-red); - background-image: url(../images/404.gif); + background-image: url(/img/theme/award.gif); box-shadow: var(--heo-shadow-red); } @@ -12008,17 +9420,6 @@ a.reward-main-btn:hover { transition: 0.3s; } -@media screen and (min-width: 1300px) { - .reward-link.mode:hover { - transform: scale(1.03); - } - - .reward-link.mode:active { - transform: scale(0.97); - } -} - - .reward-link.mode a { color: var(--heo-white); } @@ -12050,15 +9451,6 @@ a.reward-main-btn:hover { display: none; } - -/* 接下来下一篇 */ -.next-post.pull-right, -.prev-post.pull-left, -#pagination .prev-post, -#pagination .next-post { - background: var(--heo-secondbg); -} - @media screen and (min-width: 768px) { #pagination .next-post a { border-left: var(--heo-card-bg); @@ -12091,29 +9483,25 @@ a.reward-main-btn:hover { height: 100%; } - #pagination .prev-post a:hover, - #pagination .next-post a:hover { + #pagination .prev-post a:hover, #pagination .next-post a:hover { background: var(--heo-main); } - #pagination .prev-post a:hover div, - #pagination .next-post a:hover div { + #pagination .prev-post a:hover div, #pagination .next-post a:hover div { color: var(--heo-white) !important; } } @media screen and (max-width: 768px) { - #pagination .prev-post a:hover, - #pagination .next-post a:hover { + #pagination .prev-post a:hover, #pagination .next-post a:hover { background: var(--heo-none); } } -#pagination img.prev-cover, -#pagination img.next-cover { +#pagination img.prev-cover, #pagination img.next-cover { opacity: 0.15; transform: scale(1.03); transition: 0.3s; @@ -12122,22 +9510,17 @@ a.reward-main-btn:hover { -webkit-transform-style: preserve-3d; } -#pagination .prev-post:hover img.prev-cover, -#pagination .next-post:hover img.prev-cover, -#pagination .prev-post:hover img.next-cover, -#pagination .next-post:hover img.next-cover { +#pagination .prev-post:hover img.prev-cover, #pagination .next-post:hover img.prev-cover, #pagination .prev-post:hover img.next-cover, #pagination .next-post:hover img.next-cover { opacity: 0.25; transform: scale(1.03); filter: blur(5px); } -#post #pagination .prev-post .label, -#pagination .next-post .label { +#post #pagination .prev-post .label, #pagination .next-post .label { color: var(--heo-fontcolor); } -#post #pagination .prev_info, -#pagination .next_info { +#post #pagination .prev_info, #pagination .next_info { color: var(--heo-fontcolor); font-weight: bold; -webkit-line-clamp: 2; @@ -12146,6 +9529,7 @@ a.reward-main-btn:hover { font-size: 0.9rem; display: -webkit-box; -webkit-box-orient: vertical; + overflow: hidden; } #post #pagination { @@ -12153,122 +9537,20 @@ a.reward-main-btn:hover { position: inherit; } -#pagination.pagination-post { - background: var(--heo-card-bg); +.next-post.pull-right, .prev-post.pull-left, #pagination .prev-post, #pagination .next-post { + background: var(--heo-secondbg); } -@media screen and (min-width: 1300px) { - #post #pagination { - position: fixed; - width: 300px; - bottom: -100px; - right: 20px; - z-index: 1000; - height: fit-content; - transition: cubic-bezier(0.42, 0, 0.3, 1.11) 0.3s; - border: var(--style-border); - border-radius: 12px; - overflow: hidden; - cursor: pointer; - opacity: 0; - z-index: 1002; - } - - #post #pagination.show-window { - bottom: 20px; - opacity: 1; - } - - #post #pagination:hover { - border: var(--style-border-hover); - } - - #pagination .next-post a { - border: none; - height: fit-content; - padding: 0.5rem 0; - } - - #pagination.pagination-post { - border-radius: 0; - } - - #post #pagination .prev_info, - #pagination .next_info { - font-size: 14px; - font-weight: normal; - } - - #pagination .pagination-info { - padding: 0.5rem 1rem; - transform: none; - } - - #post #pagination { - background: none; - } - - .next-post.pull-right, - .prev-post.pull-left, - #pagination .prev-post, - #pagination .next-post { - background: var(--heo-maskbgdeep); - -webkit-backdrop-filter: blur(5px); - backdrop-filter: blur(5px); - } - - .prev-post.pull-left { - display: none; - } - - .next-post.pull-right { - width: 100% !important; - } - - #pagination .next-post .pagination-info { - text-align: left; - position: relative; - } - - #post #pagination .prev-post .label, - #pagination .next-post .label { - color: var(--heo-fontcolor); - font-weight: bold; - font-size: 12px; - margin-bottom: 0.5rem; - border-bottom: var(--style-border); - line-height: 1; - padding-bottom: 0.5rem; - } +#post #pagination { + border-radius: 12px; } -@media screen and (max-width: 768px) { - .prev-post.pull-left { - border-bottom: var(--style-border-always); - } +#post #pagination .prev-post .label, #pagination .next-post .label { + text-align: left; +} - #post #pagination { - border-radius: 12px; - border: var(--style-border-always); - box-shadow: var(--heo-shadow-border); - } - - #post #pagination .prev-post .label, - #pagination .next-post .label { - text-align: left; - } - - #post #pagination .prev_info, - #pagination .next_info { - text-align: left; - } - - .next-post.pull-right, - .prev-post.pull-left, - #pagination .prev-post, - #pagination .next-post { - background: var(--heo-card-bg); - } +#post #pagination .prev_info, #pagination .next_info { + text-align: left; } /* 翻页 */ @@ -12337,48 +9619,20 @@ a.reward-main-btn:hover { color: var(--heo-theme); border: var(--style-border-hover); box-shadow: var(--heo-shadow-main); - transform: scale(1.03); } - #pagination a.extend.next:hover, - #pagination a.extend.prev:hover { + #pagination a.extend.next:hover, #pagination a.extend.prev:hover { color: var(--heo-theme); border: var(--style-border-hover); box-shadow: var(--heo-shadow-main); - transform: scale(1.03); - } - - - - @media screen and (min-width: 1300px) { - #pagination .page-number:hover { - transform: scale(1.03); - } - - - #pagination a.extend.next:hover, - #pagination a.extend.prev:hover { - transform: scale(1.03); - } - - #pagination .page-number:active { - transform: scale(0.97); - } - - #pagination a.extend.next:active, - #pagination a.extend.prev:active { - transform: scale(0.97); - } - } #pagination span.space { margin: 0 0.3rem; } - #pagination a.extend.next, - #pagination a.extend.prev { + #pagination a.extend.next, #pagination a.extend.prev { width: 4rem; height: 2rem; line-height: 1.9rem; @@ -12394,8 +9648,7 @@ a.reward-main-btn:hover { transition: 0.3s; } - #pagination a.extend.next i, - #pagination a.extend.prev i { + #pagination a.extend.next i, #pagination a.extend.prev i { transition: 0.3s; } @@ -12483,6 +9736,7 @@ a.reward-main-btn:hover { -webkit-line-clamp: 4; font-size: 0.9rem; text-align: left; + overflow: hidden; } .relatedPosts > .relatedPosts-list .content .date { @@ -12530,10 +9784,12 @@ div#post-comment { } #post-comment > div.comment-head > div.comment-privacy { - display: block; - justify-content: space-between; - float: right; - line-height: 2rem; + margin-left: 8px; + font-size: 13px; +} + +#post-comment > div.comment-head > div.comment-privacy a:hover { + color: var(--heo-theme); } #post-comment .comment-tips { @@ -12545,11 +9801,13 @@ div#post-comment { padding: 8px 12px; margin-top: 0.5rem; display: none; + width: 100%; } #post-comment .comment-tips.show { display: flex; + font-weight: bold; } /* 头像 */ @@ -12557,6 +9815,7 @@ div#post-comment { width: 32px !important; height: 32px !important; box-shadow: var(--heo-shadow-border); + margin-right: 16px !important; } .tk-avatar.tk-has-avatar { @@ -12569,20 +9828,14 @@ div#post-comment { display: none; } -.tk-avatar .tk-avatar-img { - height: 32px !important; -} - .tk-avatar .tk-avatar-img:hover { transform: rotate(360deg); } img.tk-avatar-img { height: 32px !important; -} - -.tk-avatar { - margin-right: 0.5rem !important; + border-radius: 32px; + border: var(--style-border-always); } /* 评论输入框提示 */ @@ -12677,11 +9930,12 @@ img.tk-avatar-img { } /* 填写项标题 */ -.el-input-group__append, -.el-input-group__prepend { +.el-input-group__append, .el-input-group__prepend { background-color: var(--heo-card-bg) !important; color: var(--heo-fontcolor) !important; border-color: var(--heo-card-border) !important; + border: var(--style-border) !important; + font-weight: bold; } /* 输入框 */ @@ -12689,6 +9943,7 @@ img.tk-avatar-img { background: var(--heo-background) !important; border: 1px solid var(--heo-card-border) !important; color: var(--heo-fontcolor) !important; + padding-left: 8px; } .page .el-input__inner { @@ -12712,7 +9967,7 @@ img.tk-avatar-img { @media screen and (max-width: 768px) { .el-textarea__inner { border-radius: 4px !important; - background: var(--card-bg) !important; + background: var(--heo-card-bg) !important; } } @@ -12746,7 +10001,7 @@ img.tk-avatar-img { /* 所有标签 */ .tk-tag { - transform: translateY(-2px); + margin-left: 4px; } /* 评论博主标签圆角 */ @@ -12803,8 +10058,9 @@ img.tk-avatar-img { display: none !important; } -#twikoo { - z-index: 102; +.tk-meta { + display: flex; + align-items: center; } /* 魔改教程入口 */ @@ -12813,8 +10069,14 @@ img.tk-avatar-img { } /* 点赞和评论 */ +.tk-action .tk-action-link:first-child { + display: none; +} + .tk-action-link { color: var(--heo-lighttext) !important; + cursor: pointer; + -webkit-user-select: none; } .tk-action-icon svg { @@ -12848,10 +10110,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { } /* 发送按钮禁用状态 */ -.tk-comments .el-button--primary.is-disabled, -.tk-comments .el-button--primary.is-disabled:active, -.tk-comments .el-button--primary.is-disabled:focus, -.tk-comments .el-button--primary.is-disabled:hover { +.tk-comments .el-button--primary.is-disabled, .tk-comments .el-button--primary.is-disabled:active, .tk-comments .el-button--primary.is-disabled:focus, .tk-comments .el-button--primary.is-disabled:hover { opacity: 0.4; } @@ -12910,8 +10169,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { background: var(--heo-secondbg); border: var(--style-border); box-shadow: none; - margin: 0; - margin-bottom: 0.5rem; + margin: 0 0 0.5rem; font-size: 0.6rem; color: var(--heo-secondtext); border-radius: 8px; @@ -12923,11 +10181,6 @@ button.el-button.tk-cancel.el-button--default.el-button--small { margin: 0px 2px 0px 2px; } -.OwO .OwO-body .OwO-bar .OwO-packages li { - line-height: 45px !important; - font-size: 28px !important; -} - .OwO .OwO-body { z-index: 102; width: 500px; @@ -12951,8 +10204,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { width: 100%; } -.tk-owo-emotion, -.twikoo .OwO-item img { +.tk-owo-emotion, .twikoo .OwO-item img { pointer-events: none; } @@ -13002,6 +10254,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { border: var(--style-border-always); box-shadow: var(--heo-shadow-border); border-radius: 12px; + -webkit-user-select: none; } .tk-expand:hover { @@ -13012,7 +10265,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { /* 评论时间 */ .tk-time { color: var(--heo-secondtext) !important; - font-size: 0.8rem; + font-size: 0.6rem; margin-left: 0.5rem; } @@ -13023,15 +10276,13 @@ button.el-button.tk-cancel.el-button--default.el-button--small { background: var(--heo-card-bg); transition: 0.3s; border-radius: 12px; - padding: 0rem; - padding-top: 0.5rem; + padding: 0.5rem 0rem 0rem; border: none; border-top: var(--style-border-dashed); } #page .tk-comments-container > .tk-comment { - padding: 1rem; - padding-bottom: 1.5rem; + padding: 1rem 1rem 1.5rem; border: var(--style-border); border-top: var(--style-border); box-shadow: var(--heo-shadow-border); @@ -13057,6 +10308,19 @@ button.el-button.tk-cancel.el-button--default.el-button--small { #post-comment .comment-head { font-size: 0.8em !important; margin-bottom: 0.5rem; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: space-between; +} + +.comment-randomInfo { + margin-left: auto; + font-size: 13px; +} + +.comment-randomInfo:hover a { + color: var(--heo-theme); } /* 隐藏没有评论 */ @@ -13074,9 +10338,8 @@ button.el-button.tk-cancel.el-button--default.el-button--small { background: var(--heo-card-bg); border-top: var(--style-border-dashed); border-radius: 12px; - padding: 0; transition: 0.3s; - padding-top: 1rem; + padding: 1rem 0 0; margin-top: 0; } @@ -13136,6 +10399,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { justify-content: space-between; margin-top: 2rem; flex-wrap: wrap; + -webkit-user-select: none; } .post-reward { @@ -13152,6 +10416,10 @@ button.el-button.tk-cancel.el-button--default.el-button--small { z-index: 1003; } +.tk-meta-input .el-input .el-input-group__prepend { + -webkit-user-select: none; +} + @media screen and (min-width: 768px) { .post-reward:hover > .reward-main { display: flex !important; @@ -13301,14 +10569,6 @@ button.el-button.tk-cancel.el-button--default.el-button--small { border: var(--style-border); } - .share-button:hover { - transform: scale(1.03); - } - - .share-button:active { - transform: scale(0.97); - } - .share-button i { line-height: 38px; } @@ -13390,43 +10650,33 @@ button.el-button.tk-cancel.el-button--default.el-button--small { } /* 代码高亮 */ -/*#article-container figure.highlight {*/ -/* border-radius: 8px 8px 4px 4px;*/ -/*}*/ +#article-container figure.highlight { + border-radius: 8px 8px 4px 4px; +} -/*#article-container figure.highlight,*/ -/*#article-container pre {*/ -/* color: #f8f8f2;*/ -/* background: #696969*/ -/*}*/ +#article-container figure.highlight .gutter pre { + color: var(--heo-secondtext); + background: var(--heo-secondbg); + border-right: var(--style-border-always); + padding-right: 0.5rem; + padding-left: 0.5rem; + text-align: right; +} -/*#article-container figure.highlight .highlight-tools {*/ -/* background: #3f3f3f;*/ -/* color: var(--heo-fontcolor);*/ -/*}*/ +#article-container figure.highlight figcaption a { + color: #a9a9a9 !important +} -/*#article-container figure.highlight .gutter pre {*/ -/* color: #d3d3d3 !important;*/ -/* background: grey;*/ -/* border-right: var(--style-border-always);*/ -/*}*/ +#article-container .highlight:not(.js-file-line-container) { + background-color: var(--heo-card-bg) !important; + color: var(--heo-fontcolor); + border: var(--style-border-always); +} -/*#article-container figure.highlight figcaption a {*/ -/* color: #a9a9a9 !important*/ -/*}*/ - -/*#article-container pre,*/ -/*#article-container .highlight:not(.js-file-line-container) {*/ -/* background-color: var(--heo-card-bg) !important;*/ -/* color: var(--heo-fontcolor);*/ -/* box-shadow: var(--heo-shadow-border);*/ -/* border: var(--style-border-always);*/ -/*}*/ - -/*#article-container figure.highlight pre span::selection {*/ -/* background: var(--heo-main) !important;*/ -/* color: var(--heo-white) !important;*/ -/*}*/ +#article-container figure.highlight pre span::selection { + background: var(--heo-main) !important; + color: var(--heo-white) !important; +} /* 表情窗口owo */ .OwO .OwO-body { @@ -13436,6 +10686,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { background-color: var(--heo-maskbg) !important; backdrop-filter: saturate(180%) blur(10px); -webkit-backdrop-filter: blur(10px); + transform: translateZ(0); } .OwO .OwO-body .OwO-bar { @@ -13454,8 +10705,6 @@ button.el-button.tk-cancel.el-button--default.el-button--small { .OwO .OwO-body .OwO-bar .OwO-packages li { margin-right: 0px !important; - width: 50px; - height: 48px; transition: 0.3s; } @@ -13474,7 +10723,6 @@ button.el-button.tk-cancel.el-button--default.el-button--small { .OwO .OwO-body .OwO-items-show { margin: 12px 8px !important; - min-height: 197px; } /* 文章列表页 */ @@ -13535,16 +10783,19 @@ button.el-button.tk-cancel.el-button--default.el-button--small { } #page .tag-cloud-list a { + display: flex; + width: fit-content; color: var(--heo-fontcolor) !important; font-size: 1.4em !important; padding: 0.2em .5em; - background: var(--heo-secondbg); + background: var(--heo-card-bg); margin: .5em .5em; border-radius: 12px; -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d; border: var(--style-border-always); box-shadow: var(--heo-shadow-border); + align-items: center; } #page .tag-cloud-list a:hover { @@ -13555,7 +10806,7 @@ button.el-button.tk-cancel.el-button--default.el-button--small { } span.tagsPageCount { - background: var(--heo-card-bg); + background: var(--heo-secondbg); padding: 4px 4px; border-radius: 8px; color: var(--heo-secondtext); @@ -13564,15 +10815,19 @@ span.tagsPageCount { min-width: 35px; display: inline-block; font-size: 1rem; + margin-left: 4px; +} + +.category-lists span.tagsPageCount { + margin-left: 4px; } #page .tag-cloud-list a:hover span.tagsPageCount { color: var(--heo-lighttext); } -#tag-page-tags .tagsPageCount, -#post .tag_share .post-meta__tags span.tagsPageCount { - padding: 2px 4px; +#tag-page-tags .tagsPageCount, #post .tag_share .post-meta__tags span.tagsPageCount { + padding: 2px; background: var(--heo-secondbg); border: var(--style-border-always); min-width: 22.5px; @@ -13584,8 +10839,7 @@ span.tagsPageCount { margin-left: 4px; } -#tag #tag-page-tags a:hover .tagsPageCount, -#post .tag_share .post-meta__tags:hover span.tagsPageCount { +#tag #tag-page-tags a:hover .tagsPageCount, #post .tag_share .post-meta__tags:hover span.tagsPageCount { background: var(--heo-card-bg); color: var(--heo-lighttext); } @@ -13597,6 +10851,22 @@ span.tagsPageCount { span.tags-punctuation { opacity: 0.4; + font-family: 'FontAwesome'; + font-size: 12px; + margin-right: 2px; +} + +.recent-post-item span.tags-punctuation { + margin-right: 1px; + font-size: 12px; +} + +.category-lists span.tags-punctuation { + font-size: 18px; +} + +.tags-name { + margin-left: 2px; } /* page标题 */ @@ -13622,9 +10892,7 @@ span.tags-punctuation { } #page .category-lists ul li { - margin: 0; - margin-right: 8px; - margin-bottom: 8px; + margin: 0 8px 8px 0; } #page .category-lists ul { @@ -13638,7 +10906,7 @@ span.tags-punctuation { padding: 4px 16px; width: 200px; border-radius: 12px; - background: var(--card-bg); + background: var(--heo-card-bg); border: var(--style-border-always); } @@ -13665,8 +10933,7 @@ figure.gallery-group:hover .gallery-group-name::after { display: flex; flex-direction: row; flex-wrap: wrap; - margin: 0 -0.75rem; - margin-bottom: 0.5rem; + margin: 0 -0.75rem 0.5rem; } #tag #tag-page-tags a { @@ -13718,6 +10985,16 @@ figure.gallery-group:hover .gallery-group-name::after { margin-left: 0; padding-bottom: 0; padding-left: 0; + font-weight: bold; + font-size: 2em; +} + +.article-sort-title sup { + margin-left: 4px; + font-size: 16px; + font-weight: bold; + opacity: 0.4; + top: -1em; } .article-sort-item { @@ -13742,11 +11019,6 @@ figure.gallery-group:hover .gallery-group-name::after { transform: scale(1); } -.article-sort-title { - font-weight: bold; - font-size: 2em; -} - /* 文章列表 */ .article-sort-item-info { padding: 0 0.8rem; @@ -13775,7 +11047,7 @@ figure.gallery-group:hover .gallery-group-name::after { /* 随机文章 */ #random-post { min-height: 32px; - background: var(--card-bg); + background: var(--heo-card-bg); border: var(--style-border-always); box-shadow: var(--heo-shadow-border); padding: 20px 30px; @@ -13841,7 +11113,9 @@ figure.gallery-group:hover .gallery-group-name::after { /* 友链标题 */ .flink-list-item .flink-item-info { max-width: 136px; - overflow: hidden; + display: flex; + flex-direction: column; + justify-content: center; } .flink-list-item:hover .flink-item-info { @@ -13861,6 +11135,8 @@ figure.gallery-group:hover .gallery-group-name::after { .flink#article-container .flink-list > .flink-list-item a { display: flex; border: none; + width: 100%; + height: 100%; } .flink#article-container .flink-list > .flink-list-item a:hover { @@ -13895,7 +11171,7 @@ figure.gallery-group:hover .gallery-group-name::after { /* 友链描述 */ .flink#article-container .flink-list > .flink-list-item:hover a .flink-item-desc { - overflow: inherit; + overflow: hidden; width: 100%; } @@ -13910,6 +11186,7 @@ figure.gallery-group:hover .gallery-group-name::after { border: var(--style-border); box-shadow: var(--heo-shadow-border); background: var(--heo-card-bg); + display: flex; } @@ -13920,16 +11197,6 @@ figure.gallery-group:hover .gallery-group-name::after { box-shadow: var(--heo-shadow-main); } -@media screen and (min-width: 1300px) { - .flink#article-container .flink-list > .flink-list-item:hover { - transform: scale(1.03); - } - - .flink#article-container .flink-list > .flink-list-item:active { - transform: scale(0.97); - } -} - .gallery-group figcaption p { line-height: 1.5 !important; } @@ -13996,23 +11263,13 @@ figure.gallery-group:hover .gallery-group-name::after { box-shadow: var(--heo-shadow-border); } -@media screen and (min-width: 1300px) { - .flink#article-container .site-card:hover { - transform: scale(1.03); - } - - .flink#article-container .site-card:active { - transition: 0.95; - } -} - .site-card-tag { position: absolute; top: 0; left: 0; padding: 4px 8px; - background-color: var(--heo-main); - box-shadow: var(--heo-shadow-main); + background-color: var(--heo-blue); + box-shadow: var(--heo-shadow-blue); color: var(--heo-white); z-index: 1; border-radius: 12px 0 12px 0; @@ -14075,7 +11332,7 @@ figure.gallery-group:hover .gallery-group-name::after { .flink-list-item:hover .site-card-tag { - left: -50px; + left: -70px; } .flink#article-container .site-card .info { @@ -14090,7 +11347,7 @@ figure.gallery-group:hover .gallery-group-name::after { /* 修复图片圆角 */ .flink#article-container .site-card .img img { - border-radius: 12px 12px 0 0; + border-radius: 0; transform: scale(1.03); transition: 0.3s; } @@ -14109,7 +11366,7 @@ figure.gallery-group:hover .gallery-group-name::after { .flink#article-container .site-card .img { -webkit-mask-image: -webkit-radial-gradient(center, rgb(255, 255, 255), rgb(0, 0, 0)); - border-radius: 12px 12px 0 0; + border-radius: 0; height: 120px; width: 100%; display: flex; @@ -14173,7 +11430,7 @@ figure.gallery-group:hover .gallery-group-name::after { } } -.footer-banner-right { +.footer-section-right { display: flex; flex-direction: row; flex-wrap: wrap; @@ -14214,7 +11471,6 @@ figure.gallery-group:hover .gallery-group-name::after { #footer-wrap #letlogo { display: flex; flex-direction: column; - margin-right: 60px; align-self: center; margin: auto 0; max-width: 200px; @@ -14249,13 +11505,33 @@ figure.gallery-group:hover .gallery-group-name::after { z-index: -1; } -/* 404页面 */ -#error-wrap { - top: 40%; +/* 微信公众号 */ + +/*微信二维码*/ +/* a.weixin { + position: relative; } -#error-wrap .error-content .error-info .error_title { - margin-top: -3rem !important; +.weixin::after { + content: url(https://p.zhheo.com/e9586c8eeb7c5cd4ff4cc21deedab43fc379cc07.png!cover); + position: absolute; + right: -40px; + top: -230px; + z-index: 99; + border: 0px solid #0095ba; + overflow: hidden; + -webkit-transform-origin: bottom; + transform-origin: bottom; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: all .3s ease-in-out; + transition: all .3s ease-in-out; +} */ + +.weixin:hover::after { + transform: scale(1); + opacity: 1; } #error-wrap .error-content { @@ -14264,22 +11540,36 @@ figure.gallery-group:hover .gallery-group-name::after { background: var(--heo-card-bg) !important; } +#body-wrap.error { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 1rem; + width: 100vw; + height: 100vh; +} + #body-wrap.error .aside-list { display: flex; flex-direction: row; flex-wrap: nowrap; - bottom: 0px; - position: absolute; - padding: 1rem; - width: 100%; + margin: 1rem; + max-width: 100%; overflow: scroll; } +@media screen and (max-height: 750px) { + #body-wrap.error .aside-list { + display: none; + } +} + #body-wrap.error .aside-list .aside-list-group { display: flex; flex-direction: row; flex-wrap: nowrap; - max-width: 1200px; + max-width: 800px; margin: 0 auto; } @@ -14287,6 +11577,10 @@ figure.gallery-group:hover .gallery-group-name::after { padding: 0.5rem; } +#body-wrap.error .aside-list .aside-list-item:first-child { + padding-left: 0rem; +} + #body-wrap.error .aside-list .aside-list-item img { width: 100%; object-fit: cover; @@ -14311,6 +11605,8 @@ figure.gallery-group:hover .gallery-group-name::after { align-items: flex-end; align-content: center; padding-top: 0.5rem; + font-size: 14px; + font-weight: bold; } #body-wrap.error .aside-list .aside-list-item .content time { @@ -14334,8 +11630,7 @@ figure.gallery-group:hover .gallery-group-name::after { width: 32%; border: var(--style-border-always); border-radius: 12px; - padding: 1rem; - padding-bottom: 0.5rem; + padding: 1rem 1rem 0.5rem; transition: 0.3s; display: flex; flex-direction: column; @@ -14479,6 +11774,7 @@ figure.gallery-group:hover .gallery-group-name::after { display: flex; justify-content: space-between; width: 100%; + -webkit-user-select: none; } #bber .count { @@ -14581,20 +11877,19 @@ figure.gallery-group:hover .gallery-group-name::after { #bber .bber-content-img img { object-fit: cover; - max-height: 100%; - border-radius: 12px; + max-height: 100px; + border-radius: 8px; } #bber .bber-content-img { - height: 100px; - margin: auto; margin-top: 0.2rem; margin-bottom: 0.3rem; margin-left: 0; - border-radius: 12px; overflow: hidden; display: flex; + flex-wrap: wrap; position: relative; + gap: 10px; } /* 时间 */ @@ -14663,6 +11958,10 @@ figure.gallery-group:hover .gallery-group-name::after { /* 友链朋友圈 */ +#cf-container a { + width: fit-content; +} + #hexo-circle-of-friends-root { margin: 0 -8px; } @@ -14741,23 +12040,6 @@ a.bb-link-info:hover { margin: 0 !important; } -.tab-item-content #moments_container .moments-item a { - border-bottom: none; - padding: 0; - margin-right: auto; - width: auto; -} - -.tab-item-content #moments_container .moments-item a:hover { - background: none; - color: var(--heo-lighttext); - box-shadow: none; -} - -.tab-item-content #moments_container h2 { - display: none; -} - /* 朋友圈页面 */ #friend_moments_list .moments-sort-item { @@ -14885,133 +12167,6 @@ a.bb-link-info:hover { box-shadow: none !important; } -/* 豆瓣 */ -.hexo-douban-item { - border-bottom: none !important; - background: var(--heo-card-bg); - border: var(--style-border); - box-shadow: var(--heo-shadow-border); - border-radius: 12px; - margin: 8px 0; - height: 160px; - min-height: 160px !important; - width: 49%; - overflow: hidden; -} - -@media screen and (min-width: 1300px) { - .hexo-douban-item { - width: 32%; - } -} - -#hexo-douban-item3 { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: space-between; -} - -.hexo-douban-item .hexo-douban-picture a { - padding: 0 !important; -} - -.hexo-douban-item .hexo-douban-picture img { - margin: 0px !important; - height: 100% !important; -} - -.hexo-douban-tabs { - display: none; -} - -.hexo-douban-title a { - border-bottom: 0px !important; -} - -.hexo-douban-title { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.hexo-douban-title a:hover { - color: var(--heo-lighttext) !important; - background: var(--heo-none) !important; -} - -.hexo-douban-pagination { - margin: auto; - width: 100%; - display: flex; - justify-content: center; - align-items: center; -} - -span.hexo-douban-pagenum { - margin: 0 0.5rem; -} - -.hexo-douban-title { - font-size: 1rem; - line-height: 1; -} - -.hexo-douban-title a { - padding: 0 !important; -} - -.hexo-douban-info { - padding-left: 130px !important; - margin-right: 0.5rem; -} - -.hexo-douban-meta { - font-size: 0.7rem !important; - color: var(--heo-secondtext); - margin-top: 0.3rem; - line-height: 1.05; -} - -.hexo-douban-comments { - line-height: 1.2; - margin-top: 0.5rem; - font-size: 0.8rem !important; - -webkit-line-clamp: 3; - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; -} - -.hexo-douban-picture { - height: 100%; - top: 0 !important; - padding: 10px 0 10px 10px; -} - -.hexo-douban-picture a img { - border-radius: 8px !important; -} - -.hexo-douban-button { - width: 4rem; - height: 2rem; - line-height: 1.9rem; - border-radius: 8px !important; - background: var(--heo-card-bg); - box-shadow: var(--heo-shadow-lightblack); - border: var(--style-border); - margin: 0 0.2rem; - border-bottom: var(--style-border) !important; -} - -/* 标签页 */ -/* 隐藏时间 */ -.article-sort-item-time { - display: none; -} - /* 标签 */ .article-sort-item-tags { margin-top: 8px; @@ -15033,6 +12188,11 @@ span.hexo-douban-pagenum { transition: 0.3s; } +.article-sort-item-tags a .tags-punctuation { + font-size: 12px; + margin-right: 1px; +} + /* v3footer */ #heo-footer .footer-links { display: flex; @@ -15044,20 +12204,18 @@ span.hexo-douban-pagenum { flex-direction: row; width: 100%; max-width: 1200px; - margin: 1rem auto; - justify-content: space-between; + justify-content: space-evenly; flex-wrap: wrap; - margin-bottom: 3rem; + margin: 1rem auto 3rem; padding: 0 1rem; } #heo-footer .footer-item { font-size: 0.8rem; line-height: 0.8rem; - margin: 0.38rem 0; color: var(--heo-fontcolor); - margin-right: auto; - overflow: hidden; + margin: 0.38rem auto 0.38rem 0; + overflow: visible; white-space: nowrap; text-overflow: ellipsis; max-width: 120px; @@ -15106,7 +12264,7 @@ span.hexo-douban-pagenum { font-size: 0.8rem; } -#footer-banner { +#footer-section { padding: 1rem; color: var(--heo-fontcolor); margin-top: 1rem; @@ -15117,11 +12275,7 @@ span.hexo-douban-pagenum { transition: 0.3s; } -[data-theme=dark] #footer-banner { - background: var(--heo-secondbg); -} - -#footer-banner .footer-banner-links { +#footer-section .footer-section-links { display: flex; justify-content: space-between; max-width: 1400px; @@ -15131,13 +12285,13 @@ span.hexo-douban-pagenum { align-items: center; } -#footer-banner .footer-banner-left { +#footer-section .footer-section-left { display: flex; flex-wrap: wrap; min-height: 32px; } -#footer-banner .footer-banner-link { +#footer-section .footer-section-link { margin-right: 1rem; color: var(--heo-fontcolor); font-size: 0.8rem; @@ -15145,23 +12299,23 @@ span.hexo-douban-pagenum { white-space: nowrap; } -#footer-banner .footer-banner-link.cc { +#footer-section .footer-section-link.cc { margin-right: 0rem; } -#footer-banner .footer-banner-link.cc i { +#footer-section .footer-section-link.cc i { margin-right: 0.5rem; } -#footer-banner .footer-banner-link:hover { +#footer-section .footer-section-link:hover { color: var(--heo-theme); } -#footer-banner > div > div.footer-banner-left > span { +#footer-section > div > div.footer-section-left > span { margin-right: 1rem; } -#footer-banner .footer-banner-right a:hover { +#footer-section .footer-section-right a:hover { color: var(--heo-lighttext); } @@ -15186,12 +12340,86 @@ span.hexo-douban-pagenum { align-items: center; } +@keyframes floating { + 0% { + transform: translate(0, -4px); + } + 50% { + transform: translate(0, 4px); + } + 100% { + transform: translate(0, -4px); + } +} + +#about-page .author-info { + display: flex; + align-items: center; + margin: 0 0 16px 0; +} + +#about-page .author-tag-left { + display: flex; + flex-direction: column; + align-items: flex-end; +} + +#about-page .author-tag-right { + display: flex; + flex-direction: column; + align-items: flex-start; +} + +@media screen and (max-width: 768px) { + #about-page .author-tag-left, #about-page .author-tag-right { + display: none; + } +} + +#about-page .author-tag-left .author-tag:first-child, #about-page .author-tag-left .author-tag:last-child { + margin-right: -16px; +} + +#about-page .author-tag-right .author-tag:first-child, #about-page .author-tag-right .author-tag:last-child { + margin-left: -16px; +} + +#about-page .author-tag { + transform: translate(0, -4px); + padding: 1px 8px; + background: var(--heo-card-bg); + border: var(--style-border-always); + border-radius: 40px; + margin-top: 6px; + font-size: 14px; + font-weight: bold; + box-shadow: var(--heo-shadow-lightblack); + animation: 6s ease-in-out 0s infinite normal none running floating; +} + +#about-page .author-tag:nth-child(1) { + animation-delay: 0s; +} + +#about-page .author-tag:nth-child(2) { + animation-delay: 0.6s; +} + +#about-page .author-tag:nth-child(3) { + animation-delay: 1.2s; +} + +#about-page .author-tag:nth-child(4) { + animation-delay: 1.8s; +} + #about-page .author-img { - margin: auto; + margin: 0 30px; border-radius: 50%; width: 180px; height: 180px; position: relative; + background: var(--heo-secondbg); } #about-page .author-img img { @@ -15229,7 +12457,6 @@ span.hexo-douban-pagenum { } - #about-page .author-title { font-size: 2rem; font-weight: bold; @@ -15284,6 +12511,7 @@ span.hexo-douban-pagenum { .author-content-item.single { width: 100%; + overflow: visible; } .author-content-item .author-content-item-title { @@ -15360,27 +12588,29 @@ span.hexo-douban-pagenum { /* 关于页面地图 */ .author-content-item.map { - background: url(https://img.zhheo.com/i/2022/08/31/630ef8e827401.webp) no-repeat center; + background-repeat: no-repeat; + background-position: center; min-height: 160px; max-height: 400px; position: relative; overflow: hidden; margin-bottom: 0.5rem; height: 60%; - background-size: 100%; + background-size: 100% !important; transition: 1s ease-in-out; } [data-theme=dark] .author-content-item.map { - background: url(https://img.zhheo.com/i/2022/08/31/630ef8db0fefe.webp) no-repeat center; background-size: 100%; + background-repeat: no-repeat; + background-position: center; } .author-content-item.map:hover { - background-size: 120%; - transition: 4s ease-in-out; - background-position-x: 0; - background-position-y: 36%; + background-size: 120% !important; + transition: 4s ease-in-out !important; + background-position-x: 0 !important; + background-position-y: 36% !important; } .author-content-item.map .map-title { @@ -15394,6 +12624,7 @@ span.hexo-douban-pagenum { -webkit-backdrop-filter: blur(20px); transition: 1s ease-in-out; font-size: 20px; + transform: translateZ(0); } .author-content-item.map:hover .map-title { @@ -15487,6 +12718,7 @@ span.hexo-douban-pagenum { padding: 0.5rem 2rem; backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); } /* 关于页面我的生涯图片 */ @@ -15780,7 +13012,8 @@ span.hexo-douban-pagenum { #about-page .about-statistic { min-height: 380px; width: 39%; - background: url(https://img.zhheo.com/i/2022/09/23/632d5d8f37e90.webp) no-repeat top; + background-repeat: no-repeat; + background-position: top; background-size: cover; color: var(--heo-white); overflow: hidden; @@ -15796,6 +13029,14 @@ span.hexo-douban-pagenum { left: 0; } +#about-page .about-statistic .banner-button { + background: var(--heo-white-op); +} + +#about-page .about-statistic .banner-button:hover { + background: var(--heo-theme); +} + #statistic { font-size: 16px; border-radius: 15px; @@ -15844,10 +13085,7 @@ span.hexo-douban-pagenum { display: flex; flex-wrap: wrap; flex-direction: row; - margin-top: 1rem; - margin-bottom: 0.5rem; - margin-left: -0.25rem; - margin-right: -0.25rem; + margin: 1rem -0.25rem 0.5rem; } .author-content-item.single.reward .reward-list-all .reward-list-item { @@ -15857,6 +13095,8 @@ span.hexo-douban-pagenum { width: calc((100% / 6) - 0.5rem); margin: 0rem 0.25rem 0.5rem 0.25rem; box-shadow: var(--heo-shadow-border); + flex-direction: column; + justify-content: space-between; } @media screen and (max-width: 1200px) { @@ -15898,7 +13138,7 @@ span.hexo-douban-pagenum { .author-content-item.single.reward .reward-list-all .reward-list-item .reward-list-item-money { padding: 4px; background: var(--heo-fontcolor); - color: var(--card-bg); + color: var(--heo-card-bg); font-size: 12px; line-height: 1; border-radius: 4px; @@ -15968,14 +13208,27 @@ span.hexo-douban-pagenum { display: none; } -/* 喜欢的游戏 lol */ -.author-content-item.game-lol { - background: url(https://img.zhheo.com/i/2022/08/31/630efa7ae39fe.webp) no-repeat top; - background-size: cover; - min-height: 300px; - overflow: hidden; +.author-content-item.left-side { color: var(--heo-white); width: 59%; + min-height: 300px; + background-color: var(--heo-shadow-red); +} + +.author-content-item.right-side { + color: var(--heo-white); + width: 39%; + min-height: 300px; + background-color: var(--heo-shadow-red); +} + +.author-content-item > img { + object-fit: cover; + position: absolute; + top: 0; + left: 0; + z-index: 1; + object-position: no-repeat top; } .author-content-item .card-content { @@ -15996,16 +13249,6 @@ span.hexo-douban-pagenum { } } -.author-content-item.game-lol::after { - box-shadow: 0 -69px 203px 11px #04120f inset; - position: absolute; - content: ''; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - .author-content-item .content-bottom { margin-top: auto; display: flex; @@ -16025,25 +13268,24 @@ span.hexo-douban-pagenum { } .icon-pos-sup { - background: url('https://img.zhheo.com/i/2022/08/25/63074b68d9f4c.png'); + background: url('https://p.zhheo.com/2023585927467e9bc0720f510850b01985b0081502.png!cover'); } .icon-pos-mid { - background: url('https://img.zhheo.com/i/2022/08/25/63074b54d2731.png'); + background: url('https://p.zhheo.com/20233ca3efe8e906c7361f4cafec0465fbda083602.png!cover'); } -/* 喜欢的游戏 狼人杀 */ -.author-content-item.game-wolf { - width: 39%; - background: url(https://img.zhheo.com/i/2022/08/31/630efa916a851.webp) no-repeat top; + +/* 关注领域 */ +.author-content-item.like-technology { + background-repeat: no-repeat; background-size: cover; - min-height: 300px; - overflow: hidden; + min-height: 230px; color: var(--heo-white); } -.author-content-item.game-wolf::after { - box-shadow: 0 -69px 203px 11px #415dc9 inset; +.author-content-item.like-technology::after { + box-shadow: 0 -69px 203px 11px #050b20 inset; position: absolute; content: ''; width: 100%; @@ -16052,17 +13294,10 @@ span.hexo-douban-pagenum { left: 0; } -/* 关注领域 */ -.author-content-item.like-technology { - background: url(https://img.zhheo.com/i/2022/08/31/630efac3ecef3.webp) no-repeat; - background-size: cover; - min-height: 230px; - color: var(--heo-white); -} - /* 喜欢音乐 */ .author-content-item.like-music { - background: url(https://img.zhheo.com/i/2022/08/31/630efae141e9a.webp) no-repeat top; + background-repeat: no-repeat; + background-position: top; background-size: cover; min-height: 400px; color: var(--heo-white); @@ -16070,7 +13305,7 @@ span.hexo-douban-pagenum { } .author-content-item.like-music::after { - box-shadow: 0 -69px 203px 11px #736896 inset; + box-shadow: 0 -69px 203px 11px #0e0e0e inset; position: absolute; content: ''; width: 100%; @@ -16079,159 +13314,21 @@ span.hexo-douban-pagenum { left: 0; } -.author-content-item .card-content .author-content-item-title { - margin-bottom: 0.5rem; -} - -.author-content-item .card-content .banner-button-group { - position: absolute; - bottom: 1.5rem; - right: 2rem; -} - -.author-content-item .card-content .banner-button-group .banner-button { - height: 40px; - width: 124px; - border-radius: 20px; - justify-content: center; - background: var(--heo-black-op); - color: var(--heo-white); - display: flex; - align-items: center; - z-index: 1; - transition: .3s; - cursor: pointer; - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); -} - -.author-content-item .card-content .banner-button-group .banner-button:hover { - background: var(--heo-main); - color: var(--heo-white); -} - -.author-content-item .card-content .banner-button-group .banner-button i { - margin-right: 8px; - font-size: 1rem; -} - -@media screen and (max-width: 768px) { - .author-content-item .card-content .banner-button-group { - right: 1rem; - bottom: 1rem; - } - - .author-content-item .card-content .banner-button-group .banner-button { - background: none; - color: var(--heo-white); - padding: 0; - width: fit-content; - } - - .author-content-item .card-content .banner-button-group .banner-button i { - margin-right: 0; - font-size: 1.5rem; - } - - .author-content-item .card-content .banner-button-group .banner-button-text { - display: none; - } -} - -/* 豆瓣电影页面 */ -.author-content-item.single.like-movie { - height: 19rem; - background: url(https://img.zhheo.com/i/2022/09/27/633289920d1c7.webp) no-repeat top; - background-size: cover; - color: var(--heo-white); - overflow: hidden; -} - -.author-content-item.single.like-movie::after { - box-shadow: 0 21px 133px 81px #1c1c1c inset; - position: absolute; - content: ''; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -#article-container .author-content-item.single.like-movie .banner-button-group .banner-button { - padding: 8px 12px; - background: var(--heo-white); - border-radius: 12px; - color: var(--heo-black); - display: flex; - align-items: center; - z-index: 1; - transition: 0.3s; - cursor: pointer; - border: none; -} - -#article-container .author-content-item.single.like-movie .banner-button-group .banner-button:hover { - background: #d0b247; - color: var(--heo-white); -} - -#article-container .author-content-item.single.like-movie .banner-button-group .banner-button i { - margin-right: 8px; - font-size: 1rem; -} - -@media screen and (max-width: 768px) { - #article-container .author-content-item.single.like-movie .banner-button-group { - right: 1rem; - bottom: 1rem; - } - - #article-container .author-content-item.single.like-movie .banner-button-group .banner-button { - background: none; - color: var(--heo-white); - padding: 0; - } - - #article-container .author-content-item.single.like-movie .banner-button-group .banner-button i { - margin-right: 0; - font-size: 1.5rem; - } - - #article-container .author-content-item.single.like-movie .banner-button-group .banner-button-text { - display: none; - } -} - -/* 工具推荐 */ -.author-content.author-content-item.toolPage { - height: 19rem; - background: url(https://img.zhheo.com/i/2022/08/26/6308d5778ba3c.jpg) no-repeat top; - background-size: cover; - color: var(--heo-white); - overflow: hidden; - margin-top: 0; -} - -/* 友链鱼塘 */ -.author-content.author-content-item.momentsPage { - height: 19rem; - background: url(https://img.zhheo.com/i/2022/08/26/6308d5b137881.jpg) no-repeat top; - background-size: cover; - color: var(--heo-white); - overflow: hidden; - margin-top: 0; -} - /* 即刻短文 */ .author-content.author-content-item.essayPage { height: 19rem; - background: url(https://img.zhheo.com/i/2022/08/27/6309587509a02.jpg) no-repeat center; - background-size: cover; color: var(--heo-white); overflow: hidden; margin-top: 0; } +/* 移动端即刻短文 */ +@media screen and (max-width: 768px) { + .author-content.author-content-item.essayPage { + height: 9rem; + } +} + /* 中控台 */ #console { display: flex; @@ -16247,6 +13344,7 @@ span.hexo-douban-pagenum { flex-direction: column; align-items: center; pointer-events: none; + -webkit-user-select: none; } #console.show { @@ -16263,6 +13361,7 @@ span.hexo-douban-pagenum { transform: translateY(20px); transition: 0.3s; opacity: 0; + max-width: 1400px; } #console.show .console-card-group { @@ -16300,42 +13399,22 @@ span.hexo-douban-pagenum { width: 100%; margin: 0; } - - #consoleMusic { - display: none; - } - - #consoleCommentBarrage { - display: none; - } } @media screen and (max-width: 768px) { #console .console-card-group { display: none; } - - #consoleHideAside { - display: none; - } } @media screen and (max-height: 800px) { #console .console-card-group { display: none; } - - #consoleMusic { - display: none; - } - - #consoleCommentBarrage { - display: none; - } } #console .console-card { - background: var(--card-bg); + background: var(--heo-maskbg); border-radius: 12px; overflow: hidden; border: var(--style-border); @@ -16350,22 +13429,24 @@ span.hexo-douban-pagenum { #console .console-mask { background: var(--heo-maskbgdeep); - backdrop-filter: saturate(100%) blur(0px); - -webkit-backdrop-filter: blur(0px); + backdrop-filter: saturate(180%) blur(20px); + -webkit-backdrop-filter: blur(20px); width: 100vw; height: 100vh; top: 0; left: 0; position: absolute; z-index: -1; - transition: 0.3s; -webkit-backface-visibility: hidden; -webkit-transform-style: preserve-3d; + transform: translateZ(0); } #console.show .console-mask { backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: blur(20px); + transform: translateZ(0); + animation: 0.6s ease 0s 1 normal none running to_show; } #card-newest-comments .aside-list-item .thumbnail img { @@ -16376,7 +13457,7 @@ span.hexo-douban-pagenum { } #card-newest-comments .aside-list-item { - background: var(--heo-secondbg); + background: var(--heo-card-bg); border-radius: 12px; border: var(--style-border); padding: 12px 16px; @@ -16384,6 +13465,13 @@ span.hexo-douban-pagenum { display: flex; flex-direction: column; height: 150px; + transition: 0.3s; + position: relative; +} + +#card-newest-comments .aside-list-item:hover { + background: var(--heo-theme); + color: var(--heo-white); } #card-newest-comments .aside-list-item:not(:last-child) { @@ -16394,6 +13482,7 @@ span.hexo-douban-pagenum { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; + font-weight: bold; } #console .author-content-item-tips { @@ -16414,6 +13503,10 @@ span.hexo-douban-pagenum { width: fit-content; } +#console .aside-list-item:hover .thumbnail { + color: var(--heo-white); +} + #console .aside-list-item .content { display: flex; flex-direction: column; @@ -16427,7 +13520,20 @@ span.hexo-douban-pagenum { overflow: hidden; -webkit-box-orient: vertical; line-height: 24px; - width: fit-content; + font-size: 14px; +} + +#console .aside-list-item .content .comment::before { + content: ''; + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} + +#console .aside-list-item:hover .content .comment { + color: var(--heo-white); } #console .aside-list-item .content time { @@ -16436,6 +13542,10 @@ span.hexo-douban-pagenum { margin-top: auto; } +#console .aside-list-item:hover .content time { + color: var(--heo-white); +} + #console .aside-list { display: flex; flex-wrap: wrap; @@ -16469,7 +13579,7 @@ span.hexo-douban-pagenum { #console .button-group .console-btn-item a { width: 100%; height: 100%; - background: var(--card-bg); + background: var(--heo-card-bg); border: var(--style-border); border-radius: 60px; display: flex; @@ -16484,7 +13594,7 @@ span.hexo-douban-pagenum { transition: 0.3s; } -#console .button-group .console-btn-item a:hover { +#console .button-group .console-btn-item:not(.on) a:hover { background: var(--heo-main) !important; } @@ -16492,32 +13602,6 @@ span.hexo-douban-pagenum { color: var(--heo-white); } -.console-card.tags .card-tag-cloud { - margin-top: 1.5rem; - display: flex; - flex-wrap: wrap; -} - -.console-card.tags .card-tag-cloud a { - color: var(--heo-fontcolor) !important; - margin: 6px 4px; - padding: 2px 8px; - border-radius: 8px; - background: var(--heo-secondbg); - border: var(--style-border); - font-size: 14px !important; - font-weight: bold; -} - -.console-card.tags .card-tag-cloud a:hover { - background: var(--heo-main); - color: var(--heo-white) !important; -} - -.console-card.tags .card-tag-cloud a sup { - opacity: 0.6; -} - #console .close-btn { width: 35px; height: 35px; @@ -16542,6 +13626,7 @@ span.hexo-douban-pagenum { box-shadow: none; border: none; overflow: hidden; + border-radius: 0; } #console .console-card.history .item-headline { @@ -16553,6 +13638,7 @@ span.hexo-douban-pagenum { flex-direction: row; justify-content: space-between; flex-wrap: wrap; + height: 164px; } #console .console-card.history .card-archive-list li.card-archive-list-item { @@ -16561,12 +13647,12 @@ span.hexo-douban-pagenum { #console .console-card.history .card-archive-list .card-archive-list-link { border-radius: 8px; - margin: 4px 0; + margin-top: 8px; display: flex; flex-direction: column; align-content: space-between; border: var(--style-border); - background: var(--card-bg); + background: var(--heo-maskbgdeep); padding: 8px 16px; } @@ -16583,70 +13669,113 @@ span.hexo-douban-pagenum { font-size: 1rem; } -/* 快捷键窗口 */ -#keyboard-tips { - position: fixed; - top: 80px; - left: 20px; - z-index: 999; - background: var(--heo-maskbgdeep); - border-radius: 12px; - border: var(--style-border); - padding: 20px; - display: flex; - flex-direction: column; - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); - pointer-events: none; - box-shadow: var(--heo-shadow-border); - opacity: 0; - transition: 0.3s; +@media screen and (min-width: 768px) { + /* 隐藏弹窗 */ + .needEndHide.hide { + bottom: -200px !important; + opacity: 0; + } } -#keyboard-tips.show { - opacity: 1; - transition: 0.1s; -} - -#keyboard-tips .keybordList { - display: flex; - flex-direction: column; - margin-top: 8px; -} - -#keyboard-tips .keyboardTitle { +#fps { + z-index: 10000; font-size: 12px; - color: var(--heo-secondtext); + font-weight: bold; + transition: 0.3s; line-height: 1; } -#keyboard-tips .keybordItem { - display: flex; - margin-top: 4px; -} - -#keyboard-tips .keyGroup { - display: flex; - align-items: center; - width: 90px; -} - -#keyboard-tips .keyGroup .key { - padding: .2em .4em; - font-family: inherit; - background-color: var(--card-bg); +.nav-fixed #fps-group, .not-top-img #fps-group { color: var(--heo-fontcolor); - border: var(--style-border); - border-color: var(--heo-secondtext); - border-bottom: 2px solid var(--heo-secondtext); - box-shadow: var(--heo-shadow-border); - border-radius: .25rem; - overflow-wrap: break-word; - overflow-x: auto; - font-weight: 500; - font-size: .875em; - margin-right: 4px; - vertical-align: baseline; - line-height: 1; - height: 24px; +} + +#fps-group { + opacity: 0; + display: flex; + flex-direction: column; + margin-left: 16px; + color: var(--heo-white); +} + +#fps-group.show { + opacity: 1; +} + +#fps-group .fpsText { + font-size: 12px; + line-height: 1; + opacity: 0.6; +} + +.pagination input { + width: 40px; + height: 40px; + border-radius: 8px; + border: var(--style-border-always); + transition: 0.3s; + outline-style: none; + font-size: 16px; + padding-left: 12px; +} + +.pagination .toPageGroup:hover input, .pagination .toPageGroup input:focus { + border: var(--style-border-hover-always); + outline-style: none; + width: 100px; +} + +.toPageGroup { + display: flex; + position: relative; + margin: 0 0.3rem; +} + +a#toPageButton { + display: flex; + position: absolute; + width: 40px; + height: 40px; + right: 0px; + top: 0px; + border-radius: 8px; + justify-content: center; + align-items: center; + transition: 0.3s; + background: var(--heo-card-bg); + border: var(--style-border-always); + cursor: text; + pointer-events: none; +} + +.toPageGroup:hover a#toPageButton, .toPageGroup:focus-within a#toPageButton { + width: 30px; + height: 30px; + right: 4px; + top: 5px; + background: var(--heo-secondbg); + border: 1px solid var(--heo-none); + border-radius: 4px; + opacity: 0.2; +} + +.toPageGroup:focus-within a#toPageButton.haveValue { + opacity: 1; + cursor: pointer; +} + +a#toPageButton.haveValue { + opacity: 1 !important; + cursor: pointer !important; + pointer-events: all; +} + +a#toPageButton.haveValue:hover { + background: var(--heo-theme); + color: var(--heo-white); +} + +@media screen and (max-width: 768px) { + .toPageGroup { + display: none; + } } diff --git a/templates/assets/css/var.css b/templates/assets/css/var.css new file mode 100644 index 00000000..40ff41b6 --- /dev/null +++ b/templates/assets/css/var.css @@ -0,0 +1,182 @@ +@charset "UTF-8"; + +:root { + --heo-white: #fff; + --heo-white-op: rgba(255, 255, 255, 0.2); + --heo-black: #000; + --heo-black-op: rgba(0, 0, 0, 0.2); + --heo-none: #00000000; + --heo-gray: #999999; + --heo-gray-op: #9999992b; + --heo-vip: #e5a80d; + --heo-main: var(--heo-theme); + --heo-main-op: var(--heo-theme-op); + --heo-main-op-deep: var(--heo-theme-op-deep); + --heo-main-none: var(--heo-theme-none); + --heo-shadow-theme: 0 8px 12px -3px var(--heo-theme-op); + --heo-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, .15); + --heo-shadow-main: 0 8px 12px -3px var(--heo-main-op); + --heo-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, .20); + --heo-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, .20); + --heo-shadow-black: 0 0 12px 4px rgba(0, 0, 0, .05); + --heo-shadow-yellow: 0px 38px 77px -26px rgba(255, 201, 62, .12); + --heo-shadow-red: 0 8px 12px -3px #ee7d7936; + --heo-shadow-green: 0 8px 12px -3px #87ee7936; + --heo-logo-color: linear-gradient(215deg, #4584ff 0%, #cf0db9 100%); + --heo-snackbar-time: 5s; + --hl-color: #eff; + --hl-bg: #212121; + --hltools-bg: #1c1c1c; + --hltools-color: rgba(238, 255, 255, 0.8); + --hlnumber-bg: #212121; + --hlnumber-color: rgba(238, 255, 255, 0.5); + --hlscrollbar-bg: #121212; + --hlexpand-bg: linear-gradient(180deg, rgba(33, 33, 33, 0.6), rgba(33, 33, 33, 0.9)); + /* 相册变量定义 */ + --album-background-dark: #2d3548; + --album-text-light: rgba(255, 255, 255, 0.6); + --album-text-lighter: rgba(255, 255, 255, 0.9); + --album-spacing-s: 8px; + --album-spacing-m: 16px; + --album-spacing-l: 24px; + --album-spacing-xl: 32px; + --album-spacing-xxl: 64px; +} + +::selection { + background: var(--heo-fontcolor); + color: var(--heo-background); +} + +[data-theme=light] { + --heo-theme: #425AEF; + --heo-theme-op: #4259ef23; + --heo-theme-op-deep: #4259efdd; + --heo-theme-none: #4259ef01; + --heo-blue: #425AEF; + --heo-red: #f04a63; + --heo-pink: #FF7C7C; + --heo-green: #57bd6a; + --heo-yellow: #c28b00; + --heo-yellow-op: #d99c001a; + --heo-orange: #e38100; + --heo-fontcolor: #363636; + --heo-background: #f7f9fe; + --heo-reverse: #000; + --heo-maskbg: rgba(255, 255, 255, 0.6); + --heo-maskbgdeep: rgba(255, 255, 255, 0.85); + --heo-hovertext: var(--heo-main); + --heo-ahoverbg: #F7F7FA; + --heo-lighttext: var(--heo-main); + --heo-secondtext: rgba(60, 60, 67, 0.6); + --heo-scrollbar: rgba(60, 60, 67, 0.4); + --heo-card-btn-bg: #edf0f7; + --heo-post-blockquote-bg: #fafcff; + --heo-post-tabs-bg: #f2f5f8; + --heo-secondbg: #f1f3f8; + --heo-shadow-nav: 0 5px 12px -5px rgba(102, 68, 68, 0.05); + --heo-card-bg: #fff; + --heo-card-bg-op: var(--heo-black-op); + --heo-card-bg-none: rgba(255, 255, 255, 0); + --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0.00); + --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0.00); + --heo-card-border: #e3e8f7; + --heo-shadow-border: 0 8px 16px -4px #2c2d300c; + --style-border: 1px solid var(--heo-card-border); + --style-border-always: 1px solid var(--heo-card-border); + --style-border-hover: 1px solid var(--heo-main); + --style-border-hover-always: 1px solid var(--heo-main); + --style-border-dashed: 1px dashed var(--heo-theme-op); + --style-border-forever: 2px solid var(--heo-main); +} + +[data-theme=dark] { + --heo-theme: #f2b94b; + --heo-theme-op: #f2b94b23; + --heo-theme-op-deep: #f2b94bdd; + --heo-theme-none: #f2b94b00; + --heo-blue: #0084FF; + --heo-red: #FF3842; + --heo-pink: #d44040; + --heo-green: #3e9f50; + --heo-yellow: #ffc93e; + --heo-yellow-op: #ffc93e30; + --heo-orange: #ff953e; + --heo-fontcolor: #F7F7FA; + --heo-background: #18171d; + --heo-reverse: #fff; + --heo-maskbg: rgba(0, 0, 0, 0.6); + --heo-maskbgdeep: rgba(0, 0, 0, 0.85); + --heo-hovertext: #0A84FF; + --heo-ahoverbg: #fff; + --heo-lighttext: var(--heo-theme); + --heo-secondtext: #a1a2b8; + --heo-scrollbar: rgba(200, 200, 223, 0.4); + --heo-card-btn-bg: #30343f; + --heo-post-blockquote-bg: #000; + --heo-post-tabs-bg: #121212; + --heo-secondbg: #30343f; + --heo-shadow-nav: 0 5px 20px 0px rgba(28, 28, 28, 0.4); + --heo-card-bg: #1d1e22; + --heo-card-bg-op: var(--heo-white-op); + --heo-card-bg-none: #1d1b2600; + --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0.0); + --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0.0); + --heo-card-border: #3d3d3f; + --heo-shadow-border: 0 8px 16px -4px #00000050; + --style-border: 1px solid var(--heo-card-border); + --style-border-always: 1px solid var(--heo-card-border); + --style-border-hover: 1px solid var(--heo-theme); + --style-border-hover-always: 1px solid var(--heo-theme); + --style-border-dashed: 1px dashed var(--heo-theme-op); + --style-border-forever: 2px solid var(--heo-lighttext); +} + +[data-theme="dark"] #footer::before, [data-theme="dark"] #page-header::before, [data-theme="dark"] #web_bg::before { + position: absolute; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); + content: ""; +} + +[data-theme="dark"] #article-container pre > code { + background: rgb(23, 23, 23); +} + +[data-theme="dark"] #article-container figure.highlight { + box-shadow: none; +} + +[data-theme="dark"] #article-container .note code { + background: rgba(27, 31, 35, 0.05); +} + +[data-theme="dark"] #article-container .aplayer { + filter: brightness(0.8); +} + +[data-theme="dark"] #article-container kbd { + border-color: rgb(105, 105, 105); + background-color: rgb(82, 82, 82); + color: rgb(226, 241, 255); +} + +[data-theme="dark"] .note { + filter: brightness(0.9); +} + +[data-theme="dark"] img { + filter: brightness(0.8); +} + +[data-theme="dark"] #aside-content .aside-list > .aside-list-item:not(:last-child) { + border-bottom: 1px dashed rgba(255, 255, 255, 0.1); +} + +@media screen and (max-width: 768px) { + :root { + --style-border: 0px solid var(--heo-card-border); + --style-border-hover: 0px solid var(--heo-main); + } +} \ No newline at end of file diff --git a/templates/assets/images/home.png b/templates/assets/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..752af6cc843641e5f905b3104642c8eb2bf39b8a GIT binary patch literal 4586 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 T++l-jSB;J{p4Hd{CMN#{m~=cp literal 0 HcmV?d00001 diff --git a/templates/assets/images/home.webp b/templates/assets/images/home.webp deleted file mode 100644 index 863b08dfb4b259fc1d3188b039d5c366cab187f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmV+b0{{I|Nk&Ha0RRA3MM6+kP&il$0000G0000#002J#06|PpNb໹+qP>} zyA5bsK%r~nMNnu8py0SrcpNAptx!r@prkaQw0wXPV`eBdHlgGw{Ykdd;oDp{{bv2| zGxWc=<_zZiAL(qlzvc8nf_Zaph3lAmHd>#rH(Hm^Zh~3C<6n-B=dr|&=fE@N*(@>Z zne^C^qpL)>qhtP=>!zo@9xK|t{n+q)wQkK;P&gpq0000G2LPP`DnI~006tM5ibNx# z3xeVt0)kk;Gn)-Dckma*umjWv*bTq^^F8IDHGZ|wAU#J*5~pG~wx|%ge9TdWWBZ4Y8A0 zPO}qFh6@fjkhW;9!(}$>>H?|ozw0O6=1MP0>Gx7X@ { + const hex = Number(c).toString(16); + return hex.length === 1 ? "0" + hex : hex; + }); + return "#" + hexArr.join(""); + } else if (hexRegex.test(color)) { + const hexDigits = color.replace(/#/, "").split(""); + if (hexDigits.length === 6) { + return color; + } else if (hexDigits.length === 3) { + const hexArr = hexDigits.map(c => c + c); + return "#" + hexArr.join(""); + } + } + return color; +} + + +function colorRgb(str) { + const HEX_SHORT_REGEX = /^#([0-9a-fA-f]{3})$/; + const HEX_LONG_REGEX = /^#([0-9a-fA-f]{6})$/; + const HEX_SHORT_LENGTH = 4; + + const sColor = str.toLowerCase(); + let hexValue = ""; + + if (sColor && (HEX_SHORT_REGEX.test(sColor) || HEX_LONG_REGEX.test(sColor))) { + hexValue = sColor.length === HEX_SHORT_LENGTH ? + sColor.replace(/^#(.)/g, "#$1$1") : + sColor; + + const rgbValue = hexValue.slice(1) + .match(/.{2}/g) + .map(val => parseInt(val, 16)) + .join(","); + + return `rgb(${rgbValue})`; + } else { + return sColor; + } +} + + +function LightenDarkenColor(col, amt) { + let usePound = false; + + if (col[0] === "#") { + col = col.slice(1); + usePound = true; + } + + const num = parseInt(col, 16); + const r = Math.min(255, Math.max(0, (num >> 16) + amt)); + const b = Math.min(255, Math.max(0, ((num >> 8) & 0xff) + amt)); + const g = Math.min(255, Math.max(0, (num & 0xff) + amt)); + + return `${usePound ? "#" : ""}${(g | (b << 8) | (r << 16)).toString(16).padStart(6, "0")}`; +} + + +function getContrastYIQ(hexcolor) { + var colorrgb = colorRgb(hexcolor); + var colors = colorrgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); + var red = colors[1]; + var green = colors[2]; + var blue = colors[3]; + var brightness; + brightness = (red * 299) + (green * 587) + (blue * 114); + brightness = brightness / 255000; + if (brightness >= 0.5) { + return "light"; + } else { + return "dark"; + } +} + +function initThemeColor() { + const currentTop = window.scrollY || document.documentElement.scrollTop; + let themeColor; + if (currentTop > 0) { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-card-bg'); + } else if (PAGECONFIG.is_post) { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-main'); + } else { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-background'); + } + changeThemeColor(themeColor); +} + +function changeThemeColor(color) { + const meta = document.querySelector('meta[name="theme-color"]'); + if (meta) { + meta.setAttribute('content', color); + } +} \ No newline at end of file diff --git a/templates/assets/js/extend/covercolor/web.js b/templates/assets/js/extend/covercolor/web.js new file mode 100644 index 00000000..9beb2f27 --- /dev/null +++ b/templates/assets/js/extend/covercolor/web.js @@ -0,0 +1,135 @@ +function coverColor() { + var path = document.getElementById("post-cover")?.src; + if (path !== undefined) { + var httpRequest = new XMLHttpRequest(); + httpRequest.open('GET', path + '?imageAve', true); + httpRequest.send(); + httpRequest.onreadystatechange = function () { + if (httpRequest.readyState == 4 && httpRequest.status == 200) { + var json = httpRequest.responseText; + var obj = eval('(' + json + ')'); + var value = obj.RGB; + value = "#" + value.slice(2) + if (getContrastYIQ(value) == "light") { + value = LightenDarkenColor(colorHex(value), -50) + } + + document.documentElement.style.setProperty('--heo-main', value); + document.documentElement.style.setProperty('--heo-main-op', value + '23'); + document.documentElement.style.setProperty('--heo-main-op-deep', value + 'dd'); + document.documentElement.style.setProperty('--heo-main-none', value + '00'); + initThemeColor() + document.getElementById("coverdiv").classList.add("loaded"); + } + }; + } else { + document.documentElement.style.setProperty('--heo-main', 'var(--heo-theme)'); + document.documentElement.style.setProperty('--heo-main-op', 'var(--heo-theme-op)'); + document.documentElement.style.setProperty('--heo-main-op-deep', 'var(--heo-theme-op-deep)'); + document.documentElement.style.setProperty('--heo-main-none', 'var(--heo-theme-none)'); + initThemeColor() + } +} + + +function colorHex(colorString) { + const hexRegex = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; + let color = colorString; + + if (/^(rgb|RGB)/.test(color)) { + const colorArr = color.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); + const hexArr = colorArr.map(c => { + const hex = Number(c).toString(16); + return hex.length === 1 ? "0" + hex : hex; + }); + return "#" + hexArr.join(""); + } else if (hexRegex.test(color)) { + const hexDigits = color.replace(/#/, "").split(""); + if (hexDigits.length === 6) { + return color; + } else if (hexDigits.length === 3) { + const hexArr = hexDigits.map(c => c + c); + return "#" + hexArr.join(""); + } + } + return color; +} + + +function colorRgb(str) { + const HEX_SHORT_REGEX = /^#([0-9a-fA-f]{3})$/; + const HEX_LONG_REGEX = /^#([0-9a-fA-f]{6})$/; + const HEX_SHORT_LENGTH = 4; + + const sColor = str.toLowerCase(); + let hexValue = ""; + + if (sColor && (HEX_SHORT_REGEX.test(sColor) || HEX_LONG_REGEX.test(sColor))) { + hexValue = sColor.length === HEX_SHORT_LENGTH ? + sColor.replace(/^#(.)/g, "#$1$1") : + sColor; + + const rgbValue = hexValue.slice(1) + .match(/.{2}/g) + .map(val => parseInt(val, 16)) + .join(","); + + return `rgb(${rgbValue})`; + } else { + return sColor; + } +} + + +function LightenDarkenColor(col, amt) { + let usePound = false; + + if (col[0] === "#") { + col = col.slice(1); + usePound = true; + } + + const num = parseInt(col, 16); + const r = Math.min(255, Math.max(0, (num >> 16) + amt)); + const b = Math.min(255, Math.max(0, ((num >> 8) & 0xff) + amt)); + const g = Math.min(255, Math.max(0, (num & 0xff) + amt)); + + return `${usePound ? "#" : ""}${(g | (b << 8) | (r << 16)).toString(16).padStart(6, "0")}`; +} + + +function getContrastYIQ(hexcolor) { + var colorrgb = colorRgb(hexcolor); + var colors = colorrgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); + var red = colors[1]; + var green = colors[2]; + var blue = colors[3]; + var brightness; + brightness = (red * 299) + (green * 587) + (blue * 114); + brightness = brightness / 255000; + if (brightness >= 0.5) { + return "light"; + } else { + return "dark"; + } +} + +function initThemeColor() { + const currentTop = window.scrollY || document.documentElement.scrollTop; + let themeColor; + if (currentTop > 0) { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-card-bg'); + } else if (PAGECONFIG.is_post) { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-main'); + } else { + themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-background'); + } + changeThemeColor(themeColor); +} + +function changeThemeColor(color) { + const meta = document.querySelector('meta[name="theme-color"]'); + if (meta) { + meta.setAttribute('content', color); + } +} diff --git a/templates/assets/js/extend/search/algolia-search.js b/templates/assets/js/extend/search/algolia-search.js new file mode 100644 index 00000000..035a2151 --- /dev/null +++ b/templates/assets/js/extend/search/algolia-search.js @@ -0,0 +1,140 @@ +const $searchMask = document.getElementById('search-mask'), + $searchDialog = document.querySelector('#algolia-search .search-dialog') + +class search { + static openSearch() { + utils.fadeIn($searchMask, '0.5') + utils.fadeIn($searchDialog, '0.5') + document.addEventListener('keydown', function f(event) { + if (event.code === 'Escape') { + closeSearch() + document.removeEventListener('keydown', f) + } + }) + } + + static closeSearch() { + utils.fadeOut($searchDialog, '0.5') + utils.fadeOut($searchMask, '0.5') + } + + static cutContent(content) { + if (content === '') return '' + + const firstOccur = content.indexOf('') + + let start = firstOccur - 30 + let end = firstOccur + 120 + let pre = '' + let post = '' + + if (start <= 0) { + start = 0 + end = 140 + } else { + pre = '...' + } + + if (end > content.length) { + end = content.length + } else { + post = '...' + } + + const matchContent = pre + content.substring(start, end) + post + return matchContent + } + + static search() { + const algolia = GLOBALCONFIG.algolia, that = this + const isAlgoliaValid = algolia.appId && algolia.apiKey && algolia.indexName + if (!isAlgoliaValid) { + return console.error('Algolia setting is invalid!') + } + + const init = instantsearch({ + indexName: algolia.indexName, + searchClient: algoliasearch(algolia.appId, algolia.apiKey), + searchFunction(helper) { + helper.state.query && helper.search() + } + }) + + const searchBox = instantsearch.widgets.searchBox({ + container: '#search-input', + showReset: false, + showSubmit: false, + autofocus: true, + placeholder: GLOBALCONFIG.lang.search.placeholder, + showLoadingIndicator: false + }) + + const hits = instantsearch.widgets.hits({ + container: '#algolia-hits', + templates: { + item(data) { + const link = '/' + data.path + const result = data._highlightResult + const content = result.contentStripTruncate + ? that.cutContent(result.contentStripTruncate.value) + : result.contentStrip + ? that.cutContent(result.contentStrip.value) + : result.content + ? that.cutContent(result.content.value) + : '' + return ` + + ${result.title.value} + +

${content}

` + }, + empty: function (data) { + return ( + `
${GLOBALCONFIG.lang.search.empty}
` + ) + } + } + }) + + const stats = instantsearch.widgets.stats({ + container: '.algolia-stats', + templates: { + text: function (data) { + const stats = GLOBALCONFIG.lang.search.hit.replace('${query}', `${data.nbHits}`) + return ( + stats + ) + } + } + }) + + const powerBy = instantsearch.widgets.poweredBy({ + container: '.algolia-poweredBy' + }) + + init.addWidgets([searchBox, hits, stats, powerBy]) // add the widgets to the instantsearch instance + init.start() + init.on('render', () => { + pjax.refresh(document.getElementById('algolia-hits')) + }) + } +} + +const searchClickFn = () => { + document.querySelector('#search-button > .search').addEventListener('click', search.openSearch) +} + +const searchClickFnOnce = () => { + document.querySelector('#algolia-search .search-close-button').addEventListener('click', search.closeSearch) + $searchMask.addEventListener('click', search.closeSearch) +} + +window.addEventListener('load', () => { + searchClickFn() + searchClickFnOnce() + search.search() +}) + +window.addEventListener('pjax:complete', () => { + searchClickFn() +}) \ No newline at end of file diff --git a/templates/assets/js/extend/search/local-search.js b/templates/assets/js/extend/search/local-search.js new file mode 100644 index 00000000..3b095a33 --- /dev/null +++ b/templates/assets/js/extend/search/local-search.js @@ -0,0 +1,162 @@ +const $searchMask = document.getElementById('search-mask'), + $searchDialog = document.querySelector('#local-search .search-dialog'), + $input = document.querySelector('#search-input'), + $resultContent = document.getElementById('search-results'), + $loadingStatus = document.getElementById('loading-status') +let dataObj = null + +class search { + static openSearch() { + utils.fadeIn($searchMask, '0.5') + utils.fadeIn($searchDialog, '0.5') + setTimeout(() => { + document.querySelector('#search-input').focus() + }, 100) + search.search() + document.addEventListener('keydown', function f(event) { + if (event.code === 'Escape') { + closeSearch() + document.removeEventListener('keydown', f) + } + }) + } + + static closeSearch() { + utils.fadeOut($searchDialog, '0.5') + utils.fadeOut($searchMask, '0.5') + } + + static async fetchData(path) { + let data = [] + const response = await fetch(path) + const res = await new window.DOMParser().parseFromString(await response.text(), 'text/xml') + data = [...res.querySelectorAll('entry')].map(item => { + return { + title: item.querySelector('title').textContent, + content: item.querySelector('content') && item.querySelector('content').textContent, + url: item.querySelector('url').textContent + } + }) + if (response.ok) { + const $loadDataItem = document.getElementById('loading-database') + $loadDataItem.nextElementSibling.style.display = 'block' + $loadDataItem.remove() + } + return data + } + + static search() { + if (!GLOBALCONFIG.localsearch.preload && dataObj === null) dataObj = this.fetchData(GLOBALCONFIG.localsearch.path) + $input.addEventListener('input', function type() { + const keywords = this.value.trim().toLowerCase().split(/[\s]+/) + if (keywords[0] !== '') $loadingStatus.innerHTML = '加载中' + else { + $resultContent.innerHTML = '' + return + } + + if (keywords.length <= 0) return + let count = 0, str = '
' + // perform local searching + dataObj.then(data => { + data.forEach(data => { + let isMatch = true + let dataTitle = data.title ? data.title.trim().toLowerCase() : '' + const dataContent = data.content ? data.content.trim().replace(/<[^>]+>/g, '').toLowerCase() : '' + const dataUrl = data.url.startsWith('/') ? data.url : GLOBALCONFIG.root + data.url + let indexTitle = -1 + let indexContent = -1 + let firstOccur = -1 + // only match articles with not empty titles and contents + if (dataTitle !== '' || dataContent !== '') { + keywords.forEach((keyword, i) => { + indexTitle = dataTitle.indexOf(keyword) + indexContent = dataContent.indexOf(keyword) + if (indexTitle < 0 && indexContent < 0) { + isMatch = false + } else { + if (indexContent < 0) { + indexContent = 0 + } + if (i === 0) { + firstOccur = indexContent + } + } + }) + } else { + isMatch = false + } + + // show search results + if (isMatch) { + if (firstOccur >= 0) { + // cut out 130 characters + let start = firstOccur - 30 + let end = firstOccur + 100 + let pre = '' + let post = '' + + if (start < 0) { + start = 0 + } + + if (start === 0) { + end = 100 + } else { + pre = '...' + } + + if (end > dataContent.length) { + end = dataContent.length + } else { + post = '...' + } + + let matchContent = dataContent.substring(start, end) + // highlight all keywords + keywords.forEach(keyword => { + const regex = new RegExp(`(?!<[^>]*?)(${keyword})(?![^<]*?>)`, 'gi') + matchContent = matchContent.replaceAll(regex, '$1') + dataTitle = dataTitle.replaceAll(regex, '$1') + }) + + str += '' + } + }) + if (count === 0) { + str += `
${GLOBALCONFIG.lang.search.empty}
` + } else { + str += `
${GLOBALCONFIG.lang.search.hit.replace('${query}', '' + count + '')}
` + } + str += '
' + $resultContent.innerHTML = str + if (keywords[0] !== '') $loadingStatus.innerHTML = '' + }) + }) + } +} + +const searchClickFn = () => { + document.querySelector('#search-button > .search').addEventListener('click', search.openSearch) +} + +const searchClickFnOnce = () => { + document.querySelector('#local-search .search-close-button').addEventListener('click', search.closeSearch) + $searchMask.addEventListener('click', search.closeSearch) + if (GLOBALCONFIG.localsearch.preload) dataObj = search.fetchData(GLOBALCONFIG.localsearch.path) +} + +window.addEventListener('load', () => { + searchClickFn() + searchClickFnOnce() +}) + +window.addEventListener('pjax:complete', () => { + searchClickFn() +}) \ No newline at end of file diff --git a/templates/assets/js/halo.js b/templates/assets/js/halo.js deleted file mode 100644 index 69f98c99..00000000 --- a/templates/assets/js/halo.js +++ /dev/null @@ -1,12 +0,0 @@ -let halo = { - darkComment : ()=>{ - if(document.querySelector('#comment div').shadowRoot.querySelector('.halo-comment-widget').classList != null){ - let commentDOMclass = document.querySelector('#comment div').shadowRoot.querySelector('.halo-comment-widget').classList - if(commentDOMclass.contains('light')) - commentDOMclass.replace('light','dark') - else - commentDOMclass.replace('dark','light') - } - - } -} \ No newline at end of file diff --git a/templates/assets/js/heo.js b/templates/assets/js/heo.js deleted file mode 100644 index 8785a184..00000000 --- a/templates/assets/js/heo.js +++ /dev/null @@ -1,460 +0,0 @@ -let heo_cookiesTime = null; -let heo_musicPlaying = false; -let heo_keyboard = false; -let heo_intype = false; -// 私有函数 -var heo = { - // 检测显示模式 - darkModeStatus: function () { - let theme = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' - if (theme == 'light') { - $(".menu-darkmode-text").text("深色模式"); - } else { - $(".menu-darkmode-text").text("浅色模式"); - } - }, - - // //bb添加时间 - // changeTimeInEssay: function () { - // const relativeDate = function (selector) { - // selector.forEach(item => { - // const $this = item - // const timeVal = $this.getAttribute('datetime') - // $this.innerText = btf.diffDate(timeVal, true) - // $this.style.display = 'inline' - // }) - // } - // - // if (document.querySelector('#comment')) { - // relativeDate(document.querySelectorAll('#comment time')) - // } - // }, - - // 首页bb - initIndexEssay: function () { - if (document.querySelector('#bber-talk')) { - var swiper = new Swiper('.swiper-container', { - direction: 'vertical', // 垂直切换选项 - loop: true, - autoplay: { - delay: 3000, - pauseOnMouseEnter: true - }, - }); - } - }, - - - // 只在首页显示 - onlyHome: function () { - var urlinfo = window.location.pathname; - urlinfo = decodeURIComponent(urlinfo); - if (urlinfo == '/') { - $('.only-home').attr('style', 'display: flex'); - } else { - $('.only-home').attr('style', 'display: none'); - } - }, - - //是否在首页 - is_Post: function () { - var url = window.location.href; //获取url - if (url.indexOf("/p/") >= 0) { //判断url地址中是否包含code字符串 - return true; - } else { - return false; - } - }, - - - //监测是否在页面开头 - addNavBackgroundInit: function () { - var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; - if (document.body) { - bodyScrollTop = document.body.scrollTop; - } - if (document.documentElement) { - documentScrollTop = document.documentElement.scrollTop; - } - scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop; - // console.log("滚动高度"+ scrollTop) - - if (scrollTop != 0) { - document.getElementById("page-header").classList.add("nav-fixed"); - document.getElementById("page-header").classList.add("nav-visible"); - $('#introduction-window').hide() - console.log("已添加class") - } - }, - - // 标签页面 - //分类条 - // tagPageActive: function () { - // var urlinfo = window.location.pathname; - // urlinfo = decodeURIComponent(urlinfo) - // // console.log(urlinfo); - // // 验证是否是分类链接 - // var pattern = /\/tags\/.*?\//; - // var patbool = pattern.test(urlinfo); - // // console.log(patbool); - // // 获取当前的分类 - // if (patbool) { - // var valuegroup = urlinfo.split("/"); - // // console.log(valuegroup[2]); - // // 获取当前分类 - // var nowCategorie = valuegroup[2]; - // if (document.querySelector('#tag-page-tags')) { - // $('a').removeClass('select') - // document.getElementById(nowCategorie).classList.add("select"); - // } - // } - // }, - - //分类条 - // categoriesBarActive: function () { - // if (document.querySelector('#category-bar')) { - // $(".category-bar-item").removeClass("select") - // } - // var urlinfo = window.location.pathname; - // urlinfo = decodeURIComponent(urlinfo); - // // console.log(urlinfo); - // //判断是否是首页 - // if (urlinfo == '/') { - // if (document.querySelector('#category-bar')) { - // document.getElementById('category-bar-home').classList.add("select"); - // } - // } else { - // // 验证是否是分类链接 - // var pattern = /\/categories\/.*?\//; - // var patbool = pattern.test(urlinfo); - // // console.log(patbool); - // // 获取当前的分类 - // if (patbool) { - // var valuegroup = urlinfo.split("/"); - // // console.log(valuegroup[2]); - // // 获取当前分类 - // var nowCategorie = valuegroup[2]; - // if (document.querySelector('#category-bar')) { - // document.getElementById(nowCategorie).classList.add("select"); - // } - // } - // } - // }, - - // 页脚友链 - addFriendLinksInFooter: function () { - var fetchUrl = "https://moments.zhheo.com/randomfriend?num=3" - fetch(fetchUrl) - .then(res => res.json()) - .then(json => { - var randomFriendLinks = getArrayItems(json, 3); - - var htmlText = ''; - for (let i = 0; i < randomFriendLinks.length; ++i) { - var item = randomFriendLinks[i] - htmlText += `${item.name}`; - } - htmlText += `更多` - document.getElementById("friend-links-in-footer").innerHTML = htmlText; - }) - }, - - //禁止图片右键单击 - stopImgRightDrag: function () { - var img = $("img"); - img.on("dragstart", function () { - return false; - }); - }, - - //置顶文章横向滚动 - topPostScroll: function () { - if (document.getElementById("recent-post-top")) { - let xscroll = document.getElementById("recent-post-top"); - xscroll.addEventListener("mousewheel", function (e) { - //计算鼠标滚轮滚动的距离 - let v = -e.wheelDelta / 2; - xscroll.scrollLeft += v; - //阻止浏览器默认方法 - if (document.body.clientWidth < 1300) { - e.preventDefault(); - } - }, false); - } - }, - - topCategoriesBarScroll: function () { - if (document.getElementById("category-bar-items")) { - let xscroll = document.getElementById("category-bar-items"); - xscroll.addEventListener("mousewheel", function (e) { - //计算鼠标滚轮滚动的距离 - let v = -e.wheelDelta / 2; - xscroll.scrollLeft += v; - //阻止浏览器默认方法 - e.preventDefault(); - }, false); - } - }, - - //作者卡片问好 - sayhi: function () { - if (document.querySelector('#author-info__sayhi')) { - document.getElementById("author-info__sayhi").innerHTML = getTimeState() + "!我是"; - } - }, - - // 添加标签 - addTag: function () { - //添加new标签 - if (document.querySelector('.heo-tag-new')) { - $(".heo-tag-new").append(`N`) - } - //添加hot标签 - if (document.querySelector('.heo-tag-hot')) { - $(".heo-tag-hot").append(`H`) - } - }, - - // 二维码 - qrcodeCreate: function () { - if (document.getElementById('qrcode')) { - document.getElementById("qrcode").innerHTML = ""; - var qrcode = new QRCode(document.getElementById("qrcode"), { - text: window.location.href, - width: 250, - height: 250, - colorDark: "#000", - colorLight: "#ffffff", - correctLevel: QRCode.CorrectLevel.H - }); - } - }, - - // 刷新即刻短文瀑布流 - reflashEssayWaterFall: function () { - if (document.querySelector('#waterfall')) { - setTimeout(function () { - waterfall('#waterfall'); - document.getElementById("waterfall").classList.add('show'); - }, 500); - } - }, - - // 即刻短文添加灯箱 - addMediumInEssay: function () { - if (document.querySelector('#waterfall')) { - mediumZoom(document.querySelectorAll('[data-zoomable]')) - } - }, - - // 下载图片 - downloadImage: function (imgsrc, name) { //下载图片地址和图片名 - rm.hideRightMenu(); - if (rm.downloadimging == false) { - rm.downloadimging = true; - btf.snackbarShow('正在下载中,请稍后', false, 10000) - setTimeout(function () { - let image = new Image(); - // 解决跨域 Canvas 污染问题 - image.setAttribute("crossOrigin", "anonymous"); - image.onload = function () { - let canvas = document.createElement("canvas"); - canvas.width = image.width; - canvas.height = image.height; - let context = canvas.getContext("2d"); - context.drawImage(image, 0, 0, image.width, image.height); - let url = canvas.toDataURL("image/png"); //得到图片的base64编码数据 - let a = document.createElement("a"); // 生成一个a元素 - let event = new MouseEvent("click"); // 创建一个单击事件 - a.download = name || "photo"; // 设置图片名称 - a.href = url; // 将生成的URL设置为a.href属性 - a.dispatchEvent(event); // 触发a的单击事件 - }; - image.src = imgsrc; - btf.snackbarShow('图片已添加盲水印,请遵守版权协议'); - rm.downloadimging = false; - }, "10000"); - } else { - btf.snackbarShow('有正在进行中的下载,请稍后再试'); - } - }, - - //控制评论弹幕 - switchCommentBarrage: function () { - let commentBarrage = document.querySelector('.comment-barrage'); - if (commentBarrage) { - if ($(".comment-barrage").is(":visible")) { - $(".comment-barrage").hide(); - $(".menu-commentBarrage-text").text("显示热评"); - document.querySelector("#consoleCommentBarrage").classList.remove("on"); - localStorage.setItem('commentBarrageSwitch', 'false'); - } else if ($(".comment-barrage").is(":hidden")) { - $(".comment-barrage").show(); - $(".menu-commentBarrage-text").text("关闭热评"); - document.querySelector("#consoleCommentBarrage").classList.add("on"); - localStorage.removeItem('commentBarrageSwitch'); - } - } - rm.hideRightMenu(); - }, - - //隐藏cookie窗口 - hidecookie: function () { - heo_cookiesTime = setTimeout(() => { - document.getElementById("introduction-window").classList.add('cw-hide'); - setTimeout(() => { - $('#introduction-window').hide() - }, 1000) - }, 3000) - }, - - //隐藏今日推荐 - hideTodayCard: function () { - if (document.getElementById("todayCard")) { - document.getElementById("todayCard").classList.add('hide'); - } - }, - - //更改主题色 - changeThemeColor: function (color) { - if (document.querySelector('meta[name="theme-color"]') !== null) { - document.querySelector('meta[name="theme-color"]').setAttribute('content', color) - } - }, - - //自适应主题色 - initThemeColor: function () { - if (heo.is_Post()) { - const currentTop = window.scrollY || document.documentElement.scrollTop - if (currentTop === 0) { - let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-main'); - heo.changeThemeColor(themeColor); - } else { - let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-background'); - heo.changeThemeColor(themeColor); - } - } else { - let themeColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-background'); - heo.changeThemeColor(themeColor); - } - }, - - //跳转到指定位置 - jumpTo: function (dom) { - $(document).ready(function () { - $("html,body").animate({ - scrollTop: $(dom).eq(i).offset().top - }, 500 /*scroll实现定位滚动*/); /*让整个页面可以滚动*/ - }); - }, - - //显示加载动画 - showLoading: function () { - document.querySelector("#loading-box").classList.remove("loaded"); - let cardColor = getComputedStyle(document.documentElement).getPropertyValue('--heo-card-bg'); - heo.changeThemeColor(cardColor); - }, - - //隐藏加载动画 - hideLoading: function () { - document.querySelector("#loading-box").classList.add("loaded"); - }, - - //切换音乐播放状态 - musicToggle: function () { - let msgPlay = '播放音乐' // 此處可以更改為你想要顯示的文字 - let msgPause = '暂停音乐' // 同上,但兩處均不建議更改 - if (heo_musicPlaying) { - document.querySelector("#nav-music").classList.remove("playing"); - document.getElementById("menu-music-toggle").innerHTML = msgPlay; - document.getElementById("nav-music-hoverTips").innerHTML = "音乐已暂停"; - document.querySelector("#consoleMusic").classList.remove("on"); - heo_musicPlaying = false; - } else { - document.querySelector("#nav-music").classList.add("playing"); - document.getElementById("menu-music-toggle").innerHTML = msgPause; - document.querySelector("#consoleMusic").classList.add("on"); - heo_musicPlaying = true; - } - document.querySelector('meting-js').aplayer.toggle(); - rm.hideRightMenu(); - }, - - //音乐上一曲 - musicSkipBack: function () { - document.querySelector('meting-js').aplayer.skipBack(); - rm.hideRightMenu(); - }, - - //音乐下一曲 - musicSkipForward: function () { - document.querySelector('meting-js').aplayer.skipForward(); - rm.hideRightMenu(); - }, - - //获取音乐中的名称 - musicGetName: function () { - var x = $('.aplayer-title') - // var x = document.getElementsByClassName('txt'); - // for (var i = x.length - 1; i >= 0; i--) { - // console.log(x[i].innerText) - // } - var arr = [] - for (var i = x.length - 1; i >= 0; i--) { - arr[i] = x[i].innerText - // console.log(x[i].innerText) - } - return arr[0] - }, - - //显示中控台 - showConsole: function () { - document.querySelector("#console").classList.add("show"); - heo.initConsoleState(); - }, - - //隐藏中控台 - hideConsole: function () { - document.querySelector("#console").classList.remove("show"); - }, - - //快捷键功能开关 - keyboardToggle: function () { - if (heo_keyboard) { - heo_keyboard = false; - document.querySelector("#consoleKeyboard").classList.remove("on"); - localStorage.setItem('keyboardToggle', 'false'); - } else { - heo_keyboard = true; - document.querySelector("#consoleKeyboard").classList.add("on"); - localStorage.setItem('keyboardToggle', 'true'); - } - }, - - //滚动到指定id - scrollTo: function (id) { - var domTop = document.querySelector(id).offsetTop; - window.scrollTo(0, domTop - 80); - }, - - //隐藏侧边栏 - hideAsideBtn: () => { // Hide aside - const $htmlDom = document.documentElement.classList - $htmlDom.contains('hide-aside') - ? saveToLocal.set('aside-status', 'show', 2) - : saveToLocal.set('aside-status', 'hide', 2) - $htmlDom.toggle('hide-aside') - $htmlDom.contains('hide-aside') - ? document.querySelector("#consoleHideAside").classList.add("on") - : document.querySelector("#consoleHideAside").classList.remove("on") - }, - - //初始化console图标 - initConsoleState: function () { - //初始化隐藏边栏 - const $htmlDom = document.documentElement.classList - $htmlDom.contains('hide-aside') - ? document.querySelector("#consoleHideAside").classList.add("on") - : document.querySelector("#consoleHideAside").classList.remove("on") - } -} \ No newline at end of file diff --git a/templates/assets/js/main.js b/templates/assets/js/main.js index e5a40fb5..6f567202 100644 --- a/templates/assets/js/main.js +++ b/templates/assets/js/main.js @@ -1,895 +1,463 @@ -document.addEventListener('DOMContentLoaded', function () { - const $blogName = document.getElementById('site-name') - let blogNameWidth = $blogName && $blogName.offsetWidth - const $menusEle = document.querySelector('#menus .menus_items') - let menusWidth = $menusEle && $menusEle.offsetWidth - const $searchEle = document.querySelector('#search-button') - let searchWidth = $searchEle && $searchEle.offsetWidth +function setFixed(el) { + if (!el) return + const currentTop = window.scrollY || document.documentElement.scrollTop + if (currentTop > 0) { + el.classList.add('nav-fixed') + } else { + el.classList.remove('nav-fixed') + } +} - const adjustMenu = (change = false) => { - if (change) { - blogNameWidth = $blogName && $blogName.offsetWidth - menusWidth = $menusEle && $menusEle.offsetWidth - searchWidth = $searchEle && $searchEle.offsetWidth - } - const $nav = document.getElementById('nav') - let t - if (window.innerWidth < 768) t = true - else t = blogNameWidth + menusWidth + searchWidth > $nav.offsetWidth - 120 - - if (t) { - $nav.classList.add('hide-menu') +const scrollFn = function () { + const innerHeight = window.innerHeight + 0 + const $header = document.getElementById('page-header') + setFixed($header) + if (document.body.scrollHeight <= innerHeight) { + return + } + let initTop = 0 + window.addEventListener('scroll', utils.throttle(function (e) { + const currentTop = window.scrollY || document.documentElement.scrollTop + const isDown = scrollDirection(currentTop) + if (currentTop > 0) { + if (isDown) { + if ($header.classList.contains('nav-visible')) $header.classList.remove( + 'nav-visible') + } else { + if (!$header.classList.contains('nav-visible')) $header.classList.add( + 'nav-visible') + } + $header.classList.add('nav-fixed') } else { - $nav.classList.remove('hide-menu') - } - } - - // 初始化header - const initAdjust = () => { - adjustMenu() - document.getElementById('nav').classList.add('show') - } - - // sidebar menus - const sidebarFn = () => { - const $toggleMenu = document.getElementById('toggle-menu') - const $mobileSidebarMenus = document.getElementById('sidebar-menus') - const $menuMask = document.getElementById('menu-mask') - const $body = document.body - - function openMobileSidebar() { - btf.sidebarPaddingR() - $body.style.overflow = 'hidden' - btf.fadeIn($menuMask, 0.5) - $mobileSidebarMenus.classList.add('open') - } - - function closeMobileSidebar() { - $body.style.overflow = '' - $body.style.paddingRight = '' - btf.fadeOut($menuMask, 0.5) - $mobileSidebarMenus.classList.remove('open') - } - - $toggleMenu.addEventListener('click', openMobileSidebar) - - $menuMask.addEventListener('click', e => { - if ($mobileSidebarMenus.classList.contains('open')) { - closeMobileSidebar() + if (currentTop === 0) { + $header.classList.remove('nav-fixed', 'nav-visible') } - }) + } + percent() + }, 200)) - window.addEventListener('resize', e => { - if (btf.isHidden($toggleMenu)) { - if ($mobileSidebarMenus.classList.contains('open')) closeMobileSidebar() + function scrollDirection(currentTop) { + const result = currentTop > initTop + initTop = currentTop + return result + } +} + +const sidebarFn = () => { + const $toggleMenu = document.getElementById('toggle-menu') + const $mobileSidebarMenus = document.getElementById('sidebar-menus') + const $menuMask = document.getElementById('menu-mask') + const $body = document.body + + if (!$toggleMenu) return + + function openMobileSidebar() { + utils.sidebarPaddingR() + $body.style.overflow = 'hidden' + utils.fadeIn($menuMask, 0.5) + $mobileSidebarMenus.classList.add('open') + } + + function closeMobileSidebar() { + $body.style.overflow = '' + $body.style.paddingRight = '' + utils.fadeOut($menuMask, 0.5) + $mobileSidebarMenus.classList.remove('open') + } + + $toggleMenu.addEventListener('click', openMobileSidebar) + + $menuMask.addEventListener('click', e => { + if ($mobileSidebarMenus.classList.contains('open')) { + closeMobileSidebar() + } + }) + + window.addEventListener('resize', e => { + if ($mobileSidebarMenus.classList.contains('open')) closeMobileSidebar() + }) +} + +const showTodayCard = () => { + const el = document.getElementById('todayCard') + if (el) { + document.getElementsByClassName('topGroup')[0].addEventListener('mouseleave', () => { + if (el.classList.contains('hide')) { + el.classList.remove('hide') } }) } +} - /** - * 首頁top_img底下的箭頭 - */ - const scrollDownInIndex = () => { - const $scrollDownEle = document.getElementById('scroll-down') - $scrollDownEle && $scrollDownEle.addEventListener('click', function () { - btf.scrollToDest(document.getElementById('content-inner').offsetTop, 300) - }) +const setTimeState = () => { + const el = document.getElementById('author-info__sayhi') + if (el) { + const timeNow = new Date(), hours = timeNow.getHours(), lang = GLOBALCONFIG.lang.sayhello; + let text = ''; + if (hours >= 0 && hours <= 5) { + text = lang.goodnight; + } else if (hours > 5 && hours <= 10) { + text = lang.morning; + } else if (hours > 10 && hours <= 14) { + text = lang.noon; + } else if (hours > 14 && hours <= 18) { + text = lang.afternoon; + } else if (hours > 18 && hours <= 24) { + text = lang.night; + } + el.innerText = text + lang.iam; } +}; - /** - * 代碼 - * 只適用於Hexo默認的代碼渲染 - */ - // const addHighlightTool = function () { - // const highLight = GLOBAL_CONFIG.highlight - // if (!highLight) return - // - // const isHighlightCopy = highLight.highlightCopy - // const isHighlightLang = highLight.highlightLang - // const isHighlightShrink = GLOBAL_CONFIG_SITE.isHighlightShrink - // const highlightHeightLimit = highLight.highlightHeightLimit - // const isShowTool = isHighlightCopy || isHighlightLang || isHighlightShrink !== undefined - // const $figureHighlight = highLight.plugin === 'highlighjs' ? document.querySelectorAll('figure.highlight') : document.querySelectorAll('pre[class*="language-"]') - // - // if (!((isShowTool || highlightHeightLimit) && $figureHighlight.length)) return - // - // const isPrismjs = highLight.plugin === 'prismjs' - // - // let highlightShrinkEle = '' - // let highlightCopyEle = '' - // const highlightShrinkClass = isHighlightShrink === true ? 'closed' : '' - // - // if (isHighlightShrink !== undefined) { - // highlightShrinkEle = `` - // } - // - // if (isHighlightCopy) { - // highlightCopyEle = '
' - // } - // - // const copy = (text, ctx) => { - // if (document.queryCommandSupported && document.queryCommandSupported('copy')) { - // document.execCommand('copy') - // if (GLOBAL_CONFIG.Snackbar !== undefined) { - // btf.snackbarShow(GLOBAL_CONFIG.copy.success) - // } else { - // const prevEle = ctx.previousElementSibling - // prevEle.innerText = GLOBAL_CONFIG.copy.success - // prevEle.style.opacity = 1 - // setTimeout(() => { - // prevEle.style.opacity = 0 - // }, 700) - // } - // } else { - // if (GLOBAL_CONFIG.Snackbar !== undefined) { - // btf.snackbarShow(GLOBAL_CONFIG.copy.noSupport) - // } else { - // ctx.previousElementSibling.innerText = GLOBAL_CONFIG.copy.noSupport - // } - // } - // } - // - // // click events - // const highlightCopyFn = (ele) => { - // const $buttonParent = ele.parentNode - // $buttonParent.classList.add('copy-true') - // const selection = window.getSelection() - // const range = document.createRange() - // if (isPrismjs) range.selectNodeContents($buttonParent.querySelectorAll('pre code')[0]) - // else range.selectNodeContents($buttonParent.querySelectorAll('table .code pre')[0]) - // selection.removeAllRanges() - // selection.addRange(range) - // const text = selection.toString() - // copy(text, ele.lastChild) - // selection.removeAllRanges() - // $buttonParent.classList.remove('copy-true') - // } - // - // const highlightShrinkFn = (ele) => { - // const $nextEle = [...ele.parentNode.children].slice(1) - // ele.firstChild.classList.toggle('closed') - // if (btf.isHidden($nextEle[$nextEle.length - 1])) { - // $nextEle.forEach(e => { - // e.style.display = 'block' - // }) - // } else { - // $nextEle.forEach(e => { - // e.style.display = 'none' - // }) - // } - // } - // - // const highlightToolsFn = function (e) { - // const $target = e.target.classList - // if ($target.contains('expand')) highlightShrinkFn(this) - // else if ($target.contains('copy-button')) highlightCopyFn(this) - // } - // - // const expandCode = function () { - // this.classList.toggle('expand-done') - // } - // - // function createEle(lang, item, service) { - // const fragment = document.createDocumentFragment() - // - // if (isShowTool) { - // const hlTools = document.createElement('div') - // hlTools.className = `highlight-tools ${highlightShrinkClass}` - // hlTools.innerHTML = highlightShrinkEle + lang + highlightCopyEle - // hlTools.addEventListener('click', highlightToolsFn) - // fragment.appendChild(hlTools) - // } - // - // if (highlightHeightLimit && item.offsetHeight > highlightHeightLimit + 30) { - // const ele = document.createElement('div') - // ele.className = 'code-expand-btn' - // ele.innerHTML = '' - // ele.addEventListener('click', expandCode) - // fragment.appendChild(ele) - // } - // - // if (service === 'hl') { - // item.insertBefore(fragment, item.firstChild) - // } else { - // item.parentNode.insertBefore(fragment, item) - // } - // } - // - // if (isHighlightLang) { - // if (isPrismjs) { - // $figureHighlight.forEach(function (item) { - // const langName = item.getAttribute('data-language') ? item.getAttribute('data-language') : 'Code' - // const highlightLangEle = `
${langName}
` - // btf.wrap(item, 'figure', '', 'highlight') - // createEle(highlightLangEle, item) - // }) - // } else { - // $figureHighlight.forEach(function (item) { - // let langName = item.getAttribute('class').split(' ')[1] - // if (langName === 'plain' || langName === undefined) langName = 'Code' - // const highlightLangEle = `
${langName}
` - // createEle(highlightLangEle, item, 'hl') - // }) - // } - // } else { - // if (isPrismjs) { - // $figureHighlight.forEach(function (item) { - // btf.wrap(item, 'figure', '', 'highlight') - // createEle('', item) - // }) - // } else { - // $figureHighlight.forEach(function (item) { - // createEle('', item, 'hl') - // }) - // } - // } - // } +const chageTimeFormate = () => { + const timeElements = document.getElementsByTagName("time"), lang = GLOBALCONFIG.lang.time + for (var i = 0; i < timeElements.length; i++) { + const datetime = timeElements[i].getAttribute("datetime"), timeObj = new Date(datetime), + daysDiff = utils.timeDiff(timeObj, new Date()) + var timeString; + if (daysDiff === 0) { + timeString = lang.recent; + } else if (daysDiff === 1) { + timeString = lang.yesterday; + } else if (daysDiff === 2) { + timeString = lang.berforeyesterday; + } else if (daysDiff <= 7) { + timeString = daysDiff + lang.daybefore; + } else { + if (timeObj.getFullYear() !== new Date().getFullYear()) { + timeString = timeObj.getFullYear() + "/" + (timeObj.getMonth() + 1) + "/" + timeObj.getDate(); + } else { + timeString = (timeObj.getMonth() + 1) + "/" + timeObj.getDate(); + } + } + timeElements[i].textContent = timeString; + } +} - /** - * PhotoFigcaption - */ - // function addPhotoFigcaption() { - // document.querySelectorAll('#article-container img').forEach(function (item) { - // const parentEle = item.parentNode - // if (!parentEle.parentNode.classList.contains('justified-gallery')) { - // const ele = document.createElement('div') - // ele.className = 'img-alt is-center' - // ele.textContent = item.getAttribute('alt') - // parentEle.insertBefore(ele, item.nextSibling) - // } - // }) - // } +const percent = () => { + let a = document.documentElement.scrollTop || window.pageYOffset, + b = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight) - document.documentElement.clientHeight, // 整个网页高度 + result = Math.round(a / b * 100), + btn = document.querySelector("#percent"); + const visibleBottom = window.scrollY + document.documentElement.clientHeight; + const eventlistner = document.getElementById('post-tools') || document.getElementById('footer'); + const centerY = eventlistner.offsetTop + (eventlistner.offsetHeight / 2); + if ((centerY < visibleBottom) || (result > 90)) { + document.querySelector("#nav-totop").classList.add("long"); + btn.innerHTML = GLOBALCONFIG.lang.backtop; + document.querySelectorAll(".needEndHide").forEach(item => { + item.classList.add("hide") + }) + } else { + document.querySelector("#nav-totop").classList.remove("long"); + if (result >= 0) { + btn.innerHTML = result; + document.querySelectorAll(".needEndHide").forEach(item => { + item.classList.remove("hide") + }) + } + } +} - /** - * justified-gallery 圖庫排版 - * 需要 jQuery - */ - - // let detectJgJsLoad = false - // const runJustifiedGallery = function (ele) { - // const $justifiedGallery = $(ele) - // const $imgList = $justifiedGallery.find('img') - // $imgList.unwrap() - // if ($imgList.length) { - // $imgList.each(function (i, o) { - // if ($(o).attr('data-lazy-src')) $(o).attr('src', $(o).attr('data-lazy-src')) - // $(o).wrap('
') - // }) - // } - // - // if (detectJgJsLoad) btf.initJustifiedGallery($justifiedGallery) - // else { - // $('head').append(``) - // $.getScript(`${GLOBAL_CONFIG.source.justifiedGallery.js}`, function () { - // btf.initJustifiedGallery($justifiedGallery) - // }) - // detectJgJsLoad = true - // } - // } - - /** - * fancybox和 mediumZoom - */ - // const addFancybox = function (ele) { - // const runFancybox = (ele) => { - // ele.each(function (i, o) { - // const $this = $(o) - // const lazyloadSrc = $this.attr('data-lazy-src') || $this.attr('src') - // const lazyloadSrc1600 = lazyloadSrc + '_1600w' - // const dataCaption = $this.attr('alt') || '' - // if (lazyloadSrc.indexOf('!blogimg') != -1) { - // $this.wrap(``) - // } else { - // $this.wrap(``) - // } - // - // }) - // - // $().fancybox({ - // selector: '[data-fancybox]', - // loop: true, - // transitionEffect: 'slide', - // protect: true, - // buttons: ['slideShow', 'fullScreen', 'thumbs', 'close'], - // hash: false - // }) - // } - // - // if (typeof $.fancybox === 'undefined') { - // $('head').append(``) - // $.getScript(`${GLOBAL_CONFIG.source.fancybox.js}`, function () { - // runFancybox($(ele)) - // }) - // } else { - // runFancybox($(ele)) - // } - // } - - // const addMediumZoom = () => { - // const zoom = mediumZoom(document.querySelectorAll('#article-container :not(a)>img')) - // zoom.on('open', e => { - // const photoBg = document.documentElement.getAttribute('data-theme') === 'dark' ? '#121212' : '#fff' - // zoom.update({ - // background: photoBg - // }) - // }) - // } - // - // const jqLoadAndRun = () => { - // const $fancyboxEle = GLOBAL_CONFIG.lightbox === 'fancybox' - // ? document.querySelectorAll('#article-container :not(a):not(.gallery-group) > img, #article-container > img,.bber-content-img > img') - // : [] - // const fbLengthNoZero = $fancyboxEle.length > 0 - // const $jgEle = document.querySelectorAll('#article-container .justified-gallery') - // const jgLengthNoZero = $jgEle.length > 0 - // - // if (jgLengthNoZero || fbLengthNoZero) { - // btf.isJqueryLoad(() => { - // jgLengthNoZero && runJustifiedGallery($jgEle) - // fbLengthNoZero && addFancybox($fancyboxEle) - // }) - // } - // } - - /** - * 滾動處理 - */ - const scrollFn = function () { - const $rightside = document.getElementById('rightside') - // 解决浏览器滚动时无休止报错 - if ($rightside === null) { return } - const innerHeight = window.innerHeight + 56 - - // 當滾動條小于 56 的時候 - if (document.body.scrollHeight <= innerHeight) { - $rightside.style.cssText = 'opacity: 1; transform: translateX(-38px)' +class toc { + static init() { + const tocContainer = document.getElementById('card-toc') + if (!tocContainer || !tocContainer.querySelector('.toc a')) { + tocContainer.style.display = 'none' return } - - let initTop = 0 - let isChatShow = true - const $header = document.getElementById('page-header') - const $gulitop = document.getElementById('guli_top') - const $cookies_window = document.getElementById('introduction-window') - const isChatBtnHide = typeof chatBtnHide === 'function' - const isChatBtnShow = typeof chatBtnShow === 'function' - window.addEventListener('scroll', btf.throttle(function (e) { - const currentTop = window.scrollY || document.documentElement.scrollTop - const isDown = scrollDirection(currentTop) - if (currentTop > 56) { - if (isDown) { - if ($header.classList.contains('nav-visible')) $header.classList.remove('nav-visible') - if (isChatBtnShow && isChatShow === true) { - chatBtnHide() - isChatShow = false - } - } else { - if (!$header.classList.contains('nav-visible')) $header.classList.add('nav-visible') - if (isChatBtnHide && isChatShow === false) { - chatBtnShow() - isChatShow = true - } - } - $header.classList.add('nav-fixed') - $cookies_window.classList.add('cw-hide') - if (window.getComputedStyle($rightside).getPropertyValue('opacity') === '0') { - $rightside.style.cssText = 'opacity: 1; transform: translateX(-38px)' - } - } else { - if (currentTop === 0) { - $header.classList.remove('nav-fixed', 'nav-visible') - } - $rightside.style.cssText = "opacity: ''; transform: ''" - } - - if (document.body.scrollHeight <= innerHeight) { - $rightside.style.cssText = 'opacity: 1; transform: translateX(-38px)' - } - }, 200)) - - // find the scroll direction - function scrollDirection(currentTop) { - const result = currentTop > initTop // true is down & false is up - initTop = currentTop - return result - } + const el = document.querySelectorAll('.toc a') + el.forEach((e) => { + e.addEventListener('click', (event) => { + event.preventDefault() + utils.scrollToDest(utils.getEleTop(document.getElementById(decodeURI((event.target.className === 'toc-text' ? event.target.parentNode.hash : event.target.hash).replace('#', '')))), 300) + }) + }) + this.active(el) } - /** - * toc - */ - const tocFn = function () { - const $cardTocLayout = document.getElementById('card-toc') - const $cardToc = $cardTocLayout.getElementsByClassName('toc-content')[0] - const $tocLink = $cardToc.querySelectorAll('.toc-link') + static active(toc) { const $article = document.getElementById('article-container') - - // main of scroll - window.tocScrollFn = function () { - return btf.throttle(function () { - const currentTop = window.scrollY || document.documentElement.scrollTop - scrollPercent(currentTop) - findHeadPosition(currentTop) - }, 100)() - } - window.addEventListener('scroll', tocScrollFn) - - const scrollPercent = function (currentTop) { - const docHeight = $article.clientHeight - const winHeight = document.documentElement.clientHeight - const headerHeight = $article.offsetTop - const contentMath = (docHeight > winHeight) ? (docHeight - winHeight) : (document.documentElement.scrollHeight - winHeight) - const scrollPercent = (currentTop - headerHeight) / (contentMath) - const scrollPercentRounded = Math.round(scrollPercent * 100) - const percentage = (scrollPercentRounded > 100) ? 100 : (scrollPercentRounded <= 0) ? 0 : scrollPercentRounded - $cardToc.setAttribute('progress-percentage', percentage) - } - - // anchor - const isAnchor = GLOBAL_CONFIG.isanchor - const updateAnchor = function (anchor) { - if (window.history.replaceState && anchor !== window.location.hash) { - if (!anchor) anchor = location.pathname - const title = GLOBAL_CONFIG.postTitle - window.history.replaceState({ - url: location.href, - title: title - }, title, anchor) - } - } - - const mobileToc = { - open: () => { - $cardTocLayout.style.cssText = 'animation: toc-open .3s; opacity: 1; right: 45px' - }, - - close: () => { - $cardTocLayout.style.animation = 'toc-close .2s' - setTimeout(() => { - $cardTocLayout.style.cssText = "opacity:''; animation: ''; right: ''" - }, 100) - } - } - - document.getElementById('mobile-toc-button').addEventListener('click', () => { - if (window.getComputedStyle($cardTocLayout).getPropertyValue('opacity') === '0') mobileToc.open() - else mobileToc.close() - }) - - // toc元素點擊 - $cardToc.addEventListener('click', (e) => { - e.preventDefault() - const $target = e.target.classList.contains('toc-link') - ? e.target - : e.target.parentElement - btf.scrollToDest(btf.getEleTop(document.getElementById(decodeURI($target.getAttribute('href')).replace('#', ''))), 300) - if (window.innerWidth < 900) { - mobileToc.close() - } - }) - - const autoScrollToc = function (item) { - const activePosition = item.getBoundingClientRect().top - const sidebarScrollTop = $cardToc.scrollTop - if (activePosition > (document.documentElement.clientHeight - 100)) { - $cardToc.scrollTop = sidebarScrollTop + 150 - } - if (activePosition < 100) { - $cardToc.scrollTop = sidebarScrollTop - 150 - } - } - - // find head position & add active class + const $tocContent = document.getElementById('toc-content') const list = $article.querySelectorAll('h1,h2,h3,h4,h5,h6') let detectItem = '' - const findHeadPosition = function (top) { - if ($tocLink.length === 0 || top === 0) { + + function autoScroll(el) { + const activePosition = el.getBoundingClientRect().top + const sidebarScrollTop = $tocContent.scrollTop + if (activePosition > (document.documentElement.clientHeight - 100)) { + $tocContent.scrollTop = sidebarScrollTop + 150 + } + if (activePosition < 100) { + $tocContent.scrollTop = sidebarScrollTop - 150 + } + } + + function findHeadPosition(top) { + if (top === 0) { return false } - let currentId = '' let currentIndex = '' list.forEach(function (ele, index) { - if (top > btf.getEleTop(ele) - 80) { - currentId = '#' + encodeURI(ele.getAttribute('id')) + if (top > utils.getEleTop(ele) - 80) { currentIndex = index } }) if (detectItem === currentIndex) return - - if (isAnchor) updateAnchor(currentId) - - if (currentId === '') { - $cardToc.querySelectorAll('.active').forEach(i => { - i.classList.remove('active') - }) - detectItem = currentIndex - return - } - detectItem = currentIndex - - $cardToc.querySelectorAll('.active').forEach(item => { - item.classList.remove('active') + document.querySelectorAll('.toc .active').forEach((i) => { + i.classList.remove('active') }) - const currentActive = $tocLink[currentIndex] - currentActive.classList.add('active') - - setTimeout(() => { - autoScrollToc(currentActive) - }, 0) - - let parent = currentActive.parentNode - - for (; !parent.matches('.toc'); parent = parent.parentNode) { - if (parent.matches('li')) parent.classList.add('active') - } - } - } - - /** - * Rightside - */ - // const rightSideFn = { - // switchReadMode: () => { // read-mode - // const $body = document.body - // $body.classList.add('read-mode') - // const newEle = document.createElement('button') - // newEle.type = 'button' - // newEle.className = 'fas fa-sign-out-alt exit-readmode' - // $body.appendChild(newEle) - // - // function clickFn() { - // $body.classList.remove('read-mode') - // newEle.remove() - // newEle.removeEventListener('click', clickFn) - // } - // - // newEle.addEventListener('click', clickFn) - // }, - // switchDarkMode: () => { // Switch Between Light And Dark Mode - // const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' - // if (nowMode === 'light') { - // activateDarkMode() - // saveToLocal.set('theme', 'dark', 2); - // GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night, false, 2000); - // } else { - // activateLightMode(); - // saveToLocal.set('theme', 'light', 2); - // GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.night_to_day, false, 2000); - // } - // // handle some cases - // typeof utterancesTheme === 'function' && utterancesTheme() - // typeof FB === 'object' && window.loadFBComment() - // window.DISQUS && document.getElementById('disqus_thread').children.length && setTimeout(() => window.disqusReset(), 200) - // }, - // showOrHideBtn: () => { // rightside 點擊設置 按鈕 展開 - // document.getElementById('rightside-config-hide').classList.toggle('show') - // }, - // scrollToTop: () => { // Back to top - // btf.scrollToDest(0, 500) - // }, - // hideAsideBtn: () => { // Hide aside - // const $htmlDom = document.documentElement.classList - // $htmlDom.contains('hide-aside') - // ? saveToLocal.set('aside-status', 'show', 2) - // : saveToLocal.set('aside-status', 'hide', 2) - // $htmlDom.toggle('hide-aside') - // }, - // - // adjustFontSize: (plus) => { - // const fontSizeVal = parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('--global-font-size')) - // let newValue = '' - // if (plus) { - // if (fontSizeVal >= 20) return - // newValue = fontSizeVal + 1 - // document.documentElement.style.setProperty('--global-font-size', newValue + 'px') - // !document.getElementById('nav').classList.contains('hide-menu') && adjustMenu(true) - // } else { - // if (fontSizeVal <= 10) return - // newValue = fontSizeVal - 1 - // document.documentElement.style.setProperty('--global-font-size', newValue + 'px') - // document.getElementById('nav').classList.contains('hide-menu') && adjustMenu(true) - // } - // - // saveToLocal.set('global-font-size', newValue, 2) - // // document.getElementById('font-text').innerText = newValue - // } - // } - - // document.getElementById('rightside').addEventListener('click', function (e) { - // const $target = e.target.id || e.target.parentNode.id - // switch ($target) { - // case 'go-up': - // rightSideFn.scrollToTop() - // break - // case 'rightside_config': - // rightSideFn.showOrHideBtn() - // break - // case 'readmode': - // rightSideFn.switchReadMode() - // break - // case 'darkmode': - // rightSideFn.switchDarkMode() - // break - // case 'hide-aside-btn': - // rightSideFn.hideAsideBtn() - // break - // case 'font-plus': - // rightSideFn.adjustFontSize(true) - // break - // case 'font-minus': - // rightSideFn.adjustFontSize() - // break - // default: - // break - // } - // }) - - /** - * menu - * 側邊欄sub-menu 展開/收縮 - * 解決menus在觸摸屏下,滑動屏幕menus_item_child不消失的問題(手機hover的bug) - */ - const clickFnOfSubMenu = function () { - document.querySelectorAll('#sidebar-menus .expand').forEach(function (e) { - e.addEventListener('click', function () { - this.classList.toggle('hide') - const $dom = this.parentNode.nextElementSibling - if (btf.isHidden($dom)) { - $dom.style.display = 'block' - } else { - $dom.style.display = 'none' + const activeitem = toc[detectItem] + if (activeitem) { + let parent = toc[detectItem].parentNode + activeitem.classList.add('active') + autoScroll(activeitem) + for (; !parent.matches('.toc'); parent = parent.parentNode) { + if (parent.matches('li')) parent.classList.add('active') } - }) - }) - - window.addEventListener('touchmove', function (e) { - const $menusChild = document.querySelectorAll('#nav .menus_item_child') - $menusChild.forEach(item => { - if (!btf.isHidden(item)) item.style.display = 'none' - }) - }) - } - - /** - * 複製時加上版權信息 - */ - const addCopyright = () => { - const copyright = GLOBAL_CONFIG.copyright - document.body.oncopy = (e) => { - e.preventDefault() - let textFont; - const copyFont = window.getSelection(0).toString() - if (copyFont.length > copyright.limitCount) { - textFont = copyFont + '\n' + '\n' + '\n' + - copyright.languages.author + '\n' + - copyright.languages.link + window.location.href + '\n' + - copyright.languages.source + '\n' + - copyright.languages.info - } else { - textFont = copyFont - } - if (e.clipboardData) { - return e.clipboardData.setData('text', textFont) - } else { - return window.clipboardData.setData('text', textFont) } } - } - /** - * 網頁運行時間 - */ - const addRuntime = () => { - const $runtimeCount = document.getElementById('runtimeshow'); - if ($runtimeCount) { - var s1 = $runtimeCount.innerText;;//建站时间 - if(s1) - { - s1 = new Date(s1.replace(/-/g, "/")); - s2 = new Date(); - var days = s2.getTime() - s1.getTime(); - var number_of_days = parseInt(days / (1000 * 60 * 60 * 24)); - $runtimeCount.innerText =number_of_days+"天"; - } + window.tocScrollFn = utils.throttle(function () { + const currentTop = window.scrollY || document.documentElement.scrollTop + findHeadPosition(currentTop) + }, 100) + + window.addEventListener('scroll', tocScrollFn) + } +} + +class acrylic { + static switchDarkMode() { + const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : + 'light' + if (nowMode === 'light') { + document.documentElement.setAttribute('data-theme', 'dark') + localStorage.setItem('theme', 'dark') + utils.snackbarShow(GLOBALCONFIG.lang.theme.dark, false, 2000) + } else { + document.documentElement.setAttribute('data-theme', 'light') + localStorage.setItem('theme', 'light') + utils.snackbarShow(GLOBALCONFIG.lang.theme.light, false, 2000) } } - /** - * 最後一次更新時間 - */ - const addLastPushDate = () => { - const $lastPushDateItem = document.getElementById('last-push-date') - if ($lastPushDateItem) { - const lastPushDate = $lastPushDateItem.getAttribute('data-lastPushDate') - $lastPushDateItem.innerText = btf.diffDate(lastPushDate, true) + static hideTodayCard() { + document.getElementById('todayCard').classList.add('hide') + } + + static toTop() { + utils.scrollToDest(0) + } + + static showConsole() { + const el = document.getElementById('console') + if (!el.classList.contains('show')) { + el.classList.add('show') } } - /** - * table overflow - */ - const addTableWrap = function () { - const $table = document.querySelectorAll('#article-container :not(.highlight) > table, #article-container > table') - if ($table.length) { - $table.forEach(item => { - btf.wrap(item, 'div', '', 'table-wrap') - }) + static hideConsole() { + const el = document.getElementById('console') + if (el.classList.contains('show')) { + el.classList.remove('show') } } - /** - * tag-hide - */ - const clickFnOfTagHide = function () { - const $hideInline = document.querySelectorAll('#article-container .hide-button') - if ($hideInline.length) { - $hideInline.forEach(function (item) { - item.addEventListener('click', function (e) { - const $this = this - const $hideContent = $this.nextElementSibling - $this.classList.toggle('open') - if ($this.classList.contains('open')) { - if ($hideContent.querySelectorAll('.justified-gallery').length > 0) { - btf.initJustifiedGallery($hideContent.querySelectorAll('.justified-gallery')) - } - } - }) - }) + static copyPageUrl() { + utils.copy(window.location.href) + } + + static lightbox(el) { + window.ViewImage && ViewImage.init(el); + } + + static initTheme() { + const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; + const cachedMode = localStorage.getItem('theme'); + const isLightMode = !isDarkMode; + + const nowMode = + cachedMode && (cachedMode === 'dark' || cachedMode === 'light') + ? cachedMode === 'dark' && isLightMode ? 'light' + : cachedMode === 'light' && isDarkMode ? 'dark' + : cachedMode + : isDarkMode ? 'dark' + : 'light'; + + document.documentElement.setAttribute('data-theme', nowMode); + localStorage.setItem('theme', nowMode); + } + + static reflashEssayWaterFall() { + if (document.getElementById('waterfall')) { + setTimeout(function () { + waterfall('#waterfall'); + document.getElementById("waterfall").classList.add('show'); + }, 500); } } - const tabsFn = { - clickFnOfTabs: function () { - document.querySelectorAll('#article-container .tab > button').forEach(function (item) { - item.addEventListener('click', function (e) { - const $this = this - const $tabItem = $this.parentNode - - if (!$tabItem.classList.contains('active')) { - const $tabContent = $tabItem.parentNode.nextElementSibling - const $siblings = btf.siblings($tabItem, '.active')[0] - $siblings && $siblings.classList.remove('active') - $tabItem.classList.add('active') - const tabId = $this.getAttribute('data-href').replace('#', '') - const childList = [...$tabContent.children] - childList.forEach(item => { - if (item.id === tabId) item.classList.add('active') - else item.classList.remove('active') - }) - const $isTabJustifiedGallery = $tabContent.querySelectorAll(`#${tabId} .justified-gallery`) - if ($isTabJustifiedGallery.length > 0) { - btf.initJustifiedGallery($isTabJustifiedGallery) - } - } - }) - }) - }, - backToTop: () => { - document.querySelectorAll('#article-container .tabs .tab-to-top').forEach(function (item) { - item.addEventListener('click', function () { - btf.scrollToDest(btf.getEleTop(btf.getParents(this, '.tabs')), 300) - }) - }) + static addRuntime() { + const el = document.getElementById('runtimeshow') + if (el && GLOBALCONFIG.runtime) { + el.innerText = utils.timeDiff(new Date(GLOBALCONFIG.runtime), new Date()) + GLOBALCONFIG.lang.time.runtime } } - const toggleCardCategory = function () { - const $cardCategory = document.querySelectorAll('#aside-cat-list .card-category-list-item.parent i') - if ($cardCategory.length) { - $cardCategory.forEach(function (item) { - item.addEventListener('click', function (e) { - e.preventDefault() - const $this = this - $this.classList.toggle('expand') - const $parentEle = $this.parentNode.nextElementSibling - if (btf.isHidden($parentEle)) { - $parentEle.style.display = 'block' - } else { - $parentEle.style.display = 'none' - } - }) - }) - } - } - - // const switchComments = function () { - // let switchDone = false - // const $switchBtn = document.querySelector('#comment-switch > .switch-btn') - // $switchBtn && $switchBtn.addEventListener('click', function () { - // this.classList.toggle('move') - // document.querySelectorAll('#post-comment > .comment-wrap > div').forEach(function (item) { - // if (btf.isHidden(item)) { - // item.style.cssText = 'display: block;animation: tabshow .5s' - // } else { - // item.style.cssText = "display: none;animation: ''" - // } - // }) - // - // if (!switchDone && typeof loadOtherComment === 'function') { - // switchDone = true - // loadOtherComment() - // } - // }) - // } - - const addPostOutdateNotice = function () { - const data = GLOBAL_CONFIG.noticeOutdate - const diffDay = btf.diffDate(GLOBAL_CONFIG_SITE.postUpdate) - if (diffDay >= data.limitDay) { - const ele = document.createElement('div') - ele.className = 'post-outdate-notice' - ele.textContent = data.messagePrev + ' ' + diffDay + ' ' + data.messageNext - const $targetEle = document.getElementById('article-container') - if (data.position === 'top') { - $targetEle.insertBefore(ele, $targetEle.firstChild) - } else { - $targetEle.appendChild(ele) - } - } - } - - const lazyloadImg = () => { + static lazyloadImg() { window.lazyLoadInstance = new LazyLoad({ elements_selector: 'img', threshold: 0, - data_src: 'lazy-src' + data_src: 'lazy-src', + callback_error: (img) => { + img.setAttribute("src", GLOBALCONFIG.lazyload.error); + } }) } - const relativeDate = function (selector) { - selector.forEach(item => { - const $this = item - const timeVal = $this.getAttribute('datetime') - $this.innerText = btf.diffDate(timeVal, true) - $this.style.display = 'inline' - }) - } - - const unRefreshFn = function () { - window.addEventListener('resize', adjustMenu) - window.addEventListener('orientationchange', () => { - setTimeout(adjustMenu(true), 100) - }) - - clickFnOfSubMenu() - GLOBAL_CONFIG.islazyload && lazyloadImg() - GLOBAL_CONFIG.copyright !== undefined && addCopyright() - } - - window.refreshFn = function () { - initAdjust(); - - if (GLOBAL_CONFIG.isPost) { - GLOBAL_CONFIG.isToc && tocFn() - addRuntime(); - // GLOBAL_CONFIG.noticeOutdate !== undefined && addPostOutdateNotice() - // GLOBAL_CONFIG.relativeDate.post && relativeDate(document.querySelectorAll('#post-meta time')) - } else { - // GLOBAL_CONFIG.relativeDate.homepage && relativeDate(document.querySelectorAll('#recent-posts time')) - // GLOBAL_CONFIG.runtime && addRuntime() - addLastPushDate() - toggleCardCategory() - addRuntime() + static initbbtalk() { + if (document.querySelector('#bber-talk')) { + var swiper = new Swiper('.swiper-container', { + direction: 'vertical', + loop: true, + autoplay: { + delay: 3000, + pauseOnMouseEnter: true + }, + }); } - - sidebarFn() - GLOBAL_CONFIG.isHome && scrollDownInIndex() - // addHighlightTool() - // GLOBAL_CONFIG.isPhotoFigcaption && addPhotoFigcaption() - // jqLoadAndRun() - // GLOBAL_CONFIG.lightbox === 'mediumZoom' && addMediumZoom() - scrollFn() - addTableWrap() - clickFnOfTagHide() - tabsFn.clickFnOfTabs() - tabsFn.backToTop() - // switchComments() } + static musicToggle() { + const $music = document.querySelector('#nav-music'), + $meting = document.querySelector('meting-js'), + $console = document.getElementById('consoleMusic') + if (acrylic_musicPlaying) { + $music.classList.remove("playing") + $console.classList.remove("on") + acrylic_musicPlaying = false; + $meting.aplayer.pause(); + } else { + $music.classList.add("playing") + $console.classList.add("on") + acrylic_musicPlaying = true; + $meting.aplayer.play(); + } + } +} + +class hightlight { + static createEle(langEl, item) { + const fragment = document.createDocumentFragment() + const highlightCopyEle = '' + + const hlTools = document.createElement('div') + hlTools.className = `highlight-tools` + hlTools.innerHTML = langEl + highlightCopyEle + hlTools.children[1].addEventListener('click', (e) => { + utils.copy($table.querySelector('.code').innerText) + }) + fragment.appendChild(hlTools) + const itemHeight = item.clientHeight, $table = item.querySelector('table') + if (GLOBALCONFIG.hightlight.limit && itemHeight > GLOBALCONFIG.hightlight.limit + 30) { + $table.setAttribute('style', `height: ${GLOBALCONFIG.hightlight.limit}px`) + const ele = document.createElement('div') + ele.className = 'code-expand-btn' + ele.innerHTML = '' + ele.addEventListener('click', (e) => { + $table.setAttribute('style', `height: ${itemHeight}px`) + e.target.className !== 'code-expand-btn' ? e.target.parentNode.classList.add('expand-done') : e.target.classList.add('expand-done') + }) + fragment.appendChild(ele) + } + item.insertBefore(fragment, item.firstChild) + } + + static init() { + const $figureHighlight = document.querySelectorAll('figure.highlight'), that = this + $figureHighlight.forEach(function (item) { + let langName = item.getAttribute('class').split(' ')[1] + if (langName === 'plaintext' || langName === undefined) langName = 'Code' + const highlightLangEle = `
${langName.toUpperCase()}
` + that.createEle(highlightLangEle, item) + }) + } +} + +class tabs { + static init() { + this.clickFnOfTabs() + this.backToTop() + } + + static clickFnOfTabs() { + document.querySelectorAll('#article-container .tab > button').forEach(function (item) { + item.addEventListener('click', function (e) { + const that = this + const $tabItem = that.parentNode + if (!$tabItem.classList.contains('active')) { + const $tabContent = $tabItem.parentNode.nextElementSibling + const $siblings = utils.siblings($tabItem, '.active')[0] + $siblings && $siblings.classList.remove('active') + $tabItem.classList.add('active') + const tabId = that.getAttribute('data-href').replace('#', '') + const childList = [...$tabContent.children] + childList.forEach(item => { + if (item.id === tabId) item.classList.add('active') + else item.classList.remove('active') + }) + } + }) + }) + } + + static backToTop() { + document.querySelectorAll('#article-container .tabs .tab-to-top').forEach(function (item) { + item.addEventListener('click', function () { + utils.scrollToDest(utils.getEleTop(item.parentElement.parentElement.parentNode), 300) + }) + }) + } +} + + +window.refreshFn = () => { + scrollFn() + sidebarFn() + setTimeState() + chageTimeFormate() + acrylic.addRuntime() + GLOBALCONFIG.lazyload.enable && acrylic.lazyloadImg() + GLOBALCONFIG.lightbox && acrylic.lightbox('#article-container img, #bber .bber-content-img img, #album_detail album-content-img img') + GLOBALCONFIG.randomlinks && randomLinksList() + PAGECONFIG.toc && toc.init() + if (PAGECONFIG.is_post || PAGECONFIG.is_page) { + GLOBALCONFIG.hightlight.enable && hightlight.init() + tabs.init() + } + PAGECONFIG.comment && initComment() + if (PAGECONFIG.is_home) { + showTodayCard() + acrylic.initbbtalk() + } + if (PAGECONFIG.is_page && PAGECONFIG.page === 'says') acrylic.reflashEssayWaterFall() + if (PAGECONFIG.is_page) { + if (document.getElementById('album_detail')) acrylic.reflashEssayWaterFall() + } + GLOBALCONFIG.covercolor && coverColor() +} + +acrylic.initTheme() +let acrylic_musicPlaying = false +document.addEventListener('DOMContentLoaded', function () { refreshFn() - unRefreshFn() }) + +document.addEventListener('pjax:complete', () => { + window.refreshFn() +}) \ No newline at end of file diff --git a/templates/assets/js/utils.js b/templates/assets/js/utils.js index 20fc7e51..816efc50 100644 --- a/templates/assets/js/utils.js +++ b/templates/assets/js/utils.js @@ -1,4 +1,4 @@ -var btf = { +const utils = { debounce: function (func, wait, immediate) { let timeout return function () { @@ -49,139 +49,6 @@ var btf = { return throttled }, - sidebarPaddingR: () => { - const innerWidth = window.innerWidth - const clientWidth = document.body.clientWidth - const paddingRight = innerWidth - clientWidth - if (innerWidth !== clientWidth) { - document.body.style.paddingRight = paddingRight + 'px' - } - }, - - snackbarShow: (text, showAction, duration) => { - const sa = (typeof showAction !== 'undefined') ? showAction : false - const dur = (typeof duration !== 'undefined') ? duration : 5000 - const position = GLOBAL_CONFIG.Snackbar.position - const bg = document.documentElement.getAttribute('data-theme') === 'light' ? GLOBAL_CONFIG.Snackbar.bgLight : GLOBAL_CONFIG.Snackbar.bgDark - document.styleSheets[0].addRule(':root', '--heo-snackbar-time:' + dur + 'ms!important') - Snackbar.show({ - text: text, - backgroundColor: bg, - showAction: sa, - duration: dur, - pos: position - }) - - }, - - initJustifiedGallery: function (selector) { - if (!(selector instanceof jQuery)) { - selector = $(selector) - } - selector.each(function (i, o) { - if ($(this).is(':visible')) { - $(this).justifiedGallery({ - rowHeight: 220, - margins: 4 - }) - } - }) - }, - - diffDate: (d, more = false) => { - const dateNow = new Date() - const datePost = new Date(d) - const dateDiff = dateNow.getTime() - datePost.getTime() - const minute = 1000 * 60 - const hour = minute * 60 - const day = hour * 24 - const month = day * 30 - - let result - if (more) { - const monthCount = dateDiff / month - const dayCount = dateDiff / day - const hourCount = dateDiff / hour - const minuteCount = dateDiff / minute - - if (monthCount > 12) { - // result = datePost.toLocaleDateString().replace(/\//g, '-') - result = datePost.toLocaleDateString() - } else if (dayCount >= 7) { - // } else if (monthCount >= 1) { - result = datePost.toLocaleDateString().substr(5) - // result = parseInt(monthCount) + ' ' + GLOBAL_CONFIG.date_suffix.month - } else if (dayCount >= 1) { - result = parseInt(dayCount) + '' + GLOBAL_CONFIG.date_suffix.day - } else if (hourCount >= 1) { - result = '最近' - // result = parseInt(hourCount) + ' ' + GLOBAL_CONFIG.date_suffix.hour - } else if (minuteCount >= 1) { - result = '最近' - // result = parseInt(minuteCount) + ' ' + GLOBAL_CONFIG.date_suffix.min - } else { - result = GLOBAL_CONFIG.date_suffix.just - } - } else { - result = parseInt(dateDiff / day) - } - return result - }, - - loadComment: (dom, callback) => { - if ('IntersectionObserver' in window) { - const observerItem = new IntersectionObserver((entries) => { - if (entries[0].isIntersecting) { - callback() - observerItem.disconnect() - } - }, {threshold: [0]}) - observerItem.observe(dom) - } else { - callback() - } - }, - - scrollToDest: (pos, time) => { - if (pos < 0 || time < 0) { - return - } - - const currentPos = window.scrollY || window.screenTop - pos = pos - 70 - - if ('CSS' in window && CSS.supports('scroll-behavior', 'smooth')) { - window.scrollTo({ - top: pos, - behavior: 'smooth' - }) - return - } - - let start = null - time = time || 500 - window.requestAnimationFrame(function step(currentTime) { - start = !start ? currentTime : start - if (currentPos < pos) { - const progress = currentTime - start - window.scrollTo(0, ((pos - currentPos) * progress / time) + currentPos) - if (progress < time) { - window.requestAnimationFrame(step) - } else { - window.scrollTo(0, pos) - } - } else { - const progress = currentTime - start - window.scrollTo(0, currentPos - ((currentPos - pos) * progress / time)) - if (progress < time) { - window.requestAnimationFrame(step) - } else { - window.scrollTo(0, pos) - } - } - }) - }, - fadeIn: (ele, time) => { ele.style.cssText = `display:block;animation: to_show ${time}s` }, @@ -194,11 +61,84 @@ var btf = { ele.style.animation = `to_hide ${time}s` }, - getParents: (elem, selector) => { - for (; elem && elem !== document; elem = elem.parentNode) { - if (elem.matches(selector)) return elem + sidebarPaddingR: () => { + const innerWidth = window.innerWidth + const clientWidth = document.body.clientWidth + const paddingRight = innerWidth - clientWidth + if (innerWidth !== clientWidth) { + document.body.style.paddingRight = paddingRight + 'px' } - return null + }, + + snackbarShow: (text, showAction, duration) => { + const sa = (typeof showAction !== 'undefined') ? showAction : false + const dur = (typeof duration !== 'undefined') ? duration : 5000 + document.styleSheets[0].addRule(':root', '--heo-snackbar-time:' + dur + 'ms!important') + Snackbar.show({ + text: text, + showAction: sa, + duration: dur, + pos: 'top-center' + }) + }, + + copy: async (text) => { + try { + await navigator.clipboard.writeText(text) + utils.snackbarShow(GLOBALCONFIG.lang.copy.success, false, 2000) + } catch (err) { + utils.snackbarShow(GLOBALCONFIG.lang.copy.error, false, 2000) + } + }, + + getEleTop: ele => { + let actualTop = ele.offsetTop + let current = ele.offsetParent + + while (current !== null) { + actualTop += current.offsetTop + current = current.offsetParent + } + + return actualTop + }, + + randomNum: (length) => { + return Math.floor(Math.random() * length) + }, + + timeDiff: (timeObj, today) => { + var timeDiff = today.getTime() - timeObj.getTime(); + return Math.floor(timeDiff / (1000 * 3600 * 24)); + }, + + scrollToDest: (pos, time = 500) => { + const currentPos = window.pageYOffset + const isNavFixed = document.getElementById('page-header').classList.contains('nav-fixed') + if (currentPos > pos || isNavFixed) pos = pos - 70 + if ('scrollBehavior' in document.documentElement.style) { + window.scrollTo({ + top: pos, + behavior: 'smooth' + }) + return + } + let start = null + pos = +pos + window.requestAnimationFrame(function step(currentTime) { + start = !start ? currentTime : start + const progress = currentTime - start + if (currentPos < pos) { + window.scrollTo(0, ((pos - currentPos) * progress / time) + currentPos) + } else { + window.scrollTo(0, currentPos - ((currentPos - pos) * progress / time)) + } + if (progress < time) { + window.requestAnimationFrame(step) + } else { + window.scrollTo(0, pos) + } + }) }, siblings: (ele, selector) => { @@ -209,50 +149,5 @@ var btf = { return child !== ele }) }, - - /** - * - * @param {*} selector - * @param {*} eleType the type of create element - * @param {*} id id - * @param {*} cn class name - */ - wrap: function (selector, eleType, id = '', cn = '') { - const creatEle = document.createElement(eleType) - if (id) creatEle.id = id - if (cn) creatEle.className = cn - selector.parentNode.insertBefore(creatEle, selector) - creatEle.appendChild(selector) - }, - - unwrap: function (el) { - const elParentNode = el.parentNode - if (elParentNode !== document.body) { - elParentNode.parentNode.insertBefore(el, elParentNode) - elParentNode.parentNode.removeChild(elParentNode) - } - }, - - isJqueryLoad: (fn) => { - if (typeof jQuery === 'undefined') { - getScript(GLOBAL_CONFIG.source.jQuery).then(fn) - } else { - fn() - } - }, - - isHidden: (ele) => ele.offsetHeight === 0 && ele.offsetWidth === 0, - - getEleTop: (ele) => { - let actualTop = ele.offsetTop - let current = ele.offsetParent - - while (current !== null) { - actualTop += current.offsetTop - current = current.offsetParent - } - - return actualTop - } - + isMobile: () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), } diff --git a/templates/assets/lib/lazyload.min.js b/templates/assets/lib/lazyload.min.js new file mode 100644 index 00000000..87a0a80f --- /dev/null +++ b/templates/assets/lib/lazyload.min.js @@ -0,0 +1 @@ +var LazyLoad=function(){"use strict";function n(){return n=Object.assign||function(n){for(var t=1;t1,r={elements_selector:".lazy",container:e||t?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,i="LazyLoad::Initialized",a=new n(t);try{e=new CustomEvent(i,{detail:{instance:a}})}catch(n){(e=document.createEvent("CustomEvent")).initCustomEvent(i,!1,!1,{instance:a})}window.dispatchEvent(e)},u="src",s="srcset",d="sizes",f="poster",_="llOriginalAttrs",g="data",v="loading",b="loaded",m="applied",p="error",h="native",E="data-",I="ll-status",k=function(n,t){return n.getAttribute(E+t)},y=function(n){return k(n,I)},w=function(n,t){return function(n,t,e){var i="data-ll-status";null!==e?n.setAttribute(i,e):n.removeAttribute(i)}(n,0,t)},A=function(n){return w(n,null)},L=function(n){return null===y(n)},O=function(n){return y(n)===h},C=[v,b,m,p],x=function(n,t,e,i){n&&(void 0===i?void 0===e?n(t):n(t,e):n(t,e,i))},N=function(n,t){a?n.classList.add(t):n.className+=(n.className?" ":"")+t},M=function(n,t){a?n.classList.remove(t):n.className=n.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},z=function(n){return n.llTempImage},R=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},T=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},D=function(n){for(var t,e=[],i=0;t=n.children[i];i+=1)"SOURCE"===t.tagName&&e.push(t);return e},H=function(n,t){var e=n.parentNode;e&&"PICTURE"===e.tagName&&D(e).forEach(t)},V=function(n,t){D(n).forEach(t)},j=[u],F=[u,f],B=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},$=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},q=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},K=function(n,t,e){N(n,t.class_applied),w(n,m),e&&(t.unobserve_completed&&R(n,t),x(t.callback_applied,n,e))},Q=function(n,t,e){N(n,t.class_loading),w(n,v),e&&(T(e,1),x(t.callback_loading,n,e))},W=function(n,t,e){e&&n.setAttribute(t,e)},X=function(n,t){W(n,d,k(n,t.data_sizes)),W(n,s,k(n,t.data_srcset)),W(n,u,k(n,t.data_src))},Y={IMG:function(n,t){H(n,(function(n){$(n,B),X(n,t)})),$(n,B),X(n,t)},IFRAME:function(n,t){$(n,j),W(n,u,k(n,t.data_src))},VIDEO:function(n,t){V(n,(function(n){$(n,j),W(n,u,k(n,t.data_src))})),$(n,F),W(n,f,k(n,t.data_poster)),W(n,u,k(n,t.data_src)),n.load()},OBJECT:function(n,t){$(n,J),W(n,g,k(n,t.data_src))}},Z=["IMG","IFRAME","VIDEO","OBJECT"],nn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||x(n.callback_finish,t)},tn=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},en=function(n,t,e){n.removeEventListener(t,e)},an=function(n){return!!n.llEvLisnrs},on=function(n){if(an(n)){var t=n.llEvLisnrs;for(var e in t){var i=t[e];en(n,e,i)}delete n.llEvLisnrs}},rn=function(n,t,e){!function(n){delete n.llTempImage}(n),T(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),M(n,t.class_loading),t.unobserve_completed&&R(n,e)},cn=function(n,t,e){var i=z(n)||n;an(i)||function(n,t,e){an(n)||(n.llEvLisnrs={});var i="VIDEO"===n.tagName?"loadeddata":"load";tn(n,i,t),tn(n,"error",e)}(i,(function(a){!function(n,t,e,i){var a=O(t);rn(t,e,i),N(t,e.class_loaded),w(t,b),x(e.callback_loaded,t,i),a||nn(e,i)}(0,n,t,e),on(i)}),(function(a){!function(n,t,e,i){var a=O(t);rn(t,e,i),N(t,e.class_error),w(t,p),x(e.callback_error,t,i),e.restore_on_error&&q(t,B),a||nn(e,i)}(0,n,t,e),on(i)}))},ln=function(n,t,e){!function(n){return Z.indexOf(n.tagName)>-1}(n)?function(n,t,e){!function(n){n.llTempImage=document.createElement("IMG")}(n),cn(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var i=k(n,t.data_bg),a=k(n,t.data_bg_hidpi),r=o&&a?a:i;r&&(n.style.backgroundImage='url("'.concat(r,'")'),z(n).setAttribute(u,r),Q(n,t,e))}(n,t,e),function(n,t,e){var i=k(n,t.data_bg_multi),a=k(n,t.data_bg_multi_hidpi),r=o&&a?a:i;r&&(n.style.backgroundImage=r,K(n,t,e))}(n,t,e),function(n,t,e){var i=k(n,t.data_bg_set);if(i){var a=i.split("|"),o=a.map((function(n){return"image-set(".concat(n,")")}));n.style.backgroundImage=o.join(),""===n.style.backgroundImage&&(o=a.map((function(n){return"-webkit-image-set(".concat(n,")")})),n.style.backgroundImage=o.join()),K(n,t,e)}}(n,t,e)}(n,t,e):function(n,t,e){cn(n,t,e),function(n,t,e){var i=Y[n.tagName];i&&(i(n,t),Q(n,t,e))}(n,t,e)}(n,t,e)},un=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},sn=function(n){H(n,(function(n){q(n,B)})),q(n,B)},dn={IMG:sn,IFRAME:function(n){q(n,j)},VIDEO:function(n){V(n,(function(n){q(n,j)})),q(n,F),n.load()},OBJECT:function(n){q(n,J)}},fn=function(n,t){(function(n){var t=dn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)})(n),function(n,t){L(n)||O(n)||(M(n,t.class_entered),M(n,t.class_exited),M(n,t.class_applied),M(n,t.class_loading),M(n,t.class_loaded),M(n,t.class_error))}(n,t),A(n),U(n)},_n=["IMG","IFRAME","VIDEO"],gn=function(n){return n.use_native&&"loading"in HTMLImageElement.prototype},vn=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?function(n,t,e,i){var a=function(n){return C.indexOf(y(n))>=0}(n);w(n,"entered"),N(n,e.class_entered),M(n,e.class_exited),function(n,t,e){t.unobserve_entered&&R(n,e)}(n,e,i),x(e.callback_enter,n,t,i),a||ln(n,e,i)}(n.target,n,t,e):function(n,t,e,i){L(n)||(N(n,e.class_exited),function(n,t,e,i){e.cancel_on_exit&&function(n){return y(n)===v}(n)&&"IMG"===n.tagName&&(on(n),function(n){H(n,(function(n){un(n)})),un(n)}(n),sn(n),M(n,e.class_loading),T(i,-1),A(n),x(e.callback_cancel,n,t,i))}(n,t,e,i),x(e.callback_exit,n,t,i))}(n.target,n,t,e)}))},bn=function(n){return Array.prototype.slice.call(n)},mn=function(n){return n.container.querySelectorAll(n.elements_selector)},pn=function(n){return function(n){return y(n)===p}(n)},hn=function(n,t){return function(n){return bn(n).filter(L)}(n||mn(t))},En=function(n,e){var a=c(n);this._settings=a,this.loadingCount=0,function(n,t){i&&!gn(n)&&(t._observer=new IntersectionObserver((function(e){vn(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+"px"}}(n)))}(a,this),function(n,e){t&&(e._onlineHandler=function(){!function(n,t){var e;(e=mn(n),bn(e).filter(pn)).forEach((function(t){M(t,n.class_error),A(t)})),t.update()}(n,e)},window.addEventListener("online",e._onlineHandler))}(a,this),this.update(e)};return En.prototype={update:function(n){var t,a,o=this._settings,r=hn(n,o);G(this,r.length),!e&&i?gn(o)?function(n,t,e){n.forEach((function(n){-1!==_n.indexOf(n.tagName)&&function(n,t,e){n.setAttribute("loading","lazy"),cn(n,t,e),function(n,t){var e=Y[n.tagName];e&&e(n,t)}(n,t),w(n,h)}(n,t,e)})),G(e,0)}(r,o,this):(a=r,function(n){n.disconnect()}(t=this._observer),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,a)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),t&&window.removeEventListener("online",this._onlineHandler),mn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;hn(n,e).forEach((function(n){R(n,t),ln(n,e,t)}))},restoreAll:function(){var n=this._settings;mn(n).forEach((function(t){fn(t,n)}))}},En.load=function(n,t){var e=c(t);ln(n,e)},En.resetStatus=function(n){A(n)},t&&function(n,t){if(t)if(t.length)for(var e,i=0;e=t[i];i+=1)l(n,e);else l(n,t)}(En,window.lazyLoadOptions),En}(); \ No newline at end of file diff --git a/templates/assets/lib/pjax.min.js b/templates/assets/lib/pjax.min.js new file mode 100644 index 00000000..8c094293 --- /dev/null +++ b/templates/assets/lib/pjax.min.js @@ -0,0 +1 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Pjax=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i]+>/gi;var htmlAttribsRegex=/\s?[a-z:]+(?:=['"][^'">]+['"])*/gi;var matches=html.match(htmlRegex);if(matches&&matches.length){matches=matches[0].match(htmlAttribsRegex);if(matches.length){matches.shift();matches.forEach(function(htmlAttrib){var attr=htmlAttrib.trim().split("=");if(attr.length===1){tmpEl.documentElement.setAttribute(attr[0],true)}else{tmpEl.documentElement.setAttribute(attr[0],attr[1].slice(1,-1))}})}}tmpEl.documentElement.innerHTML=html;this.log("load content",tmpEl.documentElement.attributes,tmpEl.documentElement.innerHTML.length);if(document.activeElement&&contains(document,this.options.selectors,document.activeElement)){try{document.activeElement.blur()}catch(e){}}this.switchSelectors(this.options.selectors,tmpEl,document,options)},abortRequest:require("./lib/abort-request"),doRequest:require("./lib/send-request"),handleResponse:require("./lib/proto/handle-response"),loadUrl:function(href,options){options=typeof options==="object"?extend({},this.options,options):clone(this.options);this.log("load href",href,options);this.abortRequest(this.request);trigger(document,"pjax:send",options);this.request=this.doRequest(href,options,this.handleResponse.bind(this))},afterAllSwitches:function(){var autofocusEl=Array.prototype.slice.call(document.querySelectorAll("[autofocus]")).pop();if(autofocusEl&&document.activeElement!==autofocusEl){autofocusEl.focus()}this.options.selectors.forEach(function(selector){forEachEls(document.querySelectorAll(selector),function(el){executeScripts(el)})});var state=this.state;if(state.options.history){if(!window.history.state){this.lastUid=this.maxUid=newUid();window.history.replaceState({url:window.location.href,title:document.title,uid:this.maxUid,scrollPos:[0,0]},document.title)}this.lastUid=this.maxUid=newUid();window.history.pushState({url:state.href,title:state.options.title,uid:this.maxUid,scrollPos:[0,0]},state.options.title,state.href)}this.forEachSelectors(function(el){this.parseDOM(el)},this);trigger(document,"pjax:complete pjax:success",state.options);if(typeof state.options.analytics==="function"){state.options.analytics()}if(state.options.history){var a=document.createElement("a");a.href=this.state.href;if(a.hash){var name=a.hash.slice(1);name=decodeURIComponent(name);var curtop=0;var target=document.getElementById(name)||document.getElementsByName(name)[0];if(target){if(target.offsetParent){do{curtop+=target.offsetTop;target=target.offsetParent}while(target)}}window.scrollTo(0,curtop)}else if(state.options.scrollTo!==false){if(state.options.scrollTo.length>1){window.scrollTo(state.options.scrollTo[0],state.options.scrollTo[1])}else{window.scrollTo(0,state.options.scrollTo)}}}else if(state.options.scrollRestoration&&state.options.scrollPos){window.scrollTo(state.options.scrollPos[0],state.options.scrollPos[1])}this.state={numPendingSwitches:0,href:null,options:null}}};Pjax.isSupported=require("./lib/is-supported");if(Pjax.isSupported()){module.exports=Pjax}else{var stupidPjax=noop;for(var key in Pjax.prototype){if(Pjax.prototype.hasOwnProperty(key)&&typeof Pjax.prototype[key]==="function"){stupidPjax[key]=noop}}module.exports=stupidPjax}},{"./lib/abort-request":2,"./lib/events/on":4,"./lib/events/trigger":5,"./lib/execute-scripts":6,"./lib/foreach-els":7,"./lib/foreach-selectors":8,"./lib/is-supported":9,"./lib/parse-options":10,"./lib/proto/attach-form":11,"./lib/proto/attach-link":12,"./lib/proto/handle-response":13,"./lib/proto/log":14,"./lib/proto/parse-element":15,"./lib/send-request":16,"./lib/switches":18,"./lib/switches-selectors":17,"./lib/uniqueid":19,"./lib/util/clone":20,"./lib/util/contains":21,"./lib/util/extend":22,"./lib/util/noop":23}],2:[function(require,module,exports){var noop=require("./util/noop");module.exports=function(request){if(request&&request.readyState<4){request.onreadystatechange=noop;request.abort()}}},{"./util/noop":23}],3:[function(require,module,exports){module.exports=function(el){var code=el.text||el.textContent||el.innerHTML||"";var src=el.src||"";var parent=el.parentNode||document.querySelector("head")||document.documentElement;var script=document.createElement("script");if(code.match("document.write")){if(console&&console.log){console.log("Script contains document.write. Can’t be executed correctly. Code skipped ",el)}return false}script.type="text/javascript";script.id=el.id;if(src!==""){script.src=src;script.async=false}if(code!==""){try{script.appendChild(document.createTextNode(code))}catch(e){script.text=code}}parent.appendChild(script);if((parent instanceof HTMLHeadElement||parent instanceof HTMLBodyElement)&&parent.contains(script)){parent.removeChild(script)}return true}},{}],4:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,listener,useCapture){events=typeof events==="string"?events.split(" "):events;events.forEach(function(e){forEachEls(els,function(el){el.addEventListener(e,listener,useCapture)})})}},{"../foreach-els":7}],5:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,opts){events=typeof events==="string"?events.split(" "):events;events.forEach(function(e){var event;event=document.createEvent("HTMLEvents");event.initEvent(e,true,true);event.eventName=e;if(opts){Object.keys(opts).forEach(function(key){event[key]=opts[key]})}forEachEls(els,function(el){var domFix=false;if(!el.parentNode&&el!==document&&el!==window){domFix=true;document.body.appendChild(el)}el.dispatchEvent(event);if(domFix){el.parentNode.removeChild(el)}})})}},{"../foreach-els":7}],6:[function(require,module,exports){var forEachEls=require("./foreach-els");var evalScript=require("./eval-script");module.exports=function(el){if(el.tagName.toLowerCase()==="script"){evalScript(el)}forEachEls(el.querySelectorAll("script"),function(script){if(!script.type||script.type.toLowerCase()==="text/javascript"){if(script.parentNode){script.parentNode.removeChild(script)}evalScript(script)}})}},{"./eval-script":3,"./foreach-els":7}],7:[function(require,module,exports){module.exports=function(els,fn,context){if(els instanceof HTMLCollection||els instanceof NodeList||els instanceof Array){return Array.prototype.forEach.call(els,fn,context)}return fn.call(context,els)}},{}],8:[function(require,module,exports){var forEachEls=require("./foreach-els");module.exports=function(selectors,cb,context,DOMcontext){DOMcontext=DOMcontext||document;selectors.forEach(function(selector){forEachEls(DOMcontext.querySelectorAll(selector),cb,context)})}},{"./foreach-els":7}],9:[function(require,module,exports){module.exports=function(){return window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/)}},{}],10:[function(require,module,exports){var defaultSwitches=require("./switches");module.exports=function(options){options=options||{};options.elements=options.elements||"a[href], form[action]";options.selectors=options.selectors||["title",".js-Pjax"];options.switches=options.switches||{};options.switchesOptions=options.switchesOptions||{};options.history=typeof options.history==="undefined"?true:options.history;options.analytics=typeof options.analytics==="function"||options.analytics===false?options.analytics:defaultAnalytics;options.scrollTo=typeof options.scrollTo==="undefined"?0:options.scrollTo;options.scrollRestoration=typeof options.scrollRestoration!=="undefined"?options.scrollRestoration:true;options.cacheBust=typeof options.cacheBust==="undefined"?true:options.cacheBust;options.debug=options.debug||false;options.timeout=options.timeout||0;options.currentUrlFullReload=typeof options.currentUrlFullReload==="undefined"?false:options.currentUrlFullReload;if(!options.switches.head){options.switches.head=defaultSwitches.switchElementsAlt}if(!options.switches.body){options.switches.body=defaultSwitches.switchElementsAlt}return options};function defaultAnalytics(){if(window._gaq){_gaq.push(["_trackPageview"])}if(window.ga){ga("send","pageview",{page:location.pathname,title:document.title})}}},{"./switches":18}],11:[function(require,module,exports){var on=require("../events/on");var clone=require("../util/clone");var attrState="data-pjax-state";var formAction=function(el,event){if(isDefaultPrevented(event)){return}var options=clone(this.options);options.requestOptions={requestUrl:el.getAttribute("action")||window.location.href,requestMethod:el.getAttribute("method")||"GET"};var virtLinkElement=document.createElement("a");virtLinkElement.setAttribute("href",options.requestOptions.requestUrl);var attrValue=checkIfShouldAbort(virtLinkElement,options);if(attrValue){el.setAttribute(attrState,attrValue);return}event.preventDefault();if(el.enctype==="multipart/form-data"){options.requestOptions.formData=new FormData(el)}else{options.requestOptions.requestParams=parseFormElements(el)}el.setAttribute(attrState,"submit");options.triggerElement=el;this.loadUrl(virtLinkElement.href,options)};function parseFormElements(el){var requestParams=[];var formElements=el.elements;for(var i=0;i1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey){return"modifier"}if(el.protocol!==window.location.protocol||el.host!==window.location.host){return"external"}if(el.hash&&el.href.replace(el.hash,"")===window.location.href.replace(location.hash,"")){return"anchor"}if(el.href===window.location.href.split("#")[0]+"#"){return"anchor-empty"}}var isDefaultPrevented=function(event){return event.defaultPrevented||event.returnValue===false};module.exports=function(el){var that=this;el.setAttribute(attrState,"");on(el,"click",function(event){linkAction.call(that,el,event)});on(el,"keyup",function(event){if(event.keyCode===13){linkAction.call(that,el,event)}}.bind(this))}},{"../events/on":4,"../util/clone":20}],13:[function(require,module,exports){var clone=require("../util/clone");var newUid=require("../uniqueid");var trigger=require("../events/trigger");module.exports=function(responseText,request,href,options){options=clone(options||this.options);options.request=request;if(responseText===false){trigger(document,"pjax:complete pjax:error",options);return}var currentState=window.history.state||{};window.history.replaceState({url:currentState.url||window.location.href,title:currentState.title||document.title,uid:currentState.uid||newUid(),scrollPos:[document.documentElement.scrollLeft||document.body.scrollLeft,document.documentElement.scrollTop||document.body.scrollTop]},document.title,window.location.href);var oldHref=href;if(request.responseURL){if(href!==request.responseURL){href=request.responseURL}}else if(request.getResponseHeader("X-PJAX-URL")){href=request.getResponseHeader("X-PJAX-URL")}else if(request.getResponseHeader("X-XHR-Redirected-To")){href=request.getResponseHeader("X-XHR-Redirected-To")}var a=document.createElement("a");a.href=oldHref;var oldHash=a.hash;a.href=href;if(oldHash&&!a.hash){a.hash=oldHash;href=a.href}this.state.href=href;this.state.options=options;try{this.loadContent(responseText,options)}catch(e){trigger(document,"pjax:error",options);if(!this.options.debug){if(console&&console.error){console.error("Pjax switch fail: ",e)}return this.latestChance(href)}else{throw e}}}},{"../events/trigger":5,"../uniqueid":19,"../util/clone":20}],14:[function(require,module,exports){module.exports=function(){if(this.options.debug&&console){if(typeof console.log==="function"){console.log.apply(console,arguments)}else if(console.log){console.log(arguments)}}}},{}],15:[function(require,module,exports){var attrState="data-pjax-state";module.exports=function(el){switch(el.tagName.toLowerCase()){case"a":if(!el.hasAttribute(attrState)){this.attachLink(el)}break;case"form":if(!el.hasAttribute(attrState)){this.attachForm(el)}break;default:throw"Pjax can only be applied on or
submit"}}},{}],16:[function(require,module,exports){var updateQueryString=require("./util/update-query-string");module.exports=function(location,options,callback){options=options||{};var queryString;var requestOptions=options.requestOptions||{};var requestMethod=(requestOptions.requestMethod||"GET").toUpperCase();var requestParams=requestOptions.requestParams||null;var formData=requestOptions.formData||null;var requestPayload=null;var request=new XMLHttpRequest;var timeout=options.timeout||0;request.onreadystatechange=function(){if(request.readyState===4){if(request.status===200){callback(request.responseText,request,location,options)}else if(request.status!==0){callback(null,request,location,options)}}};request.onerror=function(e){console.log(e);callback(null,request,location,options)};request.ontimeout=function(){callback(null,request,location,options)};if(requestParams&&requestParams.length){queryString=requestParams.map(function(param){return param.name+"="+param.value}).join("&");switch(requestMethod){case"GET":location=location.split("?")[0];location+="?"+queryString;break;case"POST":requestPayload=queryString;break}}else if(formData){requestPayload=formData}if(options.cacheBust){location=updateQueryString(location,"t",Date.now())}request.open(requestMethod,location,true);request.timeout=timeout;request.setRequestHeader("X-Requested-With","XMLHttpRequest");request.setRequestHeader("X-PJAX","true");request.setRequestHeader("X-PJAX-Selectors",JSON.stringify(options.selectors));if(requestPayload&&requestMethod==="POST"&&!formData){request.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}request.send(requestPayload);return request}},{"./util/update-query-string":24}],17:[function(require,module,exports){var forEachEls=require("./foreach-els");var defaultSwitches=require("./switches");module.exports=function(switches,switchesOptions,selectors,fromEl,toEl,options){var switchesQueue=[];selectors.forEach(function(selector){var newEls=fromEl.querySelectorAll(selector);var oldEls=toEl.querySelectorAll(selector);if(this.log){this.log("Pjax switch",selector,newEls,oldEls)}if(newEls.length!==oldEls.length){throw"DOM doesn’t look the same on new loaded page: ’"+selector+"’ - new "+newEls.length+", old "+oldEls.length}forEachEls(newEls,function(newEl,i){var oldEl=oldEls[i];if(this.log){this.log("newEl",newEl,"oldEl",oldEl)}var callback=switches[selector]?switches[selector].bind(this,oldEl,newEl,options,switchesOptions[selector]):defaultSwitches.outerHTML.bind(this,oldEl,newEl,options);switchesQueue.push(callback)},this)},this);this.state.numPendingSwitches=switchesQueue.length;switchesQueue.forEach(function(queuedSwitch){queuedSwitch()})}},{"./foreach-els":7,"./switches":18}],18:[function(require,module,exports){var on=require("./events/on");module.exports={outerHTML:function(oldEl,newEl){oldEl.outerHTML=newEl.outerHTML;this.onSwitch()},innerHTML:function(oldEl,newEl){oldEl.innerHTML=newEl.innerHTML;if(newEl.className===""){oldEl.removeAttribute("class")}else{oldEl.className=newEl.className}this.onSwitch()},switchElementsAlt:function(oldEl,newEl){oldEl.innerHTML=newEl.innerHTML;if(newEl.hasAttributes()){var attrs=newEl.attributes;for(var i=0;i=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h>=e)break;c++}if(c>l.length)throw new Error("Too long data");return c}function s(a){var b=encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c>b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0>a||this.moduleCount<=a||0>b||this.moduleCount<=b)throw new Error(a+","+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d=7&&this.setupTypeNumber(a),null==this.dataCache&&(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7>=c;c++)if(!(-1>=a+c||this.moduleCount<=a+c))for(var d=-1;7>=d;d++)-1>=b+d||this.moduleCount<=b+d||(this.modules[a+c][b+d]=c>=0&&6>=c&&(0==d||6==d)||d>=0&&6>=d&&(0==c||6==c)||c>=2&&4>=c&&d>=2&&4>=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8>c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a>d)&&(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f=g;g++)for(var h=-2;2>=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&&0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[Math.floor(c/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18>c;c++){var d=!a&&1==(1&b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel<<3|b,d=f.getBCHTypeInfo(c),e=0;15>e;e++){var g=!a&&1==(1&d>>e);6>e?this.modules[e][8]=g:8>e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15>e;e++){var g=!a&&1==(1&d>>e);8>e?this.modules[8][this.moduleCount-e-1]=g:9>e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h>0;h-=2)for(6==h&&h--;;){for(var i=0;2>i;i++)if(null==this.modules[d][h-i]){var j=!1;g>>e));var k=f.getMask(b,d,h-i);k&&(j=!j),this.modules[d][h-i]=j,e--,-1==e&&(g++,e=7)}if(d+=c,0>d||this.moduleCount<=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h8*l)throw new Error("code length overflow. ("+g.getLengthInBits()+">"+8*l+")");for(g.getLengthInBits()+4<=8*l&&g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()>=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()>=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j=0?p.get(q):0}}for(var r=0,m=0;mm;m++)for(var j=0;jm;m++)for(var j=0;j=0;)b^=f.G15<=0;)b^=f.G18<>>=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b/2)+Math.floor(c/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error("bad maskPattern:"+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a>c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b>=1&&10>b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error("mode:"+a)}else if(27>b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error("mode:"+a)}else{if(!(41>b))throw new Error("type:"+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error("mode:"+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b>d;d++)for(var e=0;b>e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1>=h;h++)if(!(0>d+h||d+h>=b))for(var i=-1;1>=i;i++)0>e+i||e+i>=b||(0!=h||0!=i)&&g==a.isDark(d+h,e+i)&&f++;f>5&&(c+=3+f-5)}for(var d=0;b-1>d;d++)for(var e=0;b-1>e;e++){var j=0;a.isDark(d,e)&&j++,a.isDark(d+1,e)&&j++,a.isDark(d,e+1)&&j++,a.isDark(d+1,e+1)&&j++,(0==j||4==j)&&(c+=3)}for(var d=0;b>d;d++)for(var e=0;b-6>e;e++)a.isDark(d,e)&&!a.isDark(d,e+1)&&a.isDark(d,e+2)&&a.isDark(d,e+3)&&a.isDark(d,e+4)&&!a.isDark(d,e+5)&&a.isDark(d,e+6)&&(c+=40);for(var e=0;b>e;e++)for(var d=0;b-6>d;d++)a.isDark(d,e)&&!a.isDark(d+1,e)&&a.isDark(d+2,e)&&a.isDark(d+3,e)&&a.isDark(d+4,e)&&!a.isDark(d+5,e)&&a.isDark(d+6,e)&&(c+=40);for(var k=0,e=0;b>e;e++)for(var d=0;b>d;d++)a.isDark(d,e)&&k++;var l=Math.abs(100*k/b/b-50)/5;return c+=10*l}},g={glog:function(a){if(1>a)throw new Error("glog("+a+")");return g.LOG_TABLE[a]},gexp:function(a){for(;0>a;)a+=255;for(;a>=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8>h;h++)g.EXP_TABLE[h]=1<h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255>h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;cf;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g>k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a/8);return 1==(1&this.buffer[b]>>>7-a%8)},put:function(a,b){for(var c=0;b>c;c++)this.putBit(1==(1&a>>>b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length/8);this.buffer.length<=b&&this.buffer.push(0),a&&(this.buffer[b]|=128>>>this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg",a);for(var d in b)b.hasOwnProperty(d)&&c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width/d),Math.floor(b.height/d),this.clear();var h=g("svg",{viewBox:"0 0 "+String(d)+" "+String(d),width:"100%",height:"100%",fill:b.colorLight});h.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),c.appendChild(h),h.appendChild(g("rect",{fill:b.colorDark,width:"1",height:"1",id:"template"}));for(var i=0;d>i;i++)for(var j=0;d>j;j++)if(a.isDark(i,j)){var k=g("use",{x:String(i),y:String(j)});k.setAttributeNS("http://www.w3.org/1999/xlink","href","#template"),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p="svg"===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL("image/png"),this._elImage.style.display="block",this._elCanvas.style.display="none"}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement("img"),e=function(){c._bSupportDataURI=!1,c._fFail&&_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&&c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",void 0}c._bSupportDataURI===!0&&c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&&c._fFail&&c._fFail.call(c)}if(this._android&&this._android<=2.1){var b=1/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if("nodeName"in a&&/img/i.test(a.nodeName))for(var l=arguments.length-1;l>=1;l--)arguments[l]=arguments[l]*b;else"undefined"==typeof j&&(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width/e,g=d.height/e,h=Math.round(f),i=Math.round(g);b.style.display="none",this.clear();for(var j=0;e>j;j++)for(var k=0;e>k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&&d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width/d),f=Math.floor(b.height/d),g=[''],h=0;d>h;h++){g.push("");for(var i=0;d>i;i++)g.push('');g.push("")}g.push("
"),c.innerHTML=g.join("");var j=c.childNodes[0],k=(b.width-j.offsetWidth)/2,l=(b.height-j.offsetHeight)/2;k>0&&l>0&&(j.style.margin=l+"px "+k+"px")},a.prototype.clear=function(){this._el.innerHTML=""},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:d.H},"string"==typeof b&&(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];"string"==typeof a&&(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}(); \ No newline at end of file diff --git a/templates/assets/lib/rgbaster.min.js b/templates/assets/lib/rgbaster.min.js new file mode 100644 index 00000000..25b55fc5 --- /dev/null +++ b/templates/assets/lib/rgbaster.min.js @@ -0,0 +1 @@ +!function(n){"use strict";var t=function(){return document.createElement("canvas").getContext("2d")},e=function(n,e){var a=new Image,o=n.src||n;"data:"!==o.substring(0,5)&&(a.crossOrigin="Anonymous"),a.onload=function(){var n=t("2d");n.drawImage(a,0,0);var o=n.getImageData(0,0,a.width,a.height);e&&e(o.data)},a.src=o},a=function(n){return["rgb(",n,")"].join("")},o=function(n){return n.map(function(n){return a(n.name)})},r=5,i=10,c={};c.colors=function(n,t){t=t||{};var c=t.exclude||[],u=t.paletteSize||i;e(n,function(e){for(var i=n.width*n.height||e.length,m={},s="",d=[],f={dominant:{name:"",count:0},palette:Array.apply(null,new Array(u)).map(Boolean).map(function(){return{name:"0,0,0",count:0}})},l=0;i>l;){if(d[0]=e[l],d[1]=e[l+1],d[2]=e[l+2],s=d.join(","),m[s]=s in m?m[s]+1:1,-1===c.indexOf(a(s))){var g=m[s];g>f.dominant.count?(f.dominant.name=s,f.dominant.count=g):f.palette.some(function(n){return g>n.count?(n.name=s,n.count=g,!0):void 0})}l+=4*r}if(t.success){var p=o(f.palette);t.success({dominant:a(f.dominant.name),secondary:p[0],palette:p})}})},n.RGBaster=n.RGBaster||c}(window); \ No newline at end of file diff --git a/templates/assets/lib/snackbar.min.css b/templates/assets/lib/snackbar.min.css new file mode 100644 index 00000000..e74cee78 --- /dev/null +++ b/templates/assets/lib/snackbar.min.css @@ -0,0 +1 @@ +.snackbar-container{transition:all .5s ease;transition-property:top,right,bottom,left,opacity;font-family:Roboto,sans-serif;font-size:14px;min-height:14px;background-color:#070b0e;position:fixed;display:flex;justify-content:space-between;align-items:center;color:#fff;line-height:22px;padding:18px 24px;bottom:-100px;top:-100px;opacity:0;z-index:9999}.snackbar-container .action{background:inherit;display:inline-block;border:none;font-size:inherit;text-transform:uppercase;color:#4caf50;margin:0 0 0 24px;padding:0;min-width:min-content;cursor:pointer}@media (min-width:640px){.snackbar-container{min-width:288px;max-width:568px;display:inline-flex;border-radius:2px;margin:24px}}@media (max-width:640px){.snackbar-container{left:0;right:0;width:100%}}.snackbar-pos.bottom-center{top:auto!important;bottom:0;left:50%;transform:translate(-50%,0)}.snackbar-pos.bottom-left{top:auto!important;bottom:0;left:0}.snackbar-pos.bottom-right{top:auto!important;bottom:0;right:0}.snackbar-pos.top-left{bottom:auto!important;top:0;left:0}.snackbar-pos.top-center{bottom:auto!important;top:0;left:50%;transform:translate(-50%,0)}.snackbar-pos.top-right{bottom:auto!important;top:0;right:0}@media (max-width:640px){.snackbar-pos.bottom-center,.snackbar-pos.top-center{left:0;transform:none}} \ No newline at end of file diff --git a/templates/assets/lib/snackbar.min.js b/templates/assets/lib/snackbar.min.js new file mode 100644 index 00000000..df295923 --- /dev/null +++ b/templates/assets/lib/snackbar.min.js @@ -0,0 +1,16 @@ +/*! + * Snackbar v0.1.14 + * http://polonel.com/Snackbar + * + * Copyright 2018 Chris Brame and other contributors + * Released under the MIT license + * https://github.com/polonel/Snackbar/blob/master/LICENSE + */ +!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],function(){return a.Snackbar=b()}):"object"==typeof module&&module.exports?module.exports=a.Snackbar=b():a.Snackbar=b()}(this,function(){var a={};a.current=null;var b={text:"Default Text",textColor:"#FFFFFF",width:"auto",showAction:!0,actionText:"Dismiss",actionTextAria:"Dismiss, Description for Screen Readers",alertScreenReader:!1,actionTextColor:"#4CAF50",showSecondButton:!1,secondButtonText:"",secondButtonAria:"Description for Screen Readers",secondButtonTextColor:"#4CAF50",backgroundColor:"#323232",pos:"bottom-left",duration:5e3,customClass:"",onActionClick:function(a){a.style.opacity=0},onSecondButtonClick:function(a){},onClose:function(a){}};a.show=function(d){var e=c(!0,b,d);a.current&&(a.current.style.opacity=0,setTimeout(function(){var a=this.parentElement;a&& + // possible null if too many/fast Snackbars + a.removeChild(this)}.bind(a.current),500)),a.snackbar=document.createElement("div"),a.snackbar.className="snackbar-container "+e.customClass,a.snackbar.style.width=e.width;var f=document.createElement("p");if(f.style.margin=0,f.style.padding=0,f.style.color=e.textColor,f.style.fontSize="14px",f.style.fontWeight=300,f.style.lineHeight="1em",f.innerHTML=e.text,a.snackbar.appendChild(f),a.snackbar.style.background=e.backgroundColor,e.showSecondButton){var g=document.createElement("button");g.className="action",g.innerHTML=e.secondButtonText,g.setAttribute("aria-label",e.secondButtonAria),g.style.color=e.secondButtonTextColor,g.addEventListener("click",function(){e.onSecondButtonClick(a.snackbar)}),a.snackbar.appendChild(g)}if(e.showAction){var h=document.createElement("button");h.className="action",h.innerHTML=e.actionText,h.setAttribute("aria-label",e.actionTextAria),h.style.color=e.actionTextColor,h.addEventListener("click",function(){e.onActionClick(a.snackbar)}),a.snackbar.appendChild(h)}e.duration&&setTimeout(function(){a.current===this&&(a.current.style.opacity=0, + // When natural remove event occurs let's move the snackbar to its origins + a.current.style.top="-100px",a.current.style.bottom="-100px")}.bind(a.snackbar),e.duration),e.alertScreenReader&&a.snackbar.setAttribute("role","alert"),a.snackbar.addEventListener("transitionend",function(b,c){"opacity"===b.propertyName&&"0"===this.style.opacity&&("function"==typeof e.onClose&&e.onClose(this),this.parentElement.removeChild(this),a.current===this&&(a.current=null))}.bind(a.snackbar)),a.current=a.snackbar,document.body.appendChild(a.snackbar);getComputedStyle(a.snackbar).bottom,getComputedStyle(a.snackbar).top;a.snackbar.style.opacity=1,a.snackbar.className="snackbar-container "+e.customClass+" snackbar-pos "+e.pos},a.close=function(){a.current&&(a.current.style.opacity=0)}; + // Pure JS Extend + // http://gomakethings.com/vanilla-javascript-version-of-jquery-extend/ + var c=function(){var a={},b=!1,d=0,e=arguments.length;"[object Boolean]"===Object.prototype.toString.call(arguments[0])&&(b=arguments[0],d++);for(var f=function(d){for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b&&"[object Object]"===Object.prototype.toString.call(d[e])?a[e]=c(!0,a[e],d[e]):a[e]=d[e])};d.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide,swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/templates/assets/lib/swiper.min.js b/templates/assets/lib/swiper.min.js new file mode 100644 index 00000000..fe4fed4c --- /dev/null +++ b/templates/assets/lib/swiper.min.js @@ -0,0 +1,13 @@ +/** + * Swiper 9.0.5 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: February 13, 2023 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function l(){return Date.now()}function o(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function g(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:[t]),s}function v(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function w(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function y(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function E(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function x(e,t,s){const a=r();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let S,T,M;function C(){return S||(S=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}function P(e){return void 0===e&&(e={}),T||(T=function(e){let{userAgent:t}=void 0===e?{}:e;const s=C(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),T}function L(){return M||(M=function(){const e=r();let t=!1;function s(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(s()){const s=String(e.navigator.userAgent);if(s.includes("Version/")){const[e,a]=s.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&a<2}}return{isSafari:t||s(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),M}var A={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var z={updateSize:function(){const e=this;let t,s;const a=e.el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a.clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a.clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(w(a,"padding-left")||0,10)-parseInt(w(a,"padding-right")||0,10),s=s-parseInt(w(a,"padding-top")||0,10)-parseInt(w(a,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{wrapperEl:i,slidesEl:r,size:n,rtlTranslate:l,wrongRTL:o}=e,d=e.virtual&&a.virtual.enabled,c=d?e.virtual.slides.length:e.slides.length,p=f(r,`.${e.params.slideClass}, swiper-slide`),m=d?e.virtual.slides.length:p.length;let h=[];const g=[],v=[];let b=a.slidesOffsetBefore;"function"==typeof b&&(b=a.slidesOffsetBefore.call(e));let y=a.slidesOffsetAfter;"function"==typeof y&&(y=a.slidesOffsetAfter.call(e));const E=e.snapGrid.length,S=e.slidesGrid.length;let T=a.spaceBetween,M=-b,C=0,P=0;if(void 0===n)return;"string"==typeof T&&T.indexOf("%")>=0&&(T=parseFloat(T.replace("%",""))/100*n),e.virtualSize=-T,p.forEach((e=>{l?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),a.centeredSlides&&a.cssMode&&(u(i,"--swiper-centered-offset-before",""),u(i,"--swiper-centered-offset-after",""));const L=a.grid&&a.grid.rows>1&&e.grid;let A;L&&e.grid.initSlides(m);const z="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&h.push(e.virtualSize-n)}if(d&&a.loop){const t=v[0]+T;if(a.slidesPerGroup>1){const s=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/a.slidesPerGroup),i=t*a.slidesPerGroup;for(let e=0;e!(a.cssMode&&!a.loop)||t!==p.length-1)).forEach((e=>{e.style[s]=`${T}px`}))}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-n;h=h.map((e=>e<0?-b:e>t?t+y:e))}if(a.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e{h[s]=e-t})),g.forEach(((e,s)=>{g[s]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:h,slidesGrid:g,slidesSizesGrid:v}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){u(i,"--swiper-centered-offset-before",-h[0]+"px"),u(i,"--swiper-centered-offset-after",e.size/2-v[v.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(m!==c&&e.emit("slidesLengthChange"),h.length!==E&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==S&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(d||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.el.classList.contains(t);m<=a.maxBackfaceHiddenSlides?s||e.el.classList.add(t):s&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e=0&&p1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=b(t.slides.filter((e=>"0"===e.getAttribute("data-swiper-slide-index")))[0]),a=b(t.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")==t.slides.length-1))[0]),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let l;if(t.forEach((e=>{e.classList.remove(s.slideActiveClass,s.slideNextClass,s.slidePrevClass)})),r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),l=n(`[data-swiper-slide-index="${t}"]`)}else l=n(`[data-swiper-slide-index="${i}"]`);else l=t[i];if(l){l.classList.add(s.slideActiveClass);let e=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&!e&&(e=t[0]),e&&e.classList.add(s.slideNextClass);let a=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(l,`.${s.slideClass}, swiper-slide`)[0];s.loop&&0===!a&&(a=t[t.length-1]),a&&a.classList.add(s.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r)return o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&i.virtual.enabled&&i.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{snapIndex:o,realIndex:p,previousIndex:r,activeIndex:d}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=e.closest(`.${s.slideClass}, swiper-slide`);let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;let r=e;return i.params.loop&&(i.virtual&&i.params.virtual.enabled?r+=i.virtual.slidesBefore:r=b(i.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===r))[0])),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexp(e)));let h=r[m.indexOf(u)-1];if(void 0===h&&i.cssMode){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=r[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=n.indexOf(h),f<0&&(f=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(f=f-a.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=b(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=b(f(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),n((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var O={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;f(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:s.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,byController:n,byMousewheel:l}=void 0===e?{}:e;const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:m}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&m.virtual.enabled)return s&&(m.centeredSlides||0!==o.snapIndex?m.centeredSlides&&o.snapIndexe.classList.contains("swiper-slide-active")))[0]):w=r;const y="next"===a||!a,E="prev"===a||!a;let x=0,S=0;if(ro.slides.length-2*f){S=r-(o.slides.length-2*f);for(let e=0;e{u.prepend(o.slides[e])})),y&&v.forEach((e=>{u.append(o.slides[e])})),o.recalcSlides(),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(g.length>0&&E)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w+x]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w+x,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else i&&o.slideToLoop(t,0,!1,!0);else if(v.length>0&&y)if(void 0===t){const e=o.slidesGrid[w],t=o.slidesGrid[w-S]-e;l?o.setTranslate(o.translate-t):(o.slideTo(w-S,0,!1,!0),i&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(t,0,!1,!0);if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,slideTo:!1,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{t.params.loop&&t.loopFix(e)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(e)}o.emit("loopFix")},loopDestroy:function(){const e=this,{slides:t,params:s,slidesEl:a}=e;if(!s.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const i=[];t.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;i[t]=e})),t.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),i.forEach((e=>{a.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function D(e){const t=this,s=a(),i=r(),n=t.touchEventsData;n.evCache.push(e);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!o.noSwipingClass&&""!==o.noSwipingClass,h=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&h&&(u=h[0]);const f=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,g=!(!p.target||!p.target.shadowRoot);if(o.noSwiping&&(g?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(f,u):u.closest(f)))return void(t.allowClick=!0);if(o.swipeHandler&&!u.closest(o.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const v=d.currentX,w=d.currentY,b=o.edgeSwipeDetection||o.iOSEdgeSwipeDetection,y=o.edgeSwipeThreshold||o.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=i.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=v,d.startY=w,n.touchStartTime=l(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(n.allowThresholdMove=!1);let E=!0;u.matches(n.focusableElements)&&(E=!1,"SELECT"===u.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==u&&s.activeElement.blur();const x=E&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!x||u.isContentEditable||p.preventDefault(),t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function G(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:o,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));const p=i.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(i.evCache[p]=c);const u=i.evCache.length>1?i.evCache[0]:c,m=u.pageX,h=u.pageY;if(c.preventedByNestedSwiper)return n.startX=m,void(n.startY=h);if(!s.allowTouchMove)return c.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:m,startY:h,prevX:s.touches.currentX,prevY:s.touches.currentY,currentX:m,currentY:h}),i.touchStartTime=l()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(hn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(mn.startX&&s.translate>=s.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=m,n.currentY=h;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||s.zoom&&s.params.zoom&&s.params.zoom.enabled&&i.evCache.length>1)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation();let v=s.isHorizontal()?f:g,w=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),n.diff=v,v*=r.touchRatio,o&&(v=-v,w=-w);const b=s.touchesDirection;s.swipeDirection=v>0?"prev":"next",s.touchesDirection=w>0?"prev":"next";const y=s.params.loop&&!r.cssMode;if(!i.isMoved){if(y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)}let E;i.isMoved&&b!==s.touchesDirection&&y&&Math.abs(v)>=1&&(s.loopFix({direction:s.swipeDirection,setTranslate:!0}),E=!0),s.emit("sliderMove",c),i.isMoved=!0,i.currentTranslate=v+i.startTranslate;let x=!0,S=r.resistanceRatio;if(r.touchReleaseOnEdges&&(S=0),v>0?(y&&!E&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.size/2:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(x=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**S))):v<0&&(y&&!E&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.size/2:s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function B(e){const t=this,s=t.touchEventsData,a=s.evCache.findIndex((t=>t.pointerId===e.pointerId));if(a>=0&&s.evCache.splice(a,1),["pointercancel","pointerout","pointerleave"].includes(e.type))return;const{params:i,touches:r,rtlTranslate:o,slidesGrid:d,enabled:c}=t;if(!c)return;if(!i.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",p),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=l(),m=u-s.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(s.lastClickTime=l(),n((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===r.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=i.followFinger?o?t.translate:-t.translate:-s.currentTranslate,i.cssMode)return;if(t.params.freeMode&&i.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let f=0,g=t.slidesSizesGrid[0];for(let e=0;e=d[e]&&h=d[e]&&(f=e,g=d[d.length-1]-d[d.length-2])}let v=null,w=null;i.rewind&&(t.isBeginning?w=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(h-d[f])/g,y=fi.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=i.longSwipesRatio?t.slideTo(i.rewind&&t.isEnd?v:f+y):t.slideTo(f)),"prev"===t.swipeDirection&&(b>1-i.longSwipesRatio?t.slideTo(f+y):null!==w&&b<0&&Math.abs(b)>i.longSwipesRatio?t.slideTo(w):t.slideTo(f))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(f+y):t.slideTo(f):("next"===t.swipeDirection&&t.slideTo(null!==v?v:f+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:f))}}let H;function X(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(H),H=setTimeout((()=>{e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function Y(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function N(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}const R=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){const t=s.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}};function q(e){R(this,e.target),this.update()}let V=!1;function F(){}const W=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",X,!0):e[c]("observerUpdate",X,!0),r[d]("load",e.onLoad,{capture:!0})};const j=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var _={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",runCallbacksOnInit:!0,_emitClasses:!1};function U(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const K={eventsEmitter:A,update:z,translate:$,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),k({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),k({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:I,loop:O,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:{attachEvents:function(){const e=this,t=a(),{params:s}=e;e.onTouchStart=D.bind(e),e.onTouchMove=G.bind(e),e.onTouchEnd=B.bind(e),s.cssMode&&(e.onScroll=N.bind(e)),e.onClick=Y.bind(e),e.onLoad=q.bind(e),V||(t.addEventListener("touchstart",F),V=!0),W(e,"on")},detachEvents:function(){W(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=j(e,a),d=j(e,l),c=a.enabled;o&&!d?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&d&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const u=l.direction&&l.direction!==a.direction,m=a.loop&&(l.slidesPerView!==a.slidesPerView||u);u&&s&&e.changeDirection(),p(e.params,l);const h=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!h?e.disable():!c&&h&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),m&&s&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Z={};class Q{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new Q(a))})),e}const o=this;o.__swiper__=!0,o.support=C(),o.device=P({userAgent:t.userAgent}),o.browser=L(),o.eventsListeners={},o.eventsAnyListeners=[],o.modules=[...o.__modules__],t.modules&&Array.isArray(t.modules)&&o.modules.push(...t.modules);const d={};o.modules.forEach((e=>{e({params:t,swiper:o,extendParams:U(t,d),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:o.emit.bind(o)})}));const c=p({},_,d);return o.params=p({},c,Z,t),o.originalParams=p({},o.params),o.passedParams=p({},t),o.params&&o.params.on&&Object.keys(o.params.on).forEach((e=>{o.on(e,o.params.on[e])})),o.params&&o.params.onAny&&o.onAny(o.params.onAny),Object.assign(o,{enabled:o.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===o.params.direction,isVertical:()=>"vertical"===o.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o.params.focusableElements,lastClickTime:l(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.emit("_swiper"),o.params.init&&o.init(),o}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]{t.complete&&R(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(a(),e.params.autoHeight&&e.updateAutoHeight()):(i=("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.shadowEl&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=g("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement?s:i,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===w(s,"direction")),wrongRTL:"-webkit-box"===w(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?R(t,e):e.addEventListener("load",(e=>{R(t,e.target)}))})),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(Z,e)}static get extendedDefaults(){return Z}static get defaults(){return _}static installModule(e){Q.prototype.__modules__||(Q.prototype.__modules__=[]);const t=Q.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>Q.installModule(e))),Q):(Q.installModule(e),Q)}}function J(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=g("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function ee(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function te(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function le(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function oe(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>b(e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.filter((t=>t.shadowEl&&t.shadowEl===e.parentNode))[0];return e.parentElement})(e):e)===r)),e.forEach((e=>{E(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function de(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=h(t);let r=i.querySelector(`.${a}`);return r||(r=g("div","swiper-slide-shadow"+(s?`-${s}`:"")),i.append(r)),r}Object.keys(K).forEach((e=>{Object.keys(K[e]).forEach((t=>{Q.prototype[t]=K[e][t]}))})),Q.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=y(t.el);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ce=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(o.innerHTML=i,i=o.children[0])):i=s.isElement?g("swiper-slide"):g("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||(i.textContent=e),a.cache&&(s.virtual.cache[t]=i),i}function c(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i,loop:r}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:c,to:p,slides:u,slidesGrid:m,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const g=s.activeIndex||0;let v,w,b;v=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(w=Math.floor(t/2)+a+o,b=Math.floor(t/2)+a+l):(w=t+(a-1)+o,b=(r?t:a)+l);let y=g-b,E=g+w;r||(y=Math.max(y,0),E=Math.min(E,u.length-1));let x=(s.slidesGrid[y]||0)-(s.slidesGrid[0]||0);function S(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(r&&g>=b?(y-=b,i||(x+=s.slidesGrid[0])):r&&g{e.style[v]=`${x}px`})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:y,to:E,slides:function(){const e=[];for(let t=y;t<=E;t+=1)e.push(u[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?S():n("virtualUpdate"));const T=[],M=[],C=e=>{let t=e;return e<0?t=u.length+e:t>=u.length&&(t-=u.length),t};if(e)s.slidesEl.querySelectorAll(`.${s.params.slideClass}, swiper-slide`).forEach((e=>{e.remove()}));else for(let e=c;e<=p;e+=1)if(eE){const t=C(e);s.slidesEl.querySelectorAll(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`).forEach((e=>{e.remove()}))}const P=r?-u.length:0,L=r?2*u.length:u.length;for(let t=P;t=y&&t<=E){const s=C(t);void 0===p||e?M.push(s):(t>p&&M.push(s),t{s.slidesEl.append(d(u[e],e))})),r)for(let e=T.length-1;e>=0;e-=1){const t=T[e];s.slidesEl.prepend(d(u[t],t))}else T.sort(((e,t)=>t-e)),T.forEach((e=>{s.slidesEl.prepend(d(u[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[v]=`${x}px`})),S()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||c()})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===y(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=v(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const o=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let c,p=l();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&l()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new o.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let o=t.el;"container"!==t.params.mousewheel.eventsTarget&&(o=document.querySelector(t.params.mousewheel.eventsTarget));const p=o&&o.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:l(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time=t.minTranslate()&&(l=t.minTranslate()),l<=t.maxTranslate()&&(l=t.maxTranslate()),t.setTransition(0),t.setTranslate(l),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=n((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=n((()=>{c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),l===t.minTranslate()||l===t.maxTranslate())return!0}}else{const s={time:l(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null};const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.shadowRoot.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.el.querySelectorAll(e).length&&(s=t.el.querySelector(e))),e&&!s?e:s)}function l(e,s){const a=t.params.navigation;(e=r(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function o(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return l(s,!1),void l(e,!1);l(s,t.isBeginning&&!t.params.rewind),l(e,t.isEnd&&!t.params.rewind)}function d(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=J(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=n(e.nextEl),a=n(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=r(s),a=r(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?c:d),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function u(){let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?c:d),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}a("init",(()=>{!1===t.params.navigation.enabled?m():(p(),o())})),a("toEdge fromEdge lock unlock",(()=>{o()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=r(e),s=r(s),[...e,...s].filter((e=>!!e)).forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:n}=t.navigation;a=r(a),n=r(n);const l=s.target;if(t.params.navigation.hideOnClick&&!n.includes(l)&&!a.includes(l)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===l||t.pagination.el.contains(l)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):n.length&&(e=n[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...n].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const m=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),u()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),p(),o()},disable:m,update:o,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function d(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function p(e){const s=e.target.closest(ee(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=b(s)*t.params.slidesPerGroup;t.params.loop?t.slideToLoop(a):t.slideTo(a)}function u(){const e=t.rtl,s=t.params.pagination;if(d())return;let a,r=t.pagination.el;r=o(r);const p=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,u=t.params.loop?Math.ceil(p/t.params.slidesPerGroup):t.snapGrid.length;if(a=t.params.loop?t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex:void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,d,p;if(s.dynamicBullets&&(n=x(i[0],t.isHorizontal()?"width":"height",!0),r.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=a-(t.previousIndex||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),d=o+(Math.min(i.length,s.dynamicMainBullets)-1),p=(d+o)/2),i.forEach((e=>{e.classList.remove(...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)))})),r.length>1)i.forEach((e=>{const t=b(e);t===a&&e.classList.add(s.bulletActiveClass),s.dynamicBullets&&(t>=o&&t<=d&&e.classList.add(`${s.bulletActiveClass}-main`),t===o&&c(e,"prev"),t===d&&c(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(s.bulletActiveClass),s.dynamicBullets){const e=i[o],t=i[d];for(let e=o;e<=d;e+=1)i[e].classList.add(`${s.bulletActiveClass}-main`);c(e,"prev"),c(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-p*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}r.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(ee(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(ee(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(u)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/u;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(ee(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(e.innerHTML=s.renderCustom(t,a+1,u),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function m(){const e=t.params.pagination;if(d())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length;let a=t.pagination.el;a=o(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``),a.forEach((s=>{"custom"!==e.type&&(s.innerHTML=r||""),"bullets"===e.type&&(t.pagination.bullets=[...s.querySelectorAll(ee(e.bulletClass))])})),"custom"!==e.type&&i("paginationRender",a[0])}function h(){t.params.pagination=J(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.shadowRoot.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.filter((e=>y(e,".swiper")[0]===t.el))[0])),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=o(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(e.clickableClass),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",p),t.enabled||s.classList.add(e.lockClass)})))}function f(){const e=t.params.pagination;if(d())return;let s=t.pagination.el;s&&(s=o(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&s.removeEventListener("click",p)}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(e.bulletActiveClass)))}a("init",(()=>{!1===t.params.pagination.enabled?g():(h(),m(),u())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&u()})),a("snapIndexChange",(()=>{u()})),a("snapGridLengthChange",(()=>{m(),u()})),a("destroy",(()=>{f()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{u()})),a("click",((e,s)=>{const a=s.target;let{el:r}=t.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const g=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),f()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=o(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),h(),m(),u()},disable:g,render:m,update:u,init:h,destroy:f})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const l=a();let o,d,c,p,u=!1,m=null,h=null;function f(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=d,o=(c-d)*n;s?(o=-o,o>0?(l=d-o,o=0):-o+d>c&&(l=c+o)):o<0?(l=d+o,o=0):o+d>c&&(l=c-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(m),i.style.opacity=1,m=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function w(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",c=t.isHorizontal()?a.offsetWidth:a.offsetHeight,p=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),d="auto"===t.params.scrollbar.dragSize?c*p:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${d}px`:s.style.height=`${d}px`,a.style.display=p>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function b(e){return t.isHorizontal()?e.clientX:e.clientY}function y(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(b(e)-v(i)[t.isHorizontal()?"left":"top"]-(null!==o?o:d/2))/(c-d),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function E(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;u=!0,o=e.target===l?b(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",y(e),clearTimeout(h),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function x(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;u&&(e.preventDefault?e.preventDefault():e.returnValue=!1,y(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function S(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:l}=a;u&&(u=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(h),h=n((()=>{l.style.opacity=0,l.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function T(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},o=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",E,n),l[d]("pointermove",x,n),l[d]("pointerup",S,o)}function M(){const{scrollbar:e,el:s}=t;t.params.scrollbar=J(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;"string"==typeof a.el&&t.isElement&&(i=t.el.shadowRoot.querySelector(a.el)),i||"string"!=typeof a.el?i||(i=a.el):i=l.querySelectorAll(a.el),t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(`.${t.params.scrollbar.dragClass}`),r||(r=g("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&T("on"),i&&i.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)}function C(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&T("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?P():(M(),w(),f())})),i("update resize observerUpdate lock unlock",(()=>{w()})),i("setTranslate",(()=>{f()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{C()}));const P=()=>{t.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.add(t.params.scrollbar.scrollbarDisabledClass),C()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.el&&t.scrollbar.el.classList.remove(t.params.scrollbar.scrollbarDisabledClass),M(),w(),f()},disable:P,updateSize:w,setTranslate:f,init:M,destroy:C})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},r=()=>{const{el:e,slides:s,progress:a,snapGrid:r}=t;f(e,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{i(e,a)})),s.forEach(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),e.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s}=t;s.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,d,c=1,p=!1;const u=[],m={slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},h={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let w=1;function b(){if(u.length<2)return 1;const e=u[0].pageX,t=u[0].pageY,s=u[1].pageX,a=u[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function E(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function x(e){if(!E(e))return;const s=t.params.zoom;if(l=!1,d=!1,u.push(e),!(u.length<2)){if(l=!0,m.scaleStart=b(),!m.slideEl){m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),m.slideEl||(m.slideEl=t.slides[t.activeIndex]);let a=m.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=a,m.imageWrapEl=a?y(m.imageEl,`.${s.containerClass}`)[0]:void 0,!m.imageWrapEl)return void(m.imageEl=void 0);m.maxRatio=m.imageWrapEl.getAttribute("data-swiper-zoom")||s.maxRatio}if(m.imageEl){const[e,t]=function(){if(u.length<2)return{x:null,y:null};const e=m.imageEl.getBoundingClientRect();return[(u[0].pageX+(u[1].pageX-u[0].pageX)/2-e.x)/c,(u[0].pageY+(u[1].pageY-u[0].pageY)/2-e.y)/c]}();m.imageEl.style.transformOrigin=`${e}px ${t}px`,m.imageEl.style.transitionDuration="0ms"}p=!0}}function S(e){if(!E(e))return;const s=t.params.zoom,a=t.zoom,i=u.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(u[i]=e),u.length<2||(d=!0,m.scaleMove=b(),m.imageEl&&(a.scale=m.scaleMove/m.scaleStart*c,a.scale>m.maxRatio&&(a.scale=m.maxRatio-1+(a.scale-m.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));i>=0&&u.splice(i,1),l&&d&&(l=!1,d=!1,m.imageEl&&(a.scale=Math.max(Math.min(a.scale,m.maxRatio),s.minRatio),m.imageEl.style.transitionDuration=`${t.params.speed}ms`,m.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,c=a.scale,p=!1,1===a.scale&&(m.slideEl=void 0)))}function M(e){if(!E(e)||!function(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.el.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}(e))return;const s=t.zoom;if(!m.imageEl)return;if(t.allowClick=!1,!h.isTouched||!m.slideEl)return;h.isMoved||(h.width=m.imageEl.offsetWidth,h.height=m.imageEl.offsetHeight,h.startX=o(m.imageWrapEl,"x")||0,h.startY=o(m.imageWrapEl,"y")||0,m.slideWidth=m.slideEl.offsetWidth,m.slideHeight=m.slideEl.offsetHeight,m.imageWrapEl.style.transitionDuration="0ms");const a=h.width*s.scale,i=h.height*s.scale;if(!(a0?u[0].pageX:e.pageX,h.touchesCurrent.y=u.length>0?u[0].pageY:e.pageY,!h.isMoved&&!p){if(t.isHorizontal()&&(Math.floor(h.minX)===Math.floor(h.startX)&&h.touchesCurrent.xh.touchesStart.x))return void(h.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(h.minY)===Math.floor(h.startY)&&h.touchesCurrent.yh.touchesStart.y))return void(h.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),h.isMoved=!0,h.currentX=h.touchesCurrent.x-h.touchesStart.x+h.startX,h.currentY=h.touchesCurrent.y-h.touchesStart.y+h.startY,h.currentXh.maxX&&(h.currentX=h.maxX-1+(h.currentX-h.maxX+1)**.8),h.currentYh.maxY&&(h.currentY=h.maxY-1+(h.currentY-h.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=h.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=h.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(h.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(h.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(h.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(h.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=h.touchesCurrent.x,g.prevPositionY=h.touchesCurrent.y,g.prevTime=Date.now(),m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}}function C(){const e=t.zoom;m.slideEl&&t.previousIndex!==t.activeIndex&&(m.imageEl&&(m.imageEl.style.transform="translate3d(0,0,0) scale(1)"),m.imageWrapEl&&(m.imageWrapEl.style.transform="translate3d(0,0,0)"),e.scale=1,c=1,m.slideEl=void 0,m.imageEl=void 0,m.imageWrapEl=void 0)}function P(e){const s=t.zoom,a=t.params.zoom;if(!m.slideEl){e&&e.target&&(m.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),m.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex]);let s=m.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=s,m.imageWrapEl=s?y(m.imageEl,`.${a.containerClass}`)[0]:void 0}if(!m.imageEl||!m.imageWrapEl)return;let i,r,l,o,d,p,u,g,w,b,E,x,S,T,M,C,P,L;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===h.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=h.touchesStart.x,r=h.touchesStart.y);const A="number"==typeof e?e:null;1===c&&A&&(i=void 0,r=void 0),s.scale=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,c=A||m.imageWrapEl.getAttribute("data-swiper-zoom")||a.maxRatio,!e||1===c&&A?(u=0,g=0):(P=m.slideEl.offsetWidth,L=m.slideEl.offsetHeight,l=v(m.slideEl).left+n.scrollX,o=v(m.slideEl).top+n.scrollY,d=l+P/2-i,p=o+L/2-r,w=m.imageEl.offsetWidth,b=m.imageEl.offsetHeight,E=w*s.scale,x=b*s.scale,S=Math.min(P/2-E/2,0),T=Math.min(L/2-x/2,0),M=-S,C=-T,u=d*s.scale,g=p*s.scale,uM&&(u=M),gC&&(g=C)),m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform=`translate3d(${u}px, ${g}px,0)`,m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function L(){const e=t.zoom,s=t.params.zoom;if(!m.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:m.slideEl=t.slides[t.activeIndex];let e=m.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),m.imageEl=e,m.imageWrapEl=e?y(m.imageEl,`.${s.containerClass}`)[0]:void 0}m.imageEl&&m.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,c=1,m.imageWrapEl.style.transitionDuration="300ms",m.imageWrapEl.style.transform="translate3d(0,0,0)",m.imageEl.style.transitionDuration="300ms",m.imageEl.style.transform="translate3d(0,0,0) scale(1)",m.slideEl.classList.remove(`${s.zoomedSlideClass}`),m.slideEl=void 0)}function A(e){const s=t.zoom;s.scale&&1!==s.scale?L():P(e)}function z(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function $(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=z();t.wrapperEl.addEventListener("pointerdown",x,s),t.wrapperEl.addEventListener("pointermove",S,a),["pointerup","pointercancel"].forEach((e=>{t.wrapperEl.addEventListener(e,T,s)})),t.wrapperEl.addEventListener("pointermove",M,a)}function k(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=z();t.wrapperEl.removeEventListener("pointerdown",x,s),t.wrapperEl.removeEventListener("pointermove",S,a),["pointerup","pointercancel"].forEach((e=>{t.wrapperEl.removeEventListener(e,T,s)})),t.wrapperEl.removeEventListener("pointermove",M,a)}Object.defineProperty(t.zoom,"scale",{get:()=>w,set(e){if(w!==e){const t=m.imageEl,s=m.slideEl;i("zoomChange",e,t,s)}w=e}}),a("init",(()=>{t.params.zoom.enabled&&$()})),a("destroy",(()=>{k()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.imageEl&&(h.isTouched||(s.android&&e.cancelable&&e.preventDefault(),h.isTouched=!0,h.touchesStart.x=e.pageX,h.touchesStart.y=e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.imageEl)return;if(!h.isTouched||!h.isMoved)return h.isTouched=!1,void(h.isMoved=!1);h.isTouched=!1,h.isMoved=!1;let s=300,a=300;const i=g.x*s,r=h.currentX+i,n=g.y*a,l=h.currentY+n;0!==g.x&&(s=Math.abs((r-h.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-h.currentY)/g.y));const o=Math.max(s,a);h.currentX=r,h.currentY=l;const d=h.width*e.scale,c=h.height*e.scale;h.minX=Math.min(m.slideWidth/2-d/2,0),h.maxX=-h.minX,h.minY=Math.min(m.slideHeight/2-c/2,0),h.maxY=-h.minY,h.currentX=Math.max(Math.min(h.currentX,h.maxX),h.minX),h.currentY=Math.max(Math.min(h.currentY,h.maxY),h.minY),m.imageWrapEl.style.transitionDuration=`${o}ms`,m.imageWrapEl.style.transform=`translate3d(${h.currentX}px, ${h.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&A(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:$,disable:k,in:P,out:L,toggle:A})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){const e=document.querySelector(t.params.controller.control);if(e&&e.swiper)t.controller.control=e.swiper;else if(e){const s=a=>{t.controller.control=a.detail[0],t.update(),e.removeEventListener("init",s)};e.addEventListener("init",s)}}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),E(s.wrapperEl,(()=>{i&&s.transitionEnd()})))}if(Array.isArray(i))for(r=0;r(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=n(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function d(e,t){(e=n(e)).forEach((e=>{e.setAttribute("role",t)}))}function c(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function p(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function u(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function m(e){(e=n(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function h(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;t.pagination&&t.pagination.el&&(a===t.pagination.el||t.pagination.el.contains(e.target))&&!e.target.matches(ee(t.params.pagination.bulletClass))||(t.navigation&&t.navigation.nextEl&&a===t.navigation.nextEl&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.prevEl&&a===t.navigation.prevEl&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.matches(ee(t.params.pagination.bulletClass))&&a.click())}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function v(){return f()&&t.params.pagination.clickable}const w=(e,t,s)=>{l(e),"BUTTON"!==e.tagName&&(d(e,"button"),e.addEventListener("keydown",h)),p(e,s),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},y=()=>{t.a11y.clicked=!0},E=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},S=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&d(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;p(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},T=()=>{const e=t.params.a11y;t.el.append(i);const s=t.el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.wrapperEl,r=e.id||a.getAttribute("id")||`swiper-wrapper-${l=16,void 0===l&&(l=16),"x".repeat(l).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var l;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,n(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=n(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:u,prevEl:m}=t.navigation?t.navigation:{};if(u=n(u),m=n(m),u&&u.forEach((t=>w(t,r,e.nextSlideMessage))),m&&m.forEach((t=>w(t,r,e.prevSlideMessage))),v()){(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.addEventListener("keydown",h)}))}t.el.addEventListener("focus",x,!0),t.el.addEventListener("pointerdown",y,!0),t.el.addEventListener("pointerup",E,!0)};a("beforeInit",(()=>{i=g("span",t.params.a11y.notificationClass),i.setAttribute("aria-live","assertive"),i.setAttribute("aria-atomic","true"),t.isElement&&i.setAttribute("slot","container-end")})),a("afterInit",(()=>{t.params.a11y.enabled&&T()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&S()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(u(s),o(s)):(m(s),l(s))),e&&(t.isEnd?(u(e),o(e)):(m(e),l(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(l(s),t.params.pagination.renderBullet||(d(s,"button"),p(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,b(s)+1)))),s.matches(`.${t.params.pagination.bulletActiveClass}`)?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){i&&i.length>0&&i.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=n(e),s=n(s),e&&e.forEach((e=>e.removeEventListener("keydown",h))),s&&s.forEach((e=>e.removeEventListener("keydown",h))),v()&&(Array.isArray(t.pagination.el)?t.pagination.el:[t.pagination.el]).forEach((e=>{e.removeEventListener("keydown",h)}));t.el.removeEventListener("focus",x,!0),t.el.removeEventListener("pointerdown",y,!0),t.el.removeEventListener("pointerup",E,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides[t.activeIndex].getAttribute("data-hash")){const s=b(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${e}"], swiper-slide[data-hash="${e}"]`)[0]);if(void 0===s)return;t.slideTo(s)}},p=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState)d.history.replaceState(null,null,`#${t.slides[t.activeIndex].getAttribute("data-hash")}`||""),i("hashSet");else{const e=t.slides[t.activeIndex],s=e.getAttribute("data-hash")||e.getAttribute("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g=o&&o.autoplay?o.autoplay.delay:3e3,v=o&&o.autoplay?o.autoplay.delay:3e3,w=(new Date).getTime;function b(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",b),M())}const y=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(v=d,c=!1);const e=i.autoplay.paused?d:w+v-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/g),s=requestAnimationFrame((()=>{y()}))},E=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),y();let a=void 0===e?i.params.autoplay.delay:e;g=i.params.autoplay.delay,v=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,g=r,v=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(w=(new Date).getTime(),requestAnimationFrame((()=>{E()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},x=()=>{i.autoplay.running=!0,E(),l("autoplayStart")},S=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},T=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",b):M()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-w),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},M=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(w=(new Date).getTime(),f?(f=!1,E(d)):E(),i.autoplay.paused=!1,l("autoplayResume"))},C=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,T(!0)),"visible"===e.visibilityState&&M()},P=e=>{"mouse"===e.pointerType&&(f=!0,T(!0))},L=e=>{"mouse"===e.pointerType&&i.autoplay.paused&&M()};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",P),i.el.addEventListener("pointerleave",L)),a().addEventListener("visibilitychange",C),w=(new Date).getTime(),x())})),n("destroy",(()=>{i.el.removeEventListener("pointerenter",P),i.el.removeEventListener("pointerleave",L),a().removeEventListener("visibilitychange",C),i.autoplay.running&&S()})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?T(!0,!0):S())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?S():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,T(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&M(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:x,stop:S,pause:T,resume:M})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update();else if(d(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function c(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e{e.classList.add(r)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${t.realIndex}`))[0];r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),c(!0);else if(a){const s=i=>{e.swiper=i.detail[0],a.removeEventListener("init",s),o(),c(!0),e.swiper.update(),t.update()};a.addEventListener("init",s)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),c(!0)})),i("slideChange update resize observerUpdate",(()=>{c()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:c})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:l()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,wrapperEl:n,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=l()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||l()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,E(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,m,h;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);h=Math.floor(a/i),m=a-h*i+s*o,u=m+h*t/c,r.style.order=u}else"column"===p?(m=Math.floor(e/c),h=e-m*c,(m>a||m===a&&h===c-1)&&(h+=1,h>=c&&(h=0,m+=1))):(h=Math.floor(e/s),m=e-h*s);r.style[l("margin-top")]=0!==h?d&&`${d}px`:""},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.wrapperEl.style[a("width")]=`${i.virtualSize+r}px`,n){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),oe({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=g("div","swiper-slide-shadow-"+(s?"left":"top")),e.append(a)),i||(i=g("div","swiper-slide-shadow-"+(s?"right":"bottom")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};ne({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.slidesEl.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),t.slidesEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=g("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*s+90*d,l&&(h=90*-s-90*d)),t.style.transform=v,c.slideShadows&&i(t,d,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`}const f=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${f}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${f}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");i||(i=de(0,e,t.isHorizontal()?"left":"top")),r||(r=de(0,e,t.isHorizontal()?"right":"bottom")),i&&(i.style.opacity=Math.max(-s,0)),r&&(r.style.opacity=Math.max(s,0))};ne({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),oe({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect;t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),ne({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s&&(s.style.opacity=-p>0?-p:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;ne({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,t)=>{m[t]=f.rotate[t]*Math.abs(d*n)})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=de(0,a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=le(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=b)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),oe({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),ne({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||y){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,m=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=m;m=u,u=e}const E=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),x=`\n translate3d(${u}, ${m}, ${h}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${E})\n `;if(a.slideShadows){let e=o.querySelector(".swiper-slide-shadow");e||(e=de(0,o)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o.style.zIndex=-Math.abs(Math.round(d))+e.length;le(0,o).style.transform=x}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),oe({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return Q.use(ce),Q})); \ No newline at end of file diff --git a/templates/assets/lib/view-image.min.js b/templates/assets/lib/view-image.min.js new file mode 100644 index 00000000..167d5405 --- /dev/null +++ b/templates/assets/lib/view-image.min.js @@ -0,0 +1,13 @@ +/** + * ViewImage.min.js 2.0.2 + * MIT License - http://www.opensource.org/licenses/mit-license.php + * https://tokinx.github.io/ViewImage/ + */ + var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(b){return b.raw=b};$jscomp.createTemplateTagFirstArgWithRaw=function(b,a){b.raw=a;return b};$jscomp.arrayIteratorImpl=function(b){var a=0;return function(){return a\n \n
\n
\n
\n
\n
\n
\n
\n '+ + (c+1)+"/"+a.length+'\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n ', + "text/html").body.firstChild,g=function(f){var h={Escape:"close",ArrowLeft:"tools__flip-prev",ArrowRight:"tools__flip-next"};h[f.key]&&e.querySelector(".view-image-"+h[f.key]).click()},l=function(f){var h=new Image,k=e.querySelector(".view-image-lead");k.className="view-image-lead view-image-lead__out";setTimeout(function(){k.innerHTML="";h.onload=function(){setTimeout(function(){k.innerHTML='ViewImage';k.className="view-image-lead view-image-lead__in"},100)}; + h.src=f},300)};document.body.appendChild(e);l(d);window.addEventListener("keydown",g);e.onclick=function(f){f.target.closest(".view-image-close")?(window.removeEventListener("keydown",g),e.onclick=null,e.classList.add("view-image__out"),setTimeout(function(){return e.remove()},290)):f.target.closest(".view-image-tools__flip")&&(c=f.target.closest(".view-image-tools__flip-prev")?0===c?a.length-1:c-1:c===a.length-1?0:c+1,l(a[c]),e.querySelector(".view-image-index").innerHTML=c+1)}}}})(); + \ No newline at end of file diff --git a/templates/assets/lib/waterfall.min.js b/templates/assets/lib/waterfall.min.js new file mode 100644 index 00000000..07aa7ab6 --- /dev/null +++ b/templates/assets/lib/waterfall.min.js @@ -0,0 +1 @@ +function waterfall(a){function b(a,b){var c=window.getComputedStyle(b);return parseFloat(c["margin"+a])||0}function c(a){return a+"px"}function d(a){return parseFloat(a.style.top)}function e(a){return parseFloat(a.style.left)}function f(a){return a.clientWidth}function g(a){return a.clientHeight}function h(a){return d(a)+g(a)+b("Bottom",a)}function i(a){return e(a)+f(a)+b("Right",a)}function j(a){a=a.sort(function(a,b){return h(a)===h(b)?e(b)-e(a):h(b)-h(a)})}function k(b){f(a)!=t&&(b.target.removeEventListener(b.type,arguments.callee),waterfall(a))}"string"==typeof a&&(a=document.querySelector(a));var l=[].map.call(a.children,function(a){return a.style.position="absolute",a});a.style.position="relative";var m=[];l.length&&(l[0].style.top="0px",l[0].style.left=c(b("Left",l[0])),m.push(l[0]));for(var n=1;nr?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,o,e){return n.index=e,t+r.call(n,o)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r,o=1e3;function e(t,n,o){return(t<<2*r)+(n<f/2){for(e=n.copy(),i=n.copy(),u=(r=a-n[s])<=(o=n[h]-a)?Math.min(n[h]-1,~~(a+o/2)):Math.max(n[s],~~(a-1-r/2));!v[u];)u++;for(c=l[u];!c&&v[u-1];)c=l[--u];return e[h]=u,i[s]=e[h]+1,[e,i]}}(u==o?"r":u==i?"g":"b")}}return u.prototype={volume:function(t){return this._volume&&!t||(this._volume=(this.r2-this.r1+1)*(this.g2-this.g1+1)*(this.b2-this.b1+1)),this._volume},count:function(t){var r=this.histo;if(!this._count_set||t){var n,o,i,u=0;for(n=this.r1;n<=this.r2;n++)for(o=this.g1;o<=this.g2;o++)for(i=this.b1;i<=this.b2;i++)u+=r[e(n,o,i)]||0;this._count=u,this._count_set=!0}return this._count},copy:function(){return new u(this.r1,this.r2,this.g1,this.g2,this.b1,this.b2,this.histo)},avg:function(t){var n=this.histo;if(!this._avg||t){var o,i,u,a,s=0,h=1<<8-r,c=0,f=0,v=0;for(i=this.r1;i<=this.r2;i++)for(u=this.g1;u<=this.g2;u++)for(a=this.b1;a<=this.b2;a++)s+=o=n[e(i,u,a)]||0,c+=o*(i+.5)*h,f+=o*(u+.5)*h,v+=o*(a+.5)*h;this._avg=s?[~~(c/s),~~(f/s),~~(v/s)]:[~~(h*(this.r1+this.r2+1)/2),~~(h*(this.g1+this.g2+1)/2),~~(h*(this.b1+this.b2+1)/2)]}return this._avg},contains:function(t){var r=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,r>=this.r1&&r<=this.r2&&gval>=this.g1&&gval<=this.g2&&bval>=this.b1&&bval<=this.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&e[1]>251&&e[2]>251&&(r[o].color=[255,255,255])}},{quantize:function(h,c){if(!h.length||c<2||c>256)return!1;var f=function(t){var o,i=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),i[o]=(i[o]||0)+1}),i}(h);f.forEach(function(){});var v=function(t,r){var o,e,i,a=1e6,s=0,h=1e6,c=0,f=1e6,v=0;return t.forEach(function(t){(o=t[0]>>n)s&&(s=o),(e=t[1]>>n)c&&(c=e),(i=t[2]>>n)v&&(v=i)}),new u(a,s,h,c,f,v,r)}(h,f),l=new i(function(r,n){return t.naturalOrder(r.count(),n.count())});function g(t,r){for(var n,e=t.size(),i=0;i=r)return;if(i++>o)return;if((n=t.pop()).count()){var u=s(f,n),a=u[0],h=u[1];if(!a)return;t.push(a),h&&(t.push(h),e++)}else t.push(n),i++}}l.push(v),g(l,.75*c);for(var p=new i(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});l.size();)p.push(l.pop());g(p,c);for(var d=new a;p.size();)d.push(p.pop());return d}}}().quantize,n=function(t){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};n.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var o=function(){};return o.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},o.prototype.getPalette=function(t,o,e){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:o,quality:e}),u=new n(t),a=function(t,r,n){for(var o=t,e=[],i=0,u=void 0,a=void 0,s=void 0,h=void 0,c=void 0;i=125)&&(a>250&&s>250&&h>250||e.push([a,s,h]));return e}(u.getImageData().data,u.width*u.height,i.quality),s=r(a,i.colorCount);return s?s.palette():null},o.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement("img");e.addEventListener("load",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},o.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="arraybuffer",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o=r-e&&t<=r+e}function a(t,r,e){for(var o={},i=e.ignoredColor,a=e.step,s=[0,0,0,0,0],u=0;ua?(e=i/a,s=100,u=Math.round(s/e)):(e=a/i,u=100,s=Math.round(u/e)),(s>i||u>a||s<10||u<10)&&(s=i,u=a)),{srcLeft:n,srcTop:o,srcWidth:i,srcHeight:a,destWidth:s,destHeight:u}}(d(t),r);if(!(n.srcWidth&&n.srcHeight&&n.destWidth&&n.destHeight))return p('incorrect sizes for resource "'.concat(f(t),'"'),r.silent),this.prepareResult(e);if(this.canvas||(this.canvas=g?new OffscreenCanvas(1,1):document.createElement("canvas")),!this.ctx&&(this.ctx=this.canvas.getContext&&this.canvas.getContext("2d"),!this.ctx))return p("Canvas Context 2D is not supported in this browser",r.silent),this.prepareResult(e);this.canvas.width=n.destWidth,this.canvas.height=n.destHeight;var o=e;try{this.ctx.clearRect(0,0,n.destWidth,n.destHeight),this.ctx.drawImage(t,n.srcLeft,n.srcTop,n.srcWidth,n.srcHeight,0,0,n.destWidth,n.destHeight);var i=this.ctx.getImageData(0,0,n.destWidth,n.destHeight).data;o=this.getColorFromArray4(i,r)}catch(e){p("security error (CORS) for resource ".concat(f(t),".\nDetails: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image"),r.silent,e)}return this.prepareResult(o)},t.prototype.getColorFromArray4=function(t,r){r=r||{};var n=t.length,o=c(r);if(n<4)return o;var i,h=n-n%4,d=4*(r.step||1);switch(r.algorithm||"sqrt"){case"simple":i=s;break;case"sqrt":i=u;break;case"dominant":i=a;break;default:throw m("".concat(r.algorithm," is unknown algorithm"))}return i(t,h,{defaultColor:o,ignoredColor:e(r.ignoredColor),step:d})},t.prototype.prepareResult=function(t){var e,n=t.slice(0,3),o=[t[0],t[1],t[2],t[3]/255],i=(299*(e=t)[0]+587*e[1]+114*e[2])/1e3<128;return{value:[t[0],t[1],t[2],t[3]],rgb:"rgb("+n.join(",")+")",rgba:"rgba("+o.join(",")+")",hex:r(n),hexa:r(t),isDark:i,isLight:!i}},t.prototype.destroy=function(){this.canvas&&(this.canvas.width=1,this.canvas.height=1,this.canvas=null),this.ctx=null},t.prototype.bindImageEvents=function(t,r){var e=this;return new Promise((function(n,o){var i=function(){u();var i=e.getColor(t,r);i.error?o(i.error):n(i)},a=function(){u(),o(m('Error loading image "'.concat(t.src,'".')))},s=function(){u(),o(m('Image "'.concat(t.src,'" loading aborted')))},u=function(){t.removeEventListener("load",i),t.removeEventListener("error",a),t.removeEventListener("abort",s)};t.addEventListener("load",i),t.addEventListener("error",a),t.addEventListener("abort",s)}))},t}();("undefined"!=typeof window?window:self).FastAverageColor=C}(); \ No newline at end of file diff --git a/templates/assets/libs/iconfont/iconfont.css b/templates/assets/libs/iconfont/iconfont.css deleted file mode 100644 index c0938648..00000000 --- a/templates/assets/libs/iconfont/iconfont.css +++ /dev/null @@ -1,479 +0,0 @@ -@font-face { - font-family: "iconfont"; /* Project id 3736806 */ - src: url('iconfont.woff2?t=1675495619599') format('woff2'), - url('iconfont.woff?t=1675495619599') format('woff'), - url('iconfont.ttf?t=1675495619599') format('truetype'); -} - -.iconfont { - font-family: "iconfont" !important; - font-size: 16px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-arrows-alt-h:before { - content: "\ef28"; -} - -.icon-plus-circle:before { - content: "\f082"; -} - -.icon-csdn1:before { - content: "\e608"; -} - -.icon-CN_cnblogs:before { - content: "\e64d"; -} - -.icon-leetcode:before { - content: "\ebf2"; -} - -.icon-juejin:before { - content: "\e606"; -} - -.icon-weibiaoti-1:before { - content: "\e607"; -} - -.icon-csdn:before { - content: "\e60a"; -} - -.icon-bokeyuan:before { - content: "\e623"; -} - -.icon-yuque:before { - content: "\e880"; -} - -.icon-jinritoutiao:before { - content: "\e68d"; -} - -.icon-weixingongzhonghao:before { - content: "\e605"; -} - -.icon-steam-line:before { - content: "\e75f"; -} - -.icon-steam-fill:before { - content: "\e763"; -} - -.icon-slack-line:before { - content: "\e75c"; -} - -.icon-linkedin-box-line:before { - content: "\e750"; -} - -.icon-telegram-line:before { - content: "\e761"; -} - -.icon-douyin:before { - content: "\e673"; -} - -.icon-wechat2:before { - content: "\e632"; -} - -.icon-phone-line:before { - content: "\e6ac"; -} - -.icon-alipay-line:before { - content: "\e73c"; -} - -.icon-app-store-line:before { - content: "\e73e"; -} - -.icon-baidu-line:before { - content: "\e73f"; -} - -.icon-bilibili-line:before { - content: "\e740"; -} - -.icon-dingding-line:before { - content: "\e743"; -} - -.icon-douban-line:before { - content: "\e744"; -} - -.icon-disqus-line:before { - content: "\e745"; -} - -.icon-discord-line:before { - content: "\e746"; -} - -.icon-dribbble-line:before { - content: "\e747"; -} - -.icon-drive-line:before { - content: "\e748"; -} - -.icon-facebook-box-line:before { - content: "\e749"; -} - -.icon-dropbox-line:before { - content: "\e74a"; -} - -.icon-evernote-line:before { - content: "\e74b"; -} - -.icon-gitlab-line:before { - content: "\e74d"; -} - -.icon-google-line:before { - content: "\e74e"; -} - -.icon-google-play-line:before { - content: "\e74f"; -} - -.icon-instagram-line:before { - content: "\e751"; -} - -.icon-line-fill:before { - content: "\e752"; -} - -.icon-paypal-line:before { - content: "\e757"; -} - -.icon-qq-line:before { - content: "\e759"; -} - -.icon-reddit-line:before { - content: "\e75a"; -} - -.icon-spotify-line:before { - content: "\e75d"; -} - -.icon-stack-overflow-line:before { - content: "\e75e"; -} - -.icon-snapchat-line:before { - content: "\e75b"; -} - -.icon-taobao-line:before { - content: "\e760"; -} - -.icon-twitter-line:before { - content: "\e762"; -} - -.icon-wechat-2-line:before { - content: "\e766"; -} - -.icon-wechat-fill:before { - content: "\e768"; -} - -.icon-wechat-line:before { - content: "\e769"; -} - -.icon-weibo-line:before { - content: "\e76a"; -} - -.icon-whatsapp-line:before { - content: "\e76b"; -} - -.icon-youtube-line:before { - content: "\e76c"; -} - -.icon-zhihu-line:before { - content: "\e76d"; -} - -.icon-wechat-2-fill:before { - content: "\e76e"; -} - -.icon-by:before { - content: "\e601"; -} - -.icon-cc:before { - content: "\e602"; -} - -.icon-nc:before { - content: "\e603"; -} - -.icon-nd:before { - content: "\e604"; -} - -.icon-HAO:before { - content: "\e60e"; -} - -.icon-logo-hao-pro:before { - content: "\f290"; -} - -.icon-logo-hao:before { - content: "\e609"; -} - -.icon-logo-moment:before { - content: "\e6af"; -} - -.icon-indent:before { - content: "\f027"; -} - -.icon-bars:before { - content: "\ef34"; -} - -.icon-mail-line:before { - content: "\e668"; -} - -.icon-github-line:before { - content: "\e74c"; -} - -.icon-moon:before { - content: "\f057"; -} - -.icon-closed-captioning:before { - content: "\ef76"; -} - -.icon-hand-holding:before { - content: "\f000"; -} - -.icon-dice:before { - content: "\ef94"; -} - -.icon-list-ul:before { - content: "\f039"; -} - -.icon-baidu:before { - content: "\e6b6"; -} - -.icon-search:before { - content: "\f0a8"; -} - -.icon-download:before { - content: "\efa5"; -} - -.icon-image:before { - content: "\f024"; -} - -.icon-window-restore:before { - content: "\f159"; -} - -.icon-comment-dots1:before { - content: "\f288"; -} - -.icon-copy:before { - content: "\ef86"; -} - -.icon-bus:before { - content: "\ef58"; -} - -.icon-hotjar:before { - content: "\f1cf"; -} - -.icon-weibo:before { - content: "\f261"; -} - -.icon-robot:before { - content: "\f09a"; -} - -.icon-paste:before { - content: "\f068"; -} - -.icon-link:before { - content: "\f037"; -} - -.icon-qrcode:before { - content: "\f08d"; -} - -.icon-calendar-alt:before { - content: "\ef5a"; -} - -.icon-clock:before { - content: "\ef75"; -} - -.icon-file-word:before { - content: "\efd1"; -} - -.icon-chevron-down:before { - content: "\ef6d"; -} - -.icon-times-circle:before { - content: "\f10a"; -} - -.icon-grip-vertical:before { - content: "\efff"; -} - -.icon-book:before { - content: "\ef46"; -} - -.icon-burn:before { - content: "\ef57"; -} - -.icon-dove:before { - content: "\efa4"; -} - -.icon-arrow-circle-right:before { - content: "\ef23"; -} - -.icon-comment-dots:before { - content: "\ef7e"; -} - -.icon-folder-open:before { - content: "\efdc"; -} - -.icon-file-alt:before { - content: "\efc1"; -} - -.icon-bullseye:before { - content: "\ef56"; -} - -.icon-sliders:before { - content: "\f0bf"; -} - -.icon-tags:before { - content: "\f0f3"; -} - -.icon-comment-alt:before { - content: "\f287"; -} - -.icon-eye:before { - content: "\f28f"; -} - -.icon-arrow-left:before { - content: "\ef26"; -} - -.icon-arrow-right:before { - content: "\ef27"; -} - -.icon-arrow-up:before { - content: "\ef2a"; -} - -.icon-chevron-left:before { - content: "\ef6e"; -} - -.icon-chevron-right:before { - content: "\ef6f"; -} - -.icon-redo-alt:before { - content: "\f094"; -} - -.icon-listol:before { - content: "\e767"; -} - -.icon-arrowup:before { - content: "\e64c"; -} - -.icon-icon-sidebar-scxmtj:before { - content: "\e643"; -} - -.icon-train-public-transport:before { - content: "\e600"; -} - -.icon-a-theconsole-fill:before { - content: "\ea32"; -} - -.icon-shuffle:before { - content: "\e67e"; -} - -.icon-md-train:before { - content: "\e77d"; -} - diff --git a/templates/assets/libs/iconfont/iconfont.js b/templates/assets/libs/iconfont/iconfont.js deleted file mode 100644 index 4fbfe465..00000000 --- a/templates/assets/libs/iconfont/iconfont.js +++ /dev/null @@ -1 +0,0 @@ -window._iconfont_svg_string_3736806='',function(a){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var o,h,i,z,m,t=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}o=function(){var c,l=document.createElement("div");l.innerHTML=a._iconfont_svg_string_3736806,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?t(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),o()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=o,z=a.document,m=!1,v(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,s())})}function s(){m||(m=!0,i())}function v(){try{z.documentElement.doScroll("left")}catch(c){return void setTimeout(v,50)}s()}}(window); \ No newline at end of file diff --git a/templates/assets/libs/iconfont/iconfont.json b/templates/assets/libs/iconfont/iconfont.json deleted file mode 100644 index f9ce275b..00000000 --- a/templates/assets/libs/iconfont/iconfont.json +++ /dev/null @@ -1,821 +0,0 @@ -{ - "id": "3736806", - "name": "hao", - "font_family": "iconfont", - "css_prefix_text": "icon-", - "description": "", - "glyphs": [ - { - "icon_id": "5633818", - "name": "arrows-alt-h", - "font_class": "arrows-alt-h", - "unicode": "ef28", - "unicode_decimal": 61224 - }, - { - "icon_id": "5634298", - "name": "plus-circle", - "font_class": "plus-circle", - "unicode": "f082", - "unicode_decimal": 61570 - }, - { - "icon_id": "3506983", - "name": "csdn", - "font_class": "csdn1", - "unicode": "e608", - "unicode_decimal": 58888 - }, - { - "icon_id": "2041684", - "name": "CN_cnblogs", - "font_class": "CN_cnblogs", - "unicode": "e64d", - "unicode_decimal": 58957 - }, - { - "icon_id": "15378535", - "name": "leetcode", - "font_class": "leetcode", - "unicode": "ebf2", - "unicode_decimal": 60402 - }, - { - "icon_id": "18422914", - "name": "juejin", - "font_class": "juejin", - "unicode": "e606", - "unicode_decimal": 58886 - }, - { - "icon_id": "18458782", - "name": "infoQ", - "font_class": "weibiaoti-1", - "unicode": "e607", - "unicode_decimal": 58887 - }, - { - "icon_id": "829865", - "name": "csdn", - "font_class": "csdn", - "unicode": "e60a", - "unicode_decimal": 58890 - }, - { - "icon_id": "833511", - "name": "博客园", - "font_class": "bokeyuan", - "unicode": "e623", - "unicode_decimal": 58915 - }, - { - "icon_id": "4936975", - "name": "yuque", - "font_class": "yuque", - "unicode": "e880", - "unicode_decimal": 59520 - }, - { - "icon_id": "13743995", - "name": "jinritoutiao", - "font_class": "jinritoutiao", - "unicode": "e68d", - "unicode_decimal": 59021 - }, - { - "icon_id": "28650243", - "name": "微信公众号", - "font_class": "weixingongzhonghao", - "unicode": "e605", - "unicode_decimal": 58885 - }, - { - "icon_id": "20818171", - "name": "steam-line", - "font_class": "steam-line", - "unicode": "e75f", - "unicode_decimal": 59231 - }, - { - "icon_id": "20818172", - "name": "steam-fill", - "font_class": "steam-fill", - "unicode": "e763", - "unicode_decimal": 59235 - }, - { - "icon_id": "20818156", - "name": "slack-line", - "font_class": "slack-line", - "unicode": "e75c", - "unicode_decimal": 59228 - }, - { - "icon_id": "20818112", - "name": "linkedin-box-line", - "font_class": "linkedin-box-line", - "unicode": "e750", - "unicode_decimal": 59216 - }, - { - "icon_id": "20818178", - "name": "telegram-line", - "font_class": "telegram-line", - "unicode": "e761", - "unicode_decimal": 59233 - }, - { - "icon_id": "22273028", - "name": "douyin", - "font_class": "douyin", - "unicode": "e673", - "unicode_decimal": 58995 - }, - { - "icon_id": "14629289", - "name": "wechat2", - "font_class": "wechat2", - "unicode": "e632", - "unicode_decimal": 58930 - }, - { - "icon_id": "20817466", - "name": "phone-line", - "font_class": "phone-line", - "unicode": "e6ac", - "unicode_decimal": 59052 - }, - { - "icon_id": "20818029", - "name": "alipay-line", - "font_class": "alipay-line", - "unicode": "e73c", - "unicode_decimal": 59196 - }, - { - "icon_id": "20818039", - "name": "app-store-line", - "font_class": "app-store-line", - "unicode": "e73e", - "unicode_decimal": 59198 - }, - { - "icon_id": "20818044", - "name": "baidu-line", - "font_class": "baidu-line", - "unicode": "e73f", - "unicode_decimal": 59199 - }, - { - "icon_id": "20818045", - "name": "bilibili-line", - "font_class": "bilibili-line", - "unicode": "e740", - "unicode_decimal": 59200 - }, - { - "icon_id": "20818057", - "name": "dingding-line", - "font_class": "dingding-line", - "unicode": "e743", - "unicode_decimal": 59203 - }, - { - "icon_id": "20818060", - "name": "douban-line", - "font_class": "douban-line", - "unicode": "e744", - "unicode_decimal": 59204 - }, - { - "icon_id": "20818061", - "name": "disqus-line", - "font_class": "disqus-line", - "unicode": "e745", - "unicode_decimal": 59205 - }, - { - "icon_id": "20818062", - "name": "discord-line", - "font_class": "discord-line", - "unicode": "e746", - "unicode_decimal": 59206 - }, - { - "icon_id": "20818064", - "name": "dribbble-line", - "font_class": "dribbble-line", - "unicode": "e747", - "unicode_decimal": 59207 - }, - { - "icon_id": "20818065", - "name": "drive-line", - "font_class": "drive-line", - "unicode": "e748", - "unicode_decimal": 59208 - }, - { - "icon_id": "20818068", - "name": "facebook-box-line", - "font_class": "facebook-box-line", - "unicode": "e749", - "unicode_decimal": 59209 - }, - { - "icon_id": "20818074", - "name": "dropbox-line", - "font_class": "dropbox-line", - "unicode": "e74a", - "unicode_decimal": 59210 - }, - { - "icon_id": "20818085", - "name": "evernote-line", - "font_class": "evernote-line", - "unicode": "e74b", - "unicode_decimal": 59211 - }, - { - "icon_id": "20818088", - "name": "gitlab-line", - "font_class": "gitlab-line", - "unicode": "e74d", - "unicode_decimal": 59213 - }, - { - "icon_id": "20818092", - "name": "google-line", - "font_class": "google-line", - "unicode": "e74e", - "unicode_decimal": 59214 - }, - { - "icon_id": "20818094", - "name": "google-play-line", - "font_class": "google-play-line", - "unicode": "e74f", - "unicode_decimal": 59215 - }, - { - "icon_id": "20818106", - "name": "instagram-line", - "font_class": "instagram-line", - "unicode": "e751", - "unicode_decimal": 59217 - }, - { - "icon_id": "20818121", - "name": "line-fill", - "font_class": "line-fill", - "unicode": "e752", - "unicode_decimal": 59218 - }, - { - "icon_id": "20818138", - "name": "paypal-line", - "font_class": "paypal-line", - "unicode": "e757", - "unicode_decimal": 59223 - }, - { - "icon_id": "20818146", - "name": "qq-line", - "font_class": "qq-line", - "unicode": "e759", - "unicode_decimal": 59225 - }, - { - "icon_id": "20818153", - "name": "reddit-line", - "font_class": "reddit-line", - "unicode": "e75a", - "unicode_decimal": 59226 - }, - { - "icon_id": "20818162", - "name": "spotify-line", - "font_class": "spotify-line", - "unicode": "e75d", - "unicode_decimal": 59229 - }, - { - "icon_id": "20818166", - "name": "stack-overflow-line", - "font_class": "stack-overflow-line", - "unicode": "e75e", - "unicode_decimal": 59230 - }, - { - "icon_id": "20818168", - "name": "snapchat-line", - "font_class": "snapchat-line", - "unicode": "e75b", - "unicode_decimal": 59227 - }, - { - "icon_id": "20818175", - "name": "taobao-line", - "font_class": "taobao-line", - "unicode": "e760", - "unicode_decimal": 59232 - }, - { - "icon_id": "20818181", - "name": "twitter-line", - "font_class": "twitter-line", - "unicode": "e762", - "unicode_decimal": 59234 - }, - { - "icon_id": "20818193", - "name": "wechat-2-line", - "font_class": "wechat-2-line", - "unicode": "e766", - "unicode_decimal": 59238 - }, - { - "icon_id": "20818195", - "name": "wechat-fill", - "font_class": "wechat-fill", - "unicode": "e768", - "unicode_decimal": 59240 - }, - { - "icon_id": "20818198", - "name": "wechat-line", - "font_class": "wechat-line", - "unicode": "e769", - "unicode_decimal": 59241 - }, - { - "icon_id": "20818200", - "name": "weibo-line", - "font_class": "weibo-line", - "unicode": "e76a", - "unicode_decimal": 59242 - }, - { - "icon_id": "20818206", - "name": "whatsapp-line", - "font_class": "whatsapp-line", - "unicode": "e76b", - "unicode_decimal": 59243 - }, - { - "icon_id": "20818213", - "name": "youtube-line", - "font_class": "youtube-line", - "unicode": "e76c", - "unicode_decimal": 59244 - }, - { - "icon_id": "20818220", - "name": "zhihu-line", - "font_class": "zhihu-line", - "unicode": "e76d", - "unicode_decimal": 59245 - }, - { - "icon_id": "20818226", - "name": "wechat-2-fill", - "font_class": "wechat-2-fill", - "unicode": "e76e", - "unicode_decimal": 59246 - }, - { - "icon_id": "12095053", - "name": "by", - "font_class": "by", - "unicode": "e601", - "unicode_decimal": 58881 - }, - { - "icon_id": "12095056", - "name": "cc", - "font_class": "cc", - "unicode": "e602", - "unicode_decimal": 58882 - }, - { - "icon_id": "12095063", - "name": "nc", - "font_class": "nc", - "unicode": "e603", - "unicode_decimal": 58883 - }, - { - "icon_id": "12095066", - "name": "nd", - "font_class": "nd", - "unicode": "e604", - "unicode_decimal": 58884 - }, - { - "icon_id": "32816778", - "name": "HAO", - "font_class": "HAO", - "unicode": "e60e", - "unicode_decimal": 58894 - }, - { - "icon_id": "32796142", - "name": "logo-hao-copy", - "font_class": "logo-hao-pro", - "unicode": "f290", - "unicode_decimal": 62096 - }, - { - "icon_id": "32787589", - "name": "logo-hao", - "font_class": "logo-hao", - "unicode": "e609", - "unicode_decimal": 58889 - }, - { - "icon_id": "16440935", - "name": "logo-moment", - "font_class": "logo-moment", - "unicode": "e6af", - "unicode_decimal": 59055 - }, - { - "icon_id": "5634161", - "name": "indent", - "font_class": "indent", - "unicode": "f027", - "unicode_decimal": 61479 - }, - { - "icon_id": "5633834", - "name": "bars", - "font_class": "bars", - "unicode": "ef34", - "unicode_decimal": 61236 - }, - { - "icon_id": "20817029", - "name": "mail-line", - "font_class": "mail-line", - "unicode": "e668", - "unicode_decimal": 58984 - }, - { - "icon_id": "20818096", - "name": "github-line", - "font_class": "github-line", - "unicode": "e74c", - "unicode_decimal": 59212 - }, - { - "icon_id": "5634247", - "name": "moon", - "font_class": "moon", - "unicode": "f057", - "unicode_decimal": 61527 - }, - { - "icon_id": "5633944", - "name": "closed-captioning", - "font_class": "closed-captioning", - "unicode": "ef76", - "unicode_decimal": 61302 - }, - { - "icon_id": "5634114", - "name": "hand-holding", - "font_class": "hand-holding", - "unicode": "f000", - "unicode_decimal": 61440 - }, - { - "icon_id": "5633983", - "name": "dice", - "font_class": "dice", - "unicode": "ef94", - "unicode_decimal": 61332 - }, - { - "icon_id": "5634194", - "name": "list-ul", - "font_class": "list-ul", - "unicode": "f039", - "unicode_decimal": 61497 - }, - { - "icon_id": "386278", - "name": "baidu", - "font_class": "baidu", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "5634346", - "name": "search", - "font_class": "search", - "unicode": "f0a8", - "unicode_decimal": 61608 - }, - { - "icon_id": "5634003", - "name": "download", - "font_class": "download", - "unicode": "efa5", - "unicode_decimal": 61349 - }, - { - "icon_id": "5634158", - "name": "image", - "font_class": "image", - "unicode": "f024", - "unicode_decimal": 61476 - }, - { - "icon_id": "5634542", - "name": "window-restore", - "font_class": "window-restore", - "unicode": "f159", - "unicode_decimal": 61785 - }, - { - "icon_id": "5634960", - "name": "comment-dots", - "font_class": "comment-dots1", - "unicode": "f288", - "unicode_decimal": 62088 - }, - { - "icon_id": "5633967", - "name": "copy", - "font_class": "copy", - "unicode": "ef86", - "unicode_decimal": 61318 - }, - { - "icon_id": "5633878", - "name": "bus", - "font_class": "bus", - "unicode": "ef58", - "unicode_decimal": 61272 - }, - { - "icon_id": "5634718", - "name": "hotjar", - "font_class": "hotjar", - "unicode": "f1cf", - "unicode_decimal": 61903 - }, - { - "icon_id": "5634903", - "name": "weibo", - "font_class": "weibo", - "unicode": "f261", - "unicode_decimal": 62049 - }, - { - "icon_id": "5634330", - "name": "robot", - "font_class": "robot", - "unicode": "f09a", - "unicode_decimal": 61594 - }, - { - "icon_id": "5634271", - "name": "paste", - "font_class": "paste", - "unicode": "f068", - "unicode_decimal": 61544 - }, - { - "icon_id": "5634192", - "name": "link", - "font_class": "link", - "unicode": "f037", - "unicode_decimal": 61495 - }, - { - "icon_id": "5634313", - "name": "qrcode", - "font_class": "qrcode", - "unicode": "f08d", - "unicode_decimal": 61581 - }, - { - "icon_id": "5633882", - "name": "calendar-alt", - "font_class": "calendar-alt", - "unicode": "ef5a", - "unicode_decimal": 61274 - }, - { - "icon_id": "5633943", - "name": "clock", - "font_class": "clock", - "unicode": "ef75", - "unicode_decimal": 61301 - }, - { - "icon_id": "5634058", - "name": "file-word", - "font_class": "file-word", - "unicode": "efd1", - "unicode_decimal": 61393 - }, - { - "icon_id": "5633931", - "name": "chevron-down", - "font_class": "chevron-down", - "unicode": "ef6d", - "unicode_decimal": 61293 - }, - { - "icon_id": "5634458", - "name": "times-circle", - "font_class": "times-circle", - "unicode": "f10a", - "unicode_decimal": 61706 - }, - { - "icon_id": "5634113", - "name": "grip-vertical", - "font_class": "grip-vertical", - "unicode": "efff", - "unicode_decimal": 61439 - }, - { - "icon_id": "5633858", - "name": "book", - "font_class": "book", - "unicode": "ef46", - "unicode_decimal": 61254 - }, - { - "icon_id": "5633877", - "name": "burn", - "font_class": "burn", - "unicode": "ef57", - "unicode_decimal": 61271 - }, - { - "icon_id": "5634002", - "name": "dove", - "font_class": "dove", - "unicode": "efa4", - "unicode_decimal": 61348 - }, - { - "icon_id": "5633812", - "name": "arrow-circle-right", - "font_class": "arrow-circle-right", - "unicode": "ef23", - "unicode_decimal": 61219 - }, - { - "icon_id": "5633958", - "name": "comment-dots", - "font_class": "comment-dots", - "unicode": "ef7e", - "unicode_decimal": 61310 - }, - { - "icon_id": "5634073", - "name": "folder-open", - "font_class": "folder-open", - "unicode": "efdc", - "unicode_decimal": 61404 - }, - { - "icon_id": "5634038", - "name": "file-alt", - "font_class": "file-alt", - "unicode": "efc1", - "unicode_decimal": 61377 - }, - { - "icon_id": "5633876", - "name": "bullseye", - "font_class": "bullseye", - "unicode": "ef56", - "unicode_decimal": 61270 - }, - { - "icon_id": "5634373", - "name": "sliders-h", - "font_class": "sliders", - "unicode": "f0bf", - "unicode_decimal": 61631 - }, - { - "icon_id": "5634433", - "name": "tags", - "font_class": "tags", - "unicode": "f0f3", - "unicode_decimal": 61683 - }, - { - "icon_id": "5634959", - "name": "comment-alt", - "font_class": "comment-alt", - "unicode": "f287", - "unicode_decimal": 62087 - }, - { - "icon_id": "5634971", - "name": "eye", - "font_class": "eye", - "unicode": "f28f", - "unicode_decimal": 62095 - }, - { - "icon_id": "5633815", - "name": "arrow-left", - "font_class": "arrow-left", - "unicode": "ef26", - "unicode_decimal": 61222 - }, - { - "icon_id": "5633816", - "name": "arrow-right", - "font_class": "arrow-right", - "unicode": "ef27", - "unicode_decimal": 61223 - }, - { - "icon_id": "5633820", - "name": "arrow-up", - "font_class": "arrow-up", - "unicode": "ef2a", - "unicode_decimal": 61226 - }, - { - "icon_id": "5633932", - "name": "chevron-left", - "font_class": "chevron-left", - "unicode": "ef6e", - "unicode_decimal": 61294 - }, - { - "icon_id": "5633933", - "name": "chevron-right", - "font_class": "chevron-right", - "unicode": "ef6f", - "unicode_decimal": 61295 - }, - { - "icon_id": "5634323", - "name": "redo-alt", - "font_class": "redo-alt", - "unicode": "f094", - "unicode_decimal": 61588 - }, - { - "icon_id": "836718", - "name": "list-ol", - "font_class": "listol", - "unicode": "e767", - "unicode_decimal": 59239 - }, - { - "icon_id": "433860", - "name": "arrow-up", - "font_class": "arrowup", - "unicode": "e64c", - "unicode_decimal": 58956 - }, - { - "icon_id": "5652805", - "name": "icon-side bar-scxmtj", - "font_class": "icon-sidebar-scxmtj", - "unicode": "e643", - "unicode_decimal": 58947 - }, - { - "icon_id": "21169476", - "name": "train-public-transport", - "font_class": "train-public-transport", - "unicode": "e600", - "unicode_decimal": 58880 - }, - { - "icon_id": "24342573", - "name": "the console-fill", - "font_class": "a-theconsole-fill", - "unicode": "ea32", - "unicode_decimal": 59954 - }, - { - "icon_id": "1251292", - "name": "shuffle", - "font_class": "shuffle", - "unicode": "e67e", - "unicode_decimal": 59006 - }, - { - "icon_id": "11102802", - "name": "md-train", - "font_class": "md-train", - "unicode": "e77d", - "unicode_decimal": 59261 - } - ] -} diff --git a/templates/assets/libs/iconfont/iconfont.ttf b/templates/assets/libs/iconfont/iconfont.ttf deleted file mode 100644 index e1ac5a23fdddc7894c497d4943c7f2e2f3757d3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36752 zcmd?ScbpwpeK$O3dcS4v+_}B(ExUWS-MW2OyV7da>#k%=mL=JiB}?v-aRDQnZm=z| zO%E|G0V~1g6N)JzA|xb$d29m)lJF3RBwF6sc_f@r0^Y0lduDc3Y)E+jdEY-?-91yz zoH=vKum67Mh#?HaXv}ejWBONbo14nKy>KVPkU`{b-?Xi-I{KlxBe;JD?)P4G{l1$X zss7~$8HPK>Fv@+`9=YSdyZ`OOxHnP$j?lqt_Fdf({~U+1&m%PtB18Tje?6|hjMQ=P z`lGl1-Q(weg8E)W`reTnuiE$7KmXo!3}dXv^B1q*cl%A`!{n!U7QubyhJDvxBd`+e&EhyzhRiSeTHF#A2Dbpu2sI!1oP*iJznw9U>^ph`6JxyUz4tG^CPxlkyASnyPYBAi3rb_T8%LsIAf6Kqk2UcCpoI1_Cbiy4EhWimwQ0&stVCe@hP3O*CdjHDj z|IPiW|K{1NzVrV^+2y|Aj5+(g`*j?U#GHHicb7lce&sVv&{F;9e*Vg5zx{r>{&R~w zzIUMv+6s7b?=Q)}xXeY@E0_C7^So;`g*J!6MFj~}@v1lP9FJTI0TrA9xya|)AL9OY zW)klVo>otrr}L+)r>9SEIDPQ+t*7rkegEk{IsN$Q&n=8DOfGC)*s*Zc!VL?r`|0t2 ztG@8knf#gZnXWVSGc#v)p1J(Yjc0B*=fAxERbL)on8uec zTR3phmy1hZp2wH3KXYv9%OCT;eCFKm@#VL?^dSB6|0n+lM*JP;e-ALP{Jo2L0>8gv zzIV~@hm8085%VL^(w{8-{)O>=7{LGW2P(?k%(R$6W{4SPbkGjKTCU0j8HRnLg$QP{aYI%G8)T(_os+Q9#};fVL}{gUlg7<8^?&-ON?Y70f1P zp1F)U%p75MFe{n8%tmI0*~6@5_A@(~eatRq6|;_+V74=>nQ3MlNZ%ZDJ+qZr!(7c= z!(7g+XErlim;=lP=2~VHgpN|s|G)p!=>Q1Fmxkde#WODf4w%!R1T+C6nA6~9Gyyi4 z)1VwQ0ZN$DpdK^O~3$VVZuwm1!iH= zOTY?d0qvv-_`xi!^b#=Oxe= zX5p}xKxvqTBVGc{VHU3U5~vTeKp)Q(0rI;69@)G5! zXE44rfpRftFm^P7hB0R_b~J&SF=sG#G*K>l2IE2#C>(PJ?VyR7#CgU`pnA-ic`t$f zF=sFrG=UN_XLfoCG?6)jxu6NukvW6D&;&ZkoIyWm0>xy`+~_6HPUg%pFM*0OXKwQn z=qYpNZZ9!=aelLxKx3IR4|@sJmO1k=FM;kdXFl#FP+;cFSG@#U%$#}FOQ6cknICxx z^qDzx&P$-w%vm&xCeUn10bT<2X3k=qXaXH)&bGV+iq4z`t)U6DojHqk(*!EdoW=Ok z1bWY$z1K@r9zT1(m%syEk4pqIdVAaQ$%av}F$ zow*N$_8sJ>>~8Lan3H}YA5kYYM!Qqz_2c^gGOETwbH;qkH|6`W|Hpx?fwRFx@Bu4k zJ!btV)DgPLp10p+e?J@wf5*Ag`M1c&q6cGqtR5eY|0;1y;%xFnsw?%y^pOmc*_ioQ zR?R+|>&@MrJKOPCaeeXm(&o~;OJ6U)x%`)%+dEHm<+>i|{-f?+R4%W4sPcb$?(O+{ z?_}?%`tIy|v45uj#ewF)ud7qlzpTDkTVH#s-dn$}{!F8*@j&D2&Hm=2t#a$`)?W=4 z2X_wMH~8hj(?kBDBg5wK)bR5o&5?@vtgPkf~W`RRpgwz7M-9Vd8H#xoMPFTJHo4|DDWcb2;e z6c}Sna*|0TG32C(6Rx(#Nvl~e^^#K23W?psriWZ{jO6K|-W(wfdZ>nzq*e{vEOX87 z%idNjm5Oh>Z1*=WTz<(^pET8*RP#yIyy%j<>6Hb&cNTy6%98F&UR#gzgu4fA1$>jL z+scsJ;+)&cy4zyX5+xB$Y&Ba=w99D~OT~OnLZ&2!op7znG6%2R{XnT)EBg-p?uPR>_HuD{wg9mr+8XQri^&7X|@*3{=E8p>6U-Tc5cwx<&jfJ!( z-K_9@Ix{rBW%lNDmQLfjbLUacw|d!9 zzKA}$1CCBOVLK#w{Vbt-Efm42R0KTG6K*jvbP`d_7JpZV+pkME(&@%{J)N$TH?cw? zlIUc~_;r(#D%mlB(ltA_57bCo)2)o7t1L@6%=DJ|JsonW(-+Sqddd6FOsyp3ca6)- zUryJ@mp*a1B0H(>q^wNduu>qb*x@9~q+Z>=+8A4F_yhljw(oEu8+`R0Wwr6aC^&@Z#Lw`Scgl>1_I@ zKwpmhWv(xWKeU^pjpzOmCmnnp+<}Nb;s9JJ2Im|XHcJC^`f@%rJfCwL-YPU{?*vgA z0OX=8=*R@H5r7~{q=drc*=}CkTPq88%VJMmmnf?;%Zi{i5%_I>(En?Q_vr^G5AQsU_in*;O=fXL?LRO>IEK1$7p<$k5g}5p^@$Hv|63If) zz!TAs_8mWZ@92LBTGUwEm^3gKG9iK@d|B5C|87Yr5}rN5bqd7i%MRa|<^^ITb5()e zv~g%fi;yms@QV)#oRmsCt)MPQN?NycRluZ@j4H6~wG!XM@muP?m;Xr*Ms=C*%oNi+ zml8;X2wSHK_d}j1Uzda#mgn}0`26Bu2K|yCu(u0>(3gxVEc%N2iO7>qQv-moh9CvC zT!4>8(te%e1l3j_+_ODlEdBvOV-+j1N)7q<4WJW5Q3(+%Xv+lK$;;cfZ*1%~IKuN? z`A!?(`UxMjJ6Y~_jx)@{D%&T8^o-9+sy-(aH+_VpvmB2KY8=TA`r04v-gv`wjpr3D z$ntEI6YmkY!CAt!e~A&B;kY?bAw=Pc2MQ$S7Gswv(&LL2`t=k-UvOLjHi9B#)CnBVQxmBL4sg1praVp-367 z0VV({yxLLHsg&zulJ_Cf1Mfqi&f}4w=sAHUj1=N_wMG?sD)t`4C z&@VXQ0_c-e@^~&PZPftTpam5F-D+ql9|=2Bu_Q{RW=pCy@(nlHdAsJNR<-qt%$6^J06M#yA?iN4upd- z-S22QN&XxW!nu5i6M0_bRV%E86oZh?sd*MOkVLy}!{jAdkdk8D46`BA^7T%WzXRe7 zae`l6NnowY zA+pFz1S5-K(1W=^JS?%YPhxo@v5F+KEKagf3h1IB3R|KBxpZH@gDO~A4Bwc$g0gtBm|;D4OFre3Nq|v_#Cs20OyCc$OHFAR8d2ic!;eMGzDoClcgM9)Cf?W7xzX zuW7s}@O1bUftSpXByhSKV+E0u98SdWJD3N;%M#ZJv8*N-g3gN-09%+t1w2R@Mu+Ek zK^6tU(87Y>FGOUpj-b|S7;!Ef=478QEVD8z1XPp}@sAfp-Dj#ws6!AsM6t6|)G^3n zI>v+PXeP?qoXic# zF`ojZ{9D*S|AlD-zI|X7bpkDsEa4l)V&Gl~RHz6lRSTCqOj|}|Ja3*yKHxw2IYqr@ z5*2_(gq@trbSZ-7D4J57ZZy3s`Y!Yae4#2qHqD1X6+!y&5+r~U$SEbhC3>pi35tfD zI&=-_9g+idr!Pa@2$%A?F=B_Ie0UFAdB{yQkW;+fEP5qDPLl-mE>~*Ul(u>$LCZub zRH9s;QYP^7noUShH-cAN#Z&K2v;YB=PCaMc>H8v~RlfKMR1HPCdG566Uf z2I1R%APtfJ0kIb%#Xu8Xa%_4ClYdYgRdtkWw2Jwy%qMN0Q09Q^@g9(o9qLLTT zx)9Y>UW5psCk>xrNI($ssl$hbbb4LT(m*CzVijEpV z;;a#Ld_E_rC^#8u(=b6-fEU1ehzpV+sVFaVBE%n6VWkWZ44N_oB}KiVSJOyP3lPon z%d)AD0a-!$K_JBgZ&4%?+7nW4x=tbH9^(4KzrWqa6b1i#GtGtP|a@n|@bU`6c%#`*T>= zVBaA{3ffBwnyZlxR4ITs%R($TJqpyQ7y(qkkIQv0$so-M7698Uxy92gm7=MF;Do^k zc8Ge=O05)S!-{4)XQy*E(S4ea7j=K!U+`b{@I9Zr|K_>Asgc2HjwphzJ?&3Nf@}6~ z***C2*?6Sa;cQ>7*c+8aR?tO>mo*ubx;n=ib~WT^oG)P7h94878UZJo$z}3(ckt>z zez=m0ukFa)I$2H!qfYxP{z)gKPJDSwI??JEhg*c>VzMd(V}sE^&vHd7prTba4vQnzad`&}?xqNQ|>%1h@_bpZ;|N z|4Oa}fRd0fmAP7V3}F?TKS)Kj6{ZqB{^)oD??oF_1;PP-uxGeqO$9Ls`4GJtv_7hX z6>LLrk`mRA;6p&BZ$PH>n;%muYA;E#%5kl;|hVd0ME)LM3{;Wof+18Q{}nv)t5 ztv3g=m1vioR)bO#e4^;MHF;Cqq9u@tHVX|v3BAKahd}C@1+=Y~xLKerDS}~X!8Cwc zT&M!Y!ixZ?5I)ZRJfjwr>Rf$mW22f?=aihfUCk+5aUKk11_yVJ>^wO~vi!(D^M1kC zjPa6?9F%ji(Q8<0hstSv8q0DSpD1y>BZz)g&eCUUREH?S=EpdmjdxIRfpk$doMeC# zW8D%LoVCKiY+Z^(MT;{yOASa}?SfKJ6N5>gr99-1Xb zOoCjyFwDRzy)0hjTA+ALJx>Y`P&i+y(kY0gal`mUMVZ z&G2(5ucuIlA0E1SMFEmSo}wK!UIAGeu3AJ*i(WyB$E4-zIlosqj)XSVnm0FA_T^); z5VT@yN2alL-{wzsG-}6&v~5F!!C)fXx1v0ePWjt6brc0&RX1^p4B>{T<6Bg~UMLi* zHdb%_z_B>=$jaW4-=`3JxNEg-+wq~Uy|s>FSA5k-t1_V~C;OsNhm|i#C9~M5E`DlEucL$#s+uHv3q_a{pIXUQPD~0-W zZ}mu5&>T*DFgKFVkE|NW;T$PP@Ru7HV4s_~{`P%6+FW7vP&(aO-7&RkMWI7{L(klF zM|(0D7lL8PGkhZ3CG@YV-a26fyTioJjm*$$aOfsZxwq_)>P*#zx#zf(TsQdTB>D^g z0Xjx$wF9FMq^xDTD7c~>GFezgX@{vrmjYs)l6Z)V;c-AJ#sfBh679Lkh9J<95(WT+ z2lHx^Wp3De#qfyouc@MVpnL7kHI>Sm3jfYvt`g~Ze!j8ys1DAZ_Z&>6IzNQEN3@CF_y{u+I$)y2l%cU8)pq zLi$$p0t95>;W_TOYd5sv-RuG^Ou~yqrFCj|r?M$E#giJ0^K@ki zJZKb)9OIRvh1+x9+t1Oe;>4!U8-?#9dHJ}1j#k!0$qR2S!~Z=Tfp^pb4rHiT(#pci z5D385u~N(79V5hPtsD&LU;QV=`DA!seJBp>F)0I=g1^QOU#J} zry=-s$6$rN0DmsLhFl^C5?Ct24&Q3JVjfj=L=FlSjJjcoGf5u-B?Sbt%oUq9^y1%! zOivvQ~BW8zk@FHny-1`8gCUNX))jbi>hY27>Xwon z9^OARwEyV-;jSA;yEctx*caMN*UD&Y)wbz~c^U6M8s0xl`nvn(vZHW|GBln6cHysZ z$AQ~h;ORZe9B1CfJc6+c+wf6{`4R*j445e8N?;q32qQj*kNPpFOhuI~is{f8MVAjj zDncO}BMl20OmrXt%Y|X}r}xbkl)-U$22c&PunA%>s6YzbkzuQ(Y2l36JysNe%%fG_uLbjdwZ!f8E=0rbmOKiyAJQV ztO0d*JR3Z$OiqX6{(=6j+xNHsZqxLt%^j^|B}e)OaQ*12=}qJ#{)C_P#eGhWO)vW6 zK40ALWHO(1ve~|D_UE`mo|DZekw_!TOT&S_o{b_2u7NPYD(ZWN@U9;|dU`s0O^F z6Gue@%+)xd-arcd;Qg4tyySTjYb^)>5@5X-P+ue`#ts*ijJf-u-wFG3`8VJ7n$K73 z92@n2B@iWYRhG<0x8(JkNN@L}*B(9=-nwo$pW!ABbdVr<^6*$4c8;n{qJgjYqbygi ze*QIgy*Z!rhaLaH-DXBnhu3WlA3J>QqussaCOyB!43drm6I|wEyq$!v8(!xEg*P-G zDm+^2N-O08_l@@T zH>Z1NJ9r`6yStKiDt5$d|KbggJ_?aRTygT`+XJP{$+ThA>L1=QH@kL@bap+wb8h42 z|NUw@(EiV!9fd}vx33tpVKz{l#Aim6!--UGG~b`>Qea{8iQNP7zT`?+`Zgu|)=la4 zZ9BHFnppz~@B6^cxpf<_6oq`pdtXf_epc^~>Ut>P_$|i_xW1eVbgmBHKfL_#x}r-i zF}u)t=K|TgKngh^9rb2XT?rZv&!-Ek|5s9k-A0?1;>PK#sim;fwSj#f6 z?)cGHlgWS03VzG43em0~T)WF>+rBD{xzU7lFRZtU)!#E6@c{!dOU916Z&N*L{zovay3+Fu_x z;y%fU#|vw+In$NO#zN6p$8<+58uA7Gj?a?RVyLXJdeon?!lkaR0TLjxuQCwSbbmQ+!BqLv zys7hSA{feL{2Z?t!O;JSmrAWt=_}btNQKVE!=mEr3I!s#($}!MA@dR}MwaQAqF@-g zb=_>9kEU9nU}&E|Divb322WSB*qKU2SQS+UBauWr=Lb~4{srrekGjubL^7>tuGLEC zV4SuCscc8kGJFEz3wDW+l(o^x_;uTV9iNJptcqdEsjd*rfx2n6Hns5gHOca);$g#Y zTDr*_dcofjLmZVW$DV^6>mU-W1tQZ#>-NzF30I=r53-xe0AAIBicdEEPg*) zV6#!SAE!dQ0P!aujgo5v?wM2XyAP%Gjd(TLek|!#k|gu=YNL^lzL<-&KNcxKv51h} zvEuP)aE^*mmmFRp2O(O=lh$47=K>ih{WgL@>F7XSs!6SUYuP&Ek_A{+Tz1k2nHB&% zK!MZ+Q&?#5=b^*zDKWvQ9qc8>)ZK|%Fdh>mSvUMaS>gCVeZ|n2Khz16mM?ez6<11{ z4yy(yZrU~6-xEygKA01qdo?lmEs|CHZc<$5eBzdMP$}W>l;nV{N~#D$JlAmDC~7j5 zk@b#J3|`odk{$5Lx^4!r90G8{xN<#}Zyk(X7Q!q>1ff3EJyt`APu9T=`;PV+c7CSy zokixa^IIyPZLeUzzu5I|@)%*rT>Iq7xw*r!H?b$@PM$nTtE77SbKEDPLpg}=o1}4K z7g1~o`z2{vP;zo6Ya^ft;uB=N3ljzn0vTzSwM!78;R&G96a=X}X`d&{N7uY<=o@P? zR6{zt@^$-aX}NHfulLyac_Q8Z^+#qK^&u7_S7YYnN7%l;+BiGjxQOuf_eQ_Aan7xA zzP|T$E7wm4_Ud}q1)27EEV^q%8{HdEvgENtf7j?&s)+e;`}i1l5BgY#^gTo4&8SQV zK#?f447f6*N7(>Q4oKsY4|fTGs0on%N;DpXMuXIrFW?%*EM%P}{Q|Kfh-%uZsY64G zRT}NKRaG`sU9}^jkZEWEVW1k+3^NppgjG#7>C~H6IGKIgipPub_&dE5i9dII@iFrK zNIRIXR`cw9zDj}|=n^Z`*sMP=Q19wY#caP0^A#Zux&mhwh?DNOW2w%r`hcdZK3OB* zh;~HJ|FxOt*tx}%bEt2wqgw5tb5CV#k6-JU{S52|Lx^vsnj*wA+F>f*KwotzzknSv zM~#>eRZL>hi<&15g~Eb+0jnc`0=xrbDuuZV%>DvCb8}oSW!aM(G=<-Fr2W>3`np!o z-+S|Ds{P$c<MCqzKI8D9j4XwTs`Bb!W*S1Wwa;PDPb@&Amtps}xNIw1;PMv95-!UXq#AkS zQ|q3(m%Mjf`&#neryhB#{T)&!&LfN8dxV^9-N@eA{?NT-fBWb?^JHK956S1-sW$v* zZ{LeKfUFF>rm}K|#@7~Hcyh%_7b-E#O~;0M#UW%)%9B?pwCvpX0V&;ca|nV6WFq}` z)=nk-3U}C^Z_i(($@x%r(ZHb4J-=d}k9 z9o~50z=2KI9=z@|pC!tdzSREZXFuEi#h1TC;5j*P_)z;d*Bn0d=oMGg9(<5IJT*PJ zsx~z>^?98C;n>ISxbvgOj(zmbJ3jV_sa2Eh@8aOe;(yNFz=fgLzk~T8=E1d9xEdX( z53K6cluyaMgHR}XYBu10gN4ggAz(zeDfCi&2ikl1EM64;MgbZ>PYPPX`wNm(X@IIM zFo$3^fZ|k%p+BllQq>V|2FOEHD-}UbdI>od4L+i330;lM6eUUIjfqTWhi(wo4*Ppj zJR4*6nDO3l9_B_LY>ukKl1Mm`>RB(!aGHdiR;^joO)a44g99BC=|C!1j@X(czbR|w z?6?$X30%;HW+L8|O=cWB*`Wnx_=5wIDN33z)KL=>`3QVY%CriTtsRJ(%I3j{8i{hU zD5c}NUxq*fWxy$SS023IFcdDvCvA>Zw8cA|tWyobRiD%h4PqP11+9`1jATmvt;)J; zVI-ji;51fjM-;VCwDX}4%uiq0ESVAs`0L47ug@lyp_qt+fPdUnR9#lcqAKJB z%M0xd?F~?GPavR3;qGE*UvB?`s4xG)9PuG=L1_1g2H*Y+SI6@7(yrLL``8ZOXrF?~40DCIj+OF9iD3*g1 z2dRLA1qQkw!csZt&0?+uG=fR10W%kre-8Kt+iHHvv~BC;u6N#n2m!qLIr zbgZmG;6liZR*GeMI$B#U$yCd+bT2Zur(zwW^HW(Wtg~Ep#g5TJH1kKu9ND?z(oB}Q zU{Ri<<|o%YHKc{v9q!k?vHwTN`4*sl5YhSb%pDke zO2-fj5q3?l)HF*?B3>p9g3Kdc)iu@9M+hzi5%NTP$us17H(r>vi$D;*@Ve!~F=on} zCn$_g*duWOYImZFT*6Q$Cg3bL<`j?s_b@)L7>`4%l6DwD!?2{C29Wvh@z^qqbtpmf zpg~Z^_>jwl`+7fmO$Na((C4INY;0z1eP?fv%aA{<7~p`8p?*@OFPDv@M7iytqU#DW zl-C?m4O97~tnpp}x0L!x`uHJ~CQtSCZrrkG`?}eErs&gSMZc(F>MQ-j{nbN5d$w%s z?Q>BXu>2%<7vwq%dJ|R}6l&-kh7Z740v2OX;EhBq21p4+GYkdHG8j_t35_kK!v+Nc zf(!M~_OjiCtF;Ek3At|C5m#319lL!-sIYnVNYSv_bDBwR;b4#mzGpZQR3iQXJG^1# zjkaMS0K_uBpu&&;deTw6_9lxJq}1BMf7>^eQCFHLDnm1yC!<$X%BI%-55LBK&$On~ z>uN?|=*X?D{($}^XoTuoa@X8mBU{Xc7C-Ryt|sjtWP@|x87E#0I29VYsv@kE27C z^q8q@xRJu_iz#9|m4SB*R2-Y6V7h>75&E@HGj)F;lcNkp+P1oKE?PrQX?`Q@55_x(hifZxxu8F6_;gFjgC)i z6#*=WxTP*$QPC^}>5+{f2gOgujfPimGN?FwjK`!%(Mg{$HUPdaz6x) z_PHw`uVd~7jsmRGaFkJp5Uf$uxCbML4Ne97GDsyIzA^AD%0-$2+(|5SRBGd-E=`=h zz;f6&sim39$PI*P7d$sau6X`p$vWtXF|K|Eh{cSNzt2b``L~9KYEiv1+^4)PaqFS< z>hS_0@#yg2sejtLr!|yF@WruJ=|ik!_(&j;)S`*{twY_nUz><(sYJkUB9wc_+6|xE zxNawit(1 zszfT4ym~~{5EJRTRN~(0FAO6lm?{x$O;uG}7Hvc)=@;=S>N6RH2WubZ;esl0LB05` zwnVE)&GP_dYIQaVv=@vc&49ts%_(?~A(=>XS0NtjEqPP3 z{r4@GCjD>lFa|3~|BPZr6Dy72S;Yuav0$0N0&IaKl=PfmP(itm<6631V{Wm4$poER z^1>{O-gNm1vYS*8r_LJ*!FNmX19YN1$s61Z#vh6ruImS|;M#&pMcgi5FNy1}$&=2l zTY|cT*>@7o>TKp$6&*xhAm%a{F?BO!_%tb(i`a-Z4@HWxkdm~*(QH-%fh$I$7RNd5 zb+Qh7j3|VB>13&=b*iLO$p=#&!0wb_^` z_tp|t*nu6v;6y=H!V;uwQ-qBH(HWEt`gHgQCJcFBQMlaxm(-Yd-GT7alMpVH#w3@`weO9W!b*I>ApVF zJ!0Aj@4YP(4HU;h8|I}#4hxZX%prVEQ3pE5HoqwoangzsGE(t!Y-nuV?qV6S7HLdA zw;h2voT&wKtGCPy*F#0s5I_e*!MVxFTx#2_bD7h>XS6ZjT3P8Gj~eUl=pOCr8l}r- zmh1)(voFDJKqEaM!TW$66v`nJP^6>LfmAT}hEW=45p^2|64HV5xVlJL6y^Ya6!%we zd6U83pB>5)%=GlVcUpz~u5}vGrpNmayr{hNEl?)X5mgVc}Qlnm+t_MyyRc3StbO5ni3jq8T`q=Y=cEA}my@3~92BR=c) ziGzKy9z>#sMx1o=1IG?ckJ_dz_ojHw%J7M3PiuDPq1WBri^wF_wc|a@{W1G1L^%Yo zs+ro!muKE}2~ok<jHIvRs%tgc9+rzN|G+H6e?*KC2|W~tG$^F z5xjHz?sRM<6^_MsZ(4u(>3)}yZ`k5y@Nya;?`_B zl8%!{Xhq9^?ay0&4N_C7c+Y$8DVA_rSJ~R3#%4P1kqlek7t9-y)OW+^RrA~WtJVH( z^M6Ax5WelF^9>&n@a+50U1{G35SM+xT^C5rk<=QQU%n8qk_7<3!We=6PzNOSS9+l^ z&?C4aOd+o2g35nx$Q6vdZp;+|oX?MnYtogL>pWjM7x6nz+HwBW=Y%tkLl9sFX+nZM z39jY|U~pw%{k`kf-TS_K*VX@C6n8vQsi^#5lNVKaEke?06tGFu)_8BvhE2OS&8*z} zlogE@qS5~qjKw-)F`zyw&xF0>4_HNEwWtPiLkh5T8WTs3ADNgqGFjhEK2Fw7tXQAV z`r)DJW@!i&VOx?em2Mp0Ff~yuCgWFcioyI@fOm-=UEjlRxNie?qF8r*4Iqc|0>}lf z*$qKW5jbQi0@CZ!6TT~6cW|6bCbhfv$VdL((wX=KF)wivR$K(Jy4C1w!Ae)P+EuChpuez}gKaC94{XE3CL)Mf9FA zfaq%5T%QhW9Xt9qO-~g|x$JGLxru{gg_)!hh>U6YND1~KZi^xqg}6}YE=^muZB1{O z4uz;)((^g|m{XvyuBI#FUG__T0st6FdMWv~kvzUn*}6-u0bdw97zB#0$$$!&&+P$wPo$@V%9K7kx%D>f)*a%UeUrnx*~1G>vv~KZszsH($vt{ z`tdid7+%fu+0=j~OC6<_-BBz>I#RGJa3Q$xd|J{Uiff2juI1|oyZSaqoMe1wB~n0e z`i5XYP6xW@Cu4|%353Hw&M57@#~q&~TZ#=C^(eKGhABDqBFm_nW9q45D0N`D`Dv%8=tOyTE4pNa%9bP`aI4UHd&Omom#?s8 z9m=DKWdyIz+5mQh@O~^RsH8L7M>nrrxp{PZCS8%S;D`3ad(v}ac4Fy4J3$zBUNI4A zEJ?7In2Oy${lV#e8(A3Ei?h1=_YagSjqWk5Qlj-?VG_R6m(GoKH!92d1{QL<+3kI# z3qesHEdCSxgDQ3+=>mViO6L*=2kNKWQ*W^yq$f}Ca)l{7FSHN?7pQU6kyy&JzS&*z z6;7r&T1wbmSP%Tz$wJR`WmjpNqJQ=9;j2hj|C*C&m|>3}?wY)}_rdv%iBx{H5Q|ou zgA?W#KwZ`~3A;-9 z1tScpGJeWm89yi?@ZBHIP>cVKjUeDuI| zzc_U5$T<1x4@u{{KKR|I+t0k`;qO0w``!OVcD(+MpBIK79k$Hx7@=n$c!1n>*P&}i z$HqqSE-vuywTH-k?H{zaJorA~!pGkK@b0^gxBv9N?mqhI$A8}bhiCumzn(QM>$cew zUR=qAzLYTXn_SNKJNn|OSJd*$x{eO2(;*U;TGL#<#!1vX4q6UMj&)4n19hlr!f(xG zg?4pf?9k!g96mHQasGn*?GN5FyKe35y03ieiw|wsxb|H?c;Yo_vtG3Ne?j^@xcjO?g_TZ6UFJF*1 zynFVG&ptV`cGJd(zVNLtuYF|qU1RV2`1@|3m>fO!>AClgyte)64kvhdXSI?kbZ>un ze(fc9u=^~{JIJ~_@8hnQ*c&NKYOCp|bR$Cv&c(CN!3RVqy;TC0!JI?Y!SGwv^y%@|dLs0%9O2zXX1vP`=?IdS-ULTM!yn~#0 zZKh*qxu4s#iL0zi1!3CyR&(%)J6?<7aO0C+&ppE-HURqyMX@JEC*4yBII$co4(;RO zQ8|wb7&Hqp2?7#%p*?%sQ!hSsn|mOidy2&Fd*~Z~-TtQs@Bii>-SV0j$*S9LJ$f_< z_b7Fd9=h$@$Bup5ElrNJPqz=oL{oIv99Vtm?j0#g>D~2Fz0{!T8Pp(xln_@7Lt9nAN<*wI47dnO7hm@y zt}M+~2e>?<)^gZIz~&|fSDJZWOT@0KZVDmPju*7<=%7yp1xaQG z6s$Pi{_dkkN#&YrIQF53%ZPgV~Qw(bMav|r1dC9s~7 z61+#Am_S7_Kpgd~RH>GOs*C6*x^A){tzeeG=W&(}2ps~b)$R~cJ_uoq3Ti33VFZM= za1&-7D#E!1a~L=(i_pp_?z?ghYW2Q~B6!!;-#t#6W+BYf+&Afg{;^B)A~-dj11j>k z!2%Q=sE5{_CEEO@CZQC39p0m*pj_NQxuKKjRz{mf4NvY1VcIaaS9EU-bVOXr0p;2$ z%J?2DDhBKpST4-Un&pThry>B1SFt@na0kYoJ`p4hD_yV_*z+Jszo0g582Ci2ts#2g zeSw5wCo$808LJo(l7Z1@eJbydaAMZtRmoEBP_Vo)!n11N?<~t-fJSGQe96A3Qw+ex zn+}HpU0r2+eviFN_6_@XZw!d>jxN)wJ4V#V>A6lhsWb{cCFE265mkyvaQ1d+5K)z6 zGZ~e51%ij1KCw4FA5*M-->oQE;7z!|h*ns9N*7eFBZ5Ut9E28C>I?7^*U4i&sHo_( zSgVA68njW7lZspj>oC=@7UncQYHy7MW$ZE`SYfl9+R8bZ(3R&YQ$@Tut7HRlrH}|| zG7&pshMf*unrQljYCeL+jGXGLlmpT#alkPgjEkcAA>OG0&8J|q2Lge*0pfJ zVF&mSzGNWeX%Ch)m%}O=%5uq6VzQnr&i3UjI0ek`o|Qg9E^DiH2C;5ApawRqp6#?d z)r5*|CUWb06N#`dqRB<0r>nP1%~M;HUXJ?owAJS*rct@65$sg>y4?AWy6y`_!$Dmc z3i9M@LQLVpJ}96Z7SzgEyQcgYi=X4z#Dev)XqX_qo)wfSPPY(g<1d5-!=yL|S%9!# zg8oy-j#yV>hmu>d_v0_H1Pc4lxi}};6lek5+!De;34#;V#Wx@fT}c8oqA2jYu?;x) z-y<8ggSZ&gc#5@@mc0_su+osCGM+3WS&CwXYXfqT3>5G8L@_tO3#MJ}JciXS#W1wN z!#QBsrvYAAtR|@tSFs;R5^KUZ+13D@g1O4w#Q-is1xx=B6yOF@evOK?0B5QWAe7+_ zGpq)}s-)vr^=i z^^uh!*|*`3@>swRQegHf$@a7g6(nh4nIEt4M!^7G$Z#~sRZ_8w0}LOU+y}cuim-m{ zu^u=KUPBv$q*v_deK4XY2p%~P#RGSV4As`>m)6UfS8nP_}`v?J^UGz%fmDK($#$jS)> zlBO+9jra;d#4qP}cAFWQ>k_j!bb{K!JElrKCP&`S+Y*ay6gUw*RvhUGbkN2efka4u(5)X4DhN3d4b~4^W2BIETSCpkQ@526W|nfd)$bf=V%<>QotsaHGwVE z`huUw8S0oSX8;i)pzuvH9#v|kf>ha1i<=A-0S6Z zb$IQD$2P3H75g)}Hyc0c-n7rv%K3;GE$6!*X@AN+y{R!&?b{dYiN$*A^zhck&_F+7 zjPE`jXs4bI7@w))4K`;@REOziPq(f^y%%maeqxMt(0bZ#xktz(E&fQ`A27a~S*j7$ zl27CQo@(FIjq=md8|I`@_w&JUz7k-8<8pHgn;cTy*`9r<9=CK5hmT)PVlMmUQk{+$m08>K|R3 zbxB|Tr~ADZHSwZ;T-+y%z5POC+NXZ|wbvFj=p<~ZK1B2(mKNW>WStmx7YJk(_BhA5 zYr*J|U1)!*{R#H5#lvKpj9t0_?6d7>Nq<|xYO#MNh-ad4M(4i8UB#ssXcH|M8(bO4 zqrFbig>k^LrvuY<4TyqqV25r}(5I#}*Xn~w_uO4DKek*kj3R&=yFqPh)Dt4QW)Ofn zEdIE2t!yCtRQ{n5;|g63@i*8b1|A9!&Wzu|S`ESmHOZGJ(*FK>k3T7ecwuPg(6Pat z!vb$fNq_S!K{P2VwOQt<@{W zHXU0z8Hs0(a*>q73E0!^&2~!Cb8!$Cd+W-PZY83pi)vcKUNM4}Rtjl7qI8W;Z?i#- z;yE3%*PF8?k#o`!u8Z1?==i^$`xbQgJP?cOuMki%9N@v8-4a9ZdMv5&2)r`PHg9`o zR^t5HuAOslDVDF_qk?$#_G8n(`%9gjMQr+a{OZeLtYQO^@XZ^y?!NwuO(7Ium5cWF z!)HBvDc$B9@hF3?y)+BO2>6G{*eq7nBB%?oflX@Ya~&{LqjW8Ul$X?O{b))oR~{W29Lbl;`H`VxFr2e_2zuqqMu)q4 z$j5k%D?yqq{jMSvjzL|EOBJ)U;`Rz`6*9;vT$iB-te)!q1Kn0I+<{HN#vo6p`Fc;^ zFbsO<3mL)RS!ii)_*X~Pa!9(}{8wF={eKO7vep3L|BJ0(DW z5GnFPDcL?%-jKfHMw-KZvnNk_9rmoB_#RGR@6MEy>WRnJSqA7_;-w(Asl>Y2b1$De zjxhQ+Vn^O6wAUsm>?}M;ln3Q8($q$c&owbe#q&-j4w#Ea)T07qY_<>rf|crY?S&g* zwRFKP=bXQ=mUH+=|J@4a+h+#LGr0B2i8xZf<`hSgQrwA3;==MfT8ZvIp0T zYrW?$dZ*AOr=?7m>Dk}WK6?eKb1QA1pf#2g$1;g$BUyc*g|HIX0wb}D}{^>^1qpW;5iO@P*Sz&1J!AN2#whndfzZUs$pX-m{#<=oLSf5&nN~p2)%{UfhCZUd8Vvd%{Z+{7 z)U<#8a{{*K1Z!~VKMhi-H5`j((M;E31b1zt=0$u_8QcxJbSo(RbGPlMORIbVCq5YR zYtTjoO^;_ERyAGL)LP50DeGK{(4gdjkX$kv^b3O1Gmwau;ZU^y$?q#>dy?sLzL-lV z0-;PWX>w|BxXY(!os?g*0a0tq$#^&vi*}?6@wCs81zT0xpSe39!HOsB^5r)I2=JO7 zdf}ZRLxTg3jIgT6k4}7Bfjy}-6!8mkI5se8W5=L_N+Dhj$L&bWA4Kp(EEoI*C1~wOs<`Wj;$Y82LX$6hD^Y&k*)+DA-D!ThfdX9A0;IJGY+-y<5 zp(kDyE)hy!`WrKp#Zs%G)}DPo*@plvdU5mW>B*+~H`rTu$XtAM=GdxL$KF8?+TWPX z$?4TMFPC#)z%s3D2!&C${Lf1TQ5x-|Yj$Y+jsu>15&1X?8it@xJK!#kgasWNebP8c z8bb_cC6yd$@MsNFORYN)b|lYf4A!`OL7sRtlz2QCCVKm6Eu*!c)=4<L~a()MnQ9}M1E>L*5nsDB8#7)%IcScT{1VIVzWJj+wQxwm_5cY7}`T*i5hW?jNc z-)gGuLDeL`;xcYNc@!_u^07+$^d%)@m92F1HG!fX;Uu6SSCmiL8$YB+U}`Az}tX~Lxcb*6<~tWomYBfNXFaO;jb?_{l?o0IT5cJ zk$~;P9)o(s+_q)3x$DY{Hc39Xc|%XBH5&EVow-o#5+oqcds`)3d?b5am1=HgYNDAh zB%&6pCS(4zQ%WwWT2zHw%tUkW)CL@qF-nLcB9UoN`w|&parC)$maGF6oA=GDDg}v z@zNX3kbVkqjU1F&d;&$-C!WC@c#b@OV(S~tQ#uw1U5uZD*oS3F#&BIIbYkch8m{(6 zTNK7N9APT@xLb5DT~P-DaM|Uo=VcMZI9-eydF+|z$syb`{@brP_=|(r-0r6>@fYIQ zA0u8M$K8|RBxv@_FMH9J0#0$3p~sAu!yeyTS!0L8_L|DxMCj2_qJ1h}!25XHJElWq zgZp4{Y2u#8z8nlKa1O_%JXhxaL++ax`zhd$%f~28dHl@dgivjk8KlP>DenVQr0`gx zA}|HTWe&;R9q%j-R2seYN?)-Uk6JKG7%KLUB1AXi>E73Mb=QkqRvy3}PQGlVb8{UF zaBG>AFAykiSTWjJ@;N?}9qaD`e~UR5;;U)27lO{QH%}~+%4Iq-9qGAi58t}IzwDdY zTkRh3o0$#OW>f30ym961U}T^&Iyk&@|CMw;C3jL)ZY|)d1*vf_cDuigc|H2+Di&^> zDQ!NDYVd-A-PjVU@JV8;>Td40EDpFMU{O_ss%cdDph_J_FFnH@UZJ9SBbZUF$lLtd2zKri zIb&lgQ68Jzea&OS?%B0}ylQ%lwrh6XAFrHV1Li2j0*z|lN=?T`fT^VD1pHS{%`5~~ zU$&(x=T>gr(lozf^+eQCZ&dG*0vK>4HtBSS1KWdmPJF zy4SWF$B$1U5OAum?;npJKXv|wT14QvTytCy~DKqo0d8zI=0#}m~_?V?R@ zYM_E)?9l=v4=GxLom>&FWx zut9Y`p9Hnr8%nTeJx!vGjkD%D_DjB?|GTtnk8SHZ z?>zTXBt?qUgAZF0rBIS7S`sNy)YF#j(6L+Fk{`02N`AztF3BsBHpNSkmsXT43zIZy z8g!}C3`h{9fYAZ1H=vpKM^OY@76p5BLksMmAuW=$@PMTqh6PBrU@KhfYQOK?OG%cc zt-~nl@;m2z=W);TJKy)6?;waMc;OEwyq=!@U*A7{>eRFfQ;pvJllEpeg9%KtrM1=5 zG&VWqf6?!D`)li*LUXTeH%=NvI5r~nc)SyCU+r#NZ!`4yY60Hg`1ugAh?H&p3WttWCC|F=rz~R+KR667~<*R=_ulgG!+@sJcdX7c?orHgwb3 zW9V{#Th%C{f$2;*cSD{z0*NM6zK8JN6~ccUTHY0W82<2CH5qPUCB70z&yC0NWh)fO zOd62ZOdN@vYo<5?;`oWjQ6?MFODNN`7F>s&{dK0D?6I&P2yjw9Z1ufPn}ev>m5_h^j^?4V|6t-f$v+`<&hN4D6+jTRc17 zxpA~&tz&1YtlFnnENLbj}k=Y!4f0Hggi zm4`e+VmI$7m>T#fr%nTSgy@7r42lGpk1>S_abw=O31a0lkG~kLbBQOJ%XSjt#a>uB zWH4mo#W=N1+Fb0USnn9Dbqd{PG3bWhe!yd9R%34yoFA;2FvtD1ODNEcsPA)x8~%@* z9NO(#oZbHua3mVNP3O=1xXJDMD}m666br$CF;e$r<4bsc;O=j>sa--JZ)x)>WK z@rT08bWS|Ty7?UwyK41|COmYoll@YA%H`^ZOqh+Zk@^ro7ku`kZHTE66$V`Z)EZ2Q?9}G3SgmKUTYBy}JkD6H z&p*G#y<;bMWrqmW1WMPG0EqWj>3 z$^T=p7{^j=#L`x_hXt(B{~He8pZ4msCwUfJ#~x^49YN0kixHc~4bCtT`kcwjH|ZPV zo)Pc;;-3+kUC9gMlJ+Wv;S0m~3Rs<+ES9F#3Qkwwf;M4|c7dK7F#GN5-?Rq1TZ9Q% zh{UKtq}2)@eotVRYj+w79UoDIz4YKwIiwBaWLOI>WTHM;;p5svcbj3fR@qTpAC7Bq zh_o#xW;RAFY%QX%72b}<1_x&@+_^9_I2en*T^OH*m8t932U-Vb#ftnMe6 zbYxC?>U1Xc;k{3yGvlFsiAp80FElU@|wgUd03>5L!c0%;pW4Yq+$sCwxP zvR%502ucB#nqIudF>95^6XJbicEQtJ8}A%`k%d8krLSE2=H8m!yDY;4;WM3K?GDUp z1P{zU)$D%m&Dp8rz2W#BOahRB39<39XO6Ez=l zJ35Y=+g;<`qu`Gf!oA0*W*HV%ireD8Zye)rCr+}_EKR2eVTG5^()wLQZrBpxBVnim zVZ>V+gXj(n9ipIoJB{GJ*R|J(6k`joyO_&|iG^Wm*8UUo2(;998o$~-@xRK^ zT&xzqtQNDew|+0pJ?6F5wf8vRA-K+G+QM1@YkV8N0_JjkZ#whUx_>BL*u*^0-oV&{ImJ)z`w`)mhJ<%X53jE8sKztF}?&4;-@+5>AL`06Nz z!J5O;JhIh&AMY*(8h(cbu!2RHlMOl-CbXhaX- z{+f=j@c^a=Fbb&z2sOZy*aWipCdVdlCx4wM%JG3(h@mEwgvL-pOwHr~T{=|Ghi997p_E%a9L@g|)V}XirG) zJ%q#lg57e~W0Ym!)-GU6`i6h{rXlkA0#PVN^CQO}X<;wb69R3K^z{jC_bhJz~i!C`HHK_a+d|TLxg6;%1!MKRiIo5k7jj~|kd{+1jy!nSQMu`62W=Mcdgb?C(kzyqu79)d@ z@oD&NUSL7>~UyB}DEPbQCk+Zb}C!YSpr%$xC zo_{G4eeLoU_Gfc9=)SrebI>i^0JRS~JD)sPJT~d5@9|+@kMDt_lTV*G@$_W>qg`F) zQ|F%S>?ArC`U~%iBV?V0ZcM}SGmK@(AS1DP(-l%M_=O{3omO>m3O4Mj|6F*OR-)DS zKd-ldpyl3paGLg4eox%v|CI}?%YAteiAr6DNMxOOU7r^*t+00~4@!ebWf$eK`aWko zJp6gRaF?iN^2cLKCX~mD_(Ra1WMzgXD7*vmp`{f0fJZ{Rj*&*Z;fw1<{TkN4u&c-Q zNwuu(V3^iZJ^K){*qpub9(L3fX#RClzn0V6dc{FWbUWgneV3A?t$_9u?I-$HfDqA% z^txG3Q?HY;+UkY^X$!yQuS|s=)_$tLHzKpgsS+OCUKnY93->lIV(upD!?z1I9!WQW z)*w3QMjaJe4q2@PG>OX8J^6iHoyGkKx)#u!_E*t0K?$tMSXvY)2lQeY`r0zkKmAu@LM!e2lJ?)V@IDh3e0T!7aUX>dfO8-wgNn?X@71 z$9k{>ONo9PeBETi9V;jni8G);Yz<+}9vdY6`ypa_ zy1iWxW*ic+rgvIHSmUv{!hj+!qpI1mq%w*!hCOI#Y{vU4l3^M zIekz}Y!28Aw?{_0V=avhd(44m_bvx(pB*}kLrasFJ&v|$TXVC&zN51(Fwo@u`%815DB}dh9%v6lVQr5rkEf99h;K|6pN)pNmW8z&tp^DkQD7FLdBF@0q8&!b z6g>iKbV5NV8r+*{2ji|wJ^Vh0_~yu9@KE>a?>_{k`FhWCV9(b*_g;dJ@Y-(M>eKa} zapAPDDc9NXFTSpCxc3OL_E>v+Y+|Uredw>+=s7Xe);6SxIvi^U{IBaMG2yVawt01} z`%rLT40ZUkUo^7+YS6NRDfn=3aMa_{y3$R-(_R=ft@~47(^MN$(~}fFMao7_+TR+v zAW&Oq8{|1o47PEau_E4v{GE`y7Jl zrL*bbiJ{rpwD96|Y<6g3IDJ-oArOrojz-_o{)0JLPX~8I$ss~VFC4q1nSgn=we>9G z38qW2aFgra&nd>?C=}kDtG72`8k692kj*+9xYAVCINg;DDV8ox278ZRA%K~Mt4wS( z5=N!Ks)Ea)5eyQXqZ_m#+L}hI@N<~A?(gW(7TH_Tb5VS?6#r!(@P!Lf+{QqUHm_r` zZyBLc16%9egeCYWrT&g5qvz%*DLh!GAq{T#^#mHVULE20HW0LrHzQy#y0-Q%_CiO% z$2dqg4M2v2Q&ME60;<`ZG{T0S6T`HqaE>P_>ybQ*c%j@-F)?9CNOX|7v36ErI*5&a z-_Ciaz>Bx++0zm~Fh0`P>uo(97EIWwlbmxlPArLd)m8Czb-OB{_?)3G-$E6rAYQnS z;!(H|hnblm^Lay~@s1E;@+~cPMg)@BH16)Gx49}!BkqdJ>gsUEwNE!WjCdRgO-}oo z?}@L9moSeI|9JpfZd>{&?&^cu%C`L!GcDcAx2_~5n93)mp^1U%=#-LrHct@22if>9Baw+0Zj^P748NvN@UDJvA^rz&`{gPHw{-N8=beQ_B+kgdd)msf%gg>W#fN2KYYxviI?;bN?3;Yin zupM>qB?ERK#R8~iTq=dw-LR^r!wmXne{8@4>?yuuz#{yAY`|u~KQrJO+@JDm1Gd0_ z)qw4$8Rj%#hpC$-j}&D|l~aMlav+;j^7Bewt^S^q)8(90tU9Z|Gjg$%Rq}zs{%F?+bp0=u7IJD|dM zKf3zB`ukMz`}un=@cjqxVbFEo_EW|o2WUrv5VYXrhz%An?F?*VOvH4wy8#xio0yw< zm>1%?UASAX88=+DGC#OmbO#tu+<%v+8Iq-FJA8mM3eMVQYiOB}&j%1Z^RL_Ml1DG5o@qpC|;Rh5f6nqJe9n2u(+ zcnJ)cHzxH9J+^ZRX_lw~c-<|dFO(BTZ9SREW{h@NPnMDr63ap|Ddh1@iN_D0sYBmW zBIqv>%xt!*!@+?CWkJrXmTW$SA9F$~mTDKItX>fgRBNWJSF3qJQSyz+oKligk)%{m zF|DGd>oQV470D<$YIbufo0P4&Y)Orjb2Yq|SW2=~OlE8;WhtLiq*P6IK}yT6CFF;S zE6TiAIWe(PDIzIFEny%ig=H~OE?F{)dQ~dc@XDwuDhWlcDM;w@W>m#B%VLp6Qe9HY z$@!F2q~TYC@+Gg;q7LN961rGjG9zCvDtRQll&@2>3vzX6I@85$A%X_P3L@pq)X~g| zaxrgCp;epsfHnqkq?k=-)Vj?@bj;&@(V$8}&f9oq$lI1E=W-=^S+*BVQ!cn^Ws8)MCt5F3 zN~I%<7ox}0BQpOAZG{w;E9rUQJ7<4YG?ugpgi}_kMSSaNU&Rh zE&hrBmInF93I2fuVhP07!q&y(pGNYJOa5DTX}#|Ez{cMAzj^=m0l4}PE!|62wuT=6 zxT?-Sj{gq?fQ5i(c80d5|1_U}egXghK;{U=JoOIt&Mp7|YF+=%7xwQ=TiIT&pB_2J z1||judqxZf^~MHHj*pOrdy|qh%O+b^45cY7lbmk$XH2F zYA8?$M^7NIvxI=w7YNCyR}&fv22r<$4Dk{=_6LPBp74U8-EL0eE9B$L3rnok4}QKZ zW`AB@^Rl;{@|5+F7!-BUKYv&i#9b(L*RE`L^CgCLu3nPstRCuXmh5KcV=criWn?L9 zU&wr0`eR8Ao(pwk(1}{pM7hr6ZW=Sd?eaKPy}Qw}pR9Yz+~em9b<)>|^pUeM#+2ic{ zwKeyi?LRWxdq~bZ)Lt>c&m8~WdeU3w40-ypyJz$)LAKkAVNN^{7W zcM7U^M5=d!s&~w)cM7|6MBB4(i zqI~jzneQx+`x@P03;lhyK;EF;-IjQ5W5lZaR3F~$(v(qCU6earZGe4wZVW7~F)q|& zOlj*g3DRR8;7W4}?pKlyw^E;m>(ZF4<~x*(Kfn9(>yoYKo9$xqH6Lg-BjYPj$?OVZ z8C1b8fh?;lRLTAfZJDH6mqmuX{EbrFk#D8?QDRvNN6d<`JZqlO5w~QaGHc7`N>nku zlw1O*?4HC`Bh|8Gf1$D9r+k|f7IU#tUy(0~E|V+UVR7NOK&sq^TvOUZj+Q|dpka{( zYLsY66~VUXgAgs7EJVXN4Kr_-g=bV@85dz%8cCFvZ5FLzn8jrD$8skEZt(~)w-l2^ zEweOH!!}FWDArOavZYj$bS1Mi?Tl@je%?6Cq-d38aR{ucRnmrKnzLb?<$lO)@d{a6 zhEl+W^%!v8Tnfx6o02%_@edLybWOO|r@I!hIsl|3sdnrAY_@Q6$~E74rL#q<$Jc_8sLt1)iN zPKwtlo$_~VyOe~aj@^`~eYHG~+h9WSp@5Qc{8MIKlFve=&V4MU?1)ggF)2QiDUHWS z<@U0g(tZ3?22!TSXu{}$wb(13UFKZ|kC~JeRN3sZ7eLudIZK99F4J7fMJk$dlXAN> zrR*vDA|yXF_r&X5_;Bd4SrG6zT8lYL8d`IVD*o0s>s-T7+f zYHFtYwYHf{t+V5g?syuF^aJ7g1L0;;1LIx`=YXkkJ?x2uQ7uR{$P_)!3524a6XFzj z$Xdc38KWe`JKq?3I6DsD?U{F_w;SntM#3)nwVV1sb64dZ{q?-4&;nz;ix+*PA{%BH z8*kQDH6hrME1YA=62csnE5cl|TviYif8+Pw_n3d<)&1oy#t{GYVvMB@hv#MlNhkd) z#(4T59o7%yyifSR!#N$2De0lCHka79X@}HaDCUmk%3WiGiVB@Jot`KRzdnF6F)v)j z9Jui`2SKXPgy_WJyuDAoqe6iOZQpTlr>`gDr8K7%qS1)`9y**QQN@=A;=|_A6{xzTP)A zUIovuL6aHv=Wup!D8aN9rV=Js3_6|8-*nTi+Zkr<3~hf={$d-{mQqFH zNE_T^%gqA9Yqhqh=ysr#J1!io{V*KuyG_lI6W2nCK(YY5Gf28ZoEn@c&aX+qdi|jK{je8=2DYe}7y*nbjqAd%xRK_t7F;98N#K1+o7DEg7 zR9>&W_FExylh2dT`VuXrpLKtgkhV=Y38k9aYz`1kz_&agTd+Rib?B{=iREVIh{RSD zTZ+T$F!GN)MKtsv(}mc2Zl`kNGs)_d(h67{=-)Y>Oj9woc&xLO!9v&OsY8=|k@@g&0y0G^8 z{}fMF%>GfzT(WFR6aA&uo*aPpVK2m&{{fVvQU=2^K(Hr32g`GESb4T+(kL5DXGOqu zxgG3$hqJ{Ug?25_IcoTVQGi4MqAwsq5!J)Q)dInY$R^vx{rz|0z(zrXir9?UV? zne<6|myTD)CfpF(V3F#it0$FUws5NL8!Y#%q4xlN18Q!#{3gfCT|_Zy>C6pMC~eEK zGX|3_MnUr^)2H4o`%Yx5Q7KSGal-V#sI@Tngc18i=T`WGdtoM|5V8{2wV^G0tJ*3k zK3tdRlBHJ|_UhR#6S%T8@~c5{hXH<>8a8e;5ZM~cIj}#G*5H_CKt~pBXY-5d#*+wd zg_Qks#B)T`&QuB-Nsl87wGjnK}3t(g%m^CO_%1-)Y5A6m@0Lkzgd5 zBy2czohy8_NfZ4ev)5{nhI73CT=h$hfxrQ`JM5@Ki4u?}EOq@VMJfyy-ZFWaMeY4x!Y8kGfdA{MLrHQjxOY1Kqi64D4w z9Ks)8TF7i%LQpWL@#_N1W&X#a;7l8m|s9&NMCRl5Q^60NL(BbB}AS| z^(fJFm3U17F=B9%$p`A@Hynr{KQLr3XyRV2ANerlgv$Z*puh(X3Dm%@_b10axThcX zSdb4=R3BYI$sWiwn5N+CR#jLUli(&)C=op>w|36vbYrJ3+4-Y)TkKUdQ&&6yynCuN z9npzfSN*Qi@rsFx4O{tcgKj$D6%w?q;l%^p&)K#R`kbvqXUu(XHB=d0DJb2JtIOd& z8*11LP7k0?!{6}Ntj%B2x~SJ7*II~no6MyWfSs<6>~wkYd1J3_^cgRt=~YU?oAi8; z?u%<$I!l7P$Ulrs(Al#e^(*WCP}r4SfWZ)yjqhyeN}`^op&|(rN^Cix$^`U&F#_7u znQdP)&D@l_WGyLdZg0dCh6zD*BCfP4XbcjPuQa^AMqA7k?i-e224mlY`rrYnU*j5S z4?(S&^}z@xBOk+@T8>?nGF`AW%MHzg4<{hMFyDcuI`~TtXl%h=f9%IL#DI zb~DbU&O}oX0ap3Ragn3+bk z=dTmy2R#NE4mncdA&5{rUx86tjfexw#ITVKMhW{VjvJ?hgJ2vqSU8O}1z=KOEOj+a zRyAdmpivZ*Vpx$#8oOgof8&T)>?*V7gsPZvq-X?N|xpE64dSxFGeg~^Js_HjEvF36}HPVszl|&lpo!kM` z9jOl+7Z(E3`)MMXLlM}3%0d) zIO8aCKPit(FZ5x6h9ZG2wsGhpN9r-PfDIuKYCXY3fxE_l6Va?=7SaI_ARSH61q79< zY;>YRL_`=OQbPo%au^ejJa?QrtZv#BU>x?|d%vJwsN9LNB3epZk+5cXgot!sf+J+@ zG;9ND5j4YG5a2g#yflolC({Gl6HqZjb_VVg-wA*-s&mXc?TIk~bwxR0MyHS>;uYOo@@iDM1@)T*=a2!)7EV@GyWa_ne&8KF35w4$k?~!D0@r0wut$10W!ZV2;whc1ao8)_tEHv<+-MH%QwrLk4!C5gm7E z4gv=L&$Jz!gEI0EC2A&UFG<8A2#{wwZ7VL7_IDD&q(?uUQqAsjDBdotYoSn{-bt0j zs3cFUpq4pwjU2H_CtFE}Ynkq?hfrqtm0kCtpu0M_2iV?bCt*xsBA34C6P+qtTp8h< zJBfOl?m5@68!(MSKy3l7w#cxmF8btfQ5EExk!FL%T96Y3Svg^@0U8Ru{1Sv(LZuB% zcqHivvSW;F5mru&Vjmual+YYTlm-w!%3#)Y(8h5{&JeXRnfZ{BL|u5|CQH3i!ZKhx z4p@?v2>4{h1+>!|^Lb;qA zEI5$838`R02o^b1$~H|ZxD#m*P7E@Sh$C{nD__wB4LpK?tVLKUWFNtqahaTB#gfsS zl7Ng+iDga+cyNC#4?Q3=fhbW<2#~Ct3g?uepB{8a*ghC3q@0%2s!IZOA9~+206K_V zLSdJLM*x3gNGJ;fhQ+P}hZy9! zcr&#C`i6+oAW*%w9?*V5zXgB3BXHn8<%Sl=4jet=o-08#2ZCOZRUpKvsDv>R`~*?~ zYl2`A2IihX&l_%EG?fx?CElG)YJSq_eS9Vt0ZJc6O7kaJmU-d|wl%>(a8AK_XNm((eiE~bp2!#s7~0E%cC&m-JZAD|wr*0^j}xn|^rY?C^P|2wtIoF zuX9yQPN}`u;tUMnlhxu!Ic%DHfm692!2R;`q|k(&(EbR_JuK3N_Sqb}>t?`SfzM_T zb=Kk)*S6bWudJ!=uW*x)wnLW-8cll9rmeRSG4$Ic^#!~m`(-bBPo_0+>KrwO1-6JT zxqiV)K{{w7X=H(RM-5%ga4}Va#vK8xLjl*rVRKG8mUK<`b*__`UQ*+OA1C#7=wo>< z9xgA3vMDGXBbAwGO{L~TfJ{nO5Thh^mw-n4A#h_x;pah@m7rcu^G6ls1xm z3@8#5g@h=Ei$GhD5iToH->!`o`oPzBmr140Mgmo|0<;f*SJvqv53lA1QL{{yD9F=i zvG;y5=XO$RILR1DQv|3e)PXcHq%NT5K;dO2P{RXLU=U5MWEH%$V6^fd0VQI$6lIet z5HVOmMNlt*5bX>$R$K-ppr8JWL69Fn0m7i)XnF5+09%OjZ=CUr_{kA8nC2NLz&MRZ zK>>XrG9DK+-2=YbA_#|J2#v?RKETvt8C%WdXpitG>2GT!8^CTG7ICy@2d ztlZ6wY^(P2G0>WFo&>vF-qufJ;OmohM$_Fj3kD4MWwsPErE!7VCxJj?Q&03n5de0H zyd7fT>-E-c3;XTQohHV5Vrp@6zg(fWr8%`xMk5<~-FZqNlA7BNx6E+7CO-tE5UXG}(2M8hMy|%> zazIW7A>7$N8YKl_{LHRJ#Z$X%p4hibr)Z~QLR;XA_%XDq@b&i<-QE7uf3s0?BLvmg zhgwc5W3$78K0LmB*CTc8j2=bMX7-gZ{2HIR{LD^HI^$rerQd6eD^%Ps`$lxJAArBC z!_!Z|yqfwk&|v`c3=cC2?M$2x<1lG8;0VdN8$#89!Zna(CP zEpAcs@>3?P+7>|^+i%c8YtGiVW=x@3>r2vc7Qj7Q7Y%>Vj=FoLZyI+9JZ^c9S= z2*p`Gw!<{f+PLa48$0=?%s|UBo4W=G6v$qy5l#-S+vE+(gAga~T`=L0-#g6)viGIi zXzKm+@Ab=u9zVF4T1GN_BMEAGSw2H{`NXAN98GpVmTOVjSNVJ_Ryc7!Te4h!I(@oW zF$Yhf3?9)hj7=&?%SR_&O3SgBcu%R z!U{|;P-EK1McVZ78!#=sFxy&9$r!i6uDQrMHOmHI+9t5QEjjtV)*>#gDZ2phVj3u%oZk8FXv^8&|B+(VmdGDXBx`>AgcAhq`;gJ0Won z(=^-};(_u-cM=llXfNVV?uTA4It`*l>HPMDiK-}XSk9l`_5vwG&!J2DA=M zyq0}%>7cCS2|zh3KLePm$~b5vsoBmpaim;F$k)}%m1bV|g;?8vX^6Z`dr^-bmc>>h zQC$flX=KpI%j9yrSZ>4NcgpX6N;@zhTKP=!y{zR8m&5HSf<3u$A@h*R%7q>VdQR;A zjDP(xTirU@2HqASjka=?;P3IYL;nyU!0Qv6a%kdc!HU2XquDE6%y(kW)FOK{{u{)@ zo}4zY?-qhOGQDvphX>jQn9-N?RmyR5TUY*(#HJrO^u0f95!7G#WI47bZgEOg$Y)fr_Pzl7frGmg`f@9GJ2tSgwqYw?BX1 z%1y8V8qW)~BnmH!OEqEPV?P;?9cAof$6=P5Z_xq~2hwLghM<8E>f_Mc>B3Tlmf!DS zX?<>I_+BS#N{2rn=&V9nnN~M|iNeT_5uv|i`E82&##5LM8=^fhIsCbqB%b~THka4+ z;NA%}SIyb`i2&=bUswtK@usF(WILWk`~tR*U(0RWpP{95GoMrAP3zcOof5jJxYOn5 z{rKHVJMlMDo;-UOx*3iI9itx4Mz)2_su}otol>vANzT-A8n@p^E%E$t4gtFkH(T0M zMjtv-i&-_V_!?RI8bZOs@i;mg?Vq=LRN!8}oIV7*wJO%3<%5kyMqg93p9`*Ng%%| zjw$?P3v3%1VukY54o^vA`nkL#Hk-@Z2bV28_1k9>L~DAjSain z(+>H&;@v-e<~H!&WJzlVp+!>~IB-(9n@6q=+?$elIHh^Qo)Mk_uPk}Gm;s)^3!LvH zoN5J_;IZx1I$5U}b18q{O4k8?_KWpmPTAGOez~ccPyJ|yY*WUcyz*c|mfKSBr#v!y z$Pahe)%9F+=;v{<#{qPnYt?dks&re(Pa-t|Ml4owD{aVb8e(OEj1{3C^OzaOdJM`+ z6dbwzZ+QgNtnrGA)On!^nU#1Euru&{ge?egts$gSKb@pTEJ%`CIR}f1I2lr`6mNNX zpwbi*$&bEs$Halh+)OEOh-!1e_wPv5uwBF3u*_OoznQV8B5RlpGYq9Gwi;_9D#?Im zN7Z9asVVv-$EaA6E`s`8sV z(YhUbDr&=3#`u)L+yV?-gJ)TU!otRRDR3q7-$YrlC^gZ=;iClHMqSmmj?Rv|N78;M z5@SNz0`1BfD=R(*gql~|GUz^bI%SiNDY7|t7^iIAjcYKVpwR$BfNnE^Dxj#$5o8vp z!o@u%O+5xdPe%fQDYd{(loV4sVDDJ=-uvkb0g+8l(MIm04&m*iize#|YB#Gyz^B`) zS+NHW6NgCiU8g*!}T#fhvnshI=zYc-B8=GP2Z7#o7sqc$hc@t$` z*mq4;!nY#w1Yoq!Gr8JYT&TXhd~Gf_TkWi!-(TAy6O%sKUK2yM4?yvqyTmXk}?jnEz$msxy%uS232G z7B7hxKi|PmHftDR5~{k7x4<20R&qubucbk5C0HN+W%6K28$1oc`Y+-oVjX_7@d0|2z;Ibctq&P_Y@JFxl<)SSWb|->M!pFpg8nrQvF#xoW27*4tiY8968@u8W2e#noh)f0|FgJ?IMALmXxabp$08 z@vC5M5^0p2%-k-NxGK!{vd^)kbqfx>uuUG{VW&>TuCUcE1T65n}~1bJ%a{4RPL`@9Hqg&TY1?iV7To$CFfvH88vb3f83bS`M7T z?QVlftECUCiJ6eydbq37Q`DS6VOpmhR$k`+c_9-77?T#Mkk$8einRt$k1J-RsKF zwZrYa%fz+vY5SC^*SISDMl1gPR?@Sb1@>e7fXD0U(AZL2j>}Ld0mK@L^9KCs&AGW2Y#wZ-*$L4(rO1Wr276{iI(ksi|f{J9}6=-bm9Q4;lB zjV}#eJYR59mVe!iBO}fvyDhau1X6wq{`X#hX8`7YPtj*Tm{yU90fzJ zkt1rk{6&L;oMUNR}?`%zoAi1 zCc==!a@vO+4|{@Sp*9&qA*d)qRC&%*knt*z41G2fk!&GHhM_M!g6G=hO)}N6SEDm86sPO1=IkWOt7jPbnyH@qOEalOnwMe z83ktC(NnL1I2gXy-Sg%`P7yr;(}J`}bx<&k>>OtRXOC1;O%&2sXH`R+JfH*w&N0vT zjrIW)3G^u207E(ZoXz5(103%~a~aFlI^r3`v>^u;EV8Wt|?r1eTO zBX5oFwI_Z?v}n@a9wvOS83iRyRIC)diwM8K)cL&W(O3UElpc82U9gBlCL?k&L$^xs z@Odv9!3Uve3O1@WVhWSwudYFlb5zXicob0`-FR({$Q-W!lYdrs@7pl?$;r%vxEHZw}Kanibj0TaIDFPw=S&X$8GnHil|O8SR=NH9`Sos6!pWG=nmeDqGw*KSvY znH=67(|6A=_?b6!xnIiq6b-Zc>v6{7Rmex-f?q&$zGN_g^E#H(N`McsXlMfbb*NvO z`#%4rW6WXZ%t}`8BtCh-R1e{KtlDN<+hG<9bMbjcD@h>49o*t#(u-q#WeBjA!XnLn z0oc@6o5ScrvnWO2QbAZj%!_s&Qmrb#hi=xXM*V4sh>O+a(o6qEeOUrOp=AM}uIx{_ z3_hKud4kKSq@*h8Sc0BoaP|3uxM=7z^b`Ek%b)@luWr@Nmb1z4!53pL`;rA=A2q{M zYT|w32&}RA%T@JCMvwk8r4#&IBdFUVTP3e=JW}k)Be|hxpb4}}3II!REy4#=?oMID zpXSZJ0D!%N@UJvPOSj8Kh;5G3his~uz`-!HQ}@|jl{p+A!TI@Xl9J-R&XGewN}O`; zLfmXSR~BgUhCjY)YKdO-SQI%NwuW*NbTL2tqim(evLC{!4YZx+#OkV29SfiQfS|uE zcGG{*va>kd7IC)`mA`p3LLPuR%+JfyC{3=HUw_sW%xT@;>&9j0dSZ8cv>LqUO|Sk6 z?S9yYQCR(=8GT zYiXneX;CP^z{bJ1vz0In2241uKuc*oNfR!Vgt*gexLCH&ZX-ch-%iR+U5M=-!X7Vs z8a2H2w03eAr}Q@`613ozb#&q+%25=Qklr~5Mo2IDa9C%>shMB_xIu<<<&#-E%>&C( zy3E5lhg1$Yv4vqjkN z$*)sc*mJioiME>jV@D8w#N$PE0r~Hl{o;VgP3(&XbCKGJ^+NW6`&PmRSFSh(8YVvP z?{=|xhw(j!cE(0d2OxA-;FO0@)bEylr?^yCzQozZr&B9NSn_39>woU>0nV^$NfgthP5_ zZMJJF)Kj)w)ZENzWK8E1Zyyp&H4jdk(Wh#r&u+VA_XBUjRz10$ z-fPdbq@_P%+LLQZ5zH)IJuT5{p7g8>)UmqDCM`baPT9X) zgx@oFn9IMW78VvxUuUnymqQ<+&z^I4cHMY0pWGSfV3_;A{*@=mb*c_?av2I4209?J zEMn{?csmM)uCC|W?INzz9$}}?3{(r+cYKi?g|@vVvkTer`USwHY{Pe)0RDYd#-n|5 z>^jAKSoHmSgZXl~L&QZIvl|z|x;Ac0_g4@t90D@TRke*(7_o7^-k8*cTPI>eX#h%; z2@?=RhY+U$!qGdr$O?;Sc3q505$8saJ)Ma*?zF|DZ^1+yo=~}{u*!==*A7ZaA==%t z{0pE<1D-;V&GL_XNf6|Y5)85CoU5QIWBjHhEk$Iub^`&DrW$%MNx7&C_;=w}`Dl2Q zTR-gxG;}5fy;`;-_0dIE5n^8Qp9Fw2ty5e~6M_{%e>hfc*0}h<6XMN@SRq&h_Lf2k6{NGe3Rf*)=SaNBKatWeILpc^2Mv7lBR+RtQ)Z^u>MbmojyJf%!BKB+<-N#Ob}PgI0*A?DlVl{(X`iPf8|WUSxq>vlpn zZgz^>}t#qmD{nNvISoBGqbH6u$#ZjNq5nNSu3JJd`q8#*;%6UZIJ z;`h1d5tclgP}@o27e6h#{C9} zim3aqR(Q2XwA}<(I1+;094y_~vbWf8_4ea%GHvMH*;OkS5pC~p9**YbOfofJv3Y|0 zhf2C7;%RbG>M6BRJoC>jT=tqr^YzH(4ilscgI2%YcB?^Ak3(la1PYd)!GZY`FeeEx z&f7orEsveU(NIgKWaD*yYZnsi#1{AkAI)zo&gKPJYM`Q+*ZI8mO52aO?IYF2-QXXO zHFy~VwAgdyKva?WbMU68D!|gFF6D1@aH=338)l?tuGR6{#a#!&Tvw;YwOlY7a(MSk zk#2dt2e(R!qm5X{snoJ!#lt!u!RH1-&fM5@YfBd+9%s8(ONx-k6-Kr<8kyb(;A}HF8Y2c?q-fw<&V&09zdMi=k{SVY0Co&1 zv@s=1%|1P~#j?p2!xw{Q#%42X3IyS3Dl=G&a06AT(B$ajnAvS zkA74oz>R2D#!fHkD%ggPB_KHz9sg$$jP97IQj$mOUL9HwNj0DleV-1cgb)+77x=MY z!-8W2YxtcIRM(}})k9}(;bz7T6F<8OLJeYdqyJ&*Ed&?tIuVr@0&74~DbvbybY@T* z`ceF-#@#MXR1_J@WbHs~5su?!Av-Z?c0!R(6~8j48io~1I5iFM1=>!(MX>4?GW_tK zI5#uRfVGGb@^RBNuwE-yd~Ck0OlYDnaHF<8Hq?mC`BaU`*@>!`lrVFj5>!tqMG)jB zk%Jch@ZtC%=a^$Ew*HZTqdl&HZv~$v3yb#!9#wGxjo8UJx7Ky0fabj4aW$U6tUhIDy_w=*43%JmHUd! z2%LJqYwCeJs5FCVa<5Rsy0#}PXPj~Crrj2mrH z5kq-4%YzC6#_?Qc)!e< z{57Je28wFdsT$-DBHSz#7&lj{M7okj0b=PTiw7M4BuXZA#^87PLd%Y>@Xxqwa>Z>F zkd{vV-}`9DV?LUveuG_PA^D$=GZG;(aW>(@Tv+vLz4m@YRiX5i0KoU8YFw&ZPeV@0 z>XL;|a(DZUW^X5dE>%R*xIeV_w=n!H{ENNw(Zpc%(p;s|DH?c}Nz6>IJ?)6#jRo5D z(^y!Xdi1Ir#}zh}VwZy%D{9iFWfRvET0JArP2Qt(bH&y@3Aah8M9iFK5Kq9#WmW6t z@9VE09@0lE0qXw8*sHc#oK2EvB1VkivG2kSuy!2`nlaqMg$$ktI({CtPUU~)m44rr zDy-+`##)^#m@O=im*%d%m)mG>W5}J8-z`e!F>^KjjAr+QPL2Efw;qru_2~=9y(Tj> zeT^(Der@?f8Nc{q_91j5{TY=mm9C{p?}x{BFt-|4mgLN6@BQuR(&*yv*E%v&QH~)J zNjnyVhU;#uZ%h4qs(L*APUn3)t%-?Swm)Zti|mMdf&p)UD8;B71KrBXz2x4-!+IU| z2cRYsP~Yr2lw2^baIgkbJQD-YF>}lNLC(^d0e4|wLl#i%Q6moNV;+1xht&pWjJC3K z@;Dp^gqKCu0r1|uUapGJ4Zf^R)`*?U($KRWR|Uk=^7PkQG9y>EXU{l4xU zrGKfXe@24gi@a~z_lJ&_mPmM@Aw6D(V9%zz?Vn$|uDAQ3@x5k=!*4auzkmF@Po~KE zehzosd+zmrpJBHfZ*u&{;;Gx$(ukhE=;R-}Wwd=BqrChaC)=tj)G?Ipv&vQ@PVvAs z;gYtNzXj&ZfHA#jK1M@7M(ck~oZ{^?IPc@`dOe^j zW3z32uZ8b&`>sA6@#b%olswC>UpY98>}c(D`CASyTfk3m=1i(pYnuC6JofxqFSa;d zX3s5I&g(iqwT67!aG&wN!IrnxTx)sUpY=P2hK|SUF~8Wx_j}c4Zb~-iZ+Kc8s`ARm za0ph1W1~9v@%$y8gihCGgjvOZ{rouOyPih+^}8=e7Es#p#R`TqhAV|@ z(c7%Sy635jM>qE-?X}nW^c{C6GhE$(CI$;HX|5$Jn*1Nlj%^YB5 zl>Qj>jAe4Xne$DQ|7?2q{Ruw5XOX)=otel0|5>Uy+v|6sbAK8>kjv)|7aoVlTm2T^|1L^RNAcPZZ22^&n0i1|}U*34viVjU@=eEcaKSr@2O=M@|$*g>_(g)`i|yN1rmH1^wVBU%^OuCa zsN{P00{nOY^t3%FNze3Yv7TR7Trj!q0XWK}JKpKd501w(0e#;$Bb_C!crvu1T!U^F znbV9w%?uHr2f$bU)**-pX>NEee-P16$ajmW><$F6BYFUuBFfJWOil0r51!A_hC$J5H2{AAgz$2m}JgzjYILY-Y8#NMH zQ)CK~wD+TVV%&tFni>Z%gb1278Fh@HiXb(8$uq6?cqK(L4+7Mvs*5H(1wnBwqKO>` zh1DVwbzyQzT~0(qJ&)W~6MR!(B7>0f-fY!BFc^e_N}{U|dL0B@3F#eEQ#V5g{;)f{;`f#XY2j-Dr`Rdzu)6F!;j| zZ$@%kl1kBfoUw2Y*)ksSSNMT^@Xxa0DMoeXvJCDFe-pnT5R{w8oV~w4OhOCh91KBP zzJ5)-e!y;*UsiU(hjnJHmMVW!meCmqu2#(%>HDg-E0bK|to3FL2S{;V zAPMME8-irg>l`@@8wAASfQH7;v%7U+IMUKV(!fAH)b)$%(Z({ffF%}gR)iZdlRza^ z8Oj#tKtfazM}V3Xb3t!VOBb==qXfP z{lpHh+zjWGY&fY#7rLlnNKpt2qO=r_XlGy?9VL~7Ojp6^(lls7?04~YOrl5PcE=-e z?zmQ}l#1BNgCUdZQ9g33(^duON+4mKP>&cb;G6RQoglz>ty(11JdS3@0N?2pcLV(u~;FE;Uq~En{z;LJN>mKsGQT z0^br)5PJjy^dJX2gG)&=vqGUr2*$=B?M_V?ZKDiC46f9$gYBHE5m;H26N8~~Q&E+a z+?!?|0@t3-EHS^z_=K~2nv9BCiS6>H;9q~8_G##)YLHK?R7ok zy7EmjI5fzDWnwLZ{qoG+m_B(!mf_c~?CqD~yUy($K!uN2glpL?HJ@U1C4zJ3ZuC0N zQ48ZR!<#~N*i+EUb@#KH<(%p=tYYY|Jd8#Ua4Td+I@jJ6Z;RXuH77#fB`DSXnqL`j zpFUnRirr|qaAM)w&h}%k8$KY6n(h6juSk2%tnzL8kU6ZUSw_yy+YTIyP)^^0#it6qE0g{>ds@(KNAS{cETgY>cr z^>nMQM^P3q{jeTF`w+5#hQTfI9)y0kS+{Yc+-0(BRd1TjXk(|W(*ATi;8C1Wm|1j) z$9LE1br}}orf+fj=*4NNsqoS7+uxS{t4;c3|CNE~Ju$-4P5KFcR8qLDITM7mI@=83 zCq9i_v&YxXc3p4#abFdue;2tnU3jaN=DYf$m)C!y^spYb;o^Tea5c&anTiQfhd30S znI(FXUu#eFv(Sf9?qs^Fq?Q`9_v{a}-1G5vnDWJmIstRDvgpnD%qg zD!e^B-|YJ-b;d=f+5gdr*qin4FZf*4Rb9IA$};423;vinlYzL+v=f~@ynT1^tr7Uc z{09TxrR7~eqqT;c31Y^juSFJpzkmpXlLQCf5*8dOXxhmbd~_xb59d@vS^^|2`}vS4 zBSGvhhEQXM0*jYQSPHU?{wdm1>^4fSQg9dGFcA0CgPD?f%>3qWd5@`y^ca?EDT_1PA z!~OjO!Qpj!?JrXEY7Llh+pW&G``P@f`!>kZ={7o})$^#*@@UK#@6yZ$7=VVPmT!={ z*x+LTuI1^oXdlp2JoFH_tXOeEZI;1`S8fk_gg@%&MDe{2d|HtM@R`puRs80ttr3!z zPBtz?>NLk>BQqz0xyJx!skIq6_*i22MyN_4EZRQpM5qG-x>es%j5UAT0twtwBupff zWv&0-3v}Cn3Im4_D+iP*+gSf)i*xYnPC)Zn7y526ycHjdrleJfIiRO|9(3bzV^^3t z^*n2_^TTQ=3v#`z`1gZZ5$$K%A@DdVa_4;^Zb`Lm0p}}ykW!_DU!f` zmxrquXlm^o2p)Z9HD2rTk6w~S?=atwy&A*n=j%KYmp&Hm_4icVsPz4tZ8tnf_O!t* za2lA>BZO=*ae|)i-R)8osnZv((ea zKJtET_$6~Toocncw1uaPQ0>!hi}7zo7+dkIFL=LYjmQPkRWOUOu^WJ()rxY8#+l+K zqNu3t>#!6HMWcPTUIG-^5g@=gr*Nx>iAeiEGw#4*gv>b-sZOCbRCXKZ214XctSlzw znCzGeI0X@*N3(*-a=B(JknOHYB)cdfeW-`^mx@~c+W5u!=E23~hHa$7l zNx34OgCr*AIWX#3mNl(hw~>n*!smpLrs6^^Y8mipcrWUGgOfyA6#4f*B=H!1;F+MC zG~H@?bihfQHbSGx_WGWoo-dGklbC$5;O!&Xe$j$$FZ7kp8~X4ne;FwK(Vy#fX2^BN zx<`)v)dQd|8u>hkLjzAZ#lbp^Vzr3gYxHkXLfGuZENMc2V8e3V?$vm zTl%MdK{)i+v)t?XbzP>)bUptx-A~u_7DpmJTSNsK2T5ay9Us-uNYQ4-_3TXmJA&^{ z2Z_6uKunm(zZx|$B7-FAF6@Em;%4##a>w~xpF#B^!-fPcDNUm9Q?3^L3hx?~*< z;IYf%l1Zjbd!HJ}2BNx;NEShm`M6*Uz5losj&B<+VOpTH3Wf1Q z{UUH!eg3(R3tl1NZ9X>j{p55WuSxe6@-~g2>N=O9^ThB$bbbhO=_)*`$oqN1nrzFk zRBs+FFO+*n*A(Z4m#ES=>T+*X*3r*M+RI0e!vjaX0=<8^tYoyZm+oVH(z6XN^e&ud z5t;4FHnNBVrk62hvL<1?enCP2Y)M{HzhmCmA8Y+yH2TGl>0}I=RDwUya3m>D2wK=dA zu%T9%AjtV)hRHY=F+H#Y#bKzO@l7IM+0$L0DSJE3b_<`6+p8YY0;MF;?%tC$jnj7g z>vsG{uhVVy{BAD?%B(&KMevhfhbPirULd~rb^3YLW-jB;QD(y$##j#xNUWh7`bD9p zLlaa>X4X@50s(m0)12#Aq0 z_6slg(Uu(DFatC6nD%q<%F)U;ClqqFRgT7O5CXmPvHYyJV~2lC*=UD%W3@kU&*fvt ztKkA1`*|L&`)%@<(B_T)?x+|4*VZ>cU00C4Zlt=;cUaSn$~@P6XH7$r*Te=3^-8j6EzqtWRoBbC=}nja0< zE0d$+2ajLfUnd8HDw74Et1h6%qs-0Boy@(^PS3FLEHgid6ySZf*pD;xoNWT%ZFrme zt-%4W^_I6SpvRT|7G#7bea9V?q)^j$84?{=@ib22VnO$|>M3;B5~L~wOJO6#X-0i$ zaKPZgQN8#2n~z;LF}v#>3tMi25fy-lUlooBKO{cryibkOn zG>WAG%o_&J2Mm9&8;a@gV_iT)(LMJ)h||22DIb{YHa#r!i?u9@pq?N-~Bt}1@Zc;i@d@~ zymm8*y)c+!0Y5O|*n{K0F}{1pj@@S*+jhnmvxD7*#rPZImKB#&4M&E= zuoObWUTJt}&~_%QkQ5e&B3M%;TI>z+#f5Irj>SN5m>5|Rd10JZi#2%YeeevuIO9FP zAR|-jHpQS2jV~;W+VtUtg}5Y2fgHRE^8qAy#o?*rhY3kL$^{zX2v8iz-aBdX?pvvnsjCpu8Z(X zqr6w(AAyYr$$zx=P2i)VFt9%?%2;Wz&X zm-Dg?H&%bv$9STw_fD=qhA!6dic zMZ%Br_RIdwjZG_piuTaY=>6MOyd~}wiHE=LB`ZJ|CbOMcqB#08um!Y1_jRFrSy7)) zjqdD{S#MLl)9wh0!#81ka(e>YNyzH1iCvllOV=YM$`ul)CA`ucmt z)87$5C}V(5n7rv3jTg}f{bJ9_i!Pt;X*(~vMqZSAGXs1{ZI#olgDv>Mpq+y}A6#7# zIP?)t5V+n!dc2rMzgYd#SiTU&6XZ$CHSo~t3LN5g+SS7+TpfLf7A?`k!Sz(Hm2VfK z+xve<$Kz`o>?%L9#<>_n=FLcuY(GreTgyS^%ju7eH0t%`gU=mYuGbqQA3HsIpdPE; zd1ozFKR{Nl`_45dciwaCXuH#CA3b)@&Xd>v?F-)b+{~Kq z+lwBCE=IuO$n%tkUXFvy@9I75!M2;&6gzB{<2Uq*-_$7G+;>b z!TsaS6Q?h69`qjbP1EmPb|U{@Wyc!R$Z_7;1q?^Mi@n}87~AKyF^loyC&osAF~>>7 z&=3yNBiu_|!abUnYiKUj-L+JX+9sD%rO;e|R8bZCX`5DW{&)isGT)%hHn6Qa?!|z4wLa9G=^$%qJ*1{XgZ}<@Ei?S*W5$l?R#!tQwxEF z5J1~M;@1j2c(Z~xdkQyv3#jn#VAva$==JJiPoYxiss7=F%(%cx`kM;;H zl&K&FyZ|+a)@GwDWBbVoDP^HZR?^?92fsWq?!V0Vb zeIR8`9N>+aKZrmH_OJqZyJC;$mX6P*Gnw?<@!wd$(*EQ8oGn&BU46=bx~nb)DhCYt zwYuYf#jaEpc6N3)VXY|vZ#}_%0aj@yVKK?kq%Cz_jYV~8IJH@8*Wyqd?SJ4{?cA#_ z%FdEgUMD7tbqew}xVlKqA?tM<%@}CAs5PrwDCoy>2wx;Q z=#;Os(}%B|mAeQI`Z?NgN-)bVLK;8iCsk(FO_R?m@!o0 zEdnm7)bRY^+s`ilWBJ*)2c6D3Slv8#`sB^j_{#IING__;4wYBGyIKx(&Ry?I-8^|3 z{bX^Ctfp&=-hOW##22d-2#e}9S!Bk%)|Ne3R?uz3Y=f}Mw2$f?x_pg3koc`WGoReV?oJTpJ%0+kCy6qn zvuA*Qni!|-Vqr6KE_lM1YPb4LpnrxK6aQj0gGLNOPg(ambYbt_e2zo#93C=9Ojf@I zF?O81IMlc=bC14Hnk1qCejmTjL;-?W+dooklf9FCizQG%+x&m%Ba@r%$G>B3LS=Mj zfAPX>^HtzKR>&!Mbmb<|14o{D6Os-u06!#W zL(U~GmrlOf2h;z=)by$1O2Q#Ko@hqR<4?|?u~zXL3#WwVqLHx)a-<}F2yai9=8ObX zdHjhp3$GiAcux~l@;FAcu(ev>i0WM3hvBQR3Jr2)?l^az`wGW-iF>29*WRI%TT46W zK{LP^%1VT2V1<5SIMs{PHs%p|M>f~EhomA>B~RR9@>ykXp=(e2?r37TJLK0~?Zc8R zdRp@%@8ts#^n1bA-QDRDeV(*9p!E*wNgb7iv#pM58RW!f{vAi__MhGxL8!4kHa#Ld zZ7;CH!M>q6nSU4xwW;K zT+r6w;A@AJc=@j%Um`7D0$~*eYQ^Ta|E=(@AagzqDHx3g(Q9w1YFrtHVnxB>ZVotm59d3=d*?rNSXd>1eUL z`t`#Ce_rxj4RyWj*}e`r{LS{}>Z;@^@YAaMi{ZAvsgYOYEagjH{37*5Zm0KJ0;#_4i`=L&#*PZP zaPRex1hbN_87`w{an?jfHa}&N=RfpnT0+zC3VI_on}UD5M1Ro-mbKRvisADN3%zQV zrc7+yYs2DIf|Jm$rDhjNAzV<{v<3&&SjdHY8N%1<2>2sA0_6{HgDf=8NieDxfS!

URu!Wdj~5Me`q%J>f51|3yZ;4Q$-xBx004NLV_;-pU;yIs%2Oxe z`E9;3aI-Lgzys!;PB8la*MHwx8JN3)Tn+{%kSG9FObm4Z004NLV_;-pU~c%|z!1aA z@c--oa#jWgpa=>m1pt*n21o5mFKG5*!ka6B-k$ z6WkOe6mS(*6_OR!78DlJ7kU@!7^E3!8Uz|N8$28M9C94+9grR>9=acFAOIjvAfzD* zA)q2IB7P$9B&sG%Cg3MfCzdD1D26D)DO4$tDk3V5E2b;GQu+KGfXqgG%hr1G|)9FHI6mLHZV4zHz+rLH^ew5I9ND}IJ`LK zIS@H)Iu1HQI^a7tJFq-5Jc@XnV_;-pU?^q0!=S_f0!%>61%wO?|G|6)04+rVivW0> zg^@jO!axv(pTUp>lqgE1G-*~TC=$v1lt`&ipr@b*v*t&(*IF+~)HzL#kQ3wx>1cC` zNO{;p14X>r*>B#ynH|Xh?y!f4^1J6Q*~2BXk}J5tqi~h_ldw;I7OtU*o^YM|t8fD^ zcoS~2W5y1if5ohYcVQ2=_zR-Y>`CGV#2mA=vss9Q$F!8R1n`n9A!0M^f zb2ZzkRcO-4r0#f*^S6VzS~7Jlw6Rgwz8pi>eHLw7H@ae^AVj z`~ldLZ&!GnZBqw(+cpr@v$ZVIPHea7-g}^}-MyP8ZPS%>?=}TNh=c{=C;+sq{Q4e; z{q^ftej;@M?%o~Vy&G%|x@R`{|EII-^ z2lwJW+>ZzFARfZQcm$8)F+7eZ@FbqX(|88Y;yFBz7w{qkUc$?G1xGl>t9T8s;|;ut zx9~RJ!Mk`5@8bh}h>vg;ALAOX;}d*}&u{~u;|qL=ukbZ);ugNaxA+d<;|KhRpYSt& z!LRrYzvB=5iNA0ge?uaLLI#ZmauhH)!4eiF90(Ow@Cb;gaXLt(_p}Z|+9-;7W$Pf6 z@yhCv3Yj~aUAuW(xzth~rdI2yDAVJUTAvsJYT54Y^Jl3u<3vhl?apr0R_DHt z8fR2*jGL^rDr7vKRSc}#lex5}lAG4vlT{@`B;Os)QfacfLraY{&D*UwQQo{A0%NDr z^|lEs=B2R{wiWrT5Ah~VQ`;l+>a;WW7gFhzXn9e2l6k5wuAxu0cNF_#a}%vhdz&cl z@h&hupgw>%L(_m3Yr|To)1Iw6g(>R) zz&21@>1Io*EyurX`^ME<32To8>qS(arss=!Ym`)K7stkB{5MRc4?Cqa_JY=;?r0sB zL~dVM3OW-?R?(2-PA7$QnJCCMZ69Vv>4`NVirS7^m5hUyUKP`f*3Od5My8ax-dl4% zCeG_tRlADHrV5c!3_J)_ZMM@oj0=h<(vMm)MxIiNqe`;QhmESoE8k2~qNLR>lfD_h z5!a`dJIsL=YnE7|3VrIyi6(s#O{vdEb2s;<65POO7+}~4ZJ5^H4KwcQK|9dBr|>2( zV)E}2=L^0sHAL{MjCJh>9Rczt9X_<*OW-#~%>1^C7002YglkNZj diff --git a/templates/assets/libs/iconfont/iconfont.woff2 b/templates/assets/libs/iconfont/iconfont.woff2 deleted file mode 100644 index 918b7506fffb89ad44fea9db244c2c52829310b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19952 zcmV)0K+eB+Pew8T0RR9108Q`!3jhEB0FRIW08O6&0RR9100000000000000000000 z0000SR0d!GlL`uf@)Uu=WdSw3X9tU18?$v6#<-iY+kpsw)HE!L z(zr^aqJ~jUKH2~Orz9vDW4~8!1EkcfEJBGXwsnn=no5%qI8u|sfEH`5uIj|sTc;{i zDNUx*WNKdMK9-6*Rpn+_)jyBkVYE9QVbZe&A_3U>v=cp!=DxZa5&tWnxHO+#uVxP> zfxc3G>q|JUZ0;Q8{w+>3whS6OBq^FAJWt=fp25CCM(}PaZwlfoNv#QheQnks1n_|B zDH<=8*8x>Pzx_|PHDe_j%aP?|=Nce@hw%W-ty>2S27?vb=mpV>Vq;?)E9g<9T5N`a z*hna-{{l7^qK%6EzW7GI{`0TszyH30`sw=*QFPmO?pYFpK%=@ryZ4hd`It&SR6tMx zckOofJN_M7OMWr{b*RX3R+-S_EBt>ihn>(G5Gzf#s5-HFcl~|>;AD~z+pMT~V*MrGN9J~uW}y%gjd(Z4?_3m|mTZ$7q%s0t z6$+#NLRhT+kAVNPX_czIqgf;`;SmKH03^Y^ynb~{R&}XmS4)=FYD+6=uq9JV2DM=b zG~`8$4gk6&d)Dolosl%~q(SQdASHD9zP);MBIY!R)f}&g z83>qe)y7q`O3j%rG#R*ZORUvvvppt!yiMHxZrydNv##F& zuTS4_e2U7K&eHAX367I%YMJG}s2|)3D_Z~07xzXm^2yU*cYOEgOJ4@wxIYMAPX0mt zxbL&d*1wCl!=S@3P6!+UNd^)@%KM4PnIBEvZl2=>QIZu^(+%_5*$&})eh?;jNQ{P) z85a56msQ=g-Jfbi3)T&+6sw^QPWkngs;#d#cAs^n<_Hf%Ng(?@w#KP&!)W%F1a~3= zIGPL)BVzN00U5kxAn0RY=w}cZU{DxjFh~Z27i1z(Kq3KAU?>=2=z=csfFZ_#1TZmV zF(tfU26)bl5Diui6RZg`+2X=!t_384?T2i32u9g)n4=`fp%lm^Dddq1@<|B=q=G_H zLlJ49n6ywrsZdHfC?h?TQyNr|0Vc@^m6Q%uWP)lkLpoWYhBBa*oKQzuP*2&=KsnG% zxsV3RgGS1SCMtjwkPBL<5HhF;TB#UPL2hWHGI&Pi&`uT5L6y)+RnSG%&`mYaL$%OL zi{Qpj4mT!Ya=$m}L!M zpVz`;UI$Nj3+(baFwGak8Sj7<-do_5I{+tqCoJ#_aKY~s_~rM2b3O})0su1t7ZwFR zj0v%@CB(z5;Djlm95#g|5D8%|Yzw{cRM-p~!XB6xCK^{FKLW1Zq8kS?v(Q*V-U6(- zD{QPISD6rqLN84nm{7$}vw>r!ash_1 zQXDewK`X7C8DoE`pa@FMMYsQDH^!WiY*u=`vekr(WUmqcM)_yN3X~P`jYTbs2-q#$ z#fYS(G}<}~(qkf#i;JuBoL&QXN<+Nn#r0|ZUS}OBg*d(Z%fKm&fHUcQDvz0+6<3DqKPf6IwCuNL&i7}OIQo``7eztu zlP=}5M+Q;GM@rVOw9{q}3{TfKIRcAHeS$n9%7cZ~TE*a8?^wpDythY?eCxnhur(5< zA>=EanpDdMa4AC6;*)vsMVISUxFW}LnTffYNtgn(BB+FMlBRf4s(PE5zb~i)1YDU% z5UW@v3snG#3FSG8m_{@@TS}O6EYNJwL^j(z)6FJJRaS>?@M!WggaJ5%El8)U$q@{( zs!*dkwLndjHGFf%Vpv@^XxV&qV9va@zwR58FZy(3 zFY;0cOs5@H%Gbmn2i$-(L2v+qP+4g5La2+n^-vWO&a2edBR=48WFn4u0*AkWK{BM# z;d4n8>A@h>(HL=QgQKWET%Skdfo({q8a8e1M$XA+Jw7C(>KIIPLL2{L6^ZJ1E0*T_ z)=w(2V-aBj>a!Y61|G)-FIY{U+Vn(3o@}r$0|ZJFPejBE-E_TUG(?%<8JF`ntR*XA znW%Yu@$epOV1hlbuu6)n^0_WmX5bt_fhT5uDX{1fF{6q@!=dqu?M7d{IH|hInWSWJ zIAe&%hBBBdeUDjKmEOkOJrd`~WDjPfx@mAyHo)bs^0=B(#2BAexMDlpXD*tdPLv}E9ER7LbAfkfdF!Qs8W{l%o{P--0S+wu3dy`3mr7dHo$6XZc zF|XGpC{-jIg?}%ie%&>FF6!#bBEcdh*dy2J^8z4bCmS@^<&~bfa5%Te&yFC|RbfV@ zI*M{SkHZ87Fl3W*M8ap|bdOb47@kC!vRe??kfADKGBWgutP*7Yw0kBXQ}VGOnNdmv zto@QmU2-<2!z=nO+k^Ho3C_rHmX@>+6Pd)RL3iAJq#nMaY}&zMwmO@sh&S#ZptpKEK1%lBX#HxK#;}it1tpZ5tilEW z=24JZvFJ074j(T7Oa-4Ee1ROA6VWUpDNKI0I*tlT!UaMwn@*?zY!`GNqni!-JPs=< zkt&3L+OUfEy?*xL>e=1Zr=M?M-ji{XX_juP5q*5?_t1em?L@lBvHB_j{KTjA`PD(O_6wjVj>n*W}Cgi-n}6vFyR>&^xRDy zT6LA8vL2JiDKUxJPZ@vesk3p)$#vbxYtz8eM*B`BN?7 zdI2~2M4a{nJGPful)ZinL6GR0!<>ipJP~c%8=J71ptDX;11hx^U<&K{h=Ih#<02;h zPHG_C;F22X3+!<{m`4+_dh4dNc27v2P9Fnu##H;{-c61a$bCo#hc*PlIoOzW*gW^L zXq;s9tUFIJsL%aq6bvh8&hfC7)PKfIg+&|!x{(+JL73*CAmB`sxk-e%<|+c6jwf{x zq)Is;Wo>B^G!3`87>UO~Q8!{b^3X#!AvIsq(36z$7c1bxjl_g6;BX^O8ELp=N+aV+ zHA^i~*NgD_d#Cb>RUYTB+98#VtzcGk@?6Fiscth$D5GJ* z07raKlN*ZJqe4uRhEg9LT5~ocE!t?baLH;)!LmwW#r`8K^-cw8NNu-LP_-2w|9&%| zl5{$i%Mq>eR^OVR`1_vtU8CQ8b7$QDw12-h-~Gz2FO8|Ai$3#{`Tuhk5~~`)p$KqG z*X%O3fY6yRT3h7B3DlAgWPkh<7%ki3qPN@9N+o~cO~EO$U`)UIaJHvTEj|5y$Vi33 zJio3rez8_LjI1T=0Jw2W*yd=B8-lK$q1)FgkMPF@m=yT4BFM2>tGAx&u8nG$v!TSN zQUNWlD)(irJqFmyBnuI4|D^>01Gt{7$!l2J&s=P)Y}iye=%i*$9zhD(R7yeMwQ7FW zf1+L%_S(>!>U(T3qWzt33${>7^W%^Lp7UZ0LrPm~Xn$&A5a*v-D{^Z%$??U%sKIon z(~Lp!q!kEio^Mz3~QGZ$Un5 z2hoEInM}4wt)-z+dGFE~wuaH)2ha|!k>Fb0iGL;ZBUZ!-C1s9KLLFWK8xGmcs*tpt ztfdeQw$ zR$Psa=|j;zh0#cgHn(@JM9%l=+zO%GdCpbRBnPUOh$Pl?mE6vRzdlzU66|#HxH0pQ z`QE-a?no!(pDaC*I==woIvKd99T1x`z!8G;ynpHuF@WUI zro!Se#0&8s`O1ccy9y|JJZVSutbZ%9npC{e^?H~H_?sb{Md-*3091HYIF^|-Hwg^v z03=Q=M6?j0rp*rkMA-6=awk3Hi zpJ0psz?psoA=6H55V%E(qLk5mLbJNMG;oky?{{T9WwB^!?+cF5>59oY6q-FzoisO` z^oM#=hxxvgB+Zz6|xZYKdaJ=M< zREmQf9^!9y11eIXb^vKmrHV9n6A#d|OB-vTmr+(An!oIlX|W=`BDXUgYWR9FW(9)VbguGBu3W$j=PJbHkgg=U$swxJs2|6;CXOd9+7{U{rw4Z$Gc!HW; zgA)Y}4(;F0EZxNWh=IoQl+i=m!f*#CcKx;T*it;q)B|jKx#s%;gA{T1cLwXZtC|m8 zSNunkR#WH?I9bSmzFfTx(U19iyoV|}uKrXQ=lo2VQL8<%$j`$#E|==@kDMQZu1hO&Ldt#z~AgIjUoI%SUekmBX&xk;FhXzSE9>+Xdp zDS;<($NdsuQu$;{z?>m53DE@`1)Y^IQ0;w+8a@BI|E%`p##e(0jha921GwU3fYare zWz_)T^>pj~Z`+wouxzGM$f3udyrD|@F7lp~7IGyujdL4xtm_cEU_&jOSd zHlw|rRI@A`4*rj!u6~&1(DTxm(b;Lq3RGETf{$}3X%R8P^*7T7~vE&a(i-FmA2JR%3ucs$ce*l-}t7%6P}L;f>|B4=2dC#wO!7ARo=CLB{!R+| z1cYd8HCyZm!$L(I_8SSp1`@G}r7&nYG6HRlwjngw!YVO2L3ZYjAlJi}M5dsJQ6k?- zEV+#7CQ>Fr8S%R!;iWXYEv7pnwo5%qcaCBfb=;ZBs_}|4#ihODa_ySOmCq3#drH$8 zPsCMShvTcT5i*} z{1kgv2^J&Tmb9TO_=&?(*fc*zd6^*&R+zM1G5UKw@F)MWei&j;BJ@&2*8jF^hyK6A z#G>1BmpVF~W^PG`@{HikiW$0^tSl=dDJ2i!h)pDJ2}3e!>!xPx8q;Q2s_??e!-#JF zqKO=D+SFKYr1<}Jgr?o5oq|tJG1)xFiEUcntWDa*_Q$7(q3c*z0Fy7j)DD<(utBZ0 z(g2z68o12MA}9FRj1Yuo#R=M*VJc;btA?W)EnEzHy-KhDDg4V#XV^@;n6=UhO&Oh6 z2qw}v=qwF?+*O+C`8nA7mD5U53#vWbTguRYG+y2Mi3PS{{zy#%-*6#Vux;-Rm^TAf zR$?QTMeDl72=!pTmYBr~3N{9X4YKQ?uDn* z`65*WuF29^h0$$<(2Uh&5Sts*?J~)!QWd8#DN>dxD6R+B1W~5*$XyHs5B9vvP2I%D z(_4zX@n)Rpqja3ppeqrQ$JeF59oT@=`T|cyZNQsooyZEK?bi{W zSR52Eaao%*Y(_|6S~@R;(>)Audf_CU|MJLehj+>zjjd(5z>C~L_%b4twam{F%9093 z*aq{<`HZ&fjVN5h0=B(57-8Fc5BBjIV;7{*23=rQ)(*O;eN3DEBpJqJJc?~Mo6Y1v zQzUB$hMKLMfLwYN3eL63LBXEd7-F&%$!$!iWDCnK%DZs!?%-wEnV^yP{;;JfL2%_~ zRb3TrbF^|ln>2Z@VXoXm*!k5cEnIg6v0?=AT(-=3kzJtRrLHiu4Bw<>(`btNCBUeK zi+4sClqrL5oL~6y+ydGA?tA~s0Y7crH@ADWTg#u^x4ui=cL_-pcv&9TCRX%Co$C9p zVvTUB-p2b+H{k+cw|dY2xr0qd$lE_~X6VQdFe|r5wF-bMd@7}QtbFUy@T>ua2J*C+ zMtzrlr*w*#cCF-w^jh#HO=xBfsOqcn{5{#Fg9YS=o-9=e&5RVWT+<+mpCFiYIZ|4f zLOzso$IswD^rBsol@RQS2{{c!o~ETZs;K=50H;({ec3{f-x%L zKM9A6JnAea)D_98^Rd_t$is~fGu?F}x}V_R+1cZz7sZMG0WE*(S5H`9UMsy#$9Qn( zZg3)e`q^EG?%(?|BcS+CKi2XZy{3Oy3cNl0Z?pNq_-p?+|Cxo_P+&uP!$yC9v*TuG zSngs^9K6scxQ_Npa7nR;Fu{@lSR&kSHDcShZ>(J_D#(09h_Z0DOgFK8})r-nmc%aDXSJ} zcAuuG@#Us`#(g@a+tOh(+vHSHM_-!XEIJ#Ov2@KDU-nGX`d-XfYWm~cX#X~2>Wm5* z6dWDXl5M{QdZmw7X!Rsv{)RPco4y`FU><=B@jKmAy6nGL(QSrIZGmWKQOdxWZrVcq z(;`n$0H4)77+td{Fv7&EVNVvphR^*if_gYOZQc9S~7Sgm?nh(d{vdk)|BPscd~l9fmQ za+@Zi9^NAC@Hn0|@$zLnwUwmMc!KTXkXM3-e08Km%l z{RSDp`Xzp4ux9dm1IyAFM=*YUG_({&%&~e6rW4Z$X0hwCfDLcTJZ}YmBEd9TP&zlN zXQU~d`{iEBm>qD%nj)yqn&O2X6Va$^6F<#wmtiEjpJwZh!byk|N6gwAKA_V*^Dw8M zi|tS)2l7-~?@#J@qOgg+LsV9@g69NzE*K=51+^$Lz@Vyuv($g{xaXzA8^iUU@W%Y2 zY%p=ZunaMUuP;k5D=qcMRjeDk~ZpeO+vje5?YB{??%NH`w>g5MIB;a z$;6d|3X7rB0@DP*kXiIN9!fA*SMn}xX>PEM^kbl(XbVF>m4LyU@gqGKW00P8=r@JQ)}j{@*2sKNz|6Nn?vI=@)xS}$&B&DPu13+;#XYaOHGH(w3Q zm`bgUa2pJh7Tzvy@X&fxgpNKw-<=+sx#`fM767*xvyyZoPv?0!m~|M!6QM5ggtXr! z7>@C0WjsiRX79bh*|@fWNBlL%S48KdeI~i*>J~$outv98BTtMawtA25m)xVFWgI z{`U7`{;n@6x_vA!fb49+r~$t3QT{V@*+KD`%>O_ zP0O-SG>y^6e-#7iLrAWvQ2vhSDpdE-{LB17C4fU>6$!0khZ~LkFY(Y(Hj{R4t4{#P z3mXO$h;u}l=6HKz9xS?Ey!59LAHg3-B0&A1w;p+uvZbE{z%jtVC5^Rbif^1a_2yTa zaO%YAk<#(T+S!@s_?f!8@iXO>1OjPhcKqO5rp?8)zdd>Ctu>&~%6$8ycc&SRKo}-rEv;{r_vGsP0nAZtSWUahYEw1bEiUv%#s<0PIO0 zkkE^*YK)PAVL?jbNi}X&Hr+^rN+e*#>k$kiG(M*mJ1tZ~ zzP{)~l>?ykXGTc7j9Lx?2e*>J&>BN{2}AXw)=e2V)h>B`D&lyLK0E*b{_lb)iDj;jwJ z2LPuK|1OrPLBKZDCcyPk;1wi-t5ZfjUV~8`0Yjbf&-nAOR&qC{X~s1~t!X({4Fbt6 zWM(we87*-LySeu5F&&d2kVj6pdx14zL;$>fyA1bGRE}ts7hbjOd6erd{4VIl0|oS3 zGt$h8k4P`zc>tHCo$uv^sf}eJbB!Pe)2sd25f$buV*UHWv7>xuJ5re`Y9hvO_s^=8P&4+f!l!@S85n3hZ+hfoNV zK89AV75T$3!hsfO6s)Dii&J&)i@=1?!w3466c`rdJLIDrF{~EMD6%NEKUQ{ppbYBnMTI$hgb?4+zXB3!}vrR z5$B>);>1W8A4L!nB?uTM8{t=V)cX#X6iv|Luw)3FN5B#~z+?;xd7OYD$gw_wKKL*S z67P>^_%mQ|Dhb9q`BKqC1pOHmq)0Cu0DYgn*$CX&4?FiN|8O=>0w@M-*1vC|4+0eK2dO&k7$DZ&d3?&8K=B zu|D;c$a)nHpO3@I&|#T;43tCt(2t=ZU|6^nP7FetGh&$U;Y@~A30J;jI&MvT|M~Ox z6Sr=hMy_ZOqe{_klp8$_Q6WpA00;y?y#3gR&0Th+iV3(jkjGiR{SceWju>e~s&d)b z|6Vi<5Zd9%ZZynQhlXm2ATP?m6{(@aMRK z!?VM`>)&S<_w4fY>4#CR%|a+rVNAL}3J@Rm=uQkTVWh>jAITpC#vrMe`nmq z=)5vDC45M@*$rU_p*f3aiy#tkWJmSx)!uyV3Dk!G90wBHt=WlY3qW8T#!%o-RY*YE3 z{-0hN<*+<3eOR``#(CgalH_MgQdl_T2}YrkzT-|%3!`Ye(oYtzfc~f^RW*L;e`oWt zEmZbUh$du6Jw(^gpP8+n(;Cq_r=AVcfB+^Ww6-8BR}$|`$VOJb$h*%om-c|eLQ-|1 znW>?nIwxi(H6#q$RR;6%Cmr?)Rm9BOuJp-lU7NwP3tY{`2?eonuK1!~0=1nhwkSc} z@b*7Hg+Chat5h(sj+F`pcc4$tIFI#w9*rCQ?7^O|tT8vcG4^Kj%uV?>K;S)#S`!c#MCW%R@4=h@p1txvBmHkTiOTWbo{oQ@P1Ss93#WOjtyN%kU%HV4V80yM@=s6!mGyRPsRnaYr$)Ue}@l}ZQ1naESO66M#r&-OJ-34CMM?c~8z1b@7+9$< ztIe#=I~xVuc|heW2M{7untalIBUM0#NMWYcWGTH93ghAmoAbEB_~!e*_`-z9&9xCp z_KT!u6*rEP0p|;0VM6MQZxE>WKD~7) zdgkmu0j~}{r3EskKLaxdUj@E8I76F>cz<+&21L5n-y5GE{1o`<;M2(ea?b$kPb5`V zCRx}1`6x$JhL|ZQog-$xCv!UHOXi4<9~aG$%Img?|yP`uw^uRsV!k^!yjb&!6x_A^>8O z2>lMIF6vd^kR-aV^PBJ!;CUkphb&H7B3j<|x$8ExH)>gzP=Ob3@Cc`=f7eV43O71Z z8di`_Et{EQS_`|k;)zfY6x#grD8Lv_KRzq)i~Ma_!OIHH)X5m~xPLP3zkfK<+pqd1 zzajg%P3~B)wzC)EjnXgXNBc|j8pq%CBw?BZC0U~Yg@azXveQmyxSiZdqcJPMJ>X_I z7~AmyA^U2wjK&+BPVU>^LVV@4TpwtAB;Y6M>L+cSz-6Z#YkV2$;NJw8y-)MsEs}P? zD_jqNt|}Jo_G^%k^gH`yh4qK8{zYtE$%}`@$Pn?#AH>THR9NqG-!=X~E+ap%Y~PXN zz7&o*os-S$ow-Sy9DgH(0;^|F*d2CF%*b6kV86nyH2a1wJ9cj5q5Was$Ua>k5cnLM zHs7r4j9h!oC-q{W(ca9Se^r|7s)Z6)fq0?H5TK~%78GHAd)yq7a=~BYu(sh;U0hr? z9i0?YKsTsC`$mRA<&lpgCHDhS;>Xc|g*3cj<*IgW(cwW;7a;1H_w5&_dQA)BqVAp_ zgv(&w-h=1wM#U{C=-vCpxAS^Lm0KQ1IIjaYuTl1J_wc;H2A|PqbrEoB`44Hfw;U43 z&Ru_9c5p~sAllN+X5~NP$o?<{?pm6djjqDC#-}(Xd3yhvfcFpT1xW#6vxkqABTIdw za+4hjW?o}N^U1QJ(z!gy?(RC~5==>CBCqB^x6gvmIrBp^>@&+p%UQ9?HEM5p<=N$z z6euMksOlu9ANvAJ=S>#s+hNzfx?k@Z*kqq{_4&!dj|;q?^@75zBdcNx>HwSV;n)%h zeQ4)zkX8^a_7G+kevm;eUIAl&d4l}4RaBc}?|pG(2h?xt%3Ysp692eP(+GOp@-jua zv{Gdhm&)(TN%#KtG=#GT0LhMU9t$$5?RaN|&expWHR==G7OXQTbP!MlX3lx05LZBW_l+`Qv zYJo+6_fT3hO6v=tkHld5MppH0_uhV29W7xy)|=ef`2O6)hc)cjm_I*#8drRlYEq2- zJ2AllW@l}6iE6eTY}<(35!W1K($U^;!`zCg`OOV?ej8{VILDyGTAFE$b9>7M{=Fc2 zlhTf!@CT#qw>zlcY`5K}i^l9sxs2%urTP+f;pmhQrc)+!FvsM+GrMwLd)Ud8of67) zR0xPJ97f$hNd?mL4j>~rq#_xj*};mJt_z{E6$PhOBT)`sa0N$h8SgJofnSj$2jdDi93Zpi^AyIIP-aBbvAN= zzpV6*juQ9ERiX&I0t_glf!`_^2824bW(>XtK30>eMlcL7%dQI(A{kKgv;FtS*dO5k z(*JDSmi|evjTn|FGdlk%0M1H z2T^68S3fOJfxo!&3l4Gm%H9=6#Em>pXe-FA9$T^Z{x~w=?}z)s(fD{rk{oJl zc%I*FT86ksykA2~3ymg*p|EE(D9->Q|2-clm zCX4KMRTdiU?0{^I-m|BSC`m#twtf0@4T zxO2xfmPF4arG9^fghH;aS7GB1(13=7xJOM?7WJ!j6y%*$;QNrq#PHtuG+()(Wt+uE zcEyvlgOXu@+ih?zh|+i3*=P5rD`JBbf`5R{GZs_Svh=_eyA}i#Bdd@-xr?$_WW|N0 z<$CeGj}_JGAPul?jJ0U{%rxW4g&~N>q6wBrmVa$9LUqu5>d4X!FYJA?zE@Jo9Y)i> zjBqV4KlAt@OkNdLZ~rqv`Q4lUu2oy~nR8jMl73bGn)C`-)6H6s000FxU`T;%C(bJ+ zmvN13eRiBaVi#t&LU`}*QtHMAepYba0_=Unx(|P};gjf}R_TDEG`IdFx9_&?)7I0Qb7FI2)3!kKpfq;fy+H8ayfcaCm zr%rDhxo7S6%T4E{1!Z|Q8Fgnm?__9((!v5P_f`(j)Eqz0Mjyit48ldac*gCh4X#Nl zj}hX7G~EYTh4CYYrM2+15wzZU*OQ5+IPFAqUL zRZuYTMbT~I8IhqqMPKDHN_iltQx+x3dA!36clPSeg~|+^E@)hV5Z=|S3z37N?)iH& zKzazT$DLf8VhoqxGz6sw<(ky~N_s)@WIAOfw=>8+_a=FO+yC7i)DMi{z|oT29NAWv z+N>>;X|}9Zb z*RizBycU#318zxCl_dw!)m!HRGz0pns9DZKiQg-z_LXKdQsv*fS@j~6FI03NEkD{V zQW*VTf;~r~2+x4%XKYQ=;)0+eUPI+kd1|#GMYBvH``V+iE+xJZ$;b#^&+&)UOFy0E zl|4UOv0C0p*)g~je?8Y!>~~teH%u=UTjR?@BCRGhP3vvTG5hQ2InFR28|u=PAcN>B zEkHKnW&hFYdveI}R9zY{EWVH`rpA=W`LCE?jq4fBL+5?*@6t5r-cHqA!rX3>T2IpU3z}^LA*|;n<1c{*J@Wxw| z%}q!q)(Gn7cZLI zbokKkzjL{F68;(dC*cmBjlYW%-)>1=*R>9Sw%uHmQk7Izo>ZCg??MYLbQk{gG;?1q zd9<-ltJR;nqdTEh>vd<-Cr=r>yA3BNjpI7qhTexcqjTopkoE8MCwOk_rj(tVrQfwS zAGRlNIz4~E(R3we*L%DwJD9`{_j?zm2?a^Kj|60{-ZQpME|e28vQMm)KO zvKNGE8Kd1fzP?3wywi=8dlawqCe`UDKK!@wZZCy@AQ9O#?7>QI+cp+9=QkIH6_w_f z7VZOsqPitLfH3kzA+Qq=0hOV}(sdspQm}t1_B=8NTZ*yHwc#xYl5@=kp^6-Y%ceFC zacCJ%X7{e=Aki1es61Z>SR??5AxK*qwQ_eoB--lh&kcZq=|MGr;Gz>Vn_fImJ0QG)*~V=X6C?X(9ncF7q5M;a4Dy3YeN#P z3-N6pH|&%4N=4Cw(q|W6udOP8_`_)0w-zy>Z|fqpJugq0p40qt)2ken(FwBcPUw2< zk{G--SZ(KJpHqG-8*VIKieWaWhvjn;kZBK9Adxo;%S9NYiOvpJlmX&vVBnFQw2K%CjV^JEm&$1vGGWb? zxiROQ{~kd9^IoOXMgN;xyz7UP+L#p8H_B*J_FDdKX;;^# zoqw4ti#JbhFa2|L{zc+kN4O5m=9;zR%R2`1hb!Z?5hd-hz7>rP&a{w4%D~vhke>|9 zoi&2FX$2e-9_9W0)ROaO2703Akj{thgd)VtQSg{+nyXMa=+Gam4rs3k(Y2bTkVZpx zA|s0B6wN)b&;RX~vV~X=6paRAKd^zux1<4GfPp#UC)WowHU{XKh7l>{R3mfmP8s(A zNnAlIz@86FYj0)m?(MZmcUxTcP8KhIea{t0|9WfG)~}jf{g6|2@pU=KedG}qi;Dy5B@TQof8jA%E&18yfdrohrf6W*T;!*oo?y*u3*}>+lB2!r0&Ub?TSUk8Vr* z@@VwYFVnUi1(1|Wp1{xPX;s(JN7@&MXg=tkW`F+8419C#X%pK;cmQB zum!I;hIc>uh>?vRZqyMQ7&~pzeM=uTD`} zeRbXnZ9|+ZCND3>6*q0vZ83RwVEW10pjCMPnZ=?`m9!U3bxsKirZvqfRr4C7Ze0_U z1NcEagVb@V`4HJj7#9jhm?LF3PH>V&&D8PYcTYp6X5n4mpu$3l(I`3F3Zjnxb&2F= z&0)2&%GwBl1`Ns&VM%Y~%k=@t_mb`J@m&l|D=g?K^fj-m{BI!e$F;EQj!|9le>XlAl;<;Z0@gP2^n8O| z<0n5Dbg>zeI?Wm|oNB{c%>l<9+5Y*y5u-*^YfeBuv+PH+fp)XXJ+|_v)K!$&zIbPx zE+#cE*cCdR0ly7E@+f;^QsZ<7V*`QnX6iVV37Sc|%mMe315Af*o1bxFZN%Hu@%NUc zOQ)#V^XIWtAQ|i-y24shOQ>aDe;PHKSeT0l;9jE4Pvz&edV+2o?HtuuATCre*XbDa z$G0^BFC6$|a$|tl>EuHz?VxkIhvJDhS(!VRvgd96;&SiltU4TM;@+X>KPoq&{GeTcF523G*lN7q6=km=tCS2XNb;WB4LT^Z629N zdWiK_;j$mz9bS4u8V}{K?;U6{3P=fq&WK(21BbA~nqllvZ^my+-|?||OW)n@!U?x4 z_&g0C$P{Lj0j$C9rJ5)P!IpuJjsX+ZKoL4>Q&Suz%Gw5Wx&aRp>ka0M9DDasbR=Dw zj-n@zFJC@R)?qv2ohPml$(;kO4a*C{;B|33s$h#T@m_Yp@`l!dPBQV@iO%9s&8P1O zrHr(T>Gth)i1=V{EOVH2;_Wa|;gnDf1~;=^*tz(VopKfZiWPlyB2sa&Urm znCFR}LZ{L+DGzX{qZ}|~7diV<5sV%z(}a}I$6d(w_nTf<$h%r+cV({9-$OnocKlG= zMyy3}m8LAtZDBiOjZQHjt?O-N(E6Np5vk)1-wCmILefmg$4CS6Yg+K$Fg6=Rj1o~Z zs21ASNImiiBFz-?3?o8arv*(!F}VX|eVQc!^|epTizMi5x(xpnwCfKrSOCCMr!HNZ z0;ZNRe@Za*{S^OAltkloKc>riaI4xP~|ge3}=~x(e?!9hVAhb!LCqdnD=Qi z(N7g^rzZv*08*BxuH?Xz$Rbf$`U0U#SYVHGMn5&`T7(5c*Mf9WS!D5n#|VgDoFh_b zkK^x&C~RpHI{UVVA1AasA_1u=Zdc4=l+s_?zEYaTa>Xw& z+c38*M^ZDdETSkhFFlPo8mRqvcCGf9BYHm6!)&kH?9_*9gM+o9dZ$d<_Tz*^g{@UO zT-_l78@p7`L1p@(e#-U(qPewXg6`Lpj-h18?fVZaHvIl}2|Clt z?H9Ot_4i&;QTQi+JAigW-1@&5Lu@8_qh+0wj%Lp5atU_U*7o!+3&K{u-jYcM?QNH6 zO(E_I)rT*`Lv+SXJjQt2*>@#&QHD^MA+ldHYBcCBeC_EfD{h11rAz8ot=8S91|60H zD9njQJ9E%qcI;mQD=okQQsifL@4k^j=?7$@pYr_1wQ$@#zG+j%#lWD98%@4|jpdC4 zIXV4wd8%^;R;(zbq?AhoaS#tMX34VAYti$2&{JgFKc|^76+Cf___o%$oyve`s}&uN zE7-rjf>+IdZPaMceSKG>uEuv%8eE#o%4T)Xi?k>j>NSnJPV`%(cYrcy69D|H(x)z5 znA&U9yQ+`yw+?5pS2TwiA}!tXvRSz-Kmj|$sH6>qEN^Chl2XU1GS4TSxA2VsIP*{b zh0BvBf8d|CblDsDIl(`?m^tpJnID4Cp}gcbQ~V!zB#9~;_~zw`eacHN%B0j6WpW*C zrA(vw^*q70)ex-LKKR>=jPIJlXR?8O&rtQW)g-u@y2$ zkz{2$Sos*(ymDnG*8m1*KqDHf@o$UX8-a5rWIa0MhgCnPblt090c=N1RU z*p{2Q#~+WU3qju(utL@a``7(ii`Q{th$m{0BZw2o&Bz*W$4?+e#FkI-6YWejtw7Lk2Aq82$&h*8`bNZep&*f-mg)w_3f2kZ#YnZE9^Ri{Lc*plo`O;IVT z`dYCA@xyXNDiXvq-sdfO%X1SXghz9~pAmNaDUEI41O%nu=k?ULEG0q+_}@*u%Sa4&l3^ELGj?rv!oPAaBwh^v9M4E0iMc4x_394rzkQs4 zVpuu1{Q)M#(`m-JNr^+*fLQEs?1d(?Ux!~2@i%e;$R0}kF~W?a9T6~R_xZ z#5!z>%mE&G(SQguf8D&TLQ7<%#bwlM3illkSo4pe0p7@28F*0qnOg94I12%(v@41e zcgd1kRJ;02gGOE$FjAFrhU$a0slmEXr%aU$$dXRf1*h72WE69RbE>V470s>>_>DW< zOp#TS4~eJ6BaiQtO4a}{Az3YHSQkNXFypZ>!eojN>UF+##YJabafy#!FEm9&m?EE8 z^ZqU%=&=Q_0>@KMyZJT#*sS*77k-DU7f!f#Zd@nmlEqIQd?Ver?q{m9O1A?y+eZVz z$tW{MUt}<2f(zOuv%tK-A=Zh|&o!MWHAwx9`(bsz;rMTTd%%@PrLA%!IRVIhb5U47B^kk(GZ@%ZK@GkGSYF6xK+M3$Q0&vCbG z>d%PY_YwQ!8m{ZPSX^<)GOvi(p-pUSc&-!2RTlNiF)$T+zj(r=V9tUOYHsFXjHO9L#vzBZrJ{nF>0OPm#l8{$GET zsYrx6AgZk3R=F&*z{WPUb%DdRRD?16ZHG-9GmTR5ZK)6M5R3)M5WD7qPE|#GmE`e7 z$H+Cr1_rcpic6=nBH9VGh_a{TPaCMkpqA-vM8-D`Kmph|G$V zLAEqxs3eX^;+Q!(c?@#$@9sJtYM>$~gixh>qd8jt%T;lDjJkZW1EK7MuzF`;m<6)Saqe_gU{m-u|CsQ01LVfajMt?E z5BK-^y8ml<>W%OXUTW3-^R+bJH5`YP!&+6Zm9#5{0*0xl$t>12{0GH+aNv@}o(}^h zi7_rn%mZn1ktPOdE;7UN?4WA}NyYsf5JQ8{3+t7KN*USIdBim!r<4?ZY@ zVeI@=JS_#uePKKN(ffr%V^Blkzl>JGJKx=2-53a8Xf|3V6Kg#WcNS@Vml-PKM)_=4 z3Yn!V>QV;`c9ksj^7f18g?dwZ$V?~tf-o9n3nCho*#r!oE(28 z_Z}n7@}jKj=G=DuFi!KbZkOxr{&>FLpYQK4q2~v2K~*l*0h>$P!mYYM8W`uH#(cZ^ z@a_MQJ{RB#J)kK&5HXbN8qLe45OcLNk9wNyaM9f3pX;e=k!4P)yf@mxsQSwxn z6b}67+2YT82C>*9@fxrTfP*5DzkHXBRRey~kNor~ghx5uo%s0cyYD-e zL0kfHMP;=|w`_t{;=9}hOlrz4#nLS4D$SDoUcFilj?S&(%lY)8W$Pw69zA;yv za9No&gX_#-s9PJ*lE)YPn|iw#d)scsy8WwVM=NZxHn885?o*0UDC9+Ob>Zb>Lt1%B zL9(k9(Sy1g?ngVkF$K!5G|v>=-cICNMC~~^OBf_q;UV8=SyStK%vp`mnX3-~q{v(o.href),t=void 0},l)},n),c&&document.addEventListener("mousedown",function(t){if(performance.now()-e1||t.metaKey||t.ctrlKey)return;if(!n)return;n.addEventListener("click",function(t){1337!=t.detail&&t.preventDefault()},{capture:!0,passive:!1,once:!0});const o=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});n.dispatchEvent(o)},n),m){let t;(t=window.requestIdleCallback?t=>{requestIdleCallback(t,{timeout:1500})}:t=>{t()})(()=>{const t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=e.target;t.unobserve(n),v(n.href)}})});document.querySelectorAll("a").forEach(e=>{h(e)&&t.observe(e)})})}}function p(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||t&&(clearTimeout(t),t=void 0)}function h(t){if(t&&t.href&&(!r||"instant"in t.dataset)&&(a||t.origin==location.origin||"instant"in t.dataset)&&["http:","https:"].includes(t.protocol)&&("http:"!=t.protocol||"https:"!=location.protocol)&&(s||!t.search||"instant"in t.dataset)&&!(t.hash&&t.pathname+t.search==location.pathname+location.search||"noInstant"in t.dataset))return!0}function v(t){if(n.has(t))return;const e=document.createElement("link");e.rel="prefetch",e.href=t,document.head.appendChild(e),n.add(t)} \ No newline at end of file diff --git a/templates/assets/libs/swiper/swiper-bundle.min.css b/templates/assets/libs/swiper/swiper-bundle.min.css deleted file mode 100644 index a0b3f590..00000000 --- a/templates/assets/libs/swiper/swiper-bundle.min.css +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Swiper 8.4.4 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2022 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: October 12, 2022 - */ - -@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/templates/assets/libs/swiper/swiper-bundle.min.js b/templates/assets/libs/swiper/swiper-bundle.min.js deleted file mode 100644 index c849e01e..00000000 --- a/templates/assets/libs/swiper/swiper-bundle.min.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Swiper 8.4.4 - * Most modern mobile touch slider and framework with hardware accelerated transitions - * https://swiperjs.com - * - * Copyright 2014-2022 Vladimir Kharlampidi - * - * Released under the MIT License - * - * Released on: October 12, 2022 - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;at>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;tt-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([])).each((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s=0&&p1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e=a[e]&&s=a[e]&&s=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(g=o.length-1);const v=-o[g];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&vr.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(v),b=n>p?"next":n{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexc(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;an.length&&e.params.loopedSlidesLimit&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((e,t)=>{d(e).attr("data-swiper-slide-index",t)}));for(let t=0;t=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;const m=!!l.noSwipingClass&&""!==l.noSwipingClass,f=e.composedPath?e.composedPath():e.path;m&&p.target&&p.target.shadowRoot&&f&&(h=d(f[0]));const g=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,v=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(v?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(g,h[0]):h.closest(g)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const w=o.currentX,b=o.currentY,x=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,y=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(x&&(w<=y||w>=i.innerWidth-y)){if("prevent"!==x)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=w,o.startY=b,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(hn.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e=n[e]&&h=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=ma.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopedSlidesLimit:!0,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function q(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const j={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:q(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,_,t),r.originalParams=g({},r.params),r.passedParams=g({},t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.$el.addClass(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.$el.removeClass(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(_,e)}static get extendedDefaults(){return _}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else a.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t`),i.append(r)),r}Object.keys(j).forEach((e=>{Object.keys(j[e]).forEach((t=>{V.prototype[t]=j[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`

${e}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(eb)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()})),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scalef.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.yf.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentXf.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentYf.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,hC&&(h=C),gT&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=()=>{t.a11y.clicked=!0},b=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.a11y.clicked=!1}))}))},x=e=>{if(t.a11y.clicked)return;const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},y=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},E=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),y(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",x,!0),t.$el.on("pointerdown",w,!0),t.$el.on("pointerup",b,!0)};a("beforeInit",(()=>{i=d(``)})),a("afterInit",(()=>{t.params.a11y.enabled&&E()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&y()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",x,!0),t.$el.off("pointerdown",w,!0),t.$el.off("pointerup",b,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){if(!s.size)return s.autoplay.running=!1,void(s.autoplay.paused=!1);const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e1?a:o:a-ot.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(ct.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(o[e]-c){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`
`),e.append(a)),0===i.length&&(i=d(`
`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),e.append(m))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${y})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V})); -//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/templates/assets/libs/waterfall/waterfall.min.js b/templates/assets/libs/waterfall/waterfall.min.js deleted file mode 100644 index d88c1316..00000000 --- a/templates/assets/libs/waterfall/waterfall.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(a,b){"function"==typeof define&&define.amd?define("waterfall",function(){return b}):"object"==typeof module&&module.exports?module.exports=b:a.waterfall=b}(this,function(a){function b(a){return window.getComputedStyle(a)}function c(a,c){return parseFloat(b(c)["margin"+a])||0}function d(a){return parseFloat(a)+"px"}function e(a){return parseFloat(a.style.top)}function f(a){return parseFloat(a.style.left)}function g(a){return parseFloat(b(a).width)}function h(a){return parseFloat(b(a).height)}function i(a){return e(a)+h(a)+c("Bottom",a)}function j(a){return f(a)+g(a)+c("Right",a)}function k(a){a=a.sort(function(a,b){var c=i(b)-i(a);return c||f(b)-f(a)})}function l(a){var b=a;k(b),this.add=function(a){b.push(a),k(b),b.pop()},this.min=function(){return b[b.length-1]},this.max=function(){return b[0]}}function m(a,b,c){a.style.position="absolute",a.style.top=d(b),a.style.left=d(c)}function n(a){m(a,0,c("Left",a))}function o(a,b){m(b,a.style.top,j(a)+c("Left",b))}function p(a,b){m(b,i(a)+c("Top",b),f(a))}function q(a,b){a.style.position="relative",a.style.height=d(i(b)+c("Bottom",b))}function r(b,c){return j(b[c-1])+g(b[c])<=g(a)}"string"==typeof a&&(a=document.querySelector(a));var s=a.children;s.length&&n(s[0]);for(var t=1;t { - /** - * 获取数据后的处理程序 - */ - var value = color.hex; - // console.log(value); - // document.getElementById('page-header').style.backgroundColor=value; - // document.styleSheets[0].addRule('#page-header:before','background: '+ value +'!important'); - - if (getContrastYIQ(value) === "light") { - value = LightenDarkenColor(colorHex(value), -40) - } - - document.styleSheets[0].addRule(':root', '--heo-main:' + value + '!important'); - document.styleSheets[0].addRule(':root', '--heo-main-op:' + value + '23!important'); - document.styleSheets[0].addRule(':root', '--heo-main-op-deep:' + value + 'dd!important'); - document.styleSheets[0].addRule(':root', '--heo-main-none:' + value + '00!important'); - heo.initThemeColor() - document.getElementById("coverdiv").classList.add("loaded"); - }) - .catch(e => { - console.log(e); - }); - - } else { - // document.styleSheets[0].addRule('#page-header:before','background: none!important'); - document.styleSheets[0].addRule(':root', '--heo-main: var(--heo-theme)!important'); - document.styleSheets[0].addRule(':root', '--heo-main-op: var(--heo-theme-op)!important'); - document.styleSheets[0].addRule(':root', '--heo-main-op-deep:var(--heo-theme-op-deep)!important'); - document.styleSheets[0].addRule(':root', '--heo-main-none: var(--heo-theme-none)!important'); - heo.initThemeColor() - } -} - -//RGB颜色转化为16进制颜色 -function colorHex(str) { - var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - var that = str; - if (/^(rgb|RGB)/.test(that)) { - var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); - var strHex = "#"; - for (var i = 0; i < aColor.length; i++) { - var hex = Number(aColor[i]).toString(16); - if (hex === "0") { - hex += hex; - } - strHex += hex; - } - if (strHex.length !== 7) { - strHex = that; - } - return strHex; - } else if (reg.test(that)) { - var aNum = that.replace(/#/, "").split(""); - if (aNum.length === 6) { - return that; - } else if (aNum.length === 3) { - var numHex = "#"; - for (var i = 0; i < aNum.length; i += 1) { - numHex += (aNum[i] + aNum[i]); - } - return numHex; - } - } else { - return that; - } -} - -//16进制颜色转化为RGB颜色 -function colorRgb(str) { - var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - var sColor = str.toLowerCase(); - if (sColor && reg.test(sColor)) { - if (sColor.length === 4) { - var sColorNew = "#"; - for (var i = 1; i < 4; i += 1) { - sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); - } - sColor = sColorNew; - } - //处理六位的颜色值 - var sColorChange = []; - for (var i = 1; i < 7; i += 2) { - sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2))); - } - return "rgb(" + sColorChange.join(",") + ")"; - } else { - return sColor; - } -} - -//变暗变亮主方法 -function LightenDarkenColor(col, amt) { - var usePound = false; - - if (col[0] == "#") { - col = col.slice(1); - usePound = true; - } - - var num = parseInt(col, 16); - - var r = (num >> 16) + amt; - - if (r > 255) r = 255; - else if (r < 0) r = 0; - - var b = ((num >> 8) & 0x00FF) + amt; - - if (b > 255) b = 255; - else if (b < 0) b = 0; - - var g = (num & 0x0000FF) + amt; - - if (g > 255) g = 255; - else if (g < 0) g = 0; - - - return (usePound ? "#" : "") + String("000000" + (g | (b << 8) | (r << 16)).toString(16)).slice(-6); -} - -//判断是否为亮色 -function getContrastYIQ(hexcolor) { - var colorrgb = colorRgb(hexcolor); - var colors = colorrgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); - var red = colors[1]; - var green = colors[2]; - var blue = colors[3]; - var brightness; - brightness = (red * 299) + (green * 587) + (blue * 114); - brightness = brightness / 255000; - if (brightness >= 0.5) { - return "light"; - } else { - return "dark"; - } -} - -//导航栏文章 -function navTitle() { - var titlevalue = document.title; - var postName = document.getElementsByClassName("post-title")[0]; - document.getElementById("page-name-text").innerHTML = postName?.innerText; -} - -window.onload = function () { - var copybtnlist = document.getElementsByClassName("copybtn") - for (var i = 0; i < copybtnlist.length; i++) { - document.getElementsByClassName("copybtn")[i].addEventListener("click", function () { - showcopy(); - }); - } - heo.initThemeColor(); -} - -function showcopy() { - if (GLOBAL_CONFIG.Snackbar !== undefined) { - btf.snackbarShow(GLOBAL_CONFIG.copy.success) - } else { - const prevEle = ctx.previousElementSibling - prevEle.innerText = GLOBAL_CONFIG.copy.success - prevEle.style.opacity = 1 - setTimeout(() => { - prevEle.style.opacity = 0 - }, 700) - } -} - -//导航栏上显示标题 -// var OriginTitile = document.title; -// var titleTime; -// document.addEventListener('visibilitychange', function () { -// if (document.hidden) { -// // $('[rel="shortcut icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Akilarlxh/Akilarlxh.github.io@v3.3.3_3/img/siteicon/favicon.png"); -// document.title = '张洪Heo'; -// clearTimeout(titleTime); -// } -// else { -// // $('[rel="shortcut icon"]').attr('href', "https://cdn.jsdelivr.net/gh/Akilarlxh/Akilarlxh.github.io@v3.3.3_3/img/siteicon/favicon.png"); -// document.title = OriginTitile; -// // titleTime = setTimeout(function () { -// // document.title = OriginTitile; -// // }, 2000); -// } -// }); - -// 早上好问好 -// 获取时间 -var getTimeState = () => { - // 获取当前时间 - var timeNow = new Date(); - // 获取当前小时 - var hours = timeNow.getHours(); - // 设置默认文字 - var text = ``; - // 判断当前时间段 - if (hours >= 0 && hours <= 5) { - text = `晚安`; - } else if (hours > 5 && hours <= 10) { - text = `早上好`; - } else if (hours > 10 && hours <= 14) { - text = `中午好`; - } else if (hours > 14 && hours <= 18) { - text = `下午好`; - } else if (hours > 18 && hours <= 24) { - text = `晚上好`; - } - //    console.log(`hours >>>>>`, hours); - //    console.log(`text >>>>`, text); - // 返回当前时间段对应的状态 - return text; -}; - -function fly_to_top() { - document.getElementById("guli_top").classList.add("open_wing"); - setTimeout(function () { - document.getElementById("guli_top").classList.add("flying"); - btf.scrollToDest(0, 300); - }, 300); - setTimeout(function () { - // 这里就是处理的事件 - document.getElementById("guli_top").classList.remove("flying"); - document.getElementById("guli_top").classList.remove("open_wing"); - document.getElementById("guli_top").style.cssText = "opacity: ''; transform: ''"; - }, 600) -} - -//深色模式切换 -var navFn = { - switchDarkMode: () => { // Switch Between Light And Dark Mode - const nowMode = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light' - if (nowMode === 'light') { - activateDarkMode() - saveToLocal.set('theme', 'dark', 2) - GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.day_to_night, false, 2000) - } else { - activateLightMode() - saveToLocal.set('theme', 'light', 2) - GLOBAL_CONFIG.Snackbar !== undefined && btf.snackbarShow(GLOBAL_CONFIG.Snackbar.night_to_day, false, 2000) - } - // handle some cases - typeof utterancesTheme === 'function' && utterancesTheme(); - typeof FB === 'object' && window.loadFBComment(); - window.DISQUS && document.getElementById('disqus_thread').children.length && setTimeout(() => window.disqusReset(), 200) - - //统计图 - let color = document.documentElement.getAttribute('data-theme') === 'light' ? '#363636' : '#F7F7FA' - if (document.getElementById('posts-chart')) { - let postsOptionNew = postsOption - postsOptionNew.textStyle.color = color - postsOptionNew.title.textStyle.color = color - postsOptionNew.xAxis.axisLine.lineStyle.color = color - postsOptionNew.yAxis.axisLine.lineStyle.color = color - postsChart.setOption(postsOptionNew) - } - if (document.getElementById('tags-chart')) { - let tagsOptionNew = tagsOption - tagsOptionNew.textStyle.color = color - tagsOptionNew.title.textStyle.color = color - tagsOptionNew.xAxis.axisLine.lineStyle.color = color - tagsOptionNew.yAxis.axisLine.lineStyle.color = color - tagsChart.setOption(tagsOptionNew) - } - if (document.getElementById('categories-chart')) { - let categoriesOptionNew = categoriesOption - categoriesOptionNew.textStyle.color = color - categoriesOptionNew.title.textStyle.color = color - categoriesOptionNew.legend.textStyle.color = color - categoriesChart.setOption(categoriesOptionNew) - } - } -} - -// 移除赞赏蒙版 -function RemoveRewardMask() { - $('.reward-main').attr('style', 'display: none'); - $('#quit-box').attr('style', 'display: none'); -} - -//添加赞赏蒙版 -function AddRewardMask() { - $('.reward-main').attr('style', 'display: flex'); -} - -//监听蒙版关闭 -document.addEventListener('touchstart', e => { - RemoveRewardMask() -}, false) - -//监听ctrl+C -$(document).unbind('keydown').bind('keydown', function (e) { - if ((e.ctrlKey || e.metaKey) && (e.keyCode == 67) && (selectTextNow != '')) { - btf.snackbarShow('复制成功,复制和转载请标注本文地址'); - rm.rightmenuCopyText(selectTextNow); - return false; - } -}) - -//判断国内国外 -// var foreignTips = (function () { -// var fetchUrl = "https://api.ooomn.com/api/ip" -// fetch(fetchUrl) -// .then(res => res.json()) -// .then(json =>{ -// var country = json.country; -// console.log(country); -// if (country != '中国'){ -// btf.snackbarShow('使用国外网络访问可能无法访问文章图片,敬请谅解。Blog pictures only serve mainland China.') -// } -// }) -// }); - -//颜色 -document.addEventListener('scroll', btf.throttle(function () { - heo.initThemeColor() -}, 200)) - -//友链随机传送 -function travelling() { - var fetchUrl = "https://moments.zhheo.com/randomfriend" - fetch(fetchUrl) - .then(res => res.json()) - .then(json => { - var name = json.name; - var link = json.link; - var msg = "点击前往按钮进入随机一个友链,不保证跳转网站的安全性和可用性。本次随机到的是本站友链:「" + name + "」"; - document.styleSheets[0].addRule(':root', '--heo-snackbar-time:' + 8000 + 'ms!important'); - Snackbar.show({ - text: msg, - duration: 8000, - pos: 'top-center', - actionText: '前往', - onActionClick: function (element) { - //Set opacity of element to 0 to close Snackbar - $(element).css('opacity', 0); - window.open(link, '_blank'); - } - }); - }) -} - -//前往黑洞 -function toforeverblog() { - var msg = "点击前往按钮进入「十年之约」项目中的成员博客,不保证跳转网站的安全性和可用性"; - Snackbar.show({ - text: msg, - duration: 8000, - pos: 'top-center', - actionText: '前往', - onActionClick: function (element) { - //Set opacity of element to 0 to close Snackbar - $(element).css('opacity', 0); - window.open(link, 'https://www.foreverblog.cn/go.html'); - } - }); -} - -//前往开往项目 -function totraveling() { - btf.snackbarShow('即将跳转到「开往」项目的成员博客,不保证跳转网站的安全性和可用性', false, 5000); - setTimeout(function () { - window.open('https://travellings.link/'); - }, "5000"); -} - -// 移除加载动画 -function removeLoading() { - setTimeout(function () { - preloader.endLoading(); - }, 3000) -} - -//移除pwa -navigator.serviceWorker.getRegistrations().then(function (registrations) { - for (let registration of registrations) { - registration.unregister() - } -}) - -function addFriendLink() { - var input = document.getElementsByClassName('el-textarea__inner')[0]; - let evt = document.createEvent('HTMLEvents'); - evt.initEvent('input', true, true); - input.value = '昵称(请勿包含博客等字样):\n网站地址(要求博客地址,请勿提交个人主页):\n头像图片url(请提供尽可能清晰的图片,我会上传到我自己的图床):\n描述:\n'; - input.dispatchEvent(evt); - heo.scrollTo("#post-comment"); - input.focus(); - input.setSelectionRange(-1, -1); -} - -//从一个给定的数组arr中,随机返回num个不重复项 -function getArrayItems(arr, num) { - //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; - var temp_array = new Array(); - for (var index in arr) { - temp_array.push(arr[index]); - } - //取出的数值项,保存在此数组 - var return_array = new Array(); - for (var i = 0; i < num; i++) { - //判断如果数组还有可以取出的元素,以防下标越界 - if (temp_array.length > 0) { - //在数组中产生一个随机索引 - var arrIndex = Math.floor(Math.random() * temp_array.length); - //将此随机索引的对应的数组元素值复制出来 - return_array[i] = temp_array[arrIndex]; - //然后删掉此索引的数组元素,这时候temp_array变为新的数组 - temp_array.splice(arrIndex, 1); - } else { - //数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项. - break; - } - } - return return_array; -} - -// 检测按键 -window.onkeydown = function (e) { - if (e.keyCode === 123) { - btf.snackbarShow('开发者模式已打开,请遵循GPL协议', false, 3000) - } -} - -// 阻止搜索滚动 -// document.querySelector('#algolia-search').addEventListener('wheel', (e) => { -// e.preventDefault() -// }) -document.querySelector('#console').addEventListener('wheel', (e) => { - e.preventDefault() -}) -// document.querySelector('#loading-box').addEventListener('wheel', (e) => { -// e.preventDefault() -// }) - -//自动调整即刻短文尺寸 -window.addEventListener('resize', function () { - if (document.querySelector('#waterfall')) { - heo.reflashEssayWaterFall(); - } -}); - -//首页大卡片恢复显示 -$(".topGroup").hover(function () { - // console.log("卡片悬浮"); -}, function () { - hoverOnCommentBarrage = false; - - if (document.getElementById("todayCard")) { - document.getElementById("todayCard").classList.remove('hide'); - document.getElementById('todayCard').style.zIndex = 1; - // console.log("卡片停止悬浮"); - } -}); - -//评论增加放大功能 -// 如果当前页有评论就执行函数 -if (document.getElementById('post-comment')) owoBig(); - -function owoBig() { - // 监听dom插入 - document.getElementById('post-comment').addEventListener('DOMNodeInserted', (dom) => { - // 如果有class且值为OwO-body - if (dom.target.classList && dom.target.classList.value == 'OwO-body') { - let owo_body = dom.target - if (owo_body) { - let owo_time = '' - let flag = true; - // 创建盒子 - let div = document.createElement('div') - div.id = 'owo-big' - document.querySelector('body').appendChild(div) - - // 禁用右键(手机端长按会出现右键菜单,为了体验给禁用掉) - owo_body.addEventListener('contextmenu', e => e.preventDefault()) - - // 鼠标移入 - owo_body.addEventListener('mouseover', (e) => { - if (e.target.tagName == 'LI' && flag) { - flag = false; - // 移入300毫秒后显示盒子 - owo_time = setTimeout(() => { - let m = 3 // 设置倍数 - let height = e.path[0].clientHeight * m // 盒子高 - let width = e.path[0].clientWidth * m // 盒子宽 - let left = (e.x - e.offsetX) - (width - e.path[0].clientWidth) / 2 // 盒子与屏幕左边距离 - let top = e.y - e.offsetY // 盒子与屏幕顶部距离 - - div.style.height = height + 'px' - div.style.width = width + 'px' - div.style.left = left + 'px' - div.style.top = top + 'px' - div.style.display = 'flex' - div.innerHTML = `` - }, 300); - } - }) - - // 鼠标移出 - owo_body.addEventListener('mouseout', (e) => { - div.style.display = 'none'; - flag = true - clearTimeout(owo_time) - }) - } - } - }); -} - -//文章页面上一篇下一篇 -document.addEventListener('scroll', btf.throttle(function () { - //滚动条高度+视窗高度 = 可见区域底部高度 - var visibleBottom = window.scrollY + document.documentElement.clientHeight; - //可见区域顶部高度 - var visibleTop = window.scrollY; - // 获取翻页按钮容器 - var pagination = document.getElementById('pagination'); - // 获取位置监测容器,此处采用评论区 - var eventlistner = document.getElementById('post-tools'); - if (eventlistner && pagination) { - var centerY = eventlistner.offsetTop + (eventlistner.offsetHeight / 2); - if (document.body.clientWidth > 1300) { - if (centerY < visibleTop) { - pagination.classList.add("show-window"); - } else { - pagination.classList.remove("show-window"); - } - } - } -}, 200)); - - -// 页面百分比 -function percent() { - let a = document.documentElement.scrollTop || window.pageYOffset, // 卷去高度 - b = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.body.clientHeight, document.documentElement.clientHeight) - document.documentElement.clientHeight, // 整个网页高度 - result = Math.round(a / b * 100), // 计算百分比 - btn = document.querySelector("#percent"); // 获取按钮 - //滚动条高度+视窗高度 = 可见区域底部高度 - var visibleBottom = window.scrollY + document.documentElement.clientHeight; - // 获取位置监测容器,此处采用评论区 - var eventlistner = document.getElementById('post-tools') || document.getElementById('footer'); - var centerY = eventlistner.offsetTop + (eventlistner.offsetHeight / 2); - if ((centerY < visibleBottom) || (result > 90)) { - document.querySelector("#nav-totop").classList.add("long"); - btn.innerHTML = "返回顶部"; - } else { - document.querySelector("#nav-totop").classList.remove("long"); - btn.innerHTML = result; - } - window.onscroll = percent; -} - -//检查是否开启快捷键 -// if (localStorage.getItem('keyboardToggle') !== 'false') { -// document.querySelector("#consoleKeyboard").classList.add("on"); -// } else { -// document.querySelector("#consoleKeyboard").classList.remove("on"); -// } - -//响应esc键 -$(window).on('keydown', function (ev) { - - // Escape - if (ev.keyCode == 27) { - heo.hideLoading(); - heo.hideConsole(); - rm.hideRightMenu(); - } - - if (heo_keyboard && ev.shiftKey && !heo_intype) { - - // 显示快捷键面板 shift键 - // if (ev.keyCode == 16) { - // document.querySelector("#keyboard-tips").classList.add("show"); - // } - - //关闭快捷键 shift+K - if (ev.keyCode == 75) { - heo.keyboardToggle(); - return false; - } - - //响应打开控制台键 shift+A - if (ev.keyCode == 65) { - heo.showConsole(); - return false; - } - - //音乐控制 shift+M - if (ev.keyCode == 77) { - heo.musicToggle(); - return false; - } - - //随机文章 shift+R - if (ev.keyCode == 82) { - toRandomPost(); - return false; - } - - //回到首页 shift+H - if (ev.keyCode == 72) { - pjax.loadUrl("/"); - return false; - } - - //深色模式 shift+D - if (ev.keyCode == 68) { - rm.switchDarkMode(); - return false; - } - - //友链鱼塘 shift+F - if (ev.keyCode == 70) { - pjax.loadUrl("/moments/"); - return false; - } - - //友情链接页面 shift+L - if (ev.keyCode == 76) { - pjax.loadUrl("/link/"); - return false; - } - - //关于本站 shift+P - if (ev.keyCode == 80) { - pjax.loadUrl("/about/"); - return false; - } - - //在线工具 shift+T - if (ev.keyCode == 84) { - pjax.loadUrl("/tlink/"); - return false; - } - - } - -}); - -// $(window).on('keyup', function (ev) { -// // 显示快捷键面板 -// if (ev.keyCode == 16) { -// document.querySelector("#keyboard-tips").classList.remove("show"); -// } -// }); - -//输入状态检测 -$("input").focus(function () { - heo_intype = true; -}); -$("textarea").focus(function () { - heo_intype = true; -}); -$("input").focusout(function () { - heo_intype = false; -}); -$("textarea").focusout(function () { - heo_intype = false; -}); - -//老旧浏览器检测 -function browserTC() { - btf.snackbarShow(""); - Snackbar.show({ - text: '为了保护访客访问安全,本站已停止对你正在使用的过低版本浏览器的支持', - actionText: '关闭', - duration: '6000', - pos: 'bottom-right' - }); -} - -function browserVersion() { - var userAgent = navigator.userAgent; - var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; - var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1; - var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; - var isFirefox = userAgent.indexOf("Firefox") > -1; - var isOpera = userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1; - var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Edge") == -1 && userAgent.indexOf("OPR") == -1; - var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1 && userAgent.indexOf("Edge") == -1 && userAgent.indexOf("OPR") == -1; - if (isEdge) { - if (userAgent.split('Edge/')[1].split('.')[0] < 90) { - browserTC() - } - } else if (isFirefox) { - if (userAgent.split('Firefox/')[1].split('.')[0] < 90) { - browserTC() - } - } else if (isOpera) { - if (userAgent.split('OPR/')[1].split('.')[0] < 80) { - browserTC() - } - } else if (isChrome) { - if (userAgent.split('Chrome/')[1].split('.')[0] < 90) { - browserTC() - } - } else if (isSafari) { - //不知道Safari多少版本才算老旧 - } -} - -function setCookies(obj, limitTime) { - let data = new Date(new Date().getTime() + limitTime * 24 * 60 * 60 * 1000).toUTCString() - for (let i in obj) { - document.cookie = i + '=' + obj[i] + ';expires=' + data - } -} - -function getCookie(name) { - var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); - if (arr = document.cookie.match(reg)) - return unescape(arr[2]); - else - return null; -} - -if (getCookie('browsertc') != 1) { - setCookies({ - browsertc: 1, - }, 1); //设置cookie缓存一天,即一天弹一次 - browserVersion(); -} - -//当前窗口得到焦点  -// window.onfocus = function () { -// document.querySelector("#keyboard-tips").classList.remove("show"); -// }; - -//注入函数 -document.addEventListener('pjax:send', function () { - console.clear(); - Pace.restart(); - heo.showLoading(); -}) - -document.addEventListener('DOMContentLoaded', function () { - // coverColor() - navTitle() - percent() - heo.topPostScroll() - heo.topCategoriesBarScroll() - heo.sayhi() - heo.addTag() - heo.stopImgRightDrag() - // heo.addFriendLinksInFooter() - heo.qrcodeCreate() - heo.hidecookie() - heo.onlyHome() - heo.addNavBackgroundInit() - heo.initIndexEssay() - // heo.changeTimeInEssay() - heo.reflashEssayWaterFall() - heo.addMediumInEssay() - heo.darkModeStatus() - // heo.categoriesBarActive() - heo.initThemeColor() - heo.hideLoading() - // heo.tagPageActive() -}) -window.onscroll = function () { - percent(); -}; diff --git a/templates/assets/zhheo/commentBarrage.css b/templates/assets/zhheo/commentBarrage.css deleted file mode 100644 index b96dfb56..00000000 --- a/templates/assets/zhheo/commentBarrage.css +++ /dev/null @@ -1,165 +0,0 @@ -.comment-barrage { - position: fixed; - bottom: 0; - right: 20px; - padding: 0 0 20px 10px; - z-index: 100; - display: flex; - flex-direction: column; - justify-content: end; - align-items: flex-end; - z-index: 999; - transition: 0.3s; -} - -@media screen and (max-width: 768px) { - .comment-barrage { - display: none !important; - } -} - -.comment-barrage-item { - min-width: 300px; - max-width: 300px; - width: fit-content; - min-height: 80px; - max-height: 150px; - margin: 4px; - padding: 8px 14px; - background: var(--heo-maskbgdeep); - border-radius: 8px; - color: var(--heo-fontcolor); - animation: barrageIn 0.6s cubic-bezier(0.42, 0, 0.3, 1.11); - transition: 0.3s; - display: flex; - flex-direction: column; - border: var(--style-border); - backdrop-filter: saturate(180%) blur(20px); - -webkit-backdrop-filter: blur(20px); - position: fixed; - box-shadow: var(--heo-shadow-border); - overflow: hidden; -} - -.comment-barrage-item:hover { - border: var(--style-border-hover); - box-shadow: var(--heo-shadow-main); -} - -.comment-barrage-item.out { - opacity: 0; - animation: barrageOut 0.6s cubic-bezier(0.42, 0, 0.3, 1.11); -} - -.comment-barrage-item.hovered { - opacity: 0; -} - -.comment-barrage-item .comment-barrage-close { - color: var(--heo-secondtext); - cursor: pointer; - line-height: 1; - padding: 4px; -} - -.comment-barrage-item .comment-barrage-close:hover { - color: var(--heo-main); -} - -.comment-barrage-item pre { - display: none; -} - -.comment-barrage-item p img:not(.tk-owo-emotion) { - display: none; -} - -.comment-barrage-item p img.tk-owo-emotion { - width: 16px; - padding: 0; - margin: 0; - transform: translateY(2px); -} - -.comment-barrage-item blockquote { - display: none; -} - -.comment-barrage-item br { - display: none; -} - -.comment-barrage-item .barrageHead { - height: 30px; - padding: 0; - line-height: 30px; - font-size: 12px; - border-bottom: var(--style-border); - display: flex; - justify-content: space-between; - align-items: center; - font-weight: bold; - padding-bottom: 6px; -} - -.comment-barrage-item .barrageHead .barrageTitle { - color: var(--heo-card-bg); - margin-right: 8px; - background: var(--heo-fontcolor); - line-height: 1; - padding: 4px; - border-radius: 4px; -} - -.comment-barrage-item .barrageHead .barrageTitle:hover { - background: var(--heo-main); - color: var(--heo-white); -} - -.comment-barrage-item .barrageAvatar { - width: 16px; - height: 16px; - margin: 0; - margin-left: auto; - margin-right: 8px; - border-radius: 50%; - background: var(--heo-secondbg); -} - -.comment-barrage-item .barrageContent { - font-size: 14px !important; - font-weight: normal !important; - height: calc(100% - 30px); - overflow: hidden; - width: fit-content; -} - -.comment-barrage-item .barrageContent a { - pointer-events: none; -} - -.comment-barrage-item .barrageContent::-webkit-scrollbar { - height: 0; - width: 4px; -} - -.comment-barrage-item .barrageContent::-webkit-scrollbar-button { - display: none; -} - -.comment-barrage-item p { - margin: 8px 0; - line-height: 1.3; - overflow: hidden; - text-overflow: ellipsis; - -webkit-line-clamp: 2; - display: -webkit-box; - -webkit-box-orient: vertical; - font-size: 14; -} - -.comment-barrage-item .barrageContent h1, .comment-barrage-item .barrageContent h2, .comment-barrage-item .barrageContent h3, .comment-barrage-item .barrageContent h4 { - font-size: 14px !important; - font-weight: normal !important; - margin: 8px 0 !important; -} \ No newline at end of file diff --git a/templates/assets/zhheo/commentBarrage.js b/templates/assets/zhheo/commentBarrage.js deleted file mode 100644 index d7b66a70..00000000 --- a/templates/assets/zhheo/commentBarrage.js +++ /dev/null @@ -1,150 +0,0 @@ -var commentBarrageConfig = { - //同时最多显示弹幕数 - maxBarrage: 1, - //弹幕显示间隔时间ms - barrageTime: 4000, - //twikoo部署地址腾讯云的为环境ID - twikooUrl: "xxxx", - //token获取见上方 - accessToken: "xxxx", - pageUrl: window.location.pathname, - barrageTimer: [], - barrageList: [], - barrageIndex: 0, - dom: document.querySelector('.comment-barrage'), -} - -var commentInterval = null; -var hoverOnCommentBarrage = false; - -$(".comment-barrage").hover(function () { - hoverOnCommentBarrage = true; - console.log("热评悬浮"); -}, function () { - hoverOnCommentBarrage = false; - console.log("停止悬浮"); -}); - -function initCommentBarrage() { - // console.log("开始创建热评") - - var data = JSON.stringify({ - "event": "COMMENT_GET", - "commentBarrageConfig.accessToken": commentBarrageConfig.accessToken, - "url": commentBarrageConfig.pageUrl - }); - var xhr = new XMLHttpRequest(); - xhr.withCredentials = true; - xhr.addEventListener("readystatechange", function () { - if (this.readyState === 4) { - commentBarrageConfig.barrageList = commentLinkFilter(JSON.parse(this.responseText).data); - commentBarrageConfig.dom.innerHTML = ''; - } - }); - xhr.open("POST", commentBarrageConfig.twikooUrl); - xhr.setRequestHeader("Content-Type", "application/json"); - xhr.send(data); - - - clearInterval(commentInterval); - commentInterval = null; - - commentInterval = setInterval(() => { - if (commentBarrageConfig.barrageList.length && !hoverOnCommentBarrage) { - popCommentBarrage(commentBarrageConfig.barrageList[commentBarrageConfig.barrageIndex]); - commentBarrageConfig.barrageIndex += 1; - commentBarrageConfig.barrageIndex %= commentBarrageConfig.barrageList.length; - } - if ((commentBarrageConfig.barrageTimer.length > (commentBarrageConfig.barrageList.length > commentBarrageConfig.maxBarrage ? commentBarrageConfig.maxBarrage : commentBarrageConfig.barrageList.length)) && !hoverOnCommentBarrage) { - removeCommentBarrage(commentBarrageConfig.barrageTimer.shift()) - } - }, commentBarrageConfig.barrageTime) -} - -function commentLinkFilter(data) { - data.sort((a, b) => { - return a.created - b.created; - }) - let newData = []; - data.forEach(item => { - newData.push(...getCommentReplies(item)); - }); - return newData; -} - -function getCommentReplies(item) { - if (item.replies) { - let replies = [item]; - item.replies.forEach(item => { - replies.push(...getCommentReplies(item)); - }) - return replies; - } else { - return []; - } -} - -function popCommentBarrage(data) { - let barrage = document.createElement('div'); - let width = commentBarrageConfig.dom.clientWidth; - let height = commentBarrageConfig.dom.clientHeight; - barrage.className = 'comment-barrage-item' - barrage.innerHTML = ` -
- ${data.comment} - ` - commentBarrageConfig.barrageTimer.push(barrage); - commentBarrageConfig.dom.append(barrage); -} - -function removeCommentBarrage(barrage) { - barrage.className = 'comment-barrage-item out'; - setTimeout(() => { - commentBarrageConfig.dom.removeChild(barrage); - }, 1000) -} - - -// 自动隐藏 -document.addEventListener('scroll', btf.throttle(function () { - //滚动条高度+视窗高度 = 可见区域底部高度 - var visibleBottom = window.scrollY + document.documentElement.clientHeight; - //可见区域顶部高度 - var visibleTop = window.scrollY; - // 获取翻页按钮容器 - var pagination = document.querySelector('.comment-barrage'); - // 获取位置监测容器,此处采用评论区 - var eventlistner = document.getElementById('post-tools'); - if (eventlistner && pagination) { - var centerY = eventlistner.offsetTop + (eventlistner.offsetHeight / 2); - if (document.body.clientWidth > 768) { - if (centerY > visibleBottom) { - pagination.style.bottom = '0'; - } else { - pagination.style.bottom = '-200px'; - } - } - } -}, 200)) - -initCommentBarrage(); - -if (localStorage.getItem('commentBarrageSwitch') !== 'false') { - $(".comment-barrage").show(); - $(".menu-commentBarrage-text").text("关闭热评"); - document.querySelector("#consoleCommentBarrage").classList.add("on"); -} else { - $(".comment-barrage").hide(); - $(".menu-commentBarrage-text").text("显示热评"); - document.querySelector("#consoleCommentBarrage").classList.remove("on"); -} - - -document.addEventListener('pjax:send', function () { - clearInterval(commentInterval); -}); \ No newline at end of file diff --git a/templates/assets/zhheo/custom.css b/templates/assets/zhheo/custom.css deleted file mode 100644 index 1fa15971..00000000 --- a/templates/assets/zhheo/custom.css +++ /dev/null @@ -1,48 +0,0 @@ -/* 首行缩进 */ -/* .post-content p { - text-indent: 2em; -} */ - -/* 代码块纯黑色背景 */ -code[class*=" language-"], pre[class*=" language-"]{ - background: #18171d; -} - -/* banner 字体图标大小及位置 */ -i.iconfont.icon-arrow-right.banner-righticon{ - font-size: 66px; -} - -span.bannerText{ - display: block; - margin-top: 35px; -} - -/* 自我介绍渐变色背景 */ -#aside-content > .card-widget.card-info::before { - background: linear-gradient(-25deg,#0084ff,#031764,#67044d); - background-size: 400%; - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - content: ''; - animation: gradient 15s ease infinite; -} - -/* 列表样式及缩进 */ -ul li { - font-size: 18px; -} - -#article-container ol li:not(.tab), #article-container ul li:not(.tab){ - margin-left: 2em; -} - -#article-container pre > code { - background: transparent !important; - /* 解决文章界面代码超长时溢出问题 */ - display: block; - overflow: auto; -} diff --git a/templates/assets/zhheo/rightmenu.js b/templates/assets/zhheo/rightmenu.js deleted file mode 100644 index 80a45f0f..00000000 --- a/templates/assets/zhheo/rightmenu.js +++ /dev/null @@ -1,420 +0,0 @@ -// 初始化函数 -let rm = {}; - -//禁止图片拖拽 -rm.stopdragimg = $("img"); -rm.stopdragimg.on("dragstart", function () { - return false; -}); - -// 显示菜单 -rm.showRightMenu = function (isTrue, x = 0, y = 0) { - let $rightMenu = $('#rightMenu'); - $rightMenu.css('top', x + 'px').css('left', y + 'px'); - if (isTrue) { - $rightMenu.show(); - stopMaskScroll() - } else { - $rightMenu.hide(); - } -} - -// 隐藏菜单 -rm.hideRightMenu = function () { - rm.showRightMenu(false); - $('#rightmenu-mask').attr('style', 'display: none'); -} - -// 尺寸 -let rmWidth = $('#rightMenu').width(); -let rmHeight = $('#rightMenu').height(); - -// 重新定义尺寸 -rm.reloadrmSize = function () { - rmWidth = $('#rightMenu').width(); - rmHeight = $('#rightMenu').height(); -} - -// 获取点击的href -let domhref = ''; -let domImgSrc = ''; -let globalEvent = null; - -// 监听右键初始化 -window.oncontextmenu = function (event) { - if (document.body.clientWidth > 768) { - let pageX = event.clientX + 10; //加10是为了防止显示时鼠标遮在菜单上 - let pageY = event.clientY; - // console.log(event); - - //其他额外菜单 - let $rightMenuOther = $('.rightMenuOther'); - let $rightMenuPlugin = $('.rightMenuPlugin'); - let $rightMenuCopyText = $('#menu-copytext'); - let $rightMenuPasteText = $('#menu-pastetext'); - let $rightMenuCommentText = $('#menu-commenttext'); - let $rightMenuNewWindow = $('#menu-newwindow'); - let $rightMenuCopyLink = $('#menu-copylink'); - let $rightMenuCopyImg = $('#menu-copyimg'); - let $rightMenuDownloadImg = $('#menu-downloadimg'); - let $rightMenuSearch = $('#menu-search'); - let $rightMenuSearchBaidu = $('#menu-searchBaidu'); - let $rightMenuMusicToggle = $('#menu-music-toggle'); - let $rightMenuMusicBack = $('#menu-music-back'); - let $rightMenuMusicForward = $('#menu-music-forward'); - let $rightMenuMusicPlaylist = $('#menu-music-playlist'); - let $rightMenuMusicCopyMusicName = $('#menu-music-copyMusicName'); - let href = event.target.href; - let imgsrc = event.target.currentSrc; - - // 判断模式 扩展模式为有事件 - let pluginMode = false; - $rightMenuOther.show(); - globalEvent = event; - - // 检查是否需要复制 是否有选中文本 - if (selectTextNow && window.getSelection()) { - pluginMode = true; - $rightMenuCopyText.show(); - $rightMenuCommentText.show(); - $rightMenuSearch.show(); - $rightMenuSearchBaidu.show(); - } else { - $rightMenuCopyText.hide(); - $rightMenuCommentText.hide(); - $rightMenuSearchBaidu.hide(); - $rightMenuSearch.hide(); - } - - //检查是否右键点击了链接a标签 - if (href) { - pluginMode = true; - $rightMenuNewWindow.show(); - $rightMenuCopyLink.show(); - domhref = href; - } else { - $rightMenuNewWindow.hide(); - $rightMenuCopyLink.hide(); - } - - //检查是否需要复制图片 - if (imgsrc) { - pluginMode = true; - $rightMenuCopyImg.show(); - $rightMenuDownloadImg.show(); - domImgSrc = imgsrc; - } else { - $rightMenuCopyImg.hide(); - $rightMenuDownloadImg.hide(); - } - - // 判断是否为输入框 - if (event.target.tagName.toLowerCase() === 'input' || event.target.tagName.toLowerCase() === 'textarea') { - console.log('这是一个输入框') - pluginMode = true; - $rightMenuPasteText.show(); - } else { - $rightMenuPasteText.hide(); - } - - //判断是否是音乐 - if (event.target.nodeName == "METING-JS") { - console.log('这是一个音乐'); - pluginMode = true; - $rightMenuMusicToggle.show(); - $rightMenuMusicBack.show(); - $rightMenuMusicForward.show(); - $rightMenuMusicPlaylist.show(); - $rightMenuMusicCopyMusicName.show(); - } else { - $rightMenuMusicToggle.hide(); - $rightMenuMusicBack.hide(); - $rightMenuMusicForward.hide(); - $rightMenuMusicPlaylist.hide(); - $rightMenuMusicCopyMusicName.hide() - } - - // 如果不是扩展模式则隐藏扩展模块 - if (pluginMode) { - $rightMenuOther.hide(); - $rightMenuPlugin.show(); - } else { - $rightMenuPlugin.hide() - } - - rm.reloadrmSize() - - // 鼠标默认显示在鼠标右下方,当鼠标靠右或考下时,将菜单显示在鼠标左方\上方 - if (pageX + rmWidth > window.innerWidth) { - pageX -= rmWidth + 10; - } - if (pageY + rmHeight > window.innerHeight) { - pageY -= pageY + rmHeight - window.innerHeight; - } - - rm.showRightMenu(true, pageY, pageX); - $('#rightmenu-mask').attr('style', 'display: flex'); - return false; - } -}; - -// 下载图片状态 -rm.downloadimging = false; - -// 复制图片到剪贴板 -rm.writeClipImg = function (imgsrc) { - console.log('按下复制'); - rm.hideRightMenu(); - btf.snackbarShow('正在下载中,请稍后', false, 10000) - if (rm.downloadimging == false) { - rm.downloadimging = true; - setTimeout(function () { - copyImage(imgsrc); - btf.snackbarShow('复制成功!图片已添加盲水印,请遵守版权协议'); - rm.downloadimging = false; - }, "10000") - } -} - -function imageToBlob(imageURL) { - const img = new Image; - const c = document.createElement("canvas"); - const ctx = c.getContext("2d"); - img.crossOrigin = ""; - img.src = imageURL; - return new Promise(resolve => { - img.onload = function () { - c.width = this.naturalWidth; - c.height = this.naturalHeight; - ctx.drawImage(this, 0, 0); - c.toBlob((blob) => { - // here the image is a blob - resolve(blob) - }, "image/png", 0.75); - }; - }) -} - -async function copyImage(imageURL) { - const blob = await imageToBlob(imageURL) - const item = new ClipboardItem({"image/png": blob}); - navigator.clipboard.write([item]); -} - -rm.switchDarkMode = function () { - navFn.switchDarkMode(); - rm.hideRightMenu(); - heo.darkModeStatus(); - halo.darkComment(); -} - -rm.copyUrl = function (id) { - $("body").after(""); - var text = id; - var input = document.getElementById("copyVal"); - input.value = text; - input.select(); - input.setSelectionRange(0, input.value.length); - document.execCommand("copy"); - $("#copyVal").remove(); -} - -function stopMaskScroll() { - if (document.getElementById("rightmenu-mask")) { - let xscroll = document.getElementById("rightmenu-mask"); - xscroll.addEventListener("mousewheel", function (e) { - //阻止浏览器默认方法 - rm.hideRightMenu(); - // e.preventDefault(); - }, false); - } - if (document.getElementById("rightMenu")) { - let xscroll = document.getElementById("rightMenu"); - xscroll.addEventListener("mousewheel", function (e) { - //阻止浏览器默认方法 - rm.hideRightMenu(); - // e.preventDefault(); - }, false); - } -} - -rm.rightmenuCopyText = function (txt) { - if (navigator.clipboard) { - navigator.clipboard.writeText(txt); - } - rm.hideRightMenu(); -} - -rm.copyPageUrl = function () { - var url = window.location.href; - rm.copyUrl(url); - btf.snackbarShow('复制本页链接地址成功', false, 2000); - rm.hideRightMenu(); -} - -rm.sharePage = function () { - var content = window.location.href; - rm.copyUrl(url); - btf.snackbarShow('复制本页链接地址成功', false, 2000); - rm.hideRightMenu(); -} - -// 复制当前选中文本 -var selectTextNow = ''; -document.onmouseup = document.ondbclick = selceText; - -function selceText() { - var txt; - if (document.selection) { - txt = document.selection.createRange().text; - } else { - txt = window.getSelection() + ''; - } - if (txt) { - selectTextNow = txt; - // console.log(selectTextNow); - } else { - selectTextNow = ''; - } -} - -// 读取剪切板 -rm.readClipboard = function () { - if (navigator.clipboard) { - navigator.clipboard.readText().then(clipText => rm.insertAtCaret(globalEvent.target, clipText)); - } -} - -// 粘贴文本到焦点 -rm.insertAtCaret = function (elemt, value) { - const startPos = elemt.selectionStart, - endPos = elemt.selectionEnd; - if (document.selection) { - elemt.focus(); - var sel = document.selection.createRange(); - sel.text = value; - elemt.focus(); - } else { - if (startPos || startPos == '0') { - var scrollTop = elemt.scrollTop; - elemt.value = elemt.value.substring(0, startPos) + value + elemt.value.substring(endPos, elemt.value.length); - elemt.focus(); - elemt.selectionStart = startPos + value.length; - elemt.selectionEnd = startPos + value.length; - elemt.scrollTop = scrollTop; - } else { - elemt.value += value; - elemt.focus(); - } - } -} - -//粘贴文本 -rm.pasteText = function () { - const result = rm.readClipboard() || ''; - rm.hideRightMenu(); -} - -//引用到评论 -rm.rightMenuCommentText = function (txt) { - rm.hideRightMenu(); - var input = document.getElementsByClassName('el-textarea__inner')[0]; - let evt = document.createEvent('HTMLEvents'); - evt.initEvent('input', true, true); - let inputValue = replaceAll(txt, '\n', '\n> ') - input.value = '> ' + inputValue + '\n\n'; - input.dispatchEvent(evt); - var domTop = document.querySelector("#post-comment").offsetTop; - window.scrollTo(0, domTop - 80); - input.focus(); - input.setSelectionRange(-1, -1); - if (document.getElementById("comment-tips")) { - document.getElementById("comment-tips").classList.add("show"); - } -} - -//替换所有内容 -function replaceAll(string, search, replace) { - return string.split(search).join(replace); -} - -// 百度搜索 -rm.searchBaidu = function () { - btf.snackbarShow('即将跳转到百度搜索', false, 2000); - setTimeout(function () { - window.open('https://www.baidu.com/s?wd=' + selectTextNow); - }, "2000"); - rm.hideRightMenu(); -} - -//分享链接 -rm.copyLink = function () { - rm.rightmenuCopyText(domhref); - btf.snackbarShow('已复制链接地址'); -} - -function addRightMenuClickEvent() { - // 添加点击事件 - $('#menu-backward').on('click', function () { - window.history.back(); - rm.hideRightMenu(); - }); - $('#menu-forward').on('click', function () { - window.history.forward(); - rm.hideRightMenu(); - }); - $('#menu-refresh').on('click', function () { - window.location.reload(); - }); - $('#menu-top').on('click', function () { - btf.scrollToDest(0, 500); - rm.hideRightMenu(); - }); - $('.menu-link').on('click', rm.hideRightMenu); - $('#menu-darkmode').on('click', rm.switchDarkMode); - $('#menu-home').on('click', function () { - window.location.href = window.location.origin; - }); - $('#menu-randomPost').on('click', function () { - toRandomPost() - }); - $('#menu-commentBarrage').on('click', heo.switchCommentBarrage); - $('#rightmenu-mask').on('click', rm.hideRightMenu); - $('#rightmenu-mask').contextmenu(function () { - rm.hideRightMenu(); - return false; - }); - $('#menu-translate').on('click', function () { - rm.hideRightMenu(); - translateInitialization(); - }); - $('#menu-copy').on('click', rm.copyPageUrl); - $('#menu-pastetext').on('click', rm.pasteText); - $('#menu-copytext').on('click', function () { - rm.rightmenuCopyText(selectTextNow); - btf.snackbarShow('复制成功,复制和转载请标注本文地址'); - }); - $('#menu-commenttext').on('click', function () { - rm.rightMenuCommentText(selectTextNow); - }); - $('#menu-newwindow').on('click', function () { - window.open(domhref); - rm.hideRightMenu(); - }); - $('#menu-copylink').on('click', rm.copyLink); - $('#menu-downloadimg').on('click', function () { - heo.downloadImage(domImgSrc, 'zhheo'); - }); - $('#menu-copyimg').on('click', function () { - rm.writeClipImg(domImgSrc); - }); - $('#menu-searchBaidu').on('click', rm.searchBaidu); - //音乐 - $('#menu-music-toggle').on('click', heo.musicToggle); - $('#menu-music-back').on('click', heo.musicSkipBack); - $('#menu-music-forward').on('click', heo.musicSkipForward); - $('#menu-music-copyMusicName').on('click', function () { - rm.rightmenuCopyText(heo.musicGetName()); - btf.snackbarShow('复制歌曲名称成功', false, 3000); - }); -} diff --git a/templates/index.html b/templates/index.html index 5a6dd38b..b82670c2 100644 --- a/templates/index.html +++ b/templates/index.html @@ -26,8 +26,8 @@
- -
+ + diff --git a/templates/modules/bar/category.html b/templates/modules/bar/category.html index e05297ba..dac95ffb 100644 --- a/templates/modules/bar/category.html +++ b/templates/modules/bar/category.html @@ -17,7 +17,7 @@ - 更多 + 更多 \ No newline at end of file diff --git a/templates/modules/bar/custom-category.html b/templates/modules/bar/custom-category.html index c8edb359..ab428ba5 100644 --- a/templates/modules/bar/custom-category.html +++ b/templates/modules/bar/custom-category.html @@ -16,7 +16,7 @@ - 更多 + 更多 \ No newline at end of file diff --git a/templates/modules/bar/custom-tag.html b/templates/modules/bar/custom-tag.html index 4ebb047f..3f8b0aac 100644 --- a/templates/modules/bar/custom-tag.html +++ b/templates/modules/bar/custom-tag.html @@ -16,7 +16,7 @@ - 更多 + 更多 \ No newline at end of file diff --git a/templates/modules/bar/custom-url.html b/templates/modules/bar/custom-url.html index af057455..a9d945b5 100644 --- a/templates/modules/bar/custom-url.html +++ b/templates/modules/bar/custom-url.html @@ -17,7 +17,7 @@ - 更多 + 更多 \ No newline at end of file diff --git a/templates/modules/bar/tag.html b/templates/modules/bar/tag.html index aa287f65..52b51925 100644 --- a/templates/modules/bar/tag.html +++ b/templates/modules/bar/tag.html @@ -17,7 +17,7 @@ - 更多 + 更多 \ No newline at end of file diff --git a/templates/modules/head.html b/templates/modules/head.html index b5c20b7e..0280ec90 100644 --- a/templates/modules/head.html +++ b/templates/modules/head.html @@ -1,158 +1,67 @@ - + - + - + - - + - - + + + + + - + + + + + - - - - - + - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/templates/modules/layouts/layout.html b/templates/modules/layouts/layout.html index 76ff3ea3..d7c855f0 100644 --- a/templates/modules/layouts/layout.html +++ b/templates/modules/layouts/layout.html @@ -2,157 +2,79 @@ - - - - - + + - - - -
- - -
+
+
+ + +
+ - - - - - - - - - - - - - -
- - - + + + + + +
+ + + const pjax = new Pjax({ + elements: 'a:not([target="_blank"])', + selectors: pjaxSelectors, + cacheBust: false, + analytics: false, + scrollRestoration: false + }) - - - + document.querySelectorAll('script[data-pjax]').forEach(item => { + const newScript = document.createElement('script') + const content = item.text || item.textContent || item.innerHTML || "" + Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value)) + newScript.appendChild(document.createTextNode(content)) + item.parentNode.replaceChild(newScript, item) + }) - - - - - - - - - - + document.addEventListener('pjax:error', (e) => { + if (e.request.status === 404) { + pjax.loadUrl('/404.html') + } + }) +
-
- - + + + diff --git a/templates/modules/moment.html b/templates/modules/moment.html index bd4de294..cc687e7e 100644 --- a/templates/modules/moment.html +++ b/templates/modules/moment.html @@ -3,23 +3,28 @@
- -
+ +
这里需要安装瞬间的插件
去安装吧!
- +
-
+
- -
-
+ +
+
-
+
diff --git a/templates/modules/nav.html b/templates/modules/nav.html index b0ec9d09..b8a69a39 100644 --- a/templates/modules/nav.html +++ b/templates/modules/nav.html @@ -1,13 +1,15 @@ -
- 热评 -
${data.nick}
- - -