├── LICENSE ├── README.md ├── composer.json └── src ├── Controllers └── IframeController.php ├── IframeTabProvider.php ├── assets ├── css │ ├── style.css │ └── swiper.min.css └── js │ ├── base.js │ ├── compress │ ├── base.js │ ├── extend.js │ ├── md5.js │ └── swiper.min.js │ ├── extend.js │ ├── md5.js │ └── swiper.min.js ├── helpers.php ├── iframe_tab.php ├── resource └── views │ ├── content.blade.php │ ├── full-content.blade.php │ ├── full-page.blade.php │ ├── page.blade.php │ └── vertical.blade.php └── routes.php /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 Chen TaiHong, Jasper Chen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dcat-iframe-tab 2 | 3 | ## 介绍 4 | 5 | 这个扩展包基于laravel框架和dcat-admin框架,为解决dcat-admin没有自带兼容iframe架构。使用此扩展包可以构建出一个iframe架构并带有标签页管理的后台框架。 6 | 7 | ## 功能 8 | 9 | 1. 双击关闭标签页 10 | 2. 当标签页过多时,可通过鼠标滚轮选择或者按住鼠标拖动 11 | 3. 支持右键操作(目前支持的操作有:关闭所有标签、关闭其他标签、刷新当前标签、复制标签页链接) 12 | 13 | ## 安装 14 | 15 | 运行以下命令: 16 | 17 | ``` 18 | $ composer require mosiboom/dcat-iframe-tab 19 | ``` 20 | 21 | 然后运行: 22 | 23 | ``` 24 | # 发布扩展必备文件 25 | $ php artisan vendor:publish --tag=iframe-tab 26 | # 发布扩展配置文件 27 | $ php artisan vendor:publish --tag=iframe-tab.config 28 | # 发布扩展的视图文件(如想自定义某些内容可发布出去,建议不要使用) 29 | $ php artisan vendor:publish --tag=iframe-tab.view 30 | ``` 31 | 32 | `php artisan vendor:publish --tag=iframe-tab` 会将css和js发布`public/vendor/iframe-tab` 33 | 34 | ## 更新 35 | 相关更新内容请关注github的`tag`,里面有每个版本详细的更新:[https://github.com/mosiboom/dcat-iframe-tab/releases](https://github.com/mosiboom/dcat-iframe-tab/releases) 36 | 37 | 基本迭代更新命令: 38 | ```apacheconfig 39 | composer remove mosiboom/dcat-iframe-tab 40 | composer require mosiboom/dcat-iframe-tab:版本号 41 | php artisan vendor:publish --tag=iframe-tab --force 42 | ``` 43 | 44 | 其他文件覆盖更新: 45 | ``` 46 | $ php artisan vendor:publish --tag=iframe-tab --force 47 | $ php artisan vendor:publish --tag=iframe-tab.config --force 48 | ``` 49 | 50 | This will override css and js files to `/public/vendor/laravel-admin-ext/iframe-tabs/` 51 | 52 | 此操作会覆盖css和js还有配置文件,配置文件可以根据自己的需要来选择是否强制覆盖 53 | 54 | ## 配置 55 | 56 | 配置文件在 `config/iframe_tab.php`下dcat-Iframe-tab可提供的配置并不多,根据自己的需要去配置: 57 | 58 | ```php 59 | return [ 60 | # 是否开启iframe_tab 61 | 'enable' => env('START_IFRAME_TAB', true), 62 | # 底部设置 63 | 'footer_setting' => [ 64 | 'copyright' => env('APP_NAME', ''), 65 | 'app_version' => env('APP_VERSION', ''), 66 | # 是否将底部置于菜单下 67 | 'use_menu' => false 68 | ], 69 | # 是否开启标签页缓存 70 | 'cache' => env('IFRAME_TAB_CACHE', false), 71 | # 更改dialog表单默认宽高 72 | 'dialog_area_width' => env('IFRAME_TAB_DIALOG_AREA_WIDTH', '50%'), 73 | 'dialog_area_height' => env('IFRAME_TAB_DIALOG_AREA_HEIGHT', '90vh'), 74 | # iframe-tab占用的路由 默认 '/' 75 | 'router' => '/', 76 | 'domain' => null, 77 | # 是否开启懒加载模式 78 | 'lazy_load' => true 79 | ]; 80 | ``` 81 | 82 | ## 新增扩展接口和扩展功能 83 | 84 | 1. 用户可以在子页面引入 `public/vendor/iframe-tab/js/extend.js`文件,或者通过调用`window.iframeTabParent`全局对象来调用父级页面的iframe-tab 85 | 2. 引入新功能:超链接监听打开新页面加入iframe-tab:用户可自行定义超链接按钮,以此来打开新标签页页面,通过添加`iframe-extends=true` 和 `iframe-tab=true` 两个属性 86 | ```html 87 | 添加新的标签页 88 | ``` 89 | 90 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mosiboom/dcat-iframe-tab", 3 | "description": "iframe-tab framework for dcat-admin", 4 | "type": "laravel-extension", 5 | "authors": [ 6 | { 7 | "name": "Jasper", 8 | "email": "936022546@qq.com" 9 | } 10 | ], 11 | "extra": { 12 | "laravel": { 13 | "providers": [ 14 | "Mosiboom\\DcatIframeTab\\IframeTabProvider" 15 | ], 16 | "aliases": { 17 | "IframeTab": "Mosiboom\\DcatIframeTab\\IframeTab" 18 | }, 19 | "dont-discover": [] 20 | } 21 | }, 22 | "autoload": { 23 | "psr-4": { 24 | "Mosiboom\\DcatIframeTab\\": "src/" 25 | }, 26 | "files": [ 27 | "src/helpers.php" 28 | ] 29 | }, 30 | "require": { 31 | "php": ">=7.2.5" 32 | }, 33 | "license": "MIT" 34 | } 35 | -------------------------------------------------------------------------------- /src/Controllers/IframeController.php: -------------------------------------------------------------------------------- 1 | view('iframe-tab::content'); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/IframeTabProvider.php: -------------------------------------------------------------------------------- 1 | app->resolving(Content::class, function ($content, $app) { 22 | //设置view 为 iframe.full-content 23 | $content->view('iframe-tab::full-content'); 24 | if(strpos(request()->getUri(),'auth/login') !== false){ 25 | #退出登录不记录当前页面 26 | session()->forget('url.intended'); 27 | Admin::script(<<view('iframe-tab::full-content'); 37 | if(strpos(request()->getUri(),'auth/login') !== false){ 38 | Admin::script(<<setDialogFormDimensions(config('iframe_tab.dialog_area_width'), config('iframe_tab.dialog_area_height')); 47 | }); 48 | } 49 | } 50 | 51 | /** 52 | * Bootstrap services. 53 | * 54 | * @return void 55 | */ 56 | public function boot() 57 | { 58 | $this->loadViewsFrom(__DIR__ . '/resource/views', 'iframe-tab'); 59 | $this->loadRoutesFrom(__DIR__ . '/routes.php'); 60 | $this->publishes([ 61 | __DIR__ . '/assets/js/compress' => public_path('vendor/iframe-tab/js'), 62 | __DIR__ . '/assets/css' => public_path('vendor/iframe-tab/css'), 63 | ], 'iframe-tab'); 64 | $this->publishes([ 65 | __DIR__ . '/resource/views' => resource_path('views/vendor/iframe-tab'), 66 | ], 'iframe-tab.view'); 67 | $this->publishes([ 68 | __DIR__ . '/iframe_tab.php' => config_path('iframe_tab.php'), 69 | ], 'iframe-tab.config'); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/assets/css/style.css: -------------------------------------------------------------------------------- 1 | .iframe-tab-container { 2 | position: absolute; 3 | top: 60px; 4 | width: calc(100% - 260px); 5 | max-width: 100%; 6 | height: 40px; 7 | background: #ffffff; 8 | border-top: 1px solid #e2e2e2; 9 | box-sizing: border-box; 10 | min-height: 20px; 11 | z-index: 1; 12 | box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1); 13 | } 14 | 15 | .iframe-tab-container + .iframe-tab-wrapper { 16 | padding: 100px 0 0 0; 17 | top: 0; 18 | height: calc(100vh - 100px); 19 | min-height: 900px; 20 | } 21 | 22 | /*其他布局*/ 23 | .iframe-tab-sidebar-separate { 24 | width: calc(100% - 280px - 6rem); 25 | top: 6rem; 26 | } 27 | 28 | .iframe-tab-sidebar-separate + .iframe-tab-wrapper { 29 | padding: calc(6rem + 40px) 0 0 0; 30 | } 31 | 32 | .header-navbar.navbar-shadow { 33 | box-shadow: none; 34 | } 35 | 36 | .header-navbar.navbar-shadow { 37 | box-shadow: none; 38 | } 39 | 40 | 41 | @media (min-width: 992px) { 42 | .sidebar-mini.sidebar-collapse .iframe-tab-container { 43 | margin-left: 5.4rem !important; 44 | width: calc(100% - 5.4rem); 45 | /*transition: width .3s ease-in-out;*/ 46 | } 47 | 48 | .sidebar-mini.sidebar-collapse .iframe-tab-sidebar-separate { 49 | margin-left: calc(6rem + 35px) !important; 50 | width: calc(100% - 6rem - 35px - 40px); 51 | /*transition: width .3s ease-in-out;*/ 52 | } 53 | } 54 | 55 | @media (min-width: 768px) { 56 | body:not(.sidebar-mini-md) .iframe-tab-container { 57 | margin-left: 260px; 58 | transition: margin-left .3s ease-in-out; 59 | } 60 | 61 | body:not(.sidebar-mini-md) .iframe-tab-sidebar-separate { 62 | margin-left: calc(280px + 3rem); 63 | transition: margin-left .3s ease-in-out; 64 | } 65 | 66 | } 67 | 68 | @media (max-width: 991px) { 69 | body:not(.sidebar-mini-md) .iframe-tab-container, body:not(.sidebar-mini-md) .iframe-tab-container:before { 70 | width: 100%; 71 | margin-left: 0; 72 | } 73 | 74 | body:not(.sidebar-mini-md) .iframe-tab-sidebar-separate, body:not(.sidebar-mini-md) .iframe-tab-sidebar-separate:before { 75 | width: calc(100% - 80px); 76 | margin-left: 40px; 77 | } 78 | 79 | .iframe-tab-sidebar-separate { 80 | margin-left: 20px; 81 | width: calc(100% - 80px); 82 | } 83 | 84 | body:not(.sidebar-mini-md) .content-wrapper { 85 | transition: margin-left .3s ease-in-out; 86 | margin-left: 0; 87 | } 88 | } 89 | 90 | #iframe-tab-container #iframe-tab .nav-link { 91 | padding: 0 30px; 92 | box-sizing: border-box; 93 | line-height: 40px; 94 | height: 40px; 95 | border-radius: 0; 96 | position: relative; 97 | border-right: 1px solid #efefef; 98 | margin-right: 0; 99 | } 100 | 101 | #iframe-tab-container #iframe-tab .nav-link p, #iframe-tab-container #iframe-tab .nav-link span:not(.iframe-tab-close-btn) { 102 | display: inline; 103 | } 104 | 105 | .iframe-tab-close-btn { 106 | display: none; 107 | } 108 | 109 | /*#iframe-tab-container #iframe-tab .nav-link.active .iframe-tab-close-btn,*/ 110 | #iframe-tab-container #iframe-tab .nav-link:hover .iframe-tab-close-btn { 111 | position: absolute; 112 | top: -1px; 113 | right: 7px; 114 | display: block; 115 | z-index: 999; 116 | } 117 | 118 | #iframe-tab-container #iframe-tab .nav-link.active .iframe-tab-close-btn i { 119 | color: white; 120 | font-size: 12px; 121 | transition: margin-left .3s ease-in-out; 122 | } 123 | 124 | #iframe-tab-container #iframe-tab .nav-link:hover .iframe-tab-close-btn { 125 | color: #414750; 126 | font-weight: lighter; 127 | } 128 | 129 | #iframe-tab { 130 | width: 100%; 131 | position: relative; 132 | flex-wrap: nowrap; 133 | } 134 | 135 | /*右键菜单*/ 136 | .mouse-click-menu { 137 | background-color: rgba(0, 0, 0, 0.8); 138 | -moz-box-shadow: 2px 2px 5px #666; 139 | -webkit-box-shadow: 2px 2px 5px #666; 140 | box-shadow: 2px 2px 5px #666; 141 | position: fixed; 142 | width: 120px; 143 | box-sizing: border-box; 144 | border-radius: 0.5rem; 145 | display: none; 146 | z-index: 99999; 147 | padding: 5px 0; 148 | } 149 | 150 | .mouse-click-menu ul { 151 | width: 100%; 152 | display: block; 153 | padding: 5px 0; 154 | } 155 | 156 | .mouse-click-menu ul li { 157 | display: block; 158 | width: 100%; 159 | list-style: none; 160 | } 161 | 162 | .mouse-click-menu .li_separate { 163 | line-height: 0; 164 | margin: 3px; 165 | border-bottom: 1px solid #727575; 166 | font-size: 0; 167 | } 168 | 169 | .mouse-click-menu .menu-item { 170 | width: 100%; 171 | display: block; 172 | height: 25px; 173 | line-height: 24px; 174 | color: white; 175 | font-size: 12px; 176 | text-decoration: none; 177 | text-align: center; 178 | } 179 | 180 | .mouse-click-menu .menu-item:hover { 181 | background: white; 182 | color: black; 183 | } 184 | 185 | .swiper-button-prev i, .swiper-button-next i { 186 | color: #555555; 187 | font-size: 20px; 188 | } 189 | 190 | .swiper-button-prev { 191 | width: 40px; 192 | height: 40px; 193 | background: #efefef; 194 | left: 0; 195 | border: none; 196 | box-shadow: none; 197 | margin-top: 0; 198 | top: 0; 199 | outline: none; 200 | } 201 | 202 | .swiper-button-prev:after, .swiper-container-rtl .swiper-button-next:after { 203 | content: ''; 204 | } 205 | 206 | .swiper-button-next { 207 | width: 40px; 208 | height: 40px; 209 | background: #efefef; 210 | right: 0; 211 | margin-top: 0; 212 | top: 0; 213 | outline: none; 214 | } 215 | 216 | .swiper-button-next:after, .swiper-container-rtl .swiper-button-prev:after { 217 | content: ''; 218 | } 219 | 220 | .swiper-slide { 221 | width: auto !important; 222 | } 223 | 224 | .swiper-container { 225 | width: calc(100% - 80px); 226 | height: 40px; 227 | /*background: red;*/ 228 | } 229 | 230 | #iframe-tab-container.sidebar-dark-white #iframe-tab .nav-link { 231 | border-right: 0; 232 | } 233 | #iframe-tab-container.sidebar-dark-white #iframe-tab .nav-link.active{ 234 | background: #1e1e2d; 235 | } 236 | #iframe-tab-container.sidebar-dark-white{ 237 | border-top: 1px solid #2c2c42; 238 | } 239 | #iframe-tab-container.sidebar-dark-white .swiper-button-prev,#iframe-tab-container.sidebar-dark-white .swiper-button-next{ 240 | background: #0e0e1d; 241 | box-sizing: border-box; 242 | border: 1px solid #2c2c42; 243 | } 244 | #iframe-tab-container.sidebar-dark-white .swiper-button-prev i,#iframe-tab-container.sidebar-dark-white .swiper-button-next i{ 245 | color: #efefef; 246 | } 247 | -------------------------------------------------------------------------------- /src/assets/css/swiper.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Swiper 6.4.5 3 | * Most modern mobile touch slider and framework with hardware accelerated transitions 4 | * https://swiperjs.com 5 | * 6 | * Copyright 2014-2020 Vladimir Kharlampidi 7 | * 8 | * Released under the MIT License 9 | * 10 | * Released on: December 18, 2020 11 | */ 12 | 13 | @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA') format('woff');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-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-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}: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(-1 * 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:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#ffffff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000000}.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-container-horizontal>.swiper-pagination-bullets,.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:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-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-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-white{--swiper-pagination-color:#ffffff}.swiper-pagination-black{--swiper-pagination-color:#000000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-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%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-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-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden} -------------------------------------------------------------------------------- /src/assets/js/base.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | /*引用swiper插件*/ 3 | const swiper = new Swiper('.swiper-container', { 4 | slidesPerView: 'auto', 5 | spaceBetween: 0, 6 | freeMode: true, 7 | watchSlidesProgress: true, 8 | watchSlidesVisibility: true, 9 | navigation: { 10 | nextEl: '.swiper-button-next', 11 | prevEl: '.swiper-button-prev', 12 | }, 13 | observer: true, //开启监视者模式 14 | observeParents: true, //开启监视父类 15 | observeSlideChildren: true, //开启监视子类 16 | mousewheel: { 17 | sensitivity: 0.3, //鼠标滚轮的控制速率 18 | }, 19 | grabCursor: true, //开启抓手模式 20 | }); 21 | /*管理元素*/ 22 | const elements = { 23 | iframe_tab_container: $('#iframe-tab-container'), 24 | iframe_tab: $('#iframe-tab'), 25 | iframe_tab_link: $('#iframe-tab .nav-link'), 26 | iframe_tabContent: $('#iframe-tabContent'), 27 | item_close: $('.iframe-tab-close-btn'), 28 | menu_link: $('.main-menu .nav-link:not(.navbar-header .nav-link)'), 29 | menu_content: $('.main-menu-content .sidebar'), 30 | drop_menu_link: $(".dropdown-menu .dropdown-item"), 31 | drop_menu: $(".dropdown-menu"), 32 | } 33 | /*定义模板*/ 34 | const iframeTabTemplate = { 35 | tabItem(html, id, use_close = true) { 36 | /*标签栏*/ 37 | let close_html = '' 38 | let first_tag = 'data-first=1' 39 | if (use_close) { 40 | close_html = '' 41 | first_tag = 'data-first=0' 42 | } 43 | return ` 44 | 50 | ` 51 | }, 52 | tabContentItem(url, id) { 53 | /*标签对应内容*/ 54 | return ` 55 |
56 | 61 |
62 | ` 63 | } 64 | } 65 | /*Tab逻辑处理*/ 66 | const iframeTab = { 67 | TAB_STORAGE_KEY: $('#use_id').val() + '_6d9e562706a26cd2', 68 | CLICK_TAB: '', 69 | USE_CACHE: parseInt($('#iframe_tab_cache').val()), 70 | LAZY_LOAD: parseInt($('#iframe_tab_lazy_load').val()), 71 | storageGet() { 72 | let data = localStorage.getItem(this.TAB_STORAGE_KEY) 73 | return JSON.parse(data) === null ? {} : JSON.parse(data) 74 | }, 75 | storageSet(id, value) { 76 | let list = this.storageGet() 77 | list[id] = value 78 | let data = JSON.stringify(list) 79 | localStorage.setItem(this.TAB_STORAGE_KEY, data) 80 | return list; 81 | }, 82 | storageDelete(id) { 83 | /*删除一个*/ 84 | let data = this.storageGet() 85 | if (data[id]) { 86 | delete (data[id]) 87 | localStorage.setItem(this.TAB_STORAGE_KEY, JSON.stringify(data)) 88 | } 89 | return data 90 | }, 91 | storageDeleteAll() { 92 | /*删除所有*/ 93 | localStorage.removeItem(this.TAB_STORAGE_KEY) 94 | }, 95 | clearDefaultMenuEvent() { 96 | elements.menu_link.unbind('click') 97 | elements.drop_menu_link.unbind('click') 98 | $('.navbar-header').find('a').unbind('click') 99 | let items = elements.menu_content.find('li') 100 | items.find('a').click(function (e) { 101 | let href = $(this).attr('href'); 102 | if (!href || href === '#') { 103 | return; 104 | } 105 | e.preventDefault() 106 | items.find('.nav-link').removeClass('active'); 107 | $(this).addClass('active') 108 | }) 109 | elements.drop_menu.find('.dropdown-item').click(function (e) { 110 | let href = $(this).attr('href'); 111 | if (!href || href === '#') { 112 | return; 113 | } 114 | e.preventDefault() 115 | }) 116 | }, 117 | menuClick() { 118 | let items = elements.menu_content.find('li') 119 | /*左侧菜单监听*/ 120 | items.find('a').click(iframeTab.menuClickCallback); 121 | /*顶部菜单监听*/ 122 | elements.drop_menu.find('a').click(iframeTab.menuClickCallback) 123 | /*点击logo重定向*/ 124 | $('.navbar-header').find('a').click(function () { 125 | location.href = $(this).attr('href') 126 | }) 127 | }, 128 | menuClickCallback: function () { 129 | let html = $(this).html(), 130 | href = $(this).attr('href'), 131 | id = iframeTab.generateID(href) 132 | if (!href || href === '#') { 133 | return 134 | } 135 | /*登出跳转*/ 136 | if (href.indexOf("logout") !== -1) { 137 | location.href = href 138 | return 139 | } 140 | let tab_html = iframeTabTemplate.tabItem(html, id), //生成tab的html 141 | tab_content_html = iframeTabTemplate.tabContentItem(href, id), //生成tab content的html 142 | choose_element = iframeTab.findIframeTabActiveElement() 143 | /*移除tab bar 选中样式*/ 144 | iframeTab.removeTabBarStyle() 145 | /*更新选中缓存中的tab bar*/ 146 | iframeTab.cacheUpdateTabBar(choose_element) 147 | /*判断tab是否已经存在,不存在添加,存在则更新*/ 148 | if (elements.iframe_tab.find(`#iframe-home-${id}`).length <= 0) { 149 | swiper.appendSlide(tab_html) 150 | elements.iframe_tabContent.append(tab_content_html) 151 | let iframeTab_element = $(`#iframe-home-${id}`), //获取tab的元素对象 152 | _index = iframeTab_element.parents('.nav-item').index(), //获取下标 153 | content_element = $(`#iframe-${id}`) //获取tab content的元素对象 154 | swiper.slideTo(_index) 155 | swiper.updateSlides() 156 | iframeTab_element.addClass('active') 157 | iframeTab_element.attr('aria-selected', 'true') 158 | content_element.addClass('active') 159 | content_element.addClass('show') 160 | iframeTab.cacheUpdateTabBar(iframeTab_element) 161 | } else { 162 | /*模拟点击*/ 163 | elements.iframe_tab.find(`#iframe-home-${id}`).click() 164 | } 165 | }, 166 | joinFirstMenu() { 167 | /*获取第一条菜单包括图标信息并添加到tab*/ 168 | let first_menu_html = $(elements.menu_link[0]).html() 169 | let first_url = $(elements.menu_link[0]).attr('href'); 170 | let first_id = this.generateID(first_url); 171 | swiper.appendSlide(iframeTabTemplate.tabItem(first_menu_html, first_id, false)) 172 | elements.iframe_tabContent.append(iframeTabTemplate.tabContentItem(first_url, first_id)) 173 | swiper.updateSlides(); 174 | }, 175 | removeTabBarStyle() { 176 | /*移除tab bar 选中样式*/ 177 | elements.iframe_tab.find('.nav-link').removeClass('active'); 178 | elements.iframe_tab.find('.nav-link').attr('aria-selected', 'false') 179 | elements.iframe_tabContent.find('.tab-pane').removeClass('active', 'show') 180 | }, 181 | closeAdjacentOperate(adjacent) { 182 | /*关闭标签后相邻兄弟元素的选择*/ 183 | adjacent.find(`.nav-link`).click() 184 | iframeTab.removeTabBarStyle() 185 | adjacent.find(`.nav-link`).addClass('active'); 186 | adjacent.find(`.nav-link`).attr('aria-selected', 'true') 187 | let content_href = adjacent.find('.nav-link').attr('href') 188 | elements.iframe_tabContent.find(content_href).addClass('active') 189 | elements.iframe_tabContent.find(content_href).addClass('show') 190 | }, 191 | iframeTabEventRegister() { 192 | /*按关闭按钮关闭*/ 193 | $(document).on('click', '.iframe-tab-close-btn', function (e) { 194 | let can_delete = $(this).parents(".nav-link").attr('data-first'); 195 | if (can_delete === '1') { 196 | return; 197 | } 198 | let parent_obj = $(this).parents(".nav-item") 199 | /*如果是关闭当前选中的标签页,则下一个有选下一个,否则选上一个*/ 200 | if ($(this).parents(".nav-link").hasClass('active')) { 201 | let next_obj = parent_obj.next() 202 | let prev_obj = parent_obj.prev() 203 | if (next_obj.length > 0) { 204 | iframeTab.closeAdjacentOperate(next_obj) 205 | } else { 206 | iframeTab.closeAdjacentOperate(prev_obj) 207 | } 208 | } 209 | let tab_content_element = $($(this).parents(".nav-link").attr('href')) 210 | parent_obj.remove() 211 | tab_content_element.remove() 212 | if (iframeTab.USE_CACHE === 1) { 213 | iframeTab.storageDelete($(this).parents(".nav-link").attr('id').split("-").pop()) 214 | } 215 | e.stopPropagation() 216 | }); 217 | /*双击关闭*/ 218 | $(document).on('dblclick', '#iframe-tab .nav-link', function (e) { 219 | $(this).find('.iframe-tab-close-btn').click() 220 | return false 221 | }); 222 | /*联动菜单样式*/ 223 | $(document).on('click', '#iframe-tab .nav-link', function () { 224 | let content_id = $(this).attr('href') 225 | if (iframeTab.LAZY_LOAD === 1 && $(`${content_id}`).length <= 0) { 226 | let content_without_suffix = content_id.replace('#iframe-', "") 227 | console.log(content_without_suffix); 228 | console.log(iframeTab.storageGet()); 229 | elements.iframe_tabContent.append(iframeTab.storageGet()[content_without_suffix].tab_content_html) 230 | iframeTab.removeTabBarStyle() 231 | } 232 | let content_element = $(`${content_id}`) 233 | iframeTab.linkMenuAndIframeTab(content_id) 234 | $(this).addClass('active'); 235 | $(this).attr('aria-selected', 'true') 236 | content_element.addClass('active') 237 | content_element.addClass('show') 238 | let _index = $(this).parents('.nav-item').index() 239 | swiper.slideTo(_index) 240 | swiper.updateSlides(); 241 | iframeTab.cacheUpdateTabBar($(this)) 242 | 243 | }); 244 | /*获取上一个活动标签*/ 245 | $(document).on('hidden.bs.tab', '#iframe-tab .nav-link', function (event) { 246 | iframeTab.cacheUpdateTabBar($(event.target)) 247 | }); 248 | 249 | /*右键菜单*/ 250 | $(document).on('mousedown', '#iframe-tab .nav-link', function (event) { 251 | document.oncontextmenu = function () { 252 | return false; 253 | } 254 | // let event = window.event || arguments.callee.caller.arguments[0] 255 | let key = event.which;//获取鼠标键位 256 | if (key === 3) {//1:代表左键;2:代表中键;3:代表右键 257 | //获取右键点击坐标 258 | let x = event.clientX; 259 | let y = event.clientY; 260 | $('.mouse-click-menu').show().css({left: x, top: y}); 261 | iframeTab.CLICK_TAB = $(this) 262 | } 263 | }); 264 | }, 265 | rightClickEventRegister() { 266 | /*复制标签页链接*/ 267 | $(document).on('click', '.tab-copy-link', function () { 268 | if (iframeTab.CLICK_TAB !== '') { 269 | let content_id = iframeTab.CLICK_TAB.attr("href") 270 | let content = $(`${content_id} > iframe`).attr("src") 271 | let $temp = $(''); 272 | $("body").append($temp); 273 | $temp.val(content).select(); 274 | document.execCommand("copy"); 275 | $temp.remove(); 276 | $(this).tooltip('show'); 277 | Dcat.success('复制成功'); 278 | } 279 | document.oncontextmenu = function () { 280 | return true; 281 | } 282 | }) 283 | /*在新标签页中打开*/ 284 | $(document).on('click', '.tab-open-link', function () { 285 | if (iframeTab.CLICK_TAB !== '') { 286 | let content_id = iframeTab.CLICK_TAB.attr("href") 287 | let content = $(`${content_id} > iframe`).attr("src") 288 | window.open(content) 289 | } 290 | document.oncontextmenu = function () { 291 | return true; 292 | } 293 | }) 294 | /*关闭所有标签页*/ 295 | $(document).on('click', '.tab-close-all', function () { 296 | if (iframeTab.CLICK_TAB !== '') { 297 | elements.iframe_tab.find('.nav-link').each(function () { 298 | let can_delete = $(this).attr('data-first'); 299 | if (can_delete === '1') { 300 | return; 301 | } 302 | $(this).find('.iframe-tab-close-btn').click() 303 | }) 304 | } 305 | document.oncontextmenu = function () { 306 | return true; 307 | } 308 | }) 309 | /*关闭其他标签页*/ 310 | $(document).on('click', '.tab-close-other', function () { 311 | if (iframeTab.CLICK_TAB !== '') { 312 | elements.iframe_tab.find('.nav-link').each(function () { 313 | let can_delete = $(this).attr('data-first'); 314 | if (can_delete === '1') { 315 | return; 316 | } 317 | if (iframeTab.CLICK_TAB.attr('id') === $(this).attr('id')) { 318 | iframeTab.CLICK_TAB.click() 319 | return; 320 | } 321 | iframeTab.cacheUpdateTabBar($(this)) 322 | $(this).find('.iframe-tab-close-btn').click() 323 | }) 324 | } 325 | document.oncontextmenu = function () { 326 | return true; 327 | } 328 | }) 329 | /*清空缓存*/ 330 | $(document).on('click', '.tab-clear-cache', function () { 331 | iframeTab.storageDeleteAll() 332 | Dcat.success('缓存已清空'); 333 | elements.iframe_tab.html('') 334 | elements.iframe_tabContent.html('') 335 | iframeTab.joinFirstMenu() 336 | elements.menu_content.find('.nav-link.active').removeClass('active') 337 | $(elements.menu_link[0]).addClass('active') 338 | document.oncontextmenu = function () { 339 | return true; 340 | } 341 | }) 342 | /*刷新当前标签页*/ 343 | $(document).on('click', '.tab-refresh', function () { 344 | if (iframeTab.CLICK_TAB !== '') { 345 | let iframe_element = $(`${iframeTab.CLICK_TAB.attr("href")} > iframe`), 346 | src = iframe_element.attr('src') 347 | iframe_element.attr('src', '') 348 | iframe_element.attr('src', src) 349 | Dcat.success('页面已刷新') 350 | } 351 | document.oncontextmenu = function () { 352 | return true; 353 | } 354 | }) 355 | /*全局点击事件,释放浏览器默认右键菜单*/ 356 | $(document).on('click', function () { 357 | document.oncontextmenu = function () { 358 | return true; 359 | } 360 | $('.mouse-click-menu').hide(); 361 | }) 362 | }, 363 | cacheInit() { 364 | if (this.USE_CACHE === 0) { 365 | this.storageDeleteAll() 366 | return; 367 | } 368 | let list = this.storageGet() 369 | console.log(list); 370 | if (list.length === 0 || JSON.stringify(list) === "{}") { 371 | return; 372 | } 373 | iframeTab.removeTabBarStyle() 374 | for (let i in list) { 375 | swiper.appendSlide(list[i].tab_html) 376 | } 377 | if (iframeTab.LAZY_LOAD === 0) { 378 | for (let i in list) { 379 | elements.iframe_tabContent.append(list[i].tab_content_html) 380 | } 381 | } 382 | /*如果html里面没有active,则默认使用第一个*/ 383 | let active_ele = iframeTab.findIframeTabActiveElement() 384 | let is_first = false; 385 | if (active_ele.length <= 0) { 386 | is_first = true; 387 | let first_url = $(elements.menu_link[0]).attr('href'); 388 | let first_id = this.generateID(first_url); 389 | $(`#iframe-home-${first_id}`).click() 390 | } 391 | let content_id = active_ele.attr('href') 392 | if (iframeTab.LAZY_LOAD === 1 && !is_first) { 393 | let content_without_suffix = content_id.replace('#iframe-', "") 394 | console.log(content_without_suffix); 395 | console.log(list[content_without_suffix].tab_content_html); 396 | elements.iframe_tabContent.append(list[content_without_suffix].tab_content_html) 397 | } 398 | iframeTab.linkMenuAndIframeTab(content_id) 399 | }, 400 | cacheUpdateTabBar(tab_link_element) { 401 | if (this.USE_CACHE !== 1) { 402 | return; 403 | } 404 | /*更新TabBar的html*/ 405 | if (tab_link_element.attr('data-first') !== '1') { 406 | let id = tab_link_element.attr('id').split("-").pop(); 407 | let tab_html = tab_link_element.parents('li').prop('outerHTML') 408 | let tab_content_html = $(`#iframe-${id}`).prop('outerHTML') 409 | this.storageSet(id, {id, tab_html, tab_content_html}) 410 | } 411 | }, 412 | findIframeTabActiveElement() { 413 | /*寻找tab里面选中的元素并返回*/ 414 | return elements.iframe_tab.find('.nav-link.active') 415 | }, 416 | linkMenuAndIframeTab(content_id) { 417 | /*链接Iframe tab和Menu*/ 418 | let href = $(`${content_id} > iframe`).attr('src') 419 | let items = elements.menu_content.find('li') 420 | items.find('a').each(function () { 421 | let item_href = $(this).attr('href') 422 | if (!item_href || item_href === '#') { 423 | return; 424 | } 425 | if (item_href === href) { 426 | items.find('.nav-link').removeClass('active'); 427 | $(this).addClass('active') 428 | let parent_obj = $(this).parents('.has-treeview') 429 | if (parent_obj.length > 0 && !parent_obj.hasClass('menu-open')) { 430 | parent_obj.find("a[href='#']").click() 431 | } 432 | } 433 | }) 434 | }, 435 | init() { 436 | /*清除pjax默认菜单a标签点击事件*/ 437 | this.clearDefaultMenuEvent() 438 | /*加入第一条默认菜单*/ 439 | this.joinFirstMenu() 440 | /*菜单监听*/ 441 | this.menuClick() 442 | /*缓存标签页处理*/ 443 | this.cacheInit() 444 | /*事件注册*/ 445 | this.iframeTabEventRegister() 446 | /*右键事件注册*/ 447 | this.rightClickEventRegister() 448 | /*兼容dcat夜间模式*/ 449 | this.darkMode() 450 | }, 451 | darkMode() { 452 | const storage = window.parent.localStorage || { 453 | setItem: function () { 454 | }, getItem: function () { 455 | } 456 | }, 457 | key = 'dcat-admin-theme-mode', 458 | mode = storage.getItem(key) 459 | 460 | if (mode === 'dark') { 461 | elements.iframe_tab_container.addClass('sidebar-dark-white') 462 | } 463 | $(document).on('dark-mode.shown', function () { 464 | elements.iframe_tab_container.addClass('sidebar-dark-white') 465 | }); 466 | 467 | $(document).on('dark-mode.hide', function () { 468 | elements.iframe_tab_container.removeClass('sidebar-dark-white') 469 | }); 470 | }, 471 | /*生成ID*/ 472 | generateID(href) { 473 | return md5(href + this.TAB_STORAGE_KEY).substr(8, 16) 474 | }, 475 | } 476 | /*挂载*/ 477 | window.iframeTabParent = {swiper, elements, iframeTabTemplate, iframeTab} 478 | iframeTab.init() 479 | }) 480 | -------------------------------------------------------------------------------- /src/assets/js/compress/base.js: -------------------------------------------------------------------------------- 1 | eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('\'2B 2C\';$(5(){4 j=2D 2E(\'.14-1Y\',{2F:\'1Z\',2G:0,2H:z,2I:z,2J:z,2K:{2L:\'.14-20-21\',2M:\'.14-20-22\'},2N:z,2O:z,2P:z,2Q:{2R:0.3},2S:z});4 k={1g:$(\'#7-v-1Y\'),G:$(\'#7-v\'),2T:$(\'#7-v .q-t\'),F:$(\'#7-2U\'),2V:$(\'.7-v-J-T\'),U:$(\'.23-L .q-t:2W(.1y-1z .q-t)\'),15:$(\'.23-L-2X .1h\'),24:$(".1i-L .1i-V"),1A:$(".1i-L")};4 l={1j:5 1j(a,b){4 c=1B.M<=2||1B[2]===2Y?z:1B[2];4 d=\'\';4 e=\'N-W=1\';9(c){d=\'<25 2Z="关闭标签页" 17="7-v-J-T">\';e=\'N-W=0\'}r\'\\n \\n \\n \'+a+\'\\n \'+d+\'\\n \\n \\n \'},1k:5 1k(a,b){r\'\\n <27 17="v-28 37 P A" B="7-\'+b+\'" 1C="38" O-39="7-Y-\'+b+\'">\\n <7\\n 3a="3b: 3c;29: 1l%;2a: 1l%;2b: 0;2c: 0;3d: 0;3e: 0;"\\n H="\'+a+\'" 29="1l%" 2a="1l%" 3f="2d" 3g="0" 3h="0"\\n 3i="0"\\n 2e-x="2d" 2e-y="1Z" 3j="3k">\\n \\n \'}};4 m={Z:$(\'#3l\').1m()+\'3m\',E:\'\',1n:2f($(\'#3n\').1m()),1o:2f($(\'#3o\').1m()),Q:5 Q(){4 a=19.1p(6.Z);r 1a.2g(a)===3p?{}:1a.2g(a)},1D:5 1D(a,b){4 c=6.Q();c[a]=b;4 d=1a.1E(c);19.1q(6.Z,d);r c},1F:5 1F(a){4 b=6.Q();9(b[a]){3q b[a];19.1q(6.Z,1a.1E(b))}r b},1r:5 1r(){19.3r(6.Z)},1G:5 1G(){k.U.1H(\'s\');k.24.1H(\'s\');$(\'.1y-1z\').p(\'a\').1H(\'s\');4 b=k.15.p(\'X\');b.p(\'a\').s(5(e){4 a=$(6).o(\'u\');9(!a||a===\'#\'){r}e.2h();b.p(\'.q-t\').10(\'A\');$(6).C(\'A\')});k.1A.p(\'.1i-V\').s(5(e){4 a=$(6).o(\'u\');9(!a||a===\'#\'){r}e.2h()})},1I:5 1I(){4 a=k.15.p(\'X\');a.p(\'a\').s(m.1s);k.1A.p(\'a\').s(m.1s);$(\'.1y-1z\').p(\'a\').s(5(){2i.u=$(6).o(\'u\')})},1s:5 1s(){4 a=$(6).1t(),u=$(6).o(\'u\'),B=m.1b(u);9(!u||u===\'#\'){r}9(u.3s("3t")!==-1){2i.u=u;r}4 b=l.1j(a,B),R=l.1k(u,B),2j=m.1u();m.11();m.S(2j);9(k.G.p(\'#7-Y-\'+B).M<=0){j.1J(b);k.F.12(R);4 c=$(\'#7-Y-\'+B),2k=c.I(\'.q-V\').2l(),1K=$(\'#7-\'+B);j.2m(2k);j.1L();c.C(\'A\');c.o(\'O-18\',\'z\');1K.C(\'A\');1K.C(\'P\');m.S(c)}2n{k.G.p(\'#7-Y-\'+B).s()}},1v:5 1v(){4 a=$(k.U[0]).1t();4 b=$(k.U[0]).o(\'u\');4 c=6.1b(b);j.1J(l.1j(a,c,1c));k.F.12(l.1k(b,c));j.1L()},11:5 11(){k.G.p(\'.q-t\').10(\'A\');k.G.p(\'.q-t\').o(\'O-18\',\'1c\');k.F.p(\'.v-28\').10(\'A\',\'P\')},1w:5 1w(a){a.p(\'.q-t\').s();m.11();a.p(\'.q-t\').C(\'A\');a.p(\'.q-t\').o(\'O-18\',\'z\');4 b=a.p(\'.q-t\').o(\'u\');k.F.p(b).C(\'A\');k.F.p(b).C(\'P\')},1M:5 1M(){$(w).D(\'s\',\'.7-v-J-T\',5(e){4 a=$(6).I(".q-t").o(\'N-W\');9(a===\'1\'){r}4 b=$(6).I(".q-V");9($(6).I(".q-t").2o(\'A\')){4 c=b.21();4 d=b.22();9(c.M>0){m.1w(c)}2n{m.1w(d)}}4 f=$($(6).I(".q-t").o(\'u\'));b.1N();f.1N();9(m.1n===1){m.1F($(6).I(".q-t").o(\'B\').2p("-").2q())}e.3u()});$(w).D(\'3v\',\'#7-v .q-t\',5(e){$(6).p(\'.7-v-J-T\').s();r 1c});$(w).D(\'s\',\'#7-v .q-t\',5(){4 a=$(6).o(\'u\');9(m.1o===1&&$(\'\'+a).M<=0){4 b=a.2r(\'#7-\',"");1d.1e(b);1d.1e(m.Q());k.F.12(m.Q()[b].R);m.11()}4 c=$(\'\'+a);m.1x(a);$(6).C(\'A\');$(6).o(\'O-18\',\'z\');c.C(\'A\');c.C(\'P\');4 d=$(6).I(\'.q-V\').2l();j.2m(d);j.1L();m.S($(6))});$(w).D(\'3w.3x.v\',\'#7-v .q-t\',5(a){m.S($(a.3y))});$(w).D(\'3z\',\'#7-v .q-t\',5(a){w.K=5(){r 1c};4 b=a.3A;9(b===3){4 x=a.3B;4 y=a.3C;$(\'.2s-s-L\').P().3D({2b:x,2c:y});m.E=$(6)}})},1O:5 1O(){$(w).D(\'s\',\'.v-2t-t\',5(){9(m.E!==\'\'){4 a=m.E.o("u");4 b=$(a+\' > 7\').o("H");4 c=$(\'<3E>\');$("3F").12(c);c.1m(b).3G();w.3H("2t");c.1N();$(6).3I(\'P\');1P.1Q(\'复制成功\')}w.K=5(){r z}});$(w).D(\'s\',\'.v-1R-t\',5(){9(m.E!==\'\'){4 a=m.E.o("u");4 b=$(a+\' > 7\').o("H");1S.1R(b)}w.K=5(){r z}});$(w).D(\'s\',\'.v-J-3J\',5(){9(m.E!==\'\'){k.G.p(\'.q-t\').1T(5(){4 a=$(6).o(\'N-W\');9(a===\'1\'){r}$(6).p(\'.7-v-J-T\').s()})}w.K=5(){r z}});$(w).D(\'s\',\'.v-J-3K\',5(){9(m.E!==\'\'){k.G.p(\'.q-t\').1T(5(){4 a=$(6).o(\'N-W\');9(a===\'1\'){r}9(m.E.o(\'B\')===$(6).o(\'B\')){m.E.s();r}m.S($(6));$(6).p(\'.7-v-J-T\').s()})}w.K=5(){r z}});$(w).D(\'s\',\'.v-3L-3M\',5(){m.1r();1P.1Q(\'缓存已清空\');k.G.1t(\'\');k.F.1t(\'\');m.1v();k.15.p(\'.q-t.A\').10(\'A\');$(k.U[0]).C(\'A\');w.K=5(){r z}});$(w).D(\'s\',\'.v-3N\',5(){9(m.E!==\'\'){4 a=$(m.E.o("u")+\' > 7\'),H=a.o(\'H\');a.o(\'H\',\'\');a.o(\'H\',H);1P.1Q(\'页面已刷新\')}w.K=5(){r z}});$(w).D(\'s\',5(){w.K=5(){r z};$(\'.2s-s-L\').2u()})},1U:5 1U(){9(6.1n===0){6.1r();r}4 a=6.Q();1d.1e(a);9(a.M===0||1a.1E(a)==="{}"){r}m.11();2v(4 i 2w a){j.1J(a[i].2x)}9(m.1o===0){2v(4 b 2w a){k.F.12(a[b].R)}}4 c=m.1u();4 d=1c;9(c.M<=0){d=z;4 e=$(k.U[0]).o(\'u\');4 f=6.1b(e);$(\'#7-Y-\'+f).s()}4 g=c.o(\'u\');9(m.1o===1&&!d){4 h=g.2r(\'#7-\',"");1d.1e(h);1d.1e(a[h].R);k.F.12(a[h].R)}m.1x(g)},S:5 S(a){9(6.1n!==1){r}9(a.o(\'N-W\')!==\'1\'){4 b=a.o(\'B\').2p("-").2q();4 c=a.I(\'X\').2y(\'2z\');4 d=$(\'#7-\'+b).2y(\'2z\');6.1D(b,{B:b,2x:c,R:d})}},1u:5 1u(){r k.G.p(\'.q-t.A\')},1x:5 1x(c){4 d=$(c+\' > 7\').o(\'H\');4 e=k.15.p(\'X\');e.p(\'a\').1T(5(){4 a=$(6).o(\'u\');9(!a||a===\'#\'){r}9(a===d){e.p(\'.q-t\').10(\'A\');$(6).C(\'A\');4 b=$(6).I(\'.3O-3P\');9(b.M>0&&!b.2o(\'L-1R\')){b.p("a[u=\'#\']").s()}}})},1V:5 1V(){6.1G();6.1v();6.1I();6.1U();6.1M();6.1O();6.1W()},1W:5 1W(){4 a=1S.3Q.19||{1q:5 1q(){},1p:5 1p(){}},2A=\'3R-3S-3T-1f\',1f=a.1p(2A);9(1f===\'13\'){k.1g.C(\'1h-13-1X\')}$(w).D(\'13-1f.3U\',5(){k.1g.C(\'1h-13-1X\')});$(w).D(\'13-1f.2u\',5(){k.1g.10(\'1h-13-1X\')})},1b:5 1b(a){r 3V(a+6.Z).3W(8,16)}};1S.3X={14:j,3Y:k,3Z:l,40:m};m.1V()});',62,249,'||||var|function|this|iframe||if|||||||||||||||attr|find|nav|return|click|link|href|tab|document|||true|active|id|addClass|on|CLICK_TAB|iframe_tabContent|iframe_tab|src|parents|close|oncontextmenu|menu|length|data|aria|show|storageGet|tab_content_html|cacheUpdateTabBar|btn|menu_link|item|first|li|home|TAB_STORAGE_KEY|removeClass|removeTabBarStyle|append|dark|swiper|menu_content||class|selected|localStorage|JSON|generateID|false|console|log|mode|iframe_tab_container|sidebar|dropdown|tabItem|tabContentItem|100|val|USE_CACHE|LAZY_LOAD|getItem|setItem|storageDeleteAll|menuClickCallback|html|findIframeTabActiveElement|joinFirstMenu|closeAdjacentOperate|linkMenuAndIframeTab|navbar|header|drop_menu|arguments|role|storageSet|stringify|storageDelete|clearDefaultMenuEvent|unbind|menuClick|appendSlide|content_element|updateSlides|iframeTabEventRegister|remove|rightClickEventRegister|Dcat|success|open|window|each|cacheInit|init|darkMode|white|container|auto|button|next|prev|main|drop_menu_link|span|fa|div|pane|width|height|left|top|no|scrolling|parseInt|parse|preventDefault|location|choose_element|_index|index|slideTo|else|hasClass|split|pop|replace|mouse|copy|hide|for|in|tab_html|prop|outerHTML|key|use|strict|new|Swiper|slidesPerView|spaceBetween|freeMode|watchSlidesProgress|watchSlidesVisibility|navigation|nextEl|prevEl|observer|observeParents|observeSlideChildren|mousewheel|sensitivity|grabCursor|iframe_tab_link|tabContent|item_close|not|content|undefined|title|minus|circle|slide|presentation|toggle|pill|controls|fade|tabpanel|labelledby|style|position|absolute|right|bottom|frameborder|border|marginwidth|marginheight|allowtransparency|yes|use_id|_6d9e562706a26cd2|iframe_tab_cache|iframe_tab_lazy_load|null|delete|removeItem|indexOf|logout|stopPropagation|dblclick|hidden|bs|target|mousedown|which|clientX|clientY|css|input|body|select|execCommand|tooltip|all|other|clear|cache|refresh|has|treeview|parent|dcat|admin|theme|shown|md5|substr|iframeTabParent|elements|iframeTabTemplate|iframeTab'.split('|'),0,{})) -------------------------------------------------------------------------------- /src/assets/js/compress/extend.js: -------------------------------------------------------------------------------- 1 | $(function(){window.parent.iframeTabParent&&0<$("a[iframe-extends=true]").length&&function(){var a=window.parent.iframeTabParent,f={addTab:function(c){var d=1>=arguments.length||void 0===arguments[1]?"":arguments[1],e=2>=arguments.length||void 0===arguments[2]?"icon-circle":arguments[2],b="";""!==d&&(b+=d+"-");d=' 

'+(b+c.text())+"

";e=c.attr("href");b=a.iframeTab.generateID(e);if(0> 16) + (y >> 16) + (lsw >> 16) 32 | return (msw << 16) | (lsw & 0xffff) 33 | } 34 | 35 | /* 36 | * Bitwise rotate a 32-bit number to the left. 37 | */ 38 | function bitRotateLeft (num, cnt) { 39 | return (num << cnt) | (num >>> (32 - cnt)) 40 | } 41 | 42 | /* 43 | * These functions implement the four basic operations the algorithm uses. 44 | */ 45 | function md5cmn (q, a, b, x, s, t) { 46 | return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b) 47 | } 48 | function md5ff (a, b, c, d, x, s, t) { 49 | return md5cmn((b & c) | (~b & d), a, b, x, s, t) 50 | } 51 | function md5gg (a, b, c, d, x, s, t) { 52 | return md5cmn((b & d) | (c & ~d), a, b, x, s, t) 53 | } 54 | function md5hh (a, b, c, d, x, s, t) { 55 | return md5cmn(b ^ c ^ d, a, b, x, s, t) 56 | } 57 | function md5ii (a, b, c, d, x, s, t) { 58 | return md5cmn(c ^ (b | ~d), a, b, x, s, t) 59 | } 60 | 61 | /* 62 | * Calculate the MD5 of an array of little-endian words, and a bit length. 63 | */ 64 | function binlMD5 (x, len) { 65 | /* append padding */ 66 | x[len >> 5] |= 0x80 << (len % 32) 67 | x[((len + 64) >>> 9 << 4) + 14] = len 68 | 69 | var i 70 | var olda 71 | var oldb 72 | var oldc 73 | var oldd 74 | var a = 1732584193 75 | var b = -271733879 76 | var c = -1732584194 77 | var d = 271733878 78 | 79 | for (i = 0; i < x.length; i += 16) { 80 | olda = a 81 | oldb = b 82 | oldc = c 83 | oldd = d 84 | 85 | a = md5ff(a, b, c, d, x[i], 7, -680876936) 86 | d = md5ff(d, a, b, c, x[i + 1], 12, -389564586) 87 | c = md5ff(c, d, a, b, x[i + 2], 17, 606105819) 88 | b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330) 89 | a = md5ff(a, b, c, d, x[i + 4], 7, -176418897) 90 | d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426) 91 | c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341) 92 | b = md5ff(b, c, d, a, x[i + 7], 22, -45705983) 93 | a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416) 94 | d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417) 95 | c = md5ff(c, d, a, b, x[i + 10], 17, -42063) 96 | b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162) 97 | a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682) 98 | d = md5ff(d, a, b, c, x[i + 13], 12, -40341101) 99 | c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290) 100 | b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329) 101 | 102 | a = md5gg(a, b, c, d, x[i + 1], 5, -165796510) 103 | d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632) 104 | c = md5gg(c, d, a, b, x[i + 11], 14, 643717713) 105 | b = md5gg(b, c, d, a, x[i], 20, -373897302) 106 | a = md5gg(a, b, c, d, x[i + 5], 5, -701558691) 107 | d = md5gg(d, a, b, c, x[i + 10], 9, 38016083) 108 | c = md5gg(c, d, a, b, x[i + 15], 14, -660478335) 109 | b = md5gg(b, c, d, a, x[i + 4], 20, -405537848) 110 | a = md5gg(a, b, c, d, x[i + 9], 5, 568446438) 111 | d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690) 112 | c = md5gg(c, d, a, b, x[i + 3], 14, -187363961) 113 | b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501) 114 | a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467) 115 | d = md5gg(d, a, b, c, x[i + 2], 9, -51403784) 116 | c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473) 117 | b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734) 118 | 119 | a = md5hh(a, b, c, d, x[i + 5], 4, -378558) 120 | d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463) 121 | c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562) 122 | b = md5hh(b, c, d, a, x[i + 14], 23, -35309556) 123 | a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060) 124 | d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353) 125 | c = md5hh(c, d, a, b, x[i + 7], 16, -155497632) 126 | b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640) 127 | a = md5hh(a, b, c, d, x[i + 13], 4, 681279174) 128 | d = md5hh(d, a, b, c, x[i], 11, -358537222) 129 | c = md5hh(c, d, a, b, x[i + 3], 16, -722521979) 130 | b = md5hh(b, c, d, a, x[i + 6], 23, 76029189) 131 | a = md5hh(a, b, c, d, x[i + 9], 4, -640364487) 132 | d = md5hh(d, a, b, c, x[i + 12], 11, -421815835) 133 | c = md5hh(c, d, a, b, x[i + 15], 16, 530742520) 134 | b = md5hh(b, c, d, a, x[i + 2], 23, -995338651) 135 | 136 | a = md5ii(a, b, c, d, x[i], 6, -198630844) 137 | d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415) 138 | c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905) 139 | b = md5ii(b, c, d, a, x[i + 5], 21, -57434055) 140 | a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571) 141 | d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606) 142 | c = md5ii(c, d, a, b, x[i + 10], 15, -1051523) 143 | b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799) 144 | a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359) 145 | d = md5ii(d, a, b, c, x[i + 15], 10, -30611744) 146 | c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380) 147 | b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649) 148 | a = md5ii(a, b, c, d, x[i + 4], 6, -145523070) 149 | d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379) 150 | c = md5ii(c, d, a, b, x[i + 2], 15, 718787259) 151 | b = md5ii(b, c, d, a, x[i + 9], 21, -343485551) 152 | 153 | a = safeAdd(a, olda) 154 | b = safeAdd(b, oldb) 155 | c = safeAdd(c, oldc) 156 | d = safeAdd(d, oldd) 157 | } 158 | return [a, b, c, d] 159 | } 160 | 161 | /* 162 | * Convert an array of little-endian words to a string 163 | */ 164 | function binl2rstr (input) { 165 | var i 166 | var output = '' 167 | var length32 = input.length * 32 168 | for (i = 0; i < length32; i += 8) { 169 | output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff) 170 | } 171 | return output 172 | } 173 | 174 | /* 175 | * Convert a raw string to an array of little-endian words 176 | * Characters >255 have their high-byte silently ignored. 177 | */ 178 | function rstr2binl (input) { 179 | var i 180 | var output = [] 181 | output[(input.length >> 2) - 1] = undefined 182 | for (i = 0; i < output.length; i += 1) { 183 | output[i] = 0 184 | } 185 | var length8 = input.length * 8 186 | for (i = 0; i < length8; i += 8) { 187 | output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32) 188 | } 189 | return output 190 | } 191 | 192 | /* 193 | * Calculate the MD5 of a raw string 194 | */ 195 | function rstrMD5 (s) { 196 | return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)) 197 | } 198 | 199 | /* 200 | * Calculate the HMAC-MD5, of a key and some data (raw strings) 201 | */ 202 | function rstrHMACMD5 (key, data) { 203 | var i 204 | var bkey = rstr2binl(key) 205 | var ipad = [] 206 | var opad = [] 207 | var hash 208 | ipad[15] = opad[15] = undefined 209 | if (bkey.length > 16) { 210 | bkey = binlMD5(bkey, key.length * 8) 211 | } 212 | for (i = 0; i < 16; i += 1) { 213 | ipad[i] = bkey[i] ^ 0x36363636 214 | opad[i] = bkey[i] ^ 0x5c5c5c5c 215 | } 216 | hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8) 217 | return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)) 218 | } 219 | 220 | /* 221 | * Convert a raw string to a hex string 222 | */ 223 | function rstr2hex (input) { 224 | var hexTab = '0123456789abcdef' 225 | var output = '' 226 | var x 227 | var i 228 | for (i = 0; i < input.length; i += 1) { 229 | x = input.charCodeAt(i) 230 | output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) 231 | } 232 | return output 233 | } 234 | 235 | /* 236 | * Encode a string as utf-8 237 | */ 238 | function str2rstrUTF8 (input) { 239 | return unescape(encodeURIComponent(input)) 240 | } 241 | 242 | /* 243 | * Take string arguments and return either raw or hex encoded strings 244 | */ 245 | function rawMD5 (s) { 246 | return rstrMD5(str2rstrUTF8(s)) 247 | } 248 | function hexMD5 (s) { 249 | return rstr2hex(rawMD5(s)) 250 | } 251 | function rawHMACMD5 (k, d) { 252 | return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)) 253 | } 254 | function hexHMACMD5 (k, d) { 255 | return rstr2hex(rawHMACMD5(k, d)) 256 | } 257 | 258 | function md5 (string, key, raw) { 259 | if (!key) { 260 | if (!raw) { 261 | return hexMD5(string) 262 | } 263 | return rawMD5(string) 264 | } 265 | if (!raw) { 266 | return hexHMACMD5(key, string) 267 | } 268 | return rawHMACMD5(key, string) 269 | } 270 | 271 | if (typeof define === 'function' && define.amd) { 272 | define(function () { 273 | return md5 274 | }) 275 | } else if (typeof module === 'object' && module.exports) { 276 | module.exports = md5 277 | } else { 278 | $.md5 = md5 279 | } 280 | })(this) 281 | -------------------------------------------------------------------------------- /src/assets/js/extend.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | if (window.parent.iframeTabParent && $("a[iframe-extends=true]").length > 0) { 3 | const iframeTabParent = window.parent.iframeTabParent 4 | /*其他扩展处理*/ 5 | const iframeTabExtends = { 6 | /** 7 | * 添加标签 8 | * @param element a标签元素 9 | * @param page_title 页面标题 10 | * @param icon 默认是圆形 11 | */ 12 | addTab(element, page_title = '', icon = 'icon-circle') { 13 | let title = '' 14 | if (page_title !== '') { 15 | title += page_title + '-' 16 | } 17 | let page_html = ` 

${title + element.text()}

`; 18 | let url = element.attr('href') 19 | let id = iframeTabParent.iframeTab.generateID(url); 20 | if (iframeTabParent.elements.iframe_tab.find(`#iframe-home-${id}`).length > 0) { 21 | iframeTabParent.elements.iframe_tab.find(`#iframe-home-${id}`).click() 22 | return false 23 | } 24 | let choose_element = iframeTabParent.iframeTab.findIframeTabActiveElement() 25 | iframeTabParent.swiper.appendSlide(iframeTabParent.iframeTabTemplate.tabItem(page_html, id)) 26 | iframeTabParent.elements.iframe_tabContent.append(iframeTabParent.iframeTabTemplate.tabContentItem(url, id)) 27 | iframeTabParent.swiper.updateSlides(); 28 | /*移除tab bar 选中样式*/ 29 | iframeTabParent.iframeTab.removeTabBarStyle() 30 | /*更新选中缓存中的tab bar*/ 31 | iframeTabParent.iframeTab.cacheUpdateTabBar(choose_element) 32 | //触发点击 33 | iframeTabParent.elements.iframe_tab.find(`#iframe-home-${id}`).click() 34 | }, 35 | init() { 36 | $(document).on('click', 'a[iframe-tab=true]', function (e) { 37 | iframeTabExtends.addTab($(this)) 38 | e.preventDefault() 39 | }) 40 | } 41 | } 42 | iframeTabExtends.init() 43 | } 44 | }) 45 | -------------------------------------------------------------------------------- /src/assets/js/md5.js: -------------------------------------------------------------------------------- 1 | /* 2 | * JavaScript MD5 3 | * https://github.com/blueimp/JavaScript-MD5 4 | * 5 | * Copyright 2011, Sebastian Tschan 6 | * https://blueimp.net 7 | * 8 | * Licensed under the MIT license: 9 | * https://opensource.org/licenses/MIT 10 | * 11 | * Based on 12 | * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 13 | * Digest Algorithm, as defined in RFC 1321. 14 | * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 15 | * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet 16 | * Distributed under the BSD License 17 | * See http://pajhome.org.uk/crypt/md5 for more info. 18 | */ 19 | 20 | /* global define */ 21 | 22 | ;(function ($) { 23 | 'use strict' 24 | 25 | /* 26 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally 27 | * to work around bugs in some JS interpreters. 28 | */ 29 | function safeAdd (x, y) { 30 | var lsw = (x & 0xffff) + (y & 0xffff) 31 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16) 32 | return (msw << 16) | (lsw & 0xffff) 33 | } 34 | 35 | /* 36 | * Bitwise rotate a 32-bit number to the left. 37 | */ 38 | function bitRotateLeft (num, cnt) { 39 | return (num << cnt) | (num >>> (32 - cnt)) 40 | } 41 | 42 | /* 43 | * These functions implement the four basic operations the algorithm uses. 44 | */ 45 | function md5cmn (q, a, b, x, s, t) { 46 | return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b) 47 | } 48 | function md5ff (a, b, c, d, x, s, t) { 49 | return md5cmn((b & c) | (~b & d), a, b, x, s, t) 50 | } 51 | function md5gg (a, b, c, d, x, s, t) { 52 | return md5cmn((b & d) | (c & ~d), a, b, x, s, t) 53 | } 54 | function md5hh (a, b, c, d, x, s, t) { 55 | return md5cmn(b ^ c ^ d, a, b, x, s, t) 56 | } 57 | function md5ii (a, b, c, d, x, s, t) { 58 | return md5cmn(c ^ (b | ~d), a, b, x, s, t) 59 | } 60 | 61 | /* 62 | * Calculate the MD5 of an array of little-endian words, and a bit length. 63 | */ 64 | function binlMD5 (x, len) { 65 | /* append padding */ 66 | x[len >> 5] |= 0x80 << (len % 32) 67 | x[((len + 64) >>> 9 << 4) + 14] = len 68 | 69 | var i 70 | var olda 71 | var oldb 72 | var oldc 73 | var oldd 74 | var a = 1732584193 75 | var b = -271733879 76 | var c = -1732584194 77 | var d = 271733878 78 | 79 | for (i = 0; i < x.length; i += 16) { 80 | olda = a 81 | oldb = b 82 | oldc = c 83 | oldd = d 84 | 85 | a = md5ff(a, b, c, d, x[i], 7, -680876936) 86 | d = md5ff(d, a, b, c, x[i + 1], 12, -389564586) 87 | c = md5ff(c, d, a, b, x[i + 2], 17, 606105819) 88 | b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330) 89 | a = md5ff(a, b, c, d, x[i + 4], 7, -176418897) 90 | d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426) 91 | c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341) 92 | b = md5ff(b, c, d, a, x[i + 7], 22, -45705983) 93 | a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416) 94 | d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417) 95 | c = md5ff(c, d, a, b, x[i + 10], 17, -42063) 96 | b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162) 97 | a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682) 98 | d = md5ff(d, a, b, c, x[i + 13], 12, -40341101) 99 | c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290) 100 | b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329) 101 | 102 | a = md5gg(a, b, c, d, x[i + 1], 5, -165796510) 103 | d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632) 104 | c = md5gg(c, d, a, b, x[i + 11], 14, 643717713) 105 | b = md5gg(b, c, d, a, x[i], 20, -373897302) 106 | a = md5gg(a, b, c, d, x[i + 5], 5, -701558691) 107 | d = md5gg(d, a, b, c, x[i + 10], 9, 38016083) 108 | c = md5gg(c, d, a, b, x[i + 15], 14, -660478335) 109 | b = md5gg(b, c, d, a, x[i + 4], 20, -405537848) 110 | a = md5gg(a, b, c, d, x[i + 9], 5, 568446438) 111 | d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690) 112 | c = md5gg(c, d, a, b, x[i + 3], 14, -187363961) 113 | b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501) 114 | a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467) 115 | d = md5gg(d, a, b, c, x[i + 2], 9, -51403784) 116 | c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473) 117 | b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734) 118 | 119 | a = md5hh(a, b, c, d, x[i + 5], 4, -378558) 120 | d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463) 121 | c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562) 122 | b = md5hh(b, c, d, a, x[i + 14], 23, -35309556) 123 | a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060) 124 | d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353) 125 | c = md5hh(c, d, a, b, x[i + 7], 16, -155497632) 126 | b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640) 127 | a = md5hh(a, b, c, d, x[i + 13], 4, 681279174) 128 | d = md5hh(d, a, b, c, x[i], 11, -358537222) 129 | c = md5hh(c, d, a, b, x[i + 3], 16, -722521979) 130 | b = md5hh(b, c, d, a, x[i + 6], 23, 76029189) 131 | a = md5hh(a, b, c, d, x[i + 9], 4, -640364487) 132 | d = md5hh(d, a, b, c, x[i + 12], 11, -421815835) 133 | c = md5hh(c, d, a, b, x[i + 15], 16, 530742520) 134 | b = md5hh(b, c, d, a, x[i + 2], 23, -995338651) 135 | 136 | a = md5ii(a, b, c, d, x[i], 6, -198630844) 137 | d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415) 138 | c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905) 139 | b = md5ii(b, c, d, a, x[i + 5], 21, -57434055) 140 | a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571) 141 | d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606) 142 | c = md5ii(c, d, a, b, x[i + 10], 15, -1051523) 143 | b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799) 144 | a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359) 145 | d = md5ii(d, a, b, c, x[i + 15], 10, -30611744) 146 | c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380) 147 | b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649) 148 | a = md5ii(a, b, c, d, x[i + 4], 6, -145523070) 149 | d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379) 150 | c = md5ii(c, d, a, b, x[i + 2], 15, 718787259) 151 | b = md5ii(b, c, d, a, x[i + 9], 21, -343485551) 152 | 153 | a = safeAdd(a, olda) 154 | b = safeAdd(b, oldb) 155 | c = safeAdd(c, oldc) 156 | d = safeAdd(d, oldd) 157 | } 158 | return [a, b, c, d] 159 | } 160 | 161 | /* 162 | * Convert an array of little-endian words to a string 163 | */ 164 | function binl2rstr (input) { 165 | var i 166 | var output = '' 167 | var length32 = input.length * 32 168 | for (i = 0; i < length32; i += 8) { 169 | output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff) 170 | } 171 | return output 172 | } 173 | 174 | /* 175 | * Convert a raw string to an array of little-endian words 176 | * Characters >255 have their high-byte silently ignored. 177 | */ 178 | function rstr2binl (input) { 179 | var i 180 | var output = [] 181 | output[(input.length >> 2) - 1] = undefined 182 | for (i = 0; i < output.length; i += 1) { 183 | output[i] = 0 184 | } 185 | var length8 = input.length * 8 186 | for (i = 0; i < length8; i += 8) { 187 | output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32) 188 | } 189 | return output 190 | } 191 | 192 | /* 193 | * Calculate the MD5 of a raw string 194 | */ 195 | function rstrMD5 (s) { 196 | return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)) 197 | } 198 | 199 | /* 200 | * Calculate the HMAC-MD5, of a key and some data (raw strings) 201 | */ 202 | function rstrHMACMD5 (key, data) { 203 | var i 204 | var bkey = rstr2binl(key) 205 | var ipad = [] 206 | var opad = [] 207 | var hash 208 | ipad[15] = opad[15] = undefined 209 | if (bkey.length > 16) { 210 | bkey = binlMD5(bkey, key.length * 8) 211 | } 212 | for (i = 0; i < 16; i += 1) { 213 | ipad[i] = bkey[i] ^ 0x36363636 214 | opad[i] = bkey[i] ^ 0x5c5c5c5c 215 | } 216 | hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8) 217 | return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)) 218 | } 219 | 220 | /* 221 | * Convert a raw string to a hex string 222 | */ 223 | function rstr2hex (input) { 224 | var hexTab = '0123456789abcdef' 225 | var output = '' 226 | var x 227 | var i 228 | for (i = 0; i < input.length; i += 1) { 229 | x = input.charCodeAt(i) 230 | output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) 231 | } 232 | return output 233 | } 234 | 235 | /* 236 | * Encode a string as utf-8 237 | */ 238 | function str2rstrUTF8 (input) { 239 | return unescape(encodeURIComponent(input)) 240 | } 241 | 242 | /* 243 | * Take string arguments and return either raw or hex encoded strings 244 | */ 245 | function rawMD5 (s) { 246 | return rstrMD5(str2rstrUTF8(s)) 247 | } 248 | function hexMD5 (s) { 249 | return rstr2hex(rawMD5(s)) 250 | } 251 | function rawHMACMD5 (k, d) { 252 | return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)) 253 | } 254 | function hexHMACMD5 (k, d) { 255 | return rstr2hex(rawHMACMD5(k, d)) 256 | } 257 | 258 | function md5 (string, key, raw) { 259 | if (!key) { 260 | if (!raw) { 261 | return hexMD5(string) 262 | } 263 | return rawMD5(string) 264 | } 265 | if (!raw) { 266 | return hexHMACMD5(key, string) 267 | } 268 | return rawHMACMD5(key, string) 269 | } 270 | 271 | if (typeof define === 'function' && define.amd) { 272 | define(function () { 273 | return md5 274 | }) 275 | } else if (typeof module === 'object' && module.exports) { 276 | module.exports = md5 277 | } else { 278 | $.md5 = md5 279 | } 280 | })(this) 281 | -------------------------------------------------------------------------------- /src/assets/js/swiper.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Swiper 6.4.5 3 | * Most modern mobile touch slider and framework with hardware accelerated transitions 4 | * https://swiperjs.com 5 | * 6 | * Copyright 2014-2020 Vladimir Kharlampidi 7 | * 8 | * Released under the MIT License 9 | * 10 | * Released on: December 18, 2020 11 | */ 12 | 13 | !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,t){for(var a=0;a0&&i(e[s],t[s])}))}var s={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function r(){var e="undefined"!=typeof document?document:{};return i(e,s),e}var n={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function l(){var e="undefined"!=typeof window?window:{};return i(e,n),e}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,a){return(u=p()?Reflect.construct:function(e,t,a){var i=[null];i.push.apply(i,t);var s=new(Function.bind.apply(e,i));return a&&d(s,a.prototype),s}).apply(null,arguments)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||(a=e,-1===Function.toString.call(a).indexOf("[native code]")))return e;var a;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return u(e,arguments,o(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),d(i,e)})(e)}var h=function(e){var t,a;function i(t){var a,i,s;return a=e.call.apply(e,[this].concat(t))||this,i=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(a),s=i.__proto__,Object.defineProperty(i,"__proto__",{get:function(){return s},set:function(e){s.__proto__=e}}),a}return a=e,(t=i).prototype=Object.create(a.prototype),t.prototype.constructor=t,t.__proto__=a,i}(c(Array));function v(e){void 0===e&&(e=[]);var t=[];return e.forEach((function(e){Array.isArray(e)?t.push.apply(t,v(e)):t.push(e)})),t}function f(e,t){return Array.prototype.filter.call(e,t)}function m(e,t){var a=l(),i=r(),s=[];if(!t&&e instanceof h)return e;if(!e)return new h(s);if("string"==typeof e){var n=e.trim();if(n.indexOf("<")>=0&&n.indexOf(">")>=0){var o="div";0===n.indexOf("0})).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),a=0;a=0;h-=1){var v=c[h];r&&v.listener===r||r&&v.listener&&v.listener.dom7proxy&&v.listener.dom7proxy===r?(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1)):r||(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1))}}return this},trigger:function(){for(var e=l(),t=arguments.length,a=new Array(t),i=0;i0})),p.dispatchEvent(u),p.dom7EventData=[],delete p.dom7EventData}}return this},transitionEnd:function(e){var t=this;return e&&t.on("transitionend",(function a(i){i.target===this&&(e.call(this,i),t.off("transitionend",a))})),this},outerWidth:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){var e=l();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){var e=l(),t=r(),a=this[0],i=a.getBoundingClientRect(),s=t.body,n=a.clientTop||s.clientTop||0,o=a.clientLeft||s.clientLeft||0,d=a===e?e.scrollY:a.scrollTop,p=a===e?e.scrollX:a.scrollLeft;return{top:i.top+d-n,left:i.left+p-o}}return null},css:function(e,t){var a,i=l();if(1===arguments.length){if("string"!=typeof e){for(a=0;at-1)return m([]);if(e<0){var a=t+e;return m(a<0?[]:[this[a]])}return m([this[e]])},append:function(){for(var e,t=r(),a=0;a=0;a-=1)this[t].insertBefore(s.childNodes[a],this[t].childNodes[0])}else if(e instanceof h)for(a=0;a0?e?this[0].nextElementSibling&&m(this[0].nextElementSibling).is(e)?m([this[0].nextElementSibling]):m([]):this[0].nextElementSibling?m([this[0].nextElementSibling]):m([]):m([])},nextAll:function(e){var t=[],a=this[0];if(!a)return m([]);for(;a.nextElementSibling;){var i=a.nextElementSibling;e?m(i).is(e)&&t.push(i):t.push(i),a=i}return m(t)},prev:function(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&m(t.previousElementSibling).is(e)?m([t.previousElementSibling]):m([]):t.previousElementSibling?m([t.previousElementSibling]):m([])}return m([])},prevAll:function(e){var t=[],a=this[0];if(!a)return m([]);for(;a.previousElementSibling;){var i=a.previousElementSibling;e?m(i).is(e)&&t.push(i):t.push(i),a=i}return m(t)},parent:function(e){for(var t=[],a=0;a6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),s=new r.WebKitCSSMatrix("none"===i?"":i)):a=(s=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=r.WebKitCSSMatrix?s.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=r.WebKitCSSMatrix?s.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function C(e){return"object"==typeof e&&null!==e&&e.constructor&&e.constructor===Object}function S(){for(var e=Object(arguments.length<=0?void 0:arguments[0]),t=1;t=0,observer:"MutationObserver"in e||"WebkitMutationObserver"in e,passiveListener:function(){var t=!1;try{var a=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassiveListener",null,a)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),g}function P(e){return void 0===e&&(e={}),y||(y=function(e){var t=(void 0===e?{}:e).userAgent,a=z(),i=l(),s=i.navigator.platform,r=t||i.navigator.userAgent,n={ios:!1,android:!1},o=i.screen.width,d=i.screen.height,p=r.match(/(Android);?[\s\/]+([\d.]+)?/),u=r.match(/(iPad).*OS\s([\d_]+)/),c=r.match(/(iPod)(.*OS\s([\d_]+))?/),h=!u&&r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),v="Win32"===s,f="MacIntel"===s;return!u&&f&&a.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(o+"x"+d)>=0&&((u=r.match(/(Version)\/([\d.]+)/))||(u=[0,1,"13_0_0"]),f=!1),p&&!v&&(n.os="android",n.android=!0),(u||h||c)&&(n.os="ios",n.ios=!0),n}(e)),y}function k(){return w||(w=function(){var e,t=l();return{isEdge:!!t.navigator.userAgent.match(/Edge/g),isSafari:(e=t.navigator.userAgent.toLowerCase(),e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent)}}()),w}Object.keys(b).forEach((function(e){m.fn[e]=b[e]}));var L={name:"resize",create:function(){var e=this;S(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(e){var t=l();t.addEventListener("resize",e.resize.resizeHandler),t.addEventListener("orientationchange",e.resize.orientationChangeHandler)},destroy:function(e){var t=l();t.removeEventListener("resize",e.resize.resizeHandler),t.removeEventListener("orientationchange",e.resize.orientationChangeHandler)}}},$={attach:function(e,t){void 0===t&&(t={});var a=l(),i=this,s=new(a.MutationObserver||a.WebkitMutationObserver)((function(e){if(1!==e.length){var t=function(){i.emit("observerUpdate",e[0])};a.requestAnimationFrame?a.requestAnimationFrame(t):a.setTimeout(t,0)}else i.emit("observerUpdate",e[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}),i.observer.observers.push(s)},init:function(){var e=this;if(e.support.observer&&e.params.observer){if(e.params.observeParents)for(var t=e.$el.parents(),a=0;a0))if(!s.isTouched||!s.isMoved)if(!!n.noSwipingClass&&""!==n.noSwipingClass&&d.target&&d.target.shadowRoot&&e.path&&e.path[0]&&(p=m(e.path[0])),n.noSwiping&&p.closest(n.noSwipingSelector?n.noSwipingSelector:"."+n.noSwipingClass)[0])t.allowClick=!0;else if(!n.swipeHandler||p.closest(n.swipeHandler)[0]){o.currentX="touchstart"===d.type?d.targetTouches[0].pageX:d.pageX,o.currentY="touchstart"===d.type?d.targetTouches[0].pageY:d.pageY;var u=o.currentX,c=o.currentY,h=n.edgeSwipeDetection||n.iOSEdgeSwipeDetection,v=n.edgeSwipeThreshold||n.iOSEdgeSwipeThreshold;if(!h||!(u<=v||u>=i.innerWidth-v)){if(S(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=u,o.startY=c,s.touchStartTime=x(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,n.threshold>0&&(s.allowThresholdMove=!1),"touchstart"!==d.type){var f=!0;p.is(s.formElements)&&(f=!1),a.activeElement&&m(a.activeElement).is(s.formElements)&&a.activeElement!==p[0]&&a.activeElement.blur();var g=f&&t.allowTouchMove&&n.touchStartPreventDefault;!n.touchStartForcePreventDefault&&!g||p[0].isContentEditable||d.preventDefault()}t.emit("touchStart",d)}}}}function A(e){var t=r(),a=this,i=a.touchEventsData,s=a.params,n=a.touches,l=a.rtlTranslate,o=e;if(o.originalEvent&&(o=o.originalEvent),i.isTouched){if(!i.isTouchEvent||"touchmove"===o.type){var d="touchmove"===o.type&&o.targetTouches&&(o.targetTouches[0]||o.changedTouches[0]),p="touchmove"===o.type?d.pageX:o.pageX,u="touchmove"===o.type?d.pageY:o.pageY;if(o.preventedByNestedSwiper)return n.startX=p,void(n.startY=u);if(!a.allowTouchMove)return a.allowClick=!1,void(i.isTouched&&(S(n,{startX:p,startY:u,currentX:p,currentY:u}),i.touchStartTime=x()));if(i.isTouchEvent&&s.touchReleaseOnEdges&&!s.loop)if(a.isVertical()){if(un.startY&&a.translate>=a.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(pn.startX&&a.translate>=a.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&o.target===t.activeElement&&m(o.target).is(i.formElements))return i.isMoved=!0,void(a.allowClick=!1);if(i.allowTouchCallbacks&&a.emit("touchMove",o),!(o.targetTouches&&o.targetTouches.length>1)){n.currentX=p,n.currentY=u;var c=n.currentX-n.startX,h=n.currentY-n.startY;if(!(a.params.threshold&&Math.sqrt(Math.pow(c,2)+Math.pow(h,2))=25&&(v=180*Math.atan2(Math.abs(h),Math.abs(c))/Math.PI,i.isScrolling=a.isHorizontal()?v>s.touchAngle:90-v>s.touchAngle);if(i.isScrolling&&a.emit("touchMoveOpposite",o),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){a.allowClick=!1,!s.cssMode&&o.cancelable&&o.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&o.stopPropagation(),i.isMoved||(s.loop&&a.loopFix(),i.startTranslate=a.getTranslate(),a.setTransition(0),a.animating&&a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!s.grabCursor||!0!==a.allowSlideNext&&!0!==a.allowSlidePrev||a.setGrabCursor(!0),a.emit("sliderFirstMove",o)),a.emit("sliderMove",o),i.isMoved=!0;var f=a.isHorizontal()?c:h;n.diff=f,f*=s.touchRatio,l&&(f=-f),a.swipeDirection=f>0?"prev":"next",i.currentTranslate=f+i.startTranslate;var g=!0,y=s.resistanceRatio;if(s.touchReleaseOnEdges&&(y=0),f>0&&i.currentTranslate>a.minTranslate()?(g=!1,s.resistance&&(i.currentTranslate=a.minTranslate()-1+Math.pow(-a.minTranslate()+i.startTranslate+f,y))):f<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.threshold>0){if(!(Math.abs(f)>s.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=a.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}s.followFinger&&!s.cssMode&&((s.freeMode||s.watchSlidesProgress||s.watchSlidesVisibility)&&(a.updateActiveIndex(),a.updateSlidesClasses()),s.freeMode&&(0===i.velocities.length&&i.velocities.push({position:n[a.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:n[a.isHorizontal()?"currentX":"currentY"],time:x()})),a.updateProgress(i.currentTranslate),a.setTranslate(i.currentTranslate))}}}}}else i.startMoving&&i.isScrolling&&a.emit("touchMoveOpposite",o)}function D(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,l=t.slidesGrid,o=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,u=x(),c=u-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap click",d),c<300&&u-a.lastClickTime<300&&t.emit("doubleTap doubleClick",d)),a.lastClickTime=x(),E((function(){t.destroyed||(t.allowClick=!0)})),!a.isTouched||!a.isMoved||!t.swipeDirection||0===s.diff||a.currentTranslate===a.startTranslate)return a.isTouched=!1,a.isMoved=!1,void(a.startMoving=!1);if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,p=i.followFinger?r?t.translate:-t.translate:-a.currentTranslate,!i.cssMode)if(i.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length1){var h=a.velocities.pop(),v=a.velocities.pop(),f=h.position-v.position,m=h.time-v.time;t.velocity=f/m,t.velocity/=2,Math.abs(t.velocity)150||x()-h.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeModeMomentumVelocityRatio,a.velocities.length=0;var g=1e3*i.freeModeMomentumRatio,y=t.velocity*g,w=t.translate+y;r&&(w=-w);var b,T,C=!1,S=20*Math.abs(t.velocity)*i.freeModeMomentumBounceRatio;if(wt.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>S&&(w=t.minTranslate()+S),b=t.minTranslate(),C=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(T=!0);else if(i.freeModeSticky){for(var M,z=0;z-w){M=z;break}w=-(w=Math.abs(o[M]-w)=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var L=0,$=t.slidesSizesGrid[0],I=0;I=l[I]&&p=l[I]&&(L=I,$=l[l.length-1]-l[l.length-2])}var A=(p-l[L])/$,D=Li.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(A>=i.longSwipesRatio?t.slideTo(L+D):t.slideTo(L)),"prev"===t.swipeDirection&&(A>1-i.longSwipesRatio?t.slideTo(L+D):t.slideTo(L))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(d.target===t.navigation.nextEl||d.target===t.navigation.prevEl)?d.target===t.navigation.nextEl?t.slideTo(L+D):t.slideTo(L):("next"===t.swipeDirection&&t.slideTo(L+D),"prev"===t.swipeDirection&&t.slideTo(L))}}}function G(){var e=this,t=e.params,a=e.el;if(!a||0!==a.offsetWidth){t.breakpoints&&e.setBreakpoint();var i=e.allowSlideNext,s=e.allowSlidePrev,r=e.snapGrid;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=s,e.allowSlideNext=i,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}}function N(e){var t=this;t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}function B(){var e=this,t=e.wrapperEl,a=e.rtlTranslate;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=a?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();var i=e.maxTranslate()-e.minTranslate();(0===i?0:(e.translate-e.minTranslate())/i)!==e.progress&&e.updateProgress(a?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}var H=!1;function X(){}var Y={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,nested:!1,width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,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,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",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},V={modular:{useParams:function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a];i.params&&S(e,i.params)}))},useModules:function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a],s=e[a]||{};i.on&&t.on&&Object.keys(i.on).forEach((function(e){t.on(e,i.on[e])})),i.create&&i.create.bind(t)(s)}))}},eventsEmitter:{on:function(e,t,a){var i=this;if("function"!=typeof t)return i;var s=a?"unshift":"push";return e.split(" ").forEach((function(e){i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][s](t)})),i},once:function(e,t,a){var i=this;if("function"!=typeof t)return i;function s(){i.off(e,s),s.__emitterProxy&&delete s.__emitterProxy;for(var a=arguments.length,r=new Array(a),n=0;n=0&&t.eventsAnyListeners.splice(a,1),t},off:function(e,t){var a=this;return a.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(i,s){(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&a.eventsListeners[e].splice(s,1)}))})),a):a},emit:function(){var e,t,a,i=this;if(!i.eventsListeners)return i;for(var s=arguments.length,r=new Array(s),n=0;n=0&&(b=parseFloat(b.replace("%",""))/100*s),e.virtualSize=-b,r?p.css({marginLeft:"",marginTop:""}):p.css({marginRight:"",marginBottom:""}),a.slidesPerColumn>1&&(C=Math.floor(u/a.slidesPerColumn)===u/e.params.slidesPerColumn?u:Math.ceil(u/a.slidesPerColumn)*a.slidesPerColumn,"auto"!==a.slidesPerView&&"row"===a.slidesPerColumnFill&&(C=Math.max(C,a.slidesPerView*a.slidesPerColumn)));for(var z,P=a.slidesPerColumn,k=C/P,L=Math.floor(u/a.slidesPerColumn),$=0;$1){var O=void 0,A=void 0,D=void 0;if("row"===a.slidesPerColumnFill&&a.slidesPerGroup>1){var G=Math.floor($/(a.slidesPerGroup*a.slidesPerColumn)),N=$-a.slidesPerColumn*a.slidesPerGroup*G,B=0===G?a.slidesPerGroup:Math.min(Math.ceil((u-G*P*a.slidesPerGroup)/P),a.slidesPerGroup);O=(A=N-(D=Math.floor(N/B))*B+G*a.slidesPerGroup)+D*C/P,I.css({"-webkit-box-ordinal-group":O,"-moz-box-ordinal-group":O,"-ms-flex-order":O,"-webkit-order":O,order:O})}else"column"===a.slidesPerColumnFill?(D=$-(A=Math.floor($/P))*P,(A>L||A===L&&D===P-1)&&(D+=1)>=P&&(D=0,A+=1)):A=$-(D=Math.floor($/k))*k;I.css("margin-"+(e.isHorizontal()?"top":"left"),0!==D&&a.spaceBetween&&a.spaceBetween+"px")}if("none"!==I.css("display")){if("auto"===a.slidesPerView){var H=t.getComputedStyle(I[0],null),X=I[0].style.transform,Y=I[0].style.webkitTransform;if(X&&(I[0].style.transform="none"),Y&&(I[0].style.webkitTransform="none"),a.roundLengths)M=e.isHorizontal()?I.outerWidth(!0):I.outerHeight(!0);else if(e.isHorizontal()){var V=parseFloat(H.getPropertyValue("width")||0),F=parseFloat(H.getPropertyValue("padding-left")||0),R=parseFloat(H.getPropertyValue("padding-right")||0),W=parseFloat(H.getPropertyValue("margin-left")||0),q=parseFloat(H.getPropertyValue("margin-right")||0),j=H.getPropertyValue("box-sizing");if(j&&"border-box"===j)M=V+W+q;else{var _=I[0],U=_.clientWidth;M=V+F+R+W+q+(_.offsetWidth-U)}}else{var K=parseFloat(H.getPropertyValue("height")||0),Z=parseFloat(H.getPropertyValue("padding-top")||0),J=parseFloat(H.getPropertyValue("padding-bottom")||0),Q=parseFloat(H.getPropertyValue("margin-top")||0),ee=parseFloat(H.getPropertyValue("margin-bottom")||0),te=H.getPropertyValue("box-sizing");if(te&&"border-box"===te)M=K+Q+ee;else{var ae=I[0],ie=ae.clientHeight;M=K+Z+J+Q+ee+(ae.offsetHeight-ie)}}X&&(I[0].style.transform=X),Y&&(I[0].style.webkitTransform=Y),a.roundLengths&&(M=Math.floor(M))}else M=(s-(a.slidesPerView-1)*b)/a.slidesPerView,a.roundLengths&&(M=Math.floor(M)),p[$]&&(e.isHorizontal()?p[$].style.width=M+"px":p[$].style.height=M+"px");p[$]&&(p[$].swiperSlideSize=M),v.push(M),a.centeredSlides?(E=E+M/2+x/2+b,0===x&&0!==$&&(E=E-s/2-b),0===$&&(E=E-s/2-b),Math.abs(E)<.001&&(E=0),a.roundLengths&&(E=Math.floor(E)),T%a.slidesPerGroup==0&&c.push(E),h.push(E)):(a.roundLengths&&(E=Math.floor(E)),(T-Math.min(e.params.slidesPerGroupSkip,T))%e.params.slidesPerGroup==0&&c.push(E),h.push(E),E=E+M+b),e.virtualSize+=M+b,x=M,T+=1}}if(e.virtualSize=Math.max(e.virtualSize,s)+g,r&&n&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:e.virtualSize+a.spaceBetween+"px"}),a.setWrapperSize&&(e.isHorizontal()?i.css({width:e.virtualSize+a.spaceBetween+"px"}):i.css({height:e.virtualSize+a.spaceBetween+"px"})),a.slidesPerColumn>1&&(e.virtualSize=(M+a.spaceBetween)*C,e.virtualSize=Math.ceil(e.virtualSize/a.slidesPerColumn)-a.spaceBetween,e.isHorizontal()?i.css({width:e.virtualSize+a.spaceBetween+"px"}):i.css({height:e.virtualSize+a.spaceBetween+"px"}),a.centeredSlides)){z=[];for(var se=0;se1&&c.push(e.virtualSize-s)}if(0===c.length&&(c=[0]),0!==a.spaceBetween&&(e.isHorizontal()?r?p.filter(f).css({marginLeft:b+"px"}):p.filter(f).css({marginRight:b+"px"}):p.filter(f).css({marginBottom:b+"px"})),a.centeredSlides&&a.centeredSlidesBounds){var oe=0;v.forEach((function(e){oe+=e+(a.spaceBetween?a.spaceBetween:0)}));var de=(oe-=a.spaceBetween)-s;c=c.map((function(e){return e<0?-m:e>de?de+g:e}))}if(a.centerInsufficientSlides){var pe=0;if(v.forEach((function(e){pe+=e+(a.spaceBetween?a.spaceBetween:0)})),(pe-=a.spaceBetween)1)if(a.params.centeredSlides)a.visibleSlides.each((function(e){i.push(e)}));else for(t=0;ta.slides.length)break;i.push(a.slides.eq(r)[0])}else i.push(a.slides.eq(a.activeIndex)[0]);for(t=0;ts?n:s}s&&a.$wrapperEl.css("height",s+"px")},updateSlidesOffset:function(){for(var e=this.slides,t=0;t=0&&d1&&p<=t.size||d<=0&&p>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}l.progress=s?-o:o}t.visibleSlides=m(t.visibleSlides)}},updateProgress:function(e){var t=this;if(void 0===e){var a=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*a||0}var i=t.params,s=t.maxTranslate()-t.minTranslate(),r=t.progress,n=t.isBeginning,l=t.isEnd,o=n,d=l;0===s?(r=0,n=!0,l=!0):(n=(r=(e-t.minTranslate())/s)<=0,l=r>=1),S(t,{progress:r,isBeginning:n,isEnd:l}),(i.watchSlidesProgress||i.watchSlidesVisibility||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),n&&!o&&t.emit("reachBeginning toEdge"),l&&!d&&t.emit("reachEnd toEdge"),(o&&!n||d&&!l)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,l=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=l?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(o.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass)),t.emitSlidesClasses()},updateActiveIndex:function(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,l=a.activeIndex,o=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var u=0;u=s[u]&&i=s[u]&&i=s[u]&&(p=u);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if(r.indexOf(i)>=0)t=r.indexOf(i);else{var c=Math.min(n.slidesPerGroupSkip,p);t=c+Math.floor((p-c)/n.slidesPerGroup)}if(t>=r.length&&(t=r.length-1),p!==l){var h=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);S(a,{snapIndex:t,realIndex:h,previousIndex:l,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),o!==h&&a.emit("realIndexChange"),(a.initialized||a.params.runCallbacksOnInit)&&a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,a=t.params,i=m(e.target).closest("."+a.slideClass)[0],s=!1;if(i)for(var r=0;rd?d:i&&er?"next":is?"next":i=o.length&&(f=o.length-1),(u||l.initialSlide||0)===(p||0)&&a&&r.emit("beforeSlideChangeStart");var m,g=-o[f];if(r.updateProgress(g),l.normalizeSlideIndex)for(var y=0;y=Math.floor(100*d[y])&&(n=y);if(r.initialized&&n!==u){if(!r.allowSlideNext&&gr.translate&&g>r.maxTranslate()&&(u||0)!==n)return!1}if(m=n>u?"next":n=e&&(h=e)})),void 0!==h&&(p=l.indexOf(h))<0&&(p=i.activeIndex-1),i.slideTo(p,e,t,a)},slideReset:function(e,t,a){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,a)},slideToClosest:function(e,t,a,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);var s=this,r=s.activeIndex,n=Math.min(s.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/s.params.slidesPerGroup),o=s.rtlTranslate?s.translate:-s.translate;if(o>=s.snapGrid[l]){var d=s.snapGrid[l];o-d>(s.snapGrid[l+1]-d)*i&&(r+=s.params.slidesPerGroup)}else{var p=s.snapGrid[l-1];o-p<=(s.snapGrid[l]-p)*i&&(r-=s.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,s.slidesGrid.length-1),s.slideTo(r,e,t,a)},slideToClickedSlide:function(){var e,t=this,a=t.params,i=t.$wrapperEl,s="auto"===a.slidesPerView?t.slidesPerViewDynamic():a.slidesPerView,r=t.clickedIndex;if(a.loop){if(t.animating)return;e=parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"),10),a.centeredSlides?rt.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),E((function(){t.slideTo(r)}))):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),E((function(){t.slideTo(r)}))):t.slideTo(r)}else t.slideTo(r)}},loop:{loopCreate:function(){var e=this,t=r(),a=e.params,i=e.$wrapperEl;i.children("."+a.slideClass+"."+a.slideDuplicateClass).remove();var s=i.children("."+a.slideClass);if(a.loopFillGroupWithBlank){var n=a.slidesPerGroup-s.length%a.slidesPerGroup;if(n!==a.slidesPerGroup){for(var l=0;ls.length&&(e.loopedSlides=s.length);var d=[],p=[];s.each((function(t,a){var i=m(t);a=s.length-e.loopedSlides&&d.push(t),i.attr("data-swiper-slide-index",a)}));for(var u=0;u=0;c-=1)i.prepend(m(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))},loopFix:function(){var e=this;e.emit("beforeLoopFix");var t,a=e.activeIndex,i=e.slides,s=e.loopedSlides,r=e.allowSlidePrev,n=e.allowSlideNext,l=e.snapGrid,o=e.rtlTranslate;e.allowSlidePrev=!0,e.allowSlideNext=!0;var d=-l[a]-e.getTranslate();if(a=i.length-s){t=-i.length+a+s,t+=s,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((o?-e.translate:e.translate)-d)}e.allowSlidePrev=r,e.allowSlideNext=n,e.emit("loopFix")},loopDestroy:function(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides;t.children("."+a.slideClass+"."+a.slideDuplicateClass+",."+a.slideClass+"."+a.slideBlankClass).remove(),i.removeAttr("data-swiper-slide-index")}},grabCursor:{setGrabCursor:function(e){var t=this;if(!(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)){var a=t.el;a.style.cursor="move",a.style.cursor=e?"-webkit-grabbing":"-webkit-grab",a.style.cursor=e?"-moz-grabbin":"-moz-grab",a.style.cursor=e?"grabbing":"grab"}},unsetGrabCursor:function(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.el.style.cursor="")}},manipulation:{appendSlide:function(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s=n)a.appendSlide(t);else{for(var l=r>e?r+1:r,o=[],d=n-1;d>=e;d-=1){var p=a.slides.eq(d);p.remove(),o.unshift(p)}if("object"==typeof t&&"length"in t){for(var u=0;ue?r+t.length:r}else i.append(t);for(var c=0;c1,c=p.slidesPerColumn>1;u&&!c?(n.removeClass(r.containerModifierClass+"multirow "+r.containerModifierClass+"multirow-column"),e.emitContainerClasses()):!u&&c&&(n.addClass(r.containerModifierClass+"multirow"),"column"===p.slidesPerColumnFill&&n.addClass(r.containerModifierClass+"multirow-column"),e.emitContainerClasses());var h=p.direction&&p.direction!==r.direction,v=r.loop&&(p.slidesPerView!==r.slidesPerView||h);h&&a&&e.changeDirection(),S(e.params,p),S(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=o,e.emit("_beforeBreakpoint",p),v&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-s+e.loopedSlides,0,!1)),e.emit("breakpoint",p)}}},getBreakpoint:function(e){var t=l();if(e){var a=!1,i=Object.keys(e).map((function(e){if("string"==typeof e&&0===e.indexOf("@")){var a=parseFloat(e.substr(1));return{value:t.innerHeight*a,point:e}}return{value:e,point:e}}));i.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var s=0;s0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&i?e.isLocked=i<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,a!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),a&&a!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}},classes:{addClasses:function(){var e=this,t=e.classNames,a=e.params,i=e.rtl,s=e.$el,r=e.device,n=[];n.push("initialized"),n.push(a.direction),a.freeMode&&n.push("free-mode"),a.autoHeight&&n.push("autoheight"),i&&n.push("rtl"),a.slidesPerColumn>1&&(n.push("multirow"),"column"===a.slidesPerColumnFill&&n.push("multirow-column")),r.android&&n.push("android"),r.ios&&n.push("ios"),a.cssMode&&n.push("css-mode"),n.forEach((function(e){t.push(a.containerModifierClass+e)})),s.addClass(t.join(" ")),e.emitContainerClasses()},removeClasses:function(){var e=this,t=e.$el,a=e.classNames;t.removeClass(a.join(" ")),e.emitContainerClasses()}},images:{loadImage:function(e,t,a,i,s,r){var n,o=l();function d(){r&&r()}m(e).parent("picture")[0]||e.complete&&s?d():t?((n=new o.Image).onload=d,n.onerror=d,i&&(n.sizes=i),a&&(n.srcset=a),t&&(n.src=t)):d()},preloadImages:function(){var 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(var a=0;a1){var d=[];return o.each((function(e){var i=S({},a,{el:e});d.push(new t(i))})),d}var p,u,c;return e.swiper=n,e&&e.shadowRoot&&e.shadowRoot.querySelector?(p=m(e.shadowRoot.querySelector("."+n.params.wrapperClass))).children=function(e){return o.children(e)}:p=o.children("."+n.params.wrapperClass),S(n,{$el:o,el:e,$wrapperEl:p,wrapperEl:p[0],classNames:[],slides:m(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===n.params.direction},isVertical:function(){return"vertical"===n.params.direction},rtl:"rtl"===e.dir.toLowerCase()||"rtl"===o.css("direction"),rtlTranslate:"horizontal"===n.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===o.css("direction")),wrongRTL:"-webkit-box"===p.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:n.params.allowSlideNext,allowSlidePrev:n.params.allowSlidePrev,touchEvents:(u=["touchstart","touchmove","touchend","touchcancel"],c=["mousedown","mousemove","mouseup"],n.support.pointerEvents&&(c=["pointerdown","pointermove","pointerup"]),n.touchEventsTouch={start:u[0],move:u[1],end:u[2],cancel:u[3]},n.touchEventsDesktop={start:c[0],move:c[1],end:c[2]},n.support.touch||!n.params.simulateTouch?n.touchEventsTouch:n.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,formElements:"input, select, option, textarea, button, video, label",lastClickTime:x(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:n.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),n.useModules(),n.emit("_swiper"),n.params.init&&n.init(),n}}var a,i,s,r=t.prototype;return r.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(" ").filter((function(t){return 0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass)}));e.emit("_containerClasses",t.join(" "))}},r.getSlideClasses=function(e){var t=this;return e.className.split(" ").filter((function(e){return 0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)})).join(" ")},r.emitSlidesClasses=function(){var e=this;e.params._emitClasses&&e.el&&e.slides.each((function(t){var a=e.getSlideClasses(t);e.emit("_slideClass",t,a)}))},r.slidesPerViewDynamic=function(){var e=this,t=e.params,a=e.slides,i=e.slidesGrid,s=e.size,r=e.activeIndex,n=1;if(t.centeredSlides){for(var l,o=a[r].swiperSlideSize,d=r+1;ds&&(l=!0));for(var p=r-1;p>=0;p-=1)a[p]&&!l&&(n+=1,(o+=a[p].swiperSlideSize)>s&&(l=!0))}else for(var u=r+1;u1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||i(),a.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function i(){var t=e.rtlTranslate?-1*e.translate:e.translate,a=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(a),e.updateActiveIndex(),e.updateSlidesClasses()}},r.changeDirection=function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(a.$el.removeClass(""+a.params.containerModifierClass+i).addClass(""+a.params.containerModifierClass+e),a.emitContainerClasses(),a.params.direction=e,a.slides.each((function(t){"vertical"===e?t.style.width="":t.style.height=""})),a.emit("changeDirection"),t&&a.update()),a},r.init=function(){var e=this;e.initialized||(e.emit("beforeInit"),e.params.breakpoints&&e.setBreakpoint(),e.addClasses(),e.params.loop&&e.loopCreate(),e.updateSize(),e.updateSlides(),e.params.watchOverflow&&e.checkOverflow(),e.params.grabCursor&&e.setGrabCursor(),e.params.preloadImages&&e.preloadImages(),e.params.loop?e.slideTo(e.params.initialSlide+e.loopedSlides,0,e.params.runCallbacksOnInit):e.slideTo(e.params.initialSlide,0,e.params.runCallbacksOnInit),e.attachEvents(),e.initialized=!0,e.emit("init"),e.emit("afterInit"))},r.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var a,i=this,s=i.params,r=i.$el,n=i.$wrapperEl,l=i.slides;return void 0===i.params||i.destroyed||(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),s.loop&&i.loopDestroy(),t&&(i.removeClasses(),r.removeAttr("style"),n.removeAttr("style"),l&&l.length&&l.removeClass([s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach((function(e){i.off(e)})),!1!==e&&(i.$el[0].swiper=null,a=i,Object.keys(a).forEach((function(e){try{a[e]=null}catch(e){}try{delete a[e]}catch(e){}}))),i.destroyed=!0),null},t.extendDefaults=function(e){S(F,e)},t.installModule=function(e){t.prototype.modules||(t.prototype.modules={});var a=e.name||Object.keys(t.prototype.modules).length+"_"+x();t.prototype.modules[a]=e},t.use=function(e){return Array.isArray(e)?(e.forEach((function(e){return t.installModule(e)})),t):(t.installModule(e),t)},a=t,s=[{key:"extendedDefaults",get:function(){return F}},{key:"defaults",get:function(){return Y}}],(i=null)&&e(a.prototype,i),s&&e(a,s),t}();Object.keys(V).forEach((function(e){Object.keys(V[e]).forEach((function(t){R.prototype[t]=V[e][t]}))})),R.use([L,I]);var W={update:function(e){var t=this,a=t.params,i=a.slidesPerView,s=a.slidesPerGroup,r=a.centeredSlides,n=t.params.virtual,l=n.addSlidesBefore,o=n.addSlidesAfter,d=t.virtual,p=d.from,u=d.to,c=d.slides,h=d.slidesGrid,v=d.renderSlide,f=d.offset;t.updateActiveIndex();var m,g,y,w=t.activeIndex||0;m=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(g=Math.floor(i/2)+s+o,y=Math.floor(i/2)+s+l):(g=i+(s-1)+o,y=s+l);var b=Math.max((w||0)-y,0),E=Math.min((w||0)+g,c.length-1),x=(t.slidesGrid[b]||0)-(t.slidesGrid[0]||0);function T(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(S(t.virtual,{from:b,to:E,offset:x,slidesGrid:t.slidesGrid}),p===b&&u===E&&!e)return t.slidesGrid!==h&&x!==f&&t.slides.css(m,x+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:x,from:b,to:E,slides:function(){for(var e=[],t=b;t<=E;t+=1)e.push(c[t]);return e}()}),void(t.params.virtual.renderExternalUpdate&&T());var C=[],M=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var z=p;z<=u;z+=1)(zE)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+z+'"]').remove();for(var P=0;P=b&&P<=E&&(void 0===u||e?M.push(P):(P>u&&M.push(P),P'+e+"");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){var t=this;if("object"==typeof e&&"length"in e)for(var a=0;a=0;i-=1)t.virtual.slides.splice(e[i],1),t.params.virtual.cache&&delete t.virtual.cache[e[i]],e[i]0&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;var g=a.innerWidth,y=a.innerHeight,w=t.$el.offset();s&&(w.left-=t.$el[0].scrollLeft);for(var b=[[w.left,w.top],[w.left+t.width,w.top],[w.left,w.top+t.height],[w.left+t.width,w.top+t.height]],E=0;E=0&&x[0]<=g&&x[1]>=0&&x[1]<=y){if(0===x[0]&&0===x[1])continue;m=!0}}if(!m)return}t.isHorizontal()?((p||u||c||h)&&(n.preventDefault?n.preventDefault():n.returnValue=!1),((u||h)&&!s||(p||c)&&s)&&t.slideNext(),((p||c)&&!s||(u||h)&&s)&&t.slidePrev()):((p||u||v||f)&&(n.preventDefault?n.preventDefault():n.returnValue=!1),(u||f)&&t.slideNext(),(p||v)&&t.slidePrev()),t.emit("keyPress",o)}},enable:function(){var e=this,t=r();e.keyboard.enabled||(m(t).on("keydown",e.keyboard.handle),e.keyboard.enabled=!0)},disable:function(){var e=this,t=r();e.keyboard.enabled&&(m(t).off("keydown",e.keyboard.handle),e.keyboard.enabled=!1)}},_={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create:function(){M(this,{keyboard:t({enabled:!1},j)})},on:{init:function(e){e.params.keyboard.enabled&&e.keyboard.enable()},destroy:function(e){e.keyboard.enabled&&e.keyboard.disable()}}};var U={lastScrollTime:x(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:function(){return l().navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":function(){var e=r(),t="onwheel",a=t in e;if(!a){var i=e.createElement("div");i.setAttribute(t,"return;"),a="function"==typeof i.onwheel}return!a&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(a=e.implementation.hasFeature("Events.wheel","3.0")),a}()?"wheel":"mousewheel"},normalize:function(e){var t=0,a=0,i=0,s=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=a,a=0),i=10*t,s=10*a,"deltaY"in e&&(s=e.deltaY),"deltaX"in e&&(i=e.deltaX),e.shiftKey&&!i&&(i=s,s=0),(i||s)&&e.deltaMode&&(1===e.deltaMode?(i*=40,s*=40):(i*=800,s*=800)),i&&!t&&(t=i<1?-1:1),s&&!a&&(a=s<1?-1:1),{spinX:t,spinY:a,pixelX:i,pixelY:s}},handleMouseEnter:function(){this.mouseEntered=!0},handleMouseLeave:function(){this.mouseEntered=!1},handle:function(e){var t=e,a=this,i=a.params.mousewheel;a.params.cssMode&&t.preventDefault();var s=a.$el;if("container"!==a.params.mousewheel.eventsTarget&&(s=m(a.params.mousewheel.eventsTarget)),!a.mouseEntered&&!s[0].contains(t.target)&&!i.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var r=0,n=a.rtlTranslate?-1:1,l=U.normalize(t);if(i.forceToAxis)if(a.isHorizontal()){if(!(Math.abs(l.pixelX)>Math.abs(l.pixelY)))return!0;r=-l.pixelX*n}else{if(!(Math.abs(l.pixelY)>Math.abs(l.pixelX)))return!0;r=-l.pixelY}else r=Math.abs(l.pixelX)>Math.abs(l.pixelY)?-l.pixelX*n:-l.pixelY;if(0===r)return!0;i.invert&&(r=-r);var o=a.getTranslate()+r*i.sensitivity;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),(!!a.params.loop||!(o===a.minTranslate()||o===a.maxTranslate()))&&a.params.nested&&t.stopPropagation(),a.params.freeMode){var d={time:x(),delta:Math.abs(r),direction:Math.sign(r)},p=a.mousewheel.lastEventBeforeSnap,u=p&&d.time=a.minTranslate()&&(c=a.minTranslate()),c<=a.maxTranslate()&&(c=a.maxTranslate()),a.setTransition(0),a.setTranslate(c),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!h&&a.isBeginning||!v&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky){clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=void 0;var f=a.mousewheel.recentWheelEvents;f.length>=15&&f.shift();var g=f.length?f[f.length-1]:void 0,y=f[0];if(f.push(d),g&&(d.delta>g.delta||d.direction!==g.direction))f.splice(0);else if(f.length>=15&&d.time-y.time<500&&y.delta-d.delta>=1&&d.delta<=6){var w=r>0?.8:.2;a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.mousewheel.timeout=E((function(){a.slideToClosest(a.params.speed,!0,void 0,w)}),0)}a.mousewheel.timeout||(a.mousewheel.timeout=E((function(){a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.slideToClosest(a.params.speed,!0,void 0,.5)}),500))}if(u||a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),c===a.minTranslate()||c===a.maxTranslate())return!0}}else{var b={time:x(),delta:Math.abs(r),direction:Math.sign(r),raw:e},T=a.mousewheel.recentWheelEvents;T.length>=2&&T.shift();var C=T.length?T[T.length-1]:void 0;if(T.push(b),C?(b.direction!==C.direction||b.delta>C.delta||b.time>C.time+150)&&a.mousewheel.animateSlider(b):a.mousewheel.animateSlider(b),a.mousewheel.releaseScroll(b))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},animateSlider:function(e){var t=this,a=l();return!(this.params.mousewheel.thresholdDelta&&e.delta=6&&x()-t.mousewheel.lastScrollTime<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),t.emit("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),t.emit("scroll",e.raw)),t.mousewheel.lastScrollTime=(new a.Date).getTime(),!1)))},releaseScroll:function(e){var t=this,a=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&a.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&a.releaseOnEdges)return!0;return!1},enable:function(){var e=this,t=U.event();if(e.params.cssMode)return e.wrapperEl.removeEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=m(e.params.mousewheel.eventsTarget)),a.on("mouseenter",e.mousewheel.handleMouseEnter),a.on("mouseleave",e.mousewheel.handleMouseLeave),a.on(t,e.mousewheel.handle),e.mousewheel.enabled=!0,!0},disable:function(){var e=this,t=U.event();if(e.params.cssMode)return e.wrapperEl.addEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(!e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=m(e.params.mousewheel.eventsTarget)),a.off(t,e.mousewheel.handle),e.mousewheel.enabled=!1,!0}},K={update:function(){var e=this,t=e.params.navigation;if(!e.params.loop){var a=e.navigation,i=a.$nextEl,s=a.$prevEl;s&&s.length>0&&(e.isBeginning?s.addClass(t.disabledClass):s.removeClass(t.disabledClass),s[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass)),i&&i.length>0&&(e.isEnd?i.addClass(t.disabledClass):i.removeClass(t.disabledClass),i[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](t.lockClass))}},onPrevClick:function(e){var t=this;e.preventDefault(),t.isBeginning&&!t.params.loop||t.slidePrev()},onNextClick:function(e){var t=this;e.preventDefault(),t.isEnd&&!t.params.loop||t.slideNext()},init:function(){var e,t,a=this,i=a.params.navigation;(i.nextEl||i.prevEl)&&(i.nextEl&&(e=m(i.nextEl),a.params.uniqueNavElements&&"string"==typeof i.nextEl&&e.length>1&&1===a.$el.find(i.nextEl).length&&(e=a.$el.find(i.nextEl))),i.prevEl&&(t=m(i.prevEl),a.params.uniqueNavElements&&"string"==typeof i.prevEl&&t.length>1&&1===a.$el.find(i.prevEl).length&&(t=a.$el.find(i.prevEl))),e&&e.length>0&&e.on("click",a.navigation.onNextClick),t&&t.length>0&&t.on("click",a.navigation.onPrevClick),S(a.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this,t=e.navigation,a=t.$nextEl,i=t.$prevEl;a&&a.length&&(a.off("click",e.navigation.onNextClick),a.removeClass(e.params.navigation.disabledClass)),i&&i.length&&(i.off("click",e.navigation.onPrevClick),i.removeClass(e.params.navigation.disabledClass))}},Z={update:function(){var e=this,t=e.rtl,a=e.params.pagination;if(a.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var i,s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,r=e.pagination.$el,n=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?((i=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup))>s-1-2*e.loopedSlides&&(i-=s-2*e.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==e.params.paginationType&&(i=n+i)):i=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===a.type&&e.pagination.bullets&&e.pagination.bullets.length>0){var l,o,d,p=e.pagination.bullets;if(a.dynamicBullets&&(e.pagination.bulletSize=p.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(a.dynamicMainBullets+4)+"px"),a.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=i-e.previousIndex,e.pagination.dynamicBulletIndex>a.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=a.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),l=i-e.pagination.dynamicBulletIndex,d=((o=l+(Math.min(p.length,a.dynamicMainBullets)-1))+l)/2),p.removeClass(a.bulletActiveClass+" "+a.bulletActiveClass+"-next "+a.bulletActiveClass+"-next-next "+a.bulletActiveClass+"-prev "+a.bulletActiveClass+"-prev-prev "+a.bulletActiveClass+"-main"),r.length>1)p.each((function(e){var t=m(e),s=t.index();s===i&&t.addClass(a.bulletActiveClass),a.dynamicBullets&&(s>=l&&s<=o&&t.addClass(a.bulletActiveClass+"-main"),s===l&&t.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),s===o&&t.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next"))}));else{var u=p.eq(i),c=u.index();if(u.addClass(a.bulletActiveClass),a.dynamicBullets){for(var h=p.eq(l),v=p.eq(o),f=l;f<=o;f+=1)p.eq(f).addClass(a.bulletActiveClass+"-main");if(e.params.loop)if(c>=p.length-a.dynamicMainBullets){for(var g=a.dynamicMainBullets;g>=0;g-=1)p.eq(p.length-g).addClass(a.bulletActiveClass+"-main");p.eq(p.length-a.dynamicMainBullets-1).addClass(a.bulletActiveClass+"-prev")}else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next");else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next")}}if(a.dynamicBullets){var y=Math.min(p.length,a.dynamicMainBullets+4),w=(e.pagination.bulletSize*y-e.pagination.bulletSize)/2-d*e.pagination.bulletSize,b=t?"right":"left";p.css(e.isHorizontal()?b:"top",w+"px")}}if("fraction"===a.type&&(r.find("."+a.currentClass).text(a.formatFractionCurrent(i+1)),r.find("."+a.totalClass).text(a.formatFractionTotal(n))),"progressbar"===a.type){var E;E=a.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";var x=(i+1)/n,T=1,C=1;"horizontal"===E?T=x:C=x,r.find("."+a.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+T+") scaleY("+C+")").transition(e.params.speed)}"custom"===a.type&&a.renderCustom?(r.html(a.renderCustom(e,i+1,n)),e.emit("paginationRender",r[0])):e.emit("paginationUpdate",r[0]),r[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](a.lockClass)}},render:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el,s="";if("bullets"===t.type){for(var r=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length,n=0;n";i.html(s),e.pagination.bullets=i.find("."+t.bulletClass.replace(/ /g,"."))}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):' / ',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var e=this,t=e.params.pagination;if(t.el){var a=m(t.el);0!==a.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&a.length>1&&(a=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&a.addClass(t.clickableClass),a.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(a.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&a.addClass(t.progressbarOppositeClass),t.clickable&&a.on("click","."+t.bulletClass.replace(/ /g,"."),(function(t){t.preventDefault();var a=m(this).index()*e.params.slidesPerGroup;e.params.loop&&(a+=e.loopedSlides),e.slideTo(a)})),S(e.pagination,{$el:a,el:a[0]}))}},destroy:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.pagination.$el;a.removeClass(t.hiddenClass),a.removeClass(t.modifierClass+t.type),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&a.off("click","."+t.bulletClass.replace(/ /g,"."))}}},J={setTranslate:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=e.rtlTranslate,i=e.progress,s=t.dragSize,r=t.trackSize,n=t.$dragEl,l=t.$el,o=e.params.scrollbar,d=s,p=(r-s)*i;a?(p=-p)>0?(d=s-p,p=0):-p+s>r&&(d=r+p):p<0?(d=s+p,p=0):p+s>r&&(d=r-p),e.isHorizontal()?(n.transform("translate3d("+p+"px, 0, 0)"),n[0].style.width=d+"px"):(n.transform("translate3d(0px, "+p+"px, 0)"),n[0].style.height=d+"px"),o.hide&&(clearTimeout(e.scrollbar.timeout),l[0].style.opacity=1,e.scrollbar.timeout=setTimeout((function(){l[0].style.opacity=0,l.transition(400)}),1e3))}},setTransition:function(e){var t=this;t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)},updateSize:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=t.$dragEl,i=t.$el;a[0].style.width="",a[0].style.height="";var s,r=e.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,n=e.size/e.virtualSize,l=n*(r/e.size);s="auto"===e.params.scrollbar.dragSize?r*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?a[0].style.width=s+"px":a[0].style.height=s+"px",i[0].style.display=n>=1?"none":"",e.params.scrollbar.hide&&(i[0].style.opacity=0),S(t,{trackSize:r,divider:n,moveDivider:l,dragSize:s}),t.$el[e.params.watchOverflow&&e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}},getPointerPosition:function(e){return this.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},setDragPosition:function(e){var t,a=this,i=a.scrollbar,s=a.rtlTranslate,r=i.$el,n=i.dragSize,l=i.trackSize,o=i.dragStartPos;t=(i.getPointerPosition(e)-r.offset()[a.isHorizontal()?"left":"top"]-(null!==o?o:n/2))/(l-n),t=Math.max(Math.min(t,1),0),s&&(t=1-t);var d=a.minTranslate()+(a.maxTranslate()-a.minTranslate())*t;a.updateProgress(d),a.setTranslate(d),a.updateActiveIndex(),a.updateSlidesClasses()},onDragStart:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el,n=i.$dragEl;t.scrollbar.isTouched=!0,t.scrollbar.dragStartPos=e.target===n[0]||e.target===n?i.getPointerPosition(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),s.transition(100),n.transition(100),i.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),r.transition(0),a.hide&&r.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),t.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this,a=t.scrollbar,i=t.$wrapperEl,s=a.$el,r=a.$dragEl;t.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),i.transition(0),s.transition(0),r.transition(0),t.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),s.transition("")),a.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=E((function(){r.css("opacity",0),r.transition(400)}),1e3)),t.emit("scrollbarDragEnd",e),a.snapOnRelease&&t.slideToClosest())},enableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=r(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,n=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};l.touch?(o.addEventListener(i.start,e.scrollbar.onDragStart,d),o.addEventListener(i.move,e.scrollbar.onDragMove,d),o.addEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.addEventListener(s.start,e.scrollbar.onDragStart,d),t.addEventListener(s.move,e.scrollbar.onDragMove,d),t.addEventListener(s.end,e.scrollbar.onDragEnd,p))}},disableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=r(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,n=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!n.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!n.passiveListeners)&&{passive:!0,capture:!1};l.touch?(o.removeEventListener(i.start,e.scrollbar.onDragStart,d),o.removeEventListener(i.move,e.scrollbar.onDragMove,d),o.removeEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.removeEventListener(s.start,e.scrollbar.onDragStart,d),t.removeEventListener(s.move,e.scrollbar.onDragMove,d),t.removeEventListener(s.end,e.scrollbar.onDragEnd,p))}},init:function(){var e=this;if(e.params.scrollbar.el){var t=e.scrollbar,a=e.$el,i=e.params.scrollbar,s=m(i.el);e.params.uniqueNavElements&&"string"==typeof i.el&&s.length>1&&1===a.find(i.el).length&&(s=a.find(i.el));var r=s.find("."+e.params.scrollbar.dragClass);0===r.length&&(r=m('
'),s.append(r)),S(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},Q={setTransform:function(e,t){var a=this.rtl,i=m(e),s=a?-1:1,r=i.attr("data-swiper-parallax")||"0",n=i.attr("data-swiper-parallax-x"),l=i.attr("data-swiper-parallax-y"),o=i.attr("data-swiper-parallax-scale"),d=i.attr("data-swiper-parallax-opacity");if(n||l?(n=n||"0",l=l||"0"):this.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*t*s+"%":n*t*s+"px",l=l.indexOf("%")>=0?parseInt(l,10)*t+"%":l*t+"px",null!=d){var p=d-(d-1)*(1-Math.abs(t));i[0].style.opacity=p}if(null==o)i.transform("translate3d("+n+", "+l+", 0px)");else{var u=o-(o-1)*(1-Math.abs(t));i.transform("translate3d("+n+", "+l+", 0px) scale("+u+")")}},setTranslate:function(){var e=this,t=e.$el,a=e.slides,i=e.progress,s=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,i)})),a.each((function(t,a){var r=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(r+=Math.ceil(a/2)-i*(s.length-1)),r=Math.min(Math.max(r,-1),1),m(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,r)}))}))},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){var a=m(t),i=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),a.transition(i)}))}},ee={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,a=e.targetTouches[0].pageY,i=e.targetTouches[1].pageX,s=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(i-t,2)+Math.pow(s-a,2))},onGestureStart:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(s.fakeGestureTouched=!1,s.fakeGestureMoved=!1,!a.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;s.fakeGestureTouched=!0,r.scaleStart=ee.getDistanceBetweenTouches(e)}r.$slideEl&&r.$slideEl.length||(r.$slideEl=m(e.target).closest("."+t.params.slideClass),0===r.$slideEl.length&&(r.$slideEl=t.slides.eq(t.activeIndex)),r.$imageEl=r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),r.$imageWrapEl=r.$imageEl.parent("."+i.containerClass),r.maxRatio=r.$imageWrapEl.attr("data-swiper-zoom")||i.maxRatio,0!==r.$imageWrapEl.length)?(r.$imageEl&&r.$imageEl.transition(0),t.zoom.isScaling=!0):r.$imageEl=void 0},onGestureChange:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(!a.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;s.fakeGestureMoved=!0,r.scaleMove=ee.getDistanceBetweenTouches(e)}r.$imageEl&&0!==r.$imageEl.length?(a.gestures?s.scale=e.scale*s.currentScale:s.scale=r.scaleMove/r.scaleStart*s.currentScale,s.scale>r.maxRatio&&(s.scale=r.maxRatio-1+Math.pow(s.scale-r.maxRatio+1,.5)),s.scales.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.ys.touchesStart.y))return void(s.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentXs.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentYs.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,l=a.currentX+n,o=i.y*r,d=a.currentY+o;0!==i.x&&(s=Math.abs((l-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=l,a.currentY=d;var u=a.width*e.scale,c=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-u/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-c/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this,t=e.zoom,a=t.gesture;a.$slideEl&&e.previousIndex!==e.activeIndex&&(a.$imageEl&&a.$imageEl.transform("translate3d(0,0,0) scale(1)"),a.$imageWrapEl&&a.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,t.currentScale=1,a.$slideEl=void 0,a.$imageEl=void 0,a.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,l,o,d,p,u,c,h,v,f,m,g=this,y=g.zoom,w=g.params.zoom,b=y.gesture,E=y.image;(b.$slideEl||(g.params.virtual&&g.params.virtual.enabled&&g.virtual?b.$slideEl=g.$wrapperEl.children("."+g.params.slideActiveClass):b.$slideEl=g.slides.eq(g.activeIndex),b.$imageEl=b.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),b.$imageWrapEl=b.$imageEl.parent("."+w.containerClass)),b.$imageEl&&0!==b.$imageEl.length)&&(b.$slideEl.addClass(""+w.zoomedSlideClass),void 0===E.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=E.touchesStart.x,a=E.touchesStart.y),y.scale=b.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,y.currentScale=b.$imageWrapEl.attr("data-swiper-zoom")||w.maxRatio,e?(f=b.$slideEl[0].offsetWidth,m=b.$slideEl[0].offsetHeight,i=b.$slideEl.offset().left+f/2-t,s=b.$slideEl.offset().top+m/2-a,l=b.$imageEl[0].offsetWidth,o=b.$imageEl[0].offsetHeight,d=l*y.scale,p=o*y.scale,h=-(u=Math.min(f/2-d/2,0)),v=-(c=Math.min(m/2-p/2,0)),(r=i*y.scale)h&&(r=h),(n=s*y.scale)v&&(n=v)):(r=0,n=0),b.$imageWrapEl.transition(300).transform("translate3d("+r+"px, "+n+"px,0)"),b.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+y.scale+")"))},out:function(){var e=this,t=e.zoom,a=e.params.zoom,i=t.gesture;i.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?i.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):i.$slideEl=e.slides.eq(e.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&(t.scale=1,t.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+a.zoomedSlideClass),i.$slideEl=void 0)},toggleGestures:function(e){var t=this,a=t.zoom,i=a.slideSelector,s=a.passiveListener;t.$wrapperEl[e]("gesturestart",i,a.onGestureStart,s),t.$wrapperEl[e]("gesturechange",i,a.onGestureChange,s),t.$wrapperEl[e]("gestureend",i,a.onGestureEnd,s)},enableGestures:function(){this.zoom.gesturesEnabled||(this.zoom.gesturesEnabled=!0,this.zoom.toggleGestures("on"))},disableGestures:function(){this.zoom.gesturesEnabled&&(this.zoom.gesturesEnabled=!1,this.zoom.toggleGestures("off"))},enable:function(){var e=this,t=e.support,a=e.zoom;if(!a.enabled){a.enabled=!0;var i=!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!t.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;e.zoom.passiveListener=i,e.zoom.slideSelector=r,t.gestures?(e.$wrapperEl.on(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.on(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,a.onGestureStart,i),e.$wrapperEl.on(e.touchEvents.move,r,a.onGestureChange,s),e.$wrapperEl.on(e.touchEvents.end,r,a.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,a.onGestureEnd,i)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,a.onTouchMove,s)}},disable:function(){var e=this,t=e.zoom;if(t.enabled){var a=e.support;e.zoom.enabled=!1;var i=!("touchstart"!==e.touchEvents.start||!a.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!a.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;a.gestures?(e.$wrapperEl.off(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.off(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,t.onGestureStart,i),e.$wrapperEl.off(e.touchEvents.move,r,t.onGestureChange,s),e.$wrapperEl.off(e.touchEvents.end,r,t.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,t.onGestureEnd,i)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,s)}}},te={loadInSlide:function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.lazy;if(void 0!==e&&0!==a.slides.length){var s=a.virtual&&a.params.virtual.enabled?a.$wrapperEl.children("."+a.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):a.slides.eq(e),r=s.find("."+i.elementClass+":not(."+i.loadedClass+"):not(."+i.loadingClass+")");!s.hasClass(i.elementClass)||s.hasClass(i.loadedClass)||s.hasClass(i.loadingClass)||r.push(s[0]),0!==r.length&&r.each((function(e){var r=m(e);r.addClass(i.loadingClass);var n=r.attr("data-background"),l=r.attr("data-src"),o=r.attr("data-srcset"),d=r.attr("data-sizes"),p=r.parent("picture");a.loadImage(r[0],l||n,o,d,!1,(function(){if(null!=a&&a&&(!a||a.params)&&!a.destroyed){if(n?(r.css("background-image",'url("'+n+'")'),r.removeAttr("data-background")):(o&&(r.attr("srcset",o),r.removeAttr("data-srcset")),d&&(r.attr("sizes",d),r.removeAttr("data-sizes")),p.length&&p.children("source").each((function(e){var t=m(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),l&&(r.attr("src",l),r.removeAttr("data-src"))),r.addClass(i.loadedClass).removeClass(i.loadingClass),s.find("."+i.preloaderClass).remove(),a.params.loop&&t){var e=s.attr("data-swiper-slide-index");if(s.hasClass(a.params.slideDuplicateClass)){var u=a.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+a.params.slideDuplicateClass+")");a.lazy.loadInSlide(u.index(),!1)}else{var c=a.$wrapperEl.children("."+a.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');a.lazy.loadInSlide(c.index(),!1)}}a.emit("lazyImageReady",s[0],r[0]),a.params.autoHeight&&a.updateAutoHeight()}})),a.emit("lazyImageLoad",s[0],r[0])}))}},load:function(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides,s=e.activeIndex,r=e.virtual&&a.virtual.enabled,n=a.lazy,l=a.slidesPerView;function o(e){if(r){if(t.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(i[e])return!0;return!1}function d(e){return r?m(e).attr("data-swiper-slide-index"):m(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+a.slideVisibleClass).each((function(t){var a=r?m(t).attr("data-swiper-slide-index"):m(t).index();e.lazy.loadInSlide(a)}));else if(l>1)for(var p=s;p1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){for(var u=n.loadPrevNextAmount,c=l,h=Math.min(s+c+Math.max(u,c),i.length),v=Math.max(s-Math.max(c,u),0),f=s+l;f0&&e.lazy.loadInSlide(d(y));var w=t.children("."+a.slidePrevClass);w.length>0&&e.lazy.loadInSlide(d(w))}},checkInViewOnLoad:function(){var e=l(),t=this;if(t&&!t.destroyed){var a=t.params.lazy.scrollingElement?m(t.params.lazy.scrollingElement):m(e),i=a[0]===e,s=i?e.innerWidth:a[0].offsetWidth,r=i?e.innerHeight:a[0].offsetHeight,n=t.$el.offset(),o=!1;t.rtlTranslate&&(n.left-=t.$el[0].scrollLeft);for(var d=[[n.left,n.top],[n.left+t.width,n.top],[n.left,n.top+t.height],[n.left+t.width,n.top+t.height]],p=0;p=0&&u[0]<=s&&u[1]>=0&&u[1]<=r){if(0===u[0]&&0===u[1])continue;o=!0}}o?(t.lazy.load(),a.off("scroll",t.lazy.checkInViewOnLoad)):t.lazy.scrollHandlerAttached||(t.lazy.scrollHandlerAttached=!0,a.on("scroll",t.lazy.checkInViewOnLoad))}}},ae={LinearSpline:function(e,t){var a,i,s,r,n,l=function(e,t){for(i=-1,a=e.length;a-i>1;)e[s=a+i>>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=l(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new ae.LinearSpline(t.slidesGrid,e.slidesGrid):new ae.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control,n=s.constructor;function l(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o0&&(e.isBeginning?(e.a11y.disableEl(i),e.a11y.makeElNotFocusable(i)):(e.a11y.enableEl(i),e.a11y.makeElFocusable(i))),a&&a.length>0&&(e.isEnd?(e.a11y.disableEl(a),e.a11y.makeElNotFocusable(a)):(e.a11y.enableEl(a),e.a11y.makeElFocusable(a)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((function(a){var i=m(a);e.a11y.makeElFocusable(i),e.params.pagination.renderBullet||(e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1)))}))},init:function(){var e=this,t=e.params.a11y;e.$el.append(e.a11y.liveRegion);var a=e.$el;t.containerRoleDescriptionMessage&&e.a11y.addElRoleDescription(a,t.containerRoleDescriptionMessage),t.containerMessage&&e.a11y.addElLabel(a,t.containerMessage);var i,s,r,n=e.$wrapperEl,l=n.attr("id")||"swiper-wrapper-"+e.a11y.getRandomNumber(16);e.a11y.addElId(n,l),i=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite",e.a11y.addElLive(n,i),t.itemRoleDescriptionMessage&&e.a11y.addElRoleDescription(m(e.slides),t.itemRoleDescriptionMessage),e.a11y.addElRole(m(e.slides),"group"),e.slides.each((function(t){var a=m(t);e.a11y.addElLabel(a,a.index()+1+" / "+e.slides.length)})),e.navigation&&e.navigation.$nextEl&&(s=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(r=e.navigation.$prevEl),s&&s.length&&(e.a11y.makeElFocusable(s),"BUTTON"!==s[0].tagName&&(e.a11y.addElRole(s,"button"),s.on("keydown",e.a11y.onEnterKey)),e.a11y.addElLabel(s,t.nextSlideMessage),e.a11y.addElControls(s,l)),r&&r.length&&(e.a11y.makeElFocusable(r),"BUTTON"!==r[0].tagName&&(e.a11y.addElRole(r,"button"),r.on("keydown",e.a11y.onEnterKey)),e.a11y.addElLabel(r,t.prevSlideMessage),e.a11y.addElControls(r,l)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown","."+e.params.pagination.bulletClass.replace(/ /g,"."),e.a11y.onEnterKey)},destroy:function(){var e,t,a=this;a.a11y.liveRegion&&a.a11y.liveRegion.length>0&&a.a11y.liveRegion.remove(),a.navigation&&a.navigation.$nextEl&&(e=a.navigation.$nextEl),a.navigation&&a.navigation.$prevEl&&(t=a.navigation.$prevEl),e&&e.off("keydown",a.a11y.onEnterKey),t&&t.off("keydown",a.a11y.onEnterKey),a.pagination&&a.params.pagination.clickable&&a.pagination.bullets&&a.pagination.bullets.length&&a.pagination.$el.off("keydown","."+a.params.pagination.bulletClass.replace(/ /g,"."),a.a11y.onEnterKey)}},se={init:function(){var e=this,t=l();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);var a=e.history;a.initialized=!0,a.paths=se.getPathValues(e.params.url),(a.paths.key||a.paths.value)&&(a.scrollToSlide(0,a.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",e.history.setHistoryPopState))}},destroy:function(){var e=l();this.params.history.replaceState||e.removeEventListener("popstate",this.history.setHistoryPopState)},setHistoryPopState:function(){var e=this;e.history.paths=se.getPathValues(e.params.url),e.history.scrollToSlide(e.params.speed,e.history.paths.value,!1)},getPathValues:function(e){var t=l(),a=(e?new URL(e):t.location).pathname.slice(1).split("/").filter((function(e){return""!==e})),i=a.length;return{key:a[i-2],value:a[i-1]}},setHistory:function(e,t){var a=this,i=l();if(a.history.initialized&&a.params.history.enabled){var s;s=a.params.url?new URL(a.params.url):i.location;var r=a.slides.eq(t),n=se.slugify(r.attr("data-history"));s.pathname.includes(e)||(n=e+"/"+n);var o=i.history.state;o&&o.value===n||(a.params.history.replaceState?i.history.replaceState({value:n},null,n):i.history.pushState({value:n},null,n))}},slugify:function(e){return e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,a){var i=this;if(t)for(var s=0,r=i.slides.length;s'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=m('
'),a.append(e)));for(var v=0;v-1&&(h=90*g+90*b,l&&(h=90*-g-90*b)),f.transform(C),p.slideShadows){var S=u?f.find(".swiper-slide-shadow-left"):f.find(".swiper-slide-shadow-top"),M=u?f.find(".swiper-slide-shadow-right"):f.find(".swiper-slide-shadow-bottom");0===S.length&&(S=m('
'),f.append(S)),0===M.length&&(M=m('
'),f.append(M)),S.length&&(S[0].style.opacity=Math.max(-b,0)),M.length&&(M[0].style.opacity=Math.max(b,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+o/2+"px","-moz-transform-origin":"50% 50% -"+o/2+"px","-ms-transform-origin":"50% 50% -"+o/2+"px","transform-origin":"50% 50% -"+o/2+"px"}),p.shadow)if(u)e.transform("translate3d(0px, "+(r/2+p.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+p.shadowScale+")");else{var z=Math.abs(h)-90*Math.floor(Math.abs(h)/90),P=1.5-(Math.sin(2*z*Math.PI/360)/2+Math.cos(2*z*Math.PI/360)/2),k=p.shadowScale,L=p.shadowScale/P,$=p.shadowOffset;e.transform("scale3d("+k+", 1, "+L+") translate3d(0px, "+(n/2+$)+"px, "+-n/2/L+"px) rotateX(-90deg)")}var I=d.isSafari||d.isWebView?-o/2:0;i.transform("translate3d(0px,0,"+I+"px) rotateX("+(t.isHorizontal()?0:h)+"deg) rotateY("+(t.isHorizontal()?-h:0)+"deg)")},setTransition:function(e){var t=this,a=t.$el;t.slides.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()&&a.find(".swiper-cube-shadow").transition(e)}},de={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i'),s.append(p)),0===u.length&&(u=m('
'),s.append(u)),p.length&&(p[0].style.opacity=Math.max(-r,0)),u.length&&(u[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+o+"px, "+d+"px, 0px) rotateX("+l+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var t=this,a=t.slides,i=t.activeIndex,s=t.$wrapperEl;if(a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var r=!1;a.eq(i).transitionEnd((function(){if(!r&&t&&!t.destroyed){r=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],a=0;a'),h.append(S)),0===M.length&&(M=m('
'),h.append(M)),S.length&&(S[0].style.opacity=f>0?f:0),M.length&&(M[0].style.opacity=-f>0?-f:0)}}},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},ue={init:function(){var e=this,t=e.params.thumbs;if(e.thumbs.initialized)return!1;e.thumbs.initialized=!0;var a=e.constructor;return t.swiper instanceof a?(e.thumbs.swiper=t.swiper,S(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),S(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):C(t.swiper)&&(e.thumbs.swiper=new a(S({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick),!0},onThumbClick:function(){var e=this,t=e.thumbs.swiper;if(t){var a=t.clickedIndex,i=t.clickedSlide;if(!(i&&m(i).hasClass(e.params.thumbs.slideThumbActiveClass)||null==a)){var s;if(s=t.params.loop?parseInt(m(t.clickedSlide).attr("data-swiper-slide-index"),10):a,e.params.loop){var r=e.activeIndex;e.slides.eq(r).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,r=e.activeIndex);var n=e.slides.eq(r).prevAll('[data-swiper-slide-index="'+s+'"]').eq(0).index(),l=e.slides.eq(r).nextAll('[data-swiper-slide-index="'+s+'"]').eq(0).index();s=void 0===n?l:void 0===l?n:l-rt.previousIndex?"next":"prev"}else l=(n=t.realIndex)>t.previousIndex?"next":"prev";r&&(n+="next"===l?s:-1*s),a.visibleSlidesIndexes&&a.visibleSlidesIndexes.indexOf(n)<0&&(a.params.centeredSlides?n=n>o?n-Math.floor(i/2)+1:n+Math.floor(i/2)-1:n>o&&(n=n-i+1),a.slideTo(n,e?0:void 0))}var u=1,c=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(u=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(u=1),u=Math.floor(u),a.slides.removeClass(c),a.params.loop||a.params.virtual&&a.params.virtual.enabled)for(var h=0;h0&&!m(t.target).hasClass(e.params.pagination.bulletClass)&&(!0===e.pagination.$el.hasClass(e.params.pagination.hiddenClass)?e.emit("paginationShow"):e.emit("paginationHide"),e.pagination.$el.toggleClass(e.params.pagination.hiddenClass))}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){M(this,{scrollbar:t({isTouched:!1,timeout:null,dragTimeout:null},J)})},on:{init:function(e){e.scrollbar.init(),e.scrollbar.updateSize(),e.scrollbar.setTranslate()},update:function(e){e.scrollbar.updateSize()},resize:function(e){e.scrollbar.updateSize()},observerUpdate:function(e){e.scrollbar.updateSize()},setTranslate:function(e){e.scrollbar.setTranslate()},setTransition:function(e,t){e.scrollbar.setTransition(t)},destroy:function(e){e.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){M(this,{parallax:t({},Q)})},on:{beforeInit:function(e){e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},init:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTranslate:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTransition:function(e,t){e.params.parallax.enabled&&e.parallax.setTransition(t)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this;M(e,{zoom:t({enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{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:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}},ee)});var a=1;Object.defineProperty(e.zoom,"scale",{get:function(){return a},set:function(t){if(a!==t){var i=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,s=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",t,i,s)}a=t}})},on:{init:function(e){e.params.zoom.enabled&&e.zoom.enable()},destroy:function(e){e.zoom.disable()},touchStart:function(e,t){e.zoom.enabled&&e.zoom.onTouchStart(t)},touchEnd:function(e,t){e.zoom.enabled&&e.zoom.onTouchEnd(t)},doubleTap:function(e,t){e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&e.zoom.toggle(t)},transitionEnd:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"lazy",params:{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"}},create:function(){M(this,{lazy:t({initialImageLoaded:!1},te)})},on:{beforeInit:function(e){e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init:function(e){e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&(e.params.lazy.checkInView?e.lazy.checkInViewOnLoad():e.lazy.load())},scroll:function(e){e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},resize:function(e){e.params.lazy.enabled&&e.lazy.load()},scrollbarDragMove:function(e){e.params.lazy.enabled&&e.lazy.load()},transitionStart:function(e){e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd:function(e){e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange:function(e){e.params.lazy.enabled&&e.params.cssMode&&e.lazy.load()}}},{name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){M(this,{controller:t({control:this.params.controller.control},ae)})},on:{update:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate:function(e,t,a){e.controller.control&&e.controller.setTranslate(t,a)},setTransition:function(e,t,a){e.controller.control&&e.controller.setTransition(t,a)}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null}},create:function(){M(this,{a11y:t({},ie,{liveRegion:m('')})})},on:{afterInit:function(e){e.params.a11y.enabled&&(e.a11y.init(),e.a11y.updateNavigation())},toEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},fromEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},paginationUpdate:function(e){e.params.a11y.enabled&&e.a11y.updatePagination()},destroy:function(e){e.params.a11y.enabled&&e.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,replaceState:!1,key:"slides"}},create:function(){M(this,{history:t({},se)})},on:{init:function(e){e.params.history.enabled&&e.history.init()},destroy:function(e){e.params.history.enabled&&e.history.destroy()},transitionEnd:function(e){e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange:function(e){e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){M(this,{hashNavigation:t({initialized:!1},re)})},on:{init:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},transitionEnd:function(e){e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange:function(e){e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){M(this,{autoplay:t({},ne,{running:!1,paused:!1})})},on:{init:function(e){e.params.autoplay.enabled&&(e.autoplay.start(),r().addEventListener("visibilitychange",e.autoplay.onVisibilityChange))},beforeTransitionStart:function(e,t,a){e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(t):e.autoplay.stop())},sliderFirstMove:function(e){e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd:function(e){e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy:function(e){e.autoplay.running&&e.autoplay.stop(),r().removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){M(this,{fadeEffect:t({},le)})},on:{beforeInit:function(e){if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"fade"===e.params.effect&&e.fadeEffect.setTranslate()},setTransition:function(e,t){"fade"===e.params.effect&&e.fadeEffect.setTransition(t)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){M(this,{cubeEffect:t({},oe)})},on:{beforeInit:function(e){if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"cube"===e.params.effect&&e.cubeEffect.setTranslate()},setTransition:function(e,t){"cube"===e.params.effect&&e.cubeEffect.setTransition(t)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){M(this,{flipEffect:t({},de)})},on:{beforeInit:function(e){if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};S(e.params,t),S(e.originalParams,t)}},setTranslate:function(e){"flip"===e.params.effect&&e.flipEffect.setTranslate()},setTransition:function(e,t){"flip"===e.params.effect&&e.flipEffect.setTransition(t)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create:function(){M(this,{coverflowEffect:t({},pe)})},on:{beforeInit:function(e){"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(e){"coverflow"===e.params.effect&&e.coverflowEffect.setTranslate()},setTransition:function(e,t){"coverflow"===e.params.effect&&e.coverflowEffect.setTransition(t)}}},{name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){M(this,{thumbs:t({swiper:null,initialized:!1},ue)})},on:{beforeInit:function(e){var t=e.params.thumbs;t&&t.swiper&&(e.thumbs.init(),e.thumbs.update(!0))},slideChange:function(e){e.thumbs.swiper&&e.thumbs.update()},update:function(e){e.thumbs.swiper&&e.thumbs.update()},resize:function(e){e.thumbs.swiper&&e.thumbs.update()},observerUpdate:function(e){e.thumbs.swiper&&e.thumbs.update()},setTransition:function(e,t){var a=e.thumbs.swiper;a&&a.setTransition(t)},beforeDestroy:function(e){var t=e.thumbs.swiper;t&&e.thumbs.swiperCreated&&t&&t.destroy()}}}];return R.use(ce),R})); 14 | //# sourceMappingURL=swiper-bundle.min.js.map -------------------------------------------------------------------------------- /src/helpers.php: -------------------------------------------------------------------------------- 1 | env('START_IFRAME_TAB', true), 5 | # 底部设置 6 | 'footer_setting' => [ 7 | 'copyright' => env('APP_NAME', ''), 8 | 'app_version' => env('APP_VERSION', ''), 9 | # 是否将底部置于菜单下 10 | 'use_menu' => false 11 | ], 12 | # 是否开启标签页缓存 13 | 'cache' => env('IFRAME_TAB_CACHE', false), 14 | # 更改dialog表单默认宽高 15 | 'dialog_area_width' => env('IFRAME_TAB_DIALOG_AREA_WIDTH', '50%'), 16 | 'dialog_area_height' => env('IFRAME_TAB_DIALOG_AREA_HEIGHT', '90vh'), 17 | # iframe-tab占用的路由 默认 '/' 18 | 'router' => '/', 19 | # iframe-tab域名(一般用于多应用后台) 20 | 'domain' => null, 21 | # 是否开启懒加载模式 22 | 'lazy_load' => true 23 | ]; 24 | -------------------------------------------------------------------------------- /src/resource/views/content.blade.php: -------------------------------------------------------------------------------- 1 | @section('content') 2 | @include('admin::partials.alerts') 3 | @include('admin::partials.exception') 4 | 5 | {!! $content !!} 6 | 7 | @include('admin::partials.toastr') 8 | @endsection 9 | 10 | @section('app') 11 | {!! Dcat\Admin\Admin::asset()->styleToHtml() !!} 12 |
13 | {{-- 页面埋点--}} 14 | {!! admin_section(Dcat\Admin\Admin::SECTION['APP_INNER_BEFORE']) !!} 15 |
16 | 17 | {{-- 页面埋点--}} 18 | {!! admin_section(Dcat\Admin\Admin::SECTION['APP_INNER_AFTER']) !!} 19 |
20 | 21 | {!! Dcat\Admin\Admin::asset()->scriptToHtml() !!} 22 | {!! Dcat\Admin\Admin::html() !!} 23 | @endsection 24 | 25 | @if(! request()->pjax()) 26 | @include('iframe-tab::page') 27 | @else 28 | {{ Dcat\Admin\Admin::title() }} @if($header) | {{ $header }}@endif 29 | 30 | 37 | 38 | {!! Dcat\Admin\Admin::asset()->cssToHtml() !!} 39 | {!! Dcat\Admin\Admin::asset()->jsToHtml() !!} 40 | 41 | @yield('app') 42 | @endif 43 | -------------------------------------------------------------------------------- /src/resource/views/full-content.blade.php: -------------------------------------------------------------------------------- 1 | @section('content') 2 |
3 | @include('admin::partials.alerts') 4 | @include('admin::partials.exception') 5 | 6 | {!! $content !!} 7 | 8 | @include('admin::partials.toastr') 9 |
10 | @endsection 11 | @section('content-header') 12 | 25 | @endsection 26 | @section('app') 27 | {!! Dcat\Admin\Admin::asset()->styleToHtml() !!} 28 |
29 | @yield('content-header') 30 |
31 |
32 | {{-- 页面埋点--}} 33 | {!! admin_section(Dcat\Admin\Admin::SECTION['APP_INNER_BEFORE']) !!} 34 | 35 | @yield('content') 36 | 37 | {{-- 页面埋点--}} 38 | {!! admin_section(Dcat\Admin\Admin::SECTION['APP_INNER_AFTER']) !!} 39 |
40 | 41 | {!! Dcat\Admin\Admin::asset()->scriptToHtml() !!} 42 | {!! Dcat\Admin\Admin::html() !!} 43 | @endsection 44 | 45 | 46 | @if(!request()->pjax()) 47 | @include('iframe-tab::full-page', ['header' => $header]) 48 | @else 49 | {{ Dcat\Admin\Admin::title() }} @if($header) | {{ $header }}@endif 50 | 51 | 58 | 59 | {!! Dcat\Admin\Admin::asset()->cssToHtml() !!} 60 | {!! Dcat\Admin\Admin::asset()->jsToHtml() !!} 61 | 62 | @yield('app') 63 | @endif 64 | -------------------------------------------------------------------------------- /src/resource/views/full-page.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{-- 默认使用谷歌浏览器内核--}} 8 | 9 | 10 | 11 | @if(! empty($header)){{ $header }} | @endif {{ Dcat\Admin\Admin::title() }} 12 | 13 | @if(! config('admin.disable_no_referrer_meta')) 14 | 15 | @endif 16 | 17 | @if(! empty($favicon = Dcat\Admin\Admin::favicon())) 18 | 19 | @endif 20 | 21 | {!! admin_section(Dcat\Admin\Admin::SECTION['HEAD']) !!} 22 | 23 | {!! Dcat\Admin\Admin::asset()->headerJsToHtml() !!} 24 | 25 | {!! Dcat\Admin\Admin::asset()->cssToHtml() !!} 26 | 27 | 36 | 37 | 38 | 39 | 40 | 60 | 61 | {{-- 页面埋点 --}} 62 | {!! admin_section(Dcat\Admin\Admin::SECTION['BODY_INNER_BEFORE']) !!} 63 | 64 |
65 |
67 | @yield('app') 68 |
69 | @if(!isset(config('iframe_tab')['footer_setting']['use_menu'])||!config('iframe_tab')['footer_setting']['use_menu']) 70 |
71 |

72 | 73 | Powered by 74 | @if(isset(config('iframe_tab')['footer_setting'])&&config('iframe_tab')['footer_setting']['copyright']!='') 75 | {{ config('iframe_tab')['footer_setting']['copyright'] }} 77 | @else 78 | Dcat Admin 79 | @endif 80 |  ·  81 | @if(isset(config('iframe_tab')['footer_setting'])&&config('iframe_tab')['footer_setting']['app_version']!='') 82 | v{{ config('iframe_tab')['footer_setting']['app_version'] }} 83 | @else 84 | v{{ Dcat\Admin\Admin::VERSION }} 85 | @endif 86 | 87 | 88 | 89 | 93 |

94 |
95 | @endif 96 |
97 | 98 | {!! admin_section(Dcat\Admin\Admin::SECTION['BODY_INNER_AFTER']) !!} 99 | 100 | {!! Dcat\Admin\Admin::asset()->jsToHtml() !!} 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /src/resource/views/page.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{-- 默认使用谷歌浏览器内核--}} 8 | 9 | 10 | 11 | {{ Dcat\Admin\Admin::title() }} @if(! empty($header)) | {{ $header }}@endif 12 | 13 | @if(! config('admin.disable_no_referrer_meta')) 14 | 15 | @endif 16 | 17 | @if(! empty($favicon = Dcat\Admin\Admin::favicon())) 18 | 19 | @endif 20 | 21 | {!! admin_section(Dcat\Admin\Admin::SECTION['HEAD']) !!} 22 | 23 | {!! Dcat\Admin\Admin::asset()->headerJsToHtml() !!} 24 | 25 | {!! Dcat\Admin\Admin::asset()->cssToHtml() !!} 26 | 27 | 28 | 29 | 30 | @extends('iframe-tab::vertical') 31 | -------------------------------------------------------------------------------- /src/resource/views/vertical.blade.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | {!! admin_section(Dcat\Admin\Admin::SECTION['BODY_INNER_BEFORE']) !!} 9 |
10 | {{-- {{dump(isset(config('admin.layout')['iframe_tab_cache']))}}--}} 11 | @include('admin::partials.sidebar') 12 | @include('admin::partials.navbar') 13 |
14 | 21 | 28 | 29 | {{--右键菜单监控--}} 30 |
31 | 47 |
48 |
51 |
52 | 53 |
54 |
55 |
56 |
57 |
58 | @yield('app') 59 |
60 |
61 |
62 | 79 | 80 | {!! admin_section(Dcat\Admin\Admin::SECTION['BODY_INNER_AFTER']) !!} 81 | 82 | {!! Dcat\Admin\Admin::asset()->jsToHtml() !!} 83 | 84 | 85 | 86 | 87 | 88 | 89 | @if(isset(config('iframe_tab')['footer_setting']['use_menu'])&&config('iframe_tab')['footer_setting']['use_menu']==true) 90 | 94 | @endif 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /src/routes.php: -------------------------------------------------------------------------------- 1 | config('admin.route.prefix'), 8 | 'middleware' => config('admin.route.middleware'), 9 | 'domain' => config('iframe_tab.domain', null) 10 | ]; 11 | app('router')->group($attributes, function ($router) { 12 | $controller = IframeController::class; 13 | $router->get(config('iframe_tab.router','/'), $controller . '@index'); 14 | }); 15 | } 16 | --------------------------------------------------------------------------------