diff --git a/.editorconfig b/.editorconfig index 9f2c1660b2..afb3832734 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,3 +10,6 @@ trim_trailing_whitespace = true insert_final_newline = true indent_style = space indent_size = 4 + +[.github/workflows/**.{yml,yaml}] +indent_size = 2 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a64cdaff0d..923e5b08a6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -56,9 +56,6 @@ jobs: with: node-version: ${{ env.nodeVersion }} - - name: Echo branches - run: echo "${{ github.ref }} | ${{ github.head_ref }} | ${{ github.ref_name }} | ${{ github.base_ref }}" - - name: Switch library dependency (develop) if: github.ref == 'refs/heads/develop' || github.base_ref == 'develop' run: php ./.github/workflows/utilities/library-switcher "dev-develop as 1.2" @@ -99,7 +96,7 @@ jobs: max-parallel: 8 matrix: operatingSystem: [ubuntu-latest, windows-latest] - phpVersion: ['8.0', '8.1'] + phpVersion: ['8.0', '8.1', '8.2'] fail-fast: false runs-on: ${{ matrix.operatingSystem }} name: ${{ matrix.operatingSystem }} / PHP ${{ matrix.phpVersion }} diff --git a/.vscode/settings.json b/.vscode/settings.json index 8e710556a0..ccbd382e52 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,7 @@ { "files.associations": { "**/modules/*/behaviors/*/partials/*.htm": "php", + "**/modules/*/blocks/*.block": "wintercms", "**/modules/*/controllers/*/*.htm": "php", "**/modules/*/formwidgets/*/partials/*.htm": "php", "**/modules/*/layouts/*.htm": "php", @@ -11,6 +12,7 @@ "**/modules/*/widgets/*/partials/*.htm": "php", "**/plugins/*/*/behaviors/*/partials/*.htm": "php", + "**/plugins/*/*/blocks/*.block": "wintercms", "**/plugins/*/*/components/**/*.htm": "wintercms-twig", "**/plugins/*/*/controllers/*/*.htm": "php", "**/plugins/*/*/formwidgets/*/partials/*.htm": "php", @@ -21,11 +23,16 @@ "**/plugins/*/*/views/mail/*.htm": "wintercms", "**/plugins/*/*/widgets/*/partials/*.htm": "php", + "**/themes/*/blocks/**/*.block": "wintercms", "**/themes/*/content/**/*.htm": "wintercms", "**/themes/*/layouts/*.htm": "wintercms", "**/themes/*/pages/**/*.htm": "wintercms", "**/themes/*/partials/**/*.htm": "wintercms" }, + "emmet.includeLanguages": { + "wintercms": "html", + "wintercms-twig": "html", + }, "eslint.validate": [ "javascript", "vue" diff --git a/README.md b/README.md index ca0fce5259..2f72a3ccee 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ No matter how large or small your project is, Winter provides a rich development environment, regardless of your level of experience. [![Version](https://img.shields.io/github/v/release/wintercms/winter?sort=semver&style=flat-square)](https://github.com/wintercms/winter/releases) -[![Tests](https://img.shields.io/github/workflow/status/wintercms/winter/Tests/develop?label=tests&style=flat-square)](https://github.com/wintercms/winter/actions) +[![Tests](https://img.shields.io/github/actions/workflow/status/wintercms/winter/tests.yml?branch=develop&label=tests&style=flat-square)](https://github.com/wintercms/winter/actions) [![License](https://img.shields.io/github/license/wintercms/winter?label=open%20source&style=flat-square)](https://packagist.org/packages/wintercms/winter) [![Discord](https://img.shields.io/discord/816852513684193281?label=discord&style=flat-square)](https://discord.gg/D5MFSPH6Ux) @@ -89,8 +89,7 @@ Winter CMS development is financially supported by the generosity of the followi ### Organizations -[![Spatial Media logo](https://cdn.ca.spatialmedia.io/media/images/sm-logo-dark-full.svg)](https://spatialmedia.io) -Spatial Media employs two of the core contributors (Luke Towers & Jack Wilkinson) and contributes to the ongoing development of Winter. +Spatial Media employs one of the core maintainers (Jack Wilkinson) who contributes to the ongoing development of Winter. [![Froala logo](https://froala.com/wp-content/uploads/2019/10/froala.svg)](https://froala.com/wysiwyg-editor/) diff --git a/composer.json b/composer.json index da09aae0e3..7c6a2dd162 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "winter/wn-backend-module": "~1.2.0", "winter/wn-cms-module": "~1.2.0", "laravel/framework": "^9.1", - "wikimedia/composer-merge-plugin": "~2.0.1" + "wikimedia/composer-merge-plugin": "~2.1.0" }, "require-dev": { "phpunit/phpunit": "^9.5.8", @@ -72,6 +72,7 @@ ], "recurse": true, "replace": false, + "merge-replace": false, "merge-dev": false } }, diff --git a/config/cms.php b/config/cms.php index 560491de72..1553b1dc3a 100644 --- a/config/cms.php +++ b/config/cms.php @@ -446,7 +446,7 @@ | */ - 'restrictBaseDir' => true, + 'restrictBaseDir' => env('RESTRICT_BASE_DIR', true), /* |-------------------------------------------------------------------------- diff --git a/config/develop.php b/config/develop.php index 4a30178b51..2d31619cb8 100644 --- a/config/develop.php +++ b/config/develop.php @@ -42,4 +42,17 @@ */ 'allowDeepSymlinks' => false, + + /* + |-------------------------------------------------------------------------- + | Enable Snowboard debugging + |-------------------------------------------------------------------------- + | + | By default, Snowboard debugging and client-side logging is disabled. + | + | If you wish to enable Snowboard debugging, set this value to `true`. + | + */ + + 'debugSnowboard' => env('DEBUG_SNOWBOARD', false), ]; diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php index 2dea56797c..e862a3855a 100644 --- a/modules/backend/ServiceProvider.php +++ b/modules/backend/ServiceProvider.php @@ -1,6 +1,5 @@ registerConsole(); $this->registerMailer(); $this->registerAssetBundles(); + $this->registerBackendPermissions(); /* * Backend specific */ - if (App::runningInBackend()) { + if ($this->app->runningInBackend()) { $this->registerBackendNavigation(); $this->registerBackendReportWidgets(); $this->registerBackendWidgets(); - $this->registerBackendPermissions(); $this->registerBackendSettings(); } } @@ -90,10 +91,8 @@ protected function registerAssetBundles() $combiner->registerBundle('~/modules/backend/formwidgets/fileupload/assets/less/fileupload.less'); $combiner->registerBundle('~/modules/backend/formwidgets/nestedform/assets/less/nestedform.less'); $combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/js/build-plugins.js'); - $combiner->registerBundle('~/modules/backend/formwidgets/colorpicker/assets/less/colorpicker.less'); $combiner->registerBundle('~/modules/backend/formwidgets/permissioneditor/assets/less/permissioneditor.less'); $combiner->registerBundle('~/modules/backend/formwidgets/markdowneditor/assets/less/markdowneditor.less'); - $combiner->registerBundle('~/modules/backend/formwidgets/sensitive/assets/less/sensitive.less'); /* * Rich Editor is protected by DRM @@ -229,6 +228,7 @@ protected function registerBackendWidgets() $manager->registerFormWidget('Backend\FormWidgets\MediaFinder', 'mediafinder'); $manager->registerFormWidget('Backend\FormWidgets\NestedForm', 'nestedform'); $manager->registerFormWidget('Backend\FormWidgets\Sensitive', 'sensitive'); + $manager->registerFormWidget('Backend\FormWidgets\IconPicker', 'iconpicker'); }); } diff --git a/modules/backend/assets/css/winter.css b/modules/backend/assets/css/winter.css index 96bfcd3f61..f517a261ab 100644 --- a/modules/backend/assets/css/winter.css +++ b/modules/backend/assets/css/winter.css @@ -206,7 +206,7 @@ html.mobile .control-scrollbar{overflow:auto;-webkit-overflow-scrolling:touch} .control-filelist.filelist-hero ul li>a{padding:11px 45px 10px 50px;font-size:13px;border-bottom:1px solid #ecf0f1} .control-filelist.filelist-hero ul li>a span.title{font-size:14px;font-weight:normal;color:#2b3e50} .control-filelist.filelist-hero ul li>a span.description{font-size:13px} -.control-filelist.filelist-hero ul li>a .list-icon{position:absolute;left:14px;top:15px;font-size:22px;color:#b7c0c2} +.control-filelist.filelist-hero ul li>a .list-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:22px;color:#b7c0c2} .control-filelist.filelist-hero ul li>a:hover{background:#4ea5e0;border-bottom:1px solid #4ea5e0 !important} .control-filelist.filelist-hero ul li>a:hover span.title, .control-filelist.filelist-hero ul li>a:hover span.description{color:#fff !important} @@ -874,252 +874,224 @@ body.outer .layout>.layout-row>.layout-cell .outer-form-container .forgot-passwo html.csstransitions body.outer .outer-form-container{-webkit-transition:all 0.5s ease-out;transition:all 0.5s ease-out;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} html.csstransitions body.outer.preload .outer-form-container{-webkit-transform:scale(0.2,0.2);-moz-transform:scale(0.2,0.2);-ms-transform:scale(0.2,0.2);-o-transform:scale(0.2,0.2);transform:scale(0.2,0.2)} @media (max-width:768px){body.outer .layout>.layout-row.layout-head>.layout-cell{padding:50px 20px}body.outer .layout>.layout-row>.layout-cell .outer-form-container{width:auto;padding:40px}body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form{display:block}body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form input{display:block;width:100% !important;margin-bottom:20px}} +body.fancy-layout .master-tabs.control-tabs, +.master-tabs.control-tabs.fancy-layout{overflow:hidden} +body.fancy-layout .master-tabs.control-tabs:before, +.master-tabs.control-tabs.fancy-layout:before, +body.fancy-layout .master-tabs.control-tabs:after, +.master-tabs.control-tabs.fancy-layout:after{top:13px;font-size:14px;color:rgba(255,255,255,0.35)} +body.fancy-layout .master-tabs.control-tabs:before, +.master-tabs.control-tabs.fancy-layout:before{left:8px} +body.fancy-layout .master-tabs.control-tabs:after, +.master-tabs.control-tabs.fancy-layout:after{right:8px} +body.fancy-layout .master-tabs.control-tabs.scroll-before:before, +.master-tabs.control-tabs.fancy-layout.scroll-before:before{color:#fff} +body.fancy-layout .master-tabs.control-tabs.scroll-after:after, +.master-tabs.control-tabs.fancy-layout.scroll-after:after{color:#fff} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container{background:#d35400;padding-left:20px;padding-right:20px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs{margin-left:-8px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li{margin-left:-5px;top:1px;padding-top:3px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li span.tab-close{top:14px;right:-3px;left:auto;z-index:110;font-family:sans-serif} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li span.tab-close i{top:4px;right:1px;color:rgba(255,255,255,0.3) !important;font-style:normal;font-weight:bold;font-size:16px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover{color:#fff !important} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a{border-bottom:none;background:transparent;font-size:14px;color:rgba(255,255,255,0.35);padding:6px 0 0 24px!important;overflow:visible} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:12px 5px 0 5px;height:38px;font-size:14px;z-index:100;background-color:#b9530f} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;width:20px;display:block;height:37px;top:0;z-index:100;background-color:#b9530f} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title:before{left:-14px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{right:-14px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title span, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a>span.title span{border-top:none;padding:0;margin-top:0;overflow:visible} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a:before, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a:before{z-index:110;position:absolute;top:18px;left:22px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title{padding-left:18px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li.active a, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li.active a{z-index:107;color:#fff} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i{color:#fff} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li.active a>span.title{background-color:#e67e22;z-index:105} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before{z-index:107;background-color:#e67e22} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after{background-color:#e67e22;z-index:107} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i{top:5px;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f111";font-size:9px} +body.fancy-layout .master-tabs.control-tabs>div>div.tabs-container>ul.nav-tabs>li:first-child, +.master-tabs.control-tabs.fancy-layout>div>div.tabs-container>ul.nav-tabs>li:first-child{margin-left:0} +body.fancy-layout .master-tabs.control-tabs[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title, +.master-tabs.control-tabs.fancy-layout[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title{padding-right:10px} +body.fancy-layout .master-tabs.control-tabs.has-tabs:before, +.master-tabs.control-tabs.fancy-layout.has-tabs:before, +body.fancy-layout .master-tabs.control-tabs.has-tabs:after, +.master-tabs.control-tabs.fancy-layout.has-tabs:after{display:block} +body.fancy-layout .master-tabs.control-tabs.has-tabs>div.tab-content, +.master-tabs.control-tabs.fancy-layout.has-tabs>div.tab-content{background:#f9f9f9} +body.fancy-layout .master-tabs.control-tabs>.tab-content>.tab-pane, +.master-tabs.control-tabs.fancy-layout>.tab-content>.tab-pane{padding:0} +body.fancy-layout .master-tabs.control-tabs>.tab-content>.tab-pane.padded-pane, +.master-tabs.control-tabs.fancy-layout>.tab-content>.tab-pane.padded-pane{padding:20px 20px 0 20px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs.master-area>div>ul.nav-tabs, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs.master-area>div>ul.nav-tabs{-webkit-transition:background-color 0.5s;transition:background-color 0.5s;background:#e67e22} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs{background:#7f8c8d;margin-left:0 !important;margin-right:0 !important} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs:before, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs:before{display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li{background:transparent;border-right:none;margin-right:-8px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li:first-child, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li:first-child{margin-left:-5px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 16px 0;font-size:14px;font-weight:400;color:#95a5a6} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title{background:#d5d9d8;border-top:none;padding:5px 5px 3px 5px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title:after{background:#d5d9d8;border-width:0;top:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title:before{left:-20px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title:after{right:-20px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title span, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li a span.title span{border-width:0;vertical-align:top} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li.active a{color:#808c8d} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a:before, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li.active a:before{display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li.active a span.title{background:#fafafa} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:after, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>div>ul.nav-tabs>li.active a span.title:after{background:#fafafa} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>.tab-content>.tab-pane, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>.tab-content>.tab-pane{padding:20px 20px 0 20px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs>.tab-content>.tab-pane.pane-compact, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs>.tab-content>.tab-pane.pane-compact{padding:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs.collapsed, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs.collapsed{display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.primary-tabs.has-tabs>div.tab-content, +*:not(.nested-form)>.form-widget>.layout-row>.control-tabs.fancy-layout.primary-tabs.has-tabs>div.tab-content{background:#f9f9f9} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs:before{left:5px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs:after{right:5px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs{background:#475354} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs>li{border-right:none;padding-right:0;margin-right:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 10px 13px 10px;font-size:14px;font-weight:normal;line-height:14px;color:#919898} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs>li a span span{overflow:visible;border-top:none;margin-top:0;padding-top:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs>li:first-child{padding-left:15px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a{color:#fff} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs .tab-collapse-icon.primary{color:#fff;top:12px;right:11px;bottom:auto;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs .tab-collapse-icon.primary i{position:relative;display:block} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs{background:#f9f9f9} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li{margin-left:-19px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li:first-child{margin-left:0;padding-left:8px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a{padding:8px 16px 0 16px;font-weight:400;height:36px;color:#2b3e50;opacity:0.6;filter:alpha(opacity=60)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:8px 5px 9px 5px;font-size:14px;z-index:100;height:27px !important;background-color:transparent} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;background-color:white;width:15px;height:28px;top:0;z-index:100;display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before{left:-11px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{right:-11px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title span{height:18px;font-size:14px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a{opacity:1;filter:alpha(opacity=100)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title{background-color:white} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:after{display:block} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary{color:#808c8d} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary{color:white} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs{background:#e67e22} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a{color:white} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:after{background-color:white} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li.active a{color:#2b3e50} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs.has-tabs>div.tab-content{background:#f9f9f9} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>.tab-content>.tab-pane{padding:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-tabs>.tab-content>.tab-pane.padded-pane{padding:20px 20px 0 20px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields{position:relative;background:#e67e22;padding:18px 23px 0 23px;-webkit-transition:all 0.5s;transition:all 0.5s} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields:after{content:" ";display:table} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields:after{clear:both} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields label{text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]{background:transparent;border:none;color:#fff;font-size:35px;font-weight:100;height:auto;padding:0;-webkit-box-shadow:none;box-shadow:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]::-moz-placeholder{color:rgba(255,255,255,0.5);opacity:1} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]:-ms-input-placeholder{color:rgba(255,255,255,0.5)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]::-webkit-input-placeholder{color:rgba(255,255,255,0.5)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]:focus, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields input[type=text]:hover{background-color:rgba(255,255,255,0.1)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-group{padding-bottom:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-group.is-required>label:after{display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .tab-collapse-icon.primary{color:#fff;top:12px;right:11px;bottom:auto;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .tab-collapse-icon.primary i{position:relative;display:block} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .tab-collapse-icon.tabless{top:14px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields.collapsed{padding:5px 23px 0 10px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields.collapsed .tab-collapse-icon.tabless{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields.collapsed .form-group:not(.collapse-visible){display:none} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields.collapsed .form-buttons{margin-left:10px;padding-bottom:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .loading-indicator-container .loading-indicator{background-color:#e67e22;padding:0 0 0 30px;color:rgba(255,255,255,0.5);margin-top:1px;height:90%;font-size:12px;line-height:100%} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .loading-indicator-container .loading-indicator>span{left:-10px;top:18px} body.breadcrumb-fancy .control-breadcrumb, -.control-breadcrumb.breadcrumb-fancy{margin-bottom:0;background-color:#e67e22} +.control-breadcrumb.breadcrumb-fancy{margin-bottom:0;background-color:#d66908} body.breadcrumb-fancy .control-breadcrumb li, -.control-breadcrumb.breadcrumb-fancy li{background-color:#d35400;color:rgba(255,255,255,0.5)} +.control-breadcrumb.breadcrumb-fancy li{background-color:#b05606;color:rgba(255,255,255,0.5)} body.breadcrumb-fancy .control-breadcrumb li a, .control-breadcrumb.breadcrumb-fancy li a{opacity:.5;-webkit-transition:all 0.3s ease;transition:all 0.3s ease} body.breadcrumb-fancy .control-breadcrumb li a:hover, .control-breadcrumb.breadcrumb-fancy li a:hover{opacity:1} -body.breadcrumb-fancy .control-breadcrumb li:before, -.control-breadcrumb.breadcrumb-fancy li:before{border-left-color:#fff;opacity:.5} +body.breadcrumb-fancy .control-breadcrumb li:not(:last-child)::before, +.control-breadcrumb.breadcrumb-fancy li:not(:last-child)::before{border-left-color:#e67e22;opacity:.5} body.breadcrumb-fancy .control-breadcrumb li:after, -.control-breadcrumb.breadcrumb-fancy li:after{border-left-color:#d35400} +.control-breadcrumb.breadcrumb-fancy li:after{border-left-color:#b05606} body.breadcrumb-fancy .control-breadcrumb li:last-child, -.control-breadcrumb.breadcrumb-fancy li:last-child{background-color:#d35400} +.control-breadcrumb.breadcrumb-fancy li:last-child{background-color:#d66908} body.breadcrumb-fancy .control-breadcrumb li:last-child:before, -.control-breadcrumb.breadcrumb-fancy li:last-child:before{opacity:1;border-left-color:#d35400} -.fancy-layout .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} -.fancy-layout .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} -.fancy-layout .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .tab-collapse-icon.primary i{position:relative;display:block} -.fancy-layout .control-tabs.master-tabs, -.fancy-layout.control-tabs.master-tabs{overflow:hidden} -.fancy-layout .control-tabs.master-tabs:before, -.fancy-layout.control-tabs.master-tabs:before, -.fancy-layout .control-tabs.master-tabs:after, -.fancy-layout.control-tabs.master-tabs:after{top:13px;font-size:14px;color:rgba(255,255,255,0.35)} -.fancy-layout .control-tabs.master-tabs:before, -.fancy-layout.control-tabs.master-tabs:before{left:8px} -.fancy-layout .control-tabs.master-tabs:after, -.fancy-layout.control-tabs.master-tabs:after{right:8px} -.fancy-layout .control-tabs.master-tabs.scroll-before:before, -.fancy-layout.control-tabs.master-tabs.scroll-before:before{color:#fff} -.fancy-layout .control-tabs.master-tabs.scroll-after:after, -.fancy-layout.control-tabs.master-tabs.scroll-after:after{color:#fff} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container{background:#d35400;padding-left:20px;padding-right:20px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs{margin-left:-8px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li{margin-left:-5px;top:1px;padding-top:3px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close{top:14px;right:-3px;left:auto;z-index:110;font-family:sans-serif} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i{top:4px;right:1px;color:rgba(255,255,255,0.3) !important;font-style:normal;font-weight:bold;font-size:16px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover{color:#fff !important} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a{border-bottom:none;background:transparent;font-size:14px;color:rgba(255,255,255,0.35);padding:6px 0 0 24px!important;overflow:visible} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:12px 5px 0 5px;height:38px;font-size:14px;z-index:100;background-color:#b9530f} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;width:20px;display:block;height:37px;top:0;z-index:100;background-color:#b9530f} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before{left:-14px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{right:-14px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title span, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title span{border-top:none;padding:0;margin-top:0;overflow:visible} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a:before, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a:before{z-index:110;position:absolute;top:18px;left:22px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title{padding-left:18px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a{z-index:107;color:#fff} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i{color:#fff} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title{background-color:#e67e22;z-index:105} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before{z-index:107;background-color:#e67e22} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after{background-color:#e67e22;z-index:107} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i{top:5px;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f111";font-size:9px} -.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li:first-child, -.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li:first-child{margin-left:0} -.fancy-layout .control-tabs.master-tabs[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title, -.fancy-layout.control-tabs.master-tabs[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title{padding-right:10px} -.fancy-layout .control-tabs.master-tabs.has-tabs:before, -.fancy-layout.control-tabs.master-tabs.has-tabs:before, -.fancy-layout .control-tabs.master-tabs.has-tabs:after, -.fancy-layout.control-tabs.master-tabs.has-tabs:after{display:block} -.fancy-layout .control-tabs.secondary-tabs:before, -.fancy-layout.control-tabs.secondary-tabs:before{left:5px} -.fancy-layout .control-tabs.secondary-tabs:after, -.fancy-layout.control-tabs.secondary-tabs:after{right:5px} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs{background:#475354} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li{border-right:none;padding-right:0;margin-right:0} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li a, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 10px 13px 10px;font-size:14px;font-weight:normal;line-height:14px;color:#919898} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li a span span, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li a span span{overflow:visible;border-top:none;margin-top:0;padding-top:0} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li:first-child, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li:first-child{padding-left:15px} -.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a, -.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a{color:#fff} -.fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} -.fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon:hover, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} -.fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary i, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary i{position:relative;display:block} -.fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary{color:#fff;top:12px;right:11px;bottom:auto} -.fancy-layout .control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs{background:#f9f9f9} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li{margin-left:-19px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li:first-child, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li:first-child{margin-left:0;padding-left:8px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a{padding:8px 16px 0 16px;font-weight:400;height:36px;color:#2b3e50;opacity:0.6;filter:alpha(opacity=60)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:8px 5px 9px 5px;font-size:14px;z-index:100;height:27px !important;background-color:transparent} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;background-color:white;width:15px;height:28px;top:0;z-index:100;display:none} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before{left:-11px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{right:-11px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title span, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title span{height:18px;font-size:14px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a{opacity:1;filter:alpha(opacity=100)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title{background-color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:after{display:block} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary{color:#808c8d} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary{color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs{background:#e67e22} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a{color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:after{background-color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li.active a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li.active a{color:#2b3e50} -.fancy-layout .control-tabs.primary-tabs.master-area>div>ul.nav-tabs, -.fancy-layout.control-tabs.primary-tabs.master-area>div>ul.nav-tabs{-webkit-transition:background-color 0.5s;transition:background-color 0.5s;background:#e67e22} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs{background:#7f8c8d;margin-left:0 !important;margin-right:0 !important} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs:before, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs:before{display:none} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li{background:transparent;border-right:none;margin-right:-8px} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li:first-child, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li:first-child{margin-left:-5px} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 16px 0;font-size:14px;font-weight:400;color:#95a5a6} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title{background:#d5d9d8;border-top:none;padding:5px 5px 3px 5px} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after{background:#d5d9d8;border-width:0;top:0} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before{left:-20px} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after{right:-20px} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title span, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title span{border-width:0;vertical-align:top} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a{color:#808c8d} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a:before, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a:before{display:none} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title{background:#fafafa} -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, -.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:after, -.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:after{background:#fafafa} -.fancy-layout .control-tabs.primary-tabs>.tab-content>.tab-pane, -.fancy-layout.control-tabs.primary-tabs>.tab-content>.tab-pane{padding:20px 20px 0 20px} -.fancy-layout .control-tabs.primary-tabs>.tab-content>.tab-pane.pane-compact, -.fancy-layout.control-tabs.primary-tabs>.tab-content>.tab-pane.pane-compact{padding:0} -.fancy-layout .control-tabs.primary-tabs.collapsed, -.fancy-layout.control-tabs.primary-tabs.collapsed{display:none} -.fancy-layout .control-tabs.has-tabs>div.tab-content, -.fancy-layout.control-tabs.has-tabs>div.tab-content{background:#f9f9f9} -.fancy-layout .control-tabs>div.tab-content>div.tab-pane, -.fancy-layout.control-tabs>div.tab-content>div.tab-pane{padding:0} -.fancy-layout .control-tabs>div.tab-content>div.tab-pane.padded-pane, -.fancy-layout.control-tabs>div.tab-content>div.tab-pane.padded-pane{padding:20px 20px 0 20px} -.fancy-layout .form-tabless-fields{position:relative;background:#e67e22;padding:18px 23px 0 23px;-webkit-transition:all 0.5s;transition:all 0.5s} -.fancy-layout .form-tabless-fields:before, -.fancy-layout .form-tabless-fields:after{content:" ";display:table} -.fancy-layout .form-tabless-fields:after{clear:both} -.fancy-layout .form-tabless-fields label{text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:0} -.fancy-layout .form-tabless-fields input[type=text]{background:transparent;border:none;color:#fff;font-size:35px;font-weight:100;height:auto;padding:0;-webkit-box-shadow:none;box-shadow:none} -.fancy-layout .form-tabless-fields input[type=text]::-moz-placeholder{color:rgba(255,255,255,0.5);opacity:1} -.fancy-layout .form-tabless-fields input[type=text]:-ms-input-placeholder{color:rgba(255,255,255,0.5)} -.fancy-layout .form-tabless-fields input[type=text]::-webkit-input-placeholder{color:rgba(255,255,255,0.5)} -.fancy-layout .form-tabless-fields input[type=text]:focus, -.fancy-layout .form-tabless-fields input[type=text]:hover{background-color:rgba(255,255,255,0.1)} -.fancy-layout .form-tabless-fields .form-group{padding-bottom:0} -.fancy-layout .form-tabless-fields .form-group.is-required>label:after{display:none} -.fancy-layout .form-tabless-fields .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} -.fancy-layout .form-tabless-fields .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} -.fancy-layout .form-tabless-fields .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .form-tabless-fields .tab-collapse-icon.primary i{position:relative;display:block} -.fancy-layout .form-tabless-fields .tab-collapse-icon.tabless{top:14px} -.fancy-layout .form-tabless-fields.collapsed{padding:5px 23px 0 10px} -.fancy-layout .form-tabless-fields.collapsed .tab-collapse-icon.tabless{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .form-tabless-fields.collapsed .form-group:not(.collapse-visible){display:none} -.fancy-layout .form-tabless-fields.collapsed .form-buttons{margin-left:10px;padding-bottom:0} -.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator{background-color:#e67e22;padding:0 0 0 30px;color:rgba(255,255,255,0.5);margin-top:1px;height:90%;font-size:12px;line-height:100%} -.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator>span{left:-10px;top:18px} -.fancy-layout .form-buttons{-webkit-transition:all 0.5s;transition:all 0.5s;padding-top:14px;padding-bottom:5px} -.fancy-layout .form-buttons .btn{padding:0;margin-right:5px;margin-top:-6px;margin-right:30px;background:transparent;color:#fff;font-weight:normal;-webkit-box-shadow:none;box-shadow:none;opacity:0.5;filter:alpha(opacity=50);-webkit-transition:all 0.3s ease;transition:all 0.3s ease} -.fancy-layout .form-buttons .btn:hover{opacity:1;filter:alpha(opacity=100)} -.fancy-layout .form-buttons .btn:last-child{margin-right:0} -.fancy-layout .form-buttons .btn[class^="wn-icon-"]:before, -.fancy-layout .form-buttons .btn[class*=" wn-icon-"]:before, -.fancy-layout .form-buttons .btn[class^="oc-icon-"]:before, -.fancy-layout .form-buttons .btn[class*=" oc-icon-"]:before{opacity:1} -.fancy-layout form.oc-data-changed .btn.save, -.fancy-layout form.wn-data-changed .btn.save{opacity:1;filter:alpha(opacity=100)} -.fancy-layout .field-codeeditor{border:none !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.fancy-layout .field-codeeditor .editor-code{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.fancy-layout .field-richeditor{border:none;border-left:1px solid #d1d6d9 !important} -.fancy-layout .field-richeditor, -.fancy-layout .field-richeditor .fr-toolbar, -.fancy-layout .field-richeditor .fr-wrapper{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-top-right-radius:0;border-top-left-radius:0} -.fancy-layout .secondary-content-tabs .field-richeditor .fr-toolbar{background:white} -body.side-panel-not-fixed .fancy-layout .field-richeditor{border-left:none} -html.cssanimations .fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator>span{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;background-image:url('../../../system/assets/ui/images/loader-white.svg');background-size:20px 20px} -html.gecko .fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a{padding-top:13px} +.control-breadcrumb.breadcrumb-fancy li:last-child:before{opacity:1;border-left-color:#d66908} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized), +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized){-webkit-transition:all 0.5s;transition:all 0.5s;padding-top:14px;padding-bottom:5px} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn{padding:0;margin-right:5px;margin-top:-6px;margin-right:30px;background:transparent;color:#fff;font-weight:normal;-webkit-box-shadow:none;box-shadow:none;opacity:0.5;filter:alpha(opacity=50);-webkit-transition:all 0.3s ease;transition:all 0.3s ease} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn:hover, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn:hover{opacity:1;filter:alpha(opacity=100)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn:last-child, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn:last-child{margin-right:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn[class^="wn-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn[class^="wn-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn[class*=" wn-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn[class*=" wn-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn[class^="oc-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn[class^="oc-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .form-buttons:not(.normalized) .btn[class*=" oc-icon-"]:before, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .form-buttons:not(.normalized) .btn[class*=" oc-icon-"]:before{opacity:1} +.fancy-layout form[class$="-data-changed"] *:not(.nested-form)>.form-widget>.layout-row>.control-tabs .btn.save{opacity:1;filter:alpha(opacity=100)} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-codeeditor{border:none !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-codeeditor .editor-code{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor{border:none;border-left:1px solid #d1d6d9 !important} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor .fr-toolbar, +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor .fr-wrapper{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-top-right-radius:0;border-top-left-radius:0} +.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs.secondary-content-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor .fr-toolbar{background:white} +body.side-panel-not-fixed .fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor, +body.side-panel-not-fixed.fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.control-tabs>.tab-content>.tab-pane>.form-group>.field-richeditor{border-left:none} +html.cssanimations .fancy-layout *:not(.nested-form)>.form-widget>.layout-row>.form-tabless-fields .loading-indicator-container .loading-indicator>span{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;background-image:url('../../../system/assets/ui/images/loader-white.svg');background-size:20px 20px} .flyout-container>.flyout{overflow:hidden;width:0;left:0 !important;-webkit-transition:width 0.1s;transition:width 0.1s} .flyout-overlay{width:100%;height:100%;top:0;z-index:5000;position:absolute;background-color:rgba(0,0,0,0);-webkit-transition:background-color 0.3s;transition:background-color 0.3s} .flyout-toggle{position:absolute;top:20px;left:0;width:23px;height:25px;background:#2b3e50;cursor:pointer;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#bdc3c7;font-size:10px} diff --git a/modules/backend/assets/js/winter-min.js b/modules/backend/assets/js/winter-min.js index 41225f0d16..432b8fdfae 100644 --- a/modules/backend/assets/js/winter-min.js +++ b/modules/backend/assets/js/winter-min.js @@ -146,7 +146,7 @@ MediaManagerPopup.prototype.registerHandlers=function(){this.$popupRootElement.o this.$popupRootElement.one('shown.oc.popup',this.proxy(this.onPopupShown))} MediaManagerPopup.prototype.unregisterHandlers=function(){this.$popupElement.off('popupcommand',this.proxy(this.onPopupCommand)) this.$popupRootElement.off('popupcommand',this.proxy(this.onPopupCommand))} -MediaManagerPopup.prototype.show=function(){var data={bottomToolbar:this.options.bottomToolbar?1:0,cropAndInsertButton:this.options.cropAndInsertButton?1:0} +MediaManagerPopup.prototype.show=function(){var data={bottomToolbar:this.options.bottomToolbar?1:0,cropAndInsertButton:this.options.cropAndInsertButton?1:0,mode:this.options.mode||'all',} this.$popupRootElement.popup({extraData:data,size:'adaptive',adaptiveHeight:true,handler:this.options.alias+'::onLoadPopup'})} MediaManagerPopup.prototype.hide=function(){if(this.$popupElement)this.$popupElement.trigger('close.oc.popup')} MediaManagerPopup.prototype.getMediaManagerElement=function(){return this.$popupElement.find('[data-control="media-manager"]')} diff --git a/modules/backend/assets/less/layout/fancylayout.less b/modules/backend/assets/less/layout/fancylayout.less index c9af9d7d86..510fb5418b 100644 --- a/modules/backend/assets/less/layout/fancylayout.less +++ b/modules/backend/assets/less/layout/fancylayout.less @@ -1,700 +1,729 @@ -body.breadcrumb-fancy .control-breadcrumb, -.control-breadcrumb.breadcrumb-fancy { - margin-bottom: 0; +// +// FANCY LAYOUT +// Applies branding colours to the Backend UI. +// + +// +// --- TABS +// + +// Master tabs +body.fancy-layout .master-tabs.control-tabs, +.master-tabs.control-tabs.fancy-layout { + overflow: hidden; + + &:before, &:after { + top: 13px; + font-size: 14px; + color: @color-fancy-master-tabs-inactive-text; + } + &:before { left: 8px; } + &:after { right: 8px; } + &.scroll-before:before { color: @color-fancy-master-tabs-active-text; } + &.scroll-after:after { color: @color-fancy-master-tabs-active-text; } + + > div > div.tabs-container { + background: @color-fancy-master-tabs-bg; + padding-left: 20px; + padding-right: 20px; + + > ul.nav-tabs { + margin-left: -8px; + > li { + margin-left: -5px; + top: 1px; + padding-top: 3px; + + span.tab-close { + top: 14px; + right: -3px; + left: auto; + z-index: 110; + font-family: sans-serif; + + i { + top: 4px; + right: 1px; + color: rgba(255, 255, 255, 0.3) !important; + font-style: normal; + font-weight: bold; + font-size: 16px; + + &:hover { color: @color-fancy-master-tabs-active-text !important; } + } + } - background-color: @color-fancy-form-tabless-fields-bg; + a { + border-bottom: none; + background: transparent; + font-size: 14px; + color: @color-fancy-master-tabs-inactive-text; + padding: 6px 0 0 24px!important; + overflow: visible; + + > span.title { + position: relative; + display: inline-block; + padding: 12px 5px 0 5px; + height: 38px; + font-size: 14px; + z-index: 100; + background-color: @color-fancy-form-inactive-tab; + + &:before, &:after { + content: ' '; + position: absolute; + width: 20px; + display: block; + height: 37px; + top: 0; + z-index: 100; + background-color: @color-fancy-form-inactive-tab; + } - li { - background-color: @color-fancy-master-tabs-bg; - color: rgba(255,255,255, .5); + &:before { + left: -14px; + .border-radius(8px 0 0 0); + .transform( ~'skewX(-20deg)'); - a { - opacity: .5; - .transition(all 0.3s ease); - &:hover { - opacity: 1; + } - } - } + &:after { + right: -14px; + .border-radius(0 8px 0 0); + .transform( ~'skewX(20deg)'); + } - &:before { - border-left-color: @color-fancy-form-text; - opacity: .5; - } + span { + border-top: none; + padding: 0; + margin-top: 0; + overflow: visible; + } + } - &:after { - border-left-color: @color-fancy-master-tabs-bg; - } + &:before { + z-index: 110; + position: absolute; + top: 18px; + left: 22px; + } - &:last-child { - background-color: @color-fancy-master-tabs-bg; + &[class*=icon] > span.title { + padding-left: 18px; + } + } - &:before { - opacity: 1; - border-left-color: @color-fancy-master-tabs-bg; + &.active { + a { + z-index: 107; + color: @color-fancy-master-tabs-active-text; + } + span.tab-close i { color: @color-fancy-master-tabs-active-text; } + + a > span.title { + background-color: @color-fancy-form-tabless-fields-bg; + z-index: 105; + &:before { + z-index: 107; + background-color: @color-fancy-form-tabless-fields-bg; + } + &:after { + background-color: @color-fancy-form-tabless-fields-bg; + z-index: 107; + } + } + } + + &[data-modified] { + span.tab-close i { + top: 5px; + .hide-text(); + + &:before { + .icon(@circle); + font-size: 9px; + } + } + } + + &:first-child { + margin-left: 0; + } } } } -} -.fancy-layout { - // - // Fancy form tabs - // + &[data-closable] { + > div > div.tabs-container { + > ul.nav-tabs { + > li { + a > span.title { + padding-right: 10px; + } + } + } + } + } - .tab-collapse-icon { - position: absolute; - display: block; - text-decoration: none; - outline: none; - .opacity(0.6); - .transition(all 0.3s); - font-size: 12px; - color: @color-fancy-master-tabs-active-text; - right: 11px; + &.has-tabs { + &:before, &:after {display: block;} + } - &:hover { - text-decoration: none; - .opacity(1); + &.has-tabs { + > div.tab-content { + background: @body-bg; } + } - &.primary { - color: @color-fancy-secondary-tabs-bg; - bottom: -25px; - z-index: 100; - .scaleAxes(1, -1); + > .tab-content > .tab-pane { + padding: 0; - i { - position: relative; - display: block; - } + &.padded-pane { + padding: @padding-standard @padding-standard 0 @padding-standard; } } +} - .control-tabs, &.control-tabs { - &.master-tabs { - overflow: hidden; - - &:before, &:after { - top: 13px; - font-size: 14px; - color: @color-fancy-master-tabs-inactive-text; - } - &:before { left: 8px; } - &:after { right: 8px; } - &.scroll-before:before { color: @color-fancy-master-tabs-active-text; } - &.scroll-after:after { color: @color-fancy-master-tabs-active-text; } - - > div > div.tabs-container { - background: @color-fancy-master-tabs-bg; - padding-left: 20px; - padding-right: 20px; - - > ul.nav-tabs { - margin-left: -8px; - > li { - margin-left: -5px; - top: 1px; - padding-top: 3px; - - span.tab-close { - top: 14px; - right: -3px; - left: auto; - z-index: 110; - font-family: sans-serif; - - i { - top: 4px; - right: 1px; - color: rgba(255, 255, 255, 0.3) !important; - font-style: normal; - font-weight: bold; - font-size: 16px; - - &:hover { color: @color-fancy-master-tabs-active-text !important; } - } - } +// Primary Tabs +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs.primary-tabs, +*:not(.nested-form) > .form-widget > .layout-row > .control-tabs.fancy-layout.primary-tabs { + &.master-area { + > div > ul.nav-tabs { + .transition(background-color 0.5s); + background: @color-fancy-form-tabless-fields-bg; + } + } - a { - border-bottom: none; - background: transparent; - font-size: 14px; - color: @color-fancy-master-tabs-inactive-text; - padding: 6px 0 0 24px!important; - overflow: visible; + > div > ul.nav-tabs { + background: @color-fancy-primary-tabs-bg; + margin-left: 0!important; + margin-right: 0!important; - > span.title { - position: relative; - display: inline-block; - padding: 12px 5px 0 5px; - height: 38px; - font-size: 14px; - z-index: 100; - background-color: @color-fancy-form-inactive-tab; - - &:before, &:after { - content: ' '; - position: absolute; - width: 20px; - display: block; - height: 37px; - top: 0; - z-index: 100; - background-color: @color-fancy-form-inactive-tab; - } - - &:before { - left: -14px; - .border-radius(8px 0 0 0); - .transform( ~'skewX(-20deg)'); - - } - - &:after { - right: -14px; - .border-radius(0 8px 0 0); - .transform( ~'skewX(20deg)'); - } - - span { - border-top: none; - padding: 0; - margin-top: 0; - overflow: visible; - } - } + &:before { + display: none; + } - &:before { - z-index: 110; - position: absolute; - top: 18px; - left: 22px; - } + > li { + background: transparent; + border-right: none; + margin-right: -8px; - &[class*=icon] > span.title { - padding-left: 18px; - } - } + &:first-child { + margin-left: -5px; + } - &.active { - a { - z-index: 107; - color: @color-fancy-master-tabs-active-text; - } - span.tab-close i { color: @color-fancy-master-tabs-active-text; } - - a > span.title { - background-color: @color-fancy-form-tabless-fields-bg; - z-index: 105; - &:before { - z-index: 107; - background-color: @color-fancy-form-tabless-fields-bg; - } - &:after { - background-color: @color-fancy-form-tabless-fields-bg; - z-index: 107; - } - } - } + a { + background: transparent; + border: none; + padding: 12px 16px 0px; + font-size: 14px; + font-weight: 400; + color: @color-fancy-primary-tabs-inactive-text; + + span.title { + background: @color-fancy-primary-tabs-inactive-bg; + border-top: none; + padding: 5px 5px 3px 5px; + + &:before, &:after { + background: @color-fancy-primary-tabs-inactive-bg; + border-width: 0; + top: 0; + } - &[data-modified] { - span.tab-close i { - top: 5px; - .hide-text(); + &:before { + left: -20px; + } - &:before { - .icon(@circle); - font-size: 9px; - } - } - } + &:after { + right: -20px; + } - &:first-child { - margin-left: 0; - } + span { + border-width: 0; + vertical-align: top; } } } - &[data-closable] { - > div > div.tabs-container { - > ul.nav-tabs { - > li { - a > span.title { - padding-right: 10px; - } + &.active { + a { + color: @color-fancy-primary-tabs-active-text; + &:before { + display: none; + } + + span.title { + background: @color-fancy-primary-tabs-active-bg; + + &:before, &:after { + background: @color-fancy-primary-tabs-active-bg; } } } } - - &.has-tabs { - &:before, &:after {display: block;} - } } + } - &.secondary-tabs { - // Target horizontal scroll indicators - &:before { - left: 5px; - } - &:after { - right: 5px; - } - > div > ul.nav-tabs { - background: @color-fancy-secondary-tabs-bg; - > li { - border-right: none; - padding-right: 0; - margin-right: 0; - a { - background: transparent; - border: none; - padding: 12px 10px 13px 10px; - font-size: 14px; - font-weight: normal; - line-height: 14px; - color: @color-fancy-secondary-tabs-inactive-text; + > .tab-content > .tab-pane { + padding: @padding-standard @padding-standard 0 @padding-standard; - span { - span { - overflow: visible; - border-top: none; - margin-top: 0; - padding-top: 0; - } - } - } + &.pane-compact { + padding: 0; + } + } - &:first-child { - padding-left: 15px; // Will cause issues when first child is hidden - } + &.collapsed { + display: none; + } - &.active { - a {color: @color-fancy-secondary-tabs-active-text;} + &.has-tabs { + > div.tab-content { + background: @body-bg; + } + } +} + +// Secondary tabs +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs.secondary-tabs { + // Target horizontal scroll indicators + &:before { + left: 5px; + } + &:after { + right: 5px; + } + > div > ul.nav-tabs { + background: @color-fancy-secondary-tabs-bg; + > li { + border-right: none; + padding-right: 0; + margin-right: 0; + a { + background: transparent; + border: none; + padding: 12px 10px 13px 10px; + font-size: 14px; + font-weight: normal; + line-height: 14px; + color: @color-fancy-secondary-tabs-inactive-text; + + span { + span { + overflow: visible; + border-top: none; + margin-top: 0; + padding-top: 0; } } } - .tab-collapse-icon { - .tab-collapse-icon(); + &:first-child { + padding-left: 15px; // Will cause issues when first child is hidden + } - &.primary { - color: @color-fancy-master-tabs-active-text; - top: 12px; - right: 11px; - bottom: auto; - } + &.active { + a {color: @color-fancy-secondary-tabs-active-text;} } + } + } - &.primary-collapsed { - .tab-collapse-icon.primary { - .scaleAxes(1, 1); - } + .tab-collapse-icon { + position: absolute; + display: block; + text-decoration: none; + outline: none; + .opacity(0.6); + .transition(all 0.3s); + font-size: 12px; + color: @color-fancy-master-tabs-active-text; + right: 11px; + + &:hover { + text-decoration: none; + .opacity(1); + } + + &.primary { + color: @color-fancy-master-tabs-active-text; + top: 12px; + right: 11px; + bottom: auto; + z-index: 100; + .scaleAxes(1, -1); + + i { + position: relative; + display: block; } + } + } + + &.primary-collapsed { + .tab-collapse-icon.primary { + .scaleAxes(1, 1); + } + } - &.secondary-content-tabs { - > div > ul.nav-tabs { - background: @body-bg; + &.secondary-content-tabs { + > div > ul.nav-tabs { + background: @body-bg; - > li { - margin-left: -19px; + > li { + margin-left: -19px; - &:first-child { - margin-left: 0; - padding-left: 8px; + &:first-child { + margin-left: 0; + padding-left: 8px; + } + + a { + padding: 8px 16px 0 16px; + font-weight: 400; + height: 36px; + color: #2b3e50; + .opacity(0.6); + + > span.title { + position: relative; + display: inline-block; + padding: 8px 5px 9px 5px; + font-size: 14px; + z-index: 100; + height: 27px!important; + background-color: transparent; + + &:before, &:after { + content: ' '; + position: absolute; + background-color: white; + width: 15px; + height: 28px; + top: 0; + z-index: 100; + display: none; } - a { - padding: 8px 16px 0 16px; - font-weight: 400; - height: 36px; - color: #2b3e50; - .opacity(0.6); - - > span.title { - position: relative; - display: inline-block; - padding: 8px 5px 9px 5px; - font-size: 14px; - z-index: 100; - height: 27px!important; - background-color: transparent; - - &:before, &:after { - content: ' '; - position: absolute; - background-color: white; - width: 15px; - height: 28px; - top: 0; - z-index: 100; - display: none; - } - - &:before { - left: -11px; - .border-radius(8px 0 0 0); - .transform( ~'skewX(-20deg)'); - } - - &:after { - right: -11px; - .border-radius(0 8px 0 0); - .transform( ~'skewX(20deg)'); - } - - span { - height: 18px; - font-size: 14px; - } - } + &:before { + left: -11px; + .border-radius(8px 0 0 0); + .transform( ~'skewX(-20deg)'); } - &.active a { - .opacity(1); + &:after { + right: -11px; + .border-radius(0 8px 0 0); + .transform( ~'skewX(20deg)'); + } - > span.title { - background-color: white; - &:before, &:after { - display: block; - } - } + span { + height: 18px; + font-size: 14px; } } } - .tab-collapse-icon.primary { - color: #808c8d; - } - - &.primary-collapsed { - .tab-collapse-icon.primary { - color: white; - } - - > div > ul.nav-tabs { - background: @color-fancy-form-tabless-fields-bg; - - > li { - a { - color: white; + &.active a { + .opacity(1); - > span.title { - &:before, &:after { - background-color: white; - } - } - } - - &.active a { - color: #2b3e50; - } + > span.title { + background-color: white; + &:before, &:after { + display: block; } } } } } - &.primary-tabs { + .tab-collapse-icon.primary { + color: #808c8d; + } - &.master-area { - > div > ul.nav-tabs { - .transition(background-color 0.5s); - background: @color-fancy-form-tabless-fields-bg; - } + &.primary-collapsed { + .tab-collapse-icon.primary { + color: white; } > div > ul.nav-tabs { - background: @color-fancy-primary-tabs-bg; - margin-left: 0!important; - margin-right: 0!important; - - &:before { - display: none; - } + background: @color-fancy-form-tabless-fields-bg; > li { - background: transparent; - border-right: none; - margin-right: -8px; - - &:first-child { - margin-left: -5px; - } - a { - background: transparent; - border: none; - padding: 12px 16px 0px; - font-size: 14px; - font-weight: 400; - color: @color-fancy-primary-tabs-inactive-text; - - span.title { - background: @color-fancy-primary-tabs-inactive-bg; - border-top: none; - padding: 5px 5px 3px 5px; + color: white; + > span.title { &:before, &:after { - background: @color-fancy-primary-tabs-inactive-bg; - border-width: 0; - top: 0; - } - - &:before { - left: -20px; - } - - &:after { - right: -20px; - } - - span { - border-width: 0; - vertical-align: top; + background-color: white; } } } - &.active { - a { - color: @color-fancy-primary-tabs-active-text; - &:before { - display: none; - } - - span.title { - background: @color-fancy-primary-tabs-active-bg; - - &:before, &:after { - background: @color-fancy-primary-tabs-active-bg; - } - } - } + &.active a { + color: #2b3e50; } } } + } + } - > .tab-content > .tab-pane { - padding: @padding-standard @padding-standard 0 @padding-standard; + &.has-tabs { + > div.tab-content { + background: @body-bg; + } + } - &.pane-compact { - padding: 0; - } - } + > .tab-content > .tab-pane { + padding: 0; - &.collapsed { - display: none; - } + &.padded-pane { + padding: @padding-standard @padding-standard 0 @padding-standard; } + } +} - &.has-tabs { - > div.tab-content { - background: @body-bg; - } +// Tabless (outside) fields +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .form-tabless-fields { + .clearfix(); + position: relative; + background: @color-fancy-form-tabless-fields-bg; + padding: 18px 23px 0 23px; + .transition(all 0.5s); + + label { + text-transform: uppercase; + color: @color-fancy-form-label; + margin-bottom: 0; + } + + input[type=text] { + background: transparent; + border: none; + color: @color-fancy-form-text; + font-size: 35px; + font-weight: 100; + height: auto; + padding: 0; + .placeholder(@color-fancy-form-placeholder); + .box-shadow(none); + + &:focus, &:hover { + background-color: rgba(255, 255, 255, 0.1); } + } - > div.tab-content { - > div.tab-pane { - padding: 0; + .form-group { + padding-bottom: 0; - &.padded-pane { - padding: @padding-standard @padding-standard 0 @padding-standard; - } + &.is-required { + > label:after { + display: none; } } } - // - // Forms and buttons - // - - .form-tabless-fields { - .clearfix(); - position: relative; - background: @color-fancy-form-tabless-fields-bg; - padding: 18px 23px 0 23px; - .transition(all 0.5s); + .tab-collapse-icon { + position: absolute; + display: block; + text-decoration: none; + outline: none; + .opacity(0.6); + .transition(all 0.3s); + font-size: 12px; + color: @color-fancy-master-tabs-active-text; + right: 11px; - label { - text-transform: uppercase; - color: @color-fancy-form-label; - margin-bottom: 0; + &:hover { + text-decoration: none; + .opacity(1); } - input[type=text] { - background: transparent; - border: none; - color: @color-fancy-form-text; - font-size: 35px; - font-weight: 100; - height: auto; - padding: 0; - .placeholder(@color-fancy-form-placeholder); - .box-shadow(none); + &.primary { + color: @color-fancy-master-tabs-active-text; + top: 12px; + right: 11px; + bottom: auto; + z-index: 100; + .scaleAxes(1, -1); - &:focus, &:hover { - background-color: rgba(255, 255, 255, 0.1); + i { + position: relative; + display: block; } } - .form-group { - padding-bottom: 0; - - &.is-required { - > label:after { - display: none; - } - } + &.tabless { + top: 14px; } + } + + &.collapsed { + padding: 5px 23px 0 10px; .tab-collapse-icon { - .tab-collapse-icon(); &.tabless { - top: 14px; + .scaleAxes(1, -1); } } - &.collapsed { - padding: 5px 23px 0 10px; - - .tab-collapse-icon { - &.tabless { - .scaleAxes(1, -1); - } - } - - .form-group:not(.collapse-visible) { - display: none; - } + .form-group:not(.collapse-visible) { + display: none; + } - .form-buttons { - margin-left: 10px; - padding-bottom: 0; - } + .form-buttons { + margin-left: 10px; + padding-bottom: 0; } + } - .loading-indicator-container { - .loading-indicator { - background-color: @color-fancy-form-tabless-fields-bg; - padding: 0 0 0 30px; - color: @color-fancy-form-label; - margin-top: 1px; - height: 90%; - font-size: 12px; - line-height: 100%; - > span { - left: -10px; - top: 18px; - } + .loading-indicator-container { + .loading-indicator { + background-color: @color-fancy-form-tabless-fields-bg; + padding: 0 0 0 30px; + color: @color-fancy-form-label; + margin-top: 1px; + height: 90%; + font-size: 12px; + line-height: 100%; + > span { + left: -10px; + top: 18px; } } } +} - .form-buttons { - .transition(all 0.5s); - padding-top: 14px; - padding-bottom: 5px; +// +// --- FANCY BREADCRUMBS +// - .btn { - padding: 0; - margin-right: 5px; - margin-top: -6px; - margin-right: 30px; - background: transparent; - color: @color-fancy-master-tabs-active-text; - font-weight: normal; - .box-shadow(none); +body.breadcrumb-fancy .control-breadcrumb, +.control-breadcrumb.breadcrumb-fancy { + margin-bottom: 0; - .opacity(0.5); - .transition(all 0.3s ease); + background-color: mix(black, saturate(@color-fancy-form-tabless-fields-bg, 20%), 16%); - &:hover { - .opacity(1); - } + li { + background-color: mix(black, saturate(@color-fancy-form-tabless-fields-bg, 20%), 31%); + color: rgba(255,255,255, .5); - &:last-child { - margin-right: 0; - } + a { + opacity: .5; + .transition(all 0.3s ease); + &:hover { + opacity: 1; - &[class^="wn-icon-"], - &[class*=" wn-icon-"], - &[class^="oc-icon-"], - &[class*=" oc-icon-"] { - &:before { - opacity: 1; - } } } - } - form.oc-data-changed, - form.wn-data-changed { - .btn.save { - .opacity(1); + &:not(:last-child)::before { + border-left-color: @color-fancy-form-tabless-fields-bg; + opacity: .5; } - } - // - // Code editor - // + &:after { + border-left-color: mix(black, saturate(@color-fancy-form-tabless-fields-bg, 20%), 31%); + } - .field-codeeditor { - border: none !important; - .border-radius(0); + &:last-child { + background-color: mix(black, saturate(@color-fancy-form-tabless-fields-bg, 20%), 16%); - .editor-code { - .border-radius(0); + &:before { + opacity: 1; + border-left-color: mix(black, saturate(@color-fancy-form-tabless-fields-bg, 20%), 16%); + } } } +} - // - // Rich editor - // +// +// --- FORM BUTTONS +// + +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs .form-buttons:not(.normalized), +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .form-tabless-fields .form-buttons:not(.normalized) { + .transition(all 0.5s); + padding-top: 14px; + padding-bottom: 5px; + + .btn { + padding: 0; + margin-right: 5px; + margin-top: -6px; + margin-right: 30px; + background: transparent; + color: @color-fancy-master-tabs-active-text; + font-weight: normal; + .box-shadow(none); - .field-richeditor { - border: none; - border-left: 1px solid @color-form-field-border !important; + .opacity(0.5); + .transition(all 0.3s ease); - &, .fr-toolbar, .fr-wrapper { - .border-radius(0); - .border-top-radius(0); + &:hover { + .opacity(1); } - } - .secondary-content-tabs .field-richeditor { - .fr-toolbar { - background: white; + &:last-child { + margin-right: 0; + } + + &[class^="wn-icon-"], + &[class*=" wn-icon-"], + &[class^="oc-icon-"], + &[class*=" oc-icon-"] { + &:before { + opacity: 1; + } } } } -body.side-panel-not-fixed { - .fancy-layout { - .field-richeditor { - border-left: none; - } +.fancy-layout form[class$="-data-changed"] *:not(.nested-form) > .form-widget > .layout-row > .control-tabs .btn.save { + .opacity(1); +} + +// +// --- FIELDS AND WIDGETS +// + +// Code editor +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs > .tab-content > .tab-pane > .form-group > .field-codeeditor { + border: none !important; + .border-radius(0); + + .editor-code { + .border-radius(0); } } -html.cssanimations { - .fancy-layout { - .form-tabless-fields { - .loading-indicator-container { - .loading-indicator > span { - .animation(spin 1s linear infinite); - background-image: url('../../../system/assets/ui/images/loader-white.svg'); - background-size: 20px 20px; - } - } - } +// Rich editor +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs > .tab-content > .tab-pane > .form-group > .field-richeditor { + border: none; + border-left: 1px solid @color-form-field-border !important; + + &, .fr-toolbar, .fr-wrapper { + .border-radius(0); + .border-top-radius(0); } } -html.gecko { - .fancy-layout .control-tabs.secondary-tabs > div > ul.nav-tabs > li.active a { - padding-top: 13px; +// Rich editor in a secondary content tab +.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs.secondary-content-tabs > .tab-content > .tab-pane > .form-group > .field-richeditor { + .fr-toolbar { + background: white; } } + +// Rich editor when the side panel is not fixed +body.side-panel-not-fixed .fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs > .tab-content > .tab-pane > .form-group > .field-richeditor, +body.side-panel-not-fixed.fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .control-tabs > .tab-content > .tab-pane > .form-group > .field-richeditor { + border-left: none; +} + +// Loading indicator +html.cssanimations .fancy-layout *:not(.nested-form) > .form-widget > .layout-row > .form-tabless-fields .loading-indicator-container .loading-indicator > span { + .animation(spin 1s linear infinite); + background-image: url('../../../system/assets/ui/images/loader-white.svg'); + background-size: 20px 20px; +} diff --git a/modules/backend/assets/ui/js/ajax/Handler.js b/modules/backend/assets/ui/js/ajax/Handler.js index 083ae3d558..8cd2577c62 100644 --- a/modules/backend/assets/ui/js/ajax/Handler.js +++ b/modules/backend/assets/ui/js/ajax/Handler.js @@ -1,3 +1,5 @@ +import { delegate } from 'jquery-events-to-dom-events'; + /** * Backend AJAX handler. * @@ -36,6 +38,12 @@ export default class Handler extends Snowboard.Singleton { return; } + // Add global event for rendering in Snowboard + delegate('render'); + document.addEventListener('$render', () => { + this.snowboard.globalEvent('render'); + }); + // Add "render" event for backwards compatibility window.jQuery(document).trigger('render'); } diff --git a/modules/backend/assets/ui/js/build/backend.js b/modules/backend/assets/ui/js/build/backend.js index e334a416fa..133d5e72d2 100644 --- a/modules/backend/assets/ui/js/build/backend.js +++ b/modules/backend/assets/ui/js/build/backend.js @@ -1 +1 @@ -!function(){"use strict";class e extends Snowboard.Singleton{listens(){return{ready:"ready",ajaxFetchOptions:"ajaxFetchOptions",ajaxUpdateComplete:"ajaxUpdateComplete"}}ready(){window.jQuery&&window.jQuery(document).trigger("render")}addPrefilter(){window.jQuery&&window.jQuery.ajaxPrefilter((e=>{this.hasToken()&&(e.headers||(e.headers={}),e.headers["X-CSRF-TOKEN"]=this.getToken())}))}ajaxFetchOptions(e){this.hasToken()&&(e.headers["X-CSRF-TOKEN"]=this.getToken())}ajaxUpdateComplete(){window.jQuery&&window.jQuery(document).trigger("render")}hasToken(){const e=document.querySelector('meta[name="csrf-token"]');return!!e&&!!e.hasAttribute("content")}getToken(){return document.querySelector('meta[name="csrf-token"]').getAttribute("content")}}if(void 0===window.Snowboard)throw new Error("Snowboard must be loaded in order to use the Backend UI.");(t=>{t.addPlugin("backend.ajax.handler",e),t["backend.ajax.handler"]().addPrefilter(),window.AssetManager={load:(e,n)=>{t.assetLoader().load(e).then((()=>{n&&"function"==typeof n&&n()}))}},window.assetManager=window.AssetManager})(window.Snowboard)}(); \ No newline at end of file +"use strict";(self.webpackChunk_wintercms_wn_backend_module=self.webpackChunk_wintercms_wn_backend_module||[]).push([[147],{613:function(e,t,n){var i=n(471),r=n(341);class s extends Snowboard.Singleton{listens(){return{ready:"ready",ajaxFetchOptions:"ajaxFetchOptions",ajaxUpdateComplete:"ajaxUpdateComplete"}}ready(){window.jQuery&&((0,r.c)("render"),document.addEventListener("$render",(()=>{this.snowboard.globalEvent("render")})),window.jQuery(document).trigger("render"))}addPrefilter(){window.jQuery&&window.jQuery.ajaxPrefilter((e=>{this.hasToken()&&(e.headers||(e.headers={}),e.headers["X-CSRF-TOKEN"]=this.getToken())}))}ajaxFetchOptions(e){this.hasToken()&&(e.headers["X-CSRF-TOKEN"]=this.getToken())}ajaxUpdateComplete(){window.jQuery&&window.jQuery(document).trigger("render")}hasToken(){const e=document.querySelector('meta[name="csrf-token"]');return!!e&&!!e.hasAttribute("content")}getToken(){return document.querySelector('meta[name="csrf-token"]').getAttribute("content")}}class a extends Snowboard.PluginBase{construct(e,t){if(e instanceof Snowboard.PluginBase==!1)throw new Error("Event handling can only be applied to Snowboard classes.");if(!t)throw new Error("Event prefix is required.");this.instance=e,this.eventPrefix=t,this.events=[]}on(e,t){this.events.push({event:e,callback:t})}off(e,t){this.events=this.events.filter((n=>n.event!==e||n.callback!==t))}once(e,t){var n=this;const i=this.events.push({event:e,callback:function(){t(...arguments),n.events.splice(i-1,1)}})}fire(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;it.event===e));let s=!1;r.forEach((e=>{s||!1===e.callback(...n)&&(s=!0)})),s||this.snowboard.globalEvent(`${this.eventPrefix}.${e}`,...n)}firePromise(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;it.event===e)),s=r.filter((e=>null!==e),r.map((e=>e.callback(...n))));Promise.all(s).then((()=>{this.snowboard.globalPromiseEvent(`${this.eventPrefix}.${e}`,...n)}))}}class o extends Snowboard.Singleton{construct(){this.registeredWidgets=[],this.elements=[],this.events={mutate:e=>this.onMutation(e)},this.observer=null}listens(){return{ready:"onReady",render:"onRender",ajaxUpdate:"onAjaxUpdate"}}register(e,t,n){this.registeredWidgets.push({control:e,widget:t,callback:n})}unregister(e){this.registeredWidgets=this.registeredWidgets.filter((t=>t.control!==e))}onReady(){this.initializeWidgets(document.body),this.observer||(this.observer=new MutationObserver(this.events.mutate),this.observer.observe(document.body,{childList:!0,subtree:!0}))}onRender(){this.initializeWidgets(document.body)}onAjaxUpdate(e){this.initializeWidgets(e)}initializeWidgets(e){this.registeredWidgets.forEach((t=>{const n=e.querySelectorAll(`[data-control="${t.control}"]:not([data-widget-initialized])`);n.length&&n.forEach((e=>{if(e.dataset.widgetInitialized)return;const n=this.snowboard[t.widget](e);this.elements.push({element:e,instance:n}),e.dataset.widgetInitialized=!0,this.snowboard.globalEvent("backend.widget.initialized",e,n),"function"==typeof t.callback&&t.callback(n,e)}))}))}getWidget(e){const t=this.elements.find((t=>t.element===e));return t?t.instance:null}onMutation(e){const t=e.filter((e=>e.removedNodes.length)).map((e=>Array.from(e.removedNodes))).flat();t.length&&t.forEach((e=>{const t=this.elements.filter((t=>e.contains(t.element)));t.length&&t.forEach((e=>{e.instance.destruct(),this.elements=this.elements.filter((t=>t!==e))}))}))}}if(void 0===window.Snowboard)throw new Error("Snowboard must be loaded in order to use the Backend UI.");(e=>{e.addPlugin("backend.ajax.handler",s),e.addPlugin("backend.ui.eventHandler",a),e.addPlugin("backend.ui.widgetHandler",o),e["backend.ajax.handler"]().addPrefilter(),window.AssetManager={load:(t,n)=>{e.assetLoader().load(t).then((()=>{n&&"function"==typeof n&&n()}))}},window.assetManager=window.AssetManager})(window.Snowboard),window.Vue=i}},function(e){e.O(0,[101],(function(){return t=613,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/modules/backend/assets/ui/js/build/manifest.js b/modules/backend/assets/ui/js/build/manifest.js new file mode 100644 index 0000000000..2de8a0b779 --- /dev/null +++ b/modules/backend/assets/ui/js/build/manifest.js @@ -0,0 +1 @@ +!function(){"use strict";var n,e={},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={id:n,exports:{}};return e[n](i,i.exports,t),i.exports}t.m=e,n=[],t.O=function(e,r,o,i){if(!r){var u=1/0;for(l=0;l=i)&&Object.keys(t.O).every((function(n){return t.O[n](r[c])}))?r.splice(c--,1):(f=!1,i0&&n[l-1][2]>i;l--)n[l]=n[l-1];n[l]=[r,o,i]},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,{a:e}),e},t.d=function(n,e){for(var r in e)t.o(e,r)&&!t.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:e[r]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},function(){var n={207:0};t.O.j=function(e){return 0===n[e]};var e=function(e,r){var o,i,u=r[0],f=r[1],c=r[2],a=0;if(u.some((function(e){return 0!==n[e]}))){for(o in f)t.o(f,o)&&(t.m[o]=f[o]);if(c)var l=c(t)}for(e&&e(r);a{const n=e.__vccOpts||e;for(const[e,r]of t)n[e]=r;return n}},471:function(e,t,n){n.r(t),n.d(t,{BaseTransition:function(){return lr},Comment:function(){return Yo},EffectScope:function(){return le},Fragment:function(){return Jo},KeepAlive:function(){return _r},ReactiveEffect:function(){return xe},Static:function(){return Qo},Suspense:function(){return Hn},Teleport:function(){return qo},Text:function(){return Zo},Transition:function(){return Bi},TransitionGroup:function(){return rc},VueElement:function(){return Pi},callWithAsyncErrorHandling:function(){return tn},callWithErrorHandling:function(){return en},camelize:function(){return Y},capitalize:function(){return ee},cloneVNode:function(){return bs},compatUtils:function(){return hi},compile:function(){return Tf},computed:function(){return Gs},createApp:function(){return $c},createBlock:function(){return ls},createCommentVNode:function(){return xs},createElementBlock:function(){return cs},createElementVNode:function(){return ms},createHydrationRenderer:function(){return Bo},createPropsRestProxy:function(){return ri},createRenderer:function(){return Lo},createSSRApp:function(){return Fc},createSlots:function(){return Zr},createStaticVNode:function(){return Ss},createTextVNode:function(){return _s},createVNode:function(){return gs},customRef:function(){return qt},defineAsyncComponent:function(){return vr},defineComponent:function(){return mr},defineCustomElement:function(){return Ri},defineEmits:function(){return Zs},defineExpose:function(){return Ys},defineProps:function(){return Js},defineSSRCustomElement:function(){return Oi},devtools:function(){return xn},effect:function(){return we},effectScope:function(){return ue},getCurrentInstance:function(){return Ps},getCurrentScope:function(){return fe},getTransitionRawChildren:function(){return hr},guardReactiveProps:function(){return ys},h:function(){return si},handleError:function(){return nn},hydrate:function(){return Ic},initCustomFormatter:function(){return li},initDirectivesForSSR:function(){return Bc},inject:function(){return Zn},isMemoSame:function(){return ai},isProxy:function(){return Ot},isReactive:function(){return Tt},isReadonly:function(){return Nt},isRef:function(){return Vt},isRuntimeOnly:function(){return Ds},isShallow:function(){return Rt},isVNode:function(){return us},markRaw:function(){return Pt},mergeDefaults:function(){return ni},mergeProps:function(){return Es},nextTick:function(){return dn},normalizeClass:function(){return f},normalizeProps:function(){return p},normalizeStyle:function(){return i},onActivated:function(){return xr},onBeforeMount:function(){return Or},onBeforeUnmount:function(){return Ir},onBeforeUpdate:function(){return Pr},onDeactivated:function(){return Cr},onErrorCaptured:function(){return Br},onMounted:function(){return Mr},onRenderTracked:function(){return Lr},onRenderTriggered:function(){return Vr},onScopeDispose:function(){return pe},onServerPrefetch:function(){return Fr},onUnmounted:function(){return $r},onUpdated:function(){return Ar},openBlock:function(){return ts},popScopeId:function(){return An},provide:function(){return Jn},proxyRefs:function(){return zt},pushScopeId:function(){return Pn},queuePostFlushCb:function(){return gn},reactive:function(){return xt},readonly:function(){return wt},ref:function(){return Lt},registerRuntimeCompiler:function(){return Us},render:function(){return Ac},renderList:function(){return Jr},renderSlot:function(){return Yr},resolveComponent:function(){return Hr},resolveDirective:function(){return Kr},resolveDynamicComponent:function(){return zr},resolveFilter:function(){return di},resolveTransitionHooks:function(){return ar},setBlockTracking:function(){return ss},setDevtoolsHook:function(){return kn},setTransitionHooks:function(){return dr},shallowReactive:function(){return Ct},shallowReadonly:function(){return kt},shallowRef:function(){return Bt},ssrContextKey:function(){return ii},ssrUtils:function(){return pi},stop:function(){return ke},toDisplayString:function(){return S},toHandlerKey:function(){return te},toHandlers:function(){return Xr},toRaw:function(){return Mt},toRef:function(){return Zt},toRefs:function(){return Gt},transformVNodeArgs:function(){return fs},triggerRef:function(){return Dt},unref:function(){return Ht},useAttrs:function(){return ei},useCssModule:function(){return Ai},useCssVars:function(){return Ii},useSSRContext:function(){return ci},useSlots:function(){return Xs},useTransitionState:function(){return ir},vModelCheckbox:function(){return fc},vModelDynamic:function(){return yc},vModelRadio:function(){return dc},vModelSelect:function(){return hc},vModelText:function(){return ac},vShow:function(){return Ec},version:function(){return fi},warn:function(){return Xt},watch:function(){return tr},watchEffect:function(){return Yn},watchPostEffect:function(){return Qn},watchSyncEffect:function(){return Xn},withAsyncContext:function(){return oi},withCtx:function(){return $n},withDefaults:function(){return Qs},withDirectives:function(){return jr},withKeys:function(){return kc},withMemo:function(){return ui},withModifiers:function(){return Cc},withScopeId:function(){return In}});var r={};function o(e,t){const n=Object.create(null),r=e.split(",");for(let e=0;e!!n[e.toLowerCase()]:e=>!!n[e]}n.r(r),n.d(r,{BaseTransition:function(){return lr},Comment:function(){return Yo},EffectScope:function(){return le},Fragment:function(){return Jo},KeepAlive:function(){return _r},ReactiveEffect:function(){return xe},Static:function(){return Qo},Suspense:function(){return Hn},Teleport:function(){return qo},Text:function(){return Zo},Transition:function(){return Bi},TransitionGroup:function(){return rc},VueElement:function(){return Pi},callWithAsyncErrorHandling:function(){return tn},callWithErrorHandling:function(){return en},camelize:function(){return Y},capitalize:function(){return ee},cloneVNode:function(){return bs},compatUtils:function(){return hi},computed:function(){return Gs},createApp:function(){return $c},createBlock:function(){return ls},createCommentVNode:function(){return xs},createElementBlock:function(){return cs},createElementVNode:function(){return ms},createHydrationRenderer:function(){return Bo},createPropsRestProxy:function(){return ri},createRenderer:function(){return Lo},createSSRApp:function(){return Fc},createSlots:function(){return Zr},createStaticVNode:function(){return Ss},createTextVNode:function(){return _s},createVNode:function(){return gs},customRef:function(){return qt},defineAsyncComponent:function(){return vr},defineComponent:function(){return mr},defineCustomElement:function(){return Ri},defineEmits:function(){return Zs},defineExpose:function(){return Ys},defineProps:function(){return Js},defineSSRCustomElement:function(){return Oi},devtools:function(){return xn},effect:function(){return we},effectScope:function(){return ue},getCurrentInstance:function(){return Ps},getCurrentScope:function(){return fe},getTransitionRawChildren:function(){return hr},guardReactiveProps:function(){return ys},h:function(){return si},handleError:function(){return nn},hydrate:function(){return Ic},initCustomFormatter:function(){return li},initDirectivesForSSR:function(){return Bc},inject:function(){return Zn},isMemoSame:function(){return ai},isProxy:function(){return Ot},isReactive:function(){return Tt},isReadonly:function(){return Nt},isRef:function(){return Vt},isRuntimeOnly:function(){return Ds},isShallow:function(){return Rt},isVNode:function(){return us},markRaw:function(){return Pt},mergeDefaults:function(){return ni},mergeProps:function(){return Es},nextTick:function(){return dn},normalizeClass:function(){return f},normalizeProps:function(){return p},normalizeStyle:function(){return i},onActivated:function(){return xr},onBeforeMount:function(){return Or},onBeforeUnmount:function(){return Ir},onBeforeUpdate:function(){return Pr},onDeactivated:function(){return Cr},onErrorCaptured:function(){return Br},onMounted:function(){return Mr},onRenderTracked:function(){return Lr},onRenderTriggered:function(){return Vr},onScopeDispose:function(){return pe},onServerPrefetch:function(){return Fr},onUnmounted:function(){return $r},onUpdated:function(){return Ar},openBlock:function(){return ts},popScopeId:function(){return An},provide:function(){return Jn},proxyRefs:function(){return zt},pushScopeId:function(){return Pn},queuePostFlushCb:function(){return gn},reactive:function(){return xt},readonly:function(){return wt},ref:function(){return Lt},registerRuntimeCompiler:function(){return Us},render:function(){return Ac},renderList:function(){return Jr},renderSlot:function(){return Yr},resolveComponent:function(){return Hr},resolveDirective:function(){return Kr},resolveDynamicComponent:function(){return zr},resolveFilter:function(){return di},resolveTransitionHooks:function(){return ar},setBlockTracking:function(){return ss},setDevtoolsHook:function(){return kn},setTransitionHooks:function(){return dr},shallowReactive:function(){return Ct},shallowReadonly:function(){return kt},shallowRef:function(){return Bt},ssrContextKey:function(){return ii},ssrUtils:function(){return pi},stop:function(){return ke},toDisplayString:function(){return S},toHandlerKey:function(){return te},toHandlers:function(){return Xr},toRaw:function(){return Mt},toRef:function(){return Zt},toRefs:function(){return Gt},transformVNodeArgs:function(){return fs},triggerRef:function(){return Dt},unref:function(){return Ht},useAttrs:function(){return ei},useCssModule:function(){return Ai},useCssVars:function(){return Ii},useSSRContext:function(){return ci},useSlots:function(){return Xs},useTransitionState:function(){return ir},vModelCheckbox:function(){return fc},vModelDynamic:function(){return yc},vModelRadio:function(){return dc},vModelSelect:function(){return hc},vModelText:function(){return ac},vShow:function(){return Ec},version:function(){return fi},warn:function(){return Xt},watch:function(){return tr},watchEffect:function(){return Yn},watchPostEffect:function(){return Qn},watchSyncEffect:function(){return Xn},withAsyncContext:function(){return oi},withCtx:function(){return $n},withDefaults:function(){return Qs},withDirectives:function(){return jr},withKeys:function(){return kc},withMemo:function(){return ui},withModifiers:function(){return Cc},withScopeId:function(){return In}});const s=o("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt");function i(e){if(I(e)){const t={};for(let n=0;n{if(e){const n=e.split(l);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function f(e){let t="";if(B(e))t=e;else if(I(e))for(let n=0;nb(e,t)))}const S=e=>B(e)?e:null==e?"":I(e)||U(e)&&(e.toString===H||!L(e.toString))?JSON.stringify(e,x,2):String(e),x=(e,t)=>t&&t.__v_isRef?x(e,t.value):$(t)?{[`Map(${t.size})`]:[...t.entries()].reduce(((e,[t,n])=>(e[`${t} =>`]=n,e)),{})}:F(t)?{[`Set(${t.size})`]:[...t.values()]}:!U(t)||I(t)||z(t)?t:String(t),C={},w=[],k=()=>{},E=()=>!1,T=/^on[^a-z]/,N=e=>T.test(e),R=e=>e.startsWith("onUpdate:"),O=Object.assign,M=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},P=Object.prototype.hasOwnProperty,A=(e,t)=>P.call(e,t),I=Array.isArray,$=e=>"[object Map]"===W(e),F=e=>"[object Set]"===W(e),V=e=>"[object Date]"===W(e),L=e=>"function"==typeof e,B=e=>"string"==typeof e,j=e=>"symbol"==typeof e,U=e=>null!==e&&"object"==typeof e,D=e=>U(e)&&L(e.then)&&L(e.catch),H=Object.prototype.toString,W=e=>H.call(e),z=e=>"[object Object]"===W(e),K=e=>B(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,q=o(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),G=o("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),J=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Z=/-(\w)/g,Y=J((e=>e.replace(Z,((e,t)=>t?t.toUpperCase():"")))),Q=/\B([A-Z])/g,X=J((e=>e.replace(Q,"-$1").toLowerCase())),ee=J((e=>e.charAt(0).toUpperCase()+e.slice(1))),te=J((e=>e?`on${ee(e)}`:"")),ne=(e,t)=>!Object.is(e,t),re=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},se=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ie;let ce;class le{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=ce,!e&&ce&&(this.index=(ce.scopes||(ce.scopes=[])).push(this)-1)}run(e){if(this.active){const t=ce;try{return ce=this,e()}finally{ce=t}}else 0}on(){ce=this}off(){ce=this.parent}stop(e){if(this.active){let t,n;for(t=0,n=this.effects.length;t{const t=new Set(e);return t.w=0,t.n=0,t},he=e=>(e.w&ye)>0,me=e=>(e.n&ye)>0,ge=new WeakMap;let ve=0,ye=1;let be;const _e=Symbol(""),Se=Symbol("");class xe{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,ae(this,n)}run(){if(!this.active)return this.fn();let e=be,t=Ee;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=be,be=this,Ee=!0,ye=1<<++ve,ve<=30?(({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{("length"===n||n>=e)&&c.push(t)}))}else switch(void 0!==n&&c.push(i.get(n)),t){case"add":I(e)?K(n)&&c.push(i.get("length")):(c.push(i.get(_e)),$(e)&&c.push(i.get(Se)));break;case"delete":I(e)||(c.push(i.get(_e)),$(e)&&c.push(i.get(Se)));break;case"set":$(e)&&c.push(i.get(_e))}if(1===c.length)c[0]&&Ae(c[0]);else{const e=[];for(const t of c)t&&e.push(...t);Ae(de(e))}}function Ae(e,t){const n=I(e)?e:[...e];for(const e of n)e.computed&&Ie(e,t);for(const e of n)e.computed||Ie(e,t)}function Ie(e,t){(e!==be||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const $e=o("__proto__,__v_isRef,__isVue"),Fe=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(j)),Ve=He(),Le=He(!1,!0),Be=He(!0),je=He(!0,!0),Ue=De();function De(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const n=Mt(this);for(let e=0,t=this.length;e{e[t]=function(...e){Ne();const n=Mt(this)[t].apply(this,e);return Re(),n}})),e}function He(e=!1,t=!1){return function(n,r,o){if("__v_isReactive"===r)return!e;if("__v_isReadonly"===r)return e;if("__v_isShallow"===r)return t;if("__v_raw"===r&&o===(e?t?_t:bt:t?yt:vt).get(n))return n;const s=I(n);if(!e&&s&&A(Ue,r))return Reflect.get(Ue,r,o);const i=Reflect.get(n,r,o);return(j(r)?Fe.has(r):$e(r))?i:(e||Oe(n,0,r),t?i:Vt(i)?s&&K(r)?i:i.value:U(i)?e?wt(i):xt(i):i)}}function We(e=!1){return function(t,n,r,o){let s=t[n];if(Nt(s)&&Vt(s)&&!Vt(r))return!1;if(!e&&(Rt(r)||Nt(r)||(s=Mt(s),r=Mt(r)),!I(t)&&Vt(s)&&!Vt(r)))return s.value=r,!0;const i=I(t)&&K(n)?Number(n)e,Ze=e=>Reflect.getPrototypeOf(e);function Ye(e,t,n=!1,r=!1){const o=Mt(e=e.__v_raw),s=Mt(t);n||(t!==s&&Oe(o,0,t),Oe(o,0,s));const{has:i}=Ze(o),c=r?Je:n?It:At;return i.call(o,t)?c(e.get(t)):i.call(o,s)?c(e.get(s)):void(e!==o&&e.get(t))}function Qe(e,t=!1){const n=this.__v_raw,r=Mt(n),o=Mt(e);return t||(e!==o&&Oe(r,0,e),Oe(r,0,o)),e===o?n.has(e):n.has(e)||n.has(o)}function Xe(e,t=!1){return e=e.__v_raw,!t&&Oe(Mt(e),0,_e),Reflect.get(e,"size",e)}function et(e){e=Mt(e);const t=Mt(this);return Ze(t).has.call(t,e)||(t.add(e),Pe(t,"add",e,e)),this}function tt(e,t){t=Mt(t);const n=Mt(this),{has:r,get:o}=Ze(n);let s=r.call(n,e);s||(e=Mt(e),s=r.call(n,e));const i=o.call(n,e);return n.set(e,t),s?ne(t,i)&&Pe(n,"set",e,t):Pe(n,"add",e,t),this}function nt(e){const t=Mt(this),{has:n,get:r}=Ze(t);let o=n.call(t,e);o||(e=Mt(e),o=n.call(t,e));r&&r.call(t,e);const s=t.delete(e);return o&&Pe(t,"delete",e,void 0),s}function rt(){const e=Mt(this),t=0!==e.size,n=e.clear();return t&&Pe(e,"clear",void 0,void 0),n}function ot(e,t){return function(n,r){const o=this,s=o.__v_raw,i=Mt(s),c=t?Je:e?It:At;return!e&&Oe(i,0,_e),s.forEach(((e,t)=>n.call(r,c(e),c(t),o)))}}function st(e,t,n){return function(...r){const o=this.__v_raw,s=Mt(o),i=$(s),c="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,u=o[e](...r),a=n?Je:t?It:At;return!t&&Oe(s,0,l?Se:_e),{next(){const{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:c?[a(e[0]),a(e[1])]:a(e),done:t}},[Symbol.iterator](){return this}}}}function it(e){return function(...t){return"delete"!==e&&this}}function ct(){const e={get(e){return Ye(this,e)},get size(){return Xe(this)},has:Qe,add:et,set:tt,delete:nt,clear:rt,forEach:ot(!1,!1)},t={get(e){return Ye(this,e,!1,!0)},get size(){return Xe(this)},has:Qe,add:et,set:tt,delete:nt,clear:rt,forEach:ot(!1,!0)},n={get(e){return Ye(this,e,!0)},get size(){return Xe(this,!0)},has(e){return Qe.call(this,e,!0)},add:it("add"),set:it("set"),delete:it("delete"),clear:it("clear"),forEach:ot(!0,!1)},r={get(e){return Ye(this,e,!0,!0)},get size(){return Xe(this,!0)},has(e){return Qe.call(this,e,!0)},add:it("add"),set:it("set"),delete:it("delete"),clear:it("clear"),forEach:ot(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=st(o,!1,!1),n[o]=st(o,!0,!1),t[o]=st(o,!1,!0),r[o]=st(o,!0,!0)})),[e,n,t,r]}const[lt,ut,at,ft]=ct();function pt(e,t){const n=t?e?ft:at:e?ut:lt;return(t,r,o)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get(A(n,r)&&r in t?n:t,r,o)}const dt={get:pt(!1,!1)},ht={get:pt(!1,!0)},mt={get:pt(!0,!1)},gt={get:pt(!0,!0)};const vt=new WeakMap,yt=new WeakMap,bt=new WeakMap,_t=new WeakMap;function St(e){return e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>W(e).slice(8,-1))(e))}function xt(e){return Nt(e)?e:Et(e,!1,ze,dt,vt)}function Ct(e){return Et(e,!1,qe,ht,yt)}function wt(e){return Et(e,!0,Ke,mt,bt)}function kt(e){return Et(e,!0,Ge,gt,_t)}function Et(e,t,n,r,o){if(!U(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=St(e);if(0===i)return e;const c=new Proxy(e,2===i?r:n);return o.set(e,c),c}function Tt(e){return Nt(e)?Tt(e.__v_raw):!(!e||!e.__v_isReactive)}function Nt(e){return!(!e||!e.__v_isReadonly)}function Rt(e){return!(!e||!e.__v_isShallow)}function Ot(e){return Tt(e)||Nt(e)}function Mt(e){const t=e&&e.__v_raw;return t?Mt(t):e}function Pt(e){return oe(e,"__v_skip",!0),e}const At=e=>U(e)?xt(e):e,It=e=>U(e)?wt(e):e;function $t(e){Ee&&be&&Me((e=Mt(e)).dep||(e.dep=de()))}function Ft(e,t){(e=Mt(e)).dep&&Ae(e.dep)}function Vt(e){return!(!e||!0!==e.__v_isRef)}function Lt(e){return jt(e,!1)}function Bt(e){return jt(e,!0)}function jt(e,t){return Vt(e)?e:new Ut(e,t)}class Ut{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Mt(e),this._value=t?e:At(e)}get value(){return $t(this),this._value}set value(e){const t=this.__v_isShallow||Rt(e)||Nt(e);e=t?e:Mt(e),ne(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:At(e),Ft(this))}}function Dt(e){Ft(e)}function Ht(e){return Vt(e)?e.value:e}const Wt={get:(e,t,n)=>Ht(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Vt(o)&&!Vt(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function zt(e){return Tt(e)?e:new Proxy(e,Wt)}class Kt{constructor(e){this.dep=void 0,this.__v_isRef=!0;const{get:t,set:n}=e((()=>$t(this)),(()=>Ft(this)));this._get=t,this._set=n}get value(){return this._get()}set value(e){this._set(e)}}function qt(e){return new Kt(e)}function Gt(e){const t=I(e)?new Array(e.length):{};for(const n in e)t[n]=Zt(e,n);return t}class Jt{constructor(e,t,n){this._object=e,this._key=t,this._defaultValue=n,this.__v_isRef=!0}get value(){const e=this._object[this._key];return void 0===e?this._defaultValue:e}set value(e){this._object[this._key]=e}}function Zt(e,t,n){const r=e[t];return Vt(r)?r:new Jt(e,t,n)}var Yt;class Qt{constructor(e,t,n,r){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Yt]=!1,this._dirty=!0,this.effect=new xe(e,(()=>{this._dirty||(this._dirty=!0,Ft(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=n}get value(){const e=Mt(this);return $t(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}Yt="__v_isReadonly";function Xt(e,...t){}function en(e,t,n,r){let o;try{o=r?e(...r):e()}catch(e){nn(e,t,n)}return o}function tn(e,t,n,r){if(L(e)){const o=en(e,t,n,r);return o&&D(o)&&o.catch((e=>{nn(e,t,n)})),o}const o=[];for(let s=0;s>>1;bn(sn[r])bn(e)-bn(t))),an=0;annull==e.id?1/0:e.id,_n=(e,t)=>{const n=bn(e)-bn(t);if(0===n){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Sn(e){on=!1,rn=!0,sn.sort(_n);try{for(cn=0;cnxn.emit(e,...t))),Cn=[];else if("undefined"!=typeof window&&window.HTMLElement&&!(null===(r=null===(n=window.navigator)||void 0===n?void 0:n.userAgent)||void 0===r?void 0:r.includes("jsdom"))){(t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push((e=>{kn(e,t)})),setTimeout((()=>{xn||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,wn=!0,Cn=[])}),3e3)}else wn=!0,Cn=[]}function En(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||C;let o=n;const s=t.startsWith("update:"),i=s&&t.slice(7);if(i&&i in r){const e=`${"modelValue"===i?"model":i}Modifiers`,{number:t,trim:s}=r[e]||C;s&&(o=n.map((e=>B(e)?e.trim():e))),t&&(o=n.map(se))}let c;let l=r[c=te(t)]||r[c=te(Y(t))];!l&&s&&(l=r[c=te(X(t))]),l&&tn(l,e,6,o);const u=r[c+"Once"];if(u){if(e.emitted){if(e.emitted[c])return}else e.emitted={};e.emitted[c]=!0,tn(u,e,6,o)}}function Tn(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(void 0!==o)return o;const s=e.emits;let i={},c=!1;if(!L(e)){const r=e=>{const n=Tn(e,t,!0);n&&(c=!0,O(i,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return s||c?(I(s)?s.forEach((e=>i[e]=null)):O(i,s),U(e)&&r.set(e,i),i):(U(e)&&r.set(e,null),null)}function Nn(e,t){return!(!e||!N(t))&&(t=t.slice(2).replace(/Once$/,""),A(e,t[0].toLowerCase()+t.slice(1))||A(e,X(t))||A(e,t))}let Rn=null,On=null;function Mn(e){const t=Rn;return Rn=e,On=e&&e.type.__scopeId||null,t}function Pn(e){On=e}function An(){On=null}const In=e=>$n;function $n(e,t=Rn,n){if(!t)return e;if(e._n)return e;const r=(...n)=>{r._d&&ss(-1);const o=Mn(t);let s;try{s=e(...n)}finally{Mn(o),r._d&&ss(1)}return s};return r._n=!0,r._c=!0,r._d=!0,r}function Fn(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:s,propsOptions:[i],slots:c,attrs:l,emit:u,render:a,renderCache:f,data:p,setupState:d,ctx:h,inheritAttrs:m}=e;let g,v;const y=Mn(e);try{if(4&n.shapeFlag){const e=o||r;g=Cs(a.call(e,e,f,s,d,p,h)),v=l}else{const e=t;0,g=Cs(e.length>1?e(s,{attrs:l,slots:c,emit:u}):e(s,null)),v=t.props?l:Ln(l)}}catch(t){Xo.length=0,nn(t,e,1),g=gs(Yo)}let b=g;if(v&&!1!==m){const e=Object.keys(v),{shapeFlag:t}=b;e.length&&7&t&&(i&&e.some(R)&&(v=Bn(v,i)),b=bs(b,v))}return n.dirs&&(b=bs(b),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&(b.transition=n.transition),g=b,Mn(y),g}function Vn(e){let t;for(let n=0;n{let t;for(const n in e)("class"===n||"style"===n||N(n))&&((t||(t={}))[n]=e[n]);return t},Bn=(e,t)=>{const n={};for(const r in e)R(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function jn(e,t,n){const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let o=0;oe.__isSuspense,Hn={name:"Suspense",__isSuspense:!0,process(e,t,n,r,o,s,i,c,l,u){null==e?function(e,t,n,r,o,s,i,c,l){const{p:u,o:{createElement:a}}=l,f=a("div"),p=e.suspense=zn(e,o,r,t,f,n,s,i,c,l);u(null,p.pendingBranch=e.ssContent,f,null,r,p,s,i),p.deps>0?(Wn(e,"onPending"),Wn(e,"onFallback"),u(null,e.ssFallback,t,n,r,null,s,i),Gn(p,e.ssFallback)):p.resolve()}(t,n,r,o,s,i,c,l,u):function(e,t,n,r,o,s,i,c,{p:l,um:u,o:{createElement:a}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const p=t.ssContent,d=t.ssFallback,{activeBranch:h,pendingBranch:m,isInFallback:g,isHydrating:v}=f;if(m)f.pendingBranch=p,as(p,m)?(l(m,p,f.hiddenContainer,null,o,f,s,i,c),f.deps<=0?f.resolve():g&&(l(h,d,n,r,o,null,s,i,c),Gn(f,d))):(f.pendingId++,v?(f.isHydrating=!1,f.activeBranch=m):u(m,o,f),f.deps=0,f.effects.length=0,f.hiddenContainer=a("div"),g?(l(null,p,f.hiddenContainer,null,o,f,s,i,c),f.deps<=0?f.resolve():(l(h,d,n,r,o,null,s,i,c),Gn(f,d))):h&&as(p,h)?(l(h,p,n,r,o,f,s,i,c),f.resolve(!0)):(l(null,p,f.hiddenContainer,null,o,f,s,i,c),f.deps<=0&&f.resolve()));else if(h&&as(p,h))l(h,p,n,r,o,f,s,i,c),Gn(f,p);else if(Wn(t,"onPending"),f.pendingBranch=p,f.pendingId++,l(null,p,f.hiddenContainer,null,o,f,s,i,c),f.deps<=0)f.resolve();else{const{timeout:e,pendingId:t}=f;e>0?setTimeout((()=>{f.pendingId===t&&f.fallback(d)}),e):0===e&&f.fallback(d)}}(e,t,n,r,o,i,c,l,u)},hydrate:function(e,t,n,r,o,s,i,c,l){const u=t.suspense=zn(t,r,n,e.parentNode,document.createElement("div"),null,o,s,i,c,!0),a=l(e,u.pendingBranch=t.ssContent,n,u,s,i);0===u.deps&&u.resolve();return a},create:zn,normalize:function(e){const{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=Kn(r?n.default:n),e.ssFallback=r?Kn(n.fallback):gs(Yo)}};function Wn(e,t){const n=e.props&&e.props[t];L(n)&&n()}function zn(e,t,n,r,o,s,i,c,l,u,a=!1){const{p:f,m:p,um:d,n:h,o:{parentNode:m,remove:g}}=u,v=se(e.props&&e.props.timeout),y={vnode:e,parent:t,parentComponent:n,isSVG:i,container:r,hiddenContainer:o,anchor:s,deps:0,pendingId:0,timeout:"number"==typeof v?v:-1,activeBranch:null,pendingBranch:null,isInFallback:!0,isHydrating:a,isUnmounted:!1,effects:[],resolve(e=!1){const{vnode:t,activeBranch:n,pendingBranch:r,pendingId:o,effects:s,parentComponent:i,container:c}=y;if(y.isHydrating)y.isHydrating=!1;else if(!e){const e=n&&r.transition&&"out-in"===r.transition.mode;e&&(n.transition.afterLeave=()=>{o===y.pendingId&&p(r,c,t,0)});let{anchor:t}=y;n&&(t=h(n),d(n,i,y,!0)),e||p(r,c,t,0)}Gn(y,r),y.pendingBranch=null,y.isInFallback=!1;let l=y.parent,u=!1;for(;l;){if(l.pendingBranch){l.effects.push(...s),u=!0;break}l=l.parent}u||gn(s),y.effects=[],Wn(t,"onResolve")},fallback(e){if(!y.pendingBranch)return;const{vnode:t,activeBranch:n,parentComponent:r,container:o,isSVG:s}=y;Wn(t,"onFallback");const i=h(n),u=()=>{y.isInFallback&&(f(null,e,o,i,r,null,s,c,l),Gn(y,e))},a=e.transition&&"out-in"===e.transition.mode;a&&(n.transition.afterLeave=u),y.isInFallback=!0,d(n,r,null,!0),a||u()},move(e,t,n){y.activeBranch&&p(y.activeBranch,e,t,n),y.container=e},next(){return y.activeBranch&&h(y.activeBranch)},registerDep(e,t){const n=!!y.pendingBranch;n&&y.deps++;const r=e.vnode.el;e.asyncDep.catch((t=>{nn(t,e,0)})).then((o=>{if(e.isUnmounted||y.isUnmounted||y.pendingId!==e.suspenseId)return;e.asyncResolved=!0;const{vnode:s}=e;js(e,o,!1),r&&(s.el=r);const c=!r&&e.subTree.el;t(e,s,m(r||e.subTree.el),r?null:h(e.subTree),y,i,l),c&&g(c),Un(e,s.el),n&&0==--y.deps&&y.resolve()}))},unmount(e,t){y.isUnmounted=!0,y.activeBranch&&d(y.activeBranch,n,e,t),y.pendingBranch&&d(y.pendingBranch,n,e,t)}};return y}function Kn(e){let t;if(L(e)){const n=os&&e._c;n&&(e._d=!1,ts()),e=e(),n&&(e._d=!0,t=es,ns())}if(I(e)){const t=Vn(e);0,e=t}return e=Cs(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter((t=>t!==e))),e}function qn(e,t){t&&t.pendingBranch?I(e)?t.effects.push(...e):t.effects.push(e):gn(e)}function Gn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e,o=n.el=t.el;r&&r.subTree===n&&(r.vnode.el=o,Un(r,o))}function Jn(e,t){if(Ms){let n=Ms.provides;const r=Ms.parent&&Ms.parent.provides;r===n&&(n=Ms.provides=Object.create(r)),n[e]=t}else 0}function Zn(e,t,n=!1){const r=Ms||Rn;if(r){const o=null==r.parent?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&L(t)?t.call(r.proxy):t}else 0}function Yn(e,t){return nr(e,null,t)}function Qn(e,t){return nr(e,null,{flush:"post"})}function Xn(e,t){return nr(e,null,{flush:"sync"})}const er={};function tr(e,t,n){return nr(e,t,n)}function nr(e,t,{immediate:n,deep:r,flush:o,onTrack:s,onTrigger:i}=C){const c=Ms;let l,u,a=!1,f=!1;if(Vt(e)?(l=()=>e.value,a=Rt(e)):Tt(e)?(l=()=>e,r=!0):I(e)?(f=!0,a=e.some((e=>Tt(e)||Rt(e))),l=()=>e.map((e=>Vt(e)?e.value:Tt(e)?sr(e):L(e)?en(e,c,2):void 0))):l=L(e)?t?()=>en(e,c,2):()=>{if(!c||!c.isUnmounted)return u&&u(),tn(e,c,3,[d])}:k,t&&r){const e=l;l=()=>sr(e())}let p,d=e=>{u=v.onStop=()=>{en(e,c,4)}};if(Ls){if(d=k,t?n&&tn(t,c,3,[l(),f?[]:void 0,d]):l(),"sync"!==o)return k;{const e=ci();p=e.__watcherHandles||(e.__watcherHandles=[])}}let h=f?new Array(e.length).fill(er):er;const m=()=>{if(v.active)if(t){const e=v.run();(r||a||(f?e.some(((e,t)=>ne(e,h[t]))):ne(e,h)))&&(u&&u(),tn(t,c,3,[e,h===er?void 0:f&&h[0]===er?[]:h,d]),h=e)}else v.run()};let g;m.allowRecurse=!!t,"sync"===o?g=m:"post"===o?g=()=>Vo(m,c&&c.suspense):(m.pre=!0,c&&(m.id=c.uid),g=()=>hn(m));const v=new xe(l,g);t?n?m():h=v.run():"post"===o?Vo(v.run.bind(v),c&&c.suspense):v.run();const y=()=>{v.stop(),c&&c.scope&&M(c.scope.effects,v)};return p&&p.push(y),y}function rr(e,t,n){const r=this.proxy,o=B(e)?e.includes(".")?or(r,e):()=>r[e]:e.bind(r,r);let s;L(t)?s=t:(s=t.handler,n=t);const i=Ms;As(this);const c=nr(o,s.bind(r),n);return i?As(i):Is(),c}function or(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;e{sr(e,t)}));else if(z(e))for(const n in e)sr(e[n],t);return e}function ir(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Mr((()=>{e.isMounted=!0})),Ir((()=>{e.isUnmounting=!0})),e}const cr=[Function,Array],lr={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:cr,onEnter:cr,onAfterEnter:cr,onEnterCancelled:cr,onBeforeLeave:cr,onLeave:cr,onAfterLeave:cr,onLeaveCancelled:cr,onBeforeAppear:cr,onAppear:cr,onAfterAppear:cr,onAppearCancelled:cr},setup(e,{slots:t}){const n=Ps(),r=ir();let o;return()=>{const s=t.default&&hr(t.default(),!0);if(!s||!s.length)return;let i=s[0];if(s.length>1){let e=!1;for(const t of s)if(t.type!==Yo){0,i=t,e=!0;break}}const c=Mt(e),{mode:l}=c;if(r.isLeaving)return fr(i);const u=pr(i);if(!u)return fr(i);const a=ar(u,c,r,n);dr(u,a);const f=n.subTree,p=f&&pr(f);let d=!1;const{getTransitionKey:h}=u.type;if(h){const e=h();void 0===o?o=e:e!==o&&(o=e,d=!0)}if(p&&p.type!==Yo&&(!as(u,p)||d)){const e=ar(p,c,r,n);if(dr(p,e),"out-in"===l)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,!1!==n.update.active&&n.update()},fr(i);"in-out"===l&&u.type!==Yo&&(e.delayLeave=(e,t,n)=>{ur(r,p)[String(p.key)]=p,e._leaveCb=()=>{t(),e._leaveCb=void 0,delete a.delayedLeave},a.delayedLeave=n})}return i}}};function ur(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ar(e,t,n,r){const{appear:o,mode:s,persisted:i=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:a,onBeforeLeave:f,onLeave:p,onAfterLeave:d,onLeaveCancelled:h,onBeforeAppear:m,onAppear:g,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),_=ur(n,e),S=(e,t)=>{e&&tn(e,r,9,t)},x=(e,t)=>{const n=t[1];S(e,t),I(e)?e.every((e=>e.length<=1))&&n():e.length<=1&&n()},C={mode:s,persisted:i,beforeEnter(t){let r=c;if(!n.isMounted){if(!o)return;r=m||c}t._leaveCb&&t._leaveCb(!0);const s=_[b];s&&as(e,s)&&s.el._leaveCb&&s.el._leaveCb(),S(r,[t])},enter(e){let t=l,r=u,s=a;if(!n.isMounted){if(!o)return;t=g||l,r=v||u,s=y||a}let i=!1;const c=e._enterCb=t=>{i||(i=!0,S(t?s:r,[e]),C.delayedLeave&&C.delayedLeave(),e._enterCb=void 0)};t?x(t,[e,c]):c()},leave(t,r){const o=String(e.key);if(t._enterCb&&t._enterCb(!0),n.isUnmounting)return r();S(f,[t]);let s=!1;const i=t._leaveCb=n=>{s||(s=!0,r(),S(n?h:d,[t]),t._leaveCb=void 0,_[o]===e&&delete _[o])};_[o]=e,p?x(p,[t,i]):i()},clone(e){return ar(e,t,n,r)}};return C}function fr(e){if(br(e))return(e=bs(e)).children=null,e}function pr(e){return br(e)?e.children?e.children[0]:void 0:e}function dr(e,t){6&e.shapeFlag&&e.component?dr(e.component.subTree,t):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function hr(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let e=0;e!!e.type.__asyncLoader;function vr(e){L(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:c}=e;let l,u=null,a=0;const f=()=>{let e;return u||(e=u=t().catch((e=>{if(e=e instanceof Error?e:new Error(String(e)),c)return new Promise(((t,n)=>{c(e,(()=>t((a++,u=null,f()))),(()=>n(e)),a+1)}));throw e})).then((t=>e!==u&&u?u:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),l=t,t))))};return mr({name:"AsyncComponentWrapper",__asyncLoader:f,get __asyncResolved(){return l},setup(){const e=Ms;if(l)return()=>yr(l,e);const t=t=>{u=null,nn(t,e,13,!r)};if(i&&e.suspense||Ls)return f().then((t=>()=>yr(t,e))).catch((e=>(t(e),()=>r?gs(r,{error:e}):null)));const c=Lt(!1),a=Lt(),p=Lt(!!o);return o&&setTimeout((()=>{p.value=!1}),o),null!=s&&setTimeout((()=>{if(!c.value&&!a.value){const e=new Error(`Async component timed out after ${s}ms.`);t(e),a.value=e}}),s),f().then((()=>{c.value=!0,e.parent&&br(e.parent.vnode)&&hn(e.parent.update)})).catch((e=>{t(e),a.value=e})),()=>c.value&&l?yr(l,e):a.value&&r?gs(r,{error:a.value}):n&&!p.value?gs(n):void 0}})}function yr(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=gs(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const br=e=>e.type.__isKeepAlive,_r={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Ps(),r=n.ctx;if(!r.renderer)return()=>{const e=t.default&&t.default();return e&&1===e.length?e[0]:e};const o=new Map,s=new Set;let i=null;const c=n.suspense,{renderer:{p:l,m:u,um:a,o:{createElement:f}}}=r,p=f("div");function d(e){Er(e),a(e,n,c,!0)}function h(e){o.forEach(((t,n)=>{const r=Ks(t.type);!r||e&&e(r)||m(n)}))}function m(e){const t=o.get(e);i&&t.type===i.type?i&&Er(i):d(t),o.delete(e),s.delete(e)}r.activate=(e,t,n,r,o)=>{const s=e.component;u(e,t,n,0,c),l(s.vnode,e,t,n,s,c,r,e.slotScopeIds,o),Vo((()=>{s.isDeactivated=!1,s.a&&re(s.a);const t=e.props&&e.props.onVnodeMounted;t&&Ts(t,s.parent,e)}),c)},r.deactivate=e=>{const t=e.component;u(e,p,null,1,c),Vo((()=>{t.da&&re(t.da);const n=e.props&&e.props.onVnodeUnmounted;n&&Ts(n,t.parent,e),t.isDeactivated=!0}),c)},tr((()=>[e.include,e.exclude]),(([e,t])=>{e&&h((t=>Sr(e,t))),t&&h((e=>!Sr(t,e)))}),{flush:"post",deep:!0});let g=null;const v=()=>{null!=g&&o.set(g,Tr(n.subTree))};return Mr(v),Ar(v),Ir((()=>{o.forEach((e=>{const{subTree:t,suspense:r}=n,o=Tr(t);if(e.type!==o.type)d(e);else{Er(o);const e=o.component.da;e&&Vo(e,r)}}))})),()=>{if(g=null,!t.default)return null;const n=t.default(),r=n[0];if(n.length>1)return i=null,n;if(!(us(r)&&(4&r.shapeFlag||128&r.shapeFlag)))return i=null,r;let c=Tr(r);const l=c.type,u=Ks(gr(c)?c.type.__asyncResolved||{}:l),{include:a,exclude:f,max:p}=e;if(a&&(!u||!Sr(a,u))||f&&u&&Sr(f,u))return i=c,r;const d=null==c.key?l:c.key,h=o.get(d);return c.el&&(c=bs(c),128&r.shapeFlag&&(r.ssContent=c)),g=d,h?(c.el=h.el,c.component=h.component,c.transition&&dr(c,c.transition),c.shapeFlag|=512,s.delete(d),s.add(d)):(s.add(d),p&&s.size>parseInt(p,10)&&m(s.values().next().value)),c.shapeFlag|=256,i=c,Dn(r.type)?r:c}}};function Sr(e,t){return I(e)?e.some((e=>Sr(e,t))):B(e)?e.split(",").includes(t):!!e.test&&e.test(t)}function xr(e,t){wr(e,"a",t)}function Cr(e,t){wr(e,"da",t)}function wr(e,t,n=Ms){const r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(Nr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)br(e.parent.vnode)&&kr(r,t,n,e),e=e.parent}}function kr(e,t,n,r){const o=Nr(t,e,r,!0);$r((()=>{M(r[t],o)}),n)}function Er(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Tr(e){return 128&e.shapeFlag?e.ssContent:e}function Nr(e,t,n=Ms,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;Ne(),As(n);const o=tn(t,n,e,r);return Is(),Re(),o});return r?o.unshift(s):o.push(s),s}}const Rr=e=>(t,n=Ms)=>(!Ls||"sp"===e)&&Nr(e,((...e)=>t(...e)),n),Or=Rr("bm"),Mr=Rr("m"),Pr=Rr("bu"),Ar=Rr("u"),Ir=Rr("bum"),$r=Rr("um"),Fr=Rr("sp"),Vr=Rr("rtg"),Lr=Rr("rtc");function Br(e,t=Ms){Nr("ec",e,t)}function jr(e,t){const n=Rn;if(null===n)return e;const r=zs(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let e=0;et(e,n,void 0,s&&s[n])));else{const n=Object.keys(e);o=new Array(n.length);for(let r=0,i=n.length;r{const t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function Yr(e,t,n={},r,o){if(Rn.isCE||Rn.parent&&gr(Rn.parent)&&Rn.parent.isCE)return"default"!==t&&(n.name=t),gs("slot",n,r&&r());let s=e[t];s&&s._c&&(s._d=!1),ts();const i=s&&Qr(s(n)),c=ls(Jo,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&1===e._?64:-2);return!o&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),s&&s._c&&(s._d=!0),c}function Qr(e){return e.some((e=>!us(e)||e.type!==Yo&&!(e.type===Jo&&!Qr(e.children))))?e:null}function Xr(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:te(r)]=e[r];return n}const eo=e=>e?$s(e)?zs(e)||e.proxy:eo(e.parent):null,to=O(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>eo(e.parent),$root:e=>eo(e.root),$emit:e=>e.emit,$options:e=>uo(e),$forceUpdate:e=>e.f||(e.f=()=>hn(e.update)),$nextTick:e=>e.n||(e.n=dn.bind(e.proxy)),$watch:e=>rr.bind(e)}),no=(e,t)=>e!==C&&!e.__isScriptSetup&&A(e,t),ro={get({_:e},t){const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:c,appContext:l}=e;let u;if("$"!==t[0]){const c=i[t];if(void 0!==c)switch(c){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(no(r,t))return i[t]=1,r[t];if(o!==C&&A(o,t))return i[t]=2,o[t];if((u=e.propsOptions[0])&&A(u,t))return i[t]=3,s[t];if(n!==C&&A(n,t))return i[t]=4,n[t];so&&(i[t]=0)}}const a=to[t];let f,p;return a?("$attrs"===t&&Oe(e,0,t),a(e)):(f=c.__cssModules)&&(f=f[t])?f:n!==C&&A(n,t)?(i[t]=4,n[t]):(p=l.config.globalProperties,A(p,t)?p[t]:void 0)},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return no(o,t)?(o[t]=n,!0):r!==C&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&(("$"!==t[0]||!(t.slice(1)in e))&&(s[t]=n,!0))},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let c;return!!n[i]||e!==C&&A(e,i)||no(t,i)||(c=s[0])&&A(c,i)||A(r,i)||A(to,i)||A(o.config.globalProperties,i)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};const oo=O({},ro,{get(e,t){if(t!==Symbol.unscopables)return ro.get(e,t,e)},has(e,t){return"_"!==t[0]&&!s(t)}});let so=!0;function io(e){const t=uo(e),n=e.proxy,r=e.ctx;so=!1,t.beforeCreate&&co(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:c,provide:l,inject:u,created:a,beforeMount:f,mounted:p,beforeUpdate:d,updated:h,activated:m,deactivated:g,beforeDestroy:v,beforeUnmount:y,destroyed:b,unmounted:_,render:S,renderTracked:x,renderTriggered:C,errorCaptured:w,serverPrefetch:E,expose:T,inheritAttrs:N,components:R,directives:O,filters:M}=t;if(u&&function(e,t,n=k,r=!1){I(e)&&(e=ho(e));for(const n in e){const o=e[n];let s;s=U(o)?"default"in o?Zn(o.from||n,o.default,!0):Zn(o.from||n):Zn(o),Vt(s)&&r?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e}):t[n]=s}}(u,r,null,e.appContext.config.unwrapInjectedRef),i)for(const e in i){const t=i[e];L(t)&&(r[e]=t.bind(n))}if(o){0;const t=o.call(n,n);0,U(t)&&(e.data=xt(t))}if(so=!0,s)for(const e in s){const t=s[e],o=L(t)?t.bind(n,n):L(t.get)?t.get.bind(n,n):k;0;const i=!L(t)&&L(t.set)?t.set.bind(n):k,c=Gs({get:o,set:i});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>c.value,set:e=>c.value=e})}if(c)for(const e in c)lo(c[e],r,n,e);if(l){const e=L(l)?l.call(n):l;Reflect.ownKeys(e).forEach((t=>{Jn(t,e[t])}))}function P(e,t){I(t)?t.forEach((t=>e(t.bind(n)))):t&&e(t.bind(n))}if(a&&co(a,e,"c"),P(Or,f),P(Mr,p),P(Pr,d),P(Ar,h),P(xr,m),P(Cr,g),P(Br,w),P(Lr,x),P(Vr,C),P(Ir,y),P($r,_),P(Fr,E),I(T))if(T.length){const t=e.exposed||(e.exposed={});T.forEach((e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})}))}else e.exposed||(e.exposed={});S&&e.render===k&&(e.render=S),null!=N&&(e.inheritAttrs=N),R&&(e.components=R),O&&(e.directives=O)}function co(e,t,n){tn(I(e)?e.map((e=>e.bind(t.proxy))):e.bind(t.proxy),t,n)}function lo(e,t,n,r){const o=r.includes(".")?or(n,r):()=>n[r];if(B(e)){const n=t[e];L(n)&&tr(o,n)}else if(L(e))tr(o,e.bind(n));else if(U(e))if(I(e))e.forEach((e=>lo(e,t,n,r)));else{const r=L(e.handler)?e.handler.bind(n):t[e.handler];L(r)&&tr(o,r,e)}else 0}function uo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,c=s.get(t);let l;return c?l=c:o.length||n||r?(l={},o.length&&o.forEach((e=>ao(l,e,i,!0))),ao(l,t,i)):l=t,U(t)&&s.set(t,l),l}function ao(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&ao(e,s,n,!0),o&&o.forEach((t=>ao(e,t,n,!0)));for(const o in t)if(r&&"expose"===o);else{const r=fo[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}const fo={data:po,props:go,emits:go,methods:go,computed:go,beforeCreate:mo,created:mo,beforeMount:mo,mounted:mo,beforeUpdate:mo,updated:mo,beforeDestroy:mo,beforeUnmount:mo,destroyed:mo,unmounted:mo,activated:mo,deactivated:mo,errorCaptured:mo,serverPrefetch:mo,components:go,directives:go,watch:function(e,t){if(!e)return t;if(!t)return e;const n=O(Object.create(null),e);for(const r in t)n[r]=mo(e[r],t[r]);return n},provide:po,inject:function(e,t){return go(ho(e),ho(t))}};function po(e,t){return t?e?function(){return O(L(e)?e.call(this,this):e,L(t)?t.call(this,this):t)}:t:e}function ho(e){if(I(e)){const t={};for(let n=0;n{l=!0;const[n,r]=bo(e,t,!0);O(i,n),r&&c.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!s&&!l)return U(e)&&r.set(e,w),w;if(I(s))for(let e=0;e-1,r[1]=n<0||e-1||A(r,"default"))&&c.push(t)}}}}const u=[i,c];return U(e)&&r.set(e,u),u}function _o(e){return"$"!==e[0]}function So(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:null===e?"null":""}function xo(e,t){return So(e)===So(t)}function Co(e,t){return I(t)?t.findIndex((t=>xo(t,e))):L(t)&&xo(t,e)?0:-1}const wo=e=>"_"===e[0]||"$stable"===e,ko=e=>I(e)?e.map(Cs):[Cs(e)],Eo=(e,t,n)=>{if(t._n)return t;const r=$n(((...e)=>ko(t(...e))),n);return r._c=!1,r},To=(e,t,n)=>{const r=e._ctx;for(const n in e){if(wo(n))continue;const o=e[n];if(L(o))t[n]=Eo(0,o,r);else if(null!=o){0;const e=ko(o);t[n]=()=>e}}},No=(e,t)=>{const n=ko(t);e.slots.default=()=>n};function Ro(){return{app:null,config:{isNativeTag:E,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Oo=0;function Mo(e,t){return function(n,r=null){L(n)||(n=Object.assign({},n)),null==r||U(r)||(r=null);const o=Ro(),s=new Set;let i=!1;const c=o.app={_uid:Oo++,_component:n,_props:r,_container:null,_context:o,_instance:null,version:fi,get config(){return o.config},set config(e){0},use(e,...t){return s.has(e)||(e&&L(e.install)?(s.add(e),e.install(c,...t)):L(e)&&(s.add(e),e(c,...t))),c},mixin(e){return o.mixins.includes(e)||o.mixins.push(e),c},component(e,t){return t?(o.components[e]=t,c):o.components[e]},directive(e,t){return t?(o.directives[e]=t,c):o.directives[e]},mount(s,l,u){if(!i){0;const a=gs(n,r);return a.appContext=o,l&&t?t(a,s):e(a,s,u),i=!0,c._container=s,s.__vue_app__=c,zs(a.component)||a.component.proxy}},unmount(){i&&(e(null,c._container),delete c._container.__vue_app__)},provide(e,t){return o.provides[e]=t,c}};return c}}function Po(e,t,n,r,o=!1){if(I(e))return void e.forEach(((e,s)=>Po(e,t&&(I(t)?t[s]:t),n,r,o)));if(gr(r)&&!o)return;const s=4&r.shapeFlag?zs(r.component)||r.component.proxy:r.el,i=o?null:s,{i:c,r:l}=e;const u=t&&t.r,a=c.refs===C?c.refs={}:c.refs,f=c.setupState;if(null!=u&&u!==l&&(B(u)?(a[u]=null,A(f,u)&&(f[u]=null)):Vt(u)&&(u.value=null)),L(l))en(l,c,12,[i,a]);else{const t=B(l),r=Vt(l);if(t||r){const c=()=>{if(e.f){const n=t?A(f,l)?f[l]:a[l]:l.value;o?I(n)&&M(n,s):I(n)?n.includes(s)||n.push(s):t?(a[l]=[s],A(f,l)&&(f[l]=a[l])):(l.value=[s],e.k&&(a[e.k]=l.value))}else t?(a[l]=i,A(f,l)&&(f[l]=i)):r&&(l.value=i,e.k&&(a[e.k]=i))};i?(c.id=-1,Vo(c,n)):c()}else 0}}let Ao=!1;const Io=e=>/svg/.test(e.namespaceURI)&&"foreignObject"!==e.tagName,$o=e=>8===e.nodeType;function Fo(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:c,insert:l,createComment:u}}=e,a=(n,r,c,u,g,v=!1)=>{const y=$o(n)&&"["===n.data,b=()=>h(n,r,c,u,g,y),{type:_,ref:S,shapeFlag:x,patchFlag:C}=r;let w=n.nodeType;r.el=n,-2===C&&(v=!1,r.dynamicChildren=null);let k=null;switch(_){case Zo:3!==w?""===r.children?(l(r.el=o(""),i(n),n),k=n):k=b():(n.data!==r.children&&(Ao=!0,n.data=r.children),k=s(n));break;case Yo:k=8!==w||y?b():s(n);break;case Qo:if(y&&(w=(n=s(n)).nodeType),1===w||3===w){k=n;const e=!r.children.length;for(let t=0;t{i=i||!!t.dynamicChildren;const{type:l,props:u,patchFlag:a,shapeFlag:f,dirs:d}=t,h="input"===l&&d||"option"===l;if(h||-1!==a){if(d&&Ur(t,null,n,"created"),u)if(h||!i||48&a)for(const t in u)(h&&t.endsWith("value")||N(t)&&!q(t))&&r(e,t,null,u[t],!1,void 0,n);else u.onClick&&r(e,"onClick",null,u.onClick,!1,void 0,n);let l;if((l=u&&u.onVnodeBeforeMount)&&Ts(l,n,t),d&&Ur(t,null,n,"beforeMount"),((l=u&&u.onVnodeMounted)||d)&&qn((()=>{l&&Ts(l,n,t),d&&Ur(t,null,n,"mounted")}),o),16&f&&(!u||!u.innerHTML&&!u.textContent)){let r=p(e.firstChild,t,e,n,o,s,i);for(;r;){Ao=!0;const e=r;r=r.nextSibling,c(e)}}else 8&f&&e.textContent!==t.children&&(Ao=!0,e.textContent=t.children)}return e.nextSibling},p=(e,t,r,o,s,i,c)=>{c=c||!!t.dynamicChildren;const l=t.children,u=l.length;for(let t=0;t{const{slotScopeIds:a}=t;a&&(o=o?o.concat(a):a);const f=i(e),d=p(s(e),t,f,n,r,o,c);return d&&$o(d)&&"]"===d.data?s(t.anchor=d):(Ao=!0,l(t.anchor=u("]"),f,d),d)},h=(e,t,r,o,l,u)=>{if(Ao=!0,t.el=null,u){const t=m(e);for(;;){const n=s(e);if(!n||n===t)break;c(n)}}const a=s(e),f=i(e);return c(e),n(null,t,f,a,r,o,Io(f),l),a},m=e=>{let t=0;for(;e;)if((e=s(e))&&$o(e)&&("["===e.data&&t++,"]"===e.data)){if(0===t)return s(e);t--}return e};return[(e,t)=>{if(!t.hasChildNodes())return n(null,e,t),yn(),void(t._vnode=e);Ao=!1,a(t.firstChild,e,null,null,null),yn(),t._vnode=e,Ao&&console.error("Hydration completed but contains mismatches.")},a]}const Vo=qn;function Lo(e){return jo(e)}function Bo(e){return jo(e,Fo)}function jo(e,t){(ie||(ie="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==n.g?n.g:{})).__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:i,createText:c,createComment:l,setText:u,setElementText:a,parentNode:f,nextSibling:p,setScopeId:d=k,insertStaticContent:h}=e,m=(e,t,n,r=null,o=null,s=null,i=!1,c=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!as(e,t)&&(r=G(e),D(e,o,s,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:u,ref:a,shapeFlag:f}=t;switch(u){case Zo:g(e,t,n,r);break;case Yo:v(e,t,n,r);break;case Qo:null==e&&y(t,n,r,i);break;case Jo:M(e,t,n,r,o,s,i,c,l);break;default:1&f?_(e,t,n,r,o,s,i,c,l):6&f?P(e,t,n,r,o,s,i,c,l):(64&f||128&f)&&u.process(e,t,n,r,o,s,i,c,l,Z)}null!=a&&o&&Po(a,e&&e.ref,s,t||e,!t)},g=(e,t,n,o)=>{if(null==e)r(t.el=c(t.children),n,o);else{const n=t.el=e.el;t.children!==e.children&&u(n,t.children)}},v=(e,t,n,o)=>{null==e?r(t.el=l(t.children||""),n,o):t.el=e.el},y=(e,t,n,r)=>{[e.el,e.anchor]=h(e.children,t,n,r,e.el,e.anchor)},b=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=p(e),o(e),e=n;o(t)},_=(e,t,n,r,o,s,i,c,l)=>{i=i||"svg"===t.type,null==e?S(t,n,r,o,s,i,c,l):T(e,t,o,s,i,c,l)},S=(e,t,n,o,c,l,u,f)=>{let p,d;const{type:h,props:m,shapeFlag:g,transition:v,dirs:y}=e;if(p=e.el=i(e.type,l,m&&m.is,m),8&g?a(p,e.children):16&g&&E(e.children,p,null,o,c,l&&"foreignObject"!==h,u,f),y&&Ur(e,null,o,"created"),m){for(const t in m)"value"===t||q(t)||s(p,t,null,m[t],l,e.children,o,c,K);"value"in m&&s(p,"value",null,m.value),(d=m.onVnodeBeforeMount)&&Ts(d,o,e)}x(p,e,e.scopeId,u,o),y&&Ur(e,null,o,"beforeMount");const b=(!c||c&&!c.pendingBranch)&&v&&!v.persisted;b&&v.beforeEnter(p),r(p,t,n),((d=m&&m.onVnodeMounted)||b||y)&&Vo((()=>{d&&Ts(d,o,e),b&&v.enter(p),y&&Ur(e,null,o,"mounted")}),c)},x=(e,t,n,r,o)=>{if(n&&d(e,n),r)for(let t=0;t{for(let u=l;u{const l=t.el=e.el;let{patchFlag:u,dynamicChildren:f,dirs:p}=t;u|=16&e.patchFlag;const d=e.props||C,h=t.props||C;let m;n&&Uo(n,!1),(m=h.onVnodeBeforeUpdate)&&Ts(m,n,t,e),p&&Ur(t,e,n,"beforeUpdate"),n&&Uo(n,!0);const g=o&&"foreignObject"!==t.type;if(f?N(e.dynamicChildren,f,l,n,r,g,i):c||L(e,t,l,null,n,r,g,i,!1),u>0){if(16&u)R(l,t,d,h,n,r,o);else if(2&u&&d.class!==h.class&&s(l,"class",null,h.class,o),4&u&&s(l,"style",d.style,h.style,o),8&u){const i=t.dynamicProps;for(let t=0;t{m&&Ts(m,n,t,e),p&&Ur(t,e,n,"updated")}),r)},N=(e,t,n,r,o,s,i)=>{for(let c=0;c{if(n!==r){if(n!==C)for(const l in n)q(l)||l in r||s(e,l,n[l],null,c,t.children,o,i,K);for(const l in r){if(q(l))continue;const u=r[l],a=n[l];u!==a&&"value"!==l&&s(e,l,a,u,c,t.children,o,i,K)}"value"in r&&s(e,"value",n.value,r.value)}},M=(e,t,n,o,s,i,l,u,a)=>{const f=t.el=e?e.el:c(""),p=t.anchor=e?e.anchor:c("");let{patchFlag:d,dynamicChildren:h,slotScopeIds:m}=t;m&&(u=u?u.concat(m):m),null==e?(r(f,n,o),r(p,n,o),E(t.children,n,p,s,i,l,u,a)):d>0&&64&d&&h&&e.dynamicChildren?(N(e.dynamicChildren,h,n,s,i,l,u),(null!=t.key||s&&t===s.subTree)&&Do(e,t,!0)):L(e,t,n,p,s,i,l,u,a)},P=(e,t,n,r,o,s,i,c,l)=>{t.slotScopeIds=c,null==e?512&t.shapeFlag?o.ctx.activate(t,n,r,i,l):I(t,n,r,o,s,i,l):$(e,t,l)},I=(e,t,n,r,o,s,i)=>{const c=e.component=Os(e,r,o);if(br(e)&&(c.ctx.renderer=Z),Bs(c),c.asyncDep){if(o&&o.registerDep(c,F),!e.el){const e=c.subTree=gs(Yo);v(null,e,t,n)}}else F(c,e,t,n,o,s,i)},$=(e,t,n)=>{const r=t.component=e.component;if(function(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:c,patchFlag:l}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!o&&!c||c&&c.$stable)||r!==i&&(r?!i||jn(r,i,u):!!i);if(1024&l)return!0;if(16&l)return r?jn(r,i,u):!!i;if(8&l){const e=t.dynamicProps;for(let t=0;tcn&&sn.splice(t,1)}(r.update),r.update()}else t.el=e.el,r.vnode=t},F=(e,t,n,r,o,s,i)=>{const c=e.effect=new xe((()=>{if(e.isMounted){let t,{next:n,bu:r,u:c,parent:l,vnode:u}=e,a=n;0,Uo(e,!1),n?(n.el=u.el,V(e,n,i)):n=u,r&&re(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&Ts(t,l,n,u),Uo(e,!0);const p=Fn(e);0;const d=e.subTree;e.subTree=p,m(d,p,f(d.el),G(d),e,o,s),n.el=p.el,null===a&&Un(e,p.el),c&&Vo(c,o),(t=n.props&&n.props.onVnodeUpdated)&&Vo((()=>Ts(t,l,n,u)),o)}else{let i;const{el:c,props:l}=t,{bm:u,m:a,parent:f}=e,p=gr(t);if(Uo(e,!1),u&&re(u),!p&&(i=l&&l.onVnodeBeforeMount)&&Ts(i,f,t),Uo(e,!0),c&&ee){const n=()=>{e.subTree=Fn(e),ee(c,e.subTree,e,o,null)};p?t.type.__asyncLoader().then((()=>!e.isUnmounted&&n())):n()}else{0;const i=e.subTree=Fn(e);0,m(null,i,n,r,e,o,s),t.el=i.el}if(a&&Vo(a,o),!p&&(i=l&&l.onVnodeMounted)){const e=t;Vo((()=>Ts(i,f,e)),o)}(256&t.shapeFlag||f&&gr(f.vnode)&&256&f.vnode.shapeFlag)&&e.a&&Vo(e.a,o),e.isMounted=!0,t=n=r=null}}),(()=>hn(l)),e.scope),l=e.update=()=>c.run();l.id=e.uid,Uo(e,!0),l()},V=(e,t,n)=>{t.component=e;const r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,c=Mt(o),[l]=e.propsOptions;let u=!1;if(!(r||i>0)||16&i){let r;vo(e,t,o,s)&&(u=!0);for(const s in c)t&&(A(t,s)||(r=X(s))!==s&&A(t,r))||(l?!n||void 0===n[s]&&void 0===n[r]||(o[s]=yo(l,c,s,void 0,e,!0)):delete o[s]);if(s!==c)for(const e in s)t&&A(t,e)||(delete s[e],u=!0)}else if(8&i){const n=e.vnode.dynamicProps;for(let r=0;r{const{vnode:r,slots:o}=e;let s=!0,i=C;if(32&r.shapeFlag){const e=t._;e?n&&1===e?s=!1:(O(o,t),n||1!==e||delete o._):(s=!t.$stable,To(t,o)),i=t}else t&&(No(e,t),i={default:1});if(s)for(const e in o)wo(e)||e in i||delete o[e]})(e,t.children,n),Ne(),vn(),Re()},L=(e,t,n,r,o,s,i,c,l=!1)=>{const u=e&&e.children,f=e?e.shapeFlag:0,p=t.children,{patchFlag:d,shapeFlag:h}=t;if(d>0){if(128&d)return void j(u,p,n,r,o,s,i,c,l);if(256&d)return void B(u,p,n,r,o,s,i,c,l)}8&h?(16&f&&K(u,o,s),p!==u&&a(n,p)):16&f?16&h?j(u,p,n,r,o,s,i,c,l):K(u,o,s,!0):(8&f&&a(n,""),16&h&&E(p,n,r,o,s,i,c,l))},B=(e,t,n,r,o,s,i,c,l)=>{t=t||w;const u=(e=e||w).length,a=t.length,f=Math.min(u,a);let p;for(p=0;pa?K(e,o,s,!0,!1,f):E(t,n,r,o,s,i,c,l,f)},j=(e,t,n,r,o,s,i,c,l)=>{let u=0;const a=t.length;let f=e.length-1,p=a-1;for(;u<=f&&u<=p;){const r=e[u],a=t[u]=l?ws(t[u]):Cs(t[u]);if(!as(r,a))break;m(r,a,n,null,o,s,i,c,l),u++}for(;u<=f&&u<=p;){const r=e[f],u=t[p]=l?ws(t[p]):Cs(t[p]);if(!as(r,u))break;m(r,u,n,null,o,s,i,c,l),f--,p--}if(u>f){if(u<=p){const e=p+1,f=ep)for(;u<=f;)D(e[u],o,s,!0),u++;else{const d=u,h=u,g=new Map;for(u=h;u<=p;u++){const e=t[u]=l?ws(t[u]):Cs(t[u]);null!=e.key&&g.set(e.key,u)}let v,y=0;const b=p-h+1;let _=!1,S=0;const x=new Array(b);for(u=0;u=b){D(r,o,s,!0);continue}let a;if(null!=r.key)a=g.get(r.key);else for(v=h;v<=p;v++)if(0===x[v-h]&&as(r,t[v])){a=v;break}void 0===a?D(r,o,s,!0):(x[a-h]=u+1,a>=S?S=a:_=!0,m(r,t[a],n,null,o,s,i,c,l),y++)}const C=_?function(e){const t=e.slice(),n=[0];let r,o,s,i,c;const l=e.length;for(r=0;r>1,e[n[c]]0&&(t[r]=n[s-1]),n[s]=r)}}s=n.length,i=n[s-1];for(;s-- >0;)n[s]=i,i=t[i];return n}(x):w;for(v=C.length-1,u=b-1;u>=0;u--){const e=h+u,f=t[e],p=e+1{const{el:i,type:c,transition:l,children:u,shapeFlag:a}=e;if(6&a)return void U(e.component.subTree,t,n,o);if(128&a)return void e.suspense.move(t,n,o);if(64&a)return void c.move(e,t,n,Z);if(c===Jo){r(i,t,n);for(let e=0;e{let s;for(;e&&e!==t;)s=p(e),r(e,n,o),e=s;r(t,n,o)})(e,t,n);if(2!==o&&1&a&&l)if(0===o)l.beforeEnter(i),r(i,t,n),Vo((()=>l.enter(i)),s);else{const{leave:e,delayLeave:o,afterLeave:s}=l,c=()=>r(i,t,n),u=()=>{e(i,(()=>{c(),s&&s()}))};o?o(i,c,u):u()}else r(i,t,n)},D=(e,t,n,r=!1,o=!1)=>{const{type:s,props:i,ref:c,children:l,dynamicChildren:u,shapeFlag:a,patchFlag:f,dirs:p}=e;if(null!=c&&Po(c,null,n,e,!0),256&a)return void t.ctx.deactivate(e);const d=1&a&&p,h=!gr(e);let m;if(h&&(m=i&&i.onVnodeBeforeUnmount)&&Ts(m,t,e),6&a)z(e.component,n,r);else{if(128&a)return void e.suspense.unmount(n,r);d&&Ur(e,null,t,"beforeUnmount"),64&a?e.type.remove(e,t,n,o,Z,r):u&&(s!==Jo||f>0&&64&f)?K(u,t,n,!1,!0):(s===Jo&&384&f||!o&&16&a)&&K(l,t,n),r&&H(e)}(h&&(m=i&&i.onVnodeUnmounted)||d)&&Vo((()=>{m&&Ts(m,t,e),d&&Ur(e,null,t,"unmounted")}),n)},H=e=>{const{type:t,el:n,anchor:r,transition:s}=e;if(t===Jo)return void W(n,r);if(t===Qo)return void b(e);const i=()=>{o(n),s&&!s.persisted&&s.afterLeave&&s.afterLeave()};if(1&e.shapeFlag&&s&&!s.persisted){const{leave:t,delayLeave:r}=s,o=()=>t(n,i);r?r(e.el,i,o):o()}else i()},W=(e,t)=>{let n;for(;e!==t;)n=p(e),o(e),e=n;o(t)},z=(e,t,n)=>{const{bum:r,scope:o,update:s,subTree:i,um:c}=e;r&&re(r),o.stop(),s&&(s.active=!1,D(i,e,t,n)),c&&Vo(c,t),Vo((()=>{e.isUnmounted=!0}),t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve())},K=(e,t,n,r=!1,o=!1,s=0)=>{for(let i=s;i6&e.shapeFlag?G(e.component.subTree):128&e.shapeFlag?e.suspense.next():p(e.anchor||e.el),J=(e,t,n)=>{null==e?t._vnode&&D(t._vnode,null,null,!0):m(t._vnode||null,e,t,null,null,null,n),vn(),yn(),t._vnode=e},Z={p:m,um:D,m:U,r:H,mt:I,mc:E,pc:L,pbc:N,n:G,o:e};let Q,ee;return t&&([Q,ee]=t(Z)),{render:J,hydrate:Q,createApp:Mo(J,Q)}}function Uo({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Do(e,t,n=!1){const r=e.children,o=t.children;if(I(r)&&I(o))for(let e=0;ee&&(e.disabled||""===e.disabled),Wo=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,zo=(e,t)=>{const n=e&&e.to;if(B(n)){if(t){const e=t(n);return e}return null}return n};function Ko(e,t,n,{o:{insert:r},m:o},s=2){0===s&&r(e.targetAnchor,t,n);const{el:i,anchor:c,shapeFlag:l,children:u,props:a}=e,f=2===s;if(f&&r(i,t,n),(!f||Ho(a))&&16&l)for(let e=0;e{16&y&&a(b,e,t,o,s,i,c,l)};v?g(n,u):f&&g(f,p)}else{t.el=e.el;const r=t.anchor=e.anchor,a=t.target=e.target,d=t.targetAnchor=e.targetAnchor,m=Ho(e.props),g=m?n:a,y=m?r:d;if(i=i||Wo(a),_?(p(e.dynamicChildren,_,g,o,s,i,c),Do(e,t,!0)):l||f(e,t,g,y,o,s,i,c,!1),v)m||Ko(t,n,r,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=t.target=zo(t.props,h);e&&Ko(t,e,null,u,0)}else m&&Ko(t,a,d,u,1)}Go(t)},remove(e,t,n,r,{um:o,o:{remove:s}},i){const{shapeFlag:c,children:l,anchor:u,targetAnchor:a,target:f,props:p}=e;if(f&&s(a),(i||!Ho(p))&&(s(u),16&c))for(let e=0;e0?es||w:null,ns(),os>0&&es&&es.push(e),e}function cs(e,t,n,r,o,s){return is(ms(e,t,n,r,o,s,!0))}function ls(e,t,n,r,o){return is(gs(e,t,n,r,o,!0))}function us(e){return!!e&&!0===e.__v_isVNode}function as(e,t){return e.type===t.type&&e.key===t.key}function fs(e){rs=e}const ps="__vInternal",ds=({key:e})=>null!=e?e:null,hs=({ref:e,ref_key:t,ref_for:n})=>null!=e?B(e)||Vt(e)||L(e)?{i:Rn,r:e,k:t,f:!!n}:e:null;function ms(e,t=null,n=null,r=0,o=null,s=(e===Jo?0:1),i=!1,c=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ds(t),ref:t&&hs(t),scopeId:On,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Rn};return c?(ks(l,n),128&s&&e.normalize(l)):n&&(l.shapeFlag|=B(n)?8:16),os>0&&!i&&es&&(l.patchFlag>0||6&s)&&32!==l.patchFlag&&es.push(l),l}const gs=vs;function vs(e,t=null,n=null,r=0,o=null,s=!1){if(e&&e!==Wr||(e=Yo),us(e)){const r=bs(e,t,!0);return n&&ks(r,n),os>0&&!s&&es&&(6&r.shapeFlag?es[es.indexOf(e)]=r:es.push(r)),r.patchFlag|=-2,r}if(qs(e)&&(e=e.__vccOpts),t){t=ys(t);let{class:e,style:n}=t;e&&!B(e)&&(t.class=f(e)),U(n)&&(Ot(n)&&!I(n)&&(n=O({},n)),t.style=i(n))}return ms(e,t,n,r,o,B(e)?1:Dn(e)?128:(e=>e.__isTeleport)(e)?64:U(e)?4:L(e)?2:0,s,!0)}function ys(e){return e?Ot(e)||ps in e?O({},e):e:null}function bs(e,t,n=!1){const{props:r,ref:o,patchFlag:s,children:i}=e,c=t?Es(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&ds(c),ref:t&&t.ref?n&&o?I(o)?o.concat(hs(t)):[o,hs(t)]:hs(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Jo?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&bs(e.ssContent),ssFallback:e.ssFallback&&bs(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function _s(e=" ",t=0){return gs(Zo,null,e,t)}function Ss(e,t){const n=gs(Qo,null,e);return n.staticCount=t,n}function xs(e="",t=!1){return t?(ts(),ls(Yo,null,e)):gs(Yo,null,e)}function Cs(e){return null==e||"boolean"==typeof e?gs(Yo):I(e)?gs(Jo,null,e.slice()):"object"==typeof e?ws(e):gs(Zo,null,String(e))}function ws(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:bs(e)}function ks(e,t){let n=0;const{shapeFlag:r}=e;if(null==t)t=null;else if(I(t))n=16;else if("object"==typeof t){if(65&r){const n=t.default;return void(n&&(n._c&&(n._d=!1),ks(e,n()),n._c&&(n._d=!0)))}{n=32;const r=t._;r||ps in t?3===r&&Rn&&(1===Rn.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=Rn}}else L(t)?(t={default:t,_ctx:Rn},n=32):(t=String(t),64&r?(n=16,t=[_s(t)]):n=8);e.children=t,e.shapeFlag|=n}function Es(...e){const t={};for(let n=0;nMs||Rn,As=e=>{Ms=e,e.scope.on()},Is=()=>{Ms&&Ms.scope.off(),Ms=null};function $s(e){return 4&e.vnode.shapeFlag}let Fs,Vs,Ls=!1;function Bs(e,t=!1){Ls=t;const{props:n,children:r}=e.vnode,o=$s(e);!function(e,t,n,r=!1){const o={},s={};oe(s,ps,1),e.propsDefaults=Object.create(null),vo(e,t,o,s);for(const t in e.propsOptions[0])t in o||(o[t]=void 0);n?e.props=r?o:Ct(o):e.type.props?e.props=o:e.props=s,e.attrs=s}(e,n,o,t),((e,t)=>{if(32&e.vnode.shapeFlag){const n=t._;n?(e.slots=Mt(t),oe(t,"_",n)):To(t,e.slots={})}else e.slots={},t&&No(e,t);oe(e.slots,ps,1)})(e,r);const s=o?function(e,t){const n=e.type;0;e.accessCache=Object.create(null),e.proxy=Pt(new Proxy(e.ctx,ro)),!1;const{setup:r}=n;if(r){const n=e.setupContext=r.length>1?Ws(e):null;As(e),Ne();const o=en(r,e,0,[e.props,n]);if(Re(),Is(),D(o)){if(o.then(Is,Is),t)return o.then((n=>{js(e,n,t)})).catch((t=>{nn(t,e,0)}));e.asyncDep=o}else js(e,o,t)}else Hs(e,t)}(e,t):void 0;return Ls=!1,s}function js(e,t,n){L(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:U(t)&&(e.setupState=zt(t)),Hs(e,n)}function Us(e){Fs=e,Vs=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,oo))}}const Ds=()=>!Fs;function Hs(e,t,n){const r=e.type;if(!e.render){if(!t&&Fs&&!r.render){const t=r.template||uo(e).template;if(t){0;const{isCustomElement:n,compilerOptions:o}=e.appContext.config,{delimiters:s,compilerOptions:i}=r,c=O(O({isCustomElement:n,delimiters:s},o),i);r.render=Fs(t,c)}}e.render=r.render||k,Vs&&Vs(e)}As(e),Ne(),io(e),Re(),Is()}function Ws(e){const t=t=>{e.exposed=t||{}};let n;return{get attrs(){return n||(n=function(e){return new Proxy(e.attrs,{get(t,n){return Oe(e,0,"$attrs"),t[n]}})}(e))},slots:e.slots,emit:e.emit,expose:t}}function zs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(zt(Pt(e.exposed)),{get(t,n){return n in t?t[n]:n in to?to[n](e):void 0},has(e,t){return t in e||t in to}}))}function Ks(e,t=!0){return L(e)?e.displayName||e.name:e.name||t&&e.__name}function qs(e){return L(e)&&"__vccOpts"in e}const Gs=(e,t)=>function(e,t,n=!1){let r,o;const s=L(e);return s?(r=e,o=k):(r=e.get,o=e.set),new Qt(r,o,s||!o,n)}(e,0,Ls);function Js(){return null}function Zs(){return null}function Ys(e){0}function Qs(e,t){return null}function Xs(){return ti().slots}function ei(){return ti().attrs}function ti(){const e=Ps();return e.setupContext||(e.setupContext=Ws(e))}function ni(e,t){const n=I(e)?e.reduce(((e,t)=>(e[t]={},e)),{}):e;for(const e in t){const r=n[e];r?I(r)||L(r)?n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(n[e]={default:t[e]})}return n}function ri(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}function oi(e){const t=Ps();let n=e();return Is(),D(n)&&(n=n.catch((e=>{throw As(t),e}))),[n,()=>As(t)]}function si(e,t,n){const r=arguments.length;return 2===r?U(t)&&!I(t)?us(t)?gs(e,null,[t]):gs(e,t):gs(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&us(n)&&(n=[n]),gs(e,t,n))}const ii=Symbol(""),ci=()=>{{const e=Zn(ii);return e}};function li(){return void 0}function ui(e,t,n,r){const o=n[r];if(o&&ai(o,e))return o;const s=t();return s.memo=e.slice(),n[r]=s}function ai(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&es&&es.push(e),!0}const fi="3.2.45",pi={createComponentInstance:Os,setupComponent:Bs,renderComponentRoot:Fn,setCurrentRenderingInstance:Mn,isVNode:us,normalizeVNode:Cs},di=null,hi=null,mi="undefined"!=typeof document?document:null,gi=mi&&mi.createElement("template"),vi={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t?mi.createElementNS("http://www.w3.org/2000/svg",e):mi.createElement(e,n?{is:n}:void 0);return"select"===e&&r&&null!=r.multiple&&o.setAttribute("multiple",r.multiple),o},createText:e=>mi.createTextNode(e),createComment:e=>mi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>mi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),o!==s&&(o=o.nextSibling););else{gi.innerHTML=r?`${e}`:e;const o=gi.content;if(r){const e=o.firstChild;for(;e.firstChild;)o.appendChild(e.firstChild);o.removeChild(e)}t.insertBefore(o,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};const yi=/\s*!important$/;function bi(e,t,n){if(I(n))n.forEach((n=>bi(e,t,n)));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=function(e,t){const n=Si[t];if(n)return n;let r=Y(t);if("filter"!==r&&r in e)return Si[t]=r;r=ee(r);for(let n=0;n<_i.length;n++){const o=_i[n]+r;if(o in e)return Si[t]=o}return t}(e,t);yi.test(n)?e.setProperty(X(r),n.replace(yi,""),"important"):e[r]=n}}const _i=["Webkit","Moz","ms"],Si={};const xi="http://www.w3.org/1999/xlink";function Ci(e,t,n,r){e.addEventListener(t,n,r)}function wi(e,t,n,r,o=null){const s=e._vei||(e._vei={}),i=s[t];if(r&&i)i.value=r;else{const[n,c]=function(e){let t;if(ki.test(e)){let n;for(t={};n=e.match(ki);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}const n=":"===e[2]?e.slice(3):X(e.slice(2));return[n,t]}(t);if(r){const i=s[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();tn(function(e,t){if(I(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map((e=>t=>!t._stopped&&e&&e(t)))}return t}(e,n.value),t,5,[e])};return n.value=e,n.attached=(()=>Ei||(Ti.then((()=>Ei=0)),Ei=Date.now()))(),n}(r,o);Ci(e,n,i,c)}else i&&(!function(e,t,n,r){e.removeEventListener(t,n,r)}(e,n,i,c),s[t]=void 0)}}const ki=/(?:Once|Passive|Capture)$/;let Ei=0;const Ti=Promise.resolve();const Ni=/^on[a-z]/;function Ri(e,t){const n=mr(e);class r extends Pi{constructor(e){super(n,e,t)}}return r.def=n,r}const Oi=e=>Ri(e,Ic),Mi="undefined"!=typeof HTMLElement?HTMLElement:class{};class Pi extends Mi{constructor(e,t={},n){super(),this._def=e,this._props=t,this._instance=null,this._connected=!1,this._resolved=!1,this._numberProps=null,this.shadowRoot&&n?n(this._createVNode(),this.shadowRoot):(this.attachShadow({mode:"open"}),this._def.__asyncLoader||this._resolveProps(this._def))}connectedCallback(){this._connected=!0,this._instance||(this._resolved?this._update():this._resolveDef())}disconnectedCallback(){this._connected=!1,dn((()=>{this._connected||(Ac(null,this.shadowRoot),this._instance=null)}))}_resolveDef(){this._resolved=!0;for(let e=0;e{for(const t of e)this._setAttr(t.attributeName)})).observe(this,{attributes:!0});const e=(e,t=!1)=>{const{props:n,styles:r}=e;let o;if(n&&!I(n))for(const e in n){const t=n[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=se(this._props[e])),(o||(o=Object.create(null)))[Y(e)]=!0)}this._numberProps=o,t&&this._resolveProps(e),this._applyStyles(r),this._update()},t=this._def.__asyncLoader;t?t().then((t=>e(t,!0))):e(this._def)}_resolveProps(e){const{props:t}=e,n=I(t)?t:Object.keys(t||{});for(const e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e],!0,!1);for(const e of n.map(Y))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t)}})}_setAttr(e){let t=this.getAttribute(e);const n=Y(e);this._numberProps&&this._numberProps[n]&&(t=se(t)),this._setProp(n,t,!1)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!0){t!==this._props[e]&&(this._props[e]=t,r&&this._instance&&this._update(),n&&(!0===t?this.setAttribute(X(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(X(e),t+""):t||this.removeAttribute(X(e))))}_update(){Ac(this._createVNode(),this.shadowRoot)}_createVNode(){const e=gs(this._def,O({},this._props));return this._instance||(e.ce=e=>{this._instance=e,e.isCE=!0;const t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,{detail:t}))};e.emit=(e,...n)=>{t(e,n),X(e)!==e&&t(X(e),n)};let n=this;for(;n=n&&(n.parentNode||n.host);)if(n instanceof Pi){e.parent=n._instance,e.provides=n._instance.provides;break}}),e}_applyStyles(e){e&&e.forEach((e=>{const t=document.createElement("style");t.textContent=e,this.shadowRoot.appendChild(t)}))}}function Ai(e="$style"){{const t=Ps();if(!t)return C;const n=t.type.__cssModules;if(!n)return C;const r=n[e];return r||C}}function Ii(e){const t=Ps();if(!t)return;const n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach((e=>Fi(e,n)))},r=()=>{const r=e(t.proxy);$i(t.subTree,r),n(r)};Qn(r),Mr((()=>{const e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),$r((()=>e.disconnect()))}))}function $i(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push((()=>{$i(n.activeBranch,t)}))}for(;e.component;)e=e.component.subTree;if(1&e.shapeFlag&&e.el)Fi(e.el,t);else if(e.type===Jo)e.children.forEach((e=>$i(e,t)));else if(e.type===Qo){let{el:n,anchor:r}=e;for(;n&&(Fi(n,t),n!==r);)n=n.nextSibling}}function Fi(e,t){if(1===e.nodeType){const n=e.style;for(const e in t)n.setProperty(`--${e}`,t[e])}}const Vi="transition",Li="animation",Bi=(e,{slots:t})=>si(lr,Wi(e),t);Bi.displayName="Transition";const ji={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Ui=Bi.props=O({},lr.props,ji),Di=(e,t=[])=>{I(e)?e.forEach((e=>e(...t))):e&&e(...t)},Hi=e=>!!e&&(I(e)?e.some((e=>e.length>1)):e.length>1);function Wi(e){const t={};for(const n in e)n in ji||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:u=i,appearToClass:a=c,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,h=function(e){if(null==e)return null;if(U(e))return[zi(e.enter),zi(e.leave)];{const t=zi(e);return[t,t]}}(o),m=h&&h[0],g=h&&h[1],{onBeforeEnter:v,onEnter:y,onEnterCancelled:b,onLeave:_,onLeaveCancelled:S,onBeforeAppear:x=v,onAppear:C=y,onAppearCancelled:w=b}=t,k=(e,t,n)=>{qi(e,t?a:c),qi(e,t?u:i),n&&n()},E=(e,t)=>{e._isLeaving=!1,qi(e,f),qi(e,d),qi(e,p),t&&t()},T=e=>(t,n)=>{const o=e?C:y,i=()=>k(t,e,n);Di(o,[t,i]),Gi((()=>{qi(t,e?l:s),Ki(t,e?a:c),Hi(o)||Zi(t,r,m,i)}))};return O(t,{onBeforeEnter(e){Di(v,[e]),Ki(e,s),Ki(e,i)},onBeforeAppear(e){Di(x,[e]),Ki(e,l),Ki(e,u)},onEnter:T(!1),onAppear:T(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>E(e,t);Ki(e,f),ec(),Ki(e,p),Gi((()=>{e._isLeaving&&(qi(e,f),Ki(e,d),Hi(_)||Zi(e,r,g,n))})),Di(_,[e,n])},onEnterCancelled(e){k(e,!1),Di(b,[e])},onAppearCancelled(e){k(e,!0),Di(w,[e])},onLeaveCancelled(e){E(e),Di(S,[e])}})}function zi(e){return se(e)}function Ki(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.add(t))),(e._vtc||(e._vtc=new Set)).add(t)}function qi(e,t){t.split(/\s+/).forEach((t=>t&&e.classList.remove(t)));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Gi(e){requestAnimationFrame((()=>{requestAnimationFrame(e)}))}let Ji=0;function Zi(e,t,n,r){const o=e._endId=++Ji,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:c,propCount:l}=Yi(e,t);if(!i)return r();const u=i+"end";let a=0;const f=()=>{e.removeEventListener(u,p),s()},p=t=>{t.target===e&&++a>=l&&f()};setTimeout((()=>{a(n[e]||"").split(", "),o=r(`${Vi}Delay`),s=r(`${Vi}Duration`),i=Qi(o,s),c=r(`${Li}Delay`),l=r(`${Li}Duration`),u=Qi(c,l);let a=null,f=0,p=0;t===Vi?i>0&&(a=Vi,f=i,p=s.length):t===Li?u>0&&(a=Li,f=u,p=l.length):(f=Math.max(i,u),a=f>0?i>u?Vi:Li:null,p=a?a===Vi?s.length:l.length:0);return{type:a,timeout:f,propCount:p,hasTransform:a===Vi&&/\b(transform|all)(,|$)/.test(r(`${Vi}Property`).toString())}}function Qi(e,t){for(;e.lengthXi(t)+Xi(e[n]))))}function Xi(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function ec(){return document.body.offsetHeight}const tc=new WeakMap,nc=new WeakMap,rc={name:"TransitionGroup",props:O({},Ui,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Ps(),r=ir();let o,s;return Ar((()=>{if(!o.length)return;const t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){const r=e.cloneNode();e._vtc&&e._vtc.forEach((e=>{e.split(/\s+/).forEach((e=>e&&r.classList.remove(e)))}));n.split(/\s+/).forEach((e=>e&&r.classList.add(e))),r.style.display="none";const o=1===t.nodeType?t:t.parentNode;o.appendChild(r);const{hasTransform:s}=Yi(r);return o.removeChild(r),s}(o[0].el,n.vnode.el,t))return;o.forEach(oc),o.forEach(sc);const r=o.filter(ic);ec(),r.forEach((e=>{const n=e.el,r=n.style;Ki(n,t),r.transform=r.webkitTransform=r.transitionDuration="";const o=n._moveCb=e=>{e&&e.target!==n||e&&!/transform$/.test(e.propertyName)||(n.removeEventListener("transitionend",o),n._moveCb=null,qi(n,t))};n.addEventListener("transitionend",o)}))})),()=>{const i=Mt(e),c=Wi(i);let l=i.tag||Jo;o=s,s=t.default?hr(t.default()):[];for(let e=0;e{const t=e.props["onUpdate:modelValue"]||!1;return I(t)?e=>re(t,e):t};function lc(e){e.target.composing=!0}function uc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ac={created(e,{modifiers:{lazy:t,trim:n,number:r}},o){e._assign=cc(o);const s=r||o.props&&"number"===o.props.type;Ci(e,t?"change":"input",(t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),s&&(r=se(r)),e._assign(r)})),n&&Ci(e,"change",(()=>{e.value=e.value.trim()})),t||(Ci(e,"compositionstart",lc),Ci(e,"compositionend",uc),Ci(e,"change",uc))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:o}},s){if(e._assign=cc(s),e.composing)return;if(document.activeElement===e&&"range"!==e.type){if(n)return;if(r&&e.value.trim()===t)return;if((o||"number"===e.type)&&se(e.value)===t)return}const i=null==t?"":t;e.value!==i&&(e.value=i)}},fc={deep:!0,created(e,t,n){e._assign=cc(n),Ci(e,"change",(()=>{const t=e._modelValue,n=gc(e),r=e.checked,o=e._assign;if(I(t)){const e=_(t,n),s=-1!==e;if(r&&!s)o(t.concat(n));else if(!r&&s){const n=[...t];n.splice(e,1),o(n)}}else if(F(t)){const e=new Set(t);r?e.add(n):e.delete(n),o(e)}else o(vc(e,r))}))},mounted:pc,beforeUpdate(e,t,n){e._assign=cc(n),pc(e,t,n)}};function pc(e,{value:t,oldValue:n},r){e._modelValue=t,I(t)?e.checked=_(t,r.props.value)>-1:F(t)?e.checked=t.has(r.props.value):t!==n&&(e.checked=b(t,vc(e,!0)))}const dc={created(e,{value:t},n){e.checked=b(t,n.props.value),e._assign=cc(n),Ci(e,"change",(()=>{e._assign(gc(e))}))},beforeUpdate(e,{value:t,oldValue:n},r){e._assign=cc(r),t!==n&&(e.checked=b(t,r.props.value))}},hc={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const o=F(t);Ci(e,"change",(()=>{const t=Array.prototype.filter.call(e.options,(e=>e.selected)).map((e=>n?se(gc(e)):gc(e)));e._assign(e.multiple?o?new Set(t):t:t[0])})),e._assign=cc(r)},mounted(e,{value:t}){mc(e,t)},beforeUpdate(e,t,n){e._assign=cc(n)},updated(e,{value:t}){mc(e,t)}};function mc(e,t){const n=e.multiple;if(!n||I(t)||F(t)){for(let r=0,o=e.options.length;r-1:o.selected=t.has(s);else if(b(gc(o),t))return void(e.selectedIndex!==r&&(e.selectedIndex=r))}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function gc(e){return"_value"in e?e._value:e.value}function vc(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const yc={created(e,t,n){_c(e,t,n,null,"created")},mounted(e,t,n){_c(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){_c(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){_c(e,t,n,r,"updated")}};function bc(e,t){switch(e){case"SELECT":return hc;case"TEXTAREA":return ac;default:switch(t){case"checkbox":return fc;case"radio":return dc;default:return ac}}}function _c(e,t,n,r,o){const s=bc(e.tagName,n.props&&n.props.type)[o];s&&s(e,t,n,r)}const Sc=["ctrl","shift","alt","meta"],xc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>Sc.some((n=>e[`${n}Key`]&&!t.includes(n)))},Cc=(e,t)=>(n,...r)=>{for(let e=0;en=>{if(!("key"in n))return;const r=X(n.key);return t.some((e=>e===r||wc[e]===r))?e(n):void 0},Ec={beforeMount(e,{value:t},{transition:n}){e._vod="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):Tc(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Tc(e,!0),r.enter(e)):r.leave(e,(()=>{Tc(e,!1)})):Tc(e,t))},beforeUnmount(e,{value:t}){Tc(e,t)}};function Tc(e,t){e.style.display=t?e._vod:"none"}const Nc=O({patchProp:(e,t,n,r,o=!1,s,i,c,l)=>{"class"===t?function(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,r,o):"style"===t?function(e,t,n){const r=e.style,o=B(n);if(n&&!o){for(const e in n)bi(r,e,n[e]);if(t&&!B(t))for(const e in t)null==n[e]&&bi(r,e,"")}else{const s=r.display;o?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}(e,n,r):N(t)?R(t)||wi(e,t,0,r,i):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,r){if(r)return"innerHTML"===t||"textContent"===t||!!(t in e&&Ni.test(t)&&L(n));if("spellcheck"===t||"draggable"===t||"translate"===t)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if(Ni.test(t)&&B(n))return!1;return t in e}(e,t,r,o))?function(e,t,n,r,o,s,i){if("innerHTML"===t||"textContent"===t)return r&&i(r,o,s),void(e[t]=null==n?"":n);if("value"===t&&"PROGRESS"!==e.tagName&&!e.tagName.includes("-")){e._value=n;const r=null==n?"":n;return e.value===r&&"OPTION"!==e.tagName||(e.value=r),void(null==n&&e.removeAttribute(t))}let c=!1;if(""===n||null==n){const r=typeof e[t];"boolean"===r?n=y(n):null==n&&"string"===r?(n="",c=!0):"number"===r&&(n=0,c=!0)}try{e[t]=n}catch(e){}c&&e.removeAttribute(t)}(e,t,r,s,i,c,l):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),function(e,t,n,r,o){if(r&&t.startsWith("xlink:"))null==n?e.removeAttributeNS(xi,t.slice(6,t.length)):e.setAttributeNS(xi,t,n);else{const r=v(t);null==n||r&&!y(n)?e.removeAttribute(t):e.setAttribute(t,r?"":n)}}(e,t,r,o))}},vi);let Rc,Oc=!1;function Mc(){return Rc||(Rc=Lo(Nc))}function Pc(){return Rc=Oc?Rc:Bo(Nc),Oc=!0,Rc}const Ac=(...e)=>{Mc().render(...e)},Ic=(...e)=>{Pc().hydrate(...e)},$c=(...e)=>{const t=Mc().createApp(...e);const{mount:n}=t;return t.mount=e=>{const r=Vc(e);if(!r)return;const o=t._component;L(o)||o.render||o.template||(o.template=r.innerHTML),r.innerHTML="";const s=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),s},t},Fc=(...e)=>{const t=Pc().createApp(...e);const{mount:n}=t;return t.mount=e=>{const t=Vc(e);if(t)return n(t,!0,t instanceof SVGElement)},t};function Vc(e){if(B(e)){return document.querySelector(e)}return e}let Lc=!1;const Bc=()=>{Lc||(Lc=!0,ac.getSSRProps=({value:e})=>({value:e}),dc.getSSRProps=({value:e},t)=>{if(t.props&&b(t.props.value,e))return{checked:!0}},fc.getSSRProps=({value:e},t)=>{if(I(e)){if(t.props&&_(e,t.props.value)>-1)return{checked:!0}}else if(F(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},yc.getSSRProps=(e,t)=>{if("string"!=typeof t.type)return;const n=bc(t.type.toUpperCase(),t.props&&t.props.type);return n.getSSRProps?n.getSSRProps(e,t):void 0},Ec.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}})};function jc(e){throw e}function Uc(e){}function Dc(e,t,n,r){const o=new SyntaxError(String(e));return o.code=e,o.loc=t,o}const Hc=Symbol(""),Wc=Symbol(""),zc=Symbol(""),Kc=Symbol(""),qc=Symbol(""),Gc=Symbol(""),Jc=Symbol(""),Zc=Symbol(""),Yc=Symbol(""),Qc=Symbol(""),Xc=Symbol(""),el=Symbol(""),tl=Symbol(""),nl=Symbol(""),rl=Symbol(""),ol=Symbol(""),sl=Symbol(""),il=Symbol(""),cl=Symbol(""),ll=Symbol(""),ul=Symbol(""),al=Symbol(""),fl=Symbol(""),pl=Symbol(""),dl=Symbol(""),hl=Symbol(""),ml=Symbol(""),gl=Symbol(""),vl=Symbol(""),yl=Symbol(""),bl=Symbol(""),_l=Symbol(""),Sl=Symbol(""),xl=Symbol(""),Cl=Symbol(""),wl=Symbol(""),kl=Symbol(""),El=Symbol(""),Tl=Symbol(""),Nl={[Hc]:"Fragment",[Wc]:"Teleport",[zc]:"Suspense",[Kc]:"KeepAlive",[qc]:"BaseTransition",[Gc]:"openBlock",[Jc]:"createBlock",[Zc]:"createElementBlock",[Yc]:"createVNode",[Qc]:"createElementVNode",[Xc]:"createCommentVNode",[el]:"createTextVNode",[tl]:"createStaticVNode",[nl]:"resolveComponent",[rl]:"resolveDynamicComponent",[ol]:"resolveDirective",[sl]:"resolveFilter",[il]:"withDirectives",[cl]:"renderList",[ll]:"renderSlot",[ul]:"createSlots",[al]:"toDisplayString",[fl]:"mergeProps",[pl]:"normalizeClass",[dl]:"normalizeStyle",[hl]:"normalizeProps",[ml]:"guardReactiveProps",[gl]:"toHandlers",[vl]:"camelize",[yl]:"capitalize",[bl]:"toHandlerKey",[_l]:"setBlockTracking",[Sl]:"pushScopeId",[xl]:"popScopeId",[Cl]:"withCtx",[wl]:"unref",[kl]:"isRef",[El]:"withMemo",[Tl]:"isMemoSame"};const Rl={source:"",start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0}};function Ol(e,t,n,r,o,s,i,c=!1,l=!1,u=!1,a=Rl){return e&&(c?(e.helper(Gc),e.helper(su(e.inSSR,u))):e.helper(ou(e.inSSR,u)),i&&e.helper(il)),{type:13,tag:t,props:n,children:r,patchFlag:o,dynamicProps:s,directives:i,isBlock:c,disableTracking:l,isComponent:u,loc:a}}function Ml(e,t=Rl){return{type:17,loc:t,elements:e}}function Pl(e,t=Rl){return{type:15,loc:t,properties:e}}function Al(e,t){return{type:16,loc:Rl,key:B(e)?Il(e,!0):e,value:t}}function Il(e,t=!1,n=Rl,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function $l(e,t=Rl){return{type:8,loc:t,children:e}}function Fl(e,t=[],n=Rl){return{type:14,loc:n,callee:e,arguments:t}}function Vl(e,t,n=!1,r=!1,o=Rl){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:o}}function Ll(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Rl}}const Bl=e=>4===e.type&&e.isStatic,jl=(e,t)=>e===t||e===X(t);function Ul(e){return jl(e,"Teleport")?Wc:jl(e,"Suspense")?zc:jl(e,"KeepAlive")?Kc:jl(e,"BaseTransition")?qc:void 0}const Dl=/^\d|[^\$\w]/,Hl=e=>!Dl.test(e),Wl=/[A-Za-z_$\xA0-\uFFFF]/,zl=/[\.\?\w$\xA0-\uFFFF]/,Kl=/\s+[.[]\s*|\s*[.[]\s+/g,ql=e=>{e=e.trim().replace(Kl,(e=>e.trim()));let t=0,n=[],r=0,o=0,s=null;for(let i=0;i4===e.key.type&&e.key.content===r))}return n}function au(e,t){return`_${t}_${e.replace(/[^\w]/g,((t,n)=>"-"===t?"_":e.charCodeAt(n).toString()))}`}function fu(e,{helper:t,removeHelper:n,inSSR:r}){e.isBlock||(e.isBlock=!0,n(ou(r,e.isComponent)),t(Gc),t(su(r,e.isComponent)))}function pu(e,t){const n=t.options?t.options.compatConfig:t.compatConfig,r=n&&n[e];return"MODE"===e?r||3:r}function du(e,t){const n=pu("MODE",t),r=pu(e,t);return 3===n?!0===r:!1!==r}function hu(e,t,n,...r){return du(e,t)}const mu=/&(gt|lt|amp|apos|quot);/g,gu={gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},vu={delimiters:["{{","}}"],getNamespace:()=>0,getTextMode:()=>0,isVoidTag:E,isPreTag:E,isCustomElement:E,decodeEntities:e=>e.replace(mu,((e,t)=>gu[t])),onError:jc,onWarn:Uc,comments:!1};function yu(e,t={}){const n=function(e,t){const n=O({},vu);let r;for(r in t)n[r]=void 0===t[r]?vu[r]:t[r];return{options:n,column:1,line:1,offset:0,originalSource:e,source:e,inPre:!1,inVPre:!1,onWarn:n.onWarn}}(e,t),r=Pu(n);return function(e,t=Rl){return{type:0,children:e,helpers:[],components:[],directives:[],hoists:[],imports:[],cached:0,temps:0,codegenNode:void 0,loc:t}}(bu(n,0,[]),Au(n,r))}function bu(e,t,n){const r=Iu(n),o=r?r.ns:0,s=[];for(;!ju(e,t,n);){const i=e.source;let c;if(0===t||1===t)if(!e.inVPre&&$u(i,e.options.delimiters[0]))c=Ru(e,t);else if(0===t&&"<"===i[0])if(1===i.length)Bu(e,5,1);else if("!"===i[1])$u(i,"\x3c!--")?c=xu(e):$u(i,""===i[2]){Bu(e,14,2),Fu(e,3);continue}if(/[a-z]/i.test(i[2])){Bu(e,23),Eu(e,1,r);continue}Bu(e,12,2),c=Cu(e)}else/[a-z]/i.test(i[1])?(c=wu(e,n),du("COMPILER_NATIVE_TEMPLATE",e)&&c&&"template"===c.tag&&!c.props.some((e=>7===e.type&&ku(e.name)))&&(c=c.children)):"?"===i[1]?(Bu(e,21,1),c=Cu(e)):Bu(e,12,1);if(c||(c=Ou(e,t)),I(c))for(let e=0;e/.exec(e.source);if(r){r.index<=3&&Bu(e,0),r[1]&&Bu(e,10),n=e.source.slice(4,r.index);const t=e.source.slice(0,r.index);let o=1,s=0;for(;-1!==(s=t.indexOf("\x3c!--",o));)Fu(e,s-o+1),s+4");return-1===o?(r=e.source.slice(n),Fu(e,e.source.length)):(r=e.source.slice(n,o),Fu(e,o+1)),{type:3,content:r,loc:Au(e,t)}}function wu(e,t){const n=e.inPre,r=e.inVPre,o=Iu(t),s=Eu(e,0,o),i=e.inPre&&!n,c=e.inVPre&&!r;if(s.isSelfClosing||e.options.isVoidTag(s.tag))return i&&(e.inPre=!1),c&&(e.inVPre=!1),s;t.push(s);const l=e.options.getTextMode(s,o),u=bu(e,l,t);t.pop();{const t=s.props.find((e=>6===e.type&&"inline-template"===e.name));if(t&&hu("COMPILER_INLINE_TEMPLATE",e,t.loc)){const n=Au(e,s.loc.end);t.value={type:2,content:n.source,loc:n}}}if(s.children=u,Uu(e.source,s.tag))Eu(e,1,o);else if(Bu(e,24,0,s.loc.start),0===e.source.length&&"script"===s.tag.toLowerCase()){const t=u[0];t&&$u(t.loc.source,"\x3c!--")&&Bu(e,8)}return s.loc=Au(e,s.loc.start),i&&(e.inPre=!1),c&&(e.inVPre=!1),s}const ku=o("if,else,else-if,for,slot");function Eu(e,t,n){const r=Pu(e),o=/^<\/?([a-z][^\t\r\n\f />]*)/i.exec(e.source),s=o[1],i=e.options.getNamespace(s,n);Fu(e,o[0].length),Vu(e);const c=Pu(e),l=e.source;e.options.isPreTag(s)&&(e.inPre=!0);let u=Tu(e,t);0===t&&!e.inVPre&&u.some((e=>7===e.type&&"pre"===e.name))&&(e.inVPre=!0,O(e,c),e.source=l,u=Tu(e,t).filter((e=>"v-pre"!==e.name)));let a=!1;if(0===e.source.length?Bu(e,9):(a=$u(e.source,"/>"),1===t&&a&&Bu(e,4),Fu(e,a?2:1)),1===t)return;let f=0;return e.inVPre||("slot"===s?f=2:"template"===s?u.some((e=>7===e.type&&ku(e.name)))&&(f=3):function(e,t,n){const r=n.options;if(r.isCustomElement(e))return!1;if("component"===e||/^[A-Z]/.test(e)||Ul(e)||r.isBuiltInComponent&&r.isBuiltInComponent(e)||r.isNativeTag&&!r.isNativeTag(e))return!0;for(let e=0;e0&&!$u(e.source,">")&&!$u(e.source,"/>");){if($u(e.source,"/")){Bu(e,22),Fu(e,1),Vu(e);continue}1===t&&Bu(e,3);const o=Nu(e,r);6===o.type&&o.value&&"class"===o.name&&(o.value.content=o.value.content.replace(/\s+/g," ").trim()),0===t&&n.push(o),/^[^\t\r\n\f />]/.test(e.source)&&Bu(e,15),Vu(e)}return n}function Nu(e,t){const n=Pu(e),r=/^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(e.source)[0];t.has(r)&&Bu(e,2),t.add(r),"="===r[0]&&Bu(e,19);{const t=/["'<]/g;let n;for(;n=t.exec(r);)Bu(e,17,n.index)}let o;Fu(e,r.length),/^[\t\r\n\f ]*=/.test(e.source)&&(Vu(e),Fu(e,1),Vu(e),o=function(e){const t=Pu(e);let n;const r=e.source[0],o='"'===r||"'"===r;if(o){Fu(e,1);const t=e.source.indexOf(r);-1===t?n=Mu(e,e.source.length,4):(n=Mu(e,t,4),Fu(e,1))}else{const t=/^[^\t\r\n\f >]+/.exec(e.source);if(!t)return;const r=/["'<=`]/g;let o;for(;o=r.exec(t[0]);)Bu(e,18,o.index);n=Mu(e,t[0].length,4)}return{content:n,isQuoted:o,loc:Au(e,t)}}(e),o||Bu(e,13));const s=Au(e,n);if(!e.inVPre&&/^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(r)){const t=/(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(r);let i,c=$u(r,"."),l=t[1]||(c||$u(r,":")?"bind":$u(r,"@")?"on":"slot");if(t[2]){const o="slot"===l,s=r.lastIndexOf(t[2]),c=Au(e,Lu(e,n,s),Lu(e,n,s+t[2].length+(o&&t[3]||"").length));let u=t[2],a=!0;u.startsWith("[")?(a=!1,u.endsWith("]")?u=u.slice(1,u.length-1):(Bu(e,27),u=u.slice(1))):o&&(u+=t[3]||""),i={type:4,content:u,isStatic:a,constType:a?3:0,loc:c}}if(o&&o.isQuoted){const e=o.loc;e.start.offset++,e.start.column++,e.end=Jl(e.start,o.content),e.source=e.source.slice(1,-1)}const u=t[3]?t[3].slice(1).split("."):[];return c&&u.push("prop"),"bind"===l&&i&&u.includes("sync")&&hu("COMPILER_V_BIND_SYNC",e,0,i.loc.source)&&(l="model",u.splice(u.indexOf("sync"),1)),{type:7,name:l,exp:o&&{type:4,content:o.content,isStatic:!1,constType:0,loc:o.loc},arg:i,modifiers:u,loc:s}}return!e.inVPre&&$u(r,"v-")&&Bu(e,26),{type:6,name:r,value:o&&{type:2,content:o.content,loc:o.loc},loc:s}}function Ru(e,t){const[n,r]=e.options.delimiters,o=e.source.indexOf(r,n.length);if(-1===o)return void Bu(e,25);const s=Pu(e);Fu(e,n.length);const i=Pu(e),c=Pu(e),l=o-n.length,u=e.source.slice(0,l),a=Mu(e,l,t),f=a.trim(),p=a.indexOf(f);p>0&&Zl(i,u,p);return Zl(c,u,l-(a.length-f.length-p)),Fu(e,r.length),{type:5,content:{type:4,isStatic:!1,constType:0,content:f,loc:Au(e,i,c)},loc:Au(e,s)}}function Ou(e,t){const n=3===t?["]]>"]:["<",e.options.delimiters[0]];let r=e.source.length;for(let t=0;to&&(r=o)}const o=Pu(e);return{type:2,content:Mu(e,r,t),loc:Au(e,o)}}function Mu(e,t,n){const r=e.source.slice(0,t);return Fu(e,t),2!==n&&3!==n&&r.includes("&")?e.options.decodeEntities(r,4===n):r}function Pu(e){const{column:t,line:n,offset:r}=e;return{column:t,line:n,offset:r}}function Au(e,t,n){return{start:t,end:n=n||Pu(e),source:e.originalSource.slice(t.offset,n.offset)}}function Iu(e){return e[e.length-1]}function $u(e,t){return e.startsWith(t)}function Fu(e,t){const{source:n}=e;Zl(e,n,t),e.source=n.slice(t)}function Vu(e){const t=/^[\t\r\n\f ]+/.exec(e.source);t&&Fu(e,t[0].length)}function Lu(e,t,n){return Jl(t,e.originalSource.slice(t.offset,n),n)}function Bu(e,t,n,r=Pu(e)){n&&(r.offset+=n,r.column+=n),e.options.onError(Dc(t,{start:r,end:r,source:""}))}function ju(e,t,n){const r=e.source;switch(t){case 0:if($u(r,"=0;--e)if(Uu(r,n[e].tag))return!0;break;case 1:case 2:{const e=Iu(n);if(e&&Uu(r,e.tag))return!0;break}case 3:if($u(r,"]]>"))return!0}return!r}function Uu(e,t){return $u(e,"]/.test(e[2+t.length]||">")}function Du(e,t){Wu(e,t,Hu(e,e.children[0]))}function Hu(e,t){const{children:n}=e;return 1===n.length&&1===t.type&&!ru(t)}function Wu(e,t,n=!1){const{children:r}=e,o=r.length;let s=0;for(let e=0;e0){if(e>=2){o.codegenNode.patchFlag="-1",o.codegenNode=t.hoist(o.codegenNode),s++;continue}}else{const e=o.codegenNode;if(13===e.type){const n=Zu(e);if((!n||512===n||1===n)&&Gu(o,t)>=2){const n=Ju(o);n&&(e.props=t.hoist(n))}e.dynamicProps&&(e.dynamicProps=t.hoist(e.dynamicProps))}}}if(1===o.type){const e=1===o.tagType;e&&t.scopes.vSlot++,Wu(o,t),e&&t.scopes.vSlot--}else if(11===o.type)Wu(o,t,1===o.children.length);else if(9===o.type)for(let e=0;e1)for(let o=0;on&&(w.childIndex--,w.onNodeRemoved()):(w.currentNode=null,w.onNodeRemoved()),w.parent.children.splice(n,1)},onNodeRemoved:()=>{},addIdentifiers(e){},removeIdentifiers(e){},hoist(e){B(e)&&(e=Il(e)),w.hoists.push(e);const t=Il(`_hoisted_${w.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1){return function(e,t,n=!1){return{type:20,index:e,value:t,isVNode:n,loc:Rl}}(w.cached++,e,t)}};return w.filters=new Set,w}function Qu(e,t){const n=Yu(e,t);Xu(e,n),t.hoistStatic&&Du(e,n),t.ssr||function(e,t){const{helper:n}=t,{children:r}=e;if(1===r.length){const n=r[0];if(Hu(e,n)&&n.codegenNode){const r=n.codegenNode;13===r.type&&fu(r,t),e.codegenNode=r}else e.codegenNode=n}else if(r.length>1){let r=64;0,e.codegenNode=Ol(t,n(Hc),void 0,e.children,r+"",void 0,void 0,!0,void 0,!1)}}(e,n),e.helpers=[...n.helpers.keys()],e.components=[...n.components],e.directives=[...n.directives],e.imports=n.imports,e.hoists=n.hoists,e.temps=n.temps,e.cached=n.cached,e.filters=[...n.filters]}function Xu(e,t){t.currentNode=e;const{nodeTransforms:n}=t,r=[];for(let o=0;o{n--};for(;nt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){const{props:o}=e;if(3===e.tagType&&o.some(tu))return;const s=[];for(let i=0;i`${Nl[e]}: _${Nl[e]}`;function ra(e,t={}){const n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:o="template.vue.html",scopeId:s=null,optimizeImports:i=!1,runtimeGlobalName:c="Vue",runtimeModuleName:l="vue",ssrRuntimeModuleName:u="vue/server-renderer",ssr:a=!1,isTS:f=!1,inSSR:p=!1}){const d={mode:t,prefixIdentifiers:n,sourceMap:r,filename:o,scopeId:s,optimizeImports:i,runtimeGlobalName:c,runtimeModuleName:l,ssrRuntimeModuleName:u,ssr:a,isTS:f,inSSR:p,source:e.loc.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper(e){return`_${Nl[e]}`},push(e,t){d.code+=e},indent(){h(++d.indentLevel)},deindent(e=!1){e?--d.indentLevel:h(--d.indentLevel)},newline(){h(d.indentLevel)}};function h(e){d.push("\n"+" ".repeat(e))}return d}(e,t);t.onContextCreated&&t.onContextCreated(n);const{mode:r,push:o,prefixIdentifiers:s,indent:i,deindent:c,newline:l,scopeId:u,ssr:a}=n,f=e.helpers.length>0,p=!s&&"module"!==r;!function(e,t){const{ssr:n,prefixIdentifiers:r,push:o,newline:s,runtimeModuleName:i,runtimeGlobalName:c,ssrRuntimeModuleName:l}=t,u=c;if(e.helpers.length>0&&(o(`const _Vue = ${u}\n`),e.hoists.length)){o(`const { ${[Yc,Qc,Xc,el,tl].filter((t=>e.helpers.includes(t))).map(na).join(", ")} } = _Vue\n`)}(function(e,t){if(!e.length)return;t.pure=!0;const{push:n,newline:r,helper:o,scopeId:s,mode:i}=t;r();for(let o=0;o0)&&l()),e.directives.length&&(oa(e.directives,"directive",n),e.temps>0&&l()),e.filters&&e.filters.length&&(l(),oa(e.filters,"filter",n),l()),e.temps>0){o("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(o("\n"),l()),a||o("return "),e.codegenNode?ca(e.codegenNode,n):o("null"),p&&(c(),o("}")),c(),o("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}function oa(e,t,{helper:n,push:r,newline:o,isTS:s}){const i=n("filter"===t?sl:"component"===t?nl:ol);for(let n=0;n3||!1;t.push("["),n&&t.indent(),ia(e,t,n),n&&t.deindent(),t.push("]")}function ia(e,t,n=!1,r=!0){const{push:o,newline:s}=t;for(let i=0;ie||"null"))}([s,i,c,l,u]),t),n(")"),f&&n(")");a&&(n(", "),ca(a,t),n(")"))}(e,t);break;case 14:!function(e,t){const{push:n,helper:r,pure:o}=t,s=B(e.callee)?e.callee:r(e.callee);o&&n(ta);n(s+"(",e),ia(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){const{push:n,indent:r,deindent:o,newline:s}=t,{properties:i}=e;if(!i.length)return void n("{}",e);const c=i.length>1||!1;n(c?"{":"{ "),c&&r();for(let e=0;e "),(l||c)&&(n("{"),r());i?(l&&n("return "),I(i)?sa(i,t):ca(i,t)):c&&ca(c,t);(l||c)&&(o(),n("}"));u&&(e.isNonScopedSlot&&n(", undefined, true"),n(")"))}(e,t);break;case 19:!function(e,t){const{test:n,consequent:r,alternate:o,newline:s}=e,{push:i,indent:c,deindent:l,newline:u}=t;if(4===n.type){const e=!Hl(n.content);e&&i("("),la(n,t),e&&i(")")}else i("("),ca(n,t),i(")");s&&c(),t.indentLevel++,s||i(" "),i("? "),ca(r,t),t.indentLevel--,s&&u(),s||i(" "),i(": ");const a=19===o.type;a||t.indentLevel++;ca(o,t),a||t.indentLevel--;s&&l(!0)}(e,t);break;case 20:!function(e,t){const{push:n,helper:r,indent:o,deindent:s,newline:i}=t;n(`_cache[${e.index}] || (`),e.isVNode&&(o(),n(`${r(_l)}(-1),`),i());n(`_cache[${e.index}] = `),ca(e.value,t),e.isVNode&&(n(","),i(),n(`${r(_l)}(1),`),i(),n(`_cache[${e.index}]`),s());n(")")}(e,t);break;case 21:ia(e.body,t,!0,!1)}}function la(e,t){const{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,e)}function ua(e,t){for(let n=0;nfunction(e,t,n,r){if(!("else"===t.name||t.exp&&t.exp.content.trim())){const r=t.exp?t.exp.loc:e.loc;n.onError(Dc(28,t.loc)),t.exp=Il("true",!1,r)}0;if("if"===t.name){const o=pa(e,t),s={type:9,loc:e.loc,branches:[o]};if(n.replaceNode(s),r)return r(s,o,!0)}else{const o=n.parent.children;let s=o.indexOf(e);for(;s-- >=-1;){const i=o[s];if(i&&3===i.type)n.removeNode(i);else{if(!i||2!==i.type||i.content.trim().length){if(i&&9===i.type){"else-if"===t.name&&void 0===i.branches[i.branches.length-1].condition&&n.onError(Dc(30,e.loc)),n.removeNode();const o=pa(e,t);0,i.branches.push(o);const s=r&&r(i,o,!1);Xu(o,n),s&&s(),n.currentNode=null}else n.onError(Dc(30,e.loc));break}n.removeNode(i)}}}}(e,t,n,((e,t,r)=>{const o=n.parent.children;let s=o.indexOf(e),i=0;for(;s-- >=0;){const e=o[s];e&&9===e.type&&(i+=e.branches.length)}return()=>{if(r)e.codegenNode=da(t,i,n);else{const r=function(e){for(;;)if(19===e.type){if(19!==e.alternate.type)return e;e=e.alternate}else 20===e.type&&(e=e.value)}(e.codegenNode);r.alternate=da(t,i+e.branches.length-1,n)}}}))));function pa(e,t){const n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!Yl(e,"for")?e.children:[e],userKey:Ql(e,"key"),isTemplateIf:n}}function da(e,t,n){return e.condition?Ll(e.condition,ha(e,t,n),Fl(n.helper(Xc),['""',"true"])):ha(e,t,n)}function ha(e,t,n){const{helper:r}=n,o=Al("key",Il(`${t}`,!1,Rl,2)),{children:s}=e,i=s[0];if(1!==s.length||1!==i.type){if(1===s.length&&11===i.type){const e=i.codegenNode;return lu(e,o,n),e}{let t=64;return Ol(n,r(Hc),Pl([o]),s,t+"",void 0,void 0,!0,!1,!1,e.loc)}}{const e=i.codegenNode,t=14===(c=e).type&&c.callee===El?c.arguments[1].returns:c;return 13===t.type&&fu(t,n),lu(t,o,n),e}var c}const ma=ea("for",((e,t,n)=>{const{helper:r,removeHelper:o}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(Dc(31,t.loc));const o=ba(t.exp,n);if(!o)return void n.onError(Dc(32,t.loc));const{addIdentifiers:s,removeIdentifiers:i,scopes:c}=n,{source:l,value:u,key:a,index:f}=o,p={type:11,loc:t.loc,source:l,valueAlias:u,keyAlias:a,objectIndexAlias:f,parseResult:o,children:nu(e)?e.children:[e]};n.replaceNode(p),c.vFor++;const d=r&&r(p);return()=>{c.vFor--,d&&d()}}(e,t,n,(t=>{const s=Fl(r(cl),[t.source]),i=nu(e),c=Yl(e,"memo"),l=Ql(e,"key"),u=l&&(6===l.type?Il(l.value.content,!0):l.exp),a=l?Al("key",u):null,f=4===t.source.type&&t.source.constType>0,p=f?64:l?128:256;return t.codegenNode=Ol(n,r(Hc),void 0,s,p+"",void 0,void 0,!0,!f,!1,e.loc),()=>{let l;const{children:p}=t;const d=1!==p.length||1!==p[0].type,h=ru(e)?e:i&&1===e.children.length&&ru(e.children[0])?e.children[0]:null;if(h?(l=h.codegenNode,i&&a&&lu(l,a,n)):d?l=Ol(n,r(Hc),a?Pl([a]):void 0,e.children,"64",void 0,void 0,!0,void 0,!1):(l=p[0].codegenNode,i&&a&&lu(l,a,n),l.isBlock!==!f&&(l.isBlock?(o(Gc),o(su(n.inSSR,l.isComponent))):o(ou(n.inSSR,l.isComponent))),l.isBlock=!f,l.isBlock?(r(Gc),r(su(n.inSSR,l.isComponent))):r(ou(n.inSSR,l.isComponent))),c){const e=Vl(Sa(t.parseResult,[Il("_cached")]));e.body={type:21,body:[$l(["const _memo = (",c.exp,")"]),$l(["if (_cached",...u?[" && _cached.key === ",u]:[],` && ${n.helperString(Tl)}(_cached, _memo)) return _cached`]),$l(["const _item = ",l]),Il("_item.memo = _memo"),Il("return _item")],loc:Rl},s.arguments.push(e,Il("_cache"),Il(String(n.cached++)))}else s.arguments.push(Vl(Sa(t.parseResult),l,!0))}}))}));const ga=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,va=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,ya=/^\(|\)$/g;function ba(e,t){const n=e.loc,r=e.content,o=r.match(ga);if(!o)return;const[,s,i]=o,c={source:_a(n,i.trim(),r.indexOf(i,s.length)),value:void 0,key:void 0,index:void 0};let l=s.trim().replace(ya,"").trim();const u=s.indexOf(l),a=l.match(va);if(a){l=l.replace(va,"").trim();const e=a[1].trim();let t;if(e&&(t=r.indexOf(e,u+l.length),c.key=_a(n,e,t)),a[2]){const o=a[2].trim();o&&(c.index=_a(n,o,r.indexOf(o,c.key?t+e.length:u+l.length)))}}return l&&(c.value=_a(n,l,u)),c}function _a(e,t,n){return Il(t,!1,Gl(e,n,t.length))}function Sa({value:e,key:t,index:n},r=[]){return function(e){let t=e.length;for(;t--&&!e[t];);return e.slice(0,t+1).map(((e,t)=>e||Il("_".repeat(t+1),!1)))}([e,t,n,...r])}const xa=Il("undefined",!1),Ca=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){const n=Yl(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}},wa=(e,t,n)=>Vl(e,t,!1,!0,t.length?t[0].loc:n);function ka(e,t,n=wa){t.helper(Cl);const{children:r,loc:o}=e,s=[],i=[];let c=t.scopes.vSlot>0||t.scopes.vFor>0;const l=Yl(e,"slot",!0);if(l){const{arg:e,exp:t}=l;e&&!Bl(e)&&(c=!0),s.push(Al(e||Il("default",!0),n(t,r,o)))}let u=!1,a=!1;const f=[],p=new Set;let d=0;for(let e=0;e{const s=n(e,r,o);return t.compatConfig&&(s.isNonScopedSlot=!0),Al("default",s)};u?f.length&&f.some((e=>Na(e)))&&(a?t.onError(Dc(39,f[0].loc)):s.push(e(void 0,f))):s.push(e(void 0,r))}const h=c?2:Ta(e.children)?3:1;let m=Pl(s.concat(Al("_",Il(h+"",!1))),o);return i.length&&(m=Fl(t.helper(ul),[m,Ml(i)])),{slots:m,hasDynamicSlots:c}}function Ea(e,t,n){const r=[Al("name",e),Al("fn",t)];return null!=n&&r.push(Al("key",Il(String(n),!0))),Pl(r)}function Ta(e){for(let t=0;tfunction(){if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;const{tag:n,props:r}=e,o=1===e.tagType;let s=o?function(e,t,n=!1){let{tag:r}=e;const o=Ia(r),s=Ql(e,"is");if(s)if(o||du("COMPILER_IS_ON_ELEMENT",t)){const e=6===s.type?s.value&&Il(s.value.content,!0):s.exp;if(e)return Fl(t.helper(rl),[e])}else 6===s.type&&s.value.content.startsWith("vue:")&&(r=s.value.content.slice(4));const i=!o&&Yl(e,"is");if(i&&i.exp)return Fl(t.helper(rl),[i.exp]);const c=Ul(r)||t.isBuiltInComponent(r);if(c)return n||t.helper(c),c;return t.helper(nl),t.components.add(r),au(r,"component")}(e,t):`"${n}"`;const i=U(s)&&s.callee===rl;let c,l,u,a,f,p,d=0,h=i||s===Wc||s===zc||!o&&("svg"===n||"foreignObject"===n);if(r.length>0){const n=Ma(e,t,void 0,o,i);c=n.props,d=n.patchFlag,f=n.dynamicPropNames;const r=n.directives;p=r&&r.length?Ml(r.map((e=>function(e,t){const n=[],r=Ra.get(e);r?n.push(t.helperString(r)):(t.helper(ol),t.directives.add(e.name),n.push(au(e.name,"directive")));const{loc:o}=e;e.exp&&n.push(e.exp);e.arg&&(e.exp||n.push("void 0"),n.push(e.arg));if(Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));const t=Il("true",!1,o);n.push(Pl(e.modifiers.map((e=>Al(e,t))),o))}return Ml(n,e.loc)}(e,t)))):void 0,n.shouldUseBlock&&(h=!0)}if(e.children.length>0){s===Kc&&(h=!0,d|=1024);if(o&&s!==Wc&&s!==Kc){const{slots:n,hasDynamicSlots:r}=ka(e,t);l=n,r&&(d|=1024)}else if(1===e.children.length&&s!==Wc){const n=e.children[0],r=n.type,o=5===r||8===r;o&&0===zu(n,t)&&(d|=1),l=o||2===r?n:e.children}else l=e.children}0!==d&&(u=String(d),f&&f.length&&(a=function(e){let t="[";for(let n=0,r=e.length;n0;let d=!1,h=0,m=!1,g=!1,v=!1,y=!1,b=!1,_=!1;const S=[],x=e=>{u.length&&(a.push(Pl(Pa(u),c)),u=[]),e&&a.push(e)},C=({key:e,value:n})=>{if(Bl(e)){const s=e.content,i=N(s);if(!i||r&&!o||"onclick"===s.toLowerCase()||"onUpdate:modelValue"===s||q(s)||(y=!0),i&&q(s)&&(_=!0),20===n.type||(4===n.type||8===n.type)&&zu(n,t)>0)return;"ref"===s?m=!0:"class"===s?g=!0:"style"===s?v=!0:"key"===s||S.includes(s)||S.push(s),!r||"class"!==s&&"style"!==s||S.includes(s)||S.push(s)}else b=!0};for(let o=0;o0&&u.push(Al(Il("ref_for",!0),Il("true")))),"is"===n&&(Ia(i)||r&&r.content.startsWith("vue:")||du("COMPILER_IS_ON_ELEMENT",t)))continue;u.push(Al(Il(n,!0,Gl(e,0,n.length)),Il(r?r.content:"",o,r?r.loc:e)))}else{const{name:n,arg:o,exp:h,loc:m}=l,g="bind"===n,v="on"===n;if("slot"===n){r||t.onError(Dc(40,m));continue}if("once"===n||"memo"===n)continue;if("is"===n||g&&Xl(o,"is")&&(Ia(i)||du("COMPILER_IS_ON_ELEMENT",t)))continue;if(v&&s)continue;if((g&&Xl(o,"key")||v&&p&&Xl(o,"vue:before-update"))&&(d=!0),g&&Xl(o,"ref")&&t.scopes.vFor>0&&u.push(Al(Il("ref_for",!0),Il("true"))),!o&&(g||v)){if(b=!0,h)if(g){if(x(),du("COMPILER_V_BIND_OBJECT_ORDER",t)){a.unshift(h);continue}a.push(h)}else x({type:14,loc:m,callee:t.helper(gl),arguments:r?[h]:[h,"true"]});else t.onError(Dc(g?34:35,m));continue}const y=t.directiveTransforms[n];if(y){const{props:n,needRuntime:r}=y(l,e,t);!s&&n.forEach(C),v&&o&&!Bl(o)?x(Pl(n,c)):u.push(...n),r&&(f.push(l),j(r)&&Ra.set(l,r))}else G(n)||(f.push(l),p&&(d=!0))}}let w;if(a.length?(x(),w=a.length>1?Fl(t.helper(fl),a,c):a[0]):u.length&&(w=Pl(Pa(u),c)),b?h|=16:(g&&!r&&(h|=2),v&&!r&&(h|=4),S.length&&(h|=8),y&&(h|=32)),d||0!==h&&32!==h||!(m||_||f.length>0)||(h|=512),!t.inSSR&&w)switch(w.type){case 15:let e=-1,n=-1,r=!1;for(let t=0;t{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))})((e=>e.replace($a,((e,t)=>t?t.toUpperCase():"")))),Va=(e,t)=>{if(ru(e)){const{children:n,loc:r}=e,{slotName:o,slotProps:s}=function(e,t){let n,r='"default"';const o=[];for(let t=0;t0){const{props:r,directives:s}=Ma(e,t,o,!1,!1);n=r,s.length&&t.onError(Dc(36,s[0].loc))}return{slotName:r,slotProps:n}}(e,t),i=[t.prefixIdentifiers?"_ctx.$slots":"$slots",o,"{}","undefined","true"];let c=2;s&&(i[2]=s,c=3),n.length&&(i[3]=Vl([],n,!1,!1,r),c=4),t.scopeId&&!t.slotted&&(c=5),i.splice(c),e.codegenNode=Fl(t.helper(ll),i,r)}};const La=/^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/,Ba=(e,t,n,r)=>{const{loc:o,modifiers:s,arg:i}=e;let c;if(e.exp||s.length||n.onError(Dc(35,o)),4===i.type)if(i.isStatic){let e=i.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`);c=Il(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?te(Y(e)):`on:${e}`,!0,i.loc)}else c=$l([`${n.helperString(bl)}(`,i,")"]);else c=i,c.children.unshift(`${n.helperString(bl)}(`),c.children.push(")");let l=e.exp;l&&!l.content.trim()&&(l=void 0);let u=n.cacheHandlers&&!l&&!n.inVOnce;if(l){const e=ql(l.content),t=!(e||La.test(l.content)),n=l.content.includes(";");0,(t||u&&e)&&(l=$l([`${t?"$event":"(...args)"} => ${n?"{":"("}`,l,n?"}":")"]))}let a={props:[Al(c,l||Il("() => {}",!1,o))]};return r&&(a=r(a)),u&&(a.props[0].value=n.cache(a.props[0].value)),a.props.forEach((e=>e.key.isHandlerKey=!0)),a},ja=(e,t,n)=>{const{exp:r,modifiers:o,loc:s}=e,i=e.arg;return 4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=`${i.content} || ""`),o.includes("camel")&&(4===i.type?i.isStatic?i.content=Y(i.content):i.content=`${n.helperString(vl)}(${i.content})`:(i.children.unshift(`${n.helperString(vl)}(`),i.children.push(")"))),n.inSSR||(o.includes("prop")&&Ua(i,"."),o.includes("attr")&&Ua(i,"^")),!r||4===r.type&&!r.content.trim()?(n.onError(Dc(34,s)),{props:[Al(i,Il("",!0,s))]}):{props:[Al(i,r)]}},Ua=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},Da=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{const n=e.children;let r,o=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))||"template"===e.tag)))for(let e=0;e{if(1===e.type&&Yl(e,"once",!0)){if(Ha.has(e)||t.inVOnce)return;return Ha.add(e),t.inVOnce=!0,t.helper(_l),()=>{t.inVOnce=!1;const e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0))}}},za=(e,t,n)=>{const{exp:r,arg:o}=e;if(!r)return n.onError(Dc(41,e.loc)),Ka();const s=r.loc.source,i=4===r.type?r.content:s,c=n.bindingMetadata[s];if("props"===c||"props-aliased"===c)return n.onError(Dc(44,r.loc)),Ka();if(!i.trim()||!ql(i))return n.onError(Dc(42,r.loc)),Ka();const l=o||Il("modelValue",!0),u=o?Bl(o)?`onUpdate:${o.content}`:$l(['"onUpdate:" + ',o]):"onUpdate:modelValue";let a;a=$l([`${n.isTS?"($event: any)":"$event"} => ((`,r,") = $event)"]);const f=[Al(l,e.exp),Al(u,a)];if(e.modifiers.length&&1===t.tagType){const t=e.modifiers.map((e=>(Hl(e)?e:JSON.stringify(e))+": true")).join(", "),n=o?Bl(o)?`${o.content}Modifiers`:$l([o,' + "Modifiers"']):"modelModifiers";f.push(Al(n,Il(`{ ${t} }`,!1,e.loc,2)))}return Ka(f)};function Ka(e=[]){return{props:e}}const qa=/[\w).+\-_$\]]/,Ga=(e,t)=>{du("COMPILER_FILTER",t)&&(5===e.type&&Ja(e.content,t),1===e.type&&e.props.forEach((e=>{7===e.type&&"for"!==e.name&&e.exp&&Ja(e.exp,t)})))};function Ja(e,t){if(4===e.type)Za(e,t);else for(let n=0;n=0&&(e=n.charAt(t)," "===e);t--);e&&qa.test(e)||(a=!0)}}else void 0===i?(h=s+1,i=n.slice(0,s).trim()):g();function g(){m.push(n.slice(h,s).trim()),h=s+1}if(void 0===i?i=n.slice(0,s).trim():0!==h&&g(),m.length){for(s=0;s{if(1===e.type){const n=Yl(e,"memo");if(!n||Qa.has(e))return;return Qa.add(e),()=>{const r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&fu(r,t),e.codegenNode=Fl(t.helper(El),[n.exp,Vl(void 0,r),"_cache",String(t.cached++)]))}}};function ef(e,t={}){const n=t.onError||jc,r="module"===t.mode;!0===t.prefixIdentifiers?n(Dc(47)):r&&n(Dc(48));t.cacheHandlers&&n(Dc(49)),t.scopeId&&!r&&n(Dc(50));const o=B(e)?yu(e,t):e,[s,i]=[[Wa,fa,Xa,ma,Ga,Va,Oa,Ca,Da],{on:Ba,bind:ja,model:za}];return Qu(o,O({},t,{prefixIdentifiers:false,nodeTransforms:[...s,...t.nodeTransforms||[]],directiveTransforms:O({},i,t.directiveTransforms||{})})),ra(o,O({},t,{prefixIdentifiers:false}))}const tf=Symbol(""),nf=Symbol(""),rf=Symbol(""),of=Symbol(""),sf=Symbol(""),cf=Symbol(""),lf=Symbol(""),uf=Symbol(""),af=Symbol(""),ff=Symbol("");var pf;let df;pf={[tf]:"vModelRadio",[nf]:"vModelCheckbox",[rf]:"vModelText",[of]:"vModelSelect",[sf]:"vModelDynamic",[cf]:"withModifiers",[lf]:"withKeys",[uf]:"vShow",[af]:"Transition",[ff]:"TransitionGroup"},Object.getOwnPropertySymbols(pf).forEach((e=>{Nl[e]=pf[e]}));const hf=o("style,iframe,script,noscript",!0),mf={isVoidTag:m,isNativeTag:e=>d(e)||h(e),isPreTag:e=>"pre"===e,decodeEntities:function(e,t=!1){return df||(df=document.createElement("div")),t?(df.innerHTML=`
`,df.children[0].getAttribute("foo")):(df.innerHTML=e,df.textContent)},isBuiltInComponent:e=>jl(e,"Transition")?af:jl(e,"TransitionGroup")?ff:void 0,getNamespace(e,t){let n=t?t.ns:0;if(t&&2===n)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some((e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content)))&&(n=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(n=0);else t&&1===n&&("foreignObject"!==t.tag&&"desc"!==t.tag&&"title"!==t.tag||(n=0));if(0===n){if("svg"===e)return 1;if("math"===e)return 2}return n},getTextMode({tag:e,ns:t}){if(0===t){if("textarea"===e||"title"===e)return 1;if(hf(e))return 2}return 0}},gf=(e,t)=>{const n=a(e);return Il(JSON.stringify(n),!1,t,3)};function vf(e,t){return Dc(e,t)}const yf=o("passive,once,capture"),bf=o("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),_f=o("left,right"),Sf=o("onkeyup,onkeydown,onkeypress",!0),xf=(e,t)=>Bl(e)&&"onclick"===e.content.toLowerCase()?Il(t,!0):4!==e.type?$l(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e;const Cf=(e,t)=>{1!==e.type||0!==e.tagType||"script"!==e.tag&&"style"!==e.tag||(t.onError(vf(61,e.loc)),t.removeNode())},wf=[e=>{1===e.type&&e.props.forEach(((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:Il("style",!0,t.loc),exp:gf(t.value.content,t.loc),modifiers:[],loc:t.loc})}))}],kf={cloak:()=>({props:[]}),html:(e,t,n)=>{const{exp:r,loc:o}=e;return r||n.onError(vf(51,o)),t.children.length&&(n.onError(vf(52,o)),t.children.length=0),{props:[Al(Il("innerHTML",!0,o),r||Il("",!0))]}},text:(e,t,n)=>{const{exp:r,loc:o}=e;return r||n.onError(vf(53,o)),t.children.length&&(n.onError(vf(54,o)),t.children.length=0),{props:[Al(Il("textContent",!0),r?zu(r,n)>0?r:Fl(n.helperString(al),[r],o):Il("",!0))]}},model:(e,t,n)=>{const r=za(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(vf(56,e.arg.loc));const{tag:o}=t,s=n.isCustomElement(o);if("input"===o||"textarea"===o||"select"===o||s){let i=rf,c=!1;if("input"===o||s){const r=Ql(t,"type");if(r){if(7===r.type)i=sf;else if(r.value)switch(r.value.content){case"radio":i=tf;break;case"checkbox":i=nf;break;case"file":c=!0,n.onError(vf(57,e.loc))}}else(function(e){return e.props.some((e=>!(7!==e.type||"bind"!==e.name||e.arg&&4===e.arg.type&&e.arg.isStatic)))})(t)&&(i=sf)}else"select"===o&&(i=of);c||(r.needRuntime=n.helper(i))}else n.onError(vf(55,e.loc));return r.props=r.props.filter((e=>!(4===e.key.type&&"modelValue"===e.key.content))),r},on:(e,t,n)=>Ba(e,t,n,(t=>{const{modifiers:r}=e;if(!r.length)return t;let{key:o,value:s}=t.props[0];const{keyModifiers:i,nonKeyModifiers:c,eventOptionModifiers:l}=((e,t,n,r)=>{const o=[],s=[],i=[];for(let r=0;r{const{exp:r,loc:o}=e;return r||n.onError(vf(59,o)),{props:[],needRuntime:n.helper(uf)}}};const Ef=Object.create(null);function Tf(e,t){if(!B(e)){if(!e.nodeType)return k;e=e.innerHTML}const n=e,o=Ef[n];if(o)return o;if("#"===e[0]){const t=document.querySelector(e);0,e=t?t.innerHTML:""}const s=O({hoistStatic:!0,onError:void 0,onWarn:k},t);s.isCustomElement||"undefined"==typeof customElements||(s.isCustomElement=e=>!!customElements.get(e));const{code:i}=function(e,t={}){return ef(e,O({},mf,t,{nodeTransforms:[Cf,...wf,...t.nodeTransforms||[]],directiveTransforms:O({},kf,t.directiveTransforms||{}),transformHoist:null}))}(e,s);const c=new Function("Vue",i)(r);return c._rc=!0,Ef[n]=c}Us(Tf)}}]); \ No newline at end of file diff --git a/modules/backend/assets/ui/js/index.js b/modules/backend/assets/ui/js/index.js index b890f340cc..cf4f3cad81 100644 --- a/modules/backend/assets/ui/js/index.js +++ b/modules/backend/assets/ui/js/index.js @@ -1,4 +1,7 @@ +import * as Vue from 'vue'; import BackendAjaxHandler from './ajax/Handler'; +import BackendUiEventHandler from './ui/EventHandler'; +import BackendUiWidgetHandler from './ui/WidgetHandler'; if (window.Snowboard === undefined) { throw new Error('Snowboard must be loaded in order to use the Backend UI.'); @@ -6,6 +9,9 @@ if (window.Snowboard === undefined) { ((Snowboard) => { Snowboard.addPlugin('backend.ajax.handler', BackendAjaxHandler); + Snowboard.addPlugin('backend.ui.eventHandler', BackendUiEventHandler); + Snowboard.addPlugin('backend.ui.widgetHandler', BackendUiWidgetHandler); + // Add the pre-filter immediately Snowboard['backend.ajax.handler']().addPrefilter(); @@ -23,3 +29,6 @@ if (window.Snowboard === undefined) { }; window.assetManager = window.AssetManager; })(window.Snowboard); + +// Add Vue to global scope +window.Vue = Vue; diff --git a/modules/backend/assets/ui/js/ui/EventHandler.js b/modules/backend/assets/ui/js/ui/EventHandler.js new file mode 100644 index 0000000000..1bc70cd084 --- /dev/null +++ b/modules/backend/assets/ui/js/ui/EventHandler.js @@ -0,0 +1,116 @@ +/** + * Widget event handler. + * + * Extends a widget with event handling functionality, allowing for the quick definition of events + * and listening for events on a specific instance of a widget. + * + * This is a complement to Snowboard's global events - these events will still fire in order to + * allow external code to listen and handle events. Local events can cancel the global event (and + * further local events) by returning `false` from the callback. + * + * @copyright 2022 Winter. + * @author Ben Thomson + */ +export default class EventHandler extends Snowboard.PluginBase { + /** + * Constructor. + * + * @param {PluginBase} instance + * @param {String} eventPrefix + */ + construct(instance, eventPrefix) { + if (instance instanceof Snowboard.PluginBase === false) { + throw new Error('Event handling can only be applied to Snowboard classes.'); + } + if (!eventPrefix) { + throw new Error('Event prefix is required.'); + } + this.instance = instance; + this.eventPrefix = eventPrefix; + this.events = []; + } + + /** + * Registers a listener for a widget's event. + * + * @param {String} event + * @param {Function} callback + */ + on(event, callback) { + this.events.push({ + event, + callback, + }); + } + + /** + * Deregisters a listener for a widget's event. + * + * @param {String} event + * @param {Function} callback + */ + off(event, callback) { + this.events = this.events.filter((registeredEvent) => registeredEvent.event !== event || registeredEvent.callback !== callback); + } + + /** + * Registers a listener for a widget's event that will only fire once. + * + * @param {String} event + * @param {Function} callback + */ + once(event, callback) { + const length = this.events.push({ + event, + callback: (...parameters) => { + callback(...parameters); + this.events.splice(length - 1, 1); + }, + }); + } + + /** + * Fires an event on the widget. + * + * Local events are fired first, then a global event is fired afterwards. + * + * @param {String} eventName + * @param {...any} parameters + */ + fire(eventName, ...parameters) { + // Fire local events first + const events = this.events.filter((registeredEvent) => registeredEvent.event === eventName); + let cancelled = false; + events.forEach((event) => { + if (cancelled) { + return; + } + if (event.callback(...parameters) === false) { + cancelled = true; + } + }); + + if (!cancelled) { + this.snowboard.globalEvent(`${this.eventPrefix}.${eventName}`, ...parameters); + } + } + + /** + * Fires a promise event on the widget. + * + * Local events are fired first, then a global event is fired afterwards. + * + * @param {String} eventName + * @param {...any} parameters + */ + firePromise(eventName, ...parameters) { + const events = this.events.filter((registeredEvent) => registeredEvent.event === eventName); + const promises = events.filter((event) => event !== null, events.map((event) => event.callback(...parameters))); + + Promise.all(promises).then( + () => { + this.snowboard.globalPromiseEvent(`${this.eventPrefix}.${eventName}`, ...parameters); + }, + ); + } +} diff --git a/modules/backend/assets/ui/js/ui/WidgetHandler.js b/modules/backend/assets/ui/js/ui/WidgetHandler.js new file mode 100644 index 0000000000..f332b55fb4 --- /dev/null +++ b/modules/backend/assets/ui/js/ui/WidgetHandler.js @@ -0,0 +1,181 @@ +/** + * Backend widget handler. + * + * Handles the creation and disposal of widgets in the Backend. Widgets should include this as + * a dependency in order to be loaded and initialised after the handler, in order to correctly + * register. + * + * @copyright 2022 Winter. + * @author Ben Thomson + */ +export default class WidgetHandler extends Snowboard.Singleton { + /** + * Constructor. + */ + construct() { + this.registeredWidgets = []; + this.elements = []; + this.events = { + mutate: (mutations) => this.onMutation(mutations), + }; + this.observer = null; + } + + /** + * Listeners. + * + * @returns {Object} + */ + listens() { + return { + ready: 'onReady', + render: 'onRender', + ajaxUpdate: 'onAjaxUpdate', + }; + } + + /** + * Registers a widget as a given data control. + * + * Registering a widget will allow any element that contains a "data-control" attribute matching + * the control name to be initialized with the given widget. + * + * You may optionally provide a callback that will be fired when an instance of the widget is + * initialized - the callback will be provided the element and the widget instance as parameters. + * + * @param {String} control + * @param {Snowboard.PluginBase} widget + * @param {Function} callback + */ + register(control, widget, callback) { + this.registeredWidgets.push({ + control, + widget, + callback, + }); + } + + /** + * Unregisters a data control. + * + * @param {String} control + */ + unregister(control) { + this.registeredWidgets = this.registeredWidgets.filter((widget) => widget.control !== control); + } + + /** + * Ready handler. + * + * Initializes widgets within the entire document. + */ + onReady() { + this.initializeWidgets(document.body); + + // Register a DOM observer and watch for any removed nodes + if (!this.observer) { + this.observer = new MutationObserver(this.events.mutate); + this.observer.observe(document.body, { + childList: true, + subtree: true, + }); + } + } + + /** + * Render handler. + * + * Initializes widgets within the entire document. + */ + onRender() { + this.initializeWidgets(document.body); + } + + /** + * AJAX update handler. + * + * Initializes widgets inside an update element from an AJAX response. + * + * @param {HTMLElement} element + */ + onAjaxUpdate(element) { + this.initializeWidgets(element); + } + + /** + * Initializes all widgets within an element. + * + * If an element contains a "data-control" attribute matching a registered widget, the widget + * is initialized and attached to the element as a "widget" property. + * + * Only one widget may be initialized to a particular element. + * + * @param {HTMLElement} element + */ + initializeWidgets(element) { + this.registeredWidgets.forEach((widget) => { + const instances = element.querySelectorAll(`[data-control="${widget.control}"]:not([data-widget-initialized])`); + + if (instances.length) { + instances.forEach((instance) => { + // Prevent double-widget initialization + if (instance.dataset.widgetInitialized) { + return; + } + + const widgetInstance = this.snowboard[widget.widget](instance); + this.elements.push({ + element: instance, + instance: widgetInstance, + }); + instance.dataset.widgetInitialized = true; + this.snowboard.globalEvent('backend.widget.initialized', instance, widgetInstance); + + if (typeof widget.callback === 'function') { + widget.callback(widgetInstance, instance); + } + }); + } + }); + } + + /** + * Returns a widget that is attached to the given element, if any. + * + * @param {HTMLElement} element + * @returns {Snowboard.PluginBase|null} + */ + getWidget(element) { + const found = this.elements.find((widget) => widget.element === element); + + if (found) { + return found.instance; + } + + return null; + } + + /** + * Callback for mutation events. + * + * We're only tracking removed nodes, to ensure that those widgets are disposed of. + * + * @param {MutationRecord[]} mutations + */ + onMutation(mutations) { + const removedNodes = mutations.filter((mutation) => mutation.removedNodes.length).map((mutation) => Array.from(mutation.removedNodes)).flat(); + if (!removedNodes.length) { + return; + } + + removedNodes.forEach((node) => { + const widgets = this.elements.filter((widget) => node.contains(widget.element)); + if (widgets.length) { + widgets.forEach((widget) => { + widget.instance.destruct(); + this.elements = this.elements.filter((element) => element !== widget); + }); + } + }); + } +} diff --git a/modules/backend/behaviors/FormController.php b/modules/backend/behaviors/FormController.php index 25660de317..ae58bb475f 100644 --- a/modules/backend/behaviors/FormController.php +++ b/modules/backend/behaviors/FormController.php @@ -177,7 +177,7 @@ public function initForm($model, $context = null) * Detected Relation controller behavior */ if ($this->controller->isClassExtendedWith(\Backend\Behaviors\RelationController::class)) { - $this->controller->initRelation($model); + $this->controller->initRelation(clone $model); } $this->prepareVars($model); diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 9e0f221ed8..fa6fb4c3da 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -1392,14 +1392,15 @@ public function onRelationManagePivotCreate() * Add the checked IDs to the pivot table */ $foreignIds = (array) $this->foreignId; - $this->relationObject->sync($foreignIds, false); + $saveData = $this->pivotWidget->getSaveData(); + $foreignModels = $this->relationModel->whereIn($this->relationModel->getKeyName(), $foreignIds)->get(); + $this->relationObject->syncWithPivotValues($foreignModels, $saveData['pivot'] ?? [], false); /* * Save data to models */ $foreignKeyName = $this->relationModel->getQualifiedKeyName(); $hydratedModels = $this->relationObject->whereIn($foreignKeyName, $foreignIds)->get(); - $saveData = $this->pivotWidget->getSaveData(); foreach ($hydratedModels as $hydratedModel) { $modelsToSave = $this->prepareModelsToSave($hydratedModel, $saveData); diff --git a/modules/backend/classes/BackendController.php b/modules/backend/classes/BackendController.php index b809e0febd..3b0fc14365 100644 --- a/modules/backend/classes/BackendController.php +++ b/modules/backend/classes/BackendController.php @@ -2,6 +2,7 @@ use Str; use App; +use Closure; use File; use View; use Event; @@ -11,7 +12,6 @@ use Illuminate\Routing\Controller as ControllerBase; use Winter\Storm\Router\Helper as RouterHelper; use System\Classes\PluginManager; -use Closure; /** * This is the master controller for all back-end pages. @@ -103,14 +103,6 @@ public function __construct() $this->extendableConstruct(); } - /** - * Extend this object properties upon construction. - */ - public static function extend(Closure $callback) - { - self::extendableExtendCallback($callback); - } - /** * @inheritDoc */ @@ -307,4 +299,32 @@ protected static function methodExcludedByOptions($method, array $options) return (isset($options['only']) && !in_array($method, (array) $options['only'])) || (!empty($options['except']) && in_array($method, (array) $options['except'])); } + + public function __call($name, $params) + { + if ($name === 'extend') { + if (empty($params[0]) || !is_callable($params[0])) { + throw new \InvalidArgumentException('The extend() method requires a callback parameter or closure.'); + } + if ($params[0] instanceof \Closure) { + return $params[0]->call($this, $params[1] ?? $this); + } + return \Closure::fromCallable($params[0])->call($this, $params[1] ?? $this); + } + + return $this->extendableCall($name, $params); + } + + public static function __callStatic($name, $params) + { + if ($name === 'extend') { + if (empty($params[0])) { + throw new \InvalidArgumentException('The extend() method requires a callback parameter or closure.'); + } + self::extendableExtendCallback($params[0], $params[1] ?? false, $params[2] ?? null); + return; + } + + return self::extendableCallStatic($name, $params); + } } diff --git a/modules/backend/classes/Controller.php b/modules/backend/classes/Controller.php index 4516aac795..9139ded692 100644 --- a/modules/backend/classes/Controller.php +++ b/modules/backend/classes/Controller.php @@ -161,14 +161,6 @@ public function __construct() $this->extendableConstruct(); } - /** - * Extend this object properties upon construction. - */ - public static function extend(Closure $callback) - { - self::extendableExtendCallback($callback); - } - public function __get($name) { return $this->extendableGet($name); @@ -181,11 +173,29 @@ public function __set($name, $value) public function __call($name, $params) { + if ($name === 'extend') { + if (empty($params[0]) || !is_callable($params[0])) { + throw new \InvalidArgumentException('The extend() method requires a callback parameter or closure.'); + } + if ($params[0] instanceof \Closure) { + return $params[0]->call($this, $params[1] ?? $this); + } + return \Closure::fromCallable($params[0])->call($this, $params[1] ?? $this); + } + return $this->extendableCall($name, $params); } public static function __callStatic($name, $params) { + if ($name === 'extend') { + if (empty($params[0])) { + throw new \InvalidArgumentException('The extend() method requires a callback parameter or closure.'); + } + self::extendableExtendCallback($params[0], $params[1] ?? false, $params[2] ?? null); + return; + } + return self::extendableCallStatic($name, $params); } diff --git a/modules/backend/controllers/index/index.php b/modules/backend/controllers/index/index.php index 915bdb04c4..971d2d67d2 100644 --- a/modules/backend/controllers/index/index.php +++ b/modules/backend/controllers/index/index.php @@ -20,4 +20,4 @@ }); }); - + diff --git a/modules/backend/database/migrations/2023_02_16_000012_Db_Backend_Add_User_Metadata.php b/modules/backend/database/migrations/2023_02_16_000012_Db_Backend_Add_User_Metadata.php new file mode 100644 index 0000000000..b60735c10f --- /dev/null +++ b/modules/backend/database/migrations/2023_02_16_000012_Db_Backend_Add_User_Metadata.php @@ -0,0 +1,25 @@ +mediumText('metadata')->nullable()->after('permissions'); + }); + } + } + + public function down() + { + if (Schema::hasColumn('backend_users', 'metadata')) { + Schema::table('backend_users', function (Blueprint $table) { + $table->dropColumn('metadata'); + }); + } + } +} diff --git a/modules/backend/formwidgets/ColorPicker.php b/modules/backend/formwidgets/ColorPicker.php index d4d3712b91..60fd4140f0 100644 --- a/modules/backend/formwidgets/ColorPicker.php +++ b/modules/backend/formwidgets/ColorPicker.php @@ -236,10 +236,7 @@ protected function getFormats() */ protected function loadAssets() { - $this->addCss('vendor/pickr/pickr-nano.min.css', 'core'); - $this->addJs('vendor/pickr/pickr.min.js', 'core'); - $this->addCss('css/colorpicker.css', 'core'); - $this->addJs('js/colorpicker.js', 'core'); + $this->addJs('js/dist/colorpicker.js', 'core'); } /** diff --git a/modules/backend/formwidgets/FileUpload.php b/modules/backend/formwidgets/FileUpload.php index ae401ad6f4..dc92668304 100644 --- a/modules/backend/formwidgets/FileUpload.php +++ b/modules/backend/formwidgets/FileUpload.php @@ -173,7 +173,7 @@ protected function getFileRecord() $record = false; if (!empty(post('file_id'))) { - $record = $this->getRelationModel()::find(post('file_id')) ?: false; + $record = $this->getRelationModel()->find(post('file_id')) ?: false; } return $record; @@ -181,10 +181,8 @@ protected function getFileRecord() /** * Get the instantiated config Form widget - * - * @return void */ - public function getConfigFormWidget() + public function getConfigFormWidget(): Form { if ($this->configFormWidget) { return $this->configFormWidget; @@ -222,9 +220,8 @@ protected function getFileList() /** * Returns the display mode for the file upload. Eg: file-multi, image-single, etc. - * @return string */ - protected function getDisplayMode() + protected function getDisplayMode(): string { $mode = $this->getConfig('mode', 'image'); @@ -233,16 +230,15 @@ protected function getDisplayMode() } $relationType = $this->getRelationType(); - $mode .= ($relationType == 'attachMany' || $relationType == 'morphMany') ? '-multi' : '-single'; + $mode .= ($relationType === 'attachMany' || $relationType === 'morphMany') ? '-multi' : '-single'; return $mode; } /** * Returns the escaped and translated prompt text to display according to the type. - * @return string */ - protected function getPromptText() + protected function getPromptText(): string { if ($this->prompt === null) { $isMulti = ends_with($this->getDisplayMode(), 'multi'); @@ -257,10 +253,8 @@ protected function getPromptText() /** * Returns the CSS dimensions for the uploaded image, * uses auto where no dimension is provided. - * @param string $mode - * @return string */ - protected function getCssDimensions($mode = null) + protected function getCssDimensions(?string $mode = null): string { if (!$this->imageWidth && !$this->imageHeight) { return ''; @@ -270,20 +264,19 @@ protected function getCssDimensions($mode = null) if ($mode == 'block') { $cssDimensions .= $this->imageWidth - ? 'width: '.$this->imageWidth.'px;' - : 'width: '.$this->imageHeight.'px;'; + ? 'width: ' . $this->imageWidth . 'px;' + : 'width: ' . $this->imageHeight . 'px;'; $cssDimensions .= ($this->imageHeight) - ? 'max-height: '.$this->imageHeight.'px;' + ? 'max-height: ' . $this->imageHeight . 'px;' : 'height: auto;'; - } - else { + } else { $cssDimensions .= $this->imageWidth - ? 'width: '.$this->imageWidth.'px;' + ? 'width: ' . $this->imageWidth . 'px;' : 'width: auto;'; $cssDimensions .= ($this->imageHeight) - ? 'max-height: '.$this->imageHeight.'px;' + ? 'max-height: ' . $this->imageHeight . 'px;' : 'height: auto;'; } @@ -333,18 +326,19 @@ public function getAcceptedFileTypes($includeDot = false) /** * Removes a file attachment. */ - public function onRemoveAttachment() + public function onRemoveAttachment(): void { - $fileModel = $this->getRelationModel(); - if (($fileId = post('file_id')) && ($file = $fileModel::find($fileId))) { + if ($file = $this->getFileRecord()) { $this->getRelationObject()->remove($file, $this->sessionKey); } } /** * Sorts file attachments. + * + * Expects (array) sortOrder [$fileId => $fileOrder] in the POST data. */ - public function onSortAttachments() + public function onSortAttachments(): void { if ($sortData = post('sortOrder')) { $ids = array_keys($sortData); @@ -357,10 +351,11 @@ public function onSortAttachments() /** * Loads the configuration form for an attachment, allowing title and description to be set. + * + * @throws ApplicationException if unable to find the file record */ - public function onLoadAttachmentConfig() + public function onLoadAttachmentConfig(): string { - $fileModel = $this->getRelationModel(); if ($file = $this->getFileRecord()) { $file = $this->decorateFileAttributes($file); diff --git a/modules/backend/formwidgets/IconPicker.php b/modules/backend/formwidgets/IconPicker.php new file mode 100644 index 0000000000..33eafc611e --- /dev/null +++ b/modules/backend/formwidgets/IconPicker.php @@ -0,0 +1,59 @@ +prepareVars(); + return $this->makePartial('iconpicker'); + } + + /** + * Prepares the list data + */ + public function prepareVars() + { + $this->vars['field'] = $this; + } + + /** + * @inheritDoc + */ + public function loadAssets(): void + { + $this->addJs('js/dist/iconpicker.js', 'core'); + } + + public function onLoadIconLibrary() + { + $libraries = $this->config->libraries ?? static::DEFAULT_LIBRARIES; + + if (is_string($libraries)) { + $libraries = Yaml::parseFile(File::symbolizePath($libraries)); + } + + return json_encode($libraries); + } +} diff --git a/modules/backend/formwidgets/RecordFinder.php b/modules/backend/formwidgets/RecordFinder.php index 3ea6522c68..982e12dc01 100644 --- a/modules/backend/formwidgets/RecordFinder.php +++ b/modules/backend/formwidgets/RecordFinder.php @@ -3,6 +3,7 @@ use Lang; use ApplicationException; use Backend\Classes\FormWidgetBase; +use Winter\Storm\Database\Model; /** * Record Finder @@ -312,10 +313,8 @@ public function onFindRecord() /** * Gets the base model instance used by this field - * - * @return \Winter\Storm\Database\Model */ - protected function getRecordModel() + protected function getRecordModel(): Model { $model = null; if ($this->useRelation) { diff --git a/modules/backend/formwidgets/Sensitive.php b/modules/backend/formwidgets/Sensitive.php index 18cd937523..8ab91b87f9 100644 --- a/modules/backend/formwidgets/Sensitive.php +++ b/modules/backend/formwidgets/Sensitive.php @@ -111,7 +111,6 @@ public function getSaveValue($value) */ protected function loadAssets() { - $this->addCss('css/sensitive.css', 'core'); - $this->addJs('js/sensitive.js', 'core'); + $this->addJs('js/dist/sensitive.js', 'core'); } } diff --git a/modules/backend/formwidgets/TagList.php b/modules/backend/formwidgets/TagList.php index 0bdc0c13c4..fdaa2f117e 100644 --- a/modules/backend/formwidgets/TagList.php +++ b/modules/backend/formwidgets/TagList.php @@ -120,9 +120,8 @@ public function getSaveValue($value) /** * Returns an array suitable for saving against a relation (array of keys). * This method also creates non-existent tags. - * @return array */ - protected function hydrateRelationSaveValue($names) + protected function hydrateRelationSaveValue($names): ?array { if (!$names) { return $names; diff --git a/modules/backend/formwidgets/colorpicker/assets/css/colorpicker.css b/modules/backend/formwidgets/colorpicker/assets/css/colorpicker.css deleted file mode 100644 index 8178f7c0cf..0000000000 --- a/modules/backend/formwidgets/colorpicker/assets/css/colorpicker.css +++ /dev/null @@ -1,13 +0,0 @@ -.field-colorpicker .colorpicker-container{display:flex;flex-direction:row-reverse;position:relative;max-width:300px;width:100%} -.field-colorpicker [data-color-preview]{flex-grow:0;flex-shrink:0;width:40px;height:38px;background:#fff;cursor:pointer;border:1px solid #d1d6d9;-webkit-box-shadow:inset 0 1px 0 rgba(209,214,217,0.25),0 1px 0 rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(209,214,217,0.25),0 1px 0 rgba(255,255,255,.5);border-top-left-radius:3px;border-bottom-left-radius:3px} -.field-colorpicker [data-color-value]{flex:1;border-left:none;border-top-left-radius:0;border-bottom-left-radius:0} -.field-colorpicker .pcr-app[data-theme="nano"]{width:18em} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection{grid-template-rows:1fr 5fr auto auto;gap:0} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview{grid-row-start:1;grid-column-start:1;grid-row-end:1;grid-column-end:3;margin:0;flex-direction:row-reverse} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-current-color{flex-grow:0;flex-shrink:0;width:80%;border-radius:0;border-bottom:1px solid rgba(0,0,0,0.5);font-family:monospace;height:28px;line-height:29px;text-align:center;font-size:0.85em} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-current-color::before{content:none} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-preview .pcr-last-color{display:block;flex-grow:0;flex-shrink:0;width:20%;border-radius:0;background:var(--pcr-color);border-bottom:1px solid rgba(0,0,0,0.5)} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-palette{grid-row-start:2;grid-column-start:1;grid-row-end:2;grid-column-end:3} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-chooser{margin-top:0.8rem;grid-row-start:3;grid-column-start:1;grid-row-end:3;grid-column-end:3} -.field-colorpicker .pcr-app[data-theme="nano"] .pcr-selection .pcr-color-opacity{margin-top:0.8em;grid-row-start:4;grid-column-start:1;grid-row-end:4;grid-column-end:3} -.field-colorpicker[data-disabled="true"] [data-color-preview]{cursor:default} \ No newline at end of file diff --git a/modules/backend/formwidgets/colorpicker/assets/js/colorpicker.js b/modules/backend/formwidgets/colorpicker/assets/js/colorpicker.js deleted file mode 100644 index 311c5db9ff..0000000000 --- a/modules/backend/formwidgets/colorpicker/assets/js/colorpicker.js +++ /dev/null @@ -1,495 +0,0 @@ -/* - * ColorPicker plugin - * - * Data attributes: - * - data-control="colorpicker" - enables the plugin on an element - * - data-data-locker="input#locker" - Input element to store and restore the chosen color - * - * JavaScript API: - * $('div#someElement').colorPicker({ dataLocker: 'input#locker' }) - * - * Dependences: - * - Pickr (https://github.com/Simonwep/pickr) - */ - -+function ($) { "use strict"; - - // COLORPICKER CLASS DEFINITION - // ============================ - - var Base = $.wn.foundation.base, - BaseProto = Base.prototype - - var ColorPicker = function(element, options) { - this.options = options - this.$el = $(element) - - $.wn.foundation.controlUtils.markDisposable(element) - Base.call(this) - - // Init - this.init() - } - - ColorPicker.DEFAULTS = { - showAlpha: false, - format: 'hex', - allowEmpty: false, - dataLocker: null, - disabled: false - } - - ColorPicker.prototype = Object.create(BaseProto) - ColorPicker.prototype.constructor = ColorPicker - - /** - * Initialise the widget. - */ - ColorPicker.prototype.init = function() { - this.$dataLocker = $(this.options.dataLocker, this.$el) - this.$container = $('.colorpicker-container', this.$el) - this.$colorPreview = $('[data-color-preview]', this.$el) - this.$colorValue = $('[data-color-value]', this.$el) - this.keyboardEntry = false - this.originalColor = null - this.originalFormat = null - this.formatSet = false - - // Create a Pickr instance - this.pickr = Pickr.create({ - el: this.$colorPreview.get(0), - theme: 'nano', - disabled: this.options.disabled, - swatches: this.options.availableColors, - lockOpacity: !this.options.showAlpha, - useAsButton: true, - container: this.$el.get(0), - comparison: true, - showAlways: true, - position: 'top-middle', - components: { - palette: this.options.allowCustom, - preview: this.options.allowCustom, - hue: this.options.allowCustom, - opacity: this.options.showAlpha, - interaction: { - hex: (this.options.formats.length > 1 && this.options.formats.indexOf('hex') !== -1), - rgba: (this.options.formats.length > 1 && this.options.formats.indexOf('rgb') !== -1), - hsla: (this.options.formats.length > 1 && this.options.formats.indexOf('hsl') !== -1), - cmyk: (this.options.formats.length > 1 && this.options.formats.indexOf('cmyk') !== -1), - - input: false, - cancel: false, - clear: this.options.allowEmpty, - save: false, - } - }, - i18n: { - 'btn:last-color': $.wn.lang.get('colorpicker.last_color', 'Use previously selected color'), - 'aria:palette': $.wn.lang.get('colorpicker.aria_palette', 'Color selection area'), - 'aria:hue': $.wn.lang.get('colorpicker.aria_hue', 'Hue selection slider'), - 'aria:opacity': $.wn.lang.get('colorpicker.aria_opacity', 'Opacity selection slider'), - }, - }) - - // Set up events on various elements - this.$colorValue.on('focus', this.proxy(this.onFocus)) - this.$colorValue.on('blur', this.proxy(this.onBlur)) - this.$colorValue.on('keydown', this.proxy(this.onKeydown)) - this.$colorValue.on('keyup', this.proxy(this.onKeyup)) - this.$colorPreview.on('click', this.proxy(this.onColorClick)) - this.pickr.on('init', () => this.onPickerInit()) - this.pickr.on('change', (hsva) => this.onPickerChange(hsva)) - this.pickr.on('changestop', () => this.onPickerStopChange()) - this.pickr.on('swatchselect', (hsva) => this.onPickerSwatch(hsva)) - this.pickr.on('cancel', () => this.onPickerStopChange()) - this.pickr.on('hide', () => this.onPickerHide()) - this.pickr.on('clear', () => this.onPickerClear()) - } - - /** - * Disposes the element. - */ - ColorPicker.prototype.dispose = function () { - this.$colorValue.off('focus', this.proxy(this.onFocus)) - this.$colorValue.off('blur', this.proxy(this.onBlur)) - this.$colorValue.off('keydown', this.proxy(this.onKeydown)) - this.$colorValue.off('keyup', this.proxy(this.onKeyup)) - this.$colorPreview.off('click', this.proxy(this.onColorClick)) - - if (this.pickr) { - this.pickr.destroyAndRemove() - } - - this.$container = null - this.$colorPreview = null - this.$colorValue = null - this.$el = null - BaseProto.dispose.call(this) - } - - /** - * Show picker when focusing on text field for widget. - */ - ColorPicker.prototype.onFocus = function () { - this.showPicker() - } - - /** - * Show picker when the color preview next to the text field is clicked. - * @param {Event} event - */ - ColorPicker.prototype.onColorClick = function (event) { - if ($(event.currentTarget).is(this.$colorValue) === false) { - this.$colorValue.focus() - } - this.showPicker() - } - - /** - * Hide picker when the text field loses focus. - */ - ColorPicker.prototype.onBlur = function () { - this.hidePicker() - } - - /** - * Fired when a key is pressed down. - * - * We use this to disable the Enter key submitting the form by mistake. - * - * @param {Event} event - */ - ColorPicker.prototype.onKeydown = function (event) { - if (event.key === 'Enter') { - event.preventDefault() - } - } - - /** - * Fired when a key is pressed while in the picker, or within the text field of the widget. - * @param {Event} event - * @returns null - */ - ColorPicker.prototype.onKeyup = function (event) { - // Escape always acts as a cancel - if (event.key === 'Escape') { - this.keyboardEntry = false - this.setColor(this.originalColor) - this.hidePicker() - this.$colorValue.blur() - event.stopPropagation() - return - } - - // Enter will select the current color and hide the picker - if (event.key === 'Enter') { - this.setColor(this.pickr.getColor()) - this.hidePicker() - this.$colorValue.blur() - event.preventDefault() - event.stopPropagation() - return - } - - if ( - (this.$colorValue.val() === '' && this.options.allowEmpty) - || this.pickr.setColor(this.$colorValue.val()) - ) { - this.keyboardEntry = true - } else { - this.keyboardEntry = false - } - } - - /* - * PICKER METHODS - */ - - /** - * Shows the picker. - * - * This also prevents mouse clicks within the picker from making the text field lose focus. - */ - ColorPicker.prototype.showPicker = function () { - this.keyboardEntry = false - this.originalColor = this.pickr.getColor().clone() - this.originalFormat = this.getCurrentFormat() - this.pickr.show() - - $(this.pickr.getRoot().app).on('mousedown.pickr.overrideBlur', function (event) { - // Prevent blur event of the text field firing if the mouse click started inside picker, - // even if it ends up outside. This prevents the whitespace in the picker firing a blur - // event and hiding the picker. - event.preventDefault() - event.stopPropagation() - }) - } - - /** - * Hides the picker. - */ - ColorPicker.prototype.hidePicker = function () { - $(this.pickr.getRoot().app).off('mousedown.pickr.overrideBlur') - this.pickr.hide() - } - - /** - * Fires when the picker is first initialized for a widget. - */ - ColorPicker.prototype.onPickerInit = function () { - if (this.$dataLocker.val()) { - this.pickr.setColor(this.$dataLocker.val()) - } - - this.hidePicker() - - if (this.$dataLocker.val()) { - if (this.options.formats.length === 1) { - this.setColorFormat(this.options.formats[0]) - } - - this.setColor(this.pickr.getColor()) - } - } - - /** - * Updates the selected color when the user stops dragging on the palette. - */ - ColorPicker.prototype.onPickerStopChange = function () { - this.setColor(this.pickr.getColor()) - if (this.options.formats.length === 1) { - this.setColorFormat(this.options.formats[0]) - } - this.onPickerChange(this.pickr.getColor()) - } - - /** - * Fires when the user drags the selector on the color palette, or the hue/opacity sliders. - * @param {HSVaColor} hsva - */ - ColorPicker.prototype.onPickerChange = function (hsva) { - this.keyboardEntry = false - - if (!this.formatSet && this.options.formats.length === 1) { - this.setColorFormat(this.options.formats[0]) - } - - $(this.pickr.getRoot().preview.currentColor).text(this.valueFromHSVA(hsva)) - - // If the format changes, change the value - if (this.getCurrentFormat() !== this.originalFormat) { - this.setColor(hsva) - this.originalFormat = this.getCurrentFormat() - } - - // Set the color selection text to black or white depending on which color is picked - if (this.isLightColor(hsva)) { - $(this.pickr.getRoot().preview.currentColor).css({ color: '#000' }) - } else { - $(this.pickr.getRoot().preview.currentColor).css({ color: '#fff' }) - } - } - - /** - * Fires when the user picks a swatch color. - * @param {HSVaColor} hsva - */ - ColorPicker.prototype.onPickerSwatch = function (hsva) { - this.keyboardEntry = false - this.setColor(hsva) - - if (this.options.formats.length === 1) { - this.setColorFormat(this.options.formats[0]) - } - } - - /** - * Fires when the picker is hidden. - */ - ColorPicker.prototype.onPickerHide = function () { - if (this.keyboardEntry) { - if (this.$colorValue.val() === '' && this.options.allowEmpty) { - this.setColor() - } else { - this.setColor(this.pickr.getColor()) - - if (this.options.formats.length === 1) { - this.setColorFormat(this.options.formats[0]) - } - } - } - - if (this.$dataLocker.val() === '') { - this.pickr.setColor(null) - } else { - this.pickr.setColor(this.$dataLocker.val()) - } - this.$colorValue.val(this.$dataLocker.val()) - - if ( - this.originalColor !== null - && this.valueFromHSVA(this.pickr.getColor()) !== this.valueFromHSVA(this.originalColor) - ) { - this.$el.trigger('change') - } - } - - ColorPicker.prototype.onPickerClear = function () { - this.setColor() - this.hidePicker() - this.$colorValue.blur() - } - - /** - * Gets the necessary color value based on the selected format. - * - * @param {HSVaColor} hsva - * @param {String} overrideFormat Overrides the format specified in the widget config. Can be one of "rgb", "hsl", - * "cmyk" and "hex". - * @returns {String} - */ - ColorPicker.prototype.valueFromHSVA = function (hsva, overrideFormat) { - var format = overrideFormat || this.getCurrentFormat() - - switch (format) { - case 'rgb': - return hsva.toRGBA().toString(1) - case 'hsl': - return hsva.toHSLA().toString(1) - case 'cmyk': - return hsva.toCMYK().toString(1) - case 'hex': - default: - return hsva.toHEXA().toString() - } - } - - /** - * Gets the current color representation from Pickr and translates it to our lowercase color format. - * - * @returns {String} - */ - ColorPicker.prototype.getCurrentFormat = function () { - var currentFormat = this.pickr.getColorRepresentation() - - switch (currentFormat) { - case 'RGBA': - return 'rgb' - case 'HSLA': - return 'hsl' - case 'CMYK': - return 'cmyk' - case 'HEXA': - default: - return 'hex' - } - } - - /** - * Sets the color value for the widget and updates the color preview. - * - * @param {HSVaColor?} hsva - */ - ColorPicker.prototype.setColor = function(hsva) { - if (hsva === undefined && !this.options.allowEmpty) { - this.$colorPreview.css('background', this.valueFromHSVA(this.originalColor, 'hex')) - this.$colorValue.val(this.valueFromHSVA(this.originalColor)) - this.$dataLocker.val(this.valueFromHSVA(this.originalColor)) - } else if (hsva === undefined) { - this.$colorPreview.css('background', '#fff') - this.$colorValue.val('') - this.$dataLocker.val('') - } else { - this.$colorPreview.css('background', this.valueFromHSVA(hsva, 'hex')) - this.$colorValue.val(this.valueFromHSVA(hsva)) - this.$dataLocker.val(this.valueFromHSVA(hsva)) - } - } - - /** - * Sets the color format used for the value. - * - * @param {String} format One of "rgb", "hsl", "cmyk", "hex" - */ - ColorPicker.prototype.setColorFormat = function (format) { - switch (format) { - case 'rgb': - this.pickr.setColorRepresentation('RGBA') - break - case 'hsl': - this.pickr.setColorRepresentation('HSLA') - break - case 'cmyk': - this.pickr.setColorRepresentation('CMYK') - break - case 'hex': - default: - this.pickr.setColorRepresentation('HEX') - break - } - - this.formatSet = true - } - - /** - * Determines if the given HSVAColor is a "light" color. - * - * @param {HSVaColor} hsva - * @returns {Boolean} - */ - ColorPicker.prototype.isLightColor = function (hsva) { - var rgba = hsva.toRGBA() - - // Borrowed from https://awik.io/determine-color-bright-dark-using-javascript/ - var ratio = Math.sqrt( - 0.299 * (rgba[0] * rgba[0]) + - 0.587 * (rgba[1] * rgba[1]) + - 0.114 * (rgba[2] * rgba[2]) - ) - - // If alpha drops by 30%, then assume it is a light color - if (rgba[3] < 0.7) { - return true - } - - return (ratio > 127.5) - } - - // COLORPICKER PLUGIN DEFINITION - // ============================ - - var old = $.fn.colorPicker - - $.fn.colorPicker = function (option) { - var args = Array.prototype.slice.call(arguments, 1), result - this.each(function () { - var $this = $(this) - var data = $this.data('wn.colorpicker') - var options = $.extend({}, ColorPicker.DEFAULTS, $this.data(), typeof option == 'object' && option) - if (!data) $this.data('wn.colorpicker', (data = new ColorPicker(this, options))) - if (typeof option == 'string') result = data[option].apply(data, args) - if (typeof result != 'undefined') return false - }) - - return result ? result : this - } - - $.fn.colorPicker.Constructor = ColorPicker - - // COLORPICKER NO CONFLICT - // ================= - - $.fn.colorPicker.noConflict = function () { - $.fn.colorPicker = old - return this - } - - // COLORPICKER DATA-API - // =============== - - $(document).render(function() { - $('[data-control="colorpicker"]').colorPicker() - }) - -}(window.jQuery); diff --git a/modules/backend/formwidgets/colorpicker/assets/js/dist/colorpicker.js b/modules/backend/formwidgets/colorpicker/assets/js/dist/colorpicker.js new file mode 100644 index 0000000000..5fd8bf6d6c --- /dev/null +++ b/modules/backend/formwidgets/colorpicker/assets/js/dist/colorpicker.js @@ -0,0 +1,3 @@ +(self.webpackChunk_wintercms_wn_backend_module=self.webpackChunk_wintercms_wn_backend_module||[]).push([[728],{562:function(t){ +/*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ +self,t.exports=(()=>{"use strict";var t={d:(e,o)=>{for(var r in o)t.o(o,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:o[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{default:()=>E});var o={};function r(t,e,o,r,i={}){e instanceof HTMLCollection||e instanceof NodeList?e=Array.from(e):Array.isArray(e)||(e=[e]),Array.isArray(o)||(o=[o]);for(const n of e)for(const e of o)n[t](e,r,{capture:!1,...i});return Array.prototype.slice.call(arguments,1)}t.r(o),t.d(o,{adjustableInputNumbers:()=>p,createElementFromString:()=>s,createFromTemplate:()=>a,eventPath:()=>c,off:()=>n,on:()=>i,resolveElement:()=>l});const i=r.bind(null,"addEventListener"),n=r.bind(null,"removeEventListener");function s(t){const e=document.createElement("div");return e.innerHTML=t.trim(),e.firstElementChild}function a(t){const e=(t,e)=>{const o=t.getAttribute(e);return t.removeAttribute(e),o},o=(t,r={})=>{const i=e(t,":obj"),n=e(t,":ref"),s=i?r[i]={}:r;n&&(r[n]=t);for(const r of Array.from(t.children)){const t=e(r,":arr"),i=o(r,t?{}:s);t&&(s[t]||(s[t]=[])).push(Object.keys(i).length?i:r)}return r};return o(s(t))}function c(t){let e=t.path||t.composedPath&&t.composedPath();if(e)return e;let o=t.target.parentElement;for(e=[t.target,o];o=o.parentElement;)e.push(o);return e.push(document,window),e}function l(t){return t instanceof Element?t:"string"==typeof t?t.split(/>>/g).reduce(((t,e,o,r)=>(t=t.querySelector(e),ot)){function o(o){const r=[.001,.01,.1][Number(o.shiftKey||2*o.ctrlKey)]*(o.deltaY<0?1:-1);let i=0,n=t.selectionStart;t.value=t.value.replace(/[\d.]+/g,((t,o)=>o<=n&&o+t.length>=n?(n=o,e(Number(t),r,i)):(i++,t))),t.focus(),t.setSelectionRange(n,n),o.preventDefault(),t.dispatchEvent(new Event("input"))}i(t,"focus",(()=>i(window,"wheel",o,{passive:!1}))),i(t,"blur",(()=>n(window,"wheel",o)))}const{min:h,max:u,floor:d,round:g}=Math;function f(t,e,o){e/=100,o/=100;const r=d(t=t/360*6),i=t-r,n=o*(1-e),s=o*(1-i*e),a=o*(1-(1-i)*e),c=r%6;return[255*[o,s,n,n,a,o][c],255*[a,o,o,s,n,n][c],255*[n,n,a,o,o,s][c]]}function m(t,e,o){const r=(2-(e/=100))*(o/=100)/2;return 0!==r&&(e=1===r?0:r<.5?e*o/(2*r):e*o/(2-2*r)),[t,100*e,100*r]}function v(t,e,o){const r=h(t/=255,e/=255,o/=255),i=u(t,e,o),n=i-r;let s,a;if(0===n)s=a=0;else{a=n/i;const r=((i-t)/6+n/2)/n,c=((i-e)/6+n/2)/n,l=((i-o)/6+n/2)/n;t===i?s=l-c:e===i?s=1/3+r-l:o===i&&(s=2/3+c-r),s<0?s+=1:s>1&&(s-=1)}return[360*s,100*a,100*i]}function b(t,e,o,r){return e/=100,o/=100,[...v(255*(1-h(1,(t/=100)*(1-(r/=100))+r)),255*(1-h(1,e*(1-r)+r)),255*(1-h(1,o*(1-r)+r)))]}function k(t,e,o){e/=100;const r=2*(e*=(o/=100)<.5?o:1-o)/(o+e)*100,i=100*(o+e);return[t,isNaN(r)?0:r,i]}function w(t){return v(...t.match(/.{2}/g).map((t=>parseInt(t,16))))}function y(t){t=t.match(/^[a-zA-Z]+$/)?function(t){if("black"===t.toLowerCase())return"#000";const e=document.createElement("canvas").getContext("2d");return e.fillStyle=t,"#000"===e.fillStyle?null:e.fillStyle}(t):t;const e={cmyk:/^cmyk[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)/i,rgba:/^((rgba)|rgb)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsla:/^((hsla)|hsl)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hsva:/^((hsva)|hsv)[\D]+([\d.]+)[\D]+([\d.]+)[\D]+([\d.]+)[\D]*?([\d.]+|$)/i,hexa:/^#?(([\dA-Fa-f]{3,4})|([\dA-Fa-f]{6})|([\dA-Fa-f]{8}))$/i},o=t=>t.map((t=>/^(|\d+)\.\d+|\d+$/.test(t)?Number(t):void 0));let r;t:for(const i in e){if(!(r=e[i].exec(t)))continue;const n=t=>!!r[2]==("number"==typeof t);switch(i){case"cmyk":{const[,t,e,n,s]=o(r);if(t>100||e>100||n>100||s>100)break t;return{values:b(t,e,n,s),type:i}}case"rgba":{const[,,,t,e,s,a]=o(r);if(t>255||e>255||s>255||a<0||a>1||!n(a))break t;return{values:[...v(t,e,s),a],a:a,type:i}}case"hexa":{let[,t]=r;4!==t.length&&3!==t.length||(t=t.split("").map((t=>t+t)).join(""));const e=t.substring(0,6);let o=t.substring(6);return o=o?parseInt(o,16)/255:void 0,{values:[...w(e),o],a:o,type:i}}case"hsla":{const[,,,t,e,s,a]=o(r);if(t>360||e>100||s>100||a<0||a>1||!n(a))break t;return{values:[...k(t,e,s),a],a:a,type:i}}case"hsva":{const[,,,t,e,s,a]=o(r);if(t>360||e>100||s>100||a<0||a>1||!n(a))break t;return{values:[t,e,s,a],a:a,type:i}}}}return{values:null,type:null}}function _(t=0,e=0,o=0,r=1){const i=(t,e)=>(o=-1)=>e(~o?t.map((t=>Number(t.toFixed(o)))):t),n={h:t,s:e,v:o,a:r,toHSVA(){const t=[n.h,n.s,n.v,n.a];return t.toString=i(t,(t=>`hsva(${t[0]}, ${t[1]}%, ${t[2]}%, ${n.a})`)),t},toHSLA(){const t=[...m(n.h,n.s,n.v),n.a];return t.toString=i(t,(t=>`hsla(${t[0]}, ${t[1]}%, ${t[2]}%, ${n.a})`)),t},toRGBA(){const t=[...f(n.h,n.s,n.v),n.a];return t.toString=i(t,(t=>`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${n.a})`)),t},toCMYK(){const t=function(t,e,o){const r=f(t,e,o),i=r[0]/255,n=r[1]/255,s=r[2]/255,a=h(1-i,1-n,1-s);return[100*(1===a?0:(1-i-a)/(1-a)),100*(1===a?0:(1-n-a)/(1-a)),100*(1===a?0:(1-s-a)/(1-a)),100*a]}(n.h,n.s,n.v);return t.toString=i(t,(t=>`cmyk(${t[0]}%, ${t[1]}%, ${t[2]}%, ${t[3]}%)`)),t},toHEXA(){const t=function(t,e,o){return f(t,e,o).map((t=>g(t).toString(16).padStart(2,"0")))}(n.h,n.s,n.v),e=n.a>=1?"":Number((255*n.a).toFixed(0)).toString(16).toUpperCase().padStart(2,"0");return e&&t.push(e),t.toString=()=>`#${t.join("").toUpperCase()}`,t},clone:()=>_(n.h,n.s,n.v,n.a)};return n}const C=t=>Math.max(Math.min(t,1),0);function x(t){const e={options:Object.assign({lock:null,onchange:()=>0,onstop:()=>0},t),_keyboard(t){const{options:o}=e,{type:r,key:i}=t;if(document.activeElement===o.wrapper){const{lock:o}=e.options,n="ArrowUp"===i,s="ArrowRight"===i,a="ArrowDown"===i,c="ArrowLeft"===i;if("keydown"===r&&(n||s||a||c)){let r=0,i=0;"v"===o?r=n||s?1:-1:"h"===o?r=n||s?-1:1:(i=n?-1:a?1:0,r=c?-1:s?1:0),e.update(C(e.cache.x+.01*r),C(e.cache.y+.01*i)),t.preventDefault()}else i.startsWith("Arrow")&&(e.options.onstop(),t.preventDefault())}},_tapstart(t){i(document,["mouseup","touchend","touchcancel"],e._tapstop),i(document,["mousemove","touchmove"],e._tapmove),t.cancelable&&t.preventDefault(),e._tapmove(t)},_tapmove(t){const{options:o,cache:r}=e,{lock:i,element:n,wrapper:s}=o,a=s.getBoundingClientRect();let c=0,l=0;if(t){const e=t&&t.touches&&t.touches[0];c=t?(e||t).clientX:0,l=t?(e||t).clientY:0,ca.left+a.width&&(c=a.left+a.width),la.top+a.height&&(l=a.top+a.height),c-=a.left,l-=a.top}else r&&(c=r.x*a.width,l=r.y*a.height);"h"!==i&&(n.style.left=`calc(${c/a.width*100}% - ${n.offsetWidth/2}px)`),"v"!==i&&(n.style.top=`calc(${l/a.height*100}% - ${n.offsetHeight/2}px)`),e.cache={x:c/a.width,y:l/a.height};const p=C(c/a.width),h=C(l/a.height);switch(i){case"v":return o.onchange(p);case"h":return o.onchange(h);default:return o.onchange(p,h)}},_tapstop(){e.options.onstop(),n(document,["mouseup","touchend","touchcancel"],e._tapstop),n(document,["mousemove","touchmove"],e._tapmove)},trigger(){e._tapmove()},update(t=0,o=0){const{left:r,top:i,width:n,height:s}=e.options.wrapper.getBoundingClientRect();"h"===e.options.lock&&(o=t),e._tapmove({clientX:r+n*t,clientY:i+s*o})},destroy(){const{options:t,_tapstart:o,_keyboard:r}=e;n(document,["keydown","keyup"],r),n([t.wrapper,t.element],"mousedown",o),n([t.wrapper,t.element],"touchstart",o,{passive:!1})}},{options:o,_tapstart:r,_keyboard:s}=e;return i([o.wrapper,o.element],"mousedown",r),i([o.wrapper,o.element],"touchstart",r,{passive:!1}),i(document,["keydown","keyup"],s),e}function A(t={}){t=Object.assign({onchange:()=>0,className:"",elements:[]},t);const e=i(t.elements,"click",(e=>{t.elements.forEach((o=>o.classList[e.target===o?"add":"remove"](t.className))),t.onchange(e),e.stopPropagation()}));return{destroy:()=>n(...e)}}const S={variantFlipOrder:{start:"sme",middle:"mse",end:"ems"},positionFlipOrder:{top:"tbrl",right:"rltb",bottom:"btrl",left:"lrbt"},position:"bottom",margin:8},H=(t,e,o)=>{const{container:r,margin:i,position:n,variantFlipOrder:s,positionFlipOrder:a}={container:document.documentElement.getBoundingClientRect(),...S,...o},{left:c,top:l}=e.style;e.style.left="0",e.style.top="0";const p=t.getBoundingClientRect(),h=e.getBoundingClientRect(),u={t:p.top-h.height-i,b:p.bottom+i,r:p.right+i,l:p.left-h.width-i},d={vs:p.left,vm:p.left+p.width/2+-h.width/2,ve:p.left+p.width-h.width,hs:p.top,hm:p.bottom-p.height/2-h.height/2,he:p.bottom-h.height},[g,f="middle"]=n.split("-"),m=a[g],v=s[f],{top:b,left:k,bottom:w,right:y}=r;for(const t of m){const o="t"===t||"b"===t,r=u[t],[i,n]=o?["top","left"]:["left","top"],[s,a]=o?[h.height,h.width]:[h.width,h.height],[c,l]=o?[w,y]:[y,w],[p,g]=o?[b,k]:[k,b];if(!(rc))for(const s of v){const c=d[(o?"v":"h")+s];if(!(cl))return e.style[n]=c-h[n]+"px",e.style[i]=r-h[i]+"px",t+s}}return e.style.left=c,e.style.top=l,null};function V(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class E{constructor(t){V(this,"_initializingActive",!0),V(this,"_recalc",!0),V(this,"_nanopop",null),V(this,"_root",null),V(this,"_color",_()),V(this,"_lastColor",_()),V(this,"_swatchColors",[]),V(this,"_setupAnimationFrame",null),V(this,"_eventListener",{init:[],save:[],hide:[],show:[],clear:[],change:[],changestop:[],cancel:[],swatchselect:[]}),this.options=t=Object.assign({...E.DEFAULT_OPTIONS},t);const{swatches:e,components:o,theme:r,sliders:i,lockOpacity:n,padding:s}=t;["nano","monolith"].includes(r)&&!i&&(t.sliders="h"),o.interaction||(o.interaction={});const{preview:a,opacity:c,hue:l,palette:p}=o;o.opacity=!n&&c,o.palette=p||a||c||l,this._preBuild(),this._buildComponents(),this._bindEvents(),this._finalBuild(),e&&e.length&&e.forEach((t=>this.addSwatch(t)));const{button:h,app:u}=this._root;this._nanopop=((t,e,o)=>{const r="object"!=typeof t||t instanceof HTMLElement?{reference:t,popper:e,...o}:t;return{update(t=r){const{reference:e,popper:o}=Object.assign(r,t);if(!o||!e)throw new Error("Popper- or reference-element missing.");return H(e,o,r)}}})(h,u,{margin:s}),h.setAttribute("role","button"),h.setAttribute("aria-label",this._t("btn:toggle"));const d=this;this._setupAnimationFrame=requestAnimationFrame((function e(){if(!u.offsetWidth)return requestAnimationFrame(e);d.setColor(t.default),d._rePositioningPicker(),t.defaultRepresentation&&(d._representation=t.defaultRepresentation,d.setColorRepresentation(d._representation)),t.showAlways&&d.show(),d._initializingActive=!1,d._emit("init")}))}_preBuild(){const{options:t}=this;for(const e of["el","container"])t[e]=l(t[e]);this._root=(t=>{const{components:e,useAsButton:o,inline:r,appClass:i,theme:n,lockOpacity:s}=t.options,c=t=>t?"":'style="display:none" hidden',l=e=>t._t(e),p=a(`\n
\n\n ${o?"":''}\n\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n
\n \n\n \n \n \n \n \n\n \n \n \n
\n
\n
\n `),h=p.interaction;return h.options.find((t=>!t.hidden&&!t.classList.add("active"))),h.type=()=>h.options.find((t=>t.classList.contains("active"))),p})(this),t.useAsButton&&(this._root.button=t.el),t.container.appendChild(this._root.root)}_finalBuild(){const t=this.options,e=this._root;if(t.container.removeChild(e.root),t.inline){const o=t.el.parentElement;t.el.nextSibling?o.insertBefore(e.app,t.el.nextSibling):o.appendChild(e.app)}else t.container.appendChild(e.app);t.useAsButton?t.inline&&t.el.remove():t.el.parentNode.replaceChild(e.root,t.el),t.disabled&&this.disable(),t.comparison||(e.button.style.transition="none",t.useAsButton||(e.preview.lastColor.style.transition="none")),this.hide()}_buildComponents(){const t=this,e=this.options.components,o=(t.options.sliders||"v").repeat(2),[r,i]=o.match(/^[vh]+$/g)?o:[],n=()=>this._color||(this._color=this._lastColor.clone()),s={palette:x({element:t._root.palette.picker,wrapper:t._root.palette.palette,onstop:()=>t._emit("changestop","slider",t),onchange(o,r){if(!e.palette)return;const i=n(),{_root:s,options:a}=t,{lastColor:c,currentColor:l}=s.preview;t._recalc&&(i.s=100*o,i.v=100-100*r,i.v<0&&(i.v=0),t._updateOutput("slider"));const p=i.toRGBA().toString(0);this.element.style.background=p,this.wrapper.style.background=`\n linear-gradient(to top, rgba(0, 0, 0, ${i.a}), transparent),\n linear-gradient(to left, hsla(${i.h}, 100%, 50%, ${i.a}), rgba(255, 255, 255, ${i.a}))\n `,a.comparison?a.useAsButton||t._lastColor||c.style.setProperty("--pcr-color",p):(s.button.style.setProperty("--pcr-color",p),s.button.classList.remove("clear"));const h=i.toHEXA().toString();for(const{el:e,color:o}of t._swatchColors)e.classList[h===o.toHEXA().toString()?"add":"remove"]("pcr-active");l.style.setProperty("--pcr-color",p)}}),hue:x({lock:"v"===i?"h":"v",element:t._root.hue.picker,wrapper:t._root.hue.slider,onstop:()=>t._emit("changestop","slider",t),onchange(o){if(!e.hue||!e.palette)return;const r=n();t._recalc&&(r.h=360*o),this.element.style.backgroundColor=`hsl(${r.h}, 100%, 50%)`,s.palette.trigger()}}),opacity:x({lock:"v"===r?"h":"v",element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onstop:()=>t._emit("changestop","slider",t),onchange(o){if(!e.opacity||!e.palette)return;const r=n();t._recalc&&(r.a=Math.round(100*o)/100),this.element.style.background=`rgba(0, 0, 0, ${r.a})`,s.palette.trigger()}}),selectable:A({elements:t._root.interaction.options,className:"active",onchange(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._recalc&&t._updateOutput("swatch")}})};this._components=s}_bindEvents(){const{_root:t,options:e}=this,o=[i(t.interaction.clear,"click",(()=>this._clearColor())),i([t.interaction.cancel,t.preview.lastColor],"click",(()=>{this.setHSVA(...(this._lastColor||this._color).toHSVA(),!0),this._emit("cancel")})),i(t.interaction.save,"click",(()=>{!this.applyColor()&&!e.showAlways&&this.hide()})),i(t.interaction.result,["keyup","input"],(t=>{this.setColor(t.target.value,!0)&&!this._initializingActive&&(this._emit("change",this._color,"input",this),this._emit("changestop","input",this)),t.stopImmediatePropagation()})),i(t.interaction.result,["focus","blur"],(t=>{this._recalc="blur"===t.type,this._recalc&&this._updateOutput(null)})),i([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],["mousedown","touchstart"],(()=>this._recalc=!0),{passive:!0})];if(!e.showAlways){const r=e.closeWithKey;o.push(i(t.button,"click",(()=>this.isOpen()?this.hide():this.show())),i(document,"keyup",(t=>this.isOpen()&&(t.key===r||t.code===r)&&this.hide())),i(document,["touchstart","mousedown"],(e=>{this.isOpen()&&!c(e).some((e=>e===t.app||e===t.button))&&this.hide()}),{capture:!0}))}if(e.adjustableNumbers){const e={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};p(t.interaction.result,((t,o,r)=>{const i=e[this.getColorRepresentation().toLowerCase()];if(i){const e=i[r],n=t+(e>=100?1e3*o:o);return n<=0?0:Number((n{r.isOpen()&&(e.closeOnScroll&&r.hide(),null===t?(t=setTimeout((()=>t=null),100),requestAnimationFrame((function e(){r._rePositioningPicker(),null!==t&&requestAnimationFrame(e)}))):(clearTimeout(t),t=setTimeout((()=>t=null),100)))}),{capture:!0}))}this._eventBindings=o}_rePositioningPicker(){const{options:t}=this;if(!t.inline&&!this._nanopop.update({container:document.body.getBoundingClientRect(),position:t.position})){const t=this._root.app,e=t.getBoundingClientRect();t.style.top=(window.innerHeight-e.height)/2+"px",t.style.left=(window.innerWidth-e.width)/2+"px"}}_updateOutput(t){const{_root:e,_color:o,options:r}=this;if(e.interaction.type()){const t=`to${e.interaction.type().getAttribute("data-type")}`;e.interaction.result.value="function"==typeof o[t]?o[t]().toString(r.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",o,t,this)}_clearColor(t=!1){const{_root:e,options:o}=this;o.useAsButton||e.button.style.setProperty("--pcr-color","rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),o.showAlways||this.hide(),this._lastColor=null,this._initializingActive||t||(this._emit("save",null),this._emit("clear"))}_parseLocalColor(t){const{values:e,type:o,a:r}=y(t),{lockOpacity:i}=this.options,n=void 0!==r&&1!==r;return e&&3===e.length&&(e[3]=void 0),{values:!e||i&&n?null:e,type:o}}_t(t){return this.options.i18n[t]||E.I18N_DEFAULTS[t]}_emit(t,...e){this._eventListener[t].forEach((t=>t(...e,this)))}on(t,e){return this._eventListener[t].push(e),this}off(t,e){const o=this._eventListener[t]||[],r=o.indexOf(e);return~r&&o.splice(r,1),this}addSwatch(t){const{values:e}=this._parseLocalColor(t);if(e){const{_swatchColors:t,_root:o}=this,r=_(...e),n=s(`'}\n\n
\n
\n
\n \n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n\n
\n \n\n \n \n \n \n \n\n \n \n \n
\n
\n
\n `),u=p.interaction;return u.options.find((t=>!t.hidden&&!t.classList.add("active"))),u.type=()=>u.options.find((t=>t.classList.contains("active"))),p})(this),t.useAsButton&&(this._root.button=t.el),t.container.appendChild(this._root.root)}_finalBuild(){const t=this.options,e=this._root;if(t.container.removeChild(e.root),t.inline){const o=t.el.parentElement;t.el.nextSibling?o.insertBefore(e.app,t.el.nextSibling):o.appendChild(e.app)}else t.container.appendChild(e.app);t.useAsButton?t.inline&&t.el.remove():t.el.parentNode.replaceChild(e.root,t.el),t.disabled&&this.disable(),t.comparison||(e.button.style.transition="none",t.useAsButton||(e.preview.lastColor.style.transition="none")),this.hide()}_buildComponents(){const t=this,e=this.options.components,o=(t.options.sliders||"v").repeat(2),[n,i]=o.match(/^[vh]+$/g)?o:[],s=()=>this._color||(this._color=this._lastColor.clone()),r={palette:$({element:t._root.palette.picker,wrapper:t._root.palette.palette,onstop:()=>t._emit("changestop","slider",t),onchange(o,n){if(!e.palette)return;const i=s(),{_root:r,options:a}=t,{lastColor:l,currentColor:c}=r.preview;t._recalc&&(i.s=100*o,i.v=100-100*n,i.v<0&&(i.v=0),t._updateOutput("slider"));const p=i.toRGBA().toString(0);this.element.style.background=p,this.wrapper.style.background=`\n linear-gradient(to top, rgba(0, 0, 0, ${i.a}), transparent),\n linear-gradient(to left, hsla(${i.h}, 100%, 50%, ${i.a}), rgba(255, 255, 255, ${i.a}))\n `,a.comparison?a.useAsButton||t._lastColor||l.style.setProperty("--pcr-color",p):(r.button.style.setProperty("--pcr-color",p),r.button.classList.remove("clear"));const u=i.toHEXA().toString();for(const{el:e,color:o}of t._swatchColors)e.classList[u===o.toHEXA().toString()?"add":"remove"]("pcr-active");c.style.setProperty("--pcr-color",p)}}),hue:$({lock:"v"===i?"h":"v",element:t._root.hue.picker,wrapper:t._root.hue.slider,onstop:()=>t._emit("changestop","slider",t),onchange(o){if(!e.hue||!e.palette)return;const n=s();t._recalc&&(n.h=360*o),this.element.style.backgroundColor=`hsl(${n.h}, 100%, 50%)`,r.palette.trigger()}}),opacity:$({lock:"v"===n?"h":"v",element:t._root.opacity.picker,wrapper:t._root.opacity.slider,onstop:()=>t._emit("changestop","slider",t),onchange(o){if(!e.opacity||!e.palette)return;const n=s();t._recalc&&(n.a=Math.round(100*o)/100),this.element.style.background=`rgba(0, 0, 0, ${n.a})`,r.palette.trigger()}}),selectable:k({elements:t._root.interaction.options,className:"active",onchange(e){t._representation=e.target.getAttribute("data-type").toUpperCase(),t._recalc&&t._updateOutput("swatch")}})};this._components=r}_bindEvents(){const{_root:t,options:e}=this,o=[i(t.interaction.clear,"click",(()=>this._clearColor())),i([t.interaction.cancel,t.preview.lastColor],"click",(()=>{this.setHSVA(...(this._lastColor||this._color).toHSVA(),!0),this._emit("cancel")})),i(t.interaction.save,"click",(()=>{!this.applyColor()&&!e.showAlways&&this.hide()})),i(t.interaction.result,["keyup","input"],(t=>{this.setColor(t.target.value,!0)&&!this._initializingActive&&(this._emit("change",this._color,"input",this),this._emit("changestop","input",this)),t.stopImmediatePropagation()})),i(t.interaction.result,["focus","blur"],(t=>{this._recalc="blur"===t.type,this._recalc&&this._updateOutput(null)})),i([t.palette.palette,t.palette.picker,t.hue.slider,t.hue.picker,t.opacity.slider,t.opacity.picker],["mousedown","touchstart"],(()=>this._recalc=!0),{passive:!0})];if(!e.showAlways){const n=e.closeWithKey;o.push(i(t.button,"click",(()=>this.isOpen()?this.hide():this.show())),i(document,"keyup",(t=>this.isOpen()&&(t.key===n||t.code===n)&&this.hide())),i(document,["touchstart","mousedown"],(e=>{this.isOpen()&&!l(e).some((e=>e===t.app||e===t.button))&&this.hide()}),{capture:!0}))}if(e.adjustableNumbers){const e={rgba:[255,255,255,1],hsva:[360,100,100,1],hsla:[360,100,100,1],cmyk:[100,100,100,100]};p(t.interaction.result,((t,o,n)=>{const i=e[this.getColorRepresentation().toLowerCase()];if(i){const e=i[n],s=t+(e>=100?1e3*o:o);return s<=0?0:Number((s{n.isOpen()&&(e.closeOnScroll&&n.hide(),null===t?(t=setTimeout((()=>t=null),100),requestAnimationFrame((function e(){n._rePositioningPicker(),null!==t&&requestAnimationFrame(e)}))):(clearTimeout(t),t=setTimeout((()=>t=null),100)))}),{capture:!0}))}this._eventBindings=o}_rePositioningPicker(){const{options:t}=this;if(!t.inline){if(!this._nanopop.update({container:document.body.getBoundingClientRect(),position:t.position})){const t=this._root.app,e=t.getBoundingClientRect();t.style.top=(window.innerHeight-e.height)/2+"px",t.style.left=(window.innerWidth-e.width)/2+"px"}}}_updateOutput(t){const{_root:e,_color:o,options:n}=this;if(e.interaction.type()){const t=`to${e.interaction.type().getAttribute("data-type")}`;e.interaction.result.value="function"==typeof o[t]?o[t]().toString(n.outputPrecision):""}!this._initializingActive&&this._recalc&&this._emit("change",o,t,this)}_clearColor(t=!1){const{_root:e,options:o}=this;o.useAsButton||e.button.style.setProperty("--pcr-color","rgba(0, 0, 0, 0.15)"),e.button.classList.add("clear"),o.showAlways||this.hide(),this._lastColor=null,this._initializingActive||t||(this._emit("save",null),this._emit("clear"))}_parseLocalColor(t){const{values:e,type:o,a:n}=w(t),{lockOpacity:i}=this.options,s=void 0!==n&&1!==n;return e&&3===e.length&&(e[3]=void 0),{values:!e||i&&s?null:e,type:o}}_t(t){return this.options.i18n[t]||L.I18N_DEFAULTS[t]}_emit(t,...e){this._eventListener[t].forEach((t=>t(...e,this)))}on(t,e){return this._eventListener[t].push(e),this}off(t,e){const o=this._eventListener[t]||[],n=o.indexOf(e);return~n&&o.splice(n,1),this}addSwatch(t){const{values:e}=this._parseLocalColor(t);if(e){const{_swatchColors:t,_root:o}=this,n=A(...e),s=r(`