From c4b3fce103e66ae321fb8bf67cfffb12cbdbc051 Mon Sep 17 00:00:00 2001 From: Boone B Gorges Date: Wed, 4 Dec 2024 07:00:27 -0600 Subject: [PATCH] Add theme: kenta. This is a parent theme for kenta-groovy-blog. See #3461. --- wp-content/themes/kenta/comments.php | 76 + wp-content/themes/kenta/dist/css/admin.css | 571 + .../themes/kenta/dist/css/admin.min.css | 1 + .../themes/kenta/dist/css/customizer.css | 155 + .../themes/kenta/dist/css/customizer.min.css | 1 + .../themes/kenta/dist/css/editor-style.css | 649 + .../kenta/dist/css/editor-style.min.css | 1 + wp-content/themes/kenta/dist/css/style.css | 3004 ++ .../themes/kenta/dist/css/style.min.css | 1 + wp-content/themes/kenta/dist/css/woo.css | 1138 + wp-content/themes/kenta/dist/css/woo.min.css | 1 + .../themes/kenta/dist/images/above-header.png | Bin 0 -> 902 bytes .../dist/images/archive-left-sidebar.png | Bin 0 -> 1042 bytes .../dist/images/archive-right-sidebar.png | Bin 0 -> 944 bytes .../kenta/dist/images/behind-header.png | Bin 0 -> 880 bytes .../themes/kenta/dist/images/below-header.png | Bin 0 -> 904 bytes .../kenta/dist/images/kenta-logo-light.png | Bin 0 -> 24570 bytes .../themes/kenta/dist/images/left-sidebar.png | Bin 0 -> 939 bytes .../themes/kenta/dist/images/narrow.png | Bin 0 -> 877 bytes .../themes/kenta/dist/images/normal.png | Bin 0 -> 940 bytes .../images/recommend-plugins/kenta-blocks.png | Bin 0 -> 7850 bytes .../recommend-plugins/kenta-companion.png | Bin 0 -> 6201 bytes .../images/recommend-plugins/plover-kit.png | Bin 0 -> 1220 bytes .../kenta/dist/images/right-sidebar.png | Bin 0 -> 932 bytes .../kenta/dist/images/sidebar-style-1.png | Bin 0 -> 1223 bytes .../kenta/dist/images/sidebar-style-2.png | Bin 0 -> 1186 bytes .../themes/kenta/dist/js/admin.asset.php | 1 + wp-content/themes/kenta/dist/js/admin.js | 124 + .../themes/kenta/dist/js/admin.min.asset.php | 1 + wp-content/themes/kenta/dist/js/admin.min.js | 1 + wp-content/themes/kenta/dist/js/app.asset.php | 1 + wp-content/themes/kenta/dist/js/app.js | 1509 + .../themes/kenta/dist/js/app.min.asset.php | 1 + wp-content/themes/kenta/dist/js/app.min.js | 2 + .../kenta/dist/js/app.min.js.LICENSE.txt | 1 + .../kenta/dist/js/block-editor.asset.php | 1 + .../themes/kenta/dist/js/block-editor.js | 3389 ++ .../kenta/dist/js/block-editor.min.asset.php | 1 + .../themes/kenta/dist/js/block-editor.min.js | 2 + .../dist/js/block-editor.min.js.LICENSE.txt | 14 + .../dist/js/customizer-preview.asset.php | 1 + .../kenta/dist/js/customizer-preview.js | 783 + .../dist/js/customizer-preview.min.asset.php | 1 + .../kenta/dist/js/customizer-preview.min.js | 1 + .../themes/kenta/dist/js/customizer.asset.php | 1 + wp-content/themes/kenta/dist/js/customizer.js | 25 + .../kenta/dist/js/customizer.min.asset.php | 1 + .../themes/kenta/dist/js/customizer.min.js | 1 + wp-content/themes/kenta/dist/vendor/.gitkeep | 0 .../kenta/dist/vendor/hc-sticky/hc-sticky.js | 743 + .../dist/vendor/hc-sticky/hc-sticky.min.js | 11 + .../vendor/particles/tsparticles.bundle.js | 12676 ++++++ .../particles/tsparticles.bundle.min.js | 2 + .../dist/vendor/scrollreveal/scrollreveal.js | 1538 + .../vendor/scrollreveal/scrollreveal.min.js | 12 + wp-content/themes/kenta/footer.php | 40 + wp-content/themes/kenta/functions.php | 146 + wp-content/themes/kenta/header.php | 46 + wp-content/themes/kenta/inc/admin-page.php | 228 + .../inc/builder/class-builder-column.php | 202 + .../inc/builder/class-footer-builder.php | 224 + .../kenta/inc/builder/class-footer-column.php | 31 + .../kenta/inc/builder/class-footer-row.php | 207 + .../inc/builder/class-header-builder.php | 288 + .../kenta/inc/builder/class-header-column.php | 34 + .../kenta/inc/builder/class-header-row.php | 237 + .../kenta/inc/builder/class-modal-row.php | 195 + wp-content/themes/kenta/inc/customizer.php | 306 + .../inc/customizer/class-archive-section.php | 531 + .../customizer/class-background-section.php | 101 + .../inc/customizer/class-colors-section.php | 159 + .../inc/customizer/class-content-section.php | 239 + .../inc/customizer/class-footer-section.php | 43 + .../inc/customizer/class-global-section.php | 128 + .../inc/customizer/class-header-section.php | 210 + .../inc/customizer/class-homepage-section.php | 38 + .../inc/customizer/class-pages-section.php | 135 + .../inc/customizer/class-placeholders.php | 413 + .../customizer/class-single-post-section.php | 319 + .../class-store-catalog-section.php | 111 + .../customizer/class-store-notice-section.php | 50 + wp-content/themes/kenta/inc/dynamic-css.php | 1121 + .../elements/class-breadcrumbs-element.php | 154 + .../inc/elements/class-button-element.php | 140 + .../kenta/inc/elements/class-cart-element.php | 171 + .../class-collapsable-menu-element.php | 218 + .../inc/elements/class-copyright-element.php | 105 + .../kenta/inc/elements/class-logo-element.php | 272 + .../kenta/inc/elements/class-menu-element.php | 505 + .../inc/elements/class-search-element.php | 324 + .../inc/elements/class-socials-element.php | 129 + .../elements/class-theme-switch-element.php | 103 + .../inc/elements/class-trigger-element.php | 98 + .../inc/elements/class-widgets-element.php | 98 + wp-content/themes/kenta/inc/extensions.php | 14 + .../extensions/class-particles-extension.php | 209 + .../extensions/class-preloader-extension.php | 83 + .../class-related-posts-extension.php | 256 + .../class-scroll-reveal-extension.php | 95 + .../extensions/class-scroll-top-extension.php | 237 + .../extensions/class-socials-extension.php | 184 + .../inc/extensions/class-sticky-extension.php | 145 + wp-content/themes/kenta/inc/helpers.php | 514 + .../themes/kenta/inc/template-functions.php | 696 + wp-content/themes/kenta/inc/template-tags.php | 1896 + wp-content/themes/kenta/inc/theme-setup.php | 511 + wp-content/themes/kenta/inc/traits.php | 16 + .../inc/traits/trait-article-controls.php | 339 + .../inc/traits/trait-button-controls.php | 175 + .../traits/trait-global-color-controls.php | 79 + .../inc/traits/trait-icon-button-controls.php | 161 + .../inc/traits/trait-particles-effect.php | 217 + .../kenta/inc/traits/trait-post-card.php | 103 + .../kenta/inc/traits/trait-post-structure.php | 381 + .../inc/traits/trait-socials-controls.php | 160 + .../inc/traits/trait-widgets-controls.php | 285 + wp-content/themes/kenta/inc/woo-setup.php | 486 + wp-content/themes/kenta/index.php | 25 + wp-content/themes/kenta/languages/kenta.pot | 2805 ++ .../themes/kenta/lotta-framework/LICENSE | 339 + .../themes/kenta/lotta-framework/README.md | 98 + .../dist/css/customizer-preview.css | 130 + .../dist/css/customizer-preview.min.css | 1 + .../lotta-framework/dist/css/customizer.css | 2972 ++ .../dist/css/customizer.min.css | 2 + .../dist/js/customizer-preview.js | 1078 + .../dist/js/customizer-preview.min.js | 1 + .../lotta-framework/dist/js/customizer.js | 35604 ++++++++++++++++ .../lotta-framework/dist/js/customizer.min.js | 2 + .../dist/js/customizer.min.js.LICENSE.txt | 34 + .../dist/vendor/fontawesome/css/all.min.css | 9 + .../fontawesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 118072 bytes .../fontawesome/webfonts/fa-regular-400.woff2 | Bin 0 -> 25464 bytes .../fontawesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 157192 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4800 bytes .../kenta/lotta-framework/src/Application.php | 128 + .../kenta/lotta-framework/src/Async/Css.php | 132 + .../kenta/lotta-framework/src/Bootstrap.php | 53 + .../Container/BindingResolutionException.php | 7 + .../src/Container/BoundMethod.php | 195 + .../src/Container/Container.php | 1276 + .../Container/ContextualBindingBuilder.php | 65 + .../src/Container/EntryNotFoundException.php | 9 + .../src/Container/RewindableGenerator.php | 60 + .../lotta-framework/src/Container/Util.php | 70 + .../themes/kenta/lotta-framework/src/Css.php | 587 + .../src/Customizer/CallToActionSection.php | 78 + .../src/Customizer/ContainerControl.php | 47 + .../src/Customizer/Control.php | 342 + .../src/Customizer/Controls/Background.php | 23 + .../src/Customizer/Controls/Border.php | 41 + .../src/Customizer/Controls/BoxShadow.php | 34 + .../src/Customizer/Controls/Builder.php | 502 + .../src/Customizer/Controls/CallToAction.php | 47 + .../src/Customizer/Controls/Collapse.php | 48 + .../src/Customizer/Controls/ColorPalettes.php | 59 + .../src/Customizer/Controls/ColorPicker.php | 91 + .../src/Customizer/Controls/Condition.php | 50 + .../src/Customizer/Controls/Editor.php | 81 + .../src/Customizer/Controls/FileUploader.php | 63 + .../src/Customizer/Controls/Filters.php | 31 + .../src/Customizer/Controls/Icons.php | 38 + .../src/Customizer/Controls/ImageRadio.php | 22 + .../src/Customizer/Controls/ImageUploader.php | 33 + .../src/Customizer/Controls/Info.php | 61 + .../src/Customizer/Controls/Layers.php | 67 + .../src/Customizer/Controls/MultiSelect.php | 69 + .../src/Customizer/Controls/Number.php | 25 + .../src/Customizer/Controls/PageBuilder.php | 264 + .../src/Customizer/Controls/Placeholder.php | 79 + .../src/Customizer/Controls/Radio.php | 34 + .../src/Customizer/Controls/Repeater.php | 103 + .../src/Customizer/Controls/Section.php | 80 + .../src/Customizer/Controls/Select.php | 34 + .../src/Customizer/Controls/Separator.php | 48 + .../src/Customizer/Controls/Slider.php | 72 + .../src/Customizer/Controls/Spacing.php | 41 + .../src/Customizer/Controls/Tabs.php | 76 + .../src/Customizer/Controls/Tags.php | 38 + .../src/Customizer/Controls/Text.php | 31 + .../src/Customizer/Controls/TextArea.php | 37 + .../src/Customizer/Controls/Toggle.php | 25 + .../src/Customizer/Controls/Typography.php | 88 + .../src/Customizer/Customizer.php | 720 + .../src/Customizer/GenericBuilder/Element.php | 222 + .../src/Customizer/GenericBuilder/Row.php | 340 + .../src/Customizer/PageBuilder/Container.php | 83 + .../src/Customizer/PageBuilder/Element.php | 83 + .../src/Customizer/Sanitizes.php | 569 + .../src/Customizer/Section.php | 68 + .../Customizer/Traits/ContainerControl.php | 49 + .../src/Customizer/Traits/RadioControl.php | 46 + .../src/Customizer/Traits/Renderable.php | 47 + .../src/Customizer/Traits/Settings.php | 233 + .../src/Extensions/Breadcrumbs.php | 159 + .../lotta-framework/src/Facades/AsyncCss.php | 27 + .../src/Facades/Breadcrumbs.php | 23 + .../kenta/lotta-framework/src/Facades/CZ.php | 36 + .../kenta/lotta-framework/src/Facades/Css.php | 35 + .../lotta-framework/src/Facades/Facade.php | 142 + .../lotta-framework/src/Facades/Query.php | 22 + .../src/Icons/IconsManager.php | 89 + .../src/Icons/fontawesome.json | 1 + .../kenta/lotta-framework/src/Query.php | 154 + .../lotta-framework/src/Typography/Fonts.php | 346 + .../src/Typography/google-fonts.json | 1 + .../src/Typography/system-fonts.json | 1 + .../kenta/lotta-framework/src/Utils.php | 386 + .../kenta/lotta-framework/vendor/autoload.php | 25 + .../vendor/composer/ClassLoader.php | 579 + .../vendor/composer/InstalledVersions.php | 359 + .../lotta-framework/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 10 + .../vendor/composer/autoload_files.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 10 + .../vendor/composer/autoload_real.php | 50 + .../vendor/composer/autoload_static.php | 40 + .../vendor/composer/installed.json | 54 + .../vendor/composer/installed.php | 32 + .../vendor/composer/platform_check.php | 26 + .../vendor/wptt/webfont-loader/.gitattributes | 6 + .../vendor/wptt/webfont-loader/LICENSE | 21 + .../vendor/wptt/webfont-loader/README.md | 124 + .../webfont-loader/wptt-webfont-loader.php | 697 + wp-content/themes/kenta/page.php | 14 + wp-content/themes/kenta/readme.txt | 326 + wp-content/themes/kenta/rtl.css | 120 + wp-content/themes/kenta/screenshot.png | Bin 0 -> 201554 bytes wp-content/themes/kenta/searchform.php | 36 + wp-content/themes/kenta/sidebar.php | 39 + wp-content/themes/kenta/style.css | 14 + .../template-parts/admin-cmp-upgrade.php | 59 + .../kenta/template-parts/admin-container.php | 76 + .../kenta/template-parts/admin-customize.php | 99 + .../admin-recommend-plugins.php | 55 + .../kenta/template-parts/admin-sidebar.php | 104 + .../kenta/template-parts/admin-start.php | 143 + .../template-parts/admin-starter-sites.php | 21 + .../kenta/template-parts/content-entry.php | 38 + .../kenta/template-parts/content-none.php | 54 + .../kenta/template-parts/document-close.php | 12 + .../kenta/template-parts/document-open.php | 31 + .../kenta/template-parts/special-archive.php | 14 + .../kenta/template-parts/special-loop.php | 35 + .../kenta/template-parts/special-page.php | 56 + .../kenta/template-parts/special-single.php | 56 + .../kenta/templates/boxed-page-builder.php | 19 + .../kenta/templates/boxed-page-narrow.php | 19 + .../boxed-trans-header-page-builder.php | 20 + .../boxed-trans-header-page-narrow.php | 20 + .../kenta/templates/fluid-page-builder.php | 19 + .../fluid-trans-header-page-builder.php | 20 + wp-content/themes/kenta/theme.json | 526 + 254 files changed, 98367 insertions(+) create mode 100644 wp-content/themes/kenta/comments.php create mode 100644 wp-content/themes/kenta/dist/css/admin.css create mode 100644 wp-content/themes/kenta/dist/css/admin.min.css create mode 100644 wp-content/themes/kenta/dist/css/customizer.css create mode 100644 wp-content/themes/kenta/dist/css/customizer.min.css create mode 100644 wp-content/themes/kenta/dist/css/editor-style.css create mode 100644 wp-content/themes/kenta/dist/css/editor-style.min.css create mode 100644 wp-content/themes/kenta/dist/css/style.css create mode 100644 wp-content/themes/kenta/dist/css/style.min.css create mode 100644 wp-content/themes/kenta/dist/css/woo.css create mode 100644 wp-content/themes/kenta/dist/css/woo.min.css create mode 100644 wp-content/themes/kenta/dist/images/above-header.png create mode 100644 wp-content/themes/kenta/dist/images/archive-left-sidebar.png create mode 100644 wp-content/themes/kenta/dist/images/archive-right-sidebar.png create mode 100644 wp-content/themes/kenta/dist/images/behind-header.png create mode 100644 wp-content/themes/kenta/dist/images/below-header.png create mode 100644 wp-content/themes/kenta/dist/images/kenta-logo-light.png create mode 100644 wp-content/themes/kenta/dist/images/left-sidebar.png create mode 100644 wp-content/themes/kenta/dist/images/narrow.png create mode 100644 wp-content/themes/kenta/dist/images/normal.png create mode 100644 wp-content/themes/kenta/dist/images/recommend-plugins/kenta-blocks.png create mode 100644 wp-content/themes/kenta/dist/images/recommend-plugins/kenta-companion.png create mode 100644 wp-content/themes/kenta/dist/images/recommend-plugins/plover-kit.png create mode 100644 wp-content/themes/kenta/dist/images/right-sidebar.png create mode 100644 wp-content/themes/kenta/dist/images/sidebar-style-1.png create mode 100644 wp-content/themes/kenta/dist/images/sidebar-style-2.png create mode 100644 wp-content/themes/kenta/dist/js/admin.asset.php create mode 100644 wp-content/themes/kenta/dist/js/admin.js create mode 100644 wp-content/themes/kenta/dist/js/admin.min.asset.php create mode 100644 wp-content/themes/kenta/dist/js/admin.min.js create mode 100644 wp-content/themes/kenta/dist/js/app.asset.php create mode 100644 wp-content/themes/kenta/dist/js/app.js create mode 100644 wp-content/themes/kenta/dist/js/app.min.asset.php create mode 100644 wp-content/themes/kenta/dist/js/app.min.js create mode 100644 wp-content/themes/kenta/dist/js/app.min.js.LICENSE.txt create mode 100644 wp-content/themes/kenta/dist/js/block-editor.asset.php create mode 100644 wp-content/themes/kenta/dist/js/block-editor.js create mode 100644 wp-content/themes/kenta/dist/js/block-editor.min.asset.php create mode 100644 wp-content/themes/kenta/dist/js/block-editor.min.js create mode 100644 wp-content/themes/kenta/dist/js/block-editor.min.js.LICENSE.txt create mode 100644 wp-content/themes/kenta/dist/js/customizer-preview.asset.php create mode 100644 wp-content/themes/kenta/dist/js/customizer-preview.js create mode 100644 wp-content/themes/kenta/dist/js/customizer-preview.min.asset.php create mode 100644 wp-content/themes/kenta/dist/js/customizer-preview.min.js create mode 100644 wp-content/themes/kenta/dist/js/customizer.asset.php create mode 100644 wp-content/themes/kenta/dist/js/customizer.js create mode 100644 wp-content/themes/kenta/dist/js/customizer.min.asset.php create mode 100644 wp-content/themes/kenta/dist/js/customizer.min.js create mode 100644 wp-content/themes/kenta/dist/vendor/.gitkeep create mode 100644 wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.js create mode 100644 wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.min.js create mode 100644 wp-content/themes/kenta/dist/vendor/particles/tsparticles.bundle.js create mode 100644 wp-content/themes/kenta/dist/vendor/particles/tsparticles.bundle.min.js create mode 100644 wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.js create mode 100644 wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.min.js create mode 100644 wp-content/themes/kenta/footer.php create mode 100644 wp-content/themes/kenta/functions.php create mode 100644 wp-content/themes/kenta/header.php create mode 100644 wp-content/themes/kenta/inc/admin-page.php create mode 100644 wp-content/themes/kenta/inc/builder/class-builder-column.php create mode 100644 wp-content/themes/kenta/inc/builder/class-footer-builder.php create mode 100644 wp-content/themes/kenta/inc/builder/class-footer-column.php create mode 100644 wp-content/themes/kenta/inc/builder/class-footer-row.php create mode 100644 wp-content/themes/kenta/inc/builder/class-header-builder.php create mode 100644 wp-content/themes/kenta/inc/builder/class-header-column.php create mode 100644 wp-content/themes/kenta/inc/builder/class-header-row.php create mode 100644 wp-content/themes/kenta/inc/builder/class-modal-row.php create mode 100644 wp-content/themes/kenta/inc/customizer.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-archive-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-background-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-colors-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-content-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-footer-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-global-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-header-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-homepage-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-pages-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-placeholders.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-single-post-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-store-catalog-section.php create mode 100644 wp-content/themes/kenta/inc/customizer/class-store-notice-section.php create mode 100644 wp-content/themes/kenta/inc/dynamic-css.php create mode 100644 wp-content/themes/kenta/inc/elements/class-breadcrumbs-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-button-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-cart-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-collapsable-menu-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-copyright-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-logo-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-menu-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-search-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-socials-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-theme-switch-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-trigger-element.php create mode 100644 wp-content/themes/kenta/inc/elements/class-widgets-element.php create mode 100644 wp-content/themes/kenta/inc/extensions.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-particles-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-preloader-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-related-posts-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-scroll-reveal-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-scroll-top-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-socials-extension.php create mode 100644 wp-content/themes/kenta/inc/extensions/class-sticky-extension.php create mode 100644 wp-content/themes/kenta/inc/helpers.php create mode 100644 wp-content/themes/kenta/inc/template-functions.php create mode 100644 wp-content/themes/kenta/inc/template-tags.php create mode 100644 wp-content/themes/kenta/inc/theme-setup.php create mode 100644 wp-content/themes/kenta/inc/traits.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-article-controls.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-button-controls.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-global-color-controls.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-icon-button-controls.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-particles-effect.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-post-card.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-post-structure.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-socials-controls.php create mode 100644 wp-content/themes/kenta/inc/traits/trait-widgets-controls.php create mode 100644 wp-content/themes/kenta/inc/woo-setup.php create mode 100644 wp-content/themes/kenta/index.php create mode 100644 wp-content/themes/kenta/languages/kenta.pot create mode 100644 wp-content/themes/kenta/lotta-framework/LICENSE create mode 100644 wp-content/themes/kenta/lotta-framework/README.md create mode 100644 wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.css create mode 100644 wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.min.css create mode 100644 wp-content/themes/kenta/lotta-framework/dist/css/customizer.css create mode 100644 wp-content/themes/kenta/lotta-framework/dist/css/customizer.min.css create mode 100644 wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.js create mode 100644 wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.min.js create mode 100644 wp-content/themes/kenta/lotta-framework/dist/js/customizer.js create mode 100644 wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js create mode 100644 wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js.LICENSE.txt create mode 100644 wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/css/all.min.css create mode 100644 wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-brands-400.woff2 create mode 100644 wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-regular-400.woff2 create mode 100644 wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-solid-900.woff2 create mode 100644 wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 create mode 100644 wp-content/themes/kenta/lotta-framework/src/Application.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Async/Css.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Bootstrap.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/BindingResolutionException.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/BoundMethod.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/Container.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/ContextualBindingBuilder.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/EntryNotFoundException.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/RewindableGenerator.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Container/Util.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Css.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/CallToActionSection.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/ContainerControl.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Control.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Background.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Border.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/BoxShadow.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Builder.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/CallToAction.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Collapse.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPalettes.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPicker.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Condition.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Editor.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/FileUploader.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Filters.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Icons.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageRadio.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageUploader.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Info.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Layers.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/MultiSelect.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Number.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/PageBuilder.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Placeholder.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Radio.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Repeater.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Section.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Select.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Separator.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Slider.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Spacing.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tabs.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tags.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Text.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/TextArea.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Toggle.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Typography.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Customizer.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Element.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Row.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Container.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Element.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Sanitizes.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Section.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/ContainerControl.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/RadioControl.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Renderable.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Settings.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Extensions/Breadcrumbs.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/AsyncCss.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/Breadcrumbs.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/CZ.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/Css.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/Facade.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Facades/Query.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Icons/IconsManager.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Icons/fontawesome.json create mode 100644 wp-content/themes/kenta/lotta-framework/src/Query.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Typography/Fonts.php create mode 100644 wp-content/themes/kenta/lotta-framework/src/Typography/google-fonts.json create mode 100644 wp-content/themes/kenta/lotta-framework/src/Typography/system-fonts.json create mode 100644 wp-content/themes/kenta/lotta-framework/src/Utils.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/autoload.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/ClassLoader.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/InstalledVersions.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/LICENSE create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_classmap.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_files.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_namespaces.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_psr4.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_real.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_static.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/installed.json create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/installed.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/composer/platform_check.php create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/.gitattributes create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/LICENSE create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/README.md create mode 100644 wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/wptt-webfont-loader.php create mode 100644 wp-content/themes/kenta/page.php create mode 100644 wp-content/themes/kenta/readme.txt create mode 100644 wp-content/themes/kenta/rtl.css create mode 100644 wp-content/themes/kenta/screenshot.png create mode 100644 wp-content/themes/kenta/searchform.php create mode 100644 wp-content/themes/kenta/sidebar.php create mode 100644 wp-content/themes/kenta/style.css create mode 100644 wp-content/themes/kenta/template-parts/admin-cmp-upgrade.php create mode 100644 wp-content/themes/kenta/template-parts/admin-container.php create mode 100644 wp-content/themes/kenta/template-parts/admin-customize.php create mode 100644 wp-content/themes/kenta/template-parts/admin-recommend-plugins.php create mode 100644 wp-content/themes/kenta/template-parts/admin-sidebar.php create mode 100644 wp-content/themes/kenta/template-parts/admin-start.php create mode 100644 wp-content/themes/kenta/template-parts/admin-starter-sites.php create mode 100644 wp-content/themes/kenta/template-parts/content-entry.php create mode 100644 wp-content/themes/kenta/template-parts/content-none.php create mode 100644 wp-content/themes/kenta/template-parts/document-close.php create mode 100644 wp-content/themes/kenta/template-parts/document-open.php create mode 100644 wp-content/themes/kenta/template-parts/special-archive.php create mode 100644 wp-content/themes/kenta/template-parts/special-loop.php create mode 100644 wp-content/themes/kenta/template-parts/special-page.php create mode 100644 wp-content/themes/kenta/template-parts/special-single.php create mode 100644 wp-content/themes/kenta/templates/boxed-page-builder.php create mode 100644 wp-content/themes/kenta/templates/boxed-page-narrow.php create mode 100644 wp-content/themes/kenta/templates/boxed-trans-header-page-builder.php create mode 100644 wp-content/themes/kenta/templates/boxed-trans-header-page-narrow.php create mode 100644 wp-content/themes/kenta/templates/fluid-page-builder.php create mode 100644 wp-content/themes/kenta/templates/fluid-trans-header-page-builder.php create mode 100644 wp-content/themes/kenta/theme.json diff --git a/wp-content/themes/kenta/comments.php b/wp-content/themes/kenta/comments.php new file mode 100644 index 0000000000..3769acb33b --- /dev/null +++ b/wp-content/themes/kenta/comments.php @@ -0,0 +1,76 @@ + 'mx-auto kenta-max-w-content has-global-padding', +]; + +if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_content:kenta_content_form'; +} +?> +
> +
+ +

+ +

+ + + +
    + 'ol', + 'short_ping' => true, + ] ); + ?> +
+ + +

+ 'comment-form kenta-form form-default' + ] ); + ?> +
+
diff --git a/wp-content/themes/kenta/dist/css/admin.css b/wp-content/themes/kenta/dist/css/admin.css new file mode 100644 index 0000000000..f03b1a0e06 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/admin.css @@ -0,0 +1,571 @@ +/** + Color palettes + */ +/** + Spacing + */ +.kenta-button svg { + margin-right: 6px; +} + +.kenta-admin-page .kenta-button, +.kenta-icon-button, +.kenta-button { + display: inline-block; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + outline: none; + padding: 0.75em 1.25em; + cursor: pointer; + border-radius: 2px; + line-height: 16px; + font-size: 14px; + vertical-align: center; + transition: all ease 0.2s; + background: var(--kenta-button-background-initial); + color: var(--kenta-button-text-initial); + border: 2px solid var(--kenta-button-border-initial); + text-decoration: none; +} +.kenta-admin-page .kenta-button *, +.kenta-icon-button *, +.kenta-button * { + vertical-align: middle; +} +.kenta-admin-page .kenta-button svg, +.kenta-icon-button svg, +.kenta-button svg { + width: 16px; + height: 16px; + fill: var(--kenta-button-text-initial); +} +.kenta-admin-page .kenta-button:not(:disabled):focus, .kenta-admin-page .kenta-button:not(:disabled):hover, +.kenta-icon-button:not(:disabled):focus, +.kenta-icon-button:not(:disabled):hover, +.kenta-button:not(:disabled):focus, +.kenta-button:not(:disabled):hover { + background: var(--kenta-button-background-hover); + color: var(--kenta-button-text-hover); + border: 2px solid var(--kenta-button-border-hover); +} +.kenta-admin-page .kenta-button:not(:disabled):focus svg, .kenta-admin-page .kenta-button:not(:disabled):hover svg, +.kenta-icon-button:not(:disabled):focus svg, +.kenta-icon-button:not(:disabled):hover svg, +.kenta-button:not(:disabled):focus svg, +.kenta-button:not(:disabled):hover svg { + fill: var(--kenta-button-text-hover); +} +.kenta-admin-page .kenta-button:disabled, +.kenta-icon-button:disabled, +.kenta-button:disabled { + opacity: 0.75; +} + +.kenta-icon-button { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + padding: 0; + border-radius: 9999px; +} + +.kenta-button-solid { + --kenta-button-text-initial: #ffffff; + --kenta-button-text-hover: #ffffff; + --kenta-button-background-initial: #0258c7; + --kenta-button-background-hover: #0e80e8; + --kenta-button-border-initial: #0258c7; + --kenta-button-border-hover: #0e80e8; +} + +.kenta-button-outline { + --kenta-button-text-initial: #0258c7; + --kenta-button-text-hover: #ffffff; + --kenta-button-background-initial: transparent; + --kenta-button-background-hover: #0e80e8; + --kenta-button-border-initial: #0258c7; + --kenta-button-border-hover: #0e80e8; +} + +#kenta-welcome-panel { + position: relative; + overflow: auto; + font-size: 16px; + line-height: 1.3; + clear: both; + margin: 10px 20px 0 2px; +} +#kenta-welcome-panel .text-sm { + font-size: 12px !important; +} +#kenta-welcome-panel .kenta-notice-dismiss { + display: inline-block; + position: absolute !important; + right: 24px; + bottom: 24px; + line-height: 1; + z-index: 999; +} +#kenta-welcome-panel .panel-header { + position: relative; + width: 100%; + background-color: #181f28; + color: #fff; + background-image: url("data:image/svg+xml,"); + box-sizing: border-box; + padding: 12px 48px; + display: flex; + justify-content: center; + align-items: center; +} +#kenta-welcome-panel .panel-header .panel-header-content { + text-align: center; + box-sizing: border-box; +} +#kenta-welcome-panel .panel-header * { + color: inherit; + position: relative; +} +#kenta-welcome-panel .panel-header .kenta-logo { + width: 72px; + height: 72px; + margin-right: 24px; +} +#kenta-welcome-panel .panel-header h2 { + font-size: 1.75em; + font-weight: bold; + margin-top: 0; + margin-bottom: 18px; +} +#kenta-welcome-panel .panel-header p { + opacity: 0.7; + font-size: 1em; + font-weight: 500; +} +#kenta-welcome-panel .panel-header .kenta-demo-screenshot { + display: none; + text-align: center; +} +#kenta-welcome-panel .panel-header .kenta-demo-screenshot img { + display: block; + height: 146px; +} +#kenta-welcome-panel .panel-header .kenta-demo-screenshot span { + display: none; + font-size: 12px; +} +#kenta-welcome-panel .panel-body { + box-sizing: border-box; + width: 100%; + clear: both; + z-index: 1; + padding: 24px 48px; + align-self: flex-end; + background: #fff; + position: relative; +} +#kenta-welcome-panel .panel-body .panel-column { + width: 100%; + display: flex; + align-items: flex-start; + margin-bottom: 48px; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-icon { + background: #181f28; + padding: 12px; + line-height: 0; + display: inline-block; + border-radius: 4px; + margin-right: 24px; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-icon svg { + fill: #FFFFFF; + width: 24px; + height: 24px; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content > * { + margin-top: 0; + margin-bottom: 0.75em; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content > *:last-child { + margin-bottom: 0; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content h3 { + font-size: 1.25em; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content p { + font-size: 0.875em; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content .panel-column-actions { + display: flex; + flex-wrap: wrap; + gap: 12px; +} +#kenta-welcome-panel .panel-body .panel-column .panel-column-content .panel-column-actions .kenta-button { + flex-grow: 1; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1px; + font-size: 12px; +} + +@media screen and (max-width: 782px) { + #kenta-welcome-panel { + clear: both; + margin-right: 12px; + margin-left: 0; + } +} +@media screen and (min-width: 1280px) { + #kenta-welcome-panel .panel-header { + justify-content: space-between; + } + #kenta-welcome-panel .panel-header .panel-header-content { + display: flex; + text-align: left; + } + #kenta-welcome-panel .panel-header .kenta-demo-screenshot { + display: inline-block; + } + #kenta-welcome-panel .panel-body { + display: flex; + justify-content: center; + gap: 32px; + } + #kenta-welcome-panel .panel-body .panel-column { + margin-bottom: 0; + } +} +.kenta-base-notice { + display: flex; + padding-left: 0; + border: 2px solid #d63638; +} +.kenta-base-notice h1, .kenta-base-notice h2, .kenta-base-notice h3 { + font-weight: bold; +} +.kenta-base-notice p { + font-size: 16px; +} +.kenta-base-notice .kenta-theme-notice-logo { + padding: 24px; + background: #fbf3f3; +} +.kenta-base-notice .kenta-theme-notice-content { + padding: 24px; +} +.kenta-base-notice .notice-action { + font-weight: bold; + background: #0258c7; + color: #ffffff; + border-radius: 4px; + display: inline-block; + padding: 4px 12px; + margin: 0 2px; + text-decoration: none; + line-height: 1; +} +.kenta-base-notice .notice-action i { + margin-right: 4px; +} +.kenta-base-notice .notice-action:hover { + background: #0e80e8; +} + +.kenta-admin-page { + color: #181f28; + background: #f8fafc; + box-shadow: 0 0 10px 0 #dedede; + border-radius: 3px; +} +.kenta-admin-page .notice { + display: none; +} +.kenta-admin-page .container { + max-width: 100%; + margin: 0 auto; +} +.kenta-admin-page h1, .kenta-admin-page h2, .kenta-admin-page h3, .kenta-admin-page h4, .kenta-admin-page h5, .kenta-admin-page h6 { + color: #334155; +} +.kenta-admin-page a { + color: #181f28; + text-decoration: underline; + outline-color: #0258c7; +} +.kenta-admin-page a:focus { + box-shadow: 0 0 1px 0 #0258c7; +} +.kenta-admin-page a:hover { + color: #0258c7; +} +.kenta-admin-page, .kenta-admin-page div, .kenta-admin-page a { + box-sizing: border-box; +} +.kenta-admin-page svg { + width: 14px; + height: 14px; + fill: #181f28; +} +.kenta-admin-page .page-body { + padding: 24px; + margin-top: -48px; + margin-bottom: 48px; + background-color: #ffffff; + border-radius: 4px; + box-shadow: 0 0 3px 0 #e2e8f0; +} +.kenta-admin-page .page-body .page-tabs-container { + padding: 0 12px; + margin-bottom: 12px; +} +.kenta-admin-page .page-body .page-tabs { + list-style: none; + display: flex; + margin: 0; + padding: 0; + border-bottom: 3px solid #f1f5f9; +} +.kenta-admin-page .page-body .page-tabs li { + font-size: 18px; + font-weight: 500; + padding: 0; + margin: 0 0 -3px; + display: inline-block; +} +.kenta-admin-page .page-body .page-tabs a { + display: inline-block; + text-decoration: none; + padding: 12px 16px; + border-bottom: 3px solid transparent; +} +.kenta-admin-page .page-body .page-tabs a.active { + border-color: #0258c7; +} +.kenta-admin-page .page-body .page-main { + display: flex; + flex-wrap: wrap; +} +.kenta-admin-page .page-body .page-sidebar, +.kenta-admin-page .page-body .page-content { + flex-shrink: 0; + width: 100%; +} +.kenta-admin-page .page-body .page-sidebar { + padding: 12px; +} +.kenta-admin-page .page-widgets { + background: #f8fafc; + border: 1px solid #e2e8f0; +} +.kenta-admin-page .page-widgets .page-widget { + padding: 24px; + border-bottom: 1px solid #e2e8f0; +} +.kenta-admin-page .page-widgets .page-widget, .kenta-admin-page .page-widgets .page-widget p { + font-size: 15px; +} +.kenta-admin-page .page-widgets .page-widget:last-child { + border-bottom: none; +} +.kenta-admin-page .page-widgets .page-widget .widget-title { + margin-top: 0; +} +.kenta-admin-page .page-widgets .page-widget .links .link-item { + display: flex; + align-items: center; + padding: 4px 0; +} +.kenta-admin-page .page-widgets .page-widget .links .link-item svg { + width: 16px; + height: 16px; + margin-right: 12px; +} +.kenta-admin-page .page-header { + background-color: #181f28; + padding: 48px 24px 96px 24px; + background-image: url("data:image/svg+xml,"); +} +.kenta-admin-page .page-header .page-header-content { + padding: 0 36px; + text-align: center; +} +.kenta-admin-page .page-header .page-header-content .nav-tab-wrapper { + border-bottom: none !important; +} +.kenta-admin-page .page-header .page-header-content a { + text-decoration: none; +} +.kenta-admin-page .page-header .kenta-logo { + width: 72px; + height: 72px; + margin-bottom: 24px; +} +.kenta-admin-page .page-header h1, .kenta-admin-page .page-header p { + color: #ffffff; +} +.kenta-admin-page .page-header h1 { + font-size: 28px; + font-weight: bold; + margin-top: 0; + margin-bottom: 18px; +} +.kenta-admin-page .page-header p { + opacity: 0.7; + font-size: 18px; + font-weight: 500; +} +.kenta-admin-page .page-footer { + background-color: #f8fafc; + padding-bottom: 24px; +} +.kenta-admin-page .page-footer .container { + padding: 24px; + margin-bottom: 48px; + background: #ffffff; + box-shadow: 0 0 3px 0 #e2e8f0; + text-align: center; +} +.kenta-admin-page .page-footer .container p { + max-width: 1024px; + margin: 0 auto 24px; + font-size: 16px; + font-weight: 500; +} +.kenta-admin-page .upgrade-tips { + padding: 48px 24px; + text-align: center; + font-weight: 500; + max-width: 720px; + margin: 0 auto; +} +.kenta-admin-page .upgrade-tips h2 { + font-size: 28px; + font-weight: 700; + margin-top: 0; +} +.kenta-admin-page .upgrade-tips p { + font-size: 16px; + margin-bottom: 1em; +} +.kenta-admin-page .upgrade-tips code { + background-color: #0258c7; + color: #ffffff; + border-radius: 3px; +} +.kenta-admin-page .upgrade-tips .kenta-button { + margin-top: 2em; + padding: 12px 48px; + text-transform: uppercase; +} +@media screen and (min-width: 1024px) { + .kenta-admin-page .page-body .page-content { + width: 70%; + } + .kenta-admin-page .page-body .page-sidebar { + width: 30%; + } +} +@media screen and (min-width: 1366px) { + .kenta-admin-page .container { + max-width: 1280px; + } +} + +.kenta-admin-page .customizer-items { + display: flex; + flex-wrap: wrap; +} +.kenta-admin-page .customizer-items .customizer-item-wrap { + width: 50%; + flex-shrink: 0; + padding: 12px; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item { + border: 1px solid #e2e8f0; + border-radius: 2px; + padding: 24px; + display: flex; + flex-direction: column; + text-align: center; + align-items: center; + justify-content: center; + font-weight: 500; + text-decoration: none; + font-size: 15px; + height: 100%; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item:hover { + border-color: #0258c7; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item:hover svg { + fill: #0258c7; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item > * { + margin-bottom: 24px; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item > *:last-child { + margin-bottom: 0; +} +.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item .customizer-item-icon svg { + width: 36px; + height: 36px; +} +@media screen and (min-width: 1366px) { + .kenta-admin-page .customizer-items .customizer-item-wrap { + width: 25%; + } +} + +.kenta-admin-page .recommend-plugins { + padding: 12px; +} +.kenta-admin-page .recommend-plugins .recommend-plugin { + display: flex; + align-items: flex-start; + padding: 24px; + gap: 24px; + border: 1px solid #e2e8f0; + background: #f8fafc; +} +.kenta-admin-page .recommend-plugins .recommend-plugin img { + width: 98px; +} +.kenta-admin-page .recommend-plugins .recommend-plugin:not(:last-child) { + border-bottom: 0; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-content { + display: flex; + flex-direction: column; + justify-content: center; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title { + font-size: 18px; + font-weight: bold; + margin: 0; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title a { + text-decoration: none; + color: #334155; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title a:hover { + color: #0e80e8; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-actions .kenta-button { + margin-right: 12px; +} +.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-actions .kenta-button:last-child { + margin-right: 0; +} + +.kenta-admin-page .kenta-starter-sites-placeholder { + max-width: 720px; + margin: 0 auto; + text-align: center; +} +.kenta-admin-page .kenta-starter-sites-placeholder h3, .kenta-admin-page .kenta-starter-sites-placeholder p { + font-size: 24px; +} diff --git a/wp-content/themes/kenta/dist/css/admin.min.css b/wp-content/themes/kenta/dist/css/admin.min.css new file mode 100644 index 0000000000..a6e4e4c240 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/admin.min.css @@ -0,0 +1 @@ +.kenta-button svg{margin-right:6px}.kenta-admin-page .kenta-button,.kenta-button,.kenta-icon-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--kenta-button-background-initial);border:2px solid var(--kenta-button-border-initial);border-radius:2px;color:var(--kenta-button-text-initial);cursor:pointer;display:inline-block;font-size:14px;line-height:16px;outline:none;padding:.75em 1.25em;text-decoration:none;transition:all .2s ease;vertical-align:center}.kenta-admin-page .kenta-button *,.kenta-button *,.kenta-icon-button *{vertical-align:middle}.kenta-admin-page .kenta-button svg,.kenta-button svg,.kenta-icon-button svg{fill:var(--kenta-button-text-initial);height:16px;width:16px}.kenta-admin-page .kenta-button:not(:disabled):focus,.kenta-admin-page .kenta-button:not(:disabled):hover,.kenta-button:not(:disabled):focus,.kenta-button:not(:disabled):hover,.kenta-icon-button:not(:disabled):focus,.kenta-icon-button:not(:disabled):hover{background:var(--kenta-button-background-hover);border:2px solid var(--kenta-button-border-hover);color:var(--kenta-button-text-hover)}.kenta-admin-page .kenta-button:not(:disabled):focus svg,.kenta-admin-page .kenta-button:not(:disabled):hover svg,.kenta-button:not(:disabled):focus svg,.kenta-button:not(:disabled):hover svg,.kenta-icon-button:not(:disabled):focus svg,.kenta-icon-button:not(:disabled):hover svg{fill:var(--kenta-button-text-hover)}.kenta-admin-page .kenta-button:disabled,.kenta-button:disabled,.kenta-icon-button:disabled{opacity:.75}.kenta-icon-button{align-items:center;border-radius:9999px;display:flex;height:32px;justify-content:center;padding:0;width:32px}.kenta-button-solid{--kenta-button-text-initial:#fff;--kenta-button-text-hover:#fff;--kenta-button-background-initial:#0258c7;--kenta-button-background-hover:#0e80e8;--kenta-button-border-initial:#0258c7;--kenta-button-border-hover:#0e80e8}.kenta-button-outline{--kenta-button-text-initial:#0258c7;--kenta-button-text-hover:#fff;--kenta-button-background-initial:transparent;--kenta-button-background-hover:#0e80e8;--kenta-button-border-initial:#0258c7;--kenta-button-border-hover:#0e80e8}#kenta-welcome-panel{clear:both;font-size:16px;line-height:1.3;margin:10px 20px 0 2px;overflow:auto;position:relative}#kenta-welcome-panel .text-sm{font-size:12px!important}#kenta-welcome-panel .kenta-notice-dismiss{bottom:24px;display:inline-block;line-height:1;position:absolute!important;right:24px;z-index:999}#kenta-welcome-panel .panel-header{align-items:center;background-color:#181f28;background-image:url('data:image/svg+xml;charset=utf-8,');box-sizing:border-box;color:#fff;display:flex;justify-content:center;padding:12px 48px;position:relative;width:100%}#kenta-welcome-panel .panel-header .panel-header-content{box-sizing:border-box;text-align:center}#kenta-welcome-panel .panel-header *{color:inherit;position:relative}#kenta-welcome-panel .panel-header .kenta-logo{height:72px;margin-right:24px;width:72px}#kenta-welcome-panel .panel-header h2{font-size:1.75em;font-weight:700;margin-bottom:18px;margin-top:0}#kenta-welcome-panel .panel-header p{font-size:1em;font-weight:500;opacity:.7}#kenta-welcome-panel .panel-header .kenta-demo-screenshot{display:none;text-align:center}#kenta-welcome-panel .panel-header .kenta-demo-screenshot img{display:block;height:146px}#kenta-welcome-panel .panel-header .kenta-demo-screenshot span{display:none;font-size:12px}#kenta-welcome-panel .panel-body{align-self:flex-end;background:#fff;box-sizing:border-box;clear:both;padding:24px 48px;position:relative;width:100%;z-index:1}#kenta-welcome-panel .panel-body .panel-column{align-items:flex-start;display:flex;margin-bottom:48px;width:100%}#kenta-welcome-panel .panel-body .panel-column .panel-column-icon{background:#181f28;border-radius:4px;display:inline-block;line-height:0;margin-right:24px;padding:12px}#kenta-welcome-panel .panel-body .panel-column .panel-column-icon svg{fill:#fff;height:24px;width:24px}#kenta-welcome-panel .panel-body .panel-column .panel-column-content>*{margin-bottom:.75em;margin-top:0}#kenta-welcome-panel .panel-body .panel-column .panel-column-content>:last-child{margin-bottom:0}#kenta-welcome-panel .panel-body .panel-column .panel-column-content h3{font-size:1.25em}#kenta-welcome-panel .panel-body .panel-column .panel-column-content p{font-size:.875em}#kenta-welcome-panel .panel-body .panel-column .panel-column-content .panel-column-actions{display:flex;flex-wrap:wrap;gap:12px}#kenta-welcome-panel .panel-body .panel-column .panel-column-content .panel-column-actions .kenta-button{flex-grow:1;font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase}@media screen and (max-width:782px){#kenta-welcome-panel{clear:both;margin-left:0;margin-right:12px}}@media screen and (min-width:1280px){#kenta-welcome-panel .panel-header{justify-content:space-between}#kenta-welcome-panel .panel-header .panel-header-content{display:flex;text-align:left}#kenta-welcome-panel .panel-header .kenta-demo-screenshot{display:inline-block}#kenta-welcome-panel .panel-body{display:flex;gap:32px;justify-content:center}#kenta-welcome-panel .panel-body .panel-column{margin-bottom:0}}.kenta-base-notice{border:2px solid #d63638;display:flex;padding-left:0}.kenta-base-notice h1,.kenta-base-notice h2,.kenta-base-notice h3{font-weight:700}.kenta-base-notice p{font-size:16px}.kenta-base-notice .kenta-theme-notice-logo{background:#fbf3f3;padding:24px}.kenta-base-notice .kenta-theme-notice-content{padding:24px}.kenta-base-notice .notice-action{background:#0258c7;border-radius:4px;color:#fff;display:inline-block;font-weight:700;line-height:1;margin:0 2px;padding:4px 12px;text-decoration:none}.kenta-base-notice .notice-action i{margin-right:4px}.kenta-base-notice .notice-action:hover{background:#0e80e8}.kenta-admin-page{background:#f8fafc;border-radius:3px;box-shadow:0 0 10px 0 #dedede;color:#181f28}.kenta-admin-page .notice{display:none}.kenta-admin-page .container{margin:0 auto;max-width:100%}.kenta-admin-page h1,.kenta-admin-page h2,.kenta-admin-page h3,.kenta-admin-page h4,.kenta-admin-page h5,.kenta-admin-page h6{color:#334155}.kenta-admin-page a{color:#181f28;outline-color:#0258c7;text-decoration:underline}.kenta-admin-page a:focus{box-shadow:0 0 1px 0 #0258c7}.kenta-admin-page a:hover{color:#0258c7}.kenta-admin-page,.kenta-admin-page a,.kenta-admin-page div{box-sizing:border-box}.kenta-admin-page svg{fill:#181f28;height:14px;width:14px}.kenta-admin-page .page-body{background-color:#fff;border-radius:4px;box-shadow:0 0 3px 0 #e2e8f0;margin-bottom:48px;margin-top:-48px;padding:24px}.kenta-admin-page .page-body .page-tabs-container{margin-bottom:12px;padding:0 12px}.kenta-admin-page .page-body .page-tabs{border-bottom:3px solid #f1f5f9;display:flex;list-style:none;margin:0;padding:0}.kenta-admin-page .page-body .page-tabs li{display:inline-block;font-size:18px;font-weight:500;margin:0 0 -3px;padding:0}.kenta-admin-page .page-body .page-tabs a{border-bottom:3px solid transparent;display:inline-block;padding:12px 16px;text-decoration:none}.kenta-admin-page .page-body .page-tabs a.active{border-color:#0258c7}.kenta-admin-page .page-body .page-main{display:flex;flex-wrap:wrap}.kenta-admin-page .page-body .page-content,.kenta-admin-page .page-body .page-sidebar{flex-shrink:0;width:100%}.kenta-admin-page .page-body .page-sidebar{padding:12px}.kenta-admin-page .page-widgets{background:#f8fafc;border:1px solid #e2e8f0}.kenta-admin-page .page-widgets .page-widget{border-bottom:1px solid #e2e8f0;padding:24px}.kenta-admin-page .page-widgets .page-widget,.kenta-admin-page .page-widgets .page-widget p{font-size:15px}.kenta-admin-page .page-widgets .page-widget:last-child{border-bottom:none}.kenta-admin-page .page-widgets .page-widget .widget-title{margin-top:0}.kenta-admin-page .page-widgets .page-widget .links .link-item{align-items:center;display:flex;padding:4px 0}.kenta-admin-page .page-widgets .page-widget .links .link-item svg{height:16px;margin-right:12px;width:16px}.kenta-admin-page .page-header{background-color:#181f28;background-image:url('data:image/svg+xml;charset=utf-8,');padding:48px 24px 96px}.kenta-admin-page .page-header .page-header-content{padding:0 36px;text-align:center}.kenta-admin-page .page-header .page-header-content .nav-tab-wrapper{border-bottom:none!important}.kenta-admin-page .page-header .page-header-content a{text-decoration:none}.kenta-admin-page .page-header .kenta-logo{height:72px;margin-bottom:24px;width:72px}.kenta-admin-page .page-header h1,.kenta-admin-page .page-header p{color:#fff}.kenta-admin-page .page-header h1{font-size:28px;font-weight:700;margin-bottom:18px;margin-top:0}.kenta-admin-page .page-header p{font-size:18px;font-weight:500;opacity:.7}.kenta-admin-page .page-footer{background-color:#f8fafc;padding-bottom:24px}.kenta-admin-page .page-footer .container{background:#fff;box-shadow:0 0 3px 0 #e2e8f0;margin-bottom:48px;padding:24px;text-align:center}.kenta-admin-page .page-footer .container p{font-size:16px;font-weight:500;margin:0 auto 24px;max-width:1024px}.kenta-admin-page .upgrade-tips{font-weight:500;margin:0 auto;max-width:720px;padding:48px 24px;text-align:center}.kenta-admin-page .upgrade-tips h2{font-size:28px;font-weight:700;margin-top:0}.kenta-admin-page .upgrade-tips p{font-size:16px;margin-bottom:1em}.kenta-admin-page .upgrade-tips code{background-color:#0258c7;border-radius:3px;color:#fff}.kenta-admin-page .upgrade-tips .kenta-button{margin-top:2em;padding:12px 48px;text-transform:uppercase}@media screen and (min-width:1024px){.kenta-admin-page .page-body .page-content{width:70%}.kenta-admin-page .page-body .page-sidebar{width:30%}}@media screen and (min-width:1366px){.kenta-admin-page .container{max-width:1280px}}.kenta-admin-page .customizer-items{display:flex;flex-wrap:wrap}.kenta-admin-page .customizer-items .customizer-item-wrap{flex-shrink:0;padding:12px;width:50%}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item{align-items:center;border:1px solid #e2e8f0;border-radius:2px;display:flex;flex-direction:column;font-size:15px;font-weight:500;height:100%;justify-content:center;padding:24px;text-align:center;text-decoration:none}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item:hover{border-color:#0258c7}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item:hover svg{fill:#0258c7}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item>*{margin-bottom:24px}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item>:last-child{margin-bottom:0}.kenta-admin-page .customizer-items .customizer-item-wrap .customizer-item .customizer-item-icon svg{height:36px;width:36px}@media screen and (min-width:1366px){.kenta-admin-page .customizer-items .customizer-item-wrap{width:25%}}.kenta-admin-page .recommend-plugins{padding:12px}.kenta-admin-page .recommend-plugins .recommend-plugin{align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;display:flex;gap:24px;padding:24px}.kenta-admin-page .recommend-plugins .recommend-plugin img{width:98px}.kenta-admin-page .recommend-plugins .recommend-plugin:not(:last-child){border-bottom:0}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-content{display:flex;flex-direction:column;justify-content:center}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title{font-size:18px;font-weight:700;margin:0}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title a{color:#334155;text-decoration:none}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-title a:hover{color:#0e80e8}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-actions .kenta-button{margin-right:12px}.kenta-admin-page .recommend-plugins .recommend-plugin .plugin-actions .kenta-button:last-child{margin-right:0}.kenta-admin-page .kenta-starter-sites-placeholder{margin:0 auto;max-width:720px;text-align:center}.kenta-admin-page .kenta-starter-sites-placeholder h3,.kenta-admin-page .kenta-starter-sites-placeholder p{font-size:24px} diff --git a/wp-content/themes/kenta/dist/css/customizer.css b/wp-content/themes/kenta/dist/css/customizer.css new file mode 100644 index 0000000000..a0b9fc6ccb --- /dev/null +++ b/wp-content/themes/kenta/dist/css/customizer.css @@ -0,0 +1,155 @@ +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} + +::before, +::after { + --tw-content: ""; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ +html { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; /* 3 */ + -o-tab-size: 4; + tab-size: 4; /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ +body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} + +/** + Smooth scroll + */ +:root { + scroll-behavior: smooth; +} + +/** + Css selection colors + */ +::-moz-selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} +::-moz-selection, +::selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} + +[data-kenta-theme=light] { + --kenta-primary-color: var(--kenta-light-primary-color); + --kenta-primary-active: var(--kenta-light-primary-active); + --kenta-accent-color: var(--kenta-light-accent-color); + --kenta-accent-active: var(--kenta-light-accent-active); + --kenta-base-color: var(--kenta-light-base-color); + --kenta-base-100: var(--kenta-light-base-100); + --kenta-base-200: var(--kenta-light-base-200); + --kenta-base-300: var(--kenta-light-base-300); +} +[data-kenta-theme=light] .kenta-theme-switch .dark-mode { + display: inline; +} +[data-kenta-theme=light] .kenta-theme-switch .light-mode { + display: none; +} + +[data-kenta-theme=dark] { + --kenta-primary-color: var(--kenta-dark-primary-color, var(--kenta-light-primary-color)); + --kenta-primary-active: var(--kenta-dark-primary-active, var(--kenta-light-primary-active)); + --kenta-accent-color: var(--kenta-dark-accent-color, var(--kenta-light-accent-color)); + --kenta-accent-active: var(--kenta-dark-accent-active, var(--kenta-light-accent-active)); + --kenta-base-color: var(--kenta-dark-base-color, var(--kenta-light-base-color)); + --kenta-base-100: var(--kenta-dark-base-100, var(--kenta-light-base-100)); + --kenta-base-200: var(--kenta-dark-base-200, var(--kenta-light-base-200)); + --kenta-base-300: var(--kenta-dark-base-300, var(--kenta-light-base-300)); +} +[data-kenta-theme=dark] .kenta-theme-switch .light-mode { + display: inline; +} +[data-kenta-theme=dark] .kenta-theme-switch .dark-mode { + display: none; +} + +#accordion-section-kenta_header, +#accordion-section-kenta_archive, +#accordion-section-custom_css, +#accordion-section-title_tagline, +#kenta_update_dynamic_css_cache { + margin-top: 12px; +} +#accordion-section-kenta_header .accordion-section-title, +#accordion-section-kenta_archive .accordion-section-title, +#accordion-section-custom_css .accordion-section-title, +#accordion-section-title_tagline .accordion-section-title, +#kenta_update_dynamic_css_cache .accordion-section-title { + border-top: 1px solid #dcdcde; +} + +#accordion-section-kenta_single_post .accordion-section-title::before, +#accordion-section-kenta_pages .accordion-section-title::before, +#accordion-panel-woocommerce .accordion-section-title::before { + content: "\f474"; + font-family: dashicons; + font-weight: 400; + font-style: normal; + display: inline-block; + vertical-align: top; + text-align: center; + font-size: 12px; + margin: 0 8px; + color: #a7aaad; + transform: scaleX(-1); +} + +#kenta_install_companion .button .loader { + width: 16px; + height: 16px; + margin-right: 6px; + border-radius: 50%; + display: inline-block; + border-top: 3px solid currentColor; + border-right: 3px solid transparent; + box-sizing: border-box; + -webkit-animation: rotation 1s linear infinite; + animation: rotation 1s linear infinite; +} +@-webkit-keyframes rotation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes rotation { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/wp-content/themes/kenta/dist/css/customizer.min.css b/wp-content/themes/kenta/dist/css/customizer.min.css new file mode 100644 index 0000000000..d2a874b526 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/customizer.min.css @@ -0,0 +1 @@ +*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}:root{scroll-behavior:smooth}::-moz-selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}::-moz-selection,::selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}[data-kenta-theme=light]{--kenta-primary-color:var(--kenta-light-primary-color);--kenta-primary-active:var(--kenta-light-primary-active);--kenta-accent-color:var(--kenta-light-accent-color);--kenta-accent-active:var(--kenta-light-accent-active);--kenta-base-color:var(--kenta-light-base-color);--kenta-base-100:var(--kenta-light-base-100);--kenta-base-200:var(--kenta-light-base-200);--kenta-base-300:var(--kenta-light-base-300)}[data-kenta-theme=light] .kenta-theme-switch .dark-mode{display:inline}[data-kenta-theme=light] .kenta-theme-switch .light-mode{display:none}[data-kenta-theme=dark]{--kenta-primary-color:var(--kenta-dark-primary-color,var(--kenta-light-primary-color));--kenta-primary-active:var(--kenta-dark-primary-active,var(--kenta-light-primary-active));--kenta-accent-color:var(--kenta-dark-accent-color,var(--kenta-light-accent-color));--kenta-accent-active:var(--kenta-dark-accent-active,var(--kenta-light-accent-active));--kenta-base-color:var(--kenta-dark-base-color,var(--kenta-light-base-color));--kenta-base-100:var(--kenta-dark-base-100,var(--kenta-light-base-100));--kenta-base-200:var(--kenta-dark-base-200,var(--kenta-light-base-200));--kenta-base-300:var(--kenta-dark-base-300,var(--kenta-light-base-300))}[data-kenta-theme=dark] .kenta-theme-switch .light-mode{display:inline}[data-kenta-theme=dark] .kenta-theme-switch .dark-mode{display:none}#accordion-section-custom_css,#accordion-section-kenta_archive,#accordion-section-kenta_header,#accordion-section-title_tagline,#kenta_update_dynamic_css_cache{margin-top:12px}#accordion-section-custom_css .accordion-section-title,#accordion-section-kenta_archive .accordion-section-title,#accordion-section-kenta_header .accordion-section-title,#accordion-section-title_tagline .accordion-section-title,#kenta_update_dynamic_css_cache .accordion-section-title{border-top:1px solid #dcdcde}#accordion-panel-woocommerce .accordion-section-title:before,#accordion-section-kenta_pages .accordion-section-title:before,#accordion-section-kenta_single_post .accordion-section-title:before{color:#a7aaad;content:"\f474";display:inline-block;font-family:dashicons;font-size:12px;font-style:normal;font-weight:400;margin:0 8px;text-align:center;transform:scaleX(-1);vertical-align:top}#kenta_install_companion .button .loader{-webkit-animation:rotation 1s linear infinite;animation:rotation 1s linear infinite;border-radius:50%;border-right:3px solid transparent;border-top:3px solid;box-sizing:border-box;display:inline-block;height:16px;margin-right:6px;width:16px}@-webkit-keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} diff --git a/wp-content/themes/kenta/dist/css/editor-style.css b/wp-content/themes/kenta/dist/css/editor-style.css new file mode 100644 index 0000000000..ab8deb2505 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/editor-style.css @@ -0,0 +1,649 @@ +figure { + max-width: 100%; +} + +img { + max-width: 100%; + height: auto; +} + +pre { + overflow-x: auto; +} + +:root { + /* + 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) + 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) + */ + /* + 1. Use a consistent sensible line-height in all browsers. + 2. Prevent adjustments of font size after orientation changes in iOS. + 3. Use a more readable tab size. + 4. Use the user's configured `sans` font-family by default. + */ + /* + 1. Remove the margin in all browsers. + 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. + */ + /** + Smooth scroll + */ + /** + Css selection colors + */ + /* Classic List Widget -------------------------- */ +} +:root *, +:root ::before, +:root ::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} +:root ::before, +:root ::after { + --tw-content: ""; +} +:root html { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; /* 3 */ + -o-tab-size: 4; + tab-size: 4; /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ +} +:root body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} +:root :root { + scroll-behavior: smooth; +} +:root ::-moz-selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} +:root ::-moz-selection, +:root ::selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} +:root [data-kenta-theme=light] { + --kenta-primary-color: var(--kenta-light-primary-color); + --kenta-primary-active: var(--kenta-light-primary-active); + --kenta-accent-color: var(--kenta-light-accent-color); + --kenta-accent-active: var(--kenta-light-accent-active); + --kenta-base-color: var(--kenta-light-base-color); + --kenta-base-100: var(--kenta-light-base-100); + --kenta-base-200: var(--kenta-light-base-200); + --kenta-base-300: var(--kenta-light-base-300); +} +:root [data-kenta-theme=light] .kenta-theme-switch .dark-mode { + display: inline; +} +:root [data-kenta-theme=light] .kenta-theme-switch .light-mode { + display: none; +} +:root [data-kenta-theme=dark] { + --kenta-primary-color: var(--kenta-dark-primary-color, var(--kenta-light-primary-color)); + --kenta-primary-active: var(--kenta-dark-primary-active, var(--kenta-light-primary-active)); + --kenta-accent-color: var(--kenta-dark-accent-color, var(--kenta-light-accent-color)); + --kenta-accent-active: var(--kenta-dark-accent-active, var(--kenta-light-accent-active)); + --kenta-base-color: var(--kenta-dark-base-color, var(--kenta-light-base-color)); + --kenta-base-100: var(--kenta-dark-base-100, var(--kenta-light-base-100)); + --kenta-base-200: var(--kenta-dark-base-200, var(--kenta-light-base-200)); + --kenta-base-300: var(--kenta-dark-base-300, var(--kenta-light-base-300)); +} +:root [data-kenta-theme=dark] .kenta-theme-switch .light-mode { + display: inline; +} +:root [data-kenta-theme=dark] .kenta-theme-switch .dark-mode { + display: none; +} +:root .kenta-widget { + position: relative; + margin-bottom: var(--kenta-widgets-spacing, 0); + color: var(--kenta-widgets-text-color); +} +:root .kenta-widget ul, +:root .kenta-widget ol { + margin: 0; + padding: 0; + list-style: outside none none; +} +:root .kenta-widget li, :root .kenta-widget ul > li, :root .kenta-widget ol > li { + padding: 0; +} +:root .kenta-widget a { + transition: all ease 0.25s; + color: var(--kenta-widgets-link-initial, var(--kenta-primary-color)); +} +:root .kenta-widget a:hover { + color: var(--kenta-widgets-link-hover, var(--kenta-primary-active)); +} +:root .kenta-widget .widget-title { + margin: 0px; + margin-bottom: 12px; +} +:root .kenta-widget [type=text], +:root .kenta-widget [type=email], +:root .kenta-widget [type=url], +:root .kenta-widget [type=password], +:root .kenta-widget [type=number], +:root .kenta-widget [type=date], +:root .kenta-widget [type=datetime-local], +:root .kenta-widget [type=month], +:root .kenta-widget [type=search], +:root .kenta-widget [type=tel], +:root .kenta-widget [type=time], +:root .kenta-widget [type=week], +:root .kenta-widget [multiple], +:root .kenta-widget textarea, +:root .kenta-widget select { + display: block; + width: 100%; + transition: all ease 0.25s; + border-radius: var(--kenta-form-control-radius, 2px); + border: 1px solid var(--kenta-form-border-color, var(--kenta-base-200)); + background-color: transparent; +} +:root .kenta-widget [type=text]:focus, +:root .kenta-widget [type=email]:focus, +:root .kenta-widget [type=url]:focus, +:root .kenta-widget [type=password]:focus, +:root .kenta-widget [type=number]:focus, +:root .kenta-widget [type=date]:focus, +:root .kenta-widget [type=datetime-local]:focus, +:root .kenta-widget [type=month]:focus, +:root .kenta-widget [type=search]:focus, +:root .kenta-widget [type=tel]:focus, +:root .kenta-widget [type=time]:focus, +:root .kenta-widget [type=week]:focus, +:root .kenta-widget [multiple]:focus, +:root .kenta-widget textarea:focus, +:root .kenta-widget select:focus { + outline: none; + box-shadow: none; + border-color: var(--kenta-form-active-color, var(--kenta-primary-color)); +} +:root .widget_tag_cloud a, +:root .wp-block-tag-cloud a, +:root .widget_product_tag_cloud a { + text-decoration: none; + display: inline-block; + margin-bottom: 0.5em; + margin-right: 0.5em; + padding: 0.25em 1em; + transition: all ease 0.25s; + border-radius: 2px; + color: var(--kenta-tag-cloud-text-initial, var(--kenta-accent-color)); + background-color: var(--kenta-tag-cloud-background-initial, var(--kenta-base-color)); + border: 1px solid var(--kenta-tag-cloud-border-initial-color, var(--kenta-base-200)); +} +:root .widget_tag_cloud a:hover, +:root .wp-block-tag-cloud a:hover, +:root .widget_product_tag_cloud a:hover { + color: var(--kenta-tag-cloud-text-hover, var(--kenta-base-color)); + background-color: var(--kenta-tag-cloud-background-hover, var(--kenta-primary-color)); + border-color: var(--kenta-tag-cloud-border-hover-color, var(--kenta-primary-color)); +} +:root .widget_rss .widget-title a.rsswidget:first-of-type { + display: none; +} +:root .widget_rss li { + margin-bottom: 12px; +} +:root .gallery { + margin-bottom: 10px; + overflow: hidden; + list-style: none !important; + display: flex; + flex-wrap: wrap; +} +:root .gallery-item { + position: relative; +} +:root .gallery-item img { + width: 100%; + margin: 0; +} +:root .gallery-item * { + display: block; + height: 100%; +} +:root .wp-caption { + position: relative; +} +:root figcaption, +:root .wp-caption figcaption, +:root .wp-caption-text, +:root .gallery-caption, +:root .wp-caption-text { + width: 100%; + margin-top: 0; +} +:root body:not(.elementor-page) .gallery-item { + display: inline-block; + vertical-align: top; + padding: 0 !important; + margin-right: 5px; + margin-bottom: 5px; + text-align: center; +} +:root .gallery-columns-1 .gallery-item { + float: none !important; + width: 100%; +} +:root .gallery-columns-2 .gallery-item { + width: calc((100% - 5px) / 2 - 1px); +} +:root .gallery-columns-3 .gallery-item { + width: calc((100% - 10px) / 3 - 1px); +} +:root .gallery-columns-4 .gallery-item { + width: calc((100% - 15px) / 4 - 1px); +} +:root .gallery-columns-5 .gallery-item { + width: calc((100% - 20px) / 5 - 1px); +} +:root .gallery-columns-6 .gallery-item { + width: calc((100% - 25px) / 6 - 1px); +} +:root .gallery-columns-7 .gallery-item { + width: calc((100% - 30px) / 7 - 1px); +} +:root .gallery-columns-8 .gallery-item { + width: calc((100% - 35px) / 8 - 1px); +} +:root .gallery-columns-9 .gallery-item { + width: calc((100% - 40px) / 9 - 1px); +} +:root .gallery-columns-2 .gallery-item:nth-child(2n+2), +:root .gallery-columns-3 .gallery-item:nth-child(3n+3), +:root .gallery-columns-4 .gallery-item:nth-child(4n+4), +:root .gallery-columns-5 .gallery-item:nth-child(5n+5), +:root .gallery-columns-6 .gallery-item:nth-child(6n+6), +:root .gallery-columns-7 .gallery-item:nth-child(7n+7), +:root .gallery-columns-8 .gallery-item:nth-child(8n+8), +:root .gallery-columns-9 .gallery-item:nth-child(9n+9) { + margin-right: 0 !important; +} +:root .gallery-columns-2 .gallery-item:nth-child(2n+2) + li, +:root .gallery-columns-3 .gallery-item:nth-child(3n+3) + li, +:root .gallery-columns-4 .gallery-item:nth-child(4n+4) + li, +:root .gallery-columns-5 .gallery-item:nth-child(5n+5) + li, +:root .gallery-columns-6 .gallery-item:nth-child(6n+6) + li, +:root .gallery-columns-7 .gallery-item:nth-child(7n+7) + li, +:root .gallery-columns-8 .gallery-item:nth-child(8n+8) + li, +:root .gallery-columns-9 .gallery-item:nth-child(9n+9) + li { + clear: both; +} +:root .kenta-widget.widget_search label { + display: block; +} +:root .kenta-widget.widget_search button[type=submit] { + height: 100%; +} +:root .kenta-widget form.search-form { + position: relative; +} +:root .kenta-widget form.search-form button { + position: absolute; + top: 0; + right: 0; +} +:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) { + list-style: none; + padding: 0; +} +:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) > li { + padding: var(--widget-list-pt, 0.2rem) var(--widget-list-pr, 1rem) var(--widget-list-pb, 0.2rem) var(--widget-list-pl, 1.4rem); + position: relative; +} +:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) li a { + position: static; +} +:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) li:not(.menu-item-has-children)::before { + content: "\f02b"; + display: inline-block; + font-size: 0.6rem; + left: 0; + position: absolute; + top: 50%; + margin-top: -0.3rem; + color: var(--kenta-primary-color); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; + font-family: "Font Awesome 6 Free"; + font-weight: 900; +} +:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) .sub-menu { + padding-left: 1rem; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-archives li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_archive ul li::before { + content: "\f0c6" !important; + font-size: 13px; + top: 9px; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-categories li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_categories ul li::before { + content: "\f07c" !important; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-page-list li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_pages ul li::before { + content: "\f15b" !important; +} +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_meta ul li::before { + content: "\f0c1" !important; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-latest-comments li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_comments ul li::before { + content: "\f086" !important; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-latest-posts li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_entries ul li::before { + content: "\f02b" !important; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-rss li .wp-block-rss__item-title { + margin: 0; +} +:root .kenta-widget:not(.woocommerce) ul.wp-block-rss li::before, +:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_rss ul li::before { + content: "\f09e" !important; +} +:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li { + padding-left: 0; + padding-right: 1.4rem; +} +:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li:not(.menu-item-has-children)::before { + left: auto; + right: 0; +} +:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li:not(.menu-item-has-children) a::after { + right: auto; + left: 0; + content: "\f053"; +} +:root .woocommerce a.button, +:root .wp-block-button, +:root .kenta-button { + font-size: 0.75rem; + line-height: 1; + --kenta-button-border: 1px solid var(--kenta-primary-color); + --kenta-button-padding: 0.85em 1.25em; + --kenta-button-height: 32px; + --kenta-button-initial-color: var(--kenta-primary-color); + --kenta-button-hover-color: var(--kenta-accent-color); + --kenta-button-text-initial-color: var(--kenta-base-color); + --kenta-button-text-hover-color: var(--kenta-base-color); + --kenta-button-radius: 2px; +} +:root .woocommerce a.button .has-text-align-center, +:root .wp-block-button .has-text-align-center, +:root .kenta-button .has-text-align-center { + justify-content: center; +} +:root .woocommerce a.button .has-text-align-right, +:root .wp-block-button .has-text-align-right, +:root .kenta-button .has-text-align-right { + justify-content: flex-end; +} +:root .woocommerce a.button .has-text-align-left, +:root .wp-block-button .has-text-align-left, +:root .kenta-button .has-text-align-left { + justify-content: flex-start; +} +:root .woocommerce #respond input#submit, +:root .woocommerce #respond input#submit.alt, +:root .woocommerce .page-content .widget_price_filter .button, +:root .woocommerce .page-content .woocommerce-message .button, +:root .woocommerce .page-content a.button.alt, +:root .woocommerce .page-content button.button.alt, +:root .woocommerce .page-content .woocommerce-message .button, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button, +:root .woocommerce a.button, +:root .woocommerce a.button.alt, +:root .woocommerce button.button, +:root .woocommerce button.button.alt, +:root .woocommerce input.button, +:root .woocommerce input.button.alt, +:root .widget_search [type=submit], +:root .wp-block-search__button, +:root .wc-block-product-search__button, +:root div:not(.is-style-outline) > .wp-block-button__link, +:root .wp-block-button.is-style-outline .wp-block-button__link, +:root .kenta-form [type=submit], +:root .kenta-raw-html [type=submit], +:root .kenta-article-content button, +:root .kenta-article-content [type=submit], +:root .kenta-button { + display: inline-flex; + cursor: pointer; + align-items: center; + box-sizing: border-box; + text-decoration: none; + min-height: var(--kenta-button-height); + padding: var(--kenta-button-padding); + border-radius: var(--kenta-button-radius); + color: var(--kenta-button-text-initial-color); + background-color: var(--kenta-button-initial-color); + border-color: var(--lotta-border-initial-color); + transition: all ease 0.2s; + border: var(--kenta-button-border, none); + box-shadow: var(--kenta-button-shadow, none); +} +:root .woocommerce #respond input#submit:disabled, +:root .woocommerce #respond input#submit.alt:disabled, +:root .woocommerce .page-content .widget_price_filter .button:disabled, +:root .woocommerce .page-content .woocommerce-message .button:disabled, +:root .woocommerce .page-content a.button.alt:disabled, +:root .woocommerce .page-content button.button.alt:disabled, +:root .woocommerce .page-content .woocommerce-message .button:disabled, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button:disabled, +:root .woocommerce a.button:disabled, +:root .woocommerce a.button.alt:disabled, +:root .woocommerce button.button:disabled, +:root .woocommerce button.button.alt:disabled, +:root .woocommerce input.button:disabled, +:root .woocommerce input.button.alt:disabled, +:root .widget_search [type=submit]:disabled, +:root .wp-block-search__button:disabled, +:root .wc-block-product-search__button:disabled, +:root div:not(.is-style-outline) > .wp-block-button__link:disabled, +:root .wp-block-button.is-style-outline .wp-block-button__link:disabled, +:root .kenta-form [type=submit]:disabled, +:root .kenta-raw-html [type=submit]:disabled, +:root .kenta-article-content button:disabled, +:root .kenta-article-content [type=submit]:disabled, +:root .kenta-button:disabled { + cursor: not-allowed; + opacity: 0.65; +} +:root .woocommerce #respond input#submit:not(:disabled):hover, +:root .woocommerce #respond input#submit.alt:not(:disabled):hover, +:root .woocommerce .page-content .widget_price_filter .button:not(:disabled):hover, +:root .woocommerce .page-content .woocommerce-message .button:not(:disabled):hover, +:root .woocommerce .page-content a.button.alt:not(:disabled):hover, +:root .woocommerce .page-content button.button.alt:not(:disabled):hover, +:root .woocommerce .page-content .woocommerce-message .button:not(:disabled):hover, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button:not(:disabled):hover, +:root .woocommerce a.button:not(:disabled):hover, +:root .woocommerce a.button.alt:not(:disabled):hover, +:root .woocommerce button.button:not(:disabled):hover, +:root .woocommerce button.button.alt:not(:disabled):hover, +:root .woocommerce input.button:not(:disabled):hover, +:root .woocommerce input.button.alt:not(:disabled):hover, +:root .widget_search [type=submit]:not(:disabled):hover, +:root .wp-block-search__button:not(:disabled):hover, +:root .wc-block-product-search__button:not(:disabled):hover, +:root div:not(.is-style-outline) > .wp-block-button__link:not(:disabled):hover, +:root .wp-block-button.is-style-outline .wp-block-button__link:not(:disabled):hover, +:root .kenta-form [type=submit]:not(:disabled):hover, +:root .kenta-raw-html [type=submit]:not(:disabled):hover, +:root .kenta-article-content button:not(:disabled):hover, +:root .kenta-article-content [type=submit]:not(:disabled):hover, +:root .kenta-button:not(:disabled):hover { + color: var(--kenta-button-text-hover-color); + background-color: var(--kenta-button-hover-color); + border-color: var(--lotta-border-hover-color); + box-shadow: var(--kenta-button-shadow-active, none); +} +:root .woocommerce #respond input#submit.kenta-button-right, +:root .woocommerce #respond input#submit.alt.kenta-button-right, +:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right, +:root .woocommerce .page-content a.button.alt.kenta-button-right, +:root .woocommerce .page-content button.button.alt.kenta-button-right, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right, +:root .woocommerce a.button.kenta-button-right, +:root .woocommerce a.button.alt.kenta-button-right, +:root .woocommerce button.button.kenta-button-right, +:root .woocommerce button.button.alt.kenta-button-right, +:root .woocommerce input.button.kenta-button-right, +:root .woocommerce input.button.alt.kenta-button-right, +:root .widget_search [type=submit].kenta-button-right, +:root .wp-block-search__button.kenta-button-right, +:root .wc-block-product-search__button.kenta-button-right, +:root div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right, +:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right, +:root .kenta-form [type=submit].kenta-button-right, +:root .kenta-raw-html [type=submit].kenta-button-right, +:root .kenta-article-content button.kenta-button-right, +:root .kenta-article-content [type=submit].kenta-button-right, +:root .kenta-button.kenta-button-right { + flex-direction: row-reverse; +} +:root .woocommerce #respond input#submit.kenta-button-right i, :root .woocommerce #respond input#submit.kenta-button-right svg, +:root .woocommerce #respond input#submit.alt.kenta-button-right i, +:root .woocommerce #respond input#submit.alt.kenta-button-right svg, +:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right i, +:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right svg, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right i, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right svg, +:root .woocommerce .page-content a.button.alt.kenta-button-right i, +:root .woocommerce .page-content a.button.alt.kenta-button-right svg, +:root .woocommerce .page-content button.button.alt.kenta-button-right i, +:root .woocommerce .page-content button.button.alt.kenta-button-right svg, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right i, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right svg, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right i, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right svg, +:root .woocommerce a.button.kenta-button-right i, +:root .woocommerce a.button.kenta-button-right svg, +:root .woocommerce a.button.alt.kenta-button-right i, +:root .woocommerce a.button.alt.kenta-button-right svg, +:root .woocommerce button.button.kenta-button-right i, +:root .woocommerce button.button.kenta-button-right svg, +:root .woocommerce button.button.alt.kenta-button-right i, +:root .woocommerce button.button.alt.kenta-button-right svg, +:root .woocommerce input.button.kenta-button-right i, +:root .woocommerce input.button.kenta-button-right svg, +:root .woocommerce input.button.alt.kenta-button-right i, +:root .woocommerce input.button.alt.kenta-button-right svg, +:root .widget_search [type=submit].kenta-button-right i, +:root .widget_search [type=submit].kenta-button-right svg, +:root .wp-block-search__button.kenta-button-right i, +:root .wp-block-search__button.kenta-button-right svg, +:root .wc-block-product-search__button.kenta-button-right i, +:root .wc-block-product-search__button.kenta-button-right svg, +:root div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right i, +:root div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right svg, +:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right i, +:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right svg, +:root .kenta-form [type=submit].kenta-button-right i, +:root .kenta-form [type=submit].kenta-button-right svg, +:root .kenta-raw-html [type=submit].kenta-button-right i, +:root .kenta-raw-html [type=submit].kenta-button-right svg, +:root .kenta-article-content button.kenta-button-right i, +:root .kenta-article-content button.kenta-button-right svg, +:root .kenta-article-content [type=submit].kenta-button-right i, +:root .kenta-article-content [type=submit].kenta-button-right svg, +:root .kenta-button.kenta-button-right i, +:root .kenta-button.kenta-button-right svg { + margin-left: 0.75em; +} +:root .woocommerce #respond input#submit.kenta-button-left i, :root .woocommerce #respond input#submit.kenta-button-left svg, +:root .woocommerce #respond input#submit.alt.kenta-button-left i, +:root .woocommerce #respond input#submit.alt.kenta-button-left svg, +:root .woocommerce .page-content .widget_price_filter .button.kenta-button-left i, +:root .woocommerce .page-content .widget_price_filter .button.kenta-button-left svg, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left i, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left svg, +:root .woocommerce .page-content a.button.alt.kenta-button-left i, +:root .woocommerce .page-content a.button.alt.kenta-button-left svg, +:root .woocommerce .page-content button.button.alt.kenta-button-left i, +:root .woocommerce .page-content button.button.alt.kenta-button-left svg, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left i, +:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left svg, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left i, +:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left svg, +:root .woocommerce a.button.kenta-button-left i, +:root .woocommerce a.button.kenta-button-left svg, +:root .woocommerce a.button.alt.kenta-button-left i, +:root .woocommerce a.button.alt.kenta-button-left svg, +:root .woocommerce button.button.kenta-button-left i, +:root .woocommerce button.button.kenta-button-left svg, +:root .woocommerce button.button.alt.kenta-button-left i, +:root .woocommerce button.button.alt.kenta-button-left svg, +:root .woocommerce input.button.kenta-button-left i, +:root .woocommerce input.button.kenta-button-left svg, +:root .woocommerce input.button.alt.kenta-button-left i, +:root .woocommerce input.button.alt.kenta-button-left svg, +:root .widget_search [type=submit].kenta-button-left i, +:root .widget_search [type=submit].kenta-button-left svg, +:root .wp-block-search__button.kenta-button-left i, +:root .wp-block-search__button.kenta-button-left svg, +:root .wc-block-product-search__button.kenta-button-left i, +:root .wc-block-product-search__button.kenta-button-left svg, +:root div:not(.is-style-outline) > .wp-block-button__link.kenta-button-left i, +:root div:not(.is-style-outline) > .wp-block-button__link.kenta-button-left svg, +:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left i, +:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left svg, +:root .kenta-form [type=submit].kenta-button-left i, +:root .kenta-form [type=submit].kenta-button-left svg, +:root .kenta-raw-html [type=submit].kenta-button-left i, +:root .kenta-raw-html [type=submit].kenta-button-left svg, +:root .kenta-article-content button.kenta-button-left i, +:root .kenta-article-content button.kenta-button-left svg, +:root .kenta-article-content [type=submit].kenta-button-left i, +:root .kenta-article-content [type=submit].kenta-button-left svg, +:root .kenta-button.kenta-button-left i, +:root .kenta-button.kenta-button-left svg { + margin-right: 0.75em; +} +:root .wp-block-button.is-style-outline .wp-block-button__link, +:root .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background), +:root .wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) { + border-width: 2px; + border-style: solid; + color: var(--kenta-button-initial-color); + border-color: var(--kenta-button-initial-color); + background-color: transparent; +} +:root .components-button.is-primary { + background: var(--wp-admin-theme-color) !important; +} diff --git a/wp-content/themes/kenta/dist/css/editor-style.min.css b/wp-content/themes/kenta/dist/css/editor-style.min.css new file mode 100644 index 0000000000..16949b9ba7 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/editor-style.min.css @@ -0,0 +1 @@ +figure,img{max-width:100%}img{height:auto}pre{overflow-x:auto}:root *,:root :after,:root :before{border:0 solid #e5e7eb;box-sizing:border-box}:root :after,:root :before{--tw-content:""}:root html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}:root body{line-height:inherit;margin:0}:root :root{scroll-behavior:smooth}:root ::-moz-selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}:root ::-moz-selection,:root ::selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}:root [data-kenta-theme=light]{--kenta-primary-color:var(--kenta-light-primary-color);--kenta-primary-active:var(--kenta-light-primary-active);--kenta-accent-color:var(--kenta-light-accent-color);--kenta-accent-active:var(--kenta-light-accent-active);--kenta-base-color:var(--kenta-light-base-color);--kenta-base-100:var(--kenta-light-base-100);--kenta-base-200:var(--kenta-light-base-200);--kenta-base-300:var(--kenta-light-base-300)}:root [data-kenta-theme=light] .kenta-theme-switch .dark-mode{display:inline}:root [data-kenta-theme=light] .kenta-theme-switch .light-mode{display:none}:root [data-kenta-theme=dark]{--kenta-primary-color:var(--kenta-dark-primary-color,var(--kenta-light-primary-color));--kenta-primary-active:var(--kenta-dark-primary-active,var(--kenta-light-primary-active));--kenta-accent-color:var(--kenta-dark-accent-color,var(--kenta-light-accent-color));--kenta-accent-active:var(--kenta-dark-accent-active,var(--kenta-light-accent-active));--kenta-base-color:var(--kenta-dark-base-color,var(--kenta-light-base-color));--kenta-base-100:var(--kenta-dark-base-100,var(--kenta-light-base-100));--kenta-base-200:var(--kenta-dark-base-200,var(--kenta-light-base-200));--kenta-base-300:var(--kenta-dark-base-300,var(--kenta-light-base-300))}:root [data-kenta-theme=dark] .kenta-theme-switch .light-mode{display:inline}:root [data-kenta-theme=dark] .kenta-theme-switch .dark-mode{display:none}:root .kenta-widget{color:var(--kenta-widgets-text-color);margin-bottom:var(--kenta-widgets-spacing,0);position:relative}:root .kenta-widget ol,:root .kenta-widget ul{list-style:none outside none;margin:0;padding:0}:root .kenta-widget li,:root .kenta-widget ol>li,:root .kenta-widget ul>li{padding:0}:root .kenta-widget a{color:var(--kenta-widgets-link-initial,var(--kenta-primary-color));transition:all .25s ease}:root .kenta-widget a:hover{color:var(--kenta-widgets-link-hover,var(--kenta-primary-active))}:root .kenta-widget .widget-title{margin:0 0 12px}:root .kenta-widget [multiple],:root .kenta-widget [type=date],:root .kenta-widget [type=datetime-local],:root .kenta-widget [type=email],:root .kenta-widget [type=month],:root .kenta-widget [type=number],:root .kenta-widget [type=password],:root .kenta-widget [type=search],:root .kenta-widget [type=tel],:root .kenta-widget [type=text],:root .kenta-widget [type=time],:root .kenta-widget [type=url],:root .kenta-widget [type=week],:root .kenta-widget select,:root .kenta-widget textarea{background-color:transparent;border:1px solid var(--kenta-form-border-color,var(--kenta-base-200));border-radius:var(--kenta-form-control-radius,2px);display:block;transition:all .25s ease;width:100%}:root .kenta-widget [multiple]:focus,:root .kenta-widget [type=date]:focus,:root .kenta-widget [type=datetime-local]:focus,:root .kenta-widget [type=email]:focus,:root .kenta-widget [type=month]:focus,:root .kenta-widget [type=number]:focus,:root .kenta-widget [type=password]:focus,:root .kenta-widget [type=search]:focus,:root .kenta-widget [type=tel]:focus,:root .kenta-widget [type=text]:focus,:root .kenta-widget [type=time]:focus,:root .kenta-widget [type=url]:focus,:root .kenta-widget [type=week]:focus,:root .kenta-widget select:focus,:root .kenta-widget textarea:focus{border-color:var(--kenta-form-active-color,var(--kenta-primary-color));box-shadow:none;outline:none}:root .widget_product_tag_cloud a,:root .widget_tag_cloud a,:root .wp-block-tag-cloud a{background-color:var(--kenta-tag-cloud-background-initial,var(--kenta-base-color));border:1px solid var(--kenta-tag-cloud-border-initial-color,var(--kenta-base-200));border-radius:2px;color:var(--kenta-tag-cloud-text-initial,var(--kenta-accent-color));display:inline-block;margin-bottom:.5em;margin-right:.5em;padding:.25em 1em;text-decoration:none;transition:all .25s ease}:root .widget_product_tag_cloud a:hover,:root .widget_tag_cloud a:hover,:root .wp-block-tag-cloud a:hover{background-color:var(--kenta-tag-cloud-background-hover,var(--kenta-primary-color));border-color:var(--kenta-tag-cloud-border-hover-color,var(--kenta-primary-color));color:var(--kenta-tag-cloud-text-hover,var(--kenta-base-color))}:root .widget_rss .widget-title a.rsswidget:first-of-type{display:none}:root .widget_rss li{margin-bottom:12px}:root .gallery{display:flex;flex-wrap:wrap;list-style:none!important;margin-bottom:10px;overflow:hidden}:root .gallery-item{position:relative}:root .gallery-item img{margin:0;width:100%}:root .gallery-item *{display:block;height:100%}:root .wp-caption{position:relative}:root .gallery-caption,:root .wp-caption figcaption,:root .wp-caption-text,:root figcaption{margin-top:0;width:100%}:root body:not(.elementor-page) .gallery-item{display:inline-block;margin-bottom:5px;margin-right:5px;padding:0!important;text-align:center;vertical-align:top}:root .gallery-columns-1 .gallery-item{float:none!important;width:100%}:root .gallery-columns-2 .gallery-item{width:calc(50% - 3.5px)}:root .gallery-columns-3 .gallery-item{width:calc(33.33333% - 4.33333px)}:root .gallery-columns-4 .gallery-item{width:calc(25% - 4.75px)}:root .gallery-columns-5 .gallery-item{width:calc(20% - 5px)}:root .gallery-columns-6 .gallery-item{width:calc(16.66667% - 5.16667px)}:root .gallery-columns-7 .gallery-item{width:calc(14.28571% - 5.28571px)}:root .gallery-columns-8 .gallery-item{width:calc(12.5% - 5.375px)}:root .gallery-columns-9 .gallery-item{width:calc(11.11111% - 5.44444px)}:root .gallery-columns-2 .gallery-item:nth-child(2n+2),:root .gallery-columns-3 .gallery-item:nth-child(3n+3),:root .gallery-columns-4 .gallery-item:nth-child(4n+4),:root .gallery-columns-5 .gallery-item:nth-child(5n+5),:root .gallery-columns-6 .gallery-item:nth-child(6n+6),:root .gallery-columns-7 .gallery-item:nth-child(7n+7),:root .gallery-columns-8 .gallery-item:nth-child(8n+8),:root .gallery-columns-9 .gallery-item:nth-child(9n+9){margin-right:0!important}:root .gallery-columns-2 .gallery-item:nth-child(2n+2)+li,:root .gallery-columns-3 .gallery-item:nth-child(3n+3)+li,:root .gallery-columns-4 .gallery-item:nth-child(4n+4)+li,:root .gallery-columns-5 .gallery-item:nth-child(5n+5)+li,:root .gallery-columns-6 .gallery-item:nth-child(6n+6)+li,:root .gallery-columns-7 .gallery-item:nth-child(7n+7)+li,:root .gallery-columns-8 .gallery-item:nth-child(8n+8)+li,:root .gallery-columns-9 .gallery-item:nth-child(9n+9)+li{clear:both}:root .kenta-widget.widget_search label{display:block}:root .kenta-widget.widget_search button[type=submit]{height:100%}:root .kenta-widget form.search-form{position:relative}:root .kenta-widget form.search-form button{position:absolute;right:0;top:0}:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list){list-style:none;padding:0}:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list)>li{padding:var(--widget-list-pt,.2rem) var(--widget-list-pr,1rem) var(--widget-list-pb,.2rem) var(--widget-list-pl,1.4rem);position:relative}:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) li a{position:static}:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) li:not(.menu-item-has-children):before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;color:var(--kenta-primary-color);content:"\f02b";display:inline-block;display:var(--fa-display,inline-block);font-family:Font Awesome\ 6 Free;font-size:.6rem;font-style:normal;font-variant:normal;font-weight:900;left:0;line-height:1;margin-top:-.3rem;position:absolute;top:50%}:root .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) .sub-menu{padding-left:1rem}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_archive ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-archives li:before{content:"\f0c6"!important;font-size:13px;top:9px}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_categories ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-categories li:before{content:"\f07c"!important}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_pages ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-page-list li:before{content:"\f15b"!important}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_meta ul li:before{content:"\f0c1"!important}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_comments ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-latest-comments li:before{content:"\f086"!important}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_entries ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-latest-posts li:before{content:"\f02b"!important}:root .kenta-widget:not(.woocommerce) ul.wp-block-rss li .wp-block-rss__item-title{margin:0}:root .kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_rss ul li:before,:root .kenta-widget:not(.woocommerce) ul.wp-block-rss li:before{content:"\f09e"!important}:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li{padding-left:0;padding-right:1.4rem}:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li:not(.menu-item-has-children):before{left:auto;right:0}:root .rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li:not(.menu-item-has-children) a:after{content:"\f053";left:0;right:auto}:root .kenta-button,:root .woocommerce a.button,:root .wp-block-button{--kenta-button-border:1px solid var(--kenta-primary-color);--kenta-button-padding:0.85em 1.25em;--kenta-button-height:32px;--kenta-button-initial-color:var(--kenta-primary-color);--kenta-button-hover-color:var(--kenta-accent-color);--kenta-button-text-initial-color:var(--kenta-base-color);--kenta-button-text-hover-color:var(--kenta-base-color);--kenta-button-radius:2px;font-size:.75rem;line-height:1}:root .kenta-button .has-text-align-center,:root .woocommerce a.button .has-text-align-center,:root .wp-block-button .has-text-align-center{justify-content:center}:root .kenta-button .has-text-align-right,:root .woocommerce a.button .has-text-align-right,:root .wp-block-button .has-text-align-right{justify-content:flex-end}:root .kenta-button .has-text-align-left,:root .woocommerce a.button .has-text-align-left,:root .wp-block-button .has-text-align-left{justify-content:flex-start}:root .kenta-article-content [type=submit],:root .kenta-article-content button,:root .kenta-button,:root .kenta-form [type=submit],:root .kenta-raw-html [type=submit],:root .wc-block-product-search__button,:root .widget_search [type=submit],:root .woocommerce #respond input#submit,:root .woocommerce #respond input#submit.alt,:root .woocommerce .page-content .widget_price_filter .button,:root .woocommerce .page-content .woocommerce-message .button,:root .woocommerce .page-content a.button.alt,:root .woocommerce .page-content button.button.alt,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button,:root .woocommerce a.button,:root .woocommerce a.button.alt,:root .woocommerce button.button,:root .woocommerce button.button.alt,:root .woocommerce input.button,:root .woocommerce input.button.alt,:root .wp-block-button.is-style-outline .wp-block-button__link,:root .wp-block-search__button,:root div:not(.is-style-outline)>.wp-block-button__link{align-items:center;background-color:var(--kenta-button-initial-color);border-color:var(--lotta-border-initial-color);border:var(--kenta-button-border,none);border-radius:var(--kenta-button-radius);box-shadow:var(--kenta-button-shadow,none);box-sizing:border-box;color:var(--kenta-button-text-initial-color);cursor:pointer;display:inline-flex;min-height:var(--kenta-button-height);padding:var(--kenta-button-padding);text-decoration:none;transition:all .2s ease}:root .kenta-article-content [type=submit]:disabled,:root .kenta-article-content button:disabled,:root .kenta-button:disabled,:root .kenta-form [type=submit]:disabled,:root .kenta-raw-html [type=submit]:disabled,:root .wc-block-product-search__button:disabled,:root .widget_search [type=submit]:disabled,:root .woocommerce #respond input#submit.alt:disabled,:root .woocommerce #respond input#submit:disabled,:root .woocommerce .page-content .widget_price_filter .button:disabled,:root .woocommerce .page-content .woocommerce-message .button:disabled,:root .woocommerce .page-content a.button.alt:disabled,:root .woocommerce .page-content button.button.alt:disabled,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button:disabled,:root .woocommerce a.button.alt:disabled,:root .woocommerce a.button:disabled,:root .woocommerce button.button.alt:disabled,:root .woocommerce button.button:disabled,:root .woocommerce input.button.alt:disabled,:root .woocommerce input.button:disabled,:root .wp-block-button.is-style-outline .wp-block-button__link:disabled,:root .wp-block-search__button:disabled,:root div:not(.is-style-outline)>.wp-block-button__link:disabled{cursor:not-allowed;opacity:.65}:root .kenta-article-content [type=submit]:not(:disabled):hover,:root .kenta-article-content button:not(:disabled):hover,:root .kenta-button:not(:disabled):hover,:root .kenta-form [type=submit]:not(:disabled):hover,:root .kenta-raw-html [type=submit]:not(:disabled):hover,:root .wc-block-product-search__button:not(:disabled):hover,:root .widget_search [type=submit]:not(:disabled):hover,:root .woocommerce #respond input#submit.alt:not(:disabled):hover,:root .woocommerce #respond input#submit:not(:disabled):hover,:root .woocommerce .page-content .widget_price_filter .button:not(:disabled):hover,:root .woocommerce .page-content .woocommerce-message .button:not(:disabled):hover,:root .woocommerce .page-content a.button.alt:not(:disabled):hover,:root .woocommerce .page-content button.button.alt:not(:disabled):hover,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button:not(:disabled):hover,:root .woocommerce a.button.alt:not(:disabled):hover,:root .woocommerce a.button:not(:disabled):hover,:root .woocommerce button.button.alt:not(:disabled):hover,:root .woocommerce button.button:not(:disabled):hover,:root .woocommerce input.button.alt:not(:disabled):hover,:root .woocommerce input.button:not(:disabled):hover,:root .wp-block-button.is-style-outline .wp-block-button__link:not(:disabled):hover,:root .wp-block-search__button:not(:disabled):hover,:root div:not(.is-style-outline)>.wp-block-button__link:not(:disabled):hover{background-color:var(--kenta-button-hover-color);border-color:var(--lotta-border-hover-color);box-shadow:var(--kenta-button-shadow-active,none);color:var(--kenta-button-text-hover-color)}:root .kenta-article-content [type=submit].kenta-button-right,:root .kenta-article-content button.kenta-button-right,:root .kenta-button.kenta-button-right,:root .kenta-form [type=submit].kenta-button-right,:root .kenta-raw-html [type=submit].kenta-button-right,:root .wc-block-product-search__button.kenta-button-right,:root .widget_search [type=submit].kenta-button-right,:root .woocommerce #respond input#submit.alt.kenta-button-right,:root .woocommerce #respond input#submit.kenta-button-right,:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right,:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right,:root .woocommerce .page-content a.button.alt.kenta-button-right,:root .woocommerce .page-content button.button.alt.kenta-button-right,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right,:root .woocommerce a.button.alt.kenta-button-right,:root .woocommerce a.button.kenta-button-right,:root .woocommerce button.button.alt.kenta-button-right,:root .woocommerce button.button.kenta-button-right,:root .woocommerce input.button.alt.kenta-button-right,:root .woocommerce input.button.kenta-button-right,:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right,:root .wp-block-search__button.kenta-button-right,:root div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right{flex-direction:row-reverse}:root .kenta-article-content [type=submit].kenta-button-right i,:root .kenta-article-content [type=submit].kenta-button-right svg,:root .kenta-article-content button.kenta-button-right i,:root .kenta-article-content button.kenta-button-right svg,:root .kenta-button.kenta-button-right i,:root .kenta-button.kenta-button-right svg,:root .kenta-form [type=submit].kenta-button-right i,:root .kenta-form [type=submit].kenta-button-right svg,:root .kenta-raw-html [type=submit].kenta-button-right i,:root .kenta-raw-html [type=submit].kenta-button-right svg,:root .wc-block-product-search__button.kenta-button-right i,:root .wc-block-product-search__button.kenta-button-right svg,:root .widget_search [type=submit].kenta-button-right i,:root .widget_search [type=submit].kenta-button-right svg,:root .woocommerce #respond input#submit.alt.kenta-button-right i,:root .woocommerce #respond input#submit.alt.kenta-button-right svg,:root .woocommerce #respond input#submit.kenta-button-right i,:root .woocommerce #respond input#submit.kenta-button-right svg,:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right i,:root .woocommerce .page-content .widget_price_filter .button.kenta-button-right svg,:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right i,:root .woocommerce .page-content .woocommerce-message .button.kenta-button-right svg,:root .woocommerce .page-content a.button.alt.kenta-button-right i,:root .woocommerce .page-content a.button.alt.kenta-button-right svg,:root .woocommerce .page-content button.button.alt.kenta-button-right i,:root .woocommerce .page-content button.button.alt.kenta-button-right svg,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right i,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right svg,:root .woocommerce a.button.alt.kenta-button-right i,:root .woocommerce a.button.alt.kenta-button-right svg,:root .woocommerce a.button.kenta-button-right i,:root .woocommerce a.button.kenta-button-right svg,:root .woocommerce button.button.alt.kenta-button-right i,:root .woocommerce button.button.alt.kenta-button-right svg,:root .woocommerce button.button.kenta-button-right i,:root .woocommerce button.button.kenta-button-right svg,:root .woocommerce input.button.alt.kenta-button-right i,:root .woocommerce input.button.alt.kenta-button-right svg,:root .woocommerce input.button.kenta-button-right i,:root .woocommerce input.button.kenta-button-right svg,:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right i,:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right svg,:root .wp-block-search__button.kenta-button-right i,:root .wp-block-search__button.kenta-button-right svg,:root div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right i,:root div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right svg{margin-left:.75em}:root .kenta-article-content [type=submit].kenta-button-left i,:root .kenta-article-content [type=submit].kenta-button-left svg,:root .kenta-article-content button.kenta-button-left i,:root .kenta-article-content button.kenta-button-left svg,:root .kenta-button.kenta-button-left i,:root .kenta-button.kenta-button-left svg,:root .kenta-form [type=submit].kenta-button-left i,:root .kenta-form [type=submit].kenta-button-left svg,:root .kenta-raw-html [type=submit].kenta-button-left i,:root .kenta-raw-html [type=submit].kenta-button-left svg,:root .wc-block-product-search__button.kenta-button-left i,:root .wc-block-product-search__button.kenta-button-left svg,:root .widget_search [type=submit].kenta-button-left i,:root .widget_search [type=submit].kenta-button-left svg,:root .woocommerce #respond input#submit.alt.kenta-button-left i,:root .woocommerce #respond input#submit.alt.kenta-button-left svg,:root .woocommerce #respond input#submit.kenta-button-left i,:root .woocommerce #respond input#submit.kenta-button-left svg,:root .woocommerce .page-content .widget_price_filter .button.kenta-button-left i,:root .woocommerce .page-content .widget_price_filter .button.kenta-button-left svg,:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left i,:root .woocommerce .page-content .woocommerce-message .button.kenta-button-left svg,:root .woocommerce .page-content a.button.alt.kenta-button-left i,:root .woocommerce .page-content a.button.alt.kenta-button-left svg,:root .woocommerce .page-content button.button.alt.kenta-button-left i,:root .woocommerce .page-content button.button.alt.kenta-button-left svg,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left i,:root .woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left svg,:root .woocommerce a.button.alt.kenta-button-left i,:root .woocommerce a.button.alt.kenta-button-left svg,:root .woocommerce a.button.kenta-button-left i,:root .woocommerce a.button.kenta-button-left svg,:root .woocommerce button.button.alt.kenta-button-left i,:root .woocommerce button.button.alt.kenta-button-left svg,:root .woocommerce button.button.kenta-button-left i,:root .woocommerce button.button.kenta-button-left svg,:root .woocommerce input.button.alt.kenta-button-left i,:root .woocommerce input.button.alt.kenta-button-left svg,:root .woocommerce input.button.kenta-button-left i,:root .woocommerce input.button.kenta-button-left svg,:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left i,:root .wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left svg,:root .wp-block-search__button.kenta-button-left i,:root .wp-block-search__button.kenta-button-left svg,:root div:not(.is-style-outline)>.wp-block-button__link.kenta-button-left i,:root div:not(.is-style-outline)>.wp-block-button__link.kenta-button-left svg{margin-right:.75em}:root .wp-block-button.is-style-outline .wp-block-button__link,:root .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background),:root .wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color){background-color:transparent;border-color:var(--kenta-button-initial-color);border-style:solid;border-width:2px;color:var(--kenta-button-initial-color)}:root .components-button.is-primary{background:var(--wp-admin-theme-color)!important} diff --git a/wp-content/themes/kenta/dist/css/style.css b/wp-content/themes/kenta/dist/css/style.css new file mode 100644 index 0000000000..92ffc73532 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/style.css @@ -0,0 +1,3004 @@ +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ +*, +::before, +::after { + box-sizing: border-box; /* 1 */ + border-width: 0; /* 2 */ + border-style: solid; /* 2 */ + border-color: #e5e7eb; /* 2 */ +} + +::before, +::after { + --tw-content: ""; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ +html { + line-height: 1.5; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; /* 3 */ + -o-tab-size: 4; + tab-size: 4; /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ +body { + margin: 0; /* 1 */ + line-height: inherit; /* 2 */ +} + +/** + Smooth scroll + */ +:root { + scroll-behavior: smooth; +} + +/** + Css selection colors + */ +::-moz-selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} +::-moz-selection, +::selection { + color: var(--kb-base-color); + background-color: var(--kb-primary-color); +} + +[data-kenta-theme=light] { + --kenta-primary-color: var(--kenta-light-primary-color); + --kenta-primary-active: var(--kenta-light-primary-active); + --kenta-accent-color: var(--kenta-light-accent-color); + --kenta-accent-active: var(--kenta-light-accent-active); + --kenta-base-color: var(--kenta-light-base-color); + --kenta-base-100: var(--kenta-light-base-100); + --kenta-base-200: var(--kenta-light-base-200); + --kenta-base-300: var(--kenta-light-base-300); +} +[data-kenta-theme=light] .kenta-theme-switch .dark-mode { + display: inline; +} +[data-kenta-theme=light] .kenta-theme-switch .light-mode { + display: none; +} + +[data-kenta-theme=dark] { + --kenta-primary-color: var(--kenta-dark-primary-color, var(--kenta-light-primary-color)); + --kenta-primary-active: var(--kenta-dark-primary-active, var(--kenta-light-primary-active)); + --kenta-accent-color: var(--kenta-dark-accent-color, var(--kenta-light-accent-color)); + --kenta-accent-active: var(--kenta-dark-accent-active, var(--kenta-light-accent-active)); + --kenta-base-color: var(--kenta-dark-base-color, var(--kenta-light-base-color)); + --kenta-base-100: var(--kenta-dark-base-100, var(--kenta-light-base-100)); + --kenta-base-200: var(--kenta-dark-base-200, var(--kenta-light-base-200)); + --kenta-base-300: var(--kenta-dark-base-300, var(--kenta-light-base-300)); +} +[data-kenta-theme=dark] .kenta-theme-switch .light-mode { + display: inline; +} +[data-kenta-theme=dark] .kenta-theme-switch .dark-mode { + display: none; +} + +.kenta-max-w-wide { + max-width: min(var(--wp--style--global--wide-size), 100%); +} +.kenta-max-w-wide.has-global-padding { + max-width: calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left)); +} + +.kenta-max-w-content { + max-width: min(var(--wp--style--global--content-size), 100%); +} +.kenta-max-w-content.has-global-padding { + max-width: calc(var(--wp--style--global--content-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left)); +} + +.kenta-container { + padding-top: var(--kenta-content-area-spacing); + padding-bottom: var(--kenta-content-area-spacing); +} +.kenta-container.is-align-normal { + --wp--style--global--content-size: var(--wp--style--global--wide-size); +} +.kenta-container.is-align-normal.is-style-fluid { + --wp--style--global--wide-size: 100%; +} + +.kenta-site-wrap { + position: relative; + display: flex; + flex-direction: column; + min-height: calc(100vh - var(--wp-admin-bar-height, 0px)); + max-width: var(--kenta-site-wrap-width, inherit); +} + +.has-global-padding > .alignfull { + margin-right: calc(var(--wp--style--root--padding-right) * -1) !important; + margin-left: calc(var(--wp--style--root--padding-left) * -1) !important; +} + +.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { + max-width: min(var(--wp--style--global--content-size), 100%); +} + +.kenta-no-sidebar .kenta-article-content-wrap::before { + content: " "; + display: block; + max-width: calc(100% - (var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left))); + margin-left: calc((var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left)) / 2); + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + z-index: -1; +} + +@media screen and (min-width: 1140px) { + .kenta-no-sidebar .kenta-article-content-wrap::before { + width: calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left)); + margin-left: calc(var(--wp--style--global--wide-size) / -2 - var(--wp--style--root--padding-left)); + left: 50%; + } +} +@media (min-width: 1024px) { + .kenta-transparent-header-desktop { + position: absolute; + top: 0; + left: 0; + width: 100%; + } +} +@media (max-width: 1024px) { + .kenta-transparent-header-mobile { + position: absolute; + top: 0; + left: 0; + width: 100%; + } +} +figure { + max-width: 100%; +} + +img { + max-width: 100%; + height: auto; +} + +pre { + overflow-x: auto; +} + +/** + Responsive builder + */ +.kenta-builder-column-desktop { + display: none; +} +@media (min-width: 1024px) { + .kenta-builder-column-desktop { + display: flex; + } +} + +.kenta-builder-column-mobile { + display: flex; +} + +@media (min-width: 1024px) { + .kenta-builder-column-mobile { + display: none; + } +} + +/** + Generic builder + */ +.kenta-builder-column-desktop-dir-row > [data-builder-element], +.kenta-builder-column-tablet-dir-row > [data-builder-element], +.kenta-builder-column-mobile-dir-row > [data-builder-element] { + flex-shrink: 0; + margin-right: var(--kenta-builder-elements-gap, 12px); +} +.kenta-builder-column-desktop-dir-row > [data-builder-element]:last-child, +.kenta-builder-column-tablet-dir-row > [data-builder-element]:last-child, +.kenta-builder-column-mobile-dir-row > [data-builder-element]:last-child { + margin-right: 0; +} + +.kenta-builder-column-desktop-dir-column > [data-builder-element], +.kenta-builder-column-tablet-dir-column > [data-builder-element], +.kenta-builder-column-mobile-dir-column > [data-builder-element] { + margin-bottom: var(--kenta-builder-elements-gap, 12px); +} +.kenta-builder-column-desktop-dir-column > [data-builder-element]:last-child, +.kenta-builder-column-tablet-dir-column > [data-builder-element]:last-child, +.kenta-builder-column-mobile-dir-column > [data-builder-element]:last-child { + margin-bottom: 0; +} + +.kenta-footer-row, +.kenta-header-row { + position: relative; +} +.kenta-footer-row .container, +.kenta-header-row .container { + position: relative; +} + +/** + Elements + */ +.kenta-popup { + min-width: 300px; + color: var(--kenta-accent-color); + font-size: 1rem; + top: calc(100% + 0.6em); + box-shadow: 0 0 14px rgba(70, 71, 73, 0.1); + opacity: 0; + margin-top: 10px; + transition: all ease 0.2s; + visibility: hidden; + pointer-events: none; +} +.kenta-popup::before { + content: " "; + bottom: 100%; + border-width: 0.65em; + border-style: solid; + border-bottom-color: var(--kenta-popup-color, var(--kenta-base-300)); + border-top-color: transparent; + border-left-color: transparent; + border-right-color: transparent; + position: absolute; + right: 0.65em; +} +.kenta-popup.show { + opacity: 1; + margin-top: 0; + visibility: visible; + pointer-events: auto; +} + +.kenta-breadcrumbs-element { + color: var(--breadcrumb-link-initial); + fill: var(--breadcrumb-link-initial); +} +.kenta-breadcrumbs-element svg { + display: inline-block; +} +.kenta-breadcrumbs-element .breadcrumb-link > svg { + width: auto; + height: 80%; +} +.kenta-breadcrumbs-element .breadcrumb-sep svg { + display: inline-block; + position: relative; + top: -0.15em; + vertical-align: middle; + width: 0.7em; + height: 0.7em; +} +.kenta-breadcrumbs-element .breadcrumb-link { + color: var(--breadcrumb-link-initial); + transition: color, fill 0.25s ease-in; +} +.kenta-breadcrumbs-element .breadcrumb-link, .kenta-breadcrumbs-element .breadcrumb-link svg { + fill: var(--breadcrumb-link-initial); +} +.kenta-breadcrumbs-element .breadcrumb-link svg { + display: inline-block; + position: relative; + top: -0.2em; + vertical-align: middle; + width: 1.25em; + height: 1.25em; +} +.kenta-breadcrumbs-element .breadcrumb-link:hover { + color: var(--breadcrumb-link-hover); +} +.kenta-breadcrumbs-element .breadcrumb-link:hover, .kenta-breadcrumbs-element .breadcrumb-link:hover svg { + fill: var(--breadcrumb-link-hover); +} +.kenta-breadcrumbs-element .breadcrumb-item { + color: var(--breadcrumb-text); +} + +.kenta-site-branding { + max-width: 100%; +} +.kenta-site-branding .site-logo { + display: inline-block; + width: var(--logo-max-width, 200px); + margin-bottom: var(--logo-spacing); +} +.kenta-site-branding .site-logo img { + height: auto; + width: inherit; + max-width: initial; + vertical-align: initial; + -o-object-fit: contain; + object-fit: contain; + display: inline-block; +} +.kenta-site-branding .site-logo .kenta-transparent-logo { + display: none; +} +.kenta-site-branding .site-logo .kenta-dark-scheme-logo { + display: none; +} +.kenta-site-branding .site-identity .site-title, +.kenta-site-branding .site-identity .site-tagline { + display: block; + margin-bottom: 0; + color: var(--kenta-link-initial-color); +} +.kenta-site-branding .site-identity .site-title, .kenta-site-branding .site-identity .site-title a, +.kenta-site-branding .site-identity .site-tagline, +.kenta-site-branding .site-identity .site-tagline a { + text-decoration: none; +} +.kenta-site-branding .site-identity .site-title { + transition: color ease 0.25s; +} +.kenta-site-branding .site-identity .site-title:hover { + color: var(--kenta-link-hover-color); +} +.kenta-site-branding[data-logo=right], .kenta-site-branding[data-logo=left] { + display: flex; + align-items: center; +} +.kenta-site-branding[data-logo=right] .site-logo, .kenta-site-branding[data-logo=left] .site-logo { + margin-bottom: 0; +} +.kenta-site-branding[data-logo=left] .site-logo { + margin-right: var(--logo-spacing); +} +.kenta-site-branding[data-logo=right] { + flex-direction: row-reverse; +} +.kenta-site-branding[data-logo=right] .site-logo { + margin-left: var(--logo-spacing); +} + +[data-kenta-theme=dark] .kenta-site-branding .kenta-has-dark-scheme-logo .kenta-logo { + display: none; +} +[data-kenta-theme=dark] .kenta-site-branding .kenta-has-dark-scheme-logo .kenta-dark-scheme-logo { + display: inline-block; +} + +.kenta-menu-wrap { + display: flex; + flex-shrink: initial !important; + align-items: center; +} + +.kenta-menu { + display: flex; + flex-wrap: wrap; + align-items: center; + height: 100%; +} +.kenta-menu li { + white-space: nowrap; /* no need for Supersubs plugin */ + *white-space: normal; /* ...unless you support IE7 (let it wrap) */ + line-height: 1.5; + display: flex; +} +.kenta-menu ul { + min-width: 12em; /* allow long menu items to determine submenu width */ + *width: 12em; /* no auto sub width for IE7, see white-space comment below */ +} +.kenta-menu .kenta-menu-icon { + display: none; +} +.kenta-menu.kenta-menu-has-arrow .page_item_has_children > a > .kenta-menu-icon, .kenta-menu.kenta-menu-has-arrow .menu-item-has-children > a > .kenta-menu-icon { + display: inline-block; + font-size: 12px; + margin-left: 0.65em; +} +.kenta-menu > li { + height: var(--menu-items-height, 100%); + margin: var(--menu-items-margin, 0); +} +.kenta-menu > li > a { + height: 100%; + display: flex; + align-items: center; + padding: var(--menu-items-padding, 0); + text-decoration: none; + transition: all ease 0.25s; + color: var(--menu-text-initial-color); + background-color: var(--menu-background-initial-color); + border-radius: var(--menu-items-radius, 0); + border-top: var(--menu-items-border-top); + border-bottom: var(--menu-items-border-bottom); +} +.kenta-menu > li > a svg { + fill: var(--menu-text-initial-color); +} +.kenta-menu > li.sfHover > a, .kenta-menu > li:hover > a { + color: var(--menu-text-hover-color); + background-color: var(--menu-background-hover-color); + border-top: var(--menu-items-border-top-active); + border-bottom: var(--menu-items-border-bottom-active); +} +.kenta-menu > li.sfHover > a svg, .kenta-menu > li:hover > a svg { + fill: var(--menu-text-hover-color); +} +.kenta-menu > li[class*=current-menu-] > a { + color: var(--menu-text-active-color); + background-color: var(--menu-background-active-color); + border-top: var(--menu-items-border-top-active); + border-bottom: var(--menu-items-border-bottom-active); +} +.kenta-menu > li[class*=current-menu-] > a svg { + fill: var(--menu-text-active-color); +} +.kenta-menu > li ul { + min-width: var(--dropdown-width); + color: var(--dropdown-text-initial-color); + background-color: var(--dropdown-background-initial-color); + border-radius: var(--dropdown-radius, 0); + border: var(--dropdown-border, none); + box-shadow: var(--dropdown-box-shadow, none); + z-index: 99999; +} +.kenta-menu > li ul svg { + fill: var(--dropdown-text-initial-color); +} +.kenta-menu > li ul a { + color: var(--dropdown-text-initial-color); + width: 100%; + white-space: normal; + transition: all ease 0.25s; + padding: var(--dropdown-item-padding); + display: flex; + align-items: center; + justify-content: space-between; + text-decoration: none; +} +.kenta-menu > li ul li { + border-top: var(--dropdown-divider); +} +.kenta-menu > li ul li:first-child, +.kenta-menu > li ul li:first-child > a { + border-top: none; + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.kenta-menu > li ul li:last-child, +.kenta-menu > li ul li:last-child > a { + border-bottom-left-radius: inherit; + border-bottom-right-radius: inherit; +} +.kenta-menu > li ul li:hover > a { + color: var(--dropdown-text-hover-color); + background-color: var(--dropdown-background-active-color); +} +.kenta-menu > li ul li:hover > a svg { + fill: var(--dropdown-text-hover-color); +} +.kenta-menu > li ul li[class*=current-menu-] > a { + color: var(--dropdown-text-active-color); + background-color: var(--dropdown-background-active-color); +} +.kenta-menu > li ul li[class*=current-menu-] > a svg { + fill: var(--dropdown-text-active-color); +} + +.kenta-menu .kenta-mega-menu { + position: unset !important; +} +.kenta-menu .kenta-mega-menu > ul { + width: 100%; +} +@media (min-width: 576px) { + .kenta-menu .kenta-mega-menu > ul { + max-width: 576px; + } +} +@media (min-width: 768px) { + .kenta-menu .kenta-mega-menu > ul { + max-width: 768px; + } +} +@media (min-width: 1024px) { + .kenta-menu .kenta-mega-menu > ul { + max-width: 1024px; + } +} +@media (min-width: 1140px) { + .kenta-menu .kenta-mega-menu > ul { + max-width: 1140px; + } +} +.kenta-footer-row .kenta-menu .kenta-mega-menu > ul, +.kenta-header-row .kenta-menu .kenta-mega-menu > ul { + position: relative; +} +.kenta-archive-header .kenta-menu .kenta-mega-menu > ul { + position: relative; + z-index: 1; +} +.kenta-menu .kenta-mega-menu > ul { + width: 100%; + left: 50% !important; + right: unset !important; + transform: translateX(-50%); + position: absolute !important; + padding: 24px 12px; + display: flex !important; +} +.kenta-menu .kenta-mega-menu > ul ul { + position: relative; + left: initial !important; + visibility: visible; + opacity: 1; + margin-top: 0; + background: transparent; + border: none; + box-shadow: none; +} +.kenta-menu .kenta-mega-menu > ul .kenta-mega-col { + width: 100%; + border-top: none; + padding: 0 12px; +} +.kenta-menu .kenta-mega-menu > ul .kenta-mega-col:not(:last-child) { + border-right: var(--dropdown-divider); +} +.kenta-menu .kenta-mega-menu > ul .kenta-mega-col > a { + display: none; +} +.kenta-menu .kenta-mega-menu > ul .kenta-mega-heading { + font-weight: bold; + text-transform: uppercase; +} + +.kenta-html-element { + width: 100%; +} + +.kenta-raw-html { + max-width: 100%; +} +.kenta-raw-html a { + transition: all ease 0.25s; + text-decoration: none; + color: var(--kenta-link-initial-color); +} +.kenta-raw-html a:hover { + color: var(--kenta-link-hover-color); + text-decoration: underline; +} + +.kenta-no-result-search-form { + --kenta-form-background-color: var(--kenta-base-color); + --kenta-form-text-color: var(--kenta-accent-active); + --kenta-form-border-color: var(--kenta-base-300); + --kenta-form-active-color: var(--kenta-primary-color); +} +.kenta-no-result-search-form input[type=search i]::-webkit-search-cancel-button { + display: none; +} +.kenta-no-result-search-form .search-submit { + position: absolute; + right: 0; + top: 0; + font-size: 18px; + max-width: 100%; + max-height: 100%; +} + +.woocommerce .kenta-search-modal-form .search-input, +.kenta-search-modal-form .search-input { + flex-grow: 1; + border-radius: 0; + background: transparent; + padding: 1rem 1.5rem; + border: none; + border-bottom: 2px solid var(--kenta-search-input-border-initial-color, var(--kenta-base-200)); + color: var(--kenta-search-input-initial-color, var(--kenta-accent-color)); +} +.woocommerce .kenta-search-modal-form .search-input::-moz-placeholder, .kenta-search-modal-form .search-input::-moz-placeholder { + color: var(--kenta-search-input-placeholder-color, var(--kenta-accent-color)); +} +.woocommerce .kenta-search-modal-form .search-input::placeholder, +.kenta-search-modal-form .search-input::placeholder { + color: var(--kenta-search-input-placeholder-color, var(--kenta-accent-color)); +} +.woocommerce .kenta-search-modal-form .search-input:focus, +.kenta-search-modal-form .search-input:focus { + outline: none; + box-shadow: none; + color: var(--kenta-search-input-focus-color, var(--kenta-accent-color)); + border-bottom-color: var(--kenta-search-input-border-focus-color, var(--kenta-primary-color)); +} +.woocommerce .kenta-search-modal-form .search-submit, +.kenta-search-modal-form .search-submit { + display: flex; + align-items: center; + justify-content: center; + padding: 0.75rem; + position: absolute; + right: 0; + background: var(--kenta-search-submit-background-initial-color, var(--kenta-accent-color)); + border-radius: var(--kenta-search-submit-radius, 4px); + border: var(--kenta-search-submit-border, none); + transition: all ease 0.25s; + color: var(--kenta-search-submit-initial-color, var(--kenta-accent-color)); +} +.woocommerce .kenta-search-modal-form .search-submit:hover, +.kenta-search-modal-form .search-submit:hover { + background: var(--kenta-search-submit-background-hover-color, var(--kenta-primary-color)); + color: var(--kenta-search-submit-hover-color, var(--kenta-primary-color)); +} + +.kenta-collapsable-menu { + width: 100%; + list-style: none; + padding: 0; + margin: 0; +} +.kenta-collapsable-menu a { + display: flex; + align-items: center; + text-decoration: none; + justify-content: space-between; + padding: 12px; + color: var(--menu-text-initial-color, var(--kenta-accent-color)); + border-bottom: var(--menu-items-divider, none); + transition: all ease 0.25s; +} +.kenta-collapsable-menu a:hover { + color: var(--menu-text-hover-color, var(--kenta-primary-color)); +} +.kenta-collapsable-menu [class*=current-menu-] > a { + color: var(--menu-text-active-color, var(--kenta-primary-color)); +} +.kenta-collapsable-menu .kenta-dropdown-toggle { + display: none; + visibility: hidden; + border-radius: 2px; + transition: all ease 0.25s; + border: var(--menu-dropdown-toggle-border, none); + color: var(--menu-text-initial-color, var(--kenta-accent-color)); + width: 2em; + height: 2em; + justify-content: center; + align-items: center; +} +.kenta-collapsable-menu .kenta-dropdown-toggle .kenta-menu-icon { + display: block; + transform: rotate3d(0, 0, 1, 0deg); + transition: all ease 0.25s; + font-size: 1em; + line-height: 1; +} +.kenta-collapsable-menu .kenta-dropdown-toggle.active .kenta-menu-icon { + transform: rotate3d(0, 0, 1, 180deg); +} +.kenta-collapsable-menu .kenta-dropdown-toggle:hover { + border-color: var(--menu-text-hover-color, var(--kenta-primary-color)); + color: var(--menu-text-hover-color, var(--kenta-primary-color)); +} +.kenta-collapsable-menu.kenta-menu-has-arrow .page_item_has_children > a > .kenta-dropdown-toggle, .kenta-collapsable-menu.kenta-menu-has-arrow .menu-item-has-children > a > .kenta-dropdown-toggle { + display: flex; + visibility: visible; + margin-left: 1em; +} +.kenta-collapsable-menu > li ul { + display: none; + list-style: none; + overflow: hidden; + transition: all ease-in 0.2s; + -webkit-padding-start: 1em; + padding-inline-start: 1em; +} +.kenta-collapsable-menu > li ul.open { + display: block; +} + +.kenta-cart-trigger { + position: relative; + font-size: 1rem; +} +.kenta-cart-trigger .kenta-cart-badge { + font-size: 14px; + width: 1.75em; + height: 1.75em; + line-height: 1.75em; + text-align: center; + transform: scale(0.75); + top: -0.725em; + right: -0.725em; +} + +.kenta-cart-popup .widget > h2 { + display: none; +} +.kenta-cart-popup p.buttons { + margin: 1.25em 0; +} +.kenta-cart-popup .total { + padding-top: 12px; + padding-bottom: 12px; +} + +.kenta-modal-visible { + overflow: hidden; + padding-right: var(--scrollbar-width, 0); +} + +.kenta-modal { + width: 100vw; + height: calc(100vh - var(--wp-admin-bar-height, 0)); + position: fixed; + left: 0; + right: 0; + top: var(--wp-admin-bar-height, 0); + bottom: 0; + z-index: 999999; + pointer-events: none; + opacity: 0; + visibility: hidden; +} +.kenta-modal, .kenta-modal .kenta-modal-inner { + transition: all ease 0.3s !important; +} +.kenta-modal .kenta-modal-inner { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} +.kenta-modal[data-toggle-behaviour=drawer-left] .kenta-modal-inner { + transform: translate3d(-20%, 0, 0); +} +.kenta-modal[data-toggle-behaviour=drawer-right] .kenta-modal-inner { + transform: translate3d(20%, 0, 0); +} +.kenta-modal.active { + opacity: 1; + visibility: visible; + pointer-events: auto; +} +.kenta-modal.active .kenta-modal-inner { + transform: translate3d(0, 0, 0); +} +.kenta-modal .kenta-modal-actions { + padding: 12px 24px 0 24px; + position: absolute; + top: 0; + left: 0; + width: 100%; + font-size: 1.75rem; + line-height: 1; +} +.kenta-modal .kenta-modal-actions button { + z-index: 9999; + position: relative; + cursor: pointer; + display: block; + color: var(--kenta-modal-action-initial, rgba(255, 255, 255, 0.5)); +} +.kenta-modal .kenta-modal-actions button, .kenta-modal .kenta-modal-actions button * { + transition: all ease 0.25s; +} +.kenta-modal .kenta-modal-actions button:hover { + color: var(--kenta-modal-action-hover, rgb(255, 255, 255)); +} +.kenta-modal .kenta-modal-actions .kenta-close-modal { + font-size: 100%; + background: transparent; + -webkit-margin-start: auto; + margin-inline-start: auto; +} +.kenta-modal .kenta-modal-content { + padding: 24px; + flex-grow: 1; + box-sizing: border-box; + overflow-x: hidden; + overflow-y: auto; +} + +.sf-menu, .sf-menu * { + list-style: none; + margin: 0; + padding: 0; +} +.sf-menu li, .sf-menu a { + position: relative; +} +.sf-menu li { + width: 100%; +} +.sf-menu li:hover, +.sf-menu li.sfHover { + transition: none; +} +.sf-menu li:focus-within > ul, +.sf-menu li:hover > ul, +.sf-menu li.sfHover > ul { + visibility: visible; + display: block; + opacity: 1; + margin-top: 0; + pointer-events: auto; +} +.sf-menu ul { + transition: all ease 0.25s; + position: absolute; + margin-top: var(--dropdown-initial-offset, 15px); + top: 0; + opacity: 0; + visibility: hidden; + display: none; + pointer-events: none; + z-index: 50; +} +.sf-menu > li > ul { + top: 100%; +} +.sf-menu:not(.sf-dropdown-left) ul { + left: calc(100% + 4px); +} +.sf-menu:not(.sf-dropdown-left) > li > ul { + left: 0; + right: auto; +} +.sf-menu.sf-dropdown-left ul { + left: calc(-100% - 4px); +} +.sf-menu.sf-dropdown-left > li > ul { + left: auto; + right: 0; +} +.sf-menu > li { + float: left; +} +.sf-menu li { + width: auto; +} + +.kenta-sidebar { + margin-top: var(--kenta-sidebar-gap, 0); + width: 100%; +} + +@media (min-width: 1024px) { + .kenta-sidebar { + margin-top: 0; + width: var(--kenta-sidebar-width, 30%); + } + .kenta-right-sidebar .kenta-sidebar { + margin-left: var(--kenta-sidebar-gap, 0); + } + .kenta-left-sidebar .kenta-sidebar { + margin-right: var(--kenta-sidebar-gap, 0); + } +} +.woocommerce a.button, +.wp-block-button, +.kenta-button { + font-size: 0.75rem; + line-height: 1; + --kenta-button-border: 1px solid var(--kenta-primary-color); + --kenta-button-padding: 0.85em 1.25em; + --kenta-button-height: 32px; + --kenta-button-initial-color: var(--kenta-primary-color); + --kenta-button-hover-color: var(--kenta-accent-color); + --kenta-button-text-initial-color: var(--kenta-base-color); + --kenta-button-text-hover-color: var(--kenta-base-color); + --kenta-button-radius: 2px; +} +.woocommerce a.button .has-text-align-center, +.wp-block-button .has-text-align-center, +.kenta-button .has-text-align-center { + justify-content: center; +} +.woocommerce a.button .has-text-align-right, +.wp-block-button .has-text-align-right, +.kenta-button .has-text-align-right { + justify-content: flex-end; +} +.woocommerce a.button .has-text-align-left, +.wp-block-button .has-text-align-left, +.kenta-button .has-text-align-left { + justify-content: flex-start; +} + +.woocommerce #respond input#submit, +.woocommerce #respond input#submit.alt, +.woocommerce .page-content .widget_price_filter .button, +.woocommerce .page-content .woocommerce-message .button, +.woocommerce .page-content a.button.alt, +.woocommerce .page-content button.button.alt, +.woocommerce .page-content .woocommerce-message .button, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button, +.woocommerce a.button, +.woocommerce a.button.alt, +.woocommerce button.button, +.woocommerce button.button.alt, +.woocommerce input.button, +.woocommerce input.button.alt, +.widget_search [type=submit], +.wp-block-search__button, +.wc-block-product-search__button, +div:not(.is-style-outline) > .wp-block-button__link, +.wp-block-button.is-style-outline .wp-block-button__link, +.kenta-form [type=submit], +.kenta-raw-html [type=submit], +.kenta-article-content button, +.kenta-article-content [type=submit], +.kenta-button { + display: inline-flex; + cursor: pointer; + align-items: center; + box-sizing: border-box; + text-decoration: none; + min-height: var(--kenta-button-height); + padding: var(--kenta-button-padding); + border-radius: var(--kenta-button-radius); + color: var(--kenta-button-text-initial-color); + background-color: var(--kenta-button-initial-color); + border-color: var(--lotta-border-initial-color); + transition: all ease 0.2s; + border: var(--kenta-button-border, none); + box-shadow: var(--kenta-button-shadow, none); +} +.woocommerce #respond input#submit:disabled, +.woocommerce #respond input#submit.alt:disabled, +.woocommerce .page-content .widget_price_filter .button:disabled, +.woocommerce .page-content .woocommerce-message .button:disabled, +.woocommerce .page-content a.button.alt:disabled, +.woocommerce .page-content button.button.alt:disabled, +.woocommerce .page-content .woocommerce-message .button:disabled, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button:disabled, +.woocommerce a.button:disabled, +.woocommerce a.button.alt:disabled, +.woocommerce button.button:disabled, +.woocommerce button.button.alt:disabled, +.woocommerce input.button:disabled, +.woocommerce input.button.alt:disabled, +.widget_search [type=submit]:disabled, +.wp-block-search__button:disabled, +.wc-block-product-search__button:disabled, +div:not(.is-style-outline) > .wp-block-button__link:disabled, +.wp-block-button.is-style-outline .wp-block-button__link:disabled, +.kenta-form [type=submit]:disabled, +.kenta-raw-html [type=submit]:disabled, +.kenta-article-content button:disabled, +.kenta-article-content [type=submit]:disabled, +.kenta-button:disabled { + cursor: not-allowed; + opacity: 0.65; +} +.woocommerce #respond input#submit:not(:disabled):hover, +.woocommerce #respond input#submit.alt:not(:disabled):hover, +.woocommerce .page-content .widget_price_filter .button:not(:disabled):hover, +.woocommerce .page-content .woocommerce-message .button:not(:disabled):hover, +.woocommerce .page-content a.button.alt:not(:disabled):hover, +.woocommerce .page-content button.button.alt:not(:disabled):hover, +.woocommerce .page-content .woocommerce-message .button:not(:disabled):hover, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button:not(:disabled):hover, +.woocommerce a.button:not(:disabled):hover, +.woocommerce a.button.alt:not(:disabled):hover, +.woocommerce button.button:not(:disabled):hover, +.woocommerce button.button.alt:not(:disabled):hover, +.woocommerce input.button:not(:disabled):hover, +.woocommerce input.button.alt:not(:disabled):hover, +.widget_search [type=submit]:not(:disabled):hover, +.wp-block-search__button:not(:disabled):hover, +.wc-block-product-search__button:not(:disabled):hover, +div:not(.is-style-outline) > .wp-block-button__link:not(:disabled):hover, +.wp-block-button.is-style-outline .wp-block-button__link:not(:disabled):hover, +.kenta-form [type=submit]:not(:disabled):hover, +.kenta-raw-html [type=submit]:not(:disabled):hover, +.kenta-article-content button:not(:disabled):hover, +.kenta-article-content [type=submit]:not(:disabled):hover, +.kenta-button:not(:disabled):hover { + color: var(--kenta-button-text-hover-color); + background-color: var(--kenta-button-hover-color); + border-color: var(--lotta-border-hover-color); + box-shadow: var(--kenta-button-shadow-active, none); +} +.woocommerce #respond input#submit.kenta-button-right, +.woocommerce #respond input#submit.alt.kenta-button-right, +.woocommerce .page-content .widget_price_filter .button.kenta-button-right, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right, +.woocommerce .page-content a.button.alt.kenta-button-right, +.woocommerce .page-content button.button.alt.kenta-button-right, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right, +.woocommerce a.button.kenta-button-right, +.woocommerce a.button.alt.kenta-button-right, +.woocommerce button.button.kenta-button-right, +.woocommerce button.button.alt.kenta-button-right, +.woocommerce input.button.kenta-button-right, +.woocommerce input.button.alt.kenta-button-right, +.widget_search [type=submit].kenta-button-right, +.wp-block-search__button.kenta-button-right, +.wc-block-product-search__button.kenta-button-right, +div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right, +.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right, +.kenta-form [type=submit].kenta-button-right, +.kenta-raw-html [type=submit].kenta-button-right, +.kenta-article-content button.kenta-button-right, +.kenta-article-content [type=submit].kenta-button-right, +.kenta-button.kenta-button-right { + flex-direction: row-reverse; +} +.woocommerce #respond input#submit.kenta-button-right i, .woocommerce #respond input#submit.kenta-button-right svg, +.woocommerce #respond input#submit.alt.kenta-button-right i, +.woocommerce #respond input#submit.alt.kenta-button-right svg, +.woocommerce .page-content .widget_price_filter .button.kenta-button-right i, +.woocommerce .page-content .widget_price_filter .button.kenta-button-right svg, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right i, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right svg, +.woocommerce .page-content a.button.alt.kenta-button-right i, +.woocommerce .page-content a.button.alt.kenta-button-right svg, +.woocommerce .page-content button.button.alt.kenta-button-right i, +.woocommerce .page-content button.button.alt.kenta-button-right svg, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right i, +.woocommerce .page-content .woocommerce-message .button.kenta-button-right svg, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right i, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right svg, +.woocommerce a.button.kenta-button-right i, +.woocommerce a.button.kenta-button-right svg, +.woocommerce a.button.alt.kenta-button-right i, +.woocommerce a.button.alt.kenta-button-right svg, +.woocommerce button.button.kenta-button-right i, +.woocommerce button.button.kenta-button-right svg, +.woocommerce button.button.alt.kenta-button-right i, +.woocommerce button.button.alt.kenta-button-right svg, +.woocommerce input.button.kenta-button-right i, +.woocommerce input.button.kenta-button-right svg, +.woocommerce input.button.alt.kenta-button-right i, +.woocommerce input.button.alt.kenta-button-right svg, +.widget_search [type=submit].kenta-button-right i, +.widget_search [type=submit].kenta-button-right svg, +.wp-block-search__button.kenta-button-right i, +.wp-block-search__button.kenta-button-right svg, +.wc-block-product-search__button.kenta-button-right i, +.wc-block-product-search__button.kenta-button-right svg, +div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right i, +div:not(.is-style-outline) > .wp-block-button__link.kenta-button-right svg, +.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right i, +.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right svg, +.kenta-form [type=submit].kenta-button-right i, +.kenta-form [type=submit].kenta-button-right svg, +.kenta-raw-html [type=submit].kenta-button-right i, +.kenta-raw-html [type=submit].kenta-button-right svg, +.kenta-article-content button.kenta-button-right i, +.kenta-article-content button.kenta-button-right svg, +.kenta-article-content [type=submit].kenta-button-right i, +.kenta-article-content [type=submit].kenta-button-right svg, +.kenta-button.kenta-button-right i, +.kenta-button.kenta-button-right svg { + margin-left: 0.75em; +} +.woocommerce #respond input#submit.kenta-button-left i, .woocommerce #respond input#submit.kenta-button-left svg, +.woocommerce #respond input#submit.alt.kenta-button-left i, +.woocommerce #respond input#submit.alt.kenta-button-left svg, +.woocommerce .page-content .widget_price_filter .button.kenta-button-left i, +.woocommerce .page-content .widget_price_filter .button.kenta-button-left svg, +.woocommerce .page-content .woocommerce-message .button.kenta-button-left i, +.woocommerce .page-content .woocommerce-message .button.kenta-button-left svg, +.woocommerce .page-content a.button.alt.kenta-button-left i, +.woocommerce .page-content a.button.alt.kenta-button-left svg, +.woocommerce .page-content button.button.alt.kenta-button-left i, +.woocommerce .page-content button.button.alt.kenta-button-left svg, +.woocommerce .page-content .woocommerce-message .button.kenta-button-left i, +.woocommerce .page-content .woocommerce-message .button.kenta-button-left svg, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left i, +.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left svg, +.woocommerce a.button.kenta-button-left i, +.woocommerce a.button.kenta-button-left svg, +.woocommerce a.button.alt.kenta-button-left i, +.woocommerce a.button.alt.kenta-button-left svg, +.woocommerce button.button.kenta-button-left i, +.woocommerce button.button.kenta-button-left svg, +.woocommerce button.button.alt.kenta-button-left i, +.woocommerce button.button.alt.kenta-button-left svg, +.woocommerce input.button.kenta-button-left i, +.woocommerce input.button.kenta-button-left svg, +.woocommerce input.button.alt.kenta-button-left i, +.woocommerce input.button.alt.kenta-button-left svg, +.widget_search [type=submit].kenta-button-left i, +.widget_search [type=submit].kenta-button-left svg, +.wp-block-search__button.kenta-button-left i, +.wp-block-search__button.kenta-button-left svg, +.wc-block-product-search__button.kenta-button-left i, +.wc-block-product-search__button.kenta-button-left svg, +div:not(.is-style-outline) > .wp-block-button__link.kenta-button-left i, +div:not(.is-style-outline) > .wp-block-button__link.kenta-button-left svg, +.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left i, +.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left svg, +.kenta-form [type=submit].kenta-button-left i, +.kenta-form [type=submit].kenta-button-left svg, +.kenta-raw-html [type=submit].kenta-button-left i, +.kenta-raw-html [type=submit].kenta-button-left svg, +.kenta-article-content button.kenta-button-left i, +.kenta-article-content button.kenta-button-left svg, +.kenta-article-content [type=submit].kenta-button-left i, +.kenta-article-content [type=submit].kenta-button-left svg, +.kenta-button.kenta-button-left i, +.kenta-button.kenta-button-left svg { + margin-right: 0.75em; +} + +.wp-block-button.is-style-outline .wp-block-button__link, +.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background), +.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) { + border-width: 2px; + border-style: solid; + color: var(--kenta-button-initial-color); + border-color: var(--kenta-button-initial-color); + background-color: transparent; +} + +.components-button.is-primary { + background: var(--wp-admin-theme-color) !important; +} + +.kenta-icon-button { + cursor: pointer; + background-color: transparent; + border: none; + padding: 0; + margin: 0; + box-sizing: border-box; + transition: all ease 0.25s; + width: calc(var(--kenta-icon-button-size) * 1.25); + height: calc(var(--kenta-icon-button-size) * 1.25); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + color: var(--kenta-icon-button-icon-initial-color); +} +.kenta-icon-button:active, .kenta-icon-button:hover { + color: var(--kenta-icon-button-icon-hover-color); +} +.kenta-icon-button.kenta-icon-button-rounded, .kenta-icon-button.kenta-icon-button-square { + width: calc(var(--kenta-icon-button-size) * 2.5); + height: calc(var(--kenta-icon-button-size) * 2.5); + border-radius: var(--kenta-icon-button-radius, 3px); +} +.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid, .kenta-icon-button.kenta-icon-button-square.kenta-icon-button-solid { + background-color: var(--kenta-icon-button-bg-initial-color); +} +.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid:hover, .kenta-icon-button.kenta-icon-button-square.kenta-icon-button-solid:hover { + background-color: var(--kenta-icon-button-bg-hover-color); +} +.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline, .kenta-icon-button.kenta-icon-button-square.kenta-icon-button-outline { + border: var(--kenta-icon-button-outline, 1px solid); + border-color: var(--kenta-icon-button-border-initial-color); +} +.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline:hover, .kenta-icon-button.kenta-icon-button-square.kenta-icon-button-outline:hover { + border-color: var(--kenta-icon-button-border-hover-color); +} +.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid, .kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline { + --kenta-icon-button-radius: 9999px; +} + +.kenta-archive-header { + position: relative; +} +.kenta-archive-header .container { + position: relative; + z-index: 1; +} +.kenta-archive-header.kenta-archive-header-has-overlay::after { + content: ""; + display: block; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.woocommerce .kenta-products, +.card-list, +.kenta-related-posts-list { + margin: 0 calc(-1 * var(--card-gap) / 2); + display: flex; + flex-wrap: wrap; +} + +.woocommerce .kenta-products > .product, +.card-wrapper { + padding: 0 calc(var(--card-gap) / 2) var(--card-gap) calc(var(--card-gap) / 2); +} + +.woocommerce .kenta-products .kenta-product-wrapper, +.card { + display: flex; + flex-direction: column; + background: var(--kenta-base-color); + border-radius: var(--kenta-card-radius, 2px); +} +.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-thumbnail, +.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail, +.card .kenta-product-thumbnail, +.card .card-thumbnail { + flex-shrink: 0; + overflow: hidden; + margin-bottom: var(--card-thumbnail-spacing, 0); +} +.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-thumbnail img, +.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail img, +.card .kenta-product-thumbnail img, +.card .card-thumbnail img { + width: 100%; + transition: all ease 0.3s; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: center; + object-position: center; +} +.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=left] .card-thumbnail, .woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=right] .card-thumbnail, +.card[data-card-layout$=left] .card-thumbnail, +.card[data-card-layout$=right] .card-thumbnail { + margin-bottom: 0; + width: var(--card-thumbnail-width, 45%); +} +.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=left] .card-thumbnail, +.card[data-card-layout$=left] .card-thumbnail { + margin-right: var(--card-thumbnail-spacing, 0); +} +.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=right] .card-thumbnail, +.card[data-card-layout$=right] .card-thumbnail { + margin-left: var(--card-thumbnail-spacing, 0); +} +.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=masonry] .entry-thumbnail, +.card[data-card-layout$=masonry] .entry-thumbnail { + height: auto; +} +.woocommerce .kenta-products .kenta-product-wrapper.card-thumb-motion .card-thumbnail:hover img, +.card.card-thumb-motion .card-thumbnail:hover img { + transform: scale(1.1); +} +.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-content, +.woocommerce .kenta-products .kenta-product-wrapper .card-content, +.card .kenta-product-content, +.card .card-content { + padding: var(--card-content-spacing); +} +.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail.card-content, +.card .card-thumbnail.card-content { + padding: 0 var(--card-content-spacing); +} + +@media (min-width: 768px) { + .card[data-card-layout$=left] { + flex-direction: row; + } + .card[data-card-layout$=right] { + flex-direction: row-reverse; + } +} +.entry-title { + color: var(--kenta-link-initial-color, inherit); + word-break: break-word; +} +.entry-title, .entry-title a { + text-decoration: none; +} + +.entry-divider { + padding-bottom: 24px; +} +.entry-divider.full-width { + margin: 0 calc(-1 * var(--card-content-spacing)); +} +.entry-divider::after { + content: ""; + display: block; + width: 100%; + border-bottom: var(--entry-divider, 1px solid var(--kenta-base-200)); +} + +.cat-taxonomies .entry-tax-item { + transition: all ease 0.25s; + text-decoration: none; + color: var(--kenta-tax-text-initial); +} +.cat-taxonomies .entry-tax-item:hover { + color: var(--kenta-tax-text-hover); +} + +.cat-taxonomies[data-tax-type=badge] .entry-tax-item { + border-radius: var(--kenta-tax-item-radius, 3px); + padding: 0.3em 0.75em; + background: var(--kenta-tax-bg-initial); + display: inline-block; + margin-top: 1px; + margin-bottom: 1px; +} +.cat-taxonomies[data-tax-type=badge] .entry-tax-item:hover { + background: var(--kenta-tax-bg-hover); +} + +.entry-metas i, .entry-metas svg { + display: inline-block; + color: var(--kenta-meta-link-initial-color); + fill: var(--kenta-meta-link-initial-color); + position: relative; + top: -0.1em; + vertical-align: middle; +} +.entry-metas .meta-item { + display: inline-block; +} +.entry-metas .meta-item i, .entry-metas .meta-item svg { + font-size: 1em; + margin-right: 0.65em; +} +.entry-metas .meta-item svg { + width: 1em; + height: 1em; +} +.entry-metas .meta-divider { + width: 1.25em; + height: 1.25em; + margin: 0 0.5em; +} +.entry-metas .meta-divider:last-child { + display: none; +} +.entry-metas .entry-meta-link { + text-decoration: none; + color: var(--kenta-meta-link-initial-color); + transition: all ease 0.25s; +} +.entry-metas .entry-meta-link:hover { + color: var(--kenta-meta-link-hover-color); +} + +.kenta-about-author-bio-box .kenta-author-bio-avatar-link { + display: inline-block; +} +.kenta-about-author-bio-box .kenta-author-bio-avatar { + margin: 0; + border-radius: var(--kenta-author-bio-avatar-radius, 0); +} +.kenta-about-author-bio-box .kenta-author-bio-all-articles { + font-size: 0.85rem; +} +.kenta-about-author-bio-box .kenta-author-bio-name { + margin-top: 1.5rem; + margin-bottom: 1rem; + font-size: 18px; + font-weight: 600; + line-height: 1.5; +} + +.kenta-related-posts-wrap .heading-content { + font-size: 0.875rem; + text-transform: uppercase; + font-weight: 500; + color: var(--kenta-accent-active); +} + +.kenta-post-navigation .nav-links { + color: var(--kenta-navigation-initial-color); + word-break: break-all; +} + +@media (min-width: 1024px) { + .kenta-post-navigation .nav-links { + display: flex; + } +} +.kenta-post-navigation .nav-next { + width: 100%; +} +@media (min-width: 1024px) { + .kenta-post-navigation .nav-previous { + width: 50%; + } +} +.kenta-post-navigation .nav-previous { + flex-shrink: 0; +} +.kenta-post-navigation .nav-previous, +.kenta-post-navigation .nav-next { + display: flex; + align-items: center; +} +.kenta-post-navigation .nav-previous a, +.kenta-post-navigation .nav-next a { + display: flex; + align-items: center; + transition: all ease 0.2s; + text-decoration: none; + fill: var(--kenta-navigation-initial-color); + color: var(--kenta-navigation-initial-color); +} +.kenta-post-navigation .nav-previous a .post-thumbnail, +.kenta-post-navigation .nav-next a .post-thumbnail { + position: relative; + flex-shrink: 0; + width: 4em; + height: 4em; + border-radius: var(--kenta-navigation-thumb-radius, 8px); + border: 1px dashed var(--kenta-base-300); + overflow: hidden; +} +.kenta-post-navigation .nav-previous a .post-thumbnail::after, +.kenta-post-navigation .nav-next a .post-thumbnail::after { + content: ""; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: var(--kenta-navigation-hover-color); + opacity: 0; + transition: all ease 0.25s; +} +.kenta-post-navigation .nav-previous a .post-thumbnail svg, .kenta-post-navigation .nav-previous a .post-thumbnail i, +.kenta-post-navigation .nav-next a .post-thumbnail svg, +.kenta-post-navigation .nav-next a .post-thumbnail i { + display: inline-block; + position: absolute; + top: 50%; + width: 1.2em; + height: 1.2em; + margin-left: -0.6em; + margin-top: -0.6em; + color: var(--kenta-base-color); + fill: var(--kenta-base-color); + z-index: 1; + opacity: 0; + transition: all ease 0.25s; +} +.kenta-post-navigation .nav-previous a .post-thumbnail img, +.kenta-post-navigation .nav-next a .post-thumbnail img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} +.kenta-post-navigation .nav-previous a span, +.kenta-post-navigation .nav-next a span { + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; +} +.kenta-post-navigation .nav-previous a:hover, +.kenta-post-navigation .nav-next a:hover { + fill: var(--kenta-navigation-hover-color); + color: var(--kenta-navigation-hover-color); +} +.kenta-post-navigation .nav-previous a:hover .post-thumbnail::after, +.kenta-post-navigation .nav-next a:hover .post-thumbnail::after { + opacity: 0.75; +} +.kenta-post-navigation .nav-previous a:hover .post-thumbnail svg, .kenta-post-navigation .nav-previous a:hover .post-thumbnail i, +.kenta-post-navigation .nav-next a:hover .post-thumbnail svg, +.kenta-post-navigation .nav-next a:hover .post-thumbnail i { + opacity: 1; + left: 50%; +} +.kenta-post-navigation .nav-previous a svg, .kenta-post-navigation .nav-previous a i { + left: 80%; + flex-shrink: 0; +} +.kenta-post-navigation .nav-next { + text-align: end; + justify-content: flex-end; +} +.kenta-post-navigation .nav-next a { + flex-direction: row-reverse; +} +.kenta-post-navigation .nav-next a svg, .kenta-post-navigation .nav-next a i { + left: 20%; +} +.kenta-post-navigation .item-label { + font-size: 12px; + font-weight: 500; + text-transform: uppercase; + opacity: 0.8; +} +.kenta-post-navigation .item-title { + display: block; + margin-top: 5px; + font-size: 14px; + font-weight: 700; + word-break: break-word; +} + +.woocommerce-pagination, +nav.woocommerce-pagination, +.woocommerce-pagination > .page-numbers, +nav.woocommerce-pagination > .page-numbers, +.kenta-pagination { + display: flex; + padding: var(--kenta-pagination-spacing, 24px) 0; + color: var(--kenta-accent-color); +} +.woocommerce-pagination > li, +nav.woocommerce-pagination > li, +.woocommerce-pagination > .page-numbers > li, +nav.woocommerce-pagination > .page-numbers > li, +.kenta-pagination > li { + display: flex; +} +.woocommerce-pagination li > .page-numbers, +.woocommerce-pagination .kenta-btn, +nav.woocommerce-pagination li > .page-numbers, +nav.woocommerce-pagination .kenta-btn, +.woocommerce-pagination > .page-numbers li > .page-numbers, +.woocommerce-pagination > .page-numbers .kenta-btn, +nav.woocommerce-pagination > .page-numbers li > .page-numbers, +nav.woocommerce-pagination > .page-numbers .kenta-btn, +.kenta-pagination li > .page-numbers, +.kenta-pagination .kenta-btn { + width: 2.5em; + height: 2.5em; + display: flex; + align-items: center; + justify-content: center; + border: var(--kenta-pagination-button-border); + border-radius: var(--kenta-pagination-button-radius); + transition: all ease 0.25s; + color: var(--kenta-pagination-initial-color); + text-decoration: none; +} +.woocommerce-pagination li > .page-numbers svg, +.woocommerce-pagination .kenta-btn svg, +nav.woocommerce-pagination li > .page-numbers svg, +nav.woocommerce-pagination .kenta-btn svg, +.woocommerce-pagination > .page-numbers li > .page-numbers svg, +.woocommerce-pagination > .page-numbers .kenta-btn svg, +nav.woocommerce-pagination > .page-numbers li > .page-numbers svg, +nav.woocommerce-pagination > .page-numbers .kenta-btn svg, +.kenta-pagination li > .page-numbers svg, +.kenta-pagination .kenta-btn svg { + fill: var(--kenta-pagination-initial-color); +} +.woocommerce-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +nav.woocommerce-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +nav.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +.woocommerce-pagination > .page-numbers li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +.woocommerce-pagination > .page-numbers .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +nav.woocommerce-pagination > .page-numbers li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +nav.woocommerce-pagination > .page-numbers .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +.kenta-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover, +.kenta-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover { + border-color: var(--kenta-pagination-accent-color); + color: var(--kenta-pagination-accent-color); +} +.woocommerce-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +nav.woocommerce-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +nav.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +.woocommerce-pagination > .page-numbers li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +.woocommerce-pagination > .page-numbers .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +nav.woocommerce-pagination > .page-numbers li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +nav.woocommerce-pagination > .page-numbers .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +.kenta-pagination li > .page-numbers:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg, +.kenta-pagination .kenta-btn:not(.kenta-btn-disabled, .kenta-btn-active, .current):hover svg { + fill: var(--kenta-pagination-accent-color); +} +.woocommerce-pagination li > .page-numbers.current, .woocommerce-pagination li > .page-numbers.kenta-btn-active, +.woocommerce-pagination .kenta-btn.current, +.woocommerce-pagination .kenta-btn.kenta-btn-active, +nav.woocommerce-pagination li > .page-numbers.current, +nav.woocommerce-pagination li > .page-numbers.kenta-btn-active, +nav.woocommerce-pagination .kenta-btn.current, +nav.woocommerce-pagination .kenta-btn.kenta-btn-active, +.woocommerce-pagination > .page-numbers li > .page-numbers.current, +.woocommerce-pagination > .page-numbers li > .page-numbers.kenta-btn-active, +.woocommerce-pagination > .page-numbers .kenta-btn.current, +.woocommerce-pagination > .page-numbers .kenta-btn.kenta-btn-active, +nav.woocommerce-pagination > .page-numbers li > .page-numbers.current, +nav.woocommerce-pagination > .page-numbers li > .page-numbers.kenta-btn-active, +nav.woocommerce-pagination > .page-numbers .kenta-btn.current, +nav.woocommerce-pagination > .page-numbers .kenta-btn.kenta-btn-active, +.kenta-pagination li > .page-numbers.current, +.kenta-pagination li > .page-numbers.kenta-btn-active, +.kenta-pagination .kenta-btn.current, +.kenta-pagination .kenta-btn.kenta-btn-active { + background: var(--kenta-pagination-accent-color); + border-color: var(--kenta-pagination-accent-color); + color: var(--kenta-pagination-active-color); +} +.woocommerce-pagination li > .page-numbers.current svg, .woocommerce-pagination li > .page-numbers.kenta-btn-active svg, +.woocommerce-pagination .kenta-btn.current svg, +.woocommerce-pagination .kenta-btn.kenta-btn-active svg, +nav.woocommerce-pagination li > .page-numbers.current svg, +nav.woocommerce-pagination li > .page-numbers.kenta-btn-active svg, +nav.woocommerce-pagination .kenta-btn.current svg, +nav.woocommerce-pagination .kenta-btn.kenta-btn-active svg, +.woocommerce-pagination > .page-numbers li > .page-numbers.current svg, +.woocommerce-pagination > .page-numbers li > .page-numbers.kenta-btn-active svg, +.woocommerce-pagination > .page-numbers .kenta-btn.current svg, +.woocommerce-pagination > .page-numbers .kenta-btn.kenta-btn-active svg, +nav.woocommerce-pagination > .page-numbers li > .page-numbers.current svg, +nav.woocommerce-pagination > .page-numbers li > .page-numbers.kenta-btn-active svg, +nav.woocommerce-pagination > .page-numbers .kenta-btn.current svg, +nav.woocommerce-pagination > .page-numbers .kenta-btn.kenta-btn-active svg, +.kenta-pagination li > .page-numbers.current svg, +.kenta-pagination li > .page-numbers.kenta-btn-active svg, +.kenta-pagination .kenta-btn.current svg, +.kenta-pagination .kenta-btn.kenta-btn-active svg { + fill: var(--kenta-pagination-active-color); +} + +.woocommerce-pagination > li, +nav.woocommerce-pagination > li, +.woocommerce-pagination > .page-numbers > li, +nav.woocommerce-pagination > .page-numbers > li { + margin-right: 0.5em; +} +.woocommerce-pagination > li:last-child, +nav.woocommerce-pagination > li:last-child, +.woocommerce-pagination > .page-numbers > li:last-child, +nav.woocommerce-pagination > .page-numbers > li:last-child { + margin-right: 0; +} + +.kenta-pagination .kenta-btn { + margin-right: 0.5em; +} +.kenta-pagination .kenta-btn.kenta-prev-btn-text, .kenta-pagination .kenta-btn.kenta-next-btn-text { + width: auto; + padding: 0 1.25em; +} +.kenta-pagination .kenta-btn:last-child { + margin-right: 0; +} +.kenta-pagination .kenta-btn.kenta-btn-disabled { + opacity: 0.5; +} + +.kenta-article-header-background::after { + content: " "; + position: absolute; + display: block; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.kenta-article-header-background .kenta-article-header .entry-title { + --kenta-link-initial-color: var(--kenta-article-header-override); +} +.kenta-article-header-background .kenta-article-header .entry-title > * { + color: inherit; +} +.kenta-article-header-background .kenta-article-header .entry-metas { + --kenta-meta-link-initial-color: var(--kenta-article-header-override); +} +.kenta-article-header-background .article-featured-image { + position: absolute; + left: 0; + top: 0; + width: 100%; + max-width: 100%; + height: 100%; + padding: 0; +} +.kenta-article-header-background .article-featured-image img { + width: 100%; + height: 100%; + margin: 0 !important; +} + +.kenta-form-classic { + --kenta-form-border-top: 1px solid var(--kenta-form-border-color); + --kenta-form-border-right: 1px solid var(--kenta-form-border-color); + --kenta-form-border-bottom: 1px solid var(--kenta-form-border-color); + --kenta-form-border-left: 1px solid var(--kenta-form-border-color); + --kenta-form-checkbox-border-top: 1px solid var(--kenta-form-border-color); + --kenta-form-checkbox-border-right: 1px solid var(--kenta-form-border-color); + --kenta-form-checkbox-border-bottom: 1px solid var(--kenta-form-border-color); + --kenta-form-checkbox-border-left: 1px solid var(--kenta-form-border-color); +} + +.kenta-article-content .kenta-form-control, .kenta-article-content textarea, .kenta-article-content select, .kenta-article-content .select2-selection--single, .kenta-article-content [type=url], .kenta-article-content [type=email], .kenta-article-content [type=tel], .kenta-article-content [type=password], .kenta-article-content [type=number], .kenta-article-content [type=search], .kenta-article-content [type=text], +.kenta-widget .kenta-form-control, +.kenta-widget textarea, +.kenta-widget select, +.kenta-widget .select2-selection--single, +.kenta-widget [type=url], +.kenta-widget [type=email], +.kenta-widget [type=tel], +.kenta-widget [type=password], +.kenta-widget [type=number], +.kenta-widget [type=search], +.kenta-widget [type=text], +form .kenta-form-control, +form textarea, +form select, +form .select2-selection--single, +form [type=url], +form [type=email], +form [type=tel], +form [type=password], +form [type=number], +form [type=search], +form [type=text], +.kenta-form .kenta-form-control, +.kenta-form textarea, +.kenta-form select, +.kenta-form .select2-selection--single, +.kenta-form [type=url], +.kenta-form [type=email], +.kenta-form [type=tel], +.kenta-form [type=password], +.kenta-form [type=number], +.kenta-form [type=search], +.kenta-form [type=text] { + display: block; + width: 100%; + height: var(--kenta-form-control-height, 45px); + transition: all ease 0.25s; + border-radius: var(--kenta-form-control-radius, 2px); + border-top: var(--kenta-form-border-top); + border-right: var(--kenta-form-border-right); + border-bottom: var(--kenta-form-border-bottom); + border-left: var(--kenta-form-border-left); + background: var(--kenta-form-background-color); + padding: var(--kenta-form-control-paddding, 0.3em 0.75em); + color: var(--kenta-form-text-color, inherit); + font-size: inherit; +} +.kenta-article-content .kenta-form-control:focus, .kenta-article-content textarea:focus, .kenta-article-content select:focus, .kenta-article-content .select2-selection--single:focus, .kenta-article-content [type=url]:focus, .kenta-article-content [type=email]:focus, .kenta-article-content [type=tel]:focus, .kenta-article-content [type=password]:focus, .kenta-article-content [type=number]:focus, .kenta-article-content [type=search]:focus, .kenta-article-content [type=text]:focus, +.kenta-widget .kenta-form-control:focus, +.kenta-widget textarea:focus, +.kenta-widget select:focus, +.kenta-widget .select2-selection--single:focus, +.kenta-widget [type=url]:focus, +.kenta-widget [type=email]:focus, +.kenta-widget [type=tel]:focus, +.kenta-widget [type=password]:focus, +.kenta-widget [type=number]:focus, +.kenta-widget [type=search]:focus, +.kenta-widget [type=text]:focus, +form .kenta-form-control:focus, +form textarea:focus, +form select:focus, +form .select2-selection--single:focus, +form [type=url]:focus, +form [type=email]:focus, +form [type=tel]:focus, +form [type=password]:focus, +form [type=number]:focus, +form [type=search]:focus, +form [type=text]:focus, +.kenta-form .kenta-form-control:focus, +.kenta-form textarea:focus, +.kenta-form select:focus, +.kenta-form .select2-selection--single:focus, +.kenta-form [type=url]:focus, +.kenta-form [type=email]:focus, +.kenta-form [type=tel]:focus, +.kenta-form [type=password]:focus, +.kenta-form [type=number]:focus, +.kenta-form [type=search]:focus, +.kenta-form [type=text]:focus { + outline: none; + box-shadow: none; + border-color: var(--kenta-form-active-color); +} +.kenta-article-content textarea, +.kenta-widget textarea, +form textarea, +.kenta-form textarea { + height: auto; +} +.kenta-article-content [type=checkbox], +.kenta-widget [type=checkbox], +form [type=checkbox], +.kenta-form [type=checkbox] { + border-radius: 3px; + transition: all ease 0.25s; + margin-right: 0.5rem; + width: 20px; + height: 20px; + vertical-align: center; + border-top: var(--kenta-form-checkbox-border-top); + border-right: var(--kenta-form-checkbox-border-right); + border-bottom: var(--kenta-form-checkbox-border-bottom); + border-left: var(--kenta-form-checkbox-border-left); + background-color: var(--kenta-form-background-color); +} +.kenta-article-content [type=checkbox]:focus, .kenta-article-content [type=checkbox]:checked, +.kenta-widget [type=checkbox]:focus, +.kenta-widget [type=checkbox]:checked, +form [type=checkbox]:focus, +form [type=checkbox]:checked, +.kenta-form [type=checkbox]:focus, +.kenta-form [type=checkbox]:checked { + --tw-ring-color: var(--kenta-form-active-color); +} +.kenta-article-content [type=checkbox]:checked, +.kenta-widget [type=checkbox]:checked, +form [type=checkbox]:checked, +.kenta-form [type=checkbox]:checked { + background-color: var(--kenta-form-active-color); +} +.kenta-article-content [type=submit], +.kenta-widget [type=submit], +form [type=submit], +.kenta-form [type=submit] { + line-height: 1; +} + +.kenta-input-group { + position: relative; + display: flex; + width: 100%; +} +.kenta-input-group [type=submit]:not(:last-child), .kenta-input-group .kenta-form-control:not(:last-child), .kenta-input-group textarea:not(:last-child), .kenta-input-group select:not(:last-child), .kenta-input-group .select2-selection--single:not(:last-child), .kenta-input-group [type=url]:not(:last-child), .kenta-input-group [type=email]:not(:last-child), .kenta-input-group [type=tel]:not(:last-child), .kenta-input-group [type=password]:not(:last-child), .kenta-input-group [type=number]:not(:last-child), .kenta-input-group [type=search]:not(:last-child), .kenta-input-group [type=text]:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.kenta-input-group [type=submit]:not(:first-child), .kenta-input-group .kenta-form-control:not(:first-child), .kenta-input-group textarea:not(:first-child), .kenta-input-group select:not(:first-child), .kenta-input-group .select2-selection--single:not(:first-child), .kenta-input-group [type=url]:not(:first-child), .kenta-input-group [type=email]:not(:first-child), .kenta-input-group [type=tel]:not(:first-child), .kenta-input-group [type=password]:not(:first-child), .kenta-input-group [type=number]:not(:first-child), .kenta-input-group [type=search]:not(:first-child), .kenta-input-group [type=text]:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.kenta-full-width-submit input[type=submit] { + justify-content: center; + width: 100%; +} + +.kenta-inner-label { + position: relative; +} +.kenta-inner-label label { + position: absolute; + left: 0; + top: 0; + height: 100%; + max-height: var(--kenta-form-control-height, 45px); + display: flex; + align-items: center; + padding: 0 12px; + opacity: 0.85; + transition: all ease 0.25s; + z-index: 1; +} +.kenta-inner-label:focus-within label { + opacity: 0; + visibility: hidden; + transform: translate3d(20px, 0, 0); +} + +.kenta-not-empty-field label { + opacity: 0; + visibility: hidden; + transform: translate3d(20px, 0, 0); +} + +.mc4wp-response { + text-align: center; +} + +.kenta-newsletter { + --kenta-form-control-paddding: 0.75em 2em; + --kenta-form-control-radius: 9999px; + --kenta-form-control-height: auto; +} +.kenta-newsletter .kenta-inner-label label { + padding: 0 2em; +} +.kenta-newsletter [type=submit] { + --kenta-button-padding: 8px 36px 8px 36px !important; + --kenta-button-radius: 9999px !important; +} + +.kenta-comments-link, .kenta-comments-area .comment-respond .comment-reply-title small, .kenta-comments-area .comment-list .reply, .kenta-comments-area .comment-list .comment-meta .comment-metadata a, .kenta-comments-area .comment-list .comment-meta .comment-author .fn .url, .kenta-comments-area .comment-list .comment-body a { + transition: all ease 0.25s; + color: var(--kenta-comments-initial-color); +} +.kenta-comments-link:hover, .kenta-comments-area .comment-respond .comment-reply-title small:hover, .kenta-comments-area .comment-list .reply:hover, .kenta-comments-area .comment-list .comment-meta .comment-metadata a:hover, .kenta-comments-area .comment-list .comment-meta .comment-author .fn .url:hover, .kenta-comments-area .comment-list .comment-body a:hover { + color: var(--kenta-comments-hover-color); +} + +.kenta-comments-area { + --kenta-comments-initial-color: var(--kenta-accent-color); + --kenta-comments-hover-color: var(--kenta-primary-color); + color: var(--kenta-comments-initial-color); +} +.kenta-comments-area ol { + list-style: none; +} +.kenta-comments-area .comment-list > .comment:first-child > .comment-body { + margin-top: 0; +} +.kenta-comments-area .comments-title, +.kenta-comments-area .comment-reply-title { + position: relative; + border-bottom: 1px solid var(--kenta-base-300); + padding-bottom: 8px; + font-size: 0.875rem; + text-transform: uppercase; + font-weight: 500; +} +.kenta-comments-area .comments-title::after, +.kenta-comments-area .comment-reply-title::after { + content: " "; + display: block; + width: 3em; + height: 4px; + background: var(--kenta-primary-color); + position: absolute; + left: 0; + bottom: -1px; +} +.kenta-comments-area .comment-list .comment-body { + position: relative; + overflow-wrap: break-word; + margin-bottom: 12px; + border-bottom-width: 2px; + border-color: var(--kenta-base-100); + padding: 12px; +} +.kenta-comments-area .comment-list > .comment:first-child > .comment-body { + margin-top: 0; +} +.kenta-comments-area .comment-list .children { + padding-left: 24px; +} +.kenta-comments-area .comment-list .comment-meta::after { + display: block; + content: ""; + clear: both; +} +.kenta-comments-area .comment-list .comment-meta a { + text-decoration: none; +} +.kenta-comments-area .comment-list .comment-meta .comment-author img { + width: 46px !important; + height: 46px !important; + float: left; + margin: 0px; + margin-right: 1rem; + display: block; + border-radius: 9999px; + padding: 0px; +} +.kenta-comments-area .comment-list .comment-meta .comment-author .says { + display: none; +} +.kenta-comments-area .comment-list .comment-meta .comment-author .fn { + display: inline-block; + font-weight: 700; +} +.kenta-comments-area .comment-list .comment-meta .comment-metadata { + font-size: 0.75rem; + line-height: 1rem; +} +.kenta-comments-area .comment-list .comment-meta .edit-link { + margin-left: 10px; +} +.kenta-comments-area .comment-list .comment-meta .comment-awaiting-moderation { + margin-top: 24px; + display: block; + font-size: 0.875rem; + line-height: 1.25rem; +} +.kenta-comments-area .comment-list .comment-content { + margin-top: 12px; + padding-left: 12px; + padding-right: 12px; + font-size: 0.875rem; + line-height: 1.25rem; +} +.kenta-comments-area .comment-list .comment-content p { + margin: 0; +} +.kenta-comments-area .comment-list .reply { + margin-top: 12px; + display: inline-block; + font-size: 0.875rem; + line-height: 1.25rem; + -webkit-text-decoration-line: none; + text-decoration-line: none; +} +.kenta-comments-area .comment-list .reply, +.kenta-comments-area .comment-list .reply a { + text-decoration: none; +} +.kenta-comments-area .comment-list .reply .comment-reply-link { + padding-left: 8px; +} +.kenta-comments-area .comment-respond .comment-reply-title { + margin-top: 24px; + margin-bottom: 24px; +} +.kenta-comments-area .comment-respond .comment-reply-title small { + padding-left: 0.5rem; + padding-right: 0.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + font-weight: 400; +} +.kenta-comments-area .comment-respond .logged-in-as { + display: none; +} +.kenta-comments-area .comment-respond .comment-notes { + font-size: 0.875rem; + line-height: 1.25rem; +} +.kenta-comments-area .comment-respond .form-submit { + padding-top: 12px; + padding-bottom: 12px; +} +.kenta-comments-area .comment-respond .comment-form-cookies-consent label { + display: inline-block; + font-size: 0.875rem; + line-height: 1.25rem; +} +.kenta-comments-area .comment-form .required { + color: #dd0000; +} +.kenta-comments-area .comment-form > p { + margin-bottom: 24px; +} +.kenta-comments-area .comment-form .comment-form-comment, +.kenta-comments-area .comment-form .comment-form-author, +.kenta-comments-area .comment-form .comment-form-email, +.kenta-comments-area .comment-form .comment-form-url { + position: relative; +} +.kenta-comments-area .comment-form .comment-form-comment label, +.kenta-comments-area .comment-form .comment-form-author label, +.kenta-comments-area .comment-form .comment-form-email label, +.kenta-comments-area .comment-form .comment-form-url label { + position: absolute; + left: 0; + top: 0; + height: 100%; + max-height: var(--kenta-form-control-height, 45px); + display: flex; + align-items: center; + padding: 0 12px; + opacity: 0.85; + transition: all ease 0.25s; + z-index: 1; +} +.kenta-comments-area .comment-form .comment-form-comment:focus-within label, +.kenta-comments-area .comment-form .comment-form-author:focus-within label, +.kenta-comments-area .comment-form .comment-form-email:focus-within label, +.kenta-comments-area .comment-form .comment-form-url:focus-within label { + opacity: 0; + visibility: hidden; + transform: translate3d(20px, 0, 0); +} +.kenta-newsletter .kenta-comments-area .comment-form .comment-form-comment label, .kenta-newsletter +.kenta-comments-area .comment-form .comment-form-author label, .kenta-newsletter +.kenta-comments-area .comment-form .comment-form-email label, .kenta-newsletter +.kenta-comments-area .comment-form .comment-form-url label { + padding: 0 2em; +} + +.kenta-heading .heading-content { + position: relative; +} +.kenta-heading .heading-content::after { + content: ""; + display: block; + background: var(--kenta-heading-indicator, var(--kenta-primary-color)); +} +.kenta-heading.kenta-heading-style-1 .heading-content { + padding-bottom: 8px; + border-bottom: 1px solid var(--kenta-base-200); +} +.kenta-heading.kenta-heading-style-1 .heading-content::after { + position: absolute; + width: 3em; + height: 4px; + left: 0; + bottom: -1px; +} +.kenta-heading.kenta-heading-style-2 .heading-content { + padding-left: 0.65em; +} +.kenta-heading.kenta-heading-style-2 .heading-content::after { + position: absolute; + width: 4px; + height: 1.2em; + left: 0; + top: 50%; + margin-top: -0.6em; +} + +.popup-triangle { + content: " "; + bottom: 100%; + border-width: 0.65em; + border-style: solid; + border-bottom-color: var(--kenta-popup-color, var(--kenta-base-300)); + border-top-color: transparent; + border-left-color: transparent; + border-right-color: transparent; + position: absolute; +} + +.wp-block-details summary { + display: flex; + justify-content: space-between; + align-items: center; + position: relative; + cursor: pointer; + border-radius: inherit; +} +.wp-block-details summary::-webkit-details-marker { + display: none; +} +.wp-block-details summary::marker { + display: none; + content: ""; +} +.wp-block-details summary::after { + content: ""; + display: inline-block; + position: absolute; + inset: 0 0 0 auto; + opacity: 1; + transition: transform 0.1s ease-in; + height: 1.5em; + width: 1.5em; + margin-right: -0.333em; + transform: rotate(0deg); + mask-image: url('data:image/svg+xml;utf8,'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-size: contain; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + -webkit-mask-image: url('data:image/svg+xml;utf8,'); + background: currentcolor; +} +.wp-block-details[open]:not(.closing) summary::after { + transform: rotate(180deg); +} +.wp-block-details section:not([hidden]) { + display: block; +} + +.kenta-widget { + position: relative; + margin-bottom: var(--kenta-widgets-spacing, 0); + color: var(--kenta-widgets-text-color); +} +.kenta-widget ul, +.kenta-widget ol { + margin: 0; + padding: 0; + list-style: outside none none; +} +.kenta-widget li, .kenta-widget ul > li, .kenta-widget ol > li { + padding: 0; +} +.kenta-widget a { + transition: all ease 0.25s; + color: var(--kenta-widgets-link-initial, var(--kenta-primary-color)); +} +.kenta-widget a:hover { + color: var(--kenta-widgets-link-hover, var(--kenta-primary-active)); +} +.kenta-widget .widget-title { + margin: 0px; + margin-bottom: 12px; +} +.kenta-widget [type=text], +.kenta-widget [type=email], +.kenta-widget [type=url], +.kenta-widget [type=password], +.kenta-widget [type=number], +.kenta-widget [type=date], +.kenta-widget [type=datetime-local], +.kenta-widget [type=month], +.kenta-widget [type=search], +.kenta-widget [type=tel], +.kenta-widget [type=time], +.kenta-widget [type=week], +.kenta-widget [multiple], +.kenta-widget textarea, +.kenta-widget select { + display: block; + width: 100%; + transition: all ease 0.25s; + border-radius: var(--kenta-form-control-radius, 2px); + border: 1px solid var(--kenta-form-border-color, var(--kenta-base-200)); + background-color: transparent; +} +.kenta-widget [type=text]:focus, +.kenta-widget [type=email]:focus, +.kenta-widget [type=url]:focus, +.kenta-widget [type=password]:focus, +.kenta-widget [type=number]:focus, +.kenta-widget [type=date]:focus, +.kenta-widget [type=datetime-local]:focus, +.kenta-widget [type=month]:focus, +.kenta-widget [type=search]:focus, +.kenta-widget [type=tel]:focus, +.kenta-widget [type=time]:focus, +.kenta-widget [type=week]:focus, +.kenta-widget [multiple]:focus, +.kenta-widget textarea:focus, +.kenta-widget select:focus { + outline: none; + box-shadow: none; + border-color: var(--kenta-form-active-color, var(--kenta-primary-color)); +} + +.widget_tag_cloud a, +.wp-block-tag-cloud a, +.widget_product_tag_cloud a { + text-decoration: none; + display: inline-block; + margin-bottom: 0.5em; + margin-right: 0.5em; + padding: 0.25em 1em; + transition: all ease 0.25s; + border-radius: 2px; + color: var(--kenta-tag-cloud-text-initial, var(--kenta-accent-color)); + background-color: var(--kenta-tag-cloud-background-initial, var(--kenta-base-color)); + border: 1px solid var(--kenta-tag-cloud-border-initial-color, var(--kenta-base-200)); +} +.widget_tag_cloud a:hover, +.wp-block-tag-cloud a:hover, +.widget_product_tag_cloud a:hover { + color: var(--kenta-tag-cloud-text-hover, var(--kenta-base-color)); + background-color: var(--kenta-tag-cloud-background-hover, var(--kenta-primary-color)); + border-color: var(--kenta-tag-cloud-border-hover-color, var(--kenta-primary-color)); +} + +.widget_rss .widget-title a.rsswidget:first-of-type { + display: none; +} +.widget_rss li { + margin-bottom: 12px; +} + +.gallery { + margin-bottom: 10px; + overflow: hidden; + list-style: none !important; + display: flex; + flex-wrap: wrap; +} + +.gallery-item { + position: relative; +} +.gallery-item img { + width: 100%; + margin: 0; +} +.gallery-item * { + display: block; + height: 100%; +} + +.wp-caption { + position: relative; +} + +figcaption, +.wp-caption figcaption, +.wp-caption-text, +.gallery-caption, +.wp-caption-text { + width: 100%; + margin-top: 0; +} + +body:not(.elementor-page) .gallery-item { + display: inline-block; + vertical-align: top; + padding: 0 !important; + margin-right: 5px; + margin-bottom: 5px; + text-align: center; +} + +.gallery-columns-1 .gallery-item { + float: none !important; + width: 100%; +} + +.gallery-columns-2 .gallery-item { + width: calc((100% - 5px) / 2 - 1px); +} + +.gallery-columns-3 .gallery-item { + width: calc((100% - 10px) / 3 - 1px); +} + +.gallery-columns-4 .gallery-item { + width: calc((100% - 15px) / 4 - 1px); +} + +.gallery-columns-5 .gallery-item { + width: calc((100% - 20px) / 5 - 1px); +} + +.gallery-columns-6 .gallery-item { + width: calc((100% - 25px) / 6 - 1px); +} + +.gallery-columns-7 .gallery-item { + width: calc((100% - 30px) / 7 - 1px); +} + +.gallery-columns-8 .gallery-item { + width: calc((100% - 35px) / 8 - 1px); +} + +.gallery-columns-9 .gallery-item { + width: calc((100% - 40px) / 9 - 1px); +} + +.gallery-columns-2 .gallery-item:nth-child(2n+2), +.gallery-columns-3 .gallery-item:nth-child(3n+3), +.gallery-columns-4 .gallery-item:nth-child(4n+4), +.gallery-columns-5 .gallery-item:nth-child(5n+5), +.gallery-columns-6 .gallery-item:nth-child(6n+6), +.gallery-columns-7 .gallery-item:nth-child(7n+7), +.gallery-columns-8 .gallery-item:nth-child(8n+8), +.gallery-columns-9 .gallery-item:nth-child(9n+9) { + margin-right: 0 !important; +} + +.gallery-columns-2 .gallery-item:nth-child(2n+2) + li, +.gallery-columns-3 .gallery-item:nth-child(3n+3) + li, +.gallery-columns-4 .gallery-item:nth-child(4n+4) + li, +.gallery-columns-5 .gallery-item:nth-child(5n+5) + li, +.gallery-columns-6 .gallery-item:nth-child(6n+6) + li, +.gallery-columns-7 .gallery-item:nth-child(7n+7) + li, +.gallery-columns-8 .gallery-item:nth-child(8n+8) + li, +.gallery-columns-9 .gallery-item:nth-child(9n+9) + li { + clear: both; +} + +.kenta-widget.widget_search label { + display: block; +} +.kenta-widget.widget_search button[type=submit] { + height: 100%; +} +.kenta-widget form.search-form { + position: relative; +} +.kenta-widget form.search-form button { + position: absolute; + top: 0; + right: 0; +} + +/* Classic List Widget -------------------------- */ +.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) { + list-style: none; + padding: 0; +} +.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) > li { + padding: var(--widget-list-pt, 0.2rem) var(--widget-list-pr, 1rem) var(--widget-list-pb, 0.2rem) var(--widget-list-pl, 1.4rem); + position: relative; +} +.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) li a { + position: static; +} +.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) li:not(.menu-item-has-children)::before { + content: "\f02b"; + display: inline-block; + font-size: 0.6rem; + left: 0; + position: absolute; + top: 50%; + margin-top: -0.3rem; + color: var(--kenta-primary-color); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; + font-family: "Font Awesome 6 Free"; + font-weight: 900; +} +.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, +.blocks-gallery-grid, +.wc-block-grid__products, +.wc-block-product-categories-list) .sub-menu { + padding-left: 1rem; +} +.kenta-widget:not(.woocommerce) ul.wp-block-archives li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_archive ul li::before { + content: "\f0c6" !important; + font-size: 13px; + top: 9px; +} +.kenta-widget:not(.woocommerce) ul.wp-block-categories li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_categories ul li::before { + content: "\f07c" !important; +} +.kenta-widget:not(.woocommerce) ul.wp-block-page-list li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_pages ul li::before { + content: "\f15b" !important; +} +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_meta ul li::before { + content: "\f0c1" !important; +} +.kenta-widget:not(.woocommerce) ul.wp-block-latest-comments li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_comments ul li::before { + content: "\f086" !important; +} +.kenta-widget:not(.woocommerce) ul.wp-block-latest-posts li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_entries ul li::before { + content: "\f02b" !important; +} +.kenta-widget:not(.woocommerce) ul.wp-block-rss li .wp-block-rss__item-title { + margin: 0; +} +.kenta-widget:not(.woocommerce) ul.wp-block-rss li::before, +.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_rss ul li::before { + content: "\f09e" !important; +} + +.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li { + padding-left: 0; + padding-right: 1.4rem; +} +.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li:not(.menu-item-has-children)::before { + left: auto; + right: 0; +} +.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links, .blocks-gallery-grid, .wc-block-grid__products) li:not(.menu-item-has-children) a::after { + right: auto; + left: 0; + content: "\f053"; +} + +.kenta-to-top { + position: fixed; + text-decoration: none; + bottom: var(--kenta-to-top-bottom-offset, 40px); + color: var(--kenta-to-top-icon-initial); + background-color: var(--kenta-to-top-background-initial); + transition: all ease 0.25s; + z-index: 999; + font-size: var(--kenta-to-top-icon-size); + line-height: 0; + display: flex; + justify-content: center; + align-items: center; + width: 3em; + height: 3em; + opacity: 0; + visibility: hidden; +} +.kenta-to-top.active { + opacity: 1; + visibility: visible; +} +.kenta-to-top [data-shortcut] { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; +} +.kenta-to-top svg { + transition: fill ease 0.25s; +} +.kenta-to-top.kenta-to-top-left { + left: var(--kenta-to-top-side-offset, 40px); +} +.kenta-to-top.kenta-to-top-right { + right: var(--kenta-to-top-side-offset, 40px); +} +.kenta-to-top svg { + width: var(--kenta-to-top-icon-size); + height: var(--kenta-to-top-icon-size); + fill: var(--kenta-to-top-icon-initial); +} +.kenta-to-top:hover { + background-color: var(--kenta-to-top-background-hover); + color: var(--kenta-to-top-icon-hover); + border-color: var(--lotta-border-hover-color); +} +.kenta-to-top:hover svg { + fill: var(--kenta-to-top-icon-hover); +} + +.kenta-socials { + display: flex; +} +.kenta-socials .kenta-social-link { + margin-right: var(--kenta-social-icons-spacing, 0); + text-decoration: none; +} +.kenta-socials .kenta-social-link:last-of-type { + margin-right: 0; +} +.kenta-socials .kenta-social-link .kenta-social-icon { + transition: all ease 0.2s, opacity ease 0.2s; + font-size: var(--kenta-social-icons-size, 12px); + color: var(--kenta-official-color); +} +.kenta-socials .kenta-social-link.kenta-socials-official:hover .kenta-social-icon svg { + opacity: 0.8; +} +.kenta-socials.kenta-socials-custom .kenta-social-link .kenta-social-icon { + color: var(--kenta-social-icon-initial-color); +} +.kenta-socials.kenta-socials-custom .kenta-social-link:hover .kenta-social-icon { + color: var(--kenta-social-icon-hover-color); +} +.kenta-socials.kenta-socials-rounded .kenta-social-icon, .kenta-socials.kenta-socials-square .kenta-social-icon { + border-radius: var(--kenta-social-icons-radius, 3px); + width: calc(var(--kenta-social-icons-size) * 2.5); + height: calc(var(--kenta-social-icons-size) * 2.5); + display: flex; + align-items: center; + justify-content: center; +} +.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon, .kenta-socials.kenta-socials-square.kenta-socials-solid .kenta-social-icon { + background-color: var(--kenta-social-bg-initial-color); +} +.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon:hover, .kenta-socials.kenta-socials-square.kenta-socials-solid .kenta-social-icon:hover { + background-color: var(--kenta-social-bg-hover-color); +} +.kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon, .kenta-socials.kenta-socials-square.kenta-socials-outline .kenta-social-icon { + border: var(--kenta-social-icons-outline, 1px solid); + border-color: var(--kenta-social-border-initial-color); +} +.kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon:hover, .kenta-socials.kenta-socials-square.kenta-socials-outline .kenta-social-icon:hover { + border-color: var(--kenta-social-border-hover-color); +} +.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon, .kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon { + --kenta-social-icons-radius: 9999px; +} + +.kenta-particles-canvas { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: var(--kenta-particles-canvas-z-index, 1); +} + +.visible { + visibility: visible; +} + +.static { + position: static; +} + +.fixed { + position: fixed; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.right-0 { + right: 0px; +} + +.z-\[1\] { + z-index: 1; +} + +.z-\[9\] { + z-index: 9; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.my-gutter { + margin-top: 24px; + margin-bottom: 24px; +} + +.mb-gutter { + margin-bottom: 24px; +} + +.mb-0 { + margin-bottom: 0px; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mb-half-gutter { + margin-bottom: 12px; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mt-half-gutter { + margin-top: 12px; +} + +.mt-60 { + margin-top: 15rem; +} + +.mb-60 { + margin-bottom: 15rem; +} + +.mt-10 { + margin-top: 2.5rem; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.inline { + display: inline; +} + +.flex { + display: flex; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-full { + height: 100%; +} + +.w-full { + width: 100%; +} + +.max-w-full { + max-width: 100%; +} + +.max-w-screen-md { + max-width: 768px; +} + +.shrink-0 { + flex-shrink: 0; +} + +.flex-grow { + flex-grow: 1; +} + +.transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.resize { + resize: both; +} + +.flex-col { + flex-direction: column; +} + +.flex-wrap { + flex-wrap: wrap; +} + +.items-center { + align-items: center; +} + +.items-stretch { + align-items: stretch; +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-x-hidden { + overflow-x: hidden; +} + +.break-words { + overflow-wrap: break-word; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-full { + border-radius: 9999px; +} + +.border { + border-width: 1px; +} + +.border-base-300 { + border-color: var(--kenta-base-300); +} + +.bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity)); +} + +.bg-base-color { + background-color: var(--kenta-base-color); +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.object-center { + -o-object-position: center; + object-position: center; +} + +.p-half-gutter { + padding: 12px; +} + +.px-gutter { + padding-left: 24px; + padding-right: 24px; +} + +.pl-gutter { + padding-left: 24px; +} + +.pr-gutter { + padding-right: 24px; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.text-right { + text-align: right; +} + +.text-justify { + text-align: justify; +} + +.font-sans { + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.font-bold { + font-weight: 700; +} + +.font-normal { + font-weight: 400; +} + +.uppercase { + text-transform: uppercase; +} + +.capitalize { + text-transform: capitalize; +} + +.leading-none { + line-height: 1; +} + +.leading-normal { + line-height: 1.5; +} + +.text-accent { + color: var(--kenta-accent-color); +} + +.text-red-100 { + --tw-text-opacity: 1; + color: rgb(254 226 226 / var(--tw-text-opacity)); +} + +.text-accent-active { + color: var(--kenta-accent-active); +} + +.underline { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +.no-underline { + -webkit-text-decoration-line: none; + text-decoration-line: none; +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.outline { + outline-style: solid; +} + +.blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.invert { + --tw-invert: invert(100%); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.filter { + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} +.transition-force-none, .transition-force-none * { + transition: none !important; +} + +.clearfix::after { + display: block; + content: ""; + clear: both; +} + +.kenta-is-sticky { + z-index: 9999; +} + +.no-underline, +.no-underline a { + text-decoration: none; +} + +.screen-reader-text { + border: 0; + clip: rect(1px, 1px, 1px, 1px); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + word-wrap: normal !important; +} +.screen-reader-text:focus { + background-color: #ddd; + clip: auto !important; + -webkit-clip-path: none; + clip-path: none; + color: #444; + display: block; + font-size: 1em; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; +} +.last\:mb-0:last-child { + margin-bottom: 0px; +} +.last\:mr-0:last-child { + margin-right: 0px; +} +@media (min-width: 1024px) { + .lg\:flex-row { + flex-direction: row; + } + .lg\:flex-row-reverse { + flex-direction: row-reverse; + } + .lg\:pr-2 { + padding-right: 0.5rem; + } + .lg\:pl-2 { + padding-left: 0.5rem; + } +} diff --git a/wp-content/themes/kenta/dist/css/style.min.css b/wp-content/themes/kenta/dist/css/style.min.css new file mode 100644 index 0000000000..23722ea127 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/style.min.css @@ -0,0 +1 @@ +*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}:root{scroll-behavior:smooth}::-moz-selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}::-moz-selection,::selection{background-color:var(--kb-primary-color);color:var(--kb-base-color)}[data-kenta-theme=light]{--kenta-primary-color:var(--kenta-light-primary-color);--kenta-primary-active:var(--kenta-light-primary-active);--kenta-accent-color:var(--kenta-light-accent-color);--kenta-accent-active:var(--kenta-light-accent-active);--kenta-base-color:var(--kenta-light-base-color);--kenta-base-100:var(--kenta-light-base-100);--kenta-base-200:var(--kenta-light-base-200);--kenta-base-300:var(--kenta-light-base-300)}[data-kenta-theme=light] .kenta-theme-switch .dark-mode{display:inline}[data-kenta-theme=light] .kenta-theme-switch .light-mode{display:none}[data-kenta-theme=dark]{--kenta-primary-color:var(--kenta-dark-primary-color,var(--kenta-light-primary-color));--kenta-primary-active:var(--kenta-dark-primary-active,var(--kenta-light-primary-active));--kenta-accent-color:var(--kenta-dark-accent-color,var(--kenta-light-accent-color));--kenta-accent-active:var(--kenta-dark-accent-active,var(--kenta-light-accent-active));--kenta-base-color:var(--kenta-dark-base-color,var(--kenta-light-base-color));--kenta-base-100:var(--kenta-dark-base-100,var(--kenta-light-base-100));--kenta-base-200:var(--kenta-dark-base-200,var(--kenta-light-base-200));--kenta-base-300:var(--kenta-dark-base-300,var(--kenta-light-base-300))}[data-kenta-theme=dark] .kenta-theme-switch .light-mode{display:inline}[data-kenta-theme=dark] .kenta-theme-switch .dark-mode{display:none}.kenta-max-w-wide{max-width:min(var(--wp--style--global--wide-size),100%)}.kenta-max-w-wide.has-global-padding{max-width:calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left))}.kenta-max-w-content{max-width:min(var(--wp--style--global--content-size),100%)}.kenta-max-w-content.has-global-padding{max-width:calc(var(--wp--style--global--content-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left))}.kenta-container{padding-bottom:var(--kenta-content-area-spacing);padding-top:var(--kenta-content-area-spacing)}.kenta-container.is-align-normal{--wp--style--global--content-size:var(--wp--style--global--wide-size)}.kenta-container.is-align-normal.is-style-fluid{--wp--style--global--wide-size:100%}.kenta-site-wrap{display:flex;flex-direction:column;max-width:var(--kenta-site-wrap-width,inherit);min-height:calc(100vh - var(--wp-admin-bar-height, 0px));position:relative}.has-global-padding>.alignfull{margin-left:calc(var(--wp--style--root--padding-left)*-1)!important;margin-right:calc(var(--wp--style--root--padding-right)*-1)!important}.is-layout-constrained>:where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:min(var(--wp--style--global--content-size),100%)}.kenta-no-sidebar .kenta-article-content-wrap:before{content:" ";display:block;height:100%;left:0;margin-left:calc((var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left))/2);max-width:calc(100% - var(--wp--style--root--padding-right) - var(--wp--style--root--padding-left));position:absolute;top:0;width:100%;z-index:-1}@media screen and (min-width:1140px){.kenta-no-sidebar .kenta-article-content-wrap:before{left:50%;margin-left:calc(var(--wp--style--global--wide-size)/-2 - var(--wp--style--root--padding-left));width:calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-right) + var(--wp--style--root--padding-left))}}@media (min-width:1024px){.kenta-transparent-header-desktop{left:0;position:absolute;top:0;width:100%}}@media (max-width:1024px){.kenta-transparent-header-mobile{left:0;position:absolute;top:0;width:100%}}figure,img{max-width:100%}img{height:auto}pre{overflow-x:auto}.kenta-builder-column-desktop{display:none}@media (min-width:1024px){.kenta-builder-column-desktop{display:flex}}.kenta-builder-column-mobile{display:flex}@media (min-width:1024px){.kenta-builder-column-mobile{display:none}}.kenta-builder-column-desktop-dir-row>[data-builder-element],.kenta-builder-column-mobile-dir-row>[data-builder-element],.kenta-builder-column-tablet-dir-row>[data-builder-element]{flex-shrink:0;margin-right:var(--kenta-builder-elements-gap,12px)}.kenta-builder-column-desktop-dir-row>[data-builder-element]:last-child,.kenta-builder-column-mobile-dir-row>[data-builder-element]:last-child,.kenta-builder-column-tablet-dir-row>[data-builder-element]:last-child{margin-right:0}.kenta-builder-column-desktop-dir-column>[data-builder-element],.kenta-builder-column-mobile-dir-column>[data-builder-element],.kenta-builder-column-tablet-dir-column>[data-builder-element]{margin-bottom:var(--kenta-builder-elements-gap,12px)}.kenta-builder-column-desktop-dir-column>[data-builder-element]:last-child,.kenta-builder-column-mobile-dir-column>[data-builder-element]:last-child,.kenta-builder-column-tablet-dir-column>[data-builder-element]:last-child{margin-bottom:0}.kenta-footer-row,.kenta-footer-row .container,.kenta-header-row,.kenta-header-row .container{position:relative}.kenta-popup{box-shadow:0 0 14px rgba(70,71,73,.1);color:var(--kenta-accent-color);font-size:1rem;margin-top:10px;min-width:300px;opacity:0;pointer-events:none;top:calc(100% + .6em);transition:all .2s ease;visibility:hidden}.kenta-popup:before{border:.65em solid transparent;border-bottom:.65em solid var(--kenta-popup-color,var(--kenta-base-300));bottom:100%;content:" ";position:absolute;right:.65em}.kenta-popup.show{margin-top:0;opacity:1;pointer-events:auto;visibility:visible}.kenta-breadcrumbs-element{fill:var(--breadcrumb-link-initial);color:var(--breadcrumb-link-initial)}.kenta-breadcrumbs-element svg{display:inline-block}.kenta-breadcrumbs-element .breadcrumb-link>svg{height:80%;width:auto}.kenta-breadcrumbs-element .breadcrumb-sep svg{display:inline-block;height:.7em;position:relative;top:-.15em;vertical-align:middle;width:.7em}.kenta-breadcrumbs-element .breadcrumb-link{color:var(--breadcrumb-link-initial);transition:color,fill .25s ease-in}.kenta-breadcrumbs-element .breadcrumb-link,.kenta-breadcrumbs-element .breadcrumb-link svg{fill:var(--breadcrumb-link-initial)}.kenta-breadcrumbs-element .breadcrumb-link svg{display:inline-block;height:1.25em;position:relative;top:-.2em;vertical-align:middle;width:1.25em}.kenta-breadcrumbs-element .breadcrumb-link:hover{color:var(--breadcrumb-link-hover)}.kenta-breadcrumbs-element .breadcrumb-link:hover,.kenta-breadcrumbs-element .breadcrumb-link:hover svg{fill:var(--breadcrumb-link-hover)}.kenta-breadcrumbs-element .breadcrumb-item{color:var(--breadcrumb-text)}.kenta-site-branding{max-width:100%}.kenta-site-branding .site-logo{display:inline-block;margin-bottom:var(--logo-spacing);width:var(--logo-max-width,200px)}.kenta-site-branding .site-logo img{display:inline-block;height:auto;max-width:none;-o-object-fit:contain;object-fit:contain;vertical-align:initial;width:inherit}.kenta-site-branding .site-logo .kenta-dark-scheme-logo,.kenta-site-branding .site-logo .kenta-transparent-logo{display:none}.kenta-site-branding .site-identity .site-tagline,.kenta-site-branding .site-identity .site-title{color:var(--kenta-link-initial-color);display:block;margin-bottom:0}.kenta-site-branding .site-identity .site-tagline,.kenta-site-branding .site-identity .site-tagline a,.kenta-site-branding .site-identity .site-title,.kenta-site-branding .site-identity .site-title a{text-decoration:none}.kenta-site-branding .site-identity .site-title{transition:color .25s ease}.kenta-site-branding .site-identity .site-title:hover{color:var(--kenta-link-hover-color)}.kenta-site-branding[data-logo=left],.kenta-site-branding[data-logo=right]{align-items:center;display:flex}.kenta-site-branding[data-logo=left] .site-logo,.kenta-site-branding[data-logo=right] .site-logo{margin-bottom:0}.kenta-site-branding[data-logo=left] .site-logo{margin-right:var(--logo-spacing)}.kenta-site-branding[data-logo=right]{flex-direction:row-reverse}.kenta-site-branding[data-logo=right] .site-logo{margin-left:var(--logo-spacing)}[data-kenta-theme=dark] .kenta-site-branding .kenta-has-dark-scheme-logo .kenta-logo{display:none}[data-kenta-theme=dark] .kenta-site-branding .kenta-has-dark-scheme-logo .kenta-dark-scheme-logo{display:inline-block}.kenta-menu-wrap{flex-shrink:1!important}.kenta-menu,.kenta-menu-wrap{align-items:center;display:flex}.kenta-menu{flex-wrap:wrap;height:100%}.kenta-menu li{display:flex;line-height:1.5;white-space:nowrap;*white-space:normal}.kenta-menu ul{min-width:12em;*width:12em}.kenta-menu .kenta-menu-icon{display:none}.kenta-menu.kenta-menu-has-arrow .menu-item-has-children>a>.kenta-menu-icon,.kenta-menu.kenta-menu-has-arrow .page_item_has_children>a>.kenta-menu-icon{display:inline-block;font-size:12px;margin-left:.65em}.kenta-menu>li{height:var(--menu-items-height,100%);margin:var(--menu-items-margin,0)}.kenta-menu>li>a{align-items:center;background-color:var(--menu-background-initial-color);border-bottom:var(--menu-items-border-bottom);border-radius:var(--menu-items-radius,0);border-top:var(--menu-items-border-top);color:var(--menu-text-initial-color);display:flex;height:100%;padding:var(--menu-items-padding,0);text-decoration:none;transition:all .25s ease}.kenta-menu>li>a svg{fill:var(--menu-text-initial-color)}.kenta-menu>li.sfHover>a,.kenta-menu>li:hover>a{background-color:var(--menu-background-hover-color);border-bottom:var(--menu-items-border-bottom-active);border-top:var(--menu-items-border-top-active);color:var(--menu-text-hover-color)}.kenta-menu>li.sfHover>a svg,.kenta-menu>li:hover>a svg{fill:var(--menu-text-hover-color)}.kenta-menu>li[class*=current-menu-]>a{background-color:var(--menu-background-active-color);border-bottom:var(--menu-items-border-bottom-active);border-top:var(--menu-items-border-top-active);color:var(--menu-text-active-color)}.kenta-menu>li[class*=current-menu-]>a svg{fill:var(--menu-text-active-color)}.kenta-menu>li ul{background-color:var(--dropdown-background-initial-color);border:var(--dropdown-border,none);border-radius:var(--dropdown-radius,0);box-shadow:var(--dropdown-box-shadow,none);color:var(--dropdown-text-initial-color);min-width:var(--dropdown-width);z-index:99999}.kenta-menu>li ul svg{fill:var(--dropdown-text-initial-color)}.kenta-menu>li ul a{align-items:center;color:var(--dropdown-text-initial-color);display:flex;justify-content:space-between;padding:var(--dropdown-item-padding);text-decoration:none;transition:all .25s ease;white-space:normal;width:100%}.kenta-menu>li ul li{border-top:var(--dropdown-divider)}.kenta-menu>li ul li:first-child,.kenta-menu>li ul li:first-child>a{border-top:none;border-top-left-radius:inherit;border-top-right-radius:inherit}.kenta-menu>li ul li:last-child,.kenta-menu>li ul li:last-child>a{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.kenta-menu>li ul li:hover>a{background-color:var(--dropdown-background-active-color);color:var(--dropdown-text-hover-color)}.kenta-menu>li ul li:hover>a svg{fill:var(--dropdown-text-hover-color)}.kenta-menu>li ul li[class*=current-menu-]>a{background-color:var(--dropdown-background-active-color);color:var(--dropdown-text-active-color)}.kenta-menu>li ul li[class*=current-menu-]>a svg{fill:var(--dropdown-text-active-color)}.kenta-menu .kenta-mega-menu{position:unset!important}.kenta-menu .kenta-mega-menu>ul{width:100%}@media (min-width:576px){.kenta-menu .kenta-mega-menu>ul{max-width:576px}}@media (min-width:768px){.kenta-menu .kenta-mega-menu>ul{max-width:768px}}@media (min-width:1024px){.kenta-menu .kenta-mega-menu>ul{max-width:1024px}}@media (min-width:1140px){.kenta-menu .kenta-mega-menu>ul{max-width:1140px}}.kenta-footer-row .kenta-menu .kenta-mega-menu>ul,.kenta-header-row .kenta-menu .kenta-mega-menu>ul{position:relative}.kenta-archive-header .kenta-menu .kenta-mega-menu>ul{position:relative;z-index:1}.kenta-menu .kenta-mega-menu>ul{display:flex!important;left:50%!important;padding:24px 12px;position:absolute!important;right:unset!important;transform:translateX(-50%);width:100%}.kenta-menu .kenta-mega-menu>ul ul{background:transparent;border:none;box-shadow:none;left:auto!important;margin-top:0;opacity:1;position:relative;visibility:visible}.kenta-menu .kenta-mega-menu>ul .kenta-mega-col{border-top:none;padding:0 12px;width:100%}.kenta-menu .kenta-mega-menu>ul .kenta-mega-col:not(:last-child){border-right:var(--dropdown-divider)}.kenta-menu .kenta-mega-menu>ul .kenta-mega-col>a{display:none}.kenta-menu .kenta-mega-menu>ul .kenta-mega-heading{font-weight:700;text-transform:uppercase}.kenta-html-element{width:100%}.kenta-raw-html{max-width:100%}.kenta-raw-html a{color:var(--kenta-link-initial-color);text-decoration:none;transition:all .25s ease}.kenta-raw-html a:hover{color:var(--kenta-link-hover-color);text-decoration:underline}.kenta-no-result-search-form{--kenta-form-background-color:var(--kenta-base-color);--kenta-form-text-color:var(--kenta-accent-active);--kenta-form-border-color:var(--kenta-base-300);--kenta-form-active-color:var(--kenta-primary-color)}.kenta-no-result-search-form input[type=search i]::-webkit-search-cancel-button{display:none}.kenta-no-result-search-form .search-submit{font-size:18px;max-height:100%;max-width:100%;position:absolute;right:0;top:0}.kenta-search-modal-form .search-input,.woocommerce .kenta-search-modal-form .search-input{background:transparent;border:none;border-bottom:2px solid var(--kenta-search-input-border-initial-color,var(--kenta-base-200));border-radius:0;color:var(--kenta-search-input-initial-color,var(--kenta-accent-color));flex-grow:1;padding:1rem 1.5rem}.kenta-search-modal-form .search-input::-moz-placeholder,.woocommerce .kenta-search-modal-form .search-input::-moz-placeholder{color:var(--kenta-search-input-placeholder-color,var(--kenta-accent-color))}.kenta-search-modal-form .search-input::placeholder,.woocommerce .kenta-search-modal-form .search-input::placeholder{color:var(--kenta-search-input-placeholder-color,var(--kenta-accent-color))}.kenta-search-modal-form .search-input:focus,.woocommerce .kenta-search-modal-form .search-input:focus{border-bottom-color:var(--kenta-search-input-border-focus-color,var(--kenta-primary-color));box-shadow:none;color:var(--kenta-search-input-focus-color,var(--kenta-accent-color));outline:none}.kenta-search-modal-form .search-submit,.woocommerce .kenta-search-modal-form .search-submit{align-items:center;background:var(--kenta-search-submit-background-initial-color,var(--kenta-accent-color));border:var(--kenta-search-submit-border,none);border-radius:var(--kenta-search-submit-radius,4px);color:var(--kenta-search-submit-initial-color,var(--kenta-accent-color));display:flex;justify-content:center;padding:.75rem;position:absolute;right:0;transition:all .25s ease}.kenta-search-modal-form .search-submit:hover,.woocommerce .kenta-search-modal-form .search-submit:hover{background:var(--kenta-search-submit-background-hover-color,var(--kenta-primary-color));color:var(--kenta-search-submit-hover-color,var(--kenta-primary-color))}.kenta-collapsable-menu{list-style:none;margin:0;padding:0;width:100%}.kenta-collapsable-menu a{align-items:center;border-bottom:var(--menu-items-divider,none);color:var(--menu-text-initial-color,var(--kenta-accent-color));display:flex;justify-content:space-between;padding:12px;text-decoration:none;transition:all .25s ease}.kenta-collapsable-menu a:hover{color:var(--menu-text-hover-color,var(--kenta-primary-color))}.kenta-collapsable-menu [class*=current-menu-]>a{color:var(--menu-text-active-color,var(--kenta-primary-color))}.kenta-collapsable-menu .kenta-dropdown-toggle{align-items:center;border:var(--menu-dropdown-toggle-border,none);border-radius:2px;color:var(--menu-text-initial-color,var(--kenta-accent-color));display:none;height:2em;justify-content:center;transition:all .25s ease;visibility:hidden;width:2em}.kenta-collapsable-menu .kenta-dropdown-toggle .kenta-menu-icon{display:block;font-size:1em;line-height:1;transform:rotate(0deg);transition:all .25s ease}.kenta-collapsable-menu .kenta-dropdown-toggle.active .kenta-menu-icon{transform:rotate(180deg)}.kenta-collapsable-menu .kenta-dropdown-toggle:hover{border-color:var(--menu-text-hover-color,var(--kenta-primary-color));color:var(--menu-text-hover-color,var(--kenta-primary-color))}.kenta-collapsable-menu.kenta-menu-has-arrow .menu-item-has-children>a>.kenta-dropdown-toggle,.kenta-collapsable-menu.kenta-menu-has-arrow .page_item_has_children>a>.kenta-dropdown-toggle{display:flex;margin-left:1em;visibility:visible}.kenta-collapsable-menu>li ul{-webkit-padding-start:1em;display:none;list-style:none;overflow:hidden;padding-inline-start:1em;transition:all .2s ease-in}.kenta-collapsable-menu>li ul.open{display:block}.kenta-cart-trigger{font-size:1rem;position:relative}.kenta-cart-trigger .kenta-cart-badge{font-size:14px;height:1.75em;line-height:1.75em;right:-.725em;text-align:center;top:-.725em;transform:scale(.75);width:1.75em}.kenta-cart-popup .widget>h2{display:none}.kenta-cart-popup p.buttons{margin:1.25em 0}.kenta-cart-popup .total{padding-bottom:12px;padding-top:12px}.kenta-modal-visible{overflow:hidden;padding-right:var(--scrollbar-width,0)}.kenta-modal{bottom:0;height:calc(100vh - var(--wp-admin-bar-height, 0));left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:var(--wp-admin-bar-height,0);visibility:hidden;width:100vw;z-index:999999}.kenta-modal,.kenta-modal .kenta-modal-inner{transition:all .3s ease!important}.kenta-modal .kenta-modal-inner{display:flex;flex-direction:column;height:100%;width:100%}.kenta-modal[data-toggle-behaviour=drawer-left] .kenta-modal-inner{transform:translate3d(-20%,0,0)}.kenta-modal[data-toggle-behaviour=drawer-right] .kenta-modal-inner{transform:translate3d(20%,0,0)}.kenta-modal.active{opacity:1;pointer-events:auto;visibility:visible}.kenta-modal.active .kenta-modal-inner{transform:translateZ(0)}.kenta-modal .kenta-modal-actions{font-size:1.75rem;left:0;line-height:1;padding:12px 24px 0;position:absolute;top:0;width:100%}.kenta-modal .kenta-modal-actions button{color:var(--kenta-modal-action-initial,hsla(0,0%,100%,.5));cursor:pointer;display:block;position:relative;z-index:9999}.kenta-modal .kenta-modal-actions button,.kenta-modal .kenta-modal-actions button *{transition:all .25s ease}.kenta-modal .kenta-modal-actions button:hover{color:var(--kenta-modal-action-hover,#fff)}.kenta-modal .kenta-modal-actions .kenta-close-modal{-webkit-margin-start:auto;background:transparent;font-size:100%;margin-inline-start:auto}.kenta-modal .kenta-modal-content{box-sizing:border-box;flex-grow:1;overflow-x:hidden;overflow-y:auto;padding:24px}.sf-menu,.sf-menu *{list-style:none;margin:0;padding:0}.sf-menu a,.sf-menu li{position:relative}.sf-menu li{width:100%}.sf-menu li.sfHover,.sf-menu li:hover{transition:none}.sf-menu li.sfHover>ul,.sf-menu li:focus-within>ul,.sf-menu li:hover>ul{display:block;margin-top:0;opacity:1;pointer-events:auto;visibility:visible}.sf-menu ul{display:none;margin-top:var(--dropdown-initial-offset,15px);opacity:0;pointer-events:none;position:absolute;top:0;transition:all .25s ease;visibility:hidden;z-index:50}.sf-menu>li>ul{top:100%}.sf-menu:not(.sf-dropdown-left) ul{left:calc(100% + 4px)}.sf-menu:not(.sf-dropdown-left)>li>ul{left:0;right:auto}.sf-menu.sf-dropdown-left ul{left:calc(-100% - 4px)}.sf-menu.sf-dropdown-left>li>ul{left:auto;right:0}.sf-menu>li{float:left}.sf-menu li{width:auto}.kenta-sidebar{margin-top:var(--kenta-sidebar-gap,0);width:100%}@media (min-width:1024px){.kenta-sidebar{margin-top:0;width:var(--kenta-sidebar-width,30%)}.kenta-right-sidebar .kenta-sidebar{margin-left:var(--kenta-sidebar-gap,0)}.kenta-left-sidebar .kenta-sidebar{margin-right:var(--kenta-sidebar-gap,0)}}.kenta-button,.woocommerce a.button,.wp-block-button{--kenta-button-border:1px solid var(--kenta-primary-color);--kenta-button-padding:0.85em 1.25em;--kenta-button-height:32px;--kenta-button-initial-color:var(--kenta-primary-color);--kenta-button-hover-color:var(--kenta-accent-color);--kenta-button-text-initial-color:var(--kenta-base-color);--kenta-button-text-hover-color:var(--kenta-base-color);--kenta-button-radius:2px;font-size:.75rem;line-height:1}.kenta-button .has-text-align-center,.woocommerce a.button .has-text-align-center,.wp-block-button .has-text-align-center{justify-content:center}.kenta-button .has-text-align-right,.woocommerce a.button .has-text-align-right,.wp-block-button .has-text-align-right{justify-content:flex-end}.kenta-button .has-text-align-left,.woocommerce a.button .has-text-align-left,.wp-block-button .has-text-align-left{justify-content:flex-start}.kenta-article-content [type=submit],.kenta-article-content button,.kenta-button,.kenta-form [type=submit],.kenta-raw-html [type=submit],.wc-block-product-search__button,.widget_search [type=submit],.woocommerce #respond input#submit,.woocommerce #respond input#submit.alt,.woocommerce .page-content .widget_price_filter .button,.woocommerce .page-content .woocommerce-message .button,.woocommerce .page-content a.button.alt,.woocommerce .page-content button.button.alt,.woocommerce .woocommerce-page .page-content .woocommerce-message .button,.woocommerce a.button,.woocommerce a.button.alt,.woocommerce button.button,.woocommerce button.button.alt,.woocommerce input.button,.woocommerce input.button.alt,.wp-block-button.is-style-outline .wp-block-button__link,.wp-block-search__button,div:not(.is-style-outline)>.wp-block-button__link{align-items:center;background-color:var(--kenta-button-initial-color);border-color:var(--lotta-border-initial-color);border:var(--kenta-button-border,none);border-radius:var(--kenta-button-radius);box-shadow:var(--kenta-button-shadow,none);box-sizing:border-box;color:var(--kenta-button-text-initial-color);cursor:pointer;display:inline-flex;min-height:var(--kenta-button-height);padding:var(--kenta-button-padding);text-decoration:none;transition:all .2s ease}.kenta-article-content [type=submit]:disabled,.kenta-article-content button:disabled,.kenta-button:disabled,.kenta-form [type=submit]:disabled,.kenta-raw-html [type=submit]:disabled,.wc-block-product-search__button:disabled,.widget_search [type=submit]:disabled,.woocommerce #respond input#submit.alt:disabled,.woocommerce #respond input#submit:disabled,.woocommerce .page-content .widget_price_filter .button:disabled,.woocommerce .page-content .woocommerce-message .button:disabled,.woocommerce .page-content a.button.alt:disabled,.woocommerce .page-content button.button.alt:disabled,.woocommerce .woocommerce-page .page-content .woocommerce-message .button:disabled,.woocommerce a.button.alt:disabled,.woocommerce a.button:disabled,.woocommerce button.button.alt:disabled,.woocommerce button.button:disabled,.woocommerce input.button.alt:disabled,.woocommerce input.button:disabled,.wp-block-button.is-style-outline .wp-block-button__link:disabled,.wp-block-search__button:disabled,div:not(.is-style-outline)>.wp-block-button__link:disabled{cursor:not-allowed;opacity:.65}.kenta-article-content [type=submit]:not(:disabled):hover,.kenta-article-content button:not(:disabled):hover,.kenta-button:not(:disabled):hover,.kenta-form [type=submit]:not(:disabled):hover,.kenta-raw-html [type=submit]:not(:disabled):hover,.wc-block-product-search__button:not(:disabled):hover,.widget_search [type=submit]:not(:disabled):hover,.woocommerce #respond input#submit.alt:not(:disabled):hover,.woocommerce #respond input#submit:not(:disabled):hover,.woocommerce .page-content .widget_price_filter .button:not(:disabled):hover,.woocommerce .page-content .woocommerce-message .button:not(:disabled):hover,.woocommerce .page-content a.button.alt:not(:disabled):hover,.woocommerce .page-content button.button.alt:not(:disabled):hover,.woocommerce .woocommerce-page .page-content .woocommerce-message .button:not(:disabled):hover,.woocommerce a.button.alt:not(:disabled):hover,.woocommerce a.button:not(:disabled):hover,.woocommerce button.button.alt:not(:disabled):hover,.woocommerce button.button:not(:disabled):hover,.woocommerce input.button.alt:not(:disabled):hover,.woocommerce input.button:not(:disabled):hover,.wp-block-button.is-style-outline .wp-block-button__link:not(:disabled):hover,.wp-block-search__button:not(:disabled):hover,div:not(.is-style-outline)>.wp-block-button__link:not(:disabled):hover{background-color:var(--kenta-button-hover-color);border-color:var(--lotta-border-hover-color);box-shadow:var(--kenta-button-shadow-active,none);color:var(--kenta-button-text-hover-color)}.kenta-article-content [type=submit].kenta-button-right,.kenta-article-content button.kenta-button-right,.kenta-button.kenta-button-right,.kenta-form [type=submit].kenta-button-right,.kenta-raw-html [type=submit].kenta-button-right,.wc-block-product-search__button.kenta-button-right,.widget_search [type=submit].kenta-button-right,.woocommerce #respond input#submit.alt.kenta-button-right,.woocommerce #respond input#submit.kenta-button-right,.woocommerce .page-content .widget_price_filter .button.kenta-button-right,.woocommerce .page-content .woocommerce-message .button.kenta-button-right,.woocommerce .page-content a.button.alt.kenta-button-right,.woocommerce .page-content button.button.alt.kenta-button-right,.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right,.woocommerce a.button.alt.kenta-button-right,.woocommerce a.button.kenta-button-right,.woocommerce button.button.alt.kenta-button-right,.woocommerce button.button.kenta-button-right,.woocommerce input.button.alt.kenta-button-right,.woocommerce input.button.kenta-button-right,.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right,.wp-block-search__button.kenta-button-right,div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right{flex-direction:row-reverse}.kenta-article-content [type=submit].kenta-button-right i,.kenta-article-content [type=submit].kenta-button-right svg,.kenta-article-content button.kenta-button-right i,.kenta-article-content button.kenta-button-right svg,.kenta-button.kenta-button-right i,.kenta-button.kenta-button-right svg,.kenta-form [type=submit].kenta-button-right i,.kenta-form [type=submit].kenta-button-right svg,.kenta-raw-html [type=submit].kenta-button-right i,.kenta-raw-html [type=submit].kenta-button-right svg,.wc-block-product-search__button.kenta-button-right i,.wc-block-product-search__button.kenta-button-right svg,.widget_search [type=submit].kenta-button-right i,.widget_search [type=submit].kenta-button-right svg,.woocommerce #respond input#submit.alt.kenta-button-right i,.woocommerce #respond input#submit.alt.kenta-button-right svg,.woocommerce #respond input#submit.kenta-button-right i,.woocommerce #respond input#submit.kenta-button-right svg,.woocommerce .page-content .widget_price_filter .button.kenta-button-right i,.woocommerce .page-content .widget_price_filter .button.kenta-button-right svg,.woocommerce .page-content .woocommerce-message .button.kenta-button-right i,.woocommerce .page-content .woocommerce-message .button.kenta-button-right svg,.woocommerce .page-content a.button.alt.kenta-button-right i,.woocommerce .page-content a.button.alt.kenta-button-right svg,.woocommerce .page-content button.button.alt.kenta-button-right i,.woocommerce .page-content button.button.alt.kenta-button-right svg,.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right i,.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-right svg,.woocommerce a.button.alt.kenta-button-right i,.woocommerce a.button.alt.kenta-button-right svg,.woocommerce a.button.kenta-button-right i,.woocommerce a.button.kenta-button-right svg,.woocommerce button.button.alt.kenta-button-right i,.woocommerce button.button.alt.kenta-button-right svg,.woocommerce button.button.kenta-button-right i,.woocommerce button.button.kenta-button-right svg,.woocommerce input.button.alt.kenta-button-right i,.woocommerce input.button.alt.kenta-button-right svg,.woocommerce input.button.kenta-button-right i,.woocommerce input.button.kenta-button-right svg,.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right i,.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-right svg,.wp-block-search__button.kenta-button-right i,.wp-block-search__button.kenta-button-right svg,div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right i,div:not(.is-style-outline)>.wp-block-button__link.kenta-button-right svg{margin-left:.75em}.kenta-article-content [type=submit].kenta-button-left i,.kenta-article-content [type=submit].kenta-button-left svg,.kenta-article-content button.kenta-button-left i,.kenta-article-content button.kenta-button-left svg,.kenta-button.kenta-button-left i,.kenta-button.kenta-button-left svg,.kenta-form [type=submit].kenta-button-left i,.kenta-form [type=submit].kenta-button-left svg,.kenta-raw-html [type=submit].kenta-button-left i,.kenta-raw-html [type=submit].kenta-button-left svg,.wc-block-product-search__button.kenta-button-left i,.wc-block-product-search__button.kenta-button-left svg,.widget_search [type=submit].kenta-button-left i,.widget_search [type=submit].kenta-button-left svg,.woocommerce #respond input#submit.alt.kenta-button-left i,.woocommerce #respond input#submit.alt.kenta-button-left svg,.woocommerce #respond input#submit.kenta-button-left i,.woocommerce #respond input#submit.kenta-button-left svg,.woocommerce .page-content .widget_price_filter .button.kenta-button-left i,.woocommerce .page-content .widget_price_filter .button.kenta-button-left svg,.woocommerce .page-content .woocommerce-message .button.kenta-button-left i,.woocommerce .page-content .woocommerce-message .button.kenta-button-left svg,.woocommerce .page-content a.button.alt.kenta-button-left i,.woocommerce .page-content a.button.alt.kenta-button-left svg,.woocommerce .page-content button.button.alt.kenta-button-left i,.woocommerce .page-content button.button.alt.kenta-button-left svg,.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left i,.woocommerce .woocommerce-page .page-content .woocommerce-message .button.kenta-button-left svg,.woocommerce a.button.alt.kenta-button-left i,.woocommerce a.button.alt.kenta-button-left svg,.woocommerce a.button.kenta-button-left i,.woocommerce a.button.kenta-button-left svg,.woocommerce button.button.alt.kenta-button-left i,.woocommerce button.button.alt.kenta-button-left svg,.woocommerce button.button.kenta-button-left i,.woocommerce button.button.kenta-button-left svg,.woocommerce input.button.alt.kenta-button-left i,.woocommerce input.button.alt.kenta-button-left svg,.woocommerce input.button.kenta-button-left i,.woocommerce input.button.kenta-button-left svg,.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left i,.wp-block-button.is-style-outline .wp-block-button__link.kenta-button-left svg,.wp-block-search__button.kenta-button-left i,.wp-block-search__button.kenta-button-left svg,div:not(.is-style-outline)>.wp-block-button__link.kenta-button-left i,div:not(.is-style-outline)>.wp-block-button__link.kenta-button-left svg{margin-right:.75em}.wp-block-button.is-style-outline .wp-block-button__link,.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background),.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color){background-color:transparent;border-color:var(--kenta-button-initial-color);border-style:solid;border-width:2px;color:var(--kenta-button-initial-color)}.components-button.is-primary{background:var(--wp-admin-theme-color)!important}.kenta-icon-button{align-items:center;background-color:transparent;border:none;box-sizing:border-box;color:var(--kenta-icon-button-icon-initial-color);cursor:pointer;display:flex;flex-shrink:0;height:calc(var(--kenta-icon-button-size)*1.25);justify-content:center;margin:0;padding:0;transition:all .25s ease;width:calc(var(--kenta-icon-button-size)*1.25)}.kenta-icon-button:active,.kenta-icon-button:hover{color:var(--kenta-icon-button-icon-hover-color)}.kenta-icon-button.kenta-icon-button-rounded,.kenta-icon-button.kenta-icon-button-square{border-radius:var(--kenta-icon-button-radius,3px);height:calc(var(--kenta-icon-button-size)*2.5);width:calc(var(--kenta-icon-button-size)*2.5)}.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid,.kenta-icon-button.kenta-icon-button-square.kenta-icon-button-solid{background-color:var(--kenta-icon-button-bg-initial-color)}.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid:hover,.kenta-icon-button.kenta-icon-button-square.kenta-icon-button-solid:hover{background-color:var(--kenta-icon-button-bg-hover-color)}.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline,.kenta-icon-button.kenta-icon-button-square.kenta-icon-button-outline{border:var(--kenta-icon-button-outline,1px solid);border-color:var(--kenta-icon-button-border-initial-color)}.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline:hover,.kenta-icon-button.kenta-icon-button-square.kenta-icon-button-outline:hover{border-color:var(--kenta-icon-button-border-hover-color)}.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-outline,.kenta-icon-button.kenta-icon-button-rounded.kenta-icon-button-solid{--kenta-icon-button-radius:9999px}.kenta-archive-header{position:relative}.kenta-archive-header .container{position:relative;z-index:1}.kenta-archive-header.kenta-archive-header-has-overlay:after{content:"";display:block;height:100%;left:0;position:absolute;top:0;width:100%}.card-list,.kenta-related-posts-list,.woocommerce .kenta-products{display:flex;flex-wrap:wrap;margin:0 calc(var(--card-gap)*-1/2)}.card-wrapper,.woocommerce .kenta-products>.product{padding:0 calc(var(--card-gap)/2) var(--card-gap) calc(var(--card-gap)/2)}.card,.woocommerce .kenta-products .kenta-product-wrapper{background:var(--kenta-base-color);border-radius:var(--kenta-card-radius,2px);display:flex;flex-direction:column}.card .card-thumbnail,.card .kenta-product-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-thumbnail{flex-shrink:0;margin-bottom:var(--card-thumbnail-spacing,0);overflow:hidden}.card .card-thumbnail img,.card .kenta-product-thumbnail img,.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail img,.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-thumbnail img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;transition:all .3s ease;width:100%}.card[data-card-layout$=left] .card-thumbnail,.card[data-card-layout$=right] .card-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=left] .card-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=right] .card-thumbnail{margin-bottom:0;width:var(--card-thumbnail-width,45%)}.card[data-card-layout$=left] .card-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=left] .card-thumbnail{margin-right:var(--card-thumbnail-spacing,0)}.card[data-card-layout$=right] .card-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=right] .card-thumbnail{margin-left:var(--card-thumbnail-spacing,0)}.card[data-card-layout$=masonry] .entry-thumbnail,.woocommerce .kenta-products .kenta-product-wrapper[data-card-layout$=masonry] .entry-thumbnail{height:auto}.card.card-thumb-motion .card-thumbnail:hover img,.woocommerce .kenta-products .kenta-product-wrapper.card-thumb-motion .card-thumbnail:hover img{transform:scale(1.1)}.card .card-content,.card .kenta-product-content,.woocommerce .kenta-products .kenta-product-wrapper .card-content,.woocommerce .kenta-products .kenta-product-wrapper .kenta-product-content{padding:var(--card-content-spacing)}.card .card-thumbnail.card-content,.woocommerce .kenta-products .kenta-product-wrapper .card-thumbnail.card-content{padding:0 var(--card-content-spacing)}@media (min-width:768px){.card[data-card-layout$=left]{flex-direction:row}.card[data-card-layout$=right]{flex-direction:row-reverse}}.entry-title{color:var(--kenta-link-initial-color,inherit);word-break:break-word}.entry-title,.entry-title a{text-decoration:none}.entry-divider{padding-bottom:24px}.entry-divider.full-width{margin:0 calc(var(--card-content-spacing)*-1)}.entry-divider:after{border-bottom:var(--entry-divider,1px solid var(--kenta-base-200));content:"";display:block;width:100%}.cat-taxonomies .entry-tax-item{color:var(--kenta-tax-text-initial);text-decoration:none;transition:all .25s ease}.cat-taxonomies .entry-tax-item:hover{color:var(--kenta-tax-text-hover)}.cat-taxonomies[data-tax-type=badge] .entry-tax-item{background:var(--kenta-tax-bg-initial);border-radius:var(--kenta-tax-item-radius,3px);display:inline-block;margin-bottom:1px;margin-top:1px;padding:.3em .75em}.cat-taxonomies[data-tax-type=badge] .entry-tax-item:hover{background:var(--kenta-tax-bg-hover)}.entry-metas i,.entry-metas svg{fill:var(--kenta-meta-link-initial-color);color:var(--kenta-meta-link-initial-color);display:inline-block;position:relative;top:-.1em;vertical-align:middle}.entry-metas .meta-item{display:inline-block}.entry-metas .meta-item i,.entry-metas .meta-item svg{font-size:1em;margin-right:.65em}.entry-metas .meta-item svg{height:1em;width:1em}.entry-metas .meta-divider{height:1.25em;margin:0 .5em;width:1.25em}.entry-metas .meta-divider:last-child{display:none}.entry-metas .entry-meta-link{color:var(--kenta-meta-link-initial-color);text-decoration:none;transition:all .25s ease}.entry-metas .entry-meta-link:hover{color:var(--kenta-meta-link-hover-color)}.kenta-about-author-bio-box .kenta-author-bio-avatar-link{display:inline-block}.kenta-about-author-bio-box .kenta-author-bio-avatar{border-radius:var(--kenta-author-bio-avatar-radius,0);margin:0}.kenta-about-author-bio-box .kenta-author-bio-all-articles{font-size:.85rem}.kenta-about-author-bio-box .kenta-author-bio-name{font-size:18px;font-weight:600;line-height:1.5;margin-bottom:1rem;margin-top:1.5rem}.kenta-related-posts-wrap .heading-content{color:var(--kenta-accent-active);font-size:.875rem;font-weight:500;text-transform:uppercase}.kenta-post-navigation .nav-links{color:var(--kenta-navigation-initial-color);word-break:break-all}@media (min-width:1024px){.kenta-post-navigation .nav-links{display:flex}}.kenta-post-navigation .nav-next{width:100%}@media (min-width:1024px){.kenta-post-navigation .nav-previous{width:50%}}.kenta-post-navigation .nav-previous{flex-shrink:0}.kenta-post-navigation .nav-next,.kenta-post-navigation .nav-previous{align-items:center;display:flex}.kenta-post-navigation .nav-next a,.kenta-post-navigation .nav-previous a{fill:var(--kenta-navigation-initial-color);align-items:center;color:var(--kenta-navigation-initial-color);display:flex;text-decoration:none;transition:all .2s ease}.kenta-post-navigation .nav-next a .post-thumbnail,.kenta-post-navigation .nav-previous a .post-thumbnail{border:1px dashed var(--kenta-base-300);border-radius:var(--kenta-navigation-thumb-radius,8px);flex-shrink:0;height:4em;overflow:hidden;position:relative;width:4em}.kenta-post-navigation .nav-next a .post-thumbnail:after,.kenta-post-navigation .nav-previous a .post-thumbnail:after{background-color:var(--kenta-navigation-hover-color);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .25s ease;width:100%}.kenta-post-navigation .nav-next a .post-thumbnail i,.kenta-post-navigation .nav-next a .post-thumbnail svg,.kenta-post-navigation .nav-previous a .post-thumbnail i,.kenta-post-navigation .nav-previous a .post-thumbnail svg{fill:var(--kenta-base-color);color:var(--kenta-base-color);display:inline-block;height:1.2em;margin-left:-.6em;margin-top:-.6em;opacity:0;position:absolute;top:50%;transition:all .25s ease;width:1.2em;z-index:1}.kenta-post-navigation .nav-next a .post-thumbnail img,.kenta-post-navigation .nav-previous a .post-thumbnail img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.kenta-post-navigation .nav-next a span,.kenta-post-navigation .nav-previous a span{overflow:hidden;text-overflow:ellipsis;white-space:normal}.kenta-post-navigation .nav-next a:hover,.kenta-post-navigation .nav-previous a:hover{fill:var(--kenta-navigation-hover-color);color:var(--kenta-navigation-hover-color)}.kenta-post-navigation .nav-next a:hover .post-thumbnail:after,.kenta-post-navigation .nav-previous a:hover .post-thumbnail:after{opacity:.75}.kenta-post-navigation .nav-next a:hover .post-thumbnail i,.kenta-post-navigation .nav-next a:hover .post-thumbnail svg,.kenta-post-navigation .nav-previous a:hover .post-thumbnail i,.kenta-post-navigation .nav-previous a:hover .post-thumbnail svg{left:50%;opacity:1}.kenta-post-navigation .nav-previous a i,.kenta-post-navigation .nav-previous a svg{flex-shrink:0;left:80%}.kenta-post-navigation .nav-next{justify-content:flex-end;text-align:end}.kenta-post-navigation .nav-next a{flex-direction:row-reverse}.kenta-post-navigation .nav-next a i,.kenta-post-navigation .nav-next a svg{left:20%}.kenta-post-navigation .item-label{font-size:12px;font-weight:500;opacity:.8;text-transform:uppercase}.kenta-post-navigation .item-title{display:block;font-size:14px;font-weight:700;margin-top:5px;word-break:break-word}.kenta-pagination,.woocommerce-pagination,.woocommerce-pagination>.page-numbers,nav.woocommerce-pagination,nav.woocommerce-pagination>.page-numbers{color:var(--kenta-accent-color);display:flex;padding:var(--kenta-pagination-spacing,24px) 0}.kenta-pagination>li,.woocommerce-pagination>.page-numbers>li,.woocommerce-pagination>li,nav.woocommerce-pagination>.page-numbers>li,nav.woocommerce-pagination>li{display:flex}.kenta-pagination .kenta-btn,.kenta-pagination li>.page-numbers,.woocommerce-pagination .kenta-btn,.woocommerce-pagination li>.page-numbers,.woocommerce-pagination>.page-numbers .kenta-btn,.woocommerce-pagination>.page-numbers li>.page-numbers,nav.woocommerce-pagination .kenta-btn,nav.woocommerce-pagination li>.page-numbers,nav.woocommerce-pagination>.page-numbers .kenta-btn,nav.woocommerce-pagination>.page-numbers li>.page-numbers{align-items:center;border:var(--kenta-pagination-button-border);border-radius:var(--kenta-pagination-button-radius);color:var(--kenta-pagination-initial-color);display:flex;height:2.5em;justify-content:center;text-decoration:none;transition:all .25s ease;width:2.5em}.kenta-pagination .kenta-btn svg,.kenta-pagination li>.page-numbers svg,.woocommerce-pagination .kenta-btn svg,.woocommerce-pagination li>.page-numbers svg,.woocommerce-pagination>.page-numbers .kenta-btn svg,.woocommerce-pagination>.page-numbers li>.page-numbers svg,nav.woocommerce-pagination .kenta-btn svg,nav.woocommerce-pagination li>.page-numbers svg,nav.woocommerce-pagination>.page-numbers .kenta-btn svg,nav.woocommerce-pagination>.page-numbers li>.page-numbers svg{fill:var(--kenta-pagination-initial-color)}.kenta-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,.kenta-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,.woocommerce-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,.woocommerce-pagination>.page-numbers .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,.woocommerce-pagination>.page-numbers li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,nav.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,nav.woocommerce-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,nav.woocommerce-pagination>.page-numbers .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover,nav.woocommerce-pagination>.page-numbers li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover{border-color:var(--kenta-pagination-accent-color);color:var(--kenta-pagination-accent-color)}.kenta-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,.kenta-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,.woocommerce-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,.woocommerce-pagination>.page-numbers .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,.woocommerce-pagination>.page-numbers li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,nav.woocommerce-pagination .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,nav.woocommerce-pagination li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,nav.woocommerce-pagination>.page-numbers .kenta-btn:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg,nav.woocommerce-pagination>.page-numbers li>.page-numbers:not(.kenta-btn-disabled,.kenta-btn-active,.current):hover svg{fill:var(--kenta-pagination-accent-color)}.kenta-pagination .kenta-btn.current,.kenta-pagination .kenta-btn.kenta-btn-active,.kenta-pagination li>.page-numbers.current,.kenta-pagination li>.page-numbers.kenta-btn-active,.woocommerce-pagination .kenta-btn.current,.woocommerce-pagination .kenta-btn.kenta-btn-active,.woocommerce-pagination li>.page-numbers.current,.woocommerce-pagination li>.page-numbers.kenta-btn-active,.woocommerce-pagination>.page-numbers .kenta-btn.current,.woocommerce-pagination>.page-numbers .kenta-btn.kenta-btn-active,.woocommerce-pagination>.page-numbers li>.page-numbers.current,.woocommerce-pagination>.page-numbers li>.page-numbers.kenta-btn-active,nav.woocommerce-pagination .kenta-btn.current,nav.woocommerce-pagination .kenta-btn.kenta-btn-active,nav.woocommerce-pagination li>.page-numbers.current,nav.woocommerce-pagination li>.page-numbers.kenta-btn-active,nav.woocommerce-pagination>.page-numbers .kenta-btn.current,nav.woocommerce-pagination>.page-numbers .kenta-btn.kenta-btn-active,nav.woocommerce-pagination>.page-numbers li>.page-numbers.current,nav.woocommerce-pagination>.page-numbers li>.page-numbers.kenta-btn-active{background:var(--kenta-pagination-accent-color);border-color:var(--kenta-pagination-accent-color);color:var(--kenta-pagination-active-color)}.kenta-pagination .kenta-btn.current svg,.kenta-pagination .kenta-btn.kenta-btn-active svg,.kenta-pagination li>.page-numbers.current svg,.kenta-pagination li>.page-numbers.kenta-btn-active svg,.woocommerce-pagination .kenta-btn.current svg,.woocommerce-pagination .kenta-btn.kenta-btn-active svg,.woocommerce-pagination li>.page-numbers.current svg,.woocommerce-pagination li>.page-numbers.kenta-btn-active svg,.woocommerce-pagination>.page-numbers .kenta-btn.current svg,.woocommerce-pagination>.page-numbers .kenta-btn.kenta-btn-active svg,.woocommerce-pagination>.page-numbers li>.page-numbers.current svg,.woocommerce-pagination>.page-numbers li>.page-numbers.kenta-btn-active svg,nav.woocommerce-pagination .kenta-btn.current svg,nav.woocommerce-pagination .kenta-btn.kenta-btn-active svg,nav.woocommerce-pagination li>.page-numbers.current svg,nav.woocommerce-pagination li>.page-numbers.kenta-btn-active svg,nav.woocommerce-pagination>.page-numbers .kenta-btn.current svg,nav.woocommerce-pagination>.page-numbers .kenta-btn.kenta-btn-active svg,nav.woocommerce-pagination>.page-numbers li>.page-numbers.current svg,nav.woocommerce-pagination>.page-numbers li>.page-numbers.kenta-btn-active svg{fill:var(--kenta-pagination-active-color)}.woocommerce-pagination>.page-numbers>li,.woocommerce-pagination>li,nav.woocommerce-pagination>.page-numbers>li,nav.woocommerce-pagination>li{margin-right:.5em}.woocommerce-pagination>.page-numbers>li:last-child,.woocommerce-pagination>li:last-child,nav.woocommerce-pagination>.page-numbers>li:last-child,nav.woocommerce-pagination>li:last-child{margin-right:0}.kenta-pagination .kenta-btn{margin-right:.5em}.kenta-pagination .kenta-btn.kenta-next-btn-text,.kenta-pagination .kenta-btn.kenta-prev-btn-text{padding:0 1.25em;width:auto}.kenta-pagination .kenta-btn:last-child{margin-right:0}.kenta-pagination .kenta-btn.kenta-btn-disabled{opacity:.5}.kenta-article-header-background:after{content:" ";display:block;height:100%;left:0;position:absolute;top:0;width:100%}.kenta-article-header-background .kenta-article-header .entry-title{--kenta-link-initial-color:var(--kenta-article-header-override)}.kenta-article-header-background .kenta-article-header .entry-title>*{color:inherit}.kenta-article-header-background .kenta-article-header .entry-metas{--kenta-meta-link-initial-color:var(--kenta-article-header-override)}.kenta-article-header-background .article-featured-image{height:100%;left:0;max-width:100%;padding:0;position:absolute;top:0;width:100%}.kenta-article-header-background .article-featured-image img{height:100%;margin:0!important;width:100%}.kenta-form-classic{--kenta-form-border-top:1px solid var(--kenta-form-border-color);--kenta-form-border-right:1px solid var(--kenta-form-border-color);--kenta-form-border-bottom:1px solid var(--kenta-form-border-color);--kenta-form-border-left:1px solid var(--kenta-form-border-color);--kenta-form-checkbox-border-top:1px solid var(--kenta-form-border-color);--kenta-form-checkbox-border-right:1px solid var(--kenta-form-border-color);--kenta-form-checkbox-border-bottom:1px solid var(--kenta-form-border-color);--kenta-form-checkbox-border-left:1px solid var(--kenta-form-border-color)}.kenta-article-content .kenta-form-control,.kenta-article-content .select2-selection--single,.kenta-article-content [type=email],.kenta-article-content [type=number],.kenta-article-content [type=password],.kenta-article-content [type=search],.kenta-article-content [type=tel],.kenta-article-content [type=text],.kenta-article-content [type=url],.kenta-article-content select,.kenta-article-content textarea,.kenta-form .kenta-form-control,.kenta-form .select2-selection--single,.kenta-form [type=email],.kenta-form [type=number],.kenta-form [type=password],.kenta-form [type=search],.kenta-form [type=tel],.kenta-form [type=text],.kenta-form [type=url],.kenta-form select,.kenta-form textarea,.kenta-widget .kenta-form-control,.kenta-widget .select2-selection--single,.kenta-widget [type=email],.kenta-widget [type=number],.kenta-widget [type=password],.kenta-widget [type=search],.kenta-widget [type=tel],.kenta-widget [type=text],.kenta-widget [type=url],.kenta-widget select,.kenta-widget textarea,form .kenta-form-control,form .select2-selection--single,form [type=email],form [type=number],form [type=password],form [type=search],form [type=tel],form [type=text],form [type=url],form select,form textarea{background:var(--kenta-form-background-color);border-bottom:var(--kenta-form-border-bottom);border-left:var(--kenta-form-border-left);border-radius:var(--kenta-form-control-radius,2px);border-right:var(--kenta-form-border-right);border-top:var(--kenta-form-border-top);color:var(--kenta-form-text-color,inherit);display:block;font-size:inherit;height:var(--kenta-form-control-height,45px);padding:var(--kenta-form-control-paddding,.3em .75em);transition:all .25s ease;width:100%}.kenta-article-content .kenta-form-control:focus,.kenta-article-content .select2-selection--single:focus,.kenta-article-content [type=email]:focus,.kenta-article-content [type=number]:focus,.kenta-article-content [type=password]:focus,.kenta-article-content [type=search]:focus,.kenta-article-content [type=tel]:focus,.kenta-article-content [type=text]:focus,.kenta-article-content [type=url]:focus,.kenta-article-content select:focus,.kenta-article-content textarea:focus,.kenta-form .kenta-form-control:focus,.kenta-form .select2-selection--single:focus,.kenta-form [type=email]:focus,.kenta-form [type=number]:focus,.kenta-form [type=password]:focus,.kenta-form [type=search]:focus,.kenta-form [type=tel]:focus,.kenta-form [type=text]:focus,.kenta-form [type=url]:focus,.kenta-form select:focus,.kenta-form textarea:focus,.kenta-widget .kenta-form-control:focus,.kenta-widget .select2-selection--single:focus,.kenta-widget [type=email]:focus,.kenta-widget [type=number]:focus,.kenta-widget [type=password]:focus,.kenta-widget [type=search]:focus,.kenta-widget [type=tel]:focus,.kenta-widget [type=text]:focus,.kenta-widget [type=url]:focus,.kenta-widget select:focus,.kenta-widget textarea:focus,form .kenta-form-control:focus,form .select2-selection--single:focus,form [type=email]:focus,form [type=number]:focus,form [type=password]:focus,form [type=search]:focus,form [type=tel]:focus,form [type=text]:focus,form [type=url]:focus,form select:focus,form textarea:focus{border-color:var(--kenta-form-active-color);box-shadow:none;outline:none}.kenta-article-content textarea,.kenta-form textarea,.kenta-widget textarea,form textarea{height:auto}.kenta-article-content [type=checkbox],.kenta-form [type=checkbox],.kenta-widget [type=checkbox],form [type=checkbox]{background-color:var(--kenta-form-background-color);border-bottom:var(--kenta-form-checkbox-border-bottom);border-left:var(--kenta-form-checkbox-border-left);border-radius:3px;border-right:var(--kenta-form-checkbox-border-right);border-top:var(--kenta-form-checkbox-border-top);height:20px;margin-right:.5rem;transition:all .25s ease;vertical-align:center;width:20px}.kenta-article-content [type=checkbox]:checked,.kenta-article-content [type=checkbox]:focus,.kenta-form [type=checkbox]:checked,.kenta-form [type=checkbox]:focus,.kenta-widget [type=checkbox]:checked,.kenta-widget [type=checkbox]:focus,form [type=checkbox]:checked,form [type=checkbox]:focus{--tw-ring-color:var(--kenta-form-active-color)}.kenta-article-content [type=checkbox]:checked,.kenta-form [type=checkbox]:checked,.kenta-widget [type=checkbox]:checked,form [type=checkbox]:checked{background-color:var(--kenta-form-active-color)}.kenta-article-content [type=submit],.kenta-form [type=submit],.kenta-widget [type=submit],form [type=submit]{line-height:1}.kenta-input-group{display:flex;position:relative;width:100%}.kenta-input-group .kenta-form-control:not(:last-child),.kenta-input-group .select2-selection--single:not(:last-child),.kenta-input-group [type=email]:not(:last-child),.kenta-input-group [type=number]:not(:last-child),.kenta-input-group [type=password]:not(:last-child),.kenta-input-group [type=search]:not(:last-child),.kenta-input-group [type=submit]:not(:last-child),.kenta-input-group [type=tel]:not(:last-child),.kenta-input-group [type=text]:not(:last-child),.kenta-input-group [type=url]:not(:last-child),.kenta-input-group select:not(:last-child),.kenta-input-group textarea:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kenta-input-group .kenta-form-control:not(:first-child),.kenta-input-group .select2-selection--single:not(:first-child),.kenta-input-group [type=email]:not(:first-child),.kenta-input-group [type=number]:not(:first-child),.kenta-input-group [type=password]:not(:first-child),.kenta-input-group [type=search]:not(:first-child),.kenta-input-group [type=submit]:not(:first-child),.kenta-input-group [type=tel]:not(:first-child),.kenta-input-group [type=text]:not(:first-child),.kenta-input-group [type=url]:not(:first-child),.kenta-input-group select:not(:first-child),.kenta-input-group textarea:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kenta-full-width-submit input[type=submit]{justify-content:center;width:100%}.kenta-inner-label{position:relative}.kenta-inner-label label{align-items:center;display:flex;height:100%;left:0;max-height:var(--kenta-form-control-height,45px);opacity:.85;padding:0 12px;position:absolute;top:0;transition:all .25s ease;z-index:1}.kenta-inner-label:focus-within label{opacity:0;transform:translate3d(20px,0,0);visibility:hidden}.kenta-not-empty-field label{opacity:0;transform:translate3d(20px,0,0);visibility:hidden}.mc4wp-response{text-align:center}.kenta-newsletter{--kenta-form-control-paddding:0.75em 2em;--kenta-form-control-radius:9999px;--kenta-form-control-height:auto}.kenta-newsletter .kenta-inner-label label{padding:0 2em}.kenta-newsletter [type=submit]{--kenta-button-padding:8px 36px 8px 36px!important;--kenta-button-radius:9999px!important}.kenta-comments-area .comment-list .comment-body a,.kenta-comments-area .comment-list .comment-meta .comment-author .fn .url,.kenta-comments-area .comment-list .comment-meta .comment-metadata a,.kenta-comments-area .comment-list .reply,.kenta-comments-area .comment-respond .comment-reply-title small,.kenta-comments-link{color:var(--kenta-comments-initial-color);transition:all .25s ease}.kenta-comments-area .comment-list .comment-body a:hover,.kenta-comments-area .comment-list .comment-meta .comment-author .fn .url:hover,.kenta-comments-area .comment-list .comment-meta .comment-metadata a:hover,.kenta-comments-area .comment-list .reply:hover,.kenta-comments-area .comment-respond .comment-reply-title small:hover,.kenta-comments-link:hover{color:var(--kenta-comments-hover-color)}.kenta-comments-area{--kenta-comments-initial-color:var(--kenta-accent-color);--kenta-comments-hover-color:var(--kenta-primary-color);color:var(--kenta-comments-initial-color)}.kenta-comments-area ol{list-style:none}.kenta-comments-area .comment-reply-title,.kenta-comments-area .comments-title{border-bottom:1px solid var(--kenta-base-300);font-size:.875rem;font-weight:500;padding-bottom:8px;position:relative;text-transform:uppercase}.kenta-comments-area .comment-reply-title:after,.kenta-comments-area .comments-title:after{background:var(--kenta-primary-color);bottom:-1px;content:" ";display:block;height:4px;left:0;position:absolute;width:3em}.kenta-comments-area .comment-list .comment-body{border-bottom-width:2px;border-color:var(--kenta-base-100);margin-bottom:12px;overflow-wrap:break-word;padding:12px;position:relative}.kenta-comments-area .comment-list>.comment:first-child>.comment-body{margin-top:0}.kenta-comments-area .comment-list .children{padding-left:24px}.kenta-comments-area .comment-list .comment-meta:after{clear:both;content:"";display:block}.kenta-comments-area .comment-list .comment-meta a{text-decoration:none}.kenta-comments-area .comment-list .comment-meta .comment-author img{border-radius:9999px;display:block;float:left;height:46px!important;margin:0 1rem 0 0;padding:0;width:46px!important}.kenta-comments-area .comment-list .comment-meta .comment-author .says{display:none}.kenta-comments-area .comment-list .comment-meta .comment-author .fn{display:inline-block;font-weight:700}.kenta-comments-area .comment-list .comment-meta .comment-metadata{font-size:.75rem;line-height:1rem}.kenta-comments-area .comment-list .comment-meta .edit-link{margin-left:10px}.kenta-comments-area .comment-list .comment-meta .comment-awaiting-moderation{display:block;font-size:.875rem;line-height:1.25rem;margin-top:24px}.kenta-comments-area .comment-list .comment-content{font-size:.875rem;line-height:1.25rem;margin-top:12px;padding-left:12px;padding-right:12px}.kenta-comments-area .comment-list .comment-content p{margin:0}.kenta-comments-area .comment-list .reply{display:inline-block;font-size:.875rem;line-height:1.25rem;margin-top:12px;-webkit-text-decoration-line:none;text-decoration-line:none}.kenta-comments-area .comment-list .reply,.kenta-comments-area .comment-list .reply a{text-decoration:none}.kenta-comments-area .comment-list .reply .comment-reply-link{padding-left:8px}.kenta-comments-area .comment-respond .comment-reply-title{margin-bottom:24px;margin-top:24px}.kenta-comments-area .comment-respond .comment-reply-title small{font-size:.875rem;font-weight:400;line-height:1.25rem;padding-left:.5rem;padding-right:.5rem}.kenta-comments-area .comment-respond .logged-in-as{display:none}.kenta-comments-area .comment-respond .comment-notes{font-size:.875rem;line-height:1.25rem}.kenta-comments-area .comment-respond .form-submit{padding-bottom:12px;padding-top:12px}.kenta-comments-area .comment-respond .comment-form-cookies-consent label{display:inline-block;font-size:.875rem;line-height:1.25rem}.kenta-comments-area .comment-form .required{color:#d00}.kenta-comments-area .comment-form>p{margin-bottom:24px}.kenta-comments-area .comment-form .comment-form-author,.kenta-comments-area .comment-form .comment-form-comment,.kenta-comments-area .comment-form .comment-form-email,.kenta-comments-area .comment-form .comment-form-url{position:relative}.kenta-comments-area .comment-form .comment-form-author label,.kenta-comments-area .comment-form .comment-form-comment label,.kenta-comments-area .comment-form .comment-form-email label,.kenta-comments-area .comment-form .comment-form-url label{align-items:center;display:flex;height:100%;left:0;max-height:var(--kenta-form-control-height,45px);opacity:.85;padding:0 12px;position:absolute;top:0;transition:all .25s ease;z-index:1}.kenta-comments-area .comment-form .comment-form-author:focus-within label,.kenta-comments-area .comment-form .comment-form-comment:focus-within label,.kenta-comments-area .comment-form .comment-form-email:focus-within label,.kenta-comments-area .comment-form .comment-form-url:focus-within label{opacity:0;transform:translate3d(20px,0,0);visibility:hidden}.kenta-newsletter .kenta-comments-area .comment-form .comment-form-author label,.kenta-newsletter .kenta-comments-area .comment-form .comment-form-comment label,.kenta-newsletter .kenta-comments-area .comment-form .comment-form-email label,.kenta-newsletter .kenta-comments-area .comment-form .comment-form-url label{padding:0 2em}.kenta-heading .heading-content{position:relative}.kenta-heading .heading-content:after{background:var(--kenta-heading-indicator,var(--kenta-primary-color));content:"";display:block}.kenta-heading.kenta-heading-style-1 .heading-content{border-bottom:1px solid var(--kenta-base-200);padding-bottom:8px}.kenta-heading.kenta-heading-style-1 .heading-content:after{bottom:-1px;height:4px;left:0;position:absolute;width:3em}.kenta-heading.kenta-heading-style-2 .heading-content{padding-left:.65em}.kenta-heading.kenta-heading-style-2 .heading-content:after{height:1.2em;left:0;margin-top:-.6em;position:absolute;top:50%;width:4px}.popup-triangle{border:.65em solid transparent;border-bottom:.65em solid var(--kenta-popup-color,var(--kenta-base-300));bottom:100%;content:" ";position:absolute}.wp-block-details summary{align-items:center;border-radius:inherit;cursor:pointer;display:flex;justify-content:space-between;position:relative}.wp-block-details summary::-webkit-details-marker{display:none}.wp-block-details summary::marker{content:"";display:none}.wp-block-details summary:after{background:currentcolor;content:"";display:inline-block;height:1.5em;inset:0 0 0 auto;margin-right:-.333em;mask-image:url('data:image/svg+xml;utf8,');-webkit-mask-image:url('data:image/svg+xml;utf8,');mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:contain;-webkit-mask-size:contain;opacity:1;position:absolute;transform:rotate(0deg);transition:transform .1s ease-in;width:1.5em}.wp-block-details[open]:not(.closing) summary:after{transform:rotate(180deg)}.wp-block-details section:not([hidden]){display:block}.kenta-widget{color:var(--kenta-widgets-text-color);margin-bottom:var(--kenta-widgets-spacing,0);position:relative}.kenta-widget ol,.kenta-widget ul{list-style:none outside none;margin:0;padding:0}.kenta-widget li,.kenta-widget ol>li,.kenta-widget ul>li{padding:0}.kenta-widget a{color:var(--kenta-widgets-link-initial,var(--kenta-primary-color));transition:all .25s ease}.kenta-widget a:hover{color:var(--kenta-widgets-link-hover,var(--kenta-primary-active))}.kenta-widget .widget-title{margin:0 0 12px}.kenta-widget [multiple],.kenta-widget [type=date],.kenta-widget [type=datetime-local],.kenta-widget [type=email],.kenta-widget [type=month],.kenta-widget [type=number],.kenta-widget [type=password],.kenta-widget [type=search],.kenta-widget [type=tel],.kenta-widget [type=text],.kenta-widget [type=time],.kenta-widget [type=url],.kenta-widget [type=week],.kenta-widget select,.kenta-widget textarea{background-color:transparent;border:1px solid var(--kenta-form-border-color,var(--kenta-base-200));border-radius:var(--kenta-form-control-radius,2px);display:block;transition:all .25s ease;width:100%}.kenta-widget [multiple]:focus,.kenta-widget [type=date]:focus,.kenta-widget [type=datetime-local]:focus,.kenta-widget [type=email]:focus,.kenta-widget [type=month]:focus,.kenta-widget [type=number]:focus,.kenta-widget [type=password]:focus,.kenta-widget [type=search]:focus,.kenta-widget [type=tel]:focus,.kenta-widget [type=text]:focus,.kenta-widget [type=time]:focus,.kenta-widget [type=url]:focus,.kenta-widget [type=week]:focus,.kenta-widget select:focus,.kenta-widget textarea:focus{border-color:var(--kenta-form-active-color,var(--kenta-primary-color));box-shadow:none;outline:none}.widget_product_tag_cloud a,.widget_tag_cloud a,.wp-block-tag-cloud a{background-color:var(--kenta-tag-cloud-background-initial,var(--kenta-base-color));border:1px solid var(--kenta-tag-cloud-border-initial-color,var(--kenta-base-200));border-radius:2px;color:var(--kenta-tag-cloud-text-initial,var(--kenta-accent-color));display:inline-block;margin-bottom:.5em;margin-right:.5em;padding:.25em 1em;text-decoration:none;transition:all .25s ease}.widget_product_tag_cloud a:hover,.widget_tag_cloud a:hover,.wp-block-tag-cloud a:hover{background-color:var(--kenta-tag-cloud-background-hover,var(--kenta-primary-color));border-color:var(--kenta-tag-cloud-border-hover-color,var(--kenta-primary-color));color:var(--kenta-tag-cloud-text-hover,var(--kenta-base-color))}.widget_rss .widget-title a.rsswidget:first-of-type{display:none}.widget_rss li{margin-bottom:12px}.gallery{display:flex;flex-wrap:wrap;list-style:none!important;margin-bottom:10px;overflow:hidden}.gallery-item{position:relative}.gallery-item img{margin:0;width:100%}.gallery-item *{display:block;height:100%}.wp-caption{position:relative}.gallery-caption,.wp-caption figcaption,.wp-caption-text,figcaption{margin-top:0;width:100%}body:not(.elementor-page) .gallery-item{display:inline-block;margin-bottom:5px;margin-right:5px;padding:0!important;text-align:center;vertical-align:top}.gallery-columns-1 .gallery-item{float:none!important;width:100%}.gallery-columns-2 .gallery-item{width:calc(50% - 3.5px)}.gallery-columns-3 .gallery-item{width:calc(33.33333% - 4.33333px)}.gallery-columns-4 .gallery-item{width:calc(25% - 4.75px)}.gallery-columns-5 .gallery-item{width:calc(20% - 5px)}.gallery-columns-6 .gallery-item{width:calc(16.66667% - 5.16667px)}.gallery-columns-7 .gallery-item{width:calc(14.28571% - 5.28571px)}.gallery-columns-8 .gallery-item{width:calc(12.5% - 5.375px)}.gallery-columns-9 .gallery-item{width:calc(11.11111% - 5.44444px)}.gallery-columns-2 .gallery-item:nth-child(2n+2),.gallery-columns-3 .gallery-item:nth-child(3n+3),.gallery-columns-4 .gallery-item:nth-child(4n+4),.gallery-columns-5 .gallery-item:nth-child(5n+5),.gallery-columns-6 .gallery-item:nth-child(6n+6),.gallery-columns-7 .gallery-item:nth-child(7n+7),.gallery-columns-8 .gallery-item:nth-child(8n+8),.gallery-columns-9 .gallery-item:nth-child(9n+9){margin-right:0!important}.gallery-columns-2 .gallery-item:nth-child(2n+2)+li,.gallery-columns-3 .gallery-item:nth-child(3n+3)+li,.gallery-columns-4 .gallery-item:nth-child(4n+4)+li,.gallery-columns-5 .gallery-item:nth-child(5n+5)+li,.gallery-columns-6 .gallery-item:nth-child(6n+6)+li,.gallery-columns-7 .gallery-item:nth-child(7n+7)+li,.gallery-columns-8 .gallery-item:nth-child(8n+8)+li,.gallery-columns-9 .gallery-item:nth-child(9n+9)+li{clear:both}.kenta-widget.widget_search label{display:block}.kenta-widget.widget_search button[type=submit]{height:100%}.kenta-widget form.search-form{position:relative}.kenta-widget form.search-form button{position:absolute;right:0;top:0}.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list){list-style:none;padding:0}.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list)>li{padding:var(--widget-list-pt,.2rem) var(--widget-list-pr,1rem) var(--widget-list-pb,.2rem) var(--widget-list-pl,1.4rem);position:relative}.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) li a{position:static}.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) li:not(.menu-item-has-children):before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;color:var(--kenta-primary-color);content:"\f02b";display:inline-block;display:var(--fa-display,inline-block);font-family:Font Awesome\ 6 Free;font-size:.6rem;font-style:normal;font-variant:normal;font-weight:900;left:0;line-height:1;margin-top:-.3rem;position:absolute;top:50%}.kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products,.wc-block-product-categories-list) .sub-menu{padding-left:1rem}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_archive ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-archives li:before{content:"\f0c6"!important;font-size:13px;top:9px}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_categories ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-categories li:before{content:"\f07c"!important}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_pages ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-page-list li:before{content:"\f15b"!important}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_meta ul li:before{content:"\f0c1"!important}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_comments ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-latest-comments li:before{content:"\f086"!important}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_recent_entries ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-latest-posts li:before{content:"\f02b"!important}.kenta-widget:not(.woocommerce) ul.wp-block-rss li .wp-block-rss__item-title{margin:0}.kenta-widget:not(.woocommerce) .kenta-widget:not(.woocommerce).widget_rss ul li:before,.kenta-widget:not(.woocommerce) ul.wp-block-rss li:before{content:"\f09e"!important}.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li{padding-left:0;padding-right:1.4rem}.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li:not(.menu-item-has-children):before{left:auto;right:0}.rtl .kenta-widget:not(.woocommerce) ul:not(.wp-block-social-links,.blocks-gallery-grid,.wc-block-grid__products) li:not(.menu-item-has-children) a:after{content:"\f053";left:0;right:auto}.kenta-to-top{align-items:center;background-color:var(--kenta-to-top-background-initial);bottom:var(--kenta-to-top-bottom-offset,40px);color:var(--kenta-to-top-icon-initial);display:flex;font-size:var(--kenta-to-top-icon-size);height:3em;justify-content:center;line-height:0;opacity:0;position:fixed;text-decoration:none;transition:all .25s ease;visibility:hidden;width:3em;z-index:999}.kenta-to-top.active{opacity:1;visibility:visible}.kenta-to-top [data-shortcut]{height:100%;left:0;position:absolute;top:0;width:100%}.kenta-to-top svg{transition:fill .25s ease}.kenta-to-top.kenta-to-top-left{left:var(--kenta-to-top-side-offset,40px)}.kenta-to-top.kenta-to-top-right{right:var(--kenta-to-top-side-offset,40px)}.kenta-to-top svg{fill:var(--kenta-to-top-icon-initial);height:var(--kenta-to-top-icon-size);width:var(--kenta-to-top-icon-size)}.kenta-to-top:hover{background-color:var(--kenta-to-top-background-hover);border-color:var(--lotta-border-hover-color);color:var(--kenta-to-top-icon-hover)}.kenta-to-top:hover svg{fill:var(--kenta-to-top-icon-hover)}.kenta-socials{display:flex}.kenta-socials .kenta-social-link{margin-right:var(--kenta-social-icons-spacing,0);text-decoration:none}.kenta-socials .kenta-social-link:last-of-type{margin-right:0}.kenta-socials .kenta-social-link .kenta-social-icon{color:var(--kenta-official-color);font-size:var(--kenta-social-icons-size,12px);transition:all .2s ease,opacity .2s ease}.kenta-socials .kenta-social-link.kenta-socials-official:hover .kenta-social-icon svg{opacity:.8}.kenta-socials.kenta-socials-custom .kenta-social-link .kenta-social-icon{color:var(--kenta-social-icon-initial-color)}.kenta-socials.kenta-socials-custom .kenta-social-link:hover .kenta-social-icon{color:var(--kenta-social-icon-hover-color)}.kenta-socials.kenta-socials-rounded .kenta-social-icon,.kenta-socials.kenta-socials-square .kenta-social-icon{align-items:center;border-radius:var(--kenta-social-icons-radius,3px);display:flex;height:calc(var(--kenta-social-icons-size)*2.5);justify-content:center;width:calc(var(--kenta-social-icons-size)*2.5)}.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon,.kenta-socials.kenta-socials-square.kenta-socials-solid .kenta-social-icon{background-color:var(--kenta-social-bg-initial-color)}.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon:hover,.kenta-socials.kenta-socials-square.kenta-socials-solid .kenta-social-icon:hover{background-color:var(--kenta-social-bg-hover-color)}.kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon,.kenta-socials.kenta-socials-square.kenta-socials-outline .kenta-social-icon{border:var(--kenta-social-icons-outline,1px solid);border-color:var(--kenta-social-border-initial-color)}.kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon:hover,.kenta-socials.kenta-socials-square.kenta-socials-outline .kenta-social-icon:hover{border-color:var(--kenta-social-border-hover-color)}.kenta-socials.kenta-socials-rounded.kenta-socials-outline .kenta-social-icon,.kenta-socials.kenta-socials-rounded.kenta-socials-solid .kenta-social-icon{--kenta-social-icons-radius:9999px}.kenta-particles-canvas{height:100%;left:0;position:absolute;top:0;width:100%;z-index:var(--kenta-particles-canvas-z-index,1)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-0{right:0}.z-\[1\]{z-index:1}.z-\[9\]{z-index:9}.mx-auto{margin-left:auto;margin-right:auto}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-gutter{margin-top:24px}.mb-gutter,.my-gutter{margin-bottom:24px}.mb-0{margin-bottom:0}.mr-2{margin-right:.5rem}.mb-half-gutter{margin-bottom:12px}.mb-2{margin-bottom:.5rem}.mt-half-gutter{margin-top:12px}.mt-60{margin-top:15rem}.mb-60{margin-bottom:15rem}.mt-10{margin-top:2.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-full{height:100%}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-screen-md{max-width:768px}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-base-300{border-color:var(--kenta-base-300)}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-base-color{background-color:var(--kenta-base-color)}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-half-gutter{padding:12px}.px-gutter{padding-right:24px}.pl-gutter,.px-gutter{padding-left:24px}.pr-gutter{padding-right:24px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-normal{line-height:1.5}.text-accent{color:var(--kenta-accent-color)}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity))}.text-accent-active{color:var(--kenta-accent-active)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-force-none,.transition-force-none *{transition:none!important}.clearfix:after{clear:both;content:"";display:block}.kenta-is-sticky{z-index:9999}.no-underline,.no-underline a{text-decoration:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.last\:mb-0:last-child{margin-bottom:0}.last\:mr-0:last-child{margin-right:0}@media (min-width:1024px){.lg\:flex-row{flex-direction:row}.lg\:flex-row-reverse{flex-direction:row-reverse}.lg\:pr-2{padding-right:.5rem}.lg\:pl-2{padding-left:.5rem}} diff --git a/wp-content/themes/kenta/dist/css/woo.css b/wp-content/themes/kenta/dist/css/woo.css new file mode 100644 index 0000000000..70830ef588 --- /dev/null +++ b/wp-content/themes/kenta/dist/css/woo.css @@ -0,0 +1,1138 @@ +.transition-force-none, .transition-force-none * { + transition: none !important; +} + +.clearfix::after { + display: block; + content: ""; + clear: both; +} + +.kenta-is-sticky { + z-index: 9999; +} + +.no-underline, +.no-underline a { + text-decoration: none; +} + +.screen-reader-text { + border: 0; + clip: rect(1px, 1px, 1px, 1px); + -webkit-clip-path: inset(50%); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + word-wrap: normal !important; +} +.screen-reader-text:focus { + background-color: #ddd; + clip: auto !important; + -webkit-clip-path: none; + clip-path: none; + color: #444; + display: block; + font-size: 1em; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; +} + +.wc-block-grid .wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-onsale, +.woocommerce .onsale { + font-size: 0.875rem; + display: flex; + align-items: center; + justify-content: center; + position: absolute; + text-align: center; + top: 0; + left: 0; + border-radius: 9999px; + padding: 0.45em 1em; + z-index: 1; + background-color: var(--kenta-woo-onsale-background, #fff); + color: var(--kenta-woo-onsale-color, var(--kenta-primary-color)); + margin: 1em; + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.woocommerce form .form-row.woocommerce-invalid label { + color: red; +} + +.woocommerce form .form-row.woocommerce-invalid .select2-container, +.woocommerce form .form-row.woocommerce-invalid input.input-text, +.woocommerce form .form-row.woocommerce-invalid select { + border-color: red; +} + +.woocommerce-store-notice, p.demo_store { + position: fixed; + bottom: 0; + top: auto; + left: 0; + right: 0; + margin: 0; + width: 100%; + font-size: 1em; + padding: 1em 0; + text-align: center; + color: var(--kenta-base-color); + z-index: 99998; + box-shadow: 0 1px 1em rgba(0, 0, 0, 0.2); + display: none; +} +.woocommerce-store-notice a, p.demo_store a { + color: var(--kenta-link-initial-color); +} +.woocommerce-store-notice a:hover, p.demo_store a:hover { + color: var(--kenta-link-hover-color); +} + +.admin-bar p.demo_store { + top: auto; +} + +.woocommerce-message, +.woocommerce-error, +.woocommerce-info { + padding: 1em 2em 1em 3.5em; + margin: 0 0 2em; + position: relative; + list-style: none outside; + width: auto; + word-wrap: break-word; + border-radius: 0.25rem; + border-width: 1px; + border-top-width: 4px; + border-color: var(--kenta-base-300); + background-color: var(--kenta-base-200); +} + +.woocommerce-message:before, .woocommerce-message:after, +.woocommerce-error:before, +.woocommerce-error:after, +.woocommerce-info:before, +.woocommerce-info:after { + content: ""; + display: table; +} + +.woocommerce-message:after, +.woocommerce-error:after, +.woocommerce-info:after { + clear: both; +} + +.woocommerce-message::before, +.woocommerce-error::before, +.woocommerce-info::before { + font-family: "WooCommerce"; + content: "\e028"; + display: inline-block; + position: absolute; + top: 1em; + left: 1.5em; +} + +.woocommerce-message .button, +.woocommerce-error .button, +.woocommerce-info .button { + float: right; +} + +.woocommerce-message li, +.woocommerce-error li, +.woocommerce-info li { + list-style: none outside !important; + padding-left: 0 !important; + margin-left: 0 !important; +} + +.rtl.woocommerce .price_label, +.rtl.woocommerce .price_label span { + /* rtl:ignore */ + direction: ltr; + unicode-bidi: embed; +} + +.woocommerce-message { + border-top-color: #8fae1b; +} + +.woocommerce-message::before { + content: "\e015"; + color: #8fae1b; +} + +.woocommerce-info { + border-top-color: #1e85be; +} + +.woocommerce-info::before { + color: #1e85be; +} + +.woocommerce-error { + border-top-color: #b81c23; +} + +.woocommerce-error::before { + content: "\e016"; + color: #b81c23; +} + +@font-face { + font-family: "star"; + src: url("../../../../plugins/woocommerce/assets/fonts/star.eot"); + src: url("../../../../plugins/woocommerce/assets/fonts/star.eot?#iefix") format("embedded-opentype"), url("../../../../plugins/woocommerce/assets/fonts/star.woff") format("woff"), url("../../../../plugins/woocommerce/assets/fonts/star.ttf") format("truetype"), url("../../../../plugins/woocommerce/assets/fonts/star.svg#star") format("svg"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "WooCommerce"; + src: url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.eot"); + src: url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.eot?#iefix") format("embedded-opentype"), url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.woff") format("woff"), url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.ttf") format("truetype"), url("../../../../plugins/woocommerce/assets/fonts/WooCommerce.svg#WooCommerce") format("svg"); + font-weight: normal; + font-style: normal; +} +.woocommerce::after { + display: block; + content: ""; + clear: both; +} +.woocommerce .quantity .qty { + width: 4em; + text-align: center; + margin-right: 0.5em; +} +.woocommerce .star-rating { + overflow: hidden; + position: relative; + display: inline-block; + height: 1em; + line-height: 1; + font-size: 0.85em; + width: 5.26em; + font-family: "star"; + color: #ffdc00; +} +.woocommerce .star-rating::before { + content: "sssss"; + top: 0; + left: 0; +} +.woocommerce .star-rating span { + overflow: hidden; + top: 0; + left: 0; + position: absolute; + padding-top: 1em; +} +.woocommerce .star-rating span::before { + content: "SSSSS"; + top: 0; + position: absolute; + left: 0; +} +.woocommerce .woocommerce p.stars a::before { + display: block; + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + line-height: 1; + font-family: "WooCommerce"; + content: "\e021"; + text-indent: 0; +} +.woocommerce p.stars a { + position: relative; + height: 1em; + width: 1em; + text-indent: -999em; + display: inline-block; + text-decoration: none; + color: var(--kenta-accent-color); +} +.woocommerce p.stars a::before { + display: block; + position: absolute; + top: 0; + left: 0; + width: 1em; + height: 1em; + line-height: 1; + font-family: "WooCommerce"; + content: "\e021"; + text-indent: 0; +} +.woocommerce p.stars a:hover ~ a::before { + content: "\e021"; +} +.woocommerce p.stars:hover a::before { + content: "\e020"; +} +.woocommerce p.stars.selected a.active::before { + content: "\e020"; +} +.woocommerce p.stars.selected a.active ~ a::before { + content: "\e021"; +} +.woocommerce p.stars.selected a:not(.active)::before { + content: "\e020"; +} + +.woocommerce #reviews #comments .commentlist { + list-style: none; + padding: 0; +} +.woocommerce #reviews #comments .commentlist .comment_container { + position: relative; + padding: 1em 0 1em 58px; +} +.woocommerce #reviews #comments .commentlist li { + padding: 0; + border-bottom-width: 1px; + border-bottom-style: solid; + border-color: inherit; +} +.woocommerce #reviews #comments .commentlist li img.avatar { + float: left; + position: absolute; + top: 0; + left: 0; + padding: 0; + width: 46px !important; + height: 46px !important; + margin: 1em 0 0 0; + border-radius: 50%; +} +.woocommerce #reviews #comments .commentlist li .meta { + margin-top: 0; + margin-bottom: 0.5em; +} +.woocommerce #reviews #comments .commentlist li .description p { + margin-top: 0; + margin-bottom: 0; +} + +.woocommerce #reviews .comment-form { + padding-top: 24px; + padding-bottom: 24px; +} + +.woocommerce .kenta-products-filters { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 24px; +} +.woocommerce .kenta-products-filters > * { + margin: 0; +} +.woocommerce .kenta-products { + list-style: none; + padding: 0; +} +.woocommerce .kenta-products li.product .kenta-product-wrapper { + height: 100%; +} +.woocommerce .kenta-products li.product a { + text-decoration: none; +} +.woocommerce .kenta-products li.product .price { + margin-bottom: 0.5em; +} +.woocommerce .kenta-products li.product .woocommerce-loop-product__title { + margin-bottom: 1em; +} +.woocommerce .kenta-products li.product .star-rating { + margin-bottom: 0.75em; +} +.woocommerce .kenta-products li.product .kenta-product-thumbnail { + position: relative; +} +.woocommerce .kenta-products li.product .kenta-product-thumbnail a { + display: block; +} +.woocommerce .kenta-products li.product .kenta-product-thumbnail img { + margin: 0; +} +.woocommerce .kenta-products li.product .onsale { + top: 0; + margin: 1em; +} +.woocommerce .kenta-products li.product .woocommerce-loop-product__title { + word-break: break-word; + margin-top: 0; +} +.woocommerce .kenta-products li.product .woocommerce-loop-product__title:hover { + color: var(--kenta-link-hover-color); +} +.woocommerce .kenta-products li.product .price { + display: block; + font-weight: 500; +} +.woocommerce .kenta-products li.product .price del { + opacity: 0.5; + display: inline-block; +} +.woocommerce .kenta-products li.product .button { + margin-top: 12px; +} +.woocommerce .kenta-products li.product .added_to_cart { + font-size: 0.85rem; + text-decoration: underline; + padding-left: 12px; + padding-right: 12px; +} +.woocommerce .kenta-products li.product .added_to_cart:hover { + color: var(--kenta-link-hover-color); +} + +.woocommerce div.product { + margin-bottom: 0; + position: relative; +} +.woocommerce div.product > * { + clear: both; + margin-bottom: 4rem; +} +.woocommerce div.product::after { + display: block; + content: ""; + clear: both; +} +.woocommerce div.product .kenta-woo-single-gallery { + position: relative; +} +.woocommerce div.product div.summary table.variations { + margin-bottom: 24px; + border: none; + border-bottom: 1px solid var(--kenta-base-300); +} +.woocommerce div.product div.summary table.variations tbody { + background: transparent; +} +.woocommerce div.product div.summary table.variations tr { + border-style: none; +} +.woocommerce div.product div.summary table.variations label { + margin-bottom: 4px; +} +.woocommerce div.product div.summary table.variations th, .woocommerce div.product div.summary table.variations td { + border: none; + display: block; + padding: 0; +} +.woocommerce div.product div.summary table.variations th { + padding-top: 12px; +} +.woocommerce div.product div.summary form.cart .quantity { + float: left; +} +.woocommerce div.product div.images img { + display: block; + width: 100%; + height: auto; + box-shadow: none; + -o-object-fit: cover; + object-fit: cover; +} +.woocommerce div.product div.images div.thumbnails { + padding-top: 1em; +} +.woocommerce div.product div.images div.images.woocommerce-product-gallery { + position: relative; + height: auto !important; +} +.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { + transition: all cubic-bezier(0.795, -0.035, 0, 1) 0.5s; + margin: 0; + padding: 0; +} +.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:before, +.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:after { + content: ""; + display: table; +} +.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:after { + clear: both; +} +.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg { + background-color: #fff; + opacity: 0; +} +.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder { + border: 1px solid #f2f2f2; +} +.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2) { + width: 25%; + display: inline-block; +} +.woocommerce div.product div.images .woocommerce-product-gallery__trigger { + position: absolute; + top: 0.5em; + right: 0.5em; + font-size: 2em; + z-index: 9; + width: 36px; + height: 36px; + background: var(--kenta-base-color); + text-indent: -9999px; + border-radius: 100%; + box-sizing: content-box; + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before { + content: ""; + display: block; + width: 10px; + height: 10px; + border: 2px solid var(--kenta-primary-color); + border-radius: 100%; + position: absolute; + top: 9px; + left: 9px; + box-sizing: content-box; +} +.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after { + content: ""; + display: block; + width: 2px; + height: 8px; + background: var(--kenta-primary-color); + border-radius: 6px; + position: absolute; + top: 19px; + left: 22px; + transform: rotate(-45deg); + box-sizing: content-box; +} +.woocommerce div.product div.images .flex-control-thumbs { + margin: 5px -5px 0; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + list-style: none; +} +.woocommerce div.product div.images .flex-control-thumbs li { + width: 25%; + padding: 5px; + margin: 0; +} +.woocommerce div.product div.images .flex-control-thumbs li img { + cursor: pointer; + opacity: 0.5; + margin: 0; + transition: all ease-in-out 0.2s; +} +.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, .woocommerce div.product div.images .flex-control-thumbs li img:hover { + opacity: 1; +} +.woocommerce div.product .product_meta { + margin-top: 2rem; + padding-top: 1rem; + border-top-width: 1px; + border-top-style: solid; + font-size: 0.85em; + line-height: 1.7; +} +.woocommerce div.product .woocommerce-tabs { + clear: both; + padding-bottom: 2rem; + border-bottom-width: 1px; + border-bottom-style: solid; +} +.woocommerce div.product .woocommerce-tabs ul.tabs { + list-style: none; + padding: 0; + margin: 0 0 2rem; + position: relative; + border-bottom-width: 1px; + border-bottom-style: solid; +} +.woocommerce div.product .woocommerce-tabs ul.tabs:before, .woocommerce div.product .woocommerce-tabs ul.tabs:after { + content: ""; + display: table; +} +.woocommerce div.product .woocommerce-tabs ul.tabs:after { + clear: both; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li { + position: relative; + margin: 0 0 -1px; + float: left; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li a { + display: inline-block; + padding: 0.4rem 1.2rem; + color: inherit; + text-decoration: none; + border-bottom-width: 3px; + border-bottom-style: solid; + border-color: transparent; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover, .woocommerce div.product .woocommerce-tabs ul.tabs li a:focus { + color: var(--kenta-primary-color); +} +.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { + color: var(--kenta-primary-color); + border-color: currentColor; +} +.woocommerce div.product .woocommerce-tabs .panel { + display: none; + margin: 0; +} +.woocommerce div.product .woocommerce-tabs .panel:first-of-type { + display: block; +} + +@media (min-width: 768px) { + .woocommerce div.product .kenta-woo-single-gallery { + float: left; + clear: none; + width: 60%; + } + .woocommerce div.product .kenta-woo-single-gallery ~ div.summary { + width: 40%; + float: right; + clear: none; + padding-left: 40px; + } + .woocommerce div.product div.images .flex-control-thumbs li { + width: 12.5%; + } +} +/** + Section title + */ +.woocommerce .related > h2, +.woocommerce .woocommerce-tabs .panel > h2:first-child, +.woocommerce #reviews #comments .woocommerce-Reviews-title, +.woocommerce #review_form #respond .comment-reply-title { + display: block; + position: relative; + border-bottom: 1px solid var(--kenta-base-300); + padding-bottom: 8px; + font-size: 0.875rem; + text-transform: uppercase; + font-weight: 500; +} +.woocommerce .related > h2::after, +.woocommerce .woocommerce-tabs .panel > h2:first-child::after, +.woocommerce #reviews #comments .woocommerce-Reviews-title::after, +.woocommerce #review_form #respond .comment-reply-title::after { + content: " "; + display: block; + width: 3em; + height: 4px; + background: var(--kenta-primary-color); + position: absolute; + left: 0; + bottom: -1px; +} + +.woocommerce table.shop_table .product-thumbnail img { + width: auto; + max-width: 70px; + margin: 0; +} +.woocommerce table td:last-child { + padding-right: 1.5rem; +} +.woocommerce td.product-remove { + text-align: center; +} +.woocommerce a.remove { + text-decoration: none; + font-size: 1.25rem; + line-height: 1; + opacity: 0.65; +} +.woocommerce a.remove:hover { + opacity: 1; +} +.woocommerce td.actions { + text-align: right; +} +.woocommerce .quantity input.qty { + display: inline-block; + margin-right: 0; +} +.woocommerce .coupon { + float: left; + display: flex; +} +.woocommerce .coupon label { + display: none; +} +.woocommerce .coupon .button { + white-space: nowrap; +} +.woocommerce .coupon input { + max-width: 220px; + margin-right: 12px; +} +.woocommerce ul#shipping_method { + list-style: none; +} +.woocommerce ul#shipping_method, .woocommerce ul#shipping_method li { + margin: 0; + padding: 0; +} + +.widget_shopping_cart .buttons a { + width: 100%; + justify-content: center; + margin-top: 0.5em; +} + +.woocommerce-cart .cart-collaterals .cart_totals, +.woocommerce-cart .cart-collaterals .cross-sells { + margin-top: 24px; + margin-bottom: 24px; + border-width: 1px; + border-color: var(--kenta-base-300); + background-color: var(--kenta-base-color); + padding-left: 24px; + padding-right: 24px; +} +.woocommerce-cart .cart-collaterals .cart_totals h2, +.woocommerce-cart .cart-collaterals .cross-sells h2 { + margin: 0px; + background-color: var(--kenta-base-200); + padding-left: 24px; + padding-right: 24px; + padding-top: 12px; + padding-bottom: 12px; + font-size: 1.25rem; + line-height: 1.75rem; + margin: 0 -24px 24px -24px; +} +.woocommerce-cart .cart-collaterals .cart_totals table td, +.woocommerce-cart .cart-collaterals .cart_totals table, +.woocommerce-cart .cart-collaterals .cross-sells table td, +.woocommerce-cart .cart-collaterals .cross-sells table { + border: none; +} +.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout, +.woocommerce-cart .cart-collaterals .cross-sells .wc-proceed-to-checkout { + margin-top: 24px; + margin-bottom: 24px; +} +.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout .button, +.woocommerce-cart .cart-collaterals .cross-sells .wc-proceed-to-checkout .button { + font-size: 1.15rem; + justify-content: center; + width: 100%; +} + +@media (min-width: 768px) { + .woocommerce .cart-collaterals .cart_totals, +.woocommerce-page .cart-collaterals .cart_totals { + width: 50%; + float: right; + } +} +.woocommerce table.cart .product-thumbnail, +.woocommerce #content table.cart .product-thumbnail, +.woocommerce-page table.cart .product-thumbnail, +.woocommerce-page #content table.cart .product-thumbnail { + text-align: center; +} + +.woocommerce table.shop_table_responsive tr td, +.woocommerce-page table.shop_table_responsive tr td { + white-space: normal; +} +@media (max-width: 768px) { + .woocommerce table.shop_table_responsive tr td, +.woocommerce-page table.shop_table_responsive tr td { + display: block; + border-top: 1px solid var(--kenta-base-300); + text-align: right; + } + .woocommerce table.shop_table_responsive tr td::before, +.woocommerce-page table.shop_table_responsive tr td::before { + content: attr(data-title) ": "; + font-weight: 700; + float: left; + } + .woocommerce table.shop_table_responsive tr td.product-thumbnail::before, .woocommerce table.shop_table_responsive tr td.product-remove::before, .woocommerce table.shop_table_responsive tr td.actions::before, +.woocommerce-page table.shop_table_responsive tr td.product-thumbnail::before, +.woocommerce-page table.shop_table_responsive tr td.product-remove::before, +.woocommerce-page table.shop_table_responsive tr td.actions::before { + display: none; + } + .woocommerce table.shop_table_responsive tbody th, +.woocommerce table.shop_table_responsive thead, +.woocommerce-page table.shop_table_responsive tbody th, +.woocommerce-page table.shop_table_responsive thead { + display: none; + } + .woocommerce table.shop_table_responsive .coupon, +.woocommerce-page table.shop_table_responsive .coupon { + float: none; + margin-bottom: 12px; + } + .woocommerce table.shop_table_responsive .coupon button.button, +.woocommerce table.shop_table_responsive .actions button.button, +.woocommerce-page table.shop_table_responsive .coupon button.button, +.woocommerce-page table.shop_table_responsive .actions button.button { + justify-content: center; + width: 100%; + } +} + +.woocommerce .checkout_coupon .form-row { + float: none; + margin: 0; + display: inline-block; +} +.woocommerce .kenta-woo-checkout-wrapper { + padding-top: 24px; + padding-bottom: 24px; +} +.woocommerce .kenta-woo-checkout-wrapper #order_review_heading, +.woocommerce .kenta-woo-checkout-wrapper .woocommerce-billing-fields > h3 { + margin-top: 0; +} +.woocommerce .wc-proceed-to-checkout .checkout-button { + margin-bottom: 12px; +} + +.woocommerce.woocommerce-checkout #payment ul.payment_methods, +.woocommerce-page.woocommerce-checkout #payment ul.payment_methods { + list-style: none; +} +.woocommerce.woocommerce-checkout #payment ul.payment_methods, .woocommerce.woocommerce-checkout #payment ul.payment_methods li, +.woocommerce-page.woocommerce-checkout #payment ul.payment_methods, +.woocommerce-page.woocommerce-checkout #payment ul.payment_methods li { + padding: 0; +} + +.woocommerce-cart #payment div.payment_box, +.woocommerce-checkout #payment div.payment_box, +#add_payment_method #payment div.payment_box { + position: relative; + box-sizing: border-box; + width: 100%; + padding: 0.5em 1.25em; + margin: 1em 0; + font-size: 0.92em; + border-radius: 2px; + line-height: 1.5; + background-color: var(--kenta-base-200); +} +.woocommerce-cart #payment div.payment_box::before, +.woocommerce-checkout #payment div.payment_box::before, +#add_payment_method #payment div.payment_box::before { + content: ""; + display: block; + border: 1em solid var(--kenta-base-200); + border-right-color: transparent; + border-left-color: transparent; + border-top-color: transparent; + position: absolute; + top: -1em; + left: 0; + margin: -1em 0 0 1em; +} + +@media (min-width: 768px) { + .woocommerce .kenta-woo-checkout-wrapper { + display: flex; + align-items: flex-start; + } + .woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-left-columns { + width: 55%; + flex-shrink: 0; + margin-right: 24px; + } + .woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns { + border-width: 1px; + border-color: var(--kenta-base-300); + background-color: var(--kenta-base-color); + padding: 24px; + flex-grow: 1; + } + .woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns ul { + padding: 0; + } + .woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns #place_order { + width: 100%; + justify-content: center; + font-size: 1.15rem; + } +} +.woocommerce .woocommerce-MyAccount-navigation { + margin-bottom: 24px; + background-color: var(--kenta-base-color); + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} +.woocommerce .woocommerce-MyAccount-navigation ul { + list-style: none; + margin: 0; + padding: 0; +} +.woocommerce .woocommerce-MyAccount-navigation ul li { + margin: 0px; + list-style-type: none; + border-bottom-width: 1px; + border-color: var(--kenta-base-300); + padding-left: 24px; + padding-right: 24px; + padding-top: 0px; + padding-bottom: 0px; +} +.woocommerce .woocommerce-MyAccount-navigation ul li:first-of-type { + border-top-width: 1px; +} +.woocommerce .woocommerce-MyAccount-navigation ul li a { + display: block; + line-height: 1; + opacity: 0.85; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: var(--kenta-accent-color); + -webkit-text-decoration-line: none; + text-decoration-line: none; + transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 200ms; +} +.woocommerce .woocommerce-MyAccount-navigation ul li a, +.woocommerce .woocommerce-MyAccount-navigation ul li a a { + text-decoration: none; +} +.woocommerce .woocommerce-MyAccount-navigation ul li a:hover { + color: var(--kenta-primary-color); +} +.woocommerce .woocommerce-MyAccount-navigation ul li a:hover, .woocommerce .woocommerce-MyAccount-navigation ul li a:hover::after { + opacity: 1; +} +.woocommerce .woocommerce-MyAccount-navigation ul li a::before { + display: none; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link a::after { + content: "\f15c"; + float: right; + opacity: 0.5; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-left: 1.5rem; + transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 200ms; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--dashboard a::after { + content: "\f3fd"; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--orders a::after { + content: "\f07a"; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--downloads a::after { + content: "\f1c6"; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--address a::after { + content: "\f3c5"; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--edit-account a::after { + content: "\f2bd"; +} +.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a::after { + content: "\f2f5"; +} + +@media (min-width: 768px) { + .woocommerce .woocommerce-MyAccount-navigation { + float: left; + width: 30%; + } + .woocommerce .woocommerce-MyAccount-content { + width: 65%; + float: right; + } +} +.select2-container--default .select2-selection--single { + min-height: calc(1.5em + 0.75rem + 2px); + padding: 0 !important; +} +.select2-container--default .select2-selection--single .select2-selection__rendered { + padding: 0.3rem 0.75rem; + line-height: 1.5rem; + color: var(--kenta-form-text-color, inherit); +} +.select2-container--default .select2-dropdown, +.select2-container--default .select2-search--dropdown .select2-search__field { + --tw-ring-color: var(--kenta-primary-color); + border-color: var(--kenta-form-border-color, var(--kenta-base-300)); +} +.select2-container--default .select2-dropdown { + background: var(--kenta-base-color); + color: var(--kenta-form-text-color, inherit); +} +.select2-container--default .select2-results__option { + outline: none; +} +.select2-container--default .select2-results__option[data-selected=true] { + background-color: var(--kenta-base-200); +} +.select2-container--default .select2-results__option--highlighted[aria-selected], +.select2-container--default .select2-results__option--highlighted[data-selected] { + background-color: var(--kenta-primary-color); +} + +.woocommerce ul.cart_list, +.woocommerce ul.product_list_widget { + list-style: none outside; + padding: 0; + margin: 0; +} +.woocommerce .widget_shopping_cart .cart_list li, +.woocommerce .widget_shopping_cart li, +.woocommerce ul.product_list_widget .cart_list li, +.woocommerce ul.product_list_widget li { + padding: 0.6em 1.5em 0.6em 5em; + min-height: 5em; + position: relative; + border-bottom: 1px solid var(--kenta-base-300); + margin: 0; + line-height: 1.5; +} +.woocommerce .widget_shopping_cart .cart_list li::after, +.woocommerce .widget_shopping_cart li::after, +.woocommerce ul.product_list_widget .cart_list li::after, +.woocommerce ul.product_list_widget li::after { + display: block; + content: ""; + clear: both; +} +.woocommerce .widget_shopping_cart .cart_list li a, +.woocommerce .widget_shopping_cart li a, +.woocommerce ul.product_list_widget .cart_list li a, +.woocommerce ul.product_list_widget li a { + display: block; + margin-bottom: 0.35em; +} +.woocommerce .widget_shopping_cart .cart_list li img, +.woocommerce .widget_shopping_cart li img, +.woocommerce ul.product_list_widget .cart_list li img, +.woocommerce ul.product_list_widget li img { + float: right; + margin-left: 4px; + width: 32px; + height: auto; + box-shadow: none; +} +.woocommerce .widget_shopping_cart .cart_list li .star-rating, +.woocommerce .widget_shopping_cart li .star-rating, +.woocommerce ul.product_list_widget .cart_list li .star-rating, +.woocommerce ul.product_list_widget li .star-rating { + float: none; + display: block; + margin-bottom: 0.5em; +} +.woocommerce ul.product_list_widget li img { + position: absolute; + left: 0; + width: 4em; + height: 4em; + margin: 0 0 0.5em 0; + top: 50%; + transform: translateY(-50%); + -o-object-fit: cover; + object-fit: cover; +} +.woocommerce .cart_list li .remove { + position: absolute; + font-size: 1.4rem; + line-height: 1; + right: 0; + top: 50%; + margin-bottom: 0; + margin-top: -0.5em; +} + +.wc-block-grid .wc-block-grid__products .wc-block-grid__product a img { + width: 100%; + margin: 0; +} +.wc-block-grid .wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-onsale { + border: none; + font-size: 0.65rem; +} + +.wc-block-grid__product-rating .star-rating, +.wc-block-grid__product-rating .wc-block-grid__product-rating__stars { + display: inline-block; + margin: 0; +} +.wc-block-grid__product-rating .star-rating:before, +.wc-block-grid__product-rating .wc-block-grid__product-rating__stars:before { + color: #ffdc00; +} + +.wc-block-grid__product-rating { + color: var(--kenta-accent-color); +} + +.wc-block-components-price-slider__range-input-progress { + --range-color: var(--kenta-primary-color); +} + +.wc-block-components-price-slider__range-input::-webkit-slider-thumb { + border-color: var(--kenta-primary-color); +} + +.wc-block-components-price-slider__range-input::-webkit-slider-thumb:hover { + background: var(--kenta-primary-color); +} + +.wc-block-components-price-slider__controls .wc-block-components-price-slider__amount { + max-width: 80px; +} + +.wc-block-price-filter__controls input { + font-size: 0.75rem; + max-width: 80px; + border-color: var(--kenta-form-border-color, var(--kenta-base-200)) !important; +} +.wc-block-price-filter__controls input:focus { + border-color: var(--kenta-form-active-color) !important; +} diff --git a/wp-content/themes/kenta/dist/css/woo.min.css b/wp-content/themes/kenta/dist/css/woo.min.css new file mode 100644 index 0000000000..a31d7edb9c --- /dev/null +++ b/wp-content/themes/kenta/dist/css/woo.min.css @@ -0,0 +1 @@ +.transition-force-none,.transition-force-none *{transition:none!important}.clearfix:after{clear:both;content:"";display:block}.kenta-is-sticky{z-index:9999}.no-underline,.no-underline a{text-decoration:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{clip:auto!important;background-color:#ddd;-webkit-clip-path:none;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.wc-block-grid .wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-onsale,.woocommerce .onsale{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);align-items:center;background-color:var(--kenta-woo-onsale-background,#fff);border-radius:9999px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:var(--kenta-woo-onsale-color,var(--kenta-primary-color));display:flex;font-size:.875rem;justify-content:center;left:0;margin:1em;padding:.45em 1em;position:absolute;text-align:center;top:0;z-index:1}.woocommerce form .form-row.woocommerce-invalid label{color:red}.woocommerce form .form-row.woocommerce-invalid .select2-container,.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:red}.woocommerce-store-notice,p.demo_store{bottom:0;box-shadow:0 1px 1em rgba(0,0,0,.2);color:var(--kenta-base-color);display:none;font-size:1em;left:0;margin:0;padding:1em 0;position:fixed;right:0;text-align:center;top:auto;width:100%;z-index:99998}.woocommerce-store-notice a,p.demo_store a{color:var(--kenta-link-initial-color)}.woocommerce-store-notice a:hover,p.demo_store a:hover{color:var(--kenta-link-hover-color)}.admin-bar p.demo_store{top:auto}.woocommerce-error,.woocommerce-info,.woocommerce-message{word-wrap:break-word;background-color:var(--kenta-base-200);border-color:var(--kenta-base-300);border-radius:.25rem;border-width:4px 1px 1px;list-style:none outside;margin:0 0 2em;padding:1em 2em 1em 3.5em;position:relative;width:auto}.woocommerce-error:after,.woocommerce-error:before,.woocommerce-info:after,.woocommerce-info:before,.woocommerce-message:after,.woocommerce-message:before{content:"";display:table}.woocommerce-error:after,.woocommerce-info:after,.woocommerce-message:after{clear:both}.woocommerce-error:before,.woocommerce-info:before,.woocommerce-message:before{content:"\e028";display:inline-block;font-family:WooCommerce;left:1.5em;position:absolute;top:1em}.woocommerce-error .button,.woocommerce-info .button,.woocommerce-message .button{float:right}.woocommerce-error li,.woocommerce-info li,.woocommerce-message li{list-style:none outside!important;margin-left:0!important;padding-left:0!important}.rtl.woocommerce .price_label,.rtl.woocommerce .price_label span{direction:ltr;unicode-bidi:embed}.woocommerce-message{border-top-color:#8fae1b}.woocommerce-message:before{color:#8fae1b;content:"\e015"}.woocommerce-info{border-top-color:#1e85be}.woocommerce-info:before{color:#1e85be}.woocommerce-error{border-top-color:#b81c23}.woocommerce-error:before{color:#b81c23;content:"\e016"}@font-face{font-family:star;font-style:normal;font-weight:400;src:url(../../../../plugins/woocommerce/assets/fonts/star.eot);src:url(../../../../plugins/woocommerce/assets/fonts/star.eot?#iefix) format("embedded-opentype"),url(../../../../plugins/woocommerce/assets/fonts/star.woff) format("woff"),url(../../../../plugins/woocommerce/assets/fonts/star.ttf) format("truetype"),url(../../../../plugins/woocommerce/assets/fonts/star.svg#star) format("svg")}@font-face{font-family:WooCommerce;font-style:normal;font-weight:400;src:url(../../../../plugins/woocommerce/assets/fonts/WooCommerce.eot);src:url(../../../../plugins/woocommerce/assets/fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../../../../plugins/woocommerce/assets/fonts/WooCommerce.woff) format("woff"),url(../../../../plugins/woocommerce/assets/fonts/WooCommerce.ttf) format("truetype"),url(../../../../plugins/woocommerce/assets/fonts/WooCommerce.svg#WooCommerce) format("svg")}.woocommerce:after{clear:both;content:"";display:block}.woocommerce .quantity .qty{margin-right:.5em;text-align:center;width:4em}.woocommerce .star-rating{color:#ffdc00;display:inline-block;font-family:star;font-size:.85em;height:1em;line-height:1;overflow:hidden;position:relative;width:5.26em}.woocommerce .star-rating:before{content:"sssss";left:0;top:0}.woocommerce .star-rating span{left:0;overflow:hidden;padding-top:1em;position:absolute;top:0}.woocommerce .star-rating span:before{content:"SSSSS";left:0;position:absolute;top:0}.woocommerce .woocommerce p.stars a:before{content:"\e021";display:block;font-family:WooCommerce;height:1em;left:0;line-height:1;position:absolute;text-indent:0;top:0;width:1em}.woocommerce p.stars a{color:var(--kenta-accent-color);display:inline-block;height:1em;position:relative;text-decoration:none;text-indent:-999em;width:1em}.woocommerce p.stars a:before{content:"\e021";display:block;font-family:WooCommerce;height:1em;left:0;line-height:1;position:absolute;text-indent:0;top:0;width:1em}.woocommerce p.stars a:hover~a:before{content:"\e021"}.woocommerce p.stars.selected a.active:before,.woocommerce p.stars:hover a:before{content:"\e020"}.woocommerce p.stars.selected a.active~a:before{content:"\e021"}.woocommerce p.stars.selected a:not(.active):before{content:"\e020"}.woocommerce #reviews #comments .commentlist{list-style:none;padding:0}.woocommerce #reviews #comments .commentlist .comment_container{padding:1em 0 1em 58px;position:relative}.woocommerce #reviews #comments .commentlist li{border-bottom-style:solid;border-bottom-width:1px;border-color:inherit;padding:0}.woocommerce #reviews #comments .commentlist li img.avatar{border-radius:50%;float:left;height:46px!important;left:0;margin:1em 0 0;padding:0;position:absolute;top:0;width:46px!important}.woocommerce #reviews #comments .commentlist li .meta{margin-bottom:.5em;margin-top:0}.woocommerce #reviews #comments .commentlist li .description p{margin-bottom:0;margin-top:0}.woocommerce #reviews .comment-form{padding-bottom:24px;padding-top:24px}.woocommerce .kenta-products-filters{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.woocommerce .kenta-products-filters>*{margin:0}.woocommerce .kenta-products{list-style:none;padding:0}.woocommerce .kenta-products li.product .kenta-product-wrapper{height:100%}.woocommerce .kenta-products li.product a{text-decoration:none}.woocommerce .kenta-products li.product .price{margin-bottom:.5em}.woocommerce .kenta-products li.product .woocommerce-loop-product__title{margin-bottom:1em}.woocommerce .kenta-products li.product .star-rating{margin-bottom:.75em}.woocommerce .kenta-products li.product .kenta-product-thumbnail{position:relative}.woocommerce .kenta-products li.product .kenta-product-thumbnail a{display:block}.woocommerce .kenta-products li.product .kenta-product-thumbnail img{margin:0}.woocommerce .kenta-products li.product .onsale{margin:1em;top:0}.woocommerce .kenta-products li.product .woocommerce-loop-product__title{margin-top:0;word-break:break-word}.woocommerce .kenta-products li.product .woocommerce-loop-product__title:hover{color:var(--kenta-link-hover-color)}.woocommerce .kenta-products li.product .price{display:block;font-weight:500}.woocommerce .kenta-products li.product .price del{display:inline-block;opacity:.5}.woocommerce .kenta-products li.product .button{margin-top:12px}.woocommerce .kenta-products li.product .added_to_cart{font-size:.85rem;padding-left:12px;padding-right:12px;text-decoration:underline}.woocommerce .kenta-products li.product .added_to_cart:hover{color:var(--kenta-link-hover-color)}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product>*{clear:both;margin-bottom:4rem}.woocommerce div.product:after{clear:both;content:"";display:block}.woocommerce div.product .kenta-woo-single-gallery{position:relative}.woocommerce div.product div.summary table.variations{border:none;border-bottom:1px solid var(--kenta-base-300);margin-bottom:24px}.woocommerce div.product div.summary table.variations tbody{background:transparent}.woocommerce div.product div.summary table.variations tr{border-style:none}.woocommerce div.product div.summary table.variations label{margin-bottom:4px}.woocommerce div.product div.summary table.variations td,.woocommerce div.product div.summary table.variations th{border:none;display:block;padding:0}.woocommerce div.product div.summary table.variations th{padding-top:12px}.woocommerce div.product div.summary form.cart .quantity{float:left}.woocommerce div.product div.images img{box-shadow:none;display:block;height:auto;-o-object-fit:cover;object-fit:cover;width:100%}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.images div.images.woocommerce-product-gallery{height:auto!important;position:relative}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{margin:0;padding:0;transition:all .5s cubic-bezier(.795,-.035,0,1)}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:after,.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:before{content:"";display:table}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:after{clear:both}.woocommerce div.product div.images .woocommerce-product-gallery__wrapper .zoomImg{background-color:#fff;opacity:0}.woocommerce div.product div.images .woocommerce-product-gallery__image--placeholder{border:1px solid #f2f2f2}.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2){display:inline-block;width:25%}.woocommerce div.product div.images .woocommerce-product-gallery__trigger{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background:var(--kenta-base-color);border-radius:100%;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-sizing:content-box;font-size:2em;height:36px;position:absolute;right:.5em;text-indent:-9999px;top:.5em;width:36px;z-index:9}.woocommerce div.product div.images .woocommerce-product-gallery__trigger:before{border:2px solid var(--kenta-primary-color);border-radius:100%;box-sizing:content-box;content:"";display:block;height:10px;left:9px;position:absolute;top:9px;width:10px}.woocommerce div.product div.images .woocommerce-product-gallery__trigger:after{background:var(--kenta-primary-color);border-radius:6px;box-sizing:content-box;content:"";display:block;height:8px;left:22px;position:absolute;top:19px;transform:rotate(-45deg);width:2px}.woocommerce div.product div.images .flex-control-thumbs{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;list-style:none;margin:5px -5px 0;padding:0}.woocommerce div.product div.images .flex-control-thumbs li{margin:0;padding:5px;width:25%}.woocommerce div.product div.images .flex-control-thumbs li img{cursor:pointer;margin:0;opacity:.5;transition:all .2s ease-in-out}.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,.woocommerce div.product div.images .flex-control-thumbs li img:hover{opacity:1}.woocommerce div.product .product_meta{border-top-style:solid;border-top-width:1px;font-size:.85em;line-height:1.7;margin-top:2rem;padding-top:1rem}.woocommerce div.product .woocommerce-tabs{border-bottom-style:solid;border-bottom-width:1px;clear:both;padding-bottom:2rem}.woocommerce div.product .woocommerce-tabs ul.tabs{border-bottom-style:solid;border-bottom-width:1px;list-style:none;margin:0 0 2rem;padding:0;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs:after,.woocommerce div.product .woocommerce-tabs ul.tabs:before{content:"";display:table}.woocommerce div.product .woocommerce-tabs ul.tabs:after{clear:both}.woocommerce div.product .woocommerce-tabs ul.tabs li{float:left;margin:0 0 -1px;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li a{border-bottom:3px solid;border-color:transparent;color:inherit;display:inline-block;padding:.4rem 1.2rem;text-decoration:none}.woocommerce div.product .woocommerce-tabs ul.tabs li a:focus,.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{color:var(--kenta-primary-color)}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{border-color:currentColor;color:var(--kenta-primary-color)}.woocommerce div.product .woocommerce-tabs .panel{display:none;margin:0}.woocommerce div.product .woocommerce-tabs .panel:first-of-type{display:block}@media (min-width:768px){.woocommerce div.product .kenta-woo-single-gallery{clear:none;float:left;width:60%}.woocommerce div.product .kenta-woo-single-gallery~div.summary{clear:none;float:right;padding-left:40px;width:40%}.woocommerce div.product div.images .flex-control-thumbs li{width:12.5%}}.woocommerce #review_form #respond .comment-reply-title,.woocommerce #reviews #comments .woocommerce-Reviews-title,.woocommerce .related>h2,.woocommerce .woocommerce-tabs .panel>h2:first-child{border-bottom:1px solid var(--kenta-base-300);display:block;font-size:.875rem;font-weight:500;padding-bottom:8px;position:relative;text-transform:uppercase}.woocommerce #review_form #respond .comment-reply-title:after,.woocommerce #reviews #comments .woocommerce-Reviews-title:after,.woocommerce .related>h2:after,.woocommerce .woocommerce-tabs .panel>h2:first-child:after{background:var(--kenta-primary-color);bottom:-1px;content:" ";display:block;height:4px;left:0;position:absolute;width:3em}.woocommerce table.shop_table .product-thumbnail img{margin:0;max-width:70px;width:auto}.woocommerce table td:last-child{padding-right:1.5rem}.woocommerce td.product-remove{text-align:center}.woocommerce a.remove{font-size:1.25rem;line-height:1;opacity:.65;text-decoration:none}.woocommerce a.remove:hover{opacity:1}.woocommerce td.actions{text-align:right}.woocommerce .quantity input.qty{display:inline-block;margin-right:0}.woocommerce .coupon{display:flex;float:left}.woocommerce .coupon label{display:none}.woocommerce .coupon .button{white-space:nowrap}.woocommerce .coupon input{margin-right:12px;max-width:220px}.woocommerce ul#shipping_method{list-style:none}.woocommerce ul#shipping_method,.woocommerce ul#shipping_method li{margin:0;padding:0}.widget_shopping_cart .buttons a{justify-content:center;margin-top:.5em;width:100%}.woocommerce-cart .cart-collaterals .cart_totals,.woocommerce-cart .cart-collaterals .cross-sells{background-color:var(--kenta-base-color);border-color:var(--kenta-base-300);border-width:1px;margin-bottom:24px;margin-top:24px;padding-left:24px;padding-right:24px}.woocommerce-cart .cart-collaterals .cart_totals h2,.woocommerce-cart .cart-collaterals .cross-sells h2{background-color:var(--kenta-base-200);font-size:1.25rem;line-height:1.75rem;margin:0;margin:0 -24px 24px;padding:12px 24px}.woocommerce-cart .cart-collaterals .cart_totals table,.woocommerce-cart .cart-collaterals .cart_totals table td,.woocommerce-cart .cart-collaterals .cross-sells table,.woocommerce-cart .cart-collaterals .cross-sells table td{border:none}.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout,.woocommerce-cart .cart-collaterals .cross-sells .wc-proceed-to-checkout{margin-bottom:24px;margin-top:24px}.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout .button,.woocommerce-cart .cart-collaterals .cross-sells .wc-proceed-to-checkout .button{font-size:1.15rem;justify-content:center;width:100%}@media (min-width:768px){.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals{float:right;width:50%}}.woocommerce #content table.cart .product-thumbnail,.woocommerce table.cart .product-thumbnail,.woocommerce-page #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail{text-align:center}.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{white-space:normal}@media (max-width:768px){.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{border-top:1px solid var(--kenta-base-300);display:block;text-align:right}.woocommerce table.shop_table_responsive tr td:before,.woocommerce-page table.shop_table_responsive tr td:before{content:attr(data-title) ": ";float:left;font-weight:700}.woocommerce table.shop_table_responsive tbody th,.woocommerce table.shop_table_responsive thead,.woocommerce table.shop_table_responsive tr td.actions:before,.woocommerce table.shop_table_responsive tr td.product-remove:before,.woocommerce table.shop_table_responsive tr td.product-thumbnail:before,.woocommerce-page table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive tr td.actions:before,.woocommerce-page table.shop_table_responsive tr td.product-remove:before,.woocommerce-page table.shop_table_responsive tr td.product-thumbnail:before{display:none}.woocommerce table.shop_table_responsive .coupon,.woocommerce-page table.shop_table_responsive .coupon{float:none;margin-bottom:12px}.woocommerce table.shop_table_responsive .actions button.button,.woocommerce table.shop_table_responsive .coupon button.button,.woocommerce-page table.shop_table_responsive .actions button.button,.woocommerce-page table.shop_table_responsive .coupon button.button{justify-content:center;width:100%}}.woocommerce .checkout_coupon .form-row{display:inline-block;float:none;margin:0}.woocommerce .kenta-woo-checkout-wrapper{padding-bottom:24px;padding-top:24px}.woocommerce .kenta-woo-checkout-wrapper #order_review_heading,.woocommerce .kenta-woo-checkout-wrapper .woocommerce-billing-fields>h3{margin-top:0}.woocommerce .wc-proceed-to-checkout .checkout-button{margin-bottom:12px}.woocommerce-page.woocommerce-checkout #payment ul.payment_methods,.woocommerce.woocommerce-checkout #payment ul.payment_methods{list-style:none}.woocommerce-page.woocommerce-checkout #payment ul.payment_methods,.woocommerce-page.woocommerce-checkout #payment ul.payment_methods li,.woocommerce.woocommerce-checkout #payment ul.payment_methods,.woocommerce.woocommerce-checkout #payment ul.payment_methods li{padding:0}#add_payment_method #payment div.payment_box,.woocommerce-cart #payment div.payment_box,.woocommerce-checkout #payment div.payment_box{background-color:var(--kenta-base-200);border-radius:2px;box-sizing:border-box;font-size:.92em;line-height:1.5;margin:1em 0;padding:.5em 1.25em;position:relative;width:100%}#add_payment_method #payment div.payment_box:before,.woocommerce-cart #payment div.payment_box:before,.woocommerce-checkout #payment div.payment_box:before{border:1em solid transparent;border-bottom:1em solid var(--kenta-base-200);content:"";display:block;left:0;margin:-1em 0 0 1em;position:absolute;top:-1em}@media (min-width:768px){.woocommerce .kenta-woo-checkout-wrapper{align-items:flex-start;display:flex}.woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-left-columns{flex-shrink:0;margin-right:24px;width:55%}.woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns{background-color:var(--kenta-base-color);border-color:var(--kenta-base-300);border-width:1px;flex-grow:1;padding:24px}.woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns ul{padding:0}.woocommerce .kenta-woo-checkout-wrapper .kenta-woo-checkout-right-columns #place_order{font-size:1.15rem;justify-content:center;width:100%}}.woocommerce .woocommerce-MyAccount-navigation{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:var(--kenta-base-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);margin-bottom:24px}.woocommerce .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}.woocommerce .woocommerce-MyAccount-navigation ul li{border-bottom-width:1px;border-color:var(--kenta-base-300);list-style-type:none;margin:0;padding:0 24px}.woocommerce .woocommerce-MyAccount-navigation ul li:first-of-type{border-top-width:1px}.woocommerce .woocommerce-MyAccount-navigation ul li a{color:var(--kenta-accent-color);display:block;line-height:1;opacity:.85;padding-bottom:1.25rem;padding-top:1.25rem;-webkit-text-decoration-line:none;text-decoration-line:none;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.woocommerce .woocommerce-MyAccount-navigation ul li a,.woocommerce .woocommerce-MyAccount-navigation ul li a a{text-decoration:none}.woocommerce .woocommerce-MyAccount-navigation ul li a:hover{color:var(--kenta-primary-color)}.woocommerce .woocommerce-MyAccount-navigation ul li a:hover,.woocommerce .woocommerce-MyAccount-navigation ul li a:hover:after{opacity:1}.woocommerce .woocommerce-MyAccount-navigation ul li a:before{display:none}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link a:after{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:auto;content:"\f15c";display:inline-block;float:right;font-family:Font Awesome\ 5 Free;font-style:normal;font-variant:normal;font-weight:900;line-height:1;margin-left:1.5rem;opacity:.5;transition-duration:.2s;transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--dashboard a:after{content:"\f3fd"}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--orders a:after{content:"\f07a"}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--downloads a:after{content:"\f1c6"}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--address a:after{content:"\f3c5"}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--edit-account a:after{content:"\f2bd"}.woocommerce .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a:after{content:"\f2f5"}@media (min-width:768px){.woocommerce .woocommerce-MyAccount-navigation{float:left;width:30%}.woocommerce .woocommerce-MyAccount-content{float:right;width:65%}}.select2-container--default .select2-selection--single{min-height:calc(1.5em + .75rem + 2px);padding:0!important}.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--kenta-form-text-color,inherit);line-height:1.5rem;padding:.3rem .75rem}.select2-container--default .select2-dropdown,.select2-container--default .select2-search--dropdown .select2-search__field{--tw-ring-color:var(--kenta-primary-color);border-color:var(--kenta-form-border-color,var(--kenta-base-300))}.select2-container--default .select2-dropdown{background:var(--kenta-base-color);color:var(--kenta-form-text-color,inherit)}.select2-container--default .select2-results__option{outline:none}.select2-container--default .select2-results__option[data-selected=true]{background-color:var(--kenta-base-200)}.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background-color:var(--kenta-primary-color)}.woocommerce ul.cart_list,.woocommerce ul.product_list_widget{list-style:none outside;margin:0;padding:0}.woocommerce .widget_shopping_cart .cart_list li,.woocommerce .widget_shopping_cart li,.woocommerce ul.product_list_widget .cart_list li,.woocommerce ul.product_list_widget li{border-bottom:1px solid var(--kenta-base-300);line-height:1.5;margin:0;min-height:5em;padding:.6em 1.5em .6em 5em;position:relative}.woocommerce .widget_shopping_cart .cart_list li:after,.woocommerce .widget_shopping_cart li:after,.woocommerce ul.product_list_widget .cart_list li:after,.woocommerce ul.product_list_widget li:after{clear:both;content:"";display:block}.woocommerce .widget_shopping_cart .cart_list li a,.woocommerce .widget_shopping_cart li a,.woocommerce ul.product_list_widget .cart_list li a,.woocommerce ul.product_list_widget li a{display:block;margin-bottom:.35em}.woocommerce .widget_shopping_cart .cart_list li img,.woocommerce .widget_shopping_cart li img,.woocommerce ul.product_list_widget .cart_list li img,.woocommerce ul.product_list_widget li img{box-shadow:none;float:right;height:auto;margin-left:4px;width:32px}.woocommerce .widget_shopping_cart .cart_list li .star-rating,.woocommerce .widget_shopping_cart li .star-rating,.woocommerce ul.product_list_widget .cart_list li .star-rating,.woocommerce ul.product_list_widget li .star-rating{display:block;float:none;margin-bottom:.5em}.woocommerce ul.product_list_widget li img{height:4em;left:0;margin:0 0 .5em;-o-object-fit:cover;object-fit:cover;position:absolute;top:50%;transform:translateY(-50%);width:4em}.woocommerce .cart_list li .remove{font-size:1.4rem;line-height:1;margin-bottom:0;margin-top:-.5em;position:absolute;right:0;top:50%}.wc-block-grid .wc-block-grid__products .wc-block-grid__product a img{margin:0;width:100%}.wc-block-grid .wc-block-grid__products .wc-block-grid__product .wc-block-grid__product-onsale{border:none;font-size:.65rem}.wc-block-grid__product-rating .star-rating,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars{display:inline-block;margin:0}.wc-block-grid__product-rating .star-rating:before,.wc-block-grid__product-rating .wc-block-grid__product-rating__stars:before{color:#ffdc00}.wc-block-grid__product-rating{color:var(--kenta-accent-color)}.wc-block-components-price-slider__range-input-progress{--range-color:var(--kenta-primary-color)}.wc-block-components-price-slider__range-input::-webkit-slider-thumb{border-color:var(--kenta-primary-color)}.wc-block-components-price-slider__range-input::-webkit-slider-thumb:hover{background:var(--kenta-primary-color)}.wc-block-components-price-slider__controls .wc-block-components-price-slider__amount{max-width:80px}.wc-block-price-filter__controls input{border-color:var(--kenta-form-border-color,var(--kenta-base-200))!important;font-size:.75rem;max-width:80px}.wc-block-price-filter__controls input:focus{border-color:var(--kenta-form-active-color)!important} diff --git a/wp-content/themes/kenta/dist/images/above-header.png b/wp-content/themes/kenta/dist/images/above-header.png new file mode 100644 index 0000000000000000000000000000000000000000..33497e2515dfa34ade09e2657a401147746c146c GIT binary patch literal 902 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9<5>*?Yc zQW5v|?nmFyK%R!eNQblw2K}ck+D}{XUz99hG}Yo%RLFg2z1_BU|9AcGcjndo&G2@5 z@a*~f^Vae#dOi=@BE;2RmDY0zbaQxf2xN1H>8pydPZO|+UDH2*znq=6RdiC;Si;k>Hwzo3c=r(=3o@LV2jqpEVbsuJ!JVD1GDZu6FIkr)#S2YplL4Ru;}KseC<2IZXEV#fhD! zyY`fxq>}OGaciu$D9!hL@MXVQaavK*RY3(LOSX!>{`aq1cB-%P{kydp#l=ZmHIIJm z7Ifd&iNp~L~i8}u6i@EUYk|#{_e1Q(Jl5VM(u6iL%$2x4^ z1-HZo$&E}C=Gi)}u`yORQ@&6pl6UN4>3qQq?P-BC%CBnh7$}D^Op?{+KiRpLbBkCBf9m6tYtn$R&deOWT=3_)!M&*P_@mBQxD>=R9JTf?9Nw4pPiGR-Os?4A-zG^&47 zyYMZ1^7mt}zU3Y@;`&^4Ya`Q{4$+1bpp8XI`AoU)5AQ|X-M2QvEiul|8e-v_h)NH? zH@*wrYTS`teS5p;>Ld}nyMbDdv5nJC vc&-UQvP$BpyY`)xkA=D;+-vJT{?RvHH|^n5huK}gjK$#T>gTe~DWM4fy_Av3 literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/archive-left-sidebar.png b/wp-content/themes/kenta/dist/images/archive-left-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..9e0f5ca58193085ca78c5457a53504aa212454d3 GIT binary patch literal 1042 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9)04odk#H$OMRGB-Nnp#g}1st5j=)!o=DaABH zbj|$z@$cQ1+UxJ%XFL7!%M$bFRhAPUf4ouRw>Z8#!Sv?7n#l>GTQ()>w!gUMbx>$c zDT`rNzweI&7VDrnKTcmvvX|;{eY|5gQZM3mLD8*dV#| zL)eecIE9Mw~2Bx<*u-5`34 zYqwIG_8YD3Ydo^?ga^njv_Yoy#Y5W7F$0%{2`P2bt`% zDh^hKJb(Cl9@m=f+xKsXsr>Q$x%|&%pZhMZcik{6Cw`yj2Ck^yl5mTvY4OnpzqSH3 zPrEJ{eu;}iZ0(2UWAnMzT)f@BwqUu=8rv2zooh3mxE<*_T2<(AW<%1!v?+(KYhCkO z{xmUP!yxqNrH8)*6SOwW*%+~5(l)(_HR9(YRBQh}sg}R>gSBzTpZI16o3{ft#)MfX2TtIFG3Q21__8|#B&{bCGF~eW(S{56)@P9d_Em* z3cZlCB;Onus9|et3e9f@{w`}y$W0$+i_R*%Z8@;80s6{pM-G_4(0llw!LZ@=XPEhGwE3oxZg7y}$RGxN<%?h`zqG75| z;wqj-q1rB?rWH#X5?qURR;*-d+8UyH-Ia?YOl5labS(qXh<(p%SH8`CJ;~gGJ8br` z?sC<%7VY{Xg&HRcmGMC4N%lwGTZy>&jw9{cLcIvCZ8WQM>p>r{q0Rw@Z23 zZ|pwwc1up@6cx{{qTA*)REIchNMQ(c*dP$es}*6?prH`av4%}lN76w=K*uGlnQI!4 c0@ohqo$)6BPn@dw49w&Vp00i_>zopr06$I6{{R30 literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/archive-right-sidebar.png b/wp-content/themes/kenta/dist/images/archive-right-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..a58cde6704509532118984d55024f9aa9ab5de43 GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9`GYc{u=}NddB|@e{Kp~7}^|JpW zugiA-EuS)P{`~fJncw!-{P|Owalg~`{=S-Bx2HvLzUrMfcXmqz?*`?ia}Qg5n;xOO z<^MjnB-tGT-4W%S9&5e}r)-&gWKzW9cXwjlb&>>EdmYeNGwIY-Pn}NDjolGPl)|Pq z1V*S%T|GHMNIOY!jk(MuBSjtFIPOPm_A&M(PxO-JkzC9#dG zSb7d=t&EuqG*@tUhpSFfD5pegXwc4GmpiBKHkrGdW!f*@x$mA`ea<1EeZ1`Txg)oJ z{V1Lt@3m(7^!JuQ&2#6^v*TGir&j-nl-0LiN=a8EmumU{53%?iTgPJkJ8qiSnkgTD zed82Zef~@rQ{&PjvubN3T3M6Xy=;hN;$cim-H~^HYQ$~r35*VFc&@+QEtFl&YQ)en_2I7C@TA=J4r~k?jbgUH_geE- z^aKOQ{Qn}iKX#!{$~EVeIhD6J1+eDvS0LE-E{9YO{&bQN30xX|5Y>OVt?0g zPH6E4XYF8ZP-p_fpM=n~>QvpRR0h;>WR;Ks*Xkujr9$3Gu5WsAQI;J^p(oA zBV9Lu;SZ12xqfTzEPZ)Lb;FhamGAT7YWo;A7UgVz=d)&Qzy0=~OOJdiy<-_zSN5)k z*<|CU^ov$KkC&dQn+!}VsZ6)k!e&l5WYM@(NZaqU^b}4V)oX9gtIpea>fSak|N2jU zYsB7{ecX0F;z-u+OHmuvM(BEVEoPZkb*yXBr9G|*nj3o#UAwuxd%J8aSb@VDv2{6x z&kbtsOt9>}EN`Bo=Y9Pur_H{7d&BN8`5Wus5OLl3{v+AWtw#;x_j@MAp0DXHSGgv3 syymZ3XQ}OH-Fp)wqGdjRo&ATAgU{sunO}jcfmx8j)78&qol`;+0OUEby#N3J literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/behind-header.png b/wp-content/themes/kenta/dist/images/behind-header.png new file mode 100644 index 0000000000000000000000000000000000000000..ebcdc32ee78e3bf1bc56acc57de72d5fc3535577 GIT binary patch literal 880 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9<*?&;zf zQW5v|*2UalM}gMFI}9rugTl<|&adBRz5D0) z?=w5!oL;{E{(Soi#R7vy?u~qEtL|_!CJ8D!HAD!m=@RN@7Gyfol@K~5LZ(ANA&h19 zq9czSS{ODeMTp93Ups$XKX19`gU{RL&x-Cm-Z?dS_a38-)0DSA%wkFw&Nk)vE$f|N zz41)kdM2N&>i3$SYm)6(oL(iEEtw_ltF$3D$+zjb&UQ|LZdsruzq-F(vuFLEHnaME z|DAge79CLvbMa4d-Js>A!{@>wpxqQ2m{h2M(^=D>+v`gRSj=MB*r&GY9yTwOtcmdV z-+#w%@`1yLk3Z|W^Z3ZAjj?evBTi4eU0~X{v2&|b%ilg#gD@TAu>Xs;9%3?15><$` zby{O*tZk-juuU}Y*u}#296h4m+HZER5*3>vxSHW)&(-#nqxV>jZ9BAgqt)Mtjav@w zo0GN%taawbUlZ2cn0??z*beismx>B$gCjRtSo_m;tzA6~8>cP&x8F=k`&!@qt8>@(z31XKcUZ%;WVL(8 z)%3KZX`nzqYhm?Hv~eTQz}j$VjNu9PB?pbK<vm>CB|H|qIZDXr%a=;rX|5Xj~Xn=aJN?9H)7^!2xIzbCb*$5$19Ug%qO zBrCYfS?56|l~cHB?x`}b4&^C|s>@44$j=1e~){Cch6g!e*BZV!dl z=&6daPZLnM24h*ouIZn@U(fT%(*Noo-kx3_EGYOo_6iRV=ce*HHqPAf{f zDyV>AVeZjgyMG%>{potLZvFlBJHCaM3%w4#Q6;Aoc79jIRaVX|ZzIIdTnuGpxz&|= z{M79P5w;nE+6*r*hIdR&e|98|%IE=c2}y%v!`2!| zvc|?3s?sVL<$=;1swb2`U4(*v!2C?zx#!nOG+?effJ8*}2*!q0!X@N7QU+xo4a9hKm zVjU(oNw``#!t^@r^UKCUXZvG3QPCqLuA-kkRE%DwZ)fmw^e)78&qol`;+0B&!h A^8f$< literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/kenta-logo-light.png b/wp-content/themes/kenta/dist/images/kenta-logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..2dd25fe434a90fbc1d5509aecb67a36d66a36e36 GIT binary patch literal 24570 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 literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/left-sidebar.png b/wp-content/themes/kenta/dist/images/left-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..7e40a1a9326280bce6c420abb8730b938bb39844 GIT binary patch literal 939 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9wjb46s{(Sp(x%LRfoa>xQ*A`vNTVwOF({+u_Y_XXgt~yDn z0uj>pj6a>;*za)qVXeH-MM;*ZuGEV7aAhm=T*1DG=nT_H?=@4Mel?inS#E4fIy$lY zjM9ZoqG<;ws{1Wi8X?>MUHMjc%;MV~NvW4~&bY2|+Hv|yxb(fwQl^c3R!zBK99wc) zwe03IYQdL}|uN7YvW=xnuuiAm~>(~@RxEQ?ww zx{rTC#1Ssx9k{FC#Q5$K+uSw-{SM=g}pKEKRW zEoo}PR1>cSsoFh<1g5(Ky$SS#;}$27H`CS#O`D`9kZ}{}YLAVRfxb*T7jb%K$}`Kd zs*m<}dP*lrc1Ps579^+c-SYow=e|Re`weYnH%{_)&@m6&6qNsRi&K)|Yd)rn(h=Hw znBPrPz37y4^ReJHA?=-BM=o(qo@$h=+qi4vq_0MMc5j?Cb=TgFUS<^&mgKE@;xu#P zorsfOGl9XX>Ls{(Z$#@ok6K_*8ef}xJ}*)c=!eoDav_Ol&6oD=lT^H>cIJAt&zjd) z|6K9E^XZtC>BnxFbzqNFZ#~574Ga~ZgtzleS|@Y)Cm4^Bo{-CIPSR9!97(8A5T-G@yGywqi CWT4dm literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/narrow.png b/wp-content/themes/kenta/dist/images/narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..35b45b4a4bd14ff6f14cccab96a84cfc0fabf6c2 GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9<*;_2cT zQW5v|c3{yJ2OihJO^loVr?&Aju+{{u3s`zQLN2rB*=^n3`SJFeGoQTueg3?-Jd2;& z2e&noJGH)dGi>a*;M5SI8zHJH#va8Xu$p!Cq9czSxEYhSCWMwOiIA7SKgY-8!Qa2x zI~IK}O8WX~?;5L(Tq{(=7%x2(N)nwRxSF9e!crya=^2%K46y(<0QFr$-3APFXsoT9ipS`r+yWdq3N`b$#VpTkyH2YwvUher9S$1o^c}MA1M&IwsVZsrq>4Fk7BQ^_E&ib!t5Ts)qRyQRou~Bj( z*95-l0@~?mN1Z?}aO#u$>5#A_A}aCS%CLw8w>3;E#$kLXyZ*AcZ9DWg;w@N8Z<*xk z13eL}9%*Z2CW-#$?8#~Uz46vTkBwUn#rPP9fek$a3j;7uC5#UkD8`+kU=us1IxB^p z^MM4GXVTLN9aD`bN3fs%@- zw7QjHW7GyOowXApbXhvCHkGC%ZG97R(VJ7?bF8&C}8gduiZdQn8SU_oK&~~Y_pb^4&N5AYg{{zHiBKa>IJ`#Lg_>0 TvKwx|{KMes>gTe~DWM4fjM#Ta literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/normal.png b/wp-content/themes/kenta/dist/images/normal.png new file mode 100644 index 0000000000000000000000000000000000000000..0d592ed4b294bb1125e85b5b3346c006a812dd13 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9?;D=`dB1Gttv!9{?c2xCJLNfa)C!!} z9CfjLH<=+x@sJo($5vMDb|o>s9L0u+=nX|0Ne>S|1-+8)zF#kp+M&FPW!vGnlL&9iph ze4{mc*UkQJ0dLieI@_d~{428dOiBuE^?mo3Wl87`d%5xzUJgRt)4%_?u{kW*W@Q;` zQs$pS;mX$-jOIl!PpF%!5H?3L+~L9OhAmtVIU4tKD2U~uxN}m(pRgUNYGLi?{)u%* zge8CBo~$%Yo=s?{z=U}bdcG45_cy4By^pA4j-9KKDynqtmEo_s(_t#Y7J3Um`Jk-O zc~t9*^ov(6nyUpihV@^3zei-_AA<=eT7j0v&QfTXXY|wwTX^3gT-__OwPR~lPu=sS z9Z%aEUG#u{cyWov@(+hc(nhYoY`d%iPieWVxtjdNnt$V;v`b2YNn0fr#|w8nHJ>cj zDX{ve#NSyCI{RmC@o0(AJ@(={OVZD?OI($XWEr~cR}(m$ucj-c7}jn0%d|0~&Ny=- z$Hu6hi|aX$e46dq?b2~Isi)3YVcLD4C>5tQV#!~!m0We~c~puN75-*#g85^=+Hc;H z(nV83J0eyee^DOS6;UVQ@x;j?sudO%t1sj)SS`GCjnk1RTetn6gN}SU?4TshbV;iu zvq`3oMP;MbxxFBMJ-SS$VX_e`=V=R zV^Q*rvp=Ha>-xnVrauJdv6@!cr0z+6c)*WojZ>K7>Vl){J?}RriKNHNRwNy@2)6ZL z*vRG>D5l&Hu_yUspXl#1HtU|rYP%UemDLuT_-ZnT$LbF%0bis*adQ7g(gy9Y^z6;v|u$?C2|yUqwSZQ~d-nOwj5%xGrMuCN9C%i?lYL z(M&q36jUq3m?=7sr7JF(ML_#l_bW%H4pWYjbUTbo)vN` h4H3-?G`a;V*mcB8AL`YvlLKZy22WQ%mvv4FO#rHrkLCaX literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/recommend-plugins/kenta-blocks.png b/wp-content/themes/kenta/dist/images/recommend-plugins/kenta-blocks.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb684d45b888ed693a8ffdd0203da4d34044712 GIT binary patch literal 7850 zcmbVx1z1ym+y5v<1VIF8m_t%vV{{{p(%mq|=xuaKNh2U4l2Vci2nv$Y-5ruDDIg%- z_#S?BJ1WpMYZG<{*nd!l7QH{xjBhKp`M0;;PW{1UquQ(zsvF>gX z5J1yEO+Y*S!xrQE7fb+PP%nfNl$Qr~WzrvnR>*(ooZMX;{}674grXc#XcWfH6`xOl;#r`j>|9Sjx0sv@LRsWIkKk9-;|0BZHP2K}A<1aw|M`~9cZzmK~3+0M+ zcR`}$JpeVCudHzrm32WO+^{Y>SghmUj?(yBWiTAh0|T?GB9L~ND^Oq(IPE zA>0uES7Ixqs5RCFjQ~uxLnCZZP$!HH1pE(>qOw>=tP3C*(2nn4?<>p7YPevn?Hqvz zu3CyRU}bq(L0%C-L2ft??;q-_s){OOT-^{DBuZIM0s_FpV`pb23g@>(Sn>-9a9dgl zTXXYUiy*m0_z{-eeAa@zmcj^OxBwjf_j)-j()}t3{$6kO|G8e>#STb9gyVnA=PEU? zqDNH8&K2;h_g~4QjdK3$%Fzz|N5F_8kXMNy0YP3x0LlvT*KNE17=b_8dfK7@rvHby z_>;^PYwhNVa6vt^0nqw?h&(8uKJ+SS|Fi`9-;Mm^*}o+C-{e5mxVrqOTme7+DR?Lh zP~}{Jau)0@rVawp2rA1x)bUE&O!t2EYCQc&YEb)NY+}5^O?P_^929i(ExXt{waE)z zITPzK;dm4r%Npsxk5#iK=W|}@TZ-|HSAjc=^U(+t1>-_EzfqIfO5c?id{{aE+2L!F zO^Q@u5jxi}b$z`gf8F&K{lJ@zwVA<-!}`X}%MuOG?L@t-H1c*O1JW^)BlbtcbjuJj z#x2cP)PgMwPO({SzqH7ucRm$odM9w5o{#j3LO4kx+SmB7Ak*3HOa+`}1 z(C>0FX$J@TXb2`8C+B{a>9sxc=3%Er@cL|hwXy=~tw^63)DwH&i479BA+*K*c z%5NFkUcFV-?v0KQ*Hx9QWFU?s>`_|wF%i6x-WAFo_KScSgrmVvVy?tW85dXVV{L9{ zb2&z|qF!VnlY^2ToGF906|zFH4cj)8Z(zAPTpl+RQyM(QYCzOexMcVm0)+CY>}Gyy zxe|ILYKwyHv2{&~cMbRI_PqzR8y+X#?(s=g^GD8gEVlw%IS{<-WFfcf;n6BMgff|a zrW4c>JuUt5>0HSx3lrV9xL8fi8nF7{_6=jdV*A}PXLT~HK6x}GLECWeq;kZOZdKH$Eh*W$%f zTZ^sCno8^jKgkc_5|#+M*ig2>;-{3)IOKvjh9XsHZBX-{i0-O+F4vVR-XXfe=cEHO zKTp%-NR}d05yVn%GV5U~uQsTbt242+UtZYVTbqvaoG~^?t!WKr!5bOM9@0W4?J zPLO5_xNy}Mt9Gq??XAr@v=*}G-%!|mYU;0t+4<;EkQuB90SVKSKO_1sO+*ZtjDgzB zk3|;=qkJ)?ZA@{7<^7$zN8)v72oTnjoLFLqz;DHd10+FQ3c|Zb}VS?1&~msT7&>&xY-rPL=8@L*k z>I~)s3n`eyJ{Mk|&ZN27^d-PEfHfZw>JdudP}`C3m5-H9`4kV!9%#bfFOcNl%hS|F zF99GJz-RhrH#k2Sy6nL!83{iYc6YA7H}hb67Feul9seO|EsVJV#(x!gx`gdM=k7UO zxl!+DJ<{Xb`DXiSAys}7WB?*_oju%U^A|8BMPqtm2v2xOx6|d5Qn2*>5;EfahoR2M zp6UZ5wwnc?lU-x*I113p$bJv0Qq1lLf15z$d)}d@trzTkB!<5C8ga?wpISZ2n@Pea zP!LGwiTR9;pKbO3eI?rpX@ePP5eWCw?=+R9VD7A?chm{U%hF> z_PDgv>bo12?(^C61JiKkt3$D;N zD1cd7^gG_={d4Bc8+wk1AAIA(k0c2#E3GP_EK+tG=Y-M}1V+;fDs^K$>W!k$>DWYE ze9T-uUs4*^70)i9_U6en1BgrwSK5ELwGD>)un zBrf!^v92Mi^x_=${jCZ*kCzET?TZtUEp4nHw3EYCcQh-Y^D5K4LxeiP`$>3a0>FKS zGAl>ome$spk7O4{XgEY>DD&Fwj^|}C&qoBF11_$ky3bYYPsP8u3%8_oN`W~XgwdzX zmo?YTK|8M=!Qbp&LRnp>yyey>w)#{~r_=p!F-8U93WmR$n&cq-dJ;`&b@)?Shn4XW zbF!O>=er7_2B*0^ynu0N<7oTE*O|wv?`d|)tS~FP>jVE@pu5Vac1b3wrL|TO+BDm(*fof+Hs* zadmIqXy%AhdRJH8Iw)pbC%$KVN6389Vn;=&%50+zA+e{^m#)>EKlk(@(_$78nA;(l zTXcQ!g~?StivR5&B85JZHM#a$F4Q!;;a<6^ZS+rNDTdT*3d*?+BM}N6X2<=;4CmI~ z4}?i({g5obe+|i-XnhR;7dN9VK1>F5$*N|l;U5q`cZeBn8rhhuMw8Fn3bVsRE$$UK zi4rHrEJT>?4k{el-0Y-iY3BbS&#F=ecMpo8W1AXG9!cDzAf|T1v7JuAqsl3Y@kKjJ zm>Zj@N3nIUXW&NlKau?;&`H*_uQSa;e0tl^Vi;;v_7Ss&y*`|YoU@u z?Pp@Sx@?0#M_2`Cbu)UYbairfa?fEZ0MY?8m2oOuDv{`97Om^5YV)g5bHSb#R1TN#-j;$Okc`vTq}ax7o9$ut zT-{=iNSDV5Dg&!Krk75sR!R!kaXyrEri!@NCbo;iQZVy;!{iIN6%0Jg|IeCs`nltKLtfDsLY^W z6sU0JR*A1mq*HZO%@P||5kLS)s-LHg)}2U`fivbNM>z!qtXIBjH7^)qfTr4%TF^4q zoS#K7l*Ad{Mzu2WE3`(y*Xw@IRgZPt`*^VkTl)~*oL|sVsF>6_8wj={(yo8QZ?Dp< zhp?C@rn*^BlPuOQlGUUZKyUk8bCEwyfEAV;O^vgU8fizV)K*7hf1j`eV3gTMC5_M2 z{gk4`(`~g*Vi(%5AT#NS*J^&lFB+BM0Ohc0=BM%;@Niz1M~O%@wq`E8-;^{n`r3ZE zLLG2AJkEkc98z5WYkw7Lc_7GCiaz|cbsfiOhCJ)eTPLMtk_GQ&GKh1i1~`6}MyjLd z{hqyncx!)}1HDL$NQxfNk_LNNNjE$Rgonw)Lu4+J;XTo^Pb{9a-2_KXvAawjV76-K zRe|y&RCQ)BzJzSe0Kb3lj9-4MO0~r)6))3Jj5|YXhhQYjc5EWqKzy*DfzNbSd@99N zh=lIYs=QxuT7pR!an+*Pk43X9{iG^VnW4!J%A~${1 zNLSZOpUBe0E|2${3HnpFZ7T;UE9RMIx3H3&E*O4p9sIb$9+4t@?|@__D0RPqBH@pK+e%(rd7iSB zmRaF#9zpq9qOPKK@OtJx{Y_UT0IDZBiJ^jPejJZ*mU_Nd3Kyl;)m3)4CSD*$Zqo$o zs;h>6&s87~72h#@ge$Bldj77@?i(wVPLk+5T0M}Zyp)bXtMovUoV6axf|C|1FynWA zq(HjiaVj!TdmV?~BeGV(73&{xzu^62+#liZueTIC?(VJ#GKopuvN?Buol!eDb{_lb z>)|E)jVw~=`|YLG2QyzTlwZlgLgzU(H{rxbI0JRSP|f6DnH}>!V7v z1T0m>VO1xwzz)1d5dG3%=$!>S42Ru5-?actC}9JFYiCVH7WnOa%niytRgoF*V@~a2DVcMpN&zt=`fh;Zk5wE0R9tDsaVzha+WpLp`wMI&X_%7W@%5#R>F0 zM2|qwl8vP`bEbkGv>b)Bo{o%WC>7)9SBCmu)K8~B6+3r&9=UvCcGfynkzM>2DQuo$ z-g_h!FdWzr5TKl6xIcw=m@)VprTlzj*P{B}w!+SzRC$9JJ^H$?f54@YjS z-1h-NoAdmNM+738@gg|Py|hN`svim}9Ly6hS|#VbKI3(x@bB??2Z6egy!pN*&)5&LX5F)H-h9WMIb+CO+N$>_aBR>_IPA{Elv zhkPL&``x$ZFTdX>mK8n$ef8TB9&DUfh?!C1FM-*V1)KX`jA*OLPu37ezvnAIQ^MaP zqw-6OY@zA48{&_-5p&l_f@ACWEEZ;b@TGS@Q_bHYt+z92Z$(OtK9P#<8AtB9-8mvf z&S;qwn(=Lup+UPrO;aFSnZS?nx#zM>b15j{R%Dgu@yWro8iir&=73x85dW`hqqAP` zK(FR%}ScBIB2i;&4yCMY_+`J0D4b(k-#PQNrl3EOrzNp->??p&pcLzA0UL#}=cmp>4O6 zSJ1IHXkMGl86F~(yd_eRqq!mY!4vy}>9WDQtJAaYf%0DG?L+z)mn@Niup{x=->rCV zr|RiHW(ukSoN`A(kpy=E{F+dTvCvg~<|Fpl5jV8hSI7!xl%uEZr@G{aPUzL4z-C1vC)}VX)avN2>Sx}ol91Y>_l=4MBEumb`GR_6?Vjzcfn5cYX(WG**+>XeainPd8D-TD^+^(ZI^JUd=Xpw^H#*w zWVHQ8DZj9K5I-tg8j|;IO~tZo&D+;-(eCp*(%esIFmWMhU-YS$Njsfd=Hx0i>X_{?HgNus?H`-sto4ru$vs!bh8M+t6F6|!rG_%xkQEGl&+(9{+ohWyN z^D;sOc0aff!8tmrVWTh#SLV{}N>jpYD1oWvE`80ozt&dmL|Yz&F4xgZQ|sXTkkim6 z+Wtx8vQdH8`1J9}4W-(rna$hVv;KL0zdVG}lkISUPQ#qRl3rv-o6T-9baPD4S`Qu* z9hZ9H`PhbBCuYW``uNa1TC#vn8`yA0ytuxNaC$=Epn*v`KA2(f-OK3M!%&*rzNJkj zUhtlC%6^FbQ9GAe^UD6z>Ut~>+G2_%VRb+H=61&Aw{ z=G_(`^|v&eu+Gcx6O%9t2;0Jq-MedAk((nJy)Dk)gg- zUQlOvO`TcM%GzXOX*iE$*8QSsdH~pd@BZ9=J@sic)?!5StLxy1MuH%5N@o5czBFxN zOs-Xo{)GGPx;2z^&ZuAeh=0Ww^;09xeNFsciX6Bz+&&+Dc9d|YvXWzB<}LtHlwZ}ZXE~TdfJcU@+6k~yz})Y zzBmVGVYC4!JpJJ~qL`FsLc{bhh+Q#-u|QWn9NNA($gt4vo-XdAk4HK$UdI^xWt5?= zNaE?h{oNCJcX4M=W_{wOve*J0|5GDin5amoT%i`MiVM@ctE2lMqJ){?c2Pf3Gdig$ zV~1Mu_r9c=!Dw^*5kDNe-n2(l13sKRA0A1-S4GY{3aQVHb{*WgZaww;EY-umt}emv z%!li27-d_irx61ok^vc(J+Y{t3CwN@o0DK{&D7oPN5!agmv@2*13?Uz{4P4y9YB7~ zjdzVq;g$b1$L{XNHab}E@koi5KR?Z&%z42o`S{@taMYn;ECS8;K=6sTg&O78TCC2z z_%(BbFeGn>nR)jePk~>dGY;4GPhy_H6S}dEv}V2j;HAye<7T;^c0=E`Rlb!7?kp3y zi`V65^w5`PZ$CDgsNPPwh<2wt9x#6{g1-IeYM-_PM3A?)AJtm2if+t}V70!-KmA{H z4<78C$WRcRf9Kc4J{zVoKIwQV+Th>$&5JnYjwIfL3;UzIpP;J&6b=Ndj zo4W2uCpu!Y1hGWi@0?oQ)iUaAbmk?(%!ye{##K!p^@cJBa%HoV#XLCv{8C4U z4j7ub}UeQ;tBJs*NMc;&9w%D zh4eFBhFX{sPpX8bPo|#f8NFWoG8YzSKSdgH(-^RLxEcUxgmaWl1o%%d_%U5y*Rzgr z#q7F+hD^Nct;zJ{nAZ(LQqE7c>2bSW)?cd>OIA?h@by_xYjqqx%0RLQMGlhlbeTvu zblokoCT`J=X@R63n-QIQc}1T8$1f57dilVtb${7{b=4FRLcgHN# Ruii$3l;zdrN@Og8{tG5FCgA`8 literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/recommend-plugins/kenta-companion.png b/wp-content/themes/kenta/dist/images/recommend-plugins/kenta-companion.png new file mode 100644 index 0000000000000000000000000000000000000000..2b046c0ad04958d1963904f007ca09550a80daee GIT binary patch literal 6201 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 Y%9hPv>U-$s;h+1u+80q}nvN0w1>q>_A^-pY literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/recommend-plugins/plover-kit.png b/wp-content/themes/kenta/dist/images/recommend-plugins/plover-kit.png new file mode 100644 index 0000000000000000000000000000000000000000..2ecbd842803f8506c1a14a511e3433f992dff259 GIT binary patch literal 1220 zcmZXTeLNEg7{{N@Yz%eYdZTU~Ar(jHjoG?oR=8zTyK=D&b*qSs)-{%jrtIcoEc4RJ zO3G{D__Qm{S+ zvlt=uGayte)5pU2O^kS2OjLX#GcFQ{5izVt9A!UqcVuuRGlCa;C(;`L6-6Nt>4%=Z z&G!wUZMAAy&ivIq7Nmjhvf1rpcH!!!voL}m`mT9(9 z9Pa4BZ9abgCfeWLEl4a;SNx2mOuQ{+JlFO53~8p&NaOwepWA(O8+6~>to2sa5?*zs zf2F^Spl3EwdJz9v1)S@#Q^!Q79PMfo@PA1ZN65N?if~+ zn3P{o|Mg@Z`_a3)o5R&;>Qa{YscK}NHk4N*(rT||+e6Dtx!?-T{5W%ZFt3Gtt6SqU zN1e0A_!p6>>#BR63=bzwfZX+g;RoG^vWCM!o)<=T7uCbayM)~-Rc}Cz4WBIz|UYk zGbUtfn{wvkPiy=mq|kJb7BQ145A!PNYE|pn(@@89Dy;fn?F)!Zv*;`M@VIs~bWD7- zao1_cS$J}Ks&e+LxEgr{*5X{OKQy>EI-Pp)NcF)0#{qzP^DO@aR=EdPNO7Ry9rrzd> zFEsj+l{~gj-Pmpl2c&Ikj7Ny(DWd3ZCtW>cC>RLhDof-YCcrC*%H>LtIAwWnY!#Z& zBk^_huv&-$@;FbasC#S;xayIxaiL!`jHP+i#x<@hOp3Z##elJcBZHFZR|x8BUFYHV zzb&|BNEj(i#^m0(v3_fcOq<+M`}-mM9!&aNJ!6-xplAAPIff@C*CX^O7KIR48Pm53-IWK@~^j47R({XeYPZyNHwR5{S-pRm zHM!6e((ywXR)gRonvP~BKTX)4x1MPpBX&YJNqYizJ;5Fy+EP3*(LgUsEyH>#91?F& zmebw5Jfpvn%>88Vz>+%}pMjK{&PR71@!q+G@Ml@pb6zq9WOB|f_W7OY`<8D|kVq1a z9@#LwAkXam#MNLzp({3l);fTi50aJ>UT*LPUw6rOml*oy$X&Ijs_Vds}!Y7HLz{4<-6HoHDar@-j2kiTHnm|1C7{ bLLbr;7G#8=Yqnh@>4gW%rXW(;#_*IcNq!R< literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/right-sidebar.png b/wp-content/themes/kenta/dist/images/right-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..4c84dc44cca2f5bd362dbee3945ab61bdf7bc2f1 GIT binary patch literal 932 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ!N9;A?djqe zQW5v|?!}3h19;pLw=r&G=UOEB>PDJIhuk!_hMVfnK8s#!-|YMPG%{#X@%gC#6}FS7 z$JfWr-y`6m_Q7dQ%A#Yn0t#Y+UK|3eSynGR^2mXcF==Xo>68c=4Mm4FLTlRc#9sgX zt6t^F5*Kg(zx>kl{QHydrQV()pC4~-DwHj}?T%WKZpE&orzc%?lAhk&GQ&kDNl@D( zq4*frxo|Vj1+f+LpDeZYSTHx@(C=E~cTbls2$oMhBDL`9f@u-b@?VON79HK??oeU> z^XlfiS~fo`W1cMLgFNZ+Jb}nY0 zDJlXAVN5Q{d7J{>qN*$%p-opWlqJP}w7V84Red4fab85Fl#q7+Qcp*ww_%ABx;J?; zy*;vtOT9O8OLVJI*gW4OT8Wt%6C8GjN<3MVGs(evW6B!OOFac#*vJd9{aoTb3?FHh0oSwcd?fcaNV6&ZwRAL2u7=3pYqO ze4bk_sqJAA@T}`;m*|C*JuMMOq_(SFaMVd+HIdX;6x(=gEoX^9cLbyFG4Br7HHFzs zvPYD{943DhN)pVzGs}T}V+TQPrssT)t2CDNtNDMrB&Tx0Pv?9x>sgK|kw9O94eB+% zZ0Nb*uGSoAOc;e-=y8}Cs*wzK!ZizH*~u)o)*kYVyVcBctFtuaSk$^cWqbDvz3r)C z4?T^V0h0)Sif~HQvj)->dVy zU#ec$^w8*9U%Nu`TlU*pclt|zSx2_2$Fv@*-u1kmH>djOs-snZN+h$78&BByt@-Y^ zu2j)$UT$lm_AR~K`aNh*+j_x_=^HaP@HYY@Q}Onj#m63(Z{+eXl7Ia%&^DZPxC^az7=J^DFOpRQrll=b-=Mxn>~*K zBm2cs&YXWQ?{yb{{Hn$&kS(;}TPf3#BscUFFVxMf%2LN{R@eMt<%;hwfZ2}0)78&q Iol`;+03h3&5&!@I literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/sidebar-style-1.png b/wp-content/themes/kenta/dist/images/sidebar-style-1.png new file mode 100644 index 0000000000000000000000000000000000000000..45ce741ab4fd7f66e82c9fdbd492373c4b757015 GIT binary patch literal 1223 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ0p!+sx;TbZ z#J!z+zxRrPK>JQ{zgtEbO?nwjRtxy78q{7isc9rHeaw2pTDD6m>3qEP=6~Nxj~h?E zUn6O~ulxJM@AuD3+i3`_Il!F2s@=6aot1%GAV`E^jYwo6SA@ZYMGOf`Pjm$zXlfK; zWzcpFnna@IWpO??yKi@Ce*U5f=jfDxjPVXeP+t(-bLKbQ<=!PK}AdTW=hl4DVuKSCUh?CGC#v|`qIWNu`8EyBpm&$^lb&B_nR*& zZ4IUy1sb*r@4uz@P4{n>9KdO54Jc1?l;<7?LoCs=nZcUiO1=9T5~ ztZNaQt*41a94I>UP;wsUH1+iz8yiFyF1qNh7IBGhyKn66sW*;4T6v*kU#*1f>2-6f zmn=)(+00wU5Yfy!J#XTMe$$Nxmy|X-TJ7^FS@Ut$|LzkZJAk&&cYhJ__`RIfwTiPZ zBj%VH_wP~_fB*SOoVroM+Thm6vfap6rf#wXgg;^R$qY64saH7bZJBUb^(aBw22iPog)PRckF5ec@hxb=g#DwyQ&ig=WL8@WTw=t8$uRUpFS7?3=p4P_LY;;^3wdo!sy&(X&@J zE>MVPoX7RqG|q@AK{xW-pKi7_HNDe&43c}Fir)Im%yf@M;(qu6?l60&b*$arV`|Ud z+nW$Mk1P6Q)_e)Z(=os9G{$Wx+Wfkjea$|%V4Xb)kyg{TX>aT|W#x^(pgNz+QsfBx z+1D9XAOU8b15$iq|6fd3+IcVY{k!$w zRJbFm*n->`!n)R^E&sE4ex%iZhqLE)e|g$*iG6+O?65qJkkdDRPwSJfp3iPI&ENj| z3olvk-&qm~J1>0TJ;!o-`po(*oI3RpHeWUHgs)mQFMq3UmsZQ% z8xnCKYSo>`dS#v)Ec&e3Hk=8btedU#K6EF49J5Y7XWX&$Ceg_Y?{;T?y~g2hf$E*g^=cxwdDYiS$i80Es<`&ERzbzBGnK(=o4L3c!dkUN&j@bd5?kwZ hsv&ft7i;k!X0y7L|4(PcO9D$K22WQ%mvv4FO#onbE*Ss- literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/images/sidebar-style-2.png b/wp-content/themes/kenta/dist/images/sidebar-style-2.png new file mode 100644 index 0000000000000000000000000000000000000000..4a5efb3b6d8aef18b58e8e0a1d40ebb12608676d GIT binary patch literal 1186 zcmeAS@N?(olHy`uVBq!ia0vp^(||aOgAGW=1+HiSQY^(zo*^7SP{WbZ0pvz{x;TbZ z#J!z+xA2OAh}%tZqs^%SEI?!&;vgGxfX6j}%{AcIxt8e@cqc^8SyQ|Jw{qm_$=73I zJ>8FA-_&vT;lq#5dF=%})CwHdq%2xet<(_F5#YqI(QCsbk&OilS{Rb1Ca7vAJ#^q? zJfd~b>(c6^xqi#h@}ytk3)-;ra5U_ zZVOuTrmHlvS4TqNw9`tBWkG8eDbBvEG)*$JE@5fJyso8TOHGwJroQjCT&y(B@}(b> z;OfUt3fGwaWh}q({9(UY8lQ)C+{fv$_kS_2EIoh3GHla?j<4()&)94>xxCq^^rb0x zs%_Z&uBBYv5ssEhXSI)Z^=L2FO-cqD~_Z1Ou*UN!~LUi_- zT|U1{)BOG4g7cS+lg@6w=9}IX;ahnA^35qpcklndb(ib@-Mz80mot*x*38vti?ELD z*nhY{*1V_e>-^_dw`MF~6Y+bOSzfV8N9pX>w`#+JyG(E8wniuZe%)dVwsW0rLBK{U zy)&uTZA9OtC@T54{+@Lxw=eBfSLtl;o$DiYk8av0WB7%8b2mbeyM<;=XRCGN%fGFNaGsaE zGxOpF9|f&xI~Ol<&-#OYrosq9YgN;~wjKxHhkA3GbR}>{KuI&*bKLy*rzNbh2AF z`#IH`@@!m_!u?3=sFuXKDVJ2IU12_`$Fyg|t3z&!b(w-ydjB}5Lf9Nd$v8!W zr4cpHZJ$T2_>)!iEqGz-v4{NY6{oR&F7sI$aeMD|w;l7i1hvxxwT_-z7vXzuW6_35 zsl5(gb}TfH4L|zI_J!oH{;sDhBeFuHqS>cM+~F#|5|-C$X}j%oQ^ebd{VzB-ig~Pv zuryN&<8$A{!LrOoLG*{fD;1!ncev(m)0tJMozg!wSt!X?(89*%-yXLqT~i-RifXqj zN3t*lzuU-S*J8z~FilwI>@`jWu{H+>m4edGde0PPnEneo=(K1kHbkgKcy>it1UNk~ ZUtMwbfBvGojle>O!PC{xWt~$(697FG5Pkpv literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/dist/js/admin.asset.php b/wp-content/themes/kenta/dist/js/admin.asset.php new file mode 100644 index 0000000000..06a5d68eff --- /dev/null +++ b/wp-content/themes/kenta/dist/js/admin.asset.php @@ -0,0 +1 @@ + array('jquery'), 'version' => '86c92e054075d299'); diff --git a/wp-content/themes/kenta/dist/js/admin.js b/wp-content/themes/kenta/dist/js/admin.js new file mode 100644 index 0000000000..6d2efba718 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/admin.js @@ -0,0 +1,124 @@ +(() => { + "use strict"; + var __webpack_modules__ = { + 59: (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var NoticeDismiss = { + init: function init($) { + $(".kenta-theme-notice .kenta-notice-dismiss").click((function() { + var $notice = $(this).parents(".is-dismissible"); + var dismiss_url = $notice.attr("data-dismiss-url"); + if (dismiss_url) { + $.ajax({ + url: dismiss_url, + complete: function complete() { + $notice.hide(); + } + }); + } + })); + } + }; + const __WEBPACK_DEFAULT_EXPORT__ = NoticeDismiss; + }, + 60: (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var StarterSites = { + init: function init($) { + $(".kenta-install-cmp-action").click((function(ev) { + if (!window.KentaAdmin) { + return; + } + ev.preventDefault(); + var $btn = $(this); + var text = $btn.html(); + $(".kenta-install-cmp-action").attr("disabled", "disabled"); + $btn.html('Processing'); + $.ajax({ + url: window.KentaAdmin.install_cmp_url, + complete: function complete() { + var redirect = $btn.attr("data-redirect"); + if (redirect) { + window.location.href = redirect; + } else { + $btn.html(text); + $(".kenta-install-cmp-action").removeAttr("disabled"); + } + } + }); + })); + } + }; + const __WEBPACK_DEFAULT_EXPORT__ = StarterSites; + }, + 58: module => { + module.exports = window["jQuery"]; + } + }; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __webpack_require__); + return module.exports; + } + (() => { + __webpack_require__.n = module => { + var getter = module && module.__esModule ? () => module["default"] : () => module; + __webpack_require__.d(getter, { + a: getter + }); + return getter; + }; + })(); + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + var __webpack_exports__ = {}; + (() => { + __webpack_require__.r(__webpack_exports__); + var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58); + var jquery__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); + var _admin_dismiss_notices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59); + var _admin_starter_sites__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60); + jquery__WEBPACK_IMPORTED_MODULE_0___default()((function($) { + _admin_dismiss_notices__WEBPACK_IMPORTED_MODULE_1__["default"].init($); + _admin_starter_sites__WEBPACK_IMPORTED_MODULE_2__["default"].init($); + })); + })(); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/admin.min.asset.php b/wp-content/themes/kenta/dist/js/admin.min.asset.php new file mode 100644 index 0000000000..ac40af59c2 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/admin.min.asset.php @@ -0,0 +1 @@ + array('jquery'), 'version' => '4dc1fa5b6b4323f4'); diff --git a/wp-content/themes/kenta/dist/js/admin.min.js b/wp-content/themes/kenta/dist/js/admin.min.js new file mode 100644 index 0000000000..4b11f5420f --- /dev/null +++ b/wp-content/themes/kenta/dist/js/admin.min.js @@ -0,0 +1 @@ +(()=>{"use strict";var t={n:n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return t.d(i,{a:i}),i},d:(n,i)=>{for(var a in i)t.o(i,a)&&!t.o(n,a)&&Object.defineProperty(n,a,{enumerable:!0,get:i[a]})},o:(t,n)=>Object.prototype.hasOwnProperty.call(t,n)};const n=window.jQuery;const i={init:function(t){t(".kenta-theme-notice .kenta-notice-dismiss").click((function(){var n=t(this).parents(".is-dismissible"),i=n.attr("data-dismiss-url");i&&t.ajax({url:i,complete:function(){n.hide()}})}))}};const a={init:function(t){t(".kenta-install-cmp-action").click((function(n){if(window.KentaAdmin){n.preventDefault();var i=t(this),a=i.html();t(".kenta-install-cmp-action").attr("disabled","disabled"),i.html('Processing'),t.ajax({url:window.KentaAdmin.install_cmp_url,complete:function(){var n=i.attr("data-redirect");n?window.location.href=n:(i.html(a),t(".kenta-install-cmp-action").removeAttr("disabled"))}})}}))}};t.n(n)()((function(t){i.init(t),a.init(t)}))})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/app.asset.php b/wp-content/themes/kenta/dist/js/app.asset.php new file mode 100644 index 0000000000..b58ab304da --- /dev/null +++ b/wp-content/themes/kenta/dist/js/app.asset.php @@ -0,0 +1 @@ + array('wp-dom-ready'), 'version' => '2f8582f08ee0e9b9'); diff --git a/wp-content/themes/kenta/dist/js/app.js b/wp-content/themes/kenta/dist/js/app.js new file mode 100644 index 0000000000..0de350743c --- /dev/null +++ b/wp-content/themes/kenta/dist/js/app.js @@ -0,0 +1,1509 @@ +(() => { + "use strict"; + var __webpack_modules__ = [ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0__); + var _modules_focusable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); + var _modules_collapsable_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); + var _modules_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); + var _modules_toggle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5); + var _modules_focus_redirect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6); + var _modules_popup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7); + var _modules_to_top__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(8); + var _modules_preloader__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9); + var _modules_create_scroll_reveal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10); + var _modules_form__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(11); + var _modules_theme_switch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(12); + var _modules_sticky__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15); + var _modules_particles__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(14); + new _modules_preloader__WEBPACK_IMPORTED_MODULE_8__["default"]; + _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0___default()((function() { + "use strict"; + new _modules_collapsable_menu__WEBPACK_IMPORTED_MODULE_2__["default"]; + new _modules_menu__WEBPACK_IMPORTED_MODULE_3__["default"]; + new _modules_toggle__WEBPACK_IMPORTED_MODULE_4__["default"]; + new _modules_form__WEBPACK_IMPORTED_MODULE_10__["default"]; + new _modules_focus_redirect__WEBPACK_IMPORTED_MODULE_5__["default"]; + new _modules_popup__WEBPACK_IMPORTED_MODULE_6__["default"]; + new _modules_to_top__WEBPACK_IMPORTED_MODULE_7__["default"]; + new _modules_create_scroll_reveal__WEBPACK_IMPORTED_MODULE_9__["default"]; + new _modules_theme_switch__WEBPACK_IMPORTED_MODULE_11__["default"]; + new _modules_sticky__WEBPACK_IMPORTED_MODULE_12__["default"]; + new _modules_particles__WEBPACK_IMPORTED_MODULE_13__["default"]; + })); + }, module => { + module.exports = window["wp"]["domReady"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + isNodeVisible: () => isNodeVisible, + queryFocusable: () => queryFocusable, + queryFocusableAll: () => queryFocusableAll + }); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + if (window.jQuery) { + jQuery.extend(jQuery.expr[":"], { + focusable: function focusable(el) { + return jQuery(el).is("a, button, :input, [tabindex]"); + } + }); + } + var focusableSelectors = 'a, button:not([disabled]):not([aria-hidden="true"]), input:not([disabled]):not([type="hidden"]):not([aria-hidden="true"]), [tabindex]'; + function queryFocusable(selector) { + var dom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; + if (!selector) { + return undefined; + } + if (selector.indexOf(":focusable") === -1) { + return dom.querySelector(selector); + } + selector = selector.replaceAll(":focusable", "").trim(); + if (selector) { + var _dom$querySelector; + return (_dom$querySelector = dom.querySelector(selector)) === null || _dom$querySelector === void 0 ? void 0 : _dom$querySelector.querySelector(focusableSelectors); + } + return dom.querySelector(focusableSelectors); + } + function isNodeVisible(node) { + if (!(node instanceof Element)) { + return false; + } + var s = getComputedStyle(node); + return !(s.getPropertyValue("display") === "none" || s.getPropertyValue("visibility") === "hidden"); + } + function visibleNodes(nodes) { + return _toConsumableArray(nodes).filter((function(n) { + return isNodeVisible(n); + })); + } + function travelNodes(el, fn) { + for (var i = 0; i < el.childNodes.length; i++) { + var child = el.childNodes[i]; + if (fn(child) !== false) { + travelNodes(child, fn); + } + } + } + function isFocusAble(node) { + if (!(node instanceof Element)) { + return false; + } + if (node.tagName === "button" || node.tagName === "input") { + return node.getAttribute("disabled") === null; + } + if (node.tagName === "a") { + return node.getAttribute("href") !== null; + } + return node.tabIndex >= 0; + } + function queryFocusableAll() { + var dom = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document; + var focusable = []; + travelNodes(dom, (function(el) { + if (!isNodeVisible(el)) { + return false; + } + if (isFocusAble(el)) { + focusable.push(el); + } + })); + return focusable; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var CollapsableMenu = _createClass((function CollapsableMenu() { + _classCallCheck(this, CollapsableMenu); + var submenus = document.querySelectorAll(".kenta-collapsable-menu.collapsable .menu-item-has-children, .kenta-collapsable-menu.collapsable .page_item_has_children"); + var _iterator = _createForOfIteratorHelper(submenus), _step; + try { + var _loop = function _loop() { + var item = _step.value; + var submenu = item.querySelector("& > .sub-menu, & > .children"); + var toggle = item.querySelector("& > a .kenta-dropdown-toggle"); + if (toggle && submenu) { + toggle.addEventListener("click", (function(ev) { + ev.preventDefault(); + ev.stopPropagation(); + if (toggle.classList.contains("active")) { + toggle.classList.remove("active"); + } else { + toggle.classList.add("active"); + } + if (submenu.classList.contains("open")) { + submenu.classList.remove("open"); + } else { + submenu.classList.add("open"); + } + })); + } + }; + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + _loop(); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + })); + const __WEBPACK_DEFAULT_EXPORT__ = CollapsableMenu; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Menu = _createClass((function Menu() { + _classCallCheck(this, Menu); + document.querySelectorAll(".sf-menu li").forEach((function(menuItem) { + var timer = null; + menuItem.addEventListener("mouseover", (function() { + if (timer) { + clearTimeout(timer); + } + menuItem.classList.add("sfHover"); + })); + menuItem.addEventListener("mouseleave", (function() { + timer = setTimeout((function() { + menuItem.classList.remove("sfHover"); + }), 300); + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Menu; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _focusable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Toggle = _createClass((function Toggle() { + _classCallCheck(this, Toggle); + var scrollBarWidth = window.innerWidth - document.documentElement.clientWidth; + if (scrollBarWidth > 0) { + document.body.style.setProperty("--scrollbar-width", "".concat(scrollBarWidth, "px")); + } + document.querySelectorAll("[data-toggle-target]").forEach((function(el) { + var _el$classList, _el$classList2; + if (el !== null && el !== void 0 && (_el$classList = el.classList) !== null && _el$classList !== void 0 && _el$classList.contains("kenta-toggleable")) { + return; + } + el === null || el === void 0 ? void 0 : (_el$classList2 = el.classList) === null || _el$classList2 === void 0 ? void 0 : _el$classList2.add("kenta-toggleable"); + el.addEventListener("click", (function() { + var _el$dataset, _el$dataset2, _el$dataset3, _target$classList, _target$classList4; + var target = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.toggleTarget); + var showFocus = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset2 = el.dataset) === null || _el$dataset2 === void 0 ? void 0 : _el$dataset2.toggleShowFocus); + var hiddenFocus = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset3 = el.dataset) === null || _el$dataset3 === void 0 ? void 0 : _el$dataset3.toggleHiddenFocus); + if (!target) { + return; + } + if (target !== null && target !== void 0 && (_target$classList = target.classList) !== null && _target$classList !== void 0 && _target$classList.contains("active")) { + var _target$classList2; + target === null || target === void 0 ? void 0 : (_target$classList2 = target.classList) === null || _target$classList2 === void 0 ? void 0 : _target$classList2.remove("active"); + } else { + var _target$classList3; + target === null || target === void 0 ? void 0 : (_target$classList3 = target.classList) === null || _target$classList3 === void 0 ? void 0 : _target$classList3.add("active"); + } + if (target !== null && target !== void 0 && (_target$classList4 = target.classList) !== null && _target$classList4 !== void 0 && _target$classList4.contains("active")) { + var _document$body, _document$body$classL; + (_document$body = document.body) === null || _document$body === void 0 ? void 0 : (_document$body$classL = _document$body.classList) === null || _document$body$classL === void 0 ? void 0 : _document$body$classL.add("kenta-modal-visible"); + if (showFocus) { + setTimeout((function() { + return showFocus.focus(); + }), 100); + } + } else { + setTimeout((function() { + var _document$body2, _document$body2$class; + (_document$body2 = document.body) === null || _document$body2 === void 0 ? void 0 : (_document$body2$class = _document$body2.classList) === null || _document$body2$class === void 0 ? void 0 : _document$body2$class.remove("kenta-modal-visible"); + }), 300); + if (hiddenFocus) { + setTimeout((function() { + return hiddenFocus.focus(); + }), 100); + } + } + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Toggle; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _focusable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var FocusRedirect = _createClass((function FocusRedirect() { + _classCallCheck(this, FocusRedirect); + document.querySelectorAll("[data-redirect-focus]").forEach((function(el) { + var _el$dataset; + var target = document.querySelector(el === null || el === void 0 ? void 0 : (_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.redirectFocus); + if (!target) { + return; + } + el.addEventListener("keydown", (function(ev) { + var tabKey = ev.keyCode === 9; + var shiftKey = ev.shiftKey; + var focusable = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusableAll)(el); + var first = focusable[0]; + var last = focusable[focusable.length - 1]; + var active = document.activeElement; + if (tabKey && !shiftKey && active.isSameNode(last)) { + ev.preventDefault(); + target.focus(); + } + if (tabKey && shiftKey && active.isSameNode(first)) { + ev.preventDefault(); + target.focus(); + } + })); + target.addEventListener("keydown", (function(ev) { + if (!(0, _focusable__WEBPACK_IMPORTED_MODULE_0__.isNodeVisible)(el)) { + return; + } + var tabKey = ev.keyCode === 9; + var shiftKey = ev.shiftKey; + var focusable = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusableAll)(el); + var first = focusable[0]; + var last = focusable[focusable.length - 1]; + if (tabKey && !shiftKey) { + ev.preventDefault(); + first.focus(); + } + if (tabKey && shiftKey) { + ev.preventDefault(); + last.focus(); + } + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = FocusRedirect; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Popup = _createClass((function Popup() { + _classCallCheck(this, Popup); + document.querySelectorAll("[data-popup-target]").forEach((function(el) { + var _el$dataset; + var target = el.getElementsByClassName(el === null || el === void 0 ? void 0 : (_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.popupTarget)[0]; + if (!target) { + return; + } + var show = function show() { + var _target$classList; + target === null || target === void 0 ? void 0 : (_target$classList = target.classList) === null || _target$classList === void 0 ? void 0 : _target$classList.add("show"); + }; + var hide = function hide() { + var _target$classList2; + target === null || target === void 0 ? void 0 : (_target$classList2 = target.classList) === null || _target$classList2 === void 0 ? void 0 : _target$classList2.remove("show"); + }; + el.addEventListener("focusin", show); + el.addEventListener("focusout", hide); + el.addEventListener("mouseover", show); + el.addEventListener("mouseleave", hide); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Popup; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var ToTop = _createClass((function ToTop() { + _classCallCheck(this, ToTop); + var scrollTopBtn = document.getElementById("scroll-top"); + if (!scrollTopBtn) { + return; + } + window.addEventListener("scroll", (function() { + var offset = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop; + if (offset) { + scrollTopBtn.classList.add("active"); + } else { + scrollTopBtn.classList.remove("active"); + } + })); + scrollTopBtn.addEventListener("click", (function(ev) { + window.scrollTo(0, 0); + ev.preventDefault(); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = ToTop; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0__); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + var Preloader = function() { + function Preloader() { + var _this = this; + _classCallCheck(this, Preloader); + var wrap = document.querySelector(".kenta-preloader-wrap"); + if (wrap) { + var _document, _document$body, _document$body$classL; + _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_0___default()((function() { + return _this.hidePreloader(); + })); + if ((_document = document) !== null && _document !== void 0 && (_document$body = _document.body) !== null && _document$body !== void 0 && (_document$body$classL = _document$body.classList) !== null && _document$body$classL !== void 0 && _document$body$classL.contains("elementor-editor-active")) { + setTimeout((function() { + return _this.hidePreloader(); + }), 300); + } + } + } + _createClass(Preloader, [ { + key: "hidePreloader", + value: function hidePreloader() { + this.fadeOut(document.querySelector(".kenta-preloader-wrap > div"), 200); + this.fadeOut(document.querySelector(".kenta-preloader-wrap"), 400); + } + }, { + key: "fadeOut", + value: function fadeOut(el, speed) { + var _getComputedStyle; + if (!el) { + return; + } + var opacity = Number.parseFloat((_getComputedStyle = getComputedStyle(el)) === null || _getComputedStyle === void 0 ? void 0 : _getComputedStyle.getPropertyValue("opacity")); + if (isNaN(opacity) || opacity === 0) { + return; + } + var step = opacity / ((speed !== null && speed !== void 0 ? speed : 1e3) / 25); + var timer = setInterval((function() { + opacity = opacity - step; + if (opacity <= 0) { + clearInterval(timer); + opacity = 0; + el.style.display = "none"; + el.style.visibility = "hidden"; + } + el.style.opacity = opacity; + }), 25); + } + } ]); + return Preloader; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = Preloader; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var CreateScrollReveal = _createClass((function CreateScrollReveal() { + var _document$body$datase; + _classCallCheck(this, CreateScrollReveal); + if (window.ScrollReveal === undefined) { + return; + } + var options = JSON.parse((_document$body$datase = document.body.dataset) === null || _document$body$datase === void 0 ? void 0 : _document$body$datase.kentaScrollReveal); + ScrollReveal().reveal(".kenta-scroll-reveal", options); + ScrollReveal().reveal(".kenta-scroll-reveal-widget", options); + })); + const __WEBPACK_DEFAULT_EXPORT__ = CreateScrollReveal; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Form = _createClass((function Form() { + _classCallCheck(this, Form); + var inputs = _toConsumableArray(document.querySelectorAll(".comment-form, .kenta-inner-label")).reduce((function(result, parent) { + return [].concat(_toConsumableArray(result), _toConsumableArray(parent.querySelectorAll("input,textarea"))); + }), []).filter((function(input) { + return input.type !== "hidden" && input.type !== "checkbox" && input.type !== "submit"; + })); + var inputWrapper = function inputWrapper(el) { + if (!el) { + return null; + } + if (el.querySelector("label")) { + return el; + } + return inputWrapper(el.parentNode); + }; + var renderEmptiness = function renderEmptiness() { + inputs.map((function(input) { + var wrapper = inputWrapper(input.parentNode); + if (wrapper) { + wrapper.classList.remove("kenta-not-empty-field"); + } + if (!input.value) { + return; + } + if (input.value.trim().length > 0) { + if (wrapper) { + wrapper.classList.add("kenta-not-empty-field"); + } + } + })); + }; + setTimeout((function() { + renderEmptiness(); + })); + inputs.map((function(input) { + return input.addEventListener("input", renderEmptiness); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Form; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); + var _particles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + var ThemeSwitch = function() { + function ThemeSwitch() { + var _document$documentEle, _document$documentEle2, _document$documentEle3; + _classCallCheck(this, ThemeSwitch); + var blogId = (_document$documentEle = document.documentElement.dataset) === null || _document$documentEle === void 0 ? void 0 : _document$documentEle.kentaBlogId; + var active = (_document$documentEle2 = document.documentElement.dataset) === null || _document$documentEle2 === void 0 ? void 0 : _document$documentEle2.kentaTheme; + var isPersistent = ((_document$documentEle3 = document.documentElement.dataset) === null || _document$documentEle3 === void 0 ? void 0 : _document$documentEle3.saveColorScheme) === "yes"; + var mode = js_cookie__WEBPACK_IMPORTED_MODULE_0__["default"].get(blogId + "-color-mode"); + if (mode && isPersistent && mode !== active) { + document.documentElement.setAttribute("data-kenta-theme", mode); + } + var switches = document.getElementsByClassName("kenta-theme-switch"); + var _iterator = _createForOfIteratorHelper(switches), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var switchBtn = _step.value; + if (switchBtn.classList.contains("kenta-theme-switch-initialized")) { + continue; + } + switchBtn.classList.add("kenta-theme-switch-initialized"); + switchBtn.addEventListener("click", this.toggle.bind(this)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + _createClass(ThemeSwitch, [ { + key: "toggle", + value: function toggle() { + var _document$documentEle4, _document$documentEle5; + var blogId = (_document$documentEle4 = document.documentElement.dataset) === null || _document$documentEle4 === void 0 ? void 0 : _document$documentEle4.kentaBlogId; + var current = (_document$documentEle5 = document.documentElement.dataset) === null || _document$documentEle5 === void 0 ? void 0 : _document$documentEle5.kentaTheme; + if (current === "dark") { + this.setLightMode(blogId); + } else { + this.setDarkMode(blogId); + } + if (wp.customize) { + wp.customize.preview.send("kenta-theme-changed", current === "dark" ? "light" : "dark"); + } + new _particles__WEBPACK_IMPORTED_MODULE_1__["default"]; + } + }, { + key: "setLightMode", + value: function setLightMode(blogId) { + var _document$documentEle6; + this.setGlobalTransition(); + document.documentElement.setAttribute("data-kenta-theme", "light"); + if (((_document$documentEle6 = document.documentElement.dataset) === null || _document$documentEle6 === void 0 ? void 0 : _document$documentEle6.saveColorScheme) === "yes") { + js_cookie__WEBPACK_IMPORTED_MODULE_0__["default"].set(blogId + "-color-mode", "light", { + expires: 365 + }); + } + } + }, { + key: "setDarkMode", + value: function setDarkMode(blogId) { + var _document$documentEle7; + this.setGlobalTransition(); + document.documentElement.setAttribute("data-kenta-theme", "dark"); + if (((_document$documentEle7 = document.documentElement.dataset) === null || _document$documentEle7 === void 0 ? void 0 : _document$documentEle7.saveColorScheme) === "yes") { + js_cookie__WEBPACK_IMPORTED_MODULE_0__["default"].set(blogId + "-color-mode", "dark", { + expires: 365 + }); + } + } + }, { + key: "setGlobalTransition", + value: function setGlobalTransition() { + document.body.classList.add("transition-force-none"); + setTimeout((function() { + document.body.classList.remove("transition-force-none"); + }), 50); + } + } ]); + return ThemeSwitch; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = ThemeSwitch; + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => api + }); + /*! js-cookie v3.0.5 | MIT */ function assign(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + target[key] = source[key]; + } + } + return target; + } + var defaultConverter = { + read: function(value) { + if (value[0] === '"') { + value = value.slice(1, -1); + } + return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent); + }, + write: function(value) { + return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent); + } + }; + function init(converter, defaultAttributes) { + function set(name, value, attributes) { + if (typeof document === "undefined") { + return; + } + attributes = assign({}, defaultAttributes, attributes); + if (typeof attributes.expires === "number") { + attributes.expires = new Date(Date.now() + attributes.expires * 864e5); + } + if (attributes.expires) { + attributes.expires = attributes.expires.toUTCString(); + } + name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape); + var stringifiedAttributes = ""; + for (var attributeName in attributes) { + if (!attributes[attributeName]) { + continue; + } + stringifiedAttributes += "; " + attributeName; + if (attributes[attributeName] === true) { + continue; + } + stringifiedAttributes += "=" + attributes[attributeName].split(";")[0]; + } + return document.cookie = name + "=" + converter.write(value, name) + stringifiedAttributes; + } + function get(name) { + if (typeof document === "undefined" || arguments.length && !name) { + return; + } + var cookies = document.cookie ? document.cookie.split("; ") : []; + var jar = {}; + for (var i = 0; i < cookies.length; i++) { + var parts = cookies[i].split("="); + var value = parts.slice(1).join("="); + try { + var found = decodeURIComponent(parts[0]); + jar[found] = converter.read(value, found); + if (name === found) { + break; + } + } catch (e) {} + } + return name ? jar[name] : jar; + } + return Object.create({ + set, + get, + remove: function(name, attributes) { + set(name, "", assign({}, attributes, { + expires: -1 + })); + }, + withAttributes: function(attributes) { + return init(this.converter, assign({}, this.attributes, attributes)); + }, + withConverter: function(converter) { + return init(assign({}, this.converter, converter), this.attributes); + } + }, { + attributes: { + value: Object.freeze(defaultAttributes) + }, + converter: { + value: Object.freeze(converter) + } + }); + } + var api = init(defaultConverter, { + path: "/" + }); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + var Particles = function() { + function Particles() { + _classCallCheck(this, Particles); + if (!window.particlesJS) { + return; + } + var allCanvas = document.getElementsByClassName("kenta-particles-canvas"); + var _iterator = _createForOfIteratorHelper(allCanvas), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var _canvas$dataset; + var canvas = _step.value; + var config = JSON.parse((_canvas$dataset = canvas.dataset) === null || _canvas$dataset === void 0 ? void 0 : _canvas$dataset.kentaParticles); + particlesJS(canvas.id, this.overrideConfig(canvas, config)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + _createClass(Particles, [ { + key: "overrideConfig", + value: function overrideConfig(canvas, config) { + var _canvas$dataset2, _canvas$dataset3, _canvas$dataset4, _canvas$dataset5, _canvas$dataset6, _canvas$dataset7, _canvas$dataset8; + var detect_on = (_canvas$dataset2 = canvas.dataset) === null || _canvas$dataset2 === void 0 ? void 0 : _canvas$dataset2.kentaParticleDetectOn; + var quantity = Number((_canvas$dataset3 = canvas.dataset) === null || _canvas$dataset3 === void 0 ? void 0 : _canvas$dataset3.kentaParticleQuantity); + var speed = Number((_canvas$dataset4 = canvas.dataset) === null || _canvas$dataset4 === void 0 ? void 0 : _canvas$dataset4.kentaParticleSpeed); + var size = Number((_canvas$dataset5 = canvas.dataset) === null || _canvas$dataset5 === void 0 ? void 0 : _canvas$dataset5.kentaParticleSize); + var shape = (_canvas$dataset6 = canvas.dataset) === null || _canvas$dataset6 === void 0 ? void 0 : _canvas$dataset6.kentaParticleShape; + var particle_color = this.getColorValue((_canvas$dataset7 = canvas.dataset) === null || _canvas$dataset7 === void 0 ? void 0 : _canvas$dataset7.kentaParticleColor); + var line_color = this.getColorValue(((_canvas$dataset8 = canvas.dataset) === null || _canvas$dataset8 === void 0 ? void 0 : _canvas$dataset8.kentaParticleLineColor) || particle_color); + if ("default" !== detect_on && "" !== detect_on && undefined !== detect_on) { + config.interactivity.detect_on = detect_on; + } + if ("" !== size && undefined !== size && size > 0) { + config.particles.size.value = size; + } + if ("" !== quantity && undefined !== quantity && quantity > 0) { + config.particles.number.value = quantity; + } + if ("" !== particle_color && undefined !== particle_color) { + config.particles.color.value = particle_color; + } + if ("" !== line_color && undefined !== line_color) { + if (config.particles.line_linked) { + config.particles.line_linked.color = line_color; + } else { + if (config.particles.links) { + config.particles.links.color = line_color; + } else { + config.particles.links = { + color: line_color + }; + } + } + } + if ("default" !== shape && "" !== shape && undefined !== shape) { + config.particles.shape.type = shape; + } + if ("" !== speed && undefined !== speed && speed > 0) { + config.particles.move.speed = speed; + } + config.background = {}; + config.fullScreen = { + enable: false + }; + return config; + } + }, { + key: "getColorValue", + value: function getColorValue(color) { + if (!color || color === "" || color === "__INITIAL_VALUE__") { + return ""; + } + if (color.indexOf("var") > -1) { + var value = getComputedStyle(document.documentElement).getPropertyValue(color.replace(/var\(/, "").replace(/\)/, "")).trim().replace(/\s/g, ""); + if (value.indexOf("#") === -1 && value.indexOf("rgb") === -1) { + return "rgb(".concat(value, ")"); + } + return value; + } + return color; + } + } ]); + return Particles; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = Particles; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + var Sticky = function() { + function Sticky($) { + var _this = this; + _classCallCheck(this, Sticky); + if (!window.hcSticky) { + return; + } + var stickyElements = document.getElementsByClassName("kenta-sticky"); + var _iterator = _createForOfIteratorHelper(stickyElements), _step; + try { + var _loop = function _loop() { + var el = _step.value; + var header = _this.parent(el, ".kenta-site-header"); + var isTransparentHeader = header.classList.contains("kenta-transparent-header"); + var isAdminBarShowing = header.classList.contains("kenta-header-with-admin-bar"); + var args = { + stickTo: ".kenta-site-wrap", + stickyClass: "kenta-is-sticky", + onStart: function onStart() { + if (isTransparentHeader) { + header.classList.remove("kenta-transparent-header"); + } + }, + onStop: function onStop() { + if (isTransparentHeader) { + header.classList.add("kenta-transparent-header"); + } + } + }; + new window.hcSticky(el, isAdminBarShowing ? Object.assign(args, { + top: 32, + responsive: { + 782: { + top: 46 + } + } + }) : args); + }; + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + _loop(); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + _createClass(Sticky, [ { + key: "parent", + value: function parent(el, selector, filter) { + el = el.parentElement; + var matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector; + while (el && !matchesSelector.call(el, selector)) { + if (!filter) { + return el; + } else { + if (matchesSelector.call(el, filter)) { + return el; + } + } + el = el.parentElement; + } + return el; + } + } ]); + return Sticky; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = Sticky; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + } ]; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __webpack_require__); + return module.exports; + } + __webpack_require__.m = __webpack_modules__; + (() => { + var deferred = []; + __webpack_require__.O = (result, chunkIds, fn, priority) => { + if (chunkIds) { + priority = priority || 0; + for (var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; + deferred[i] = [ chunkIds, fn, priority ]; + return; + } + var notFulfilled = Infinity; + for (var i = 0; i < deferred.length; i++) { + var [chunkIds, fn, priority] = deferred[i]; + var fulfilled = true; + for (var j = 0; j < chunkIds.length; j++) { + if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key => __webpack_require__.O[key](chunkIds[j])))) { + chunkIds.splice(j--, 1); + } else { + fulfilled = false; + if (priority < notFulfilled) notFulfilled = priority; + } + } + if (fulfilled) { + deferred.splice(i--, 1); + var r = fn(); + if (r !== undefined) result = r; + } + } + return result; + }; + })(); + (() => { + __webpack_require__.n = module => { + var getter = module && module.__esModule ? () => module["default"] : () => module; + __webpack_require__.d(getter, { + a: getter + }); + return getter; + }; + })(); + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + (() => { + var installedChunks = { + 1: 0, + 6: 0, + 7: 0, + 5: 0, + 9: 0, + 8: 0 + }; + __webpack_require__.O.j = chunkId => installedChunks[chunkId] === 0; + var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { + var [chunkIds, moreModules, runtime] = data; + var moduleId, chunkId, i = 0; + if (chunkIds.some((id => installedChunks[id] !== 0))) { + for (moduleId in moreModules) { + if (__webpack_require__.o(moreModules, moduleId)) { + __webpack_require__.m[moduleId] = moreModules[moduleId]; + } + } + if (runtime) var result = runtime(__webpack_require__); + } + if (parentChunkLoadingFunction) parentChunkLoadingFunction(data); + for (;i < chunkIds.length; i++) { + chunkId = chunkIds[i]; + if (__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { + installedChunks[chunkId][0](); + } + installedChunks[chunkId] = 0; + } + return __webpack_require__.O(result); + }; + var chunkLoadingGlobal = self["webpackChunkkenta"] = self["webpackChunkkenta"] || []; + chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); + chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); + })(); + __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(0))); + __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(16))); + __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(17))); + __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(18))); + __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(19))); + var __webpack_exports__ = __webpack_require__.O(undefined, [ 6, 7, 5, 9, 8 ], (() => __webpack_require__(20))); + __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/app.min.asset.php b/wp-content/themes/kenta/dist/js/app.min.asset.php new file mode 100644 index 0000000000..097789b312 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/app.min.asset.php @@ -0,0 +1 @@ + array('wp-dom-ready'), 'version' => '75e08bb988810efb'); diff --git a/wp-content/themes/kenta/dist/js/app.min.js b/wp-content/themes/kenta/dist/js/app.min.js new file mode 100644 index 0000000000..6470595f97 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/app.min.js @@ -0,0 +1,2 @@ +/*! For license information please see app.min.js.LICENSE.txt */ +(()=>{"use strict";var e,t={978:(e,t,n)=>{const r=window.wp.domReady;var o=n.n(r);window.jQuery&&jQuery.extend(jQuery.expr[":"],{focusable:function(e){return jQuery(e).is("a, button, :input, [tabindex]")}});var a='a, button:not([disabled]):not([aria-hidden="true"]), input:not([disabled]):not([type="hidden"]):not([aria-hidden="true"]), [tabindex]';function i(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(e)return-1===e.indexOf(":focusable")?n.querySelector(e):(e=e.replaceAll(":focusable","").trim())?null===(t=n.querySelector(e))||void 0===t?void 0:t.querySelector(a):n.querySelector(a)}function l(e){if(!(e instanceof Element))return!1;var t=getComputedStyle(e);return!("none"===t.getPropertyValue("display")||"hidden"===t.getPropertyValue("visibility"))}function u(e,t){for(var n=0;n=0)}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=[];return u(e,(function(e){if(!l(e))return!1;c(e)&&t.push(e)})),t}function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n .sub-menu, & > .children"),r=e.querySelector("& > a .kenta-dropdown-toggle");r&&n&&r.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),r.classList.contains("active")?r.classList.remove("active"):r.classList.add("active"),n.classList.contains("open")?n.classList.remove("open"):n.classList.add("open")}))};for(n.s();!(t=n.n()).done;)r()}catch(e){n.e(e)}finally{n.f()}}));const y=m;function b(e,t){for(var n=0;n0&&document.body.style.setProperty("--scrollbar-width","".concat(t,"px")),document.querySelectorAll("[data-toggle-target]").forEach((function(e){var t,n;null!=e&&null!==(t=e.classList)&&void 0!==t&&t.contains("kenta-toggleable")||(null==e||null===(n=e.classList)||void 0===n||n.add("kenta-toggleable"),e.addEventListener("click",(function(){var t,n,r,o,a,l=i(null===(t=e.dataset)||void 0===t?void 0:t.toggleTarget),u=i(null===(n=e.dataset)||void 0===n?void 0:n.toggleShowFocus),c=i(null===(r=e.dataset)||void 0===r?void 0:r.toggleHiddenFocus);if(l){var s,d,f,v;if(null!=l&&null!==(o=l.classList)&&void 0!==o&&o.contains("active"))null==l||null===(s=l.classList)||void 0===s||s.remove("active");else null==l||null===(d=l.classList)||void 0===d||d.add("active");if(null!=l&&null!==(a=l.classList)&&void 0!==a&&a.contains("active"))null===(f=document.body)||void 0===f||null===(v=f.classList)||void 0===v||v.add("kenta-modal-visible"),u&&setTimeout((function(){return u.focus()}),100);else setTimeout((function(){var e,t;null===(e=document.body)||void 0===e||null===(t=e.classList)||void 0===t||t.remove("kenta-modal-visible")}),300),c&&setTimeout((function(){return c.focus()}),100)}})))}))}));function O(e,t){for(var n=0;n div"),200),this.fadeOut(document.querySelector(".kenta-preloader-wrap"),400)}},{key:"fadeOut",value:function(e,t){var n;if(e){var r=Number.parseFloat(null===(n=getComputedStyle(e))||void 0===n?void 0:n.getPropertyValue("opacity"));if(!isNaN(r)&&0!==r)var o=r/((null!=t?t:1e3)/25),a=setInterval((function(){(r-=o)<=0&&(clearInterval(a),r=0,e.style.display="none",e.style.visibility="hidden"),e.style.opacity=r}),25)}}}])&&x(t.prototype,n),r&&x(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function q(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&t&&t.classList.add("kenta-not-empty-field")}))};setTimeout((function(){r()})),t.map((function(e){return e.addEventListener("input",r)}))}));function V(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(t.particles.size.value=f),""!==s&&void 0!==s&&s>0&&(t.particles.number.value=s),""!==p&&void 0!==p&&(t.particles.color.value=p),""!==m&&void 0!==m&&(t.particles.line_linked?t.particles.line_linked.color=m:t.particles.links?t.particles.links.color=m:t.particles.links={color:m}),"default"!==v&&""!==v&&void 0!==v&&(t.particles.shape.type=v),""!==d&&void 0!==d&&d>0&&(t.particles.move.speed=d),t.background={},t.fullScreen={enable:!1},t}},{key:"getColorValue",value:function(e){if(!e||""===e||"__INITIAL_VALUE__"===e)return"";if(e.indexOf("var")>-1){var t=getComputedStyle(document.documentElement).getPropertyValue(e.replace(/var\(/,"").replace(/\)/,"")).trim().replace(/\s/g,"");return-1===t.indexOf("#")&&-1===t.indexOf("rgb")?"rgb(".concat(t,")"):t}return e}}])&&J(t.prototype,n),r&&J(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function H(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return K(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{},817:()=>{},117:()=>{},65:()=>{},304:()=>{}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,r),a.exports}r.m=t,e=[],r.O=(t,n,o,a)=>{if(!n){var i=1/0;for(s=0;s=a)&&Object.keys(r.O).every((e=>r.O[e](n[u])))?n.splice(u--,1):(l=!1,a0&&e[s-1][2]>a;s--)e[s]=e[s-1];e[s]=[n,o,a]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={219:0,329:0,268:0,524:0,395:0,167:0};r.O.j=t=>0===e[t];var t=(t,n)=>{var o,a,[i,l,u]=n,c=0;if(i.some((t=>0!==e[t]))){for(o in l)r.o(l,o)&&(r.m[o]=l[o]);if(u)var s=u(r)}for(t&&t(n);cr(978))),r.O(void 0,[329,268,524,395,167],(()=>r(993))),r.O(void 0,[329,268,524,395,167],(()=>r(817))),r.O(void 0,[329,268,524,395,167],(()=>r(117))),r.O(void 0,[329,268,524,395,167],(()=>r(65)));var o=r.O(void 0,[329,268,524,395,167],(()=>r(304)));o=r.O(o)})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/app.min.js.LICENSE.txt b/wp-content/themes/kenta/dist/js/app.min.js.LICENSE.txt new file mode 100644 index 0000000000..8c6dd7280b --- /dev/null +++ b/wp-content/themes/kenta/dist/js/app.min.js.LICENSE.txt @@ -0,0 +1 @@ +/*! js-cookie v3.0.5 | MIT */ diff --git a/wp-content/themes/kenta/dist/js/block-editor.asset.php b/wp-content/themes/kenta/dist/js/block-editor.asset.php new file mode 100644 index 0000000000..85414fdc0e --- /dev/null +++ b/wp-content/themes/kenta/dist/js/block-editor.asset.php @@ -0,0 +1 @@ + array('react', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '097d6b983ae8bec0'); diff --git a/wp-content/themes/kenta/dist/js/block-editor.js b/wp-content/themes/kenta/dist/js/block-editor.js new file mode 100644 index 0000000000..ce2a83f598 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/block-editor.js @@ -0,0 +1,3389 @@ +(() => { + var __webpack_modules__ = [ , module => { + "use strict"; + module.exports = window["wp"]["domReady"]; + }, , , , , , , , , , , , , , , , , , , , , module => { + "use strict"; + module.exports = window["wp"]["plugins"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var html_react_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24); + var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43); + var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_1__); + var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44); + var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var MetaSettings = function MetaSettings(props) { + var icon = (0, html_react_parser__WEBPACK_IMPORTED_MODULE_0__["default"])(''); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.Fragment, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_1__.PluginSidebarMoreMenuItem, { + target: "kenta-theme-meta-panel", + icon, + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Kenta Settings", "kenta") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_1__.PluginSidebar, { + isPinnable: true, + icon, + name: "kenta-theme-meta-panel", + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Kenta Settings", "kenta"), + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "kenta-sidebar-container", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, { + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Layout", "kenta"), + initialOpen: true, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Container Style", "kenta"), + value: props.meta["site-container-style"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Boxed", "kenta"), + value: "boxed" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Fluid", "kenta"), + value: "fluid" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "site-container-style"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Content Width", "kenta"), + value: props.meta["site-container-layout"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Narrow", "kenta"), + value: "narrow" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Normal", "kenta"), + value: "normal" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "site-container-layout"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Sidebar Layout", "kenta"), + value: props.meta["site-sidebar-layout"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("No Sidebar", "kenta"), + value: "no-sidebar" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Left Sidebar", "kenta"), + value: "left-sidebar" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Right Sidebar", "kenta"), + value: "right-sidebar" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "site-sidebar-layout"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Transparent Header", "kenta"), + help: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", { + target: "_blank", + href: "https://kentatheme.com/docs/kenta-theme/header-footer-builder/transparent-header/", + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Lean More About Transparent Header.", "kenta") + }), + value: props.meta["site-transparent-header"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enable", "kenta"), + value: "enable" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Disable", "kenta"), + value: "disable" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "site-transparent-header"); + } + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, { + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Elements", "kenta"), + initialOpen: true, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Site Header", "kenta"), + value: props.meta["disable-site-header"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enable", "kenta"), + value: "no" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Disable", "kenta"), + value: "yes" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "disable-site-header"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Site Footer", "kenta"), + value: props.meta["disable-site-footer"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enable", "kenta"), + value: "no" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Disable", "kenta"), + value: "yes" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "disable-site-footer"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Article Header", "kenta"), + value: props.meta["disable-article-header"], + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enable", "kenta"), + value: "no" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Disable", "kenta"), + value: "yes" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "disable-article-header"); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Content Spacing", "kenta"), + value: props.meta["disable-content-area-spacing"], + help: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("There is a gap between the page content and the header or footer, if you don't want it you can disable it here.", "kenta"), + options: [ { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Inherit", "kenta"), + value: "default" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Enable", "kenta"), + value: "no" + }, { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Disable", "kenta"), + value: "yes" + } ], + onChange: function onChange(value) { + props.setMetaFieldValue(value, "disable-content-area-spacing"); + } + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + style: { + textAlign: "center", + padding: "16px" + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("p", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("You can override the global customize settings for individual pages or posts here.", "kenta") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("a", { + href: "https://kentatheme.com/docs/kenta-theme/general/editor-sidebar-settings/", + target: "_blank", + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Learn More") + }) ] + }) ] + }) + }) ] + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = (0, _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__.compose)((0, + _wordpress_data__WEBPACK_IMPORTED_MODULE_4__.withSelect)((function(select) { + var postMeta = select("core/editor").getEditedPostAttribute("meta"); + var oldPostMeta = select("core/editor").getCurrentPostAttribute("meta"); + return { + meta: _objectSpread(_objectSpread({}, oldPostMeta), postMeta), + oldMeta: oldPostMeta + }; + })), (0, _wordpress_data__WEBPACK_IMPORTED_MODULE_4__.withDispatch)((function(dispatch) { + return { + setMetaFieldValue: function setMetaFieldValue(value, field) { + return dispatch("core/editor").editPost({ + meta: _defineProperty({}, field, value) + }); + } + }; + })))(MetaSettings); + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + Element: () => Element, + attributesToProps: () => attributesToProps, + default: () => __WEBPACK_DEFAULT_EXPORT__, + domToReact: () => domToReact, + htmlToDOM: () => htmlToDOM + }); + var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25); + var domToReact = _index_js__WEBPACK_IMPORTED_MODULE_0__.domToReact; + var htmlToDOM = _index_js__WEBPACK_IMPORTED_MODULE_0__.htmlToDOM; + var attributesToProps = _index_js__WEBPACK_IMPORTED_MODULE_0__.attributesToProps; + var Element = _index_js__WEBPACK_IMPORTED_MODULE_0__.Element; + const __WEBPACK_DEFAULT_EXPORT__ = _index_js__WEBPACK_IMPORTED_MODULE_0__; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var domToReact = __webpack_require__(26); + var attributesToProps = __webpack_require__(28); + var htmlToDOM = __webpack_require__(36); + htmlToDOM = typeof htmlToDOM.default === "function" ? htmlToDOM.default : htmlToDOM; + var domParserOptions = { + lowerCaseAttributeNames: false + }; + function HTMLReactParser(html, options) { + if (typeof html !== "string") { + throw new TypeError("First argument must be a string"); + } + if (html === "") { + return []; + } + options = options || {}; + return domToReact(htmlToDOM(html, options.htmlparser2 || domParserOptions), options); + } + HTMLReactParser.domToReact = domToReact; + HTMLReactParser.htmlToDOM = htmlToDOM; + HTMLReactParser.attributesToProps = attributesToProps; + HTMLReactParser.Element = __webpack_require__(39).Element; + module.exports = HTMLReactParser; + module.exports["default"] = HTMLReactParser; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var React = __webpack_require__(27); + var attributesToProps = __webpack_require__(28); + var utilities = __webpack_require__(31); + var setStyleProp = utilities.setStyleProp; + var canTextBeChildOfNode = utilities.canTextBeChildOfNode; + function domToReact(nodes, options) { + options = options || {}; + var library = options.library || React; + var cloneElement = library.cloneElement; + var createElement = library.createElement; + var isValidElement = library.isValidElement; + var result = []; + var node; + var isWhitespace; + var hasReplace = typeof options.replace === "function"; + var replaceElement; + var props; + var children; + var trim = options.trim; + for (var i = 0, len = nodes.length; i < len; i++) { + node = nodes[i]; + if (hasReplace) { + replaceElement = options.replace(node); + if (isValidElement(replaceElement)) { + if (len > 1) { + replaceElement = cloneElement(replaceElement, { + key: replaceElement.key || i + }); + } + result.push(replaceElement); + continue; + } + } + if (node.type === "text") { + isWhitespace = !node.data.trim().length; + if (isWhitespace && node.parent && !canTextBeChildOfNode(node.parent)) { + continue; + } + if (trim && isWhitespace) { + continue; + } + result.push(node.data); + continue; + } + props = node.attribs; + if (skipAttributesToProps(node)) { + setStyleProp(props.style, props); + } else if (props) { + props = attributesToProps(props); + } + children = null; + switch (node.type) { + case "script": + case "style": + if (node.children[0]) { + props.dangerouslySetInnerHTML = { + __html: node.children[0].data + }; + } + break; + + case "tag": + if (node.name === "textarea" && node.children[0]) { + props.defaultValue = node.children[0].data; + } else if (node.children && node.children.length) { + children = domToReact(node.children, options); + } + break; + + default: + continue; + } + if (len > 1) { + props.key = i; + } + result.push(createElement(node.name, props, children)); + } + return result.length === 1 ? result[0] : result; + } + function skipAttributesToProps(node) { + return utilities.PRESERVE_CUSTOM_ATTRIBUTES && node.type === "tag" && utilities.isCustomComponent(node.name, node.attribs); + } + module.exports = domToReact; + }, module => { + "use strict"; + module.exports = window["React"]; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var reactProperty = __webpack_require__(29); + var utilities = __webpack_require__(31); + module.exports = function attributesToProps(attributes) { + attributes = attributes || {}; + var valueOnlyInputs = { + reset: true, + submit: true + }; + var attributeName; + var attributeNameLowerCased; + var attributeValue; + var propName; + var propertyInfo; + var props = {}; + var inputIsValueOnly = attributes.type && valueOnlyInputs[attributes.type]; + for (attributeName in attributes) { + attributeValue = attributes[attributeName]; + if (reactProperty.isCustomAttribute(attributeName)) { + props[attributeName] = attributeValue; + continue; + } + attributeNameLowerCased = attributeName.toLowerCase(); + propName = getPropName(attributeNameLowerCased); + if (propName) { + propertyInfo = reactProperty.getPropertyInfo(propName); + if ((propName === "checked" || propName === "value") && !inputIsValueOnly) { + propName = getPropName("default" + attributeNameLowerCased); + } + props[propName] = attributeValue; + switch (propertyInfo && propertyInfo.type) { + case reactProperty.BOOLEAN: + props[propName] = true; + break; + + case reactProperty.OVERLOADED_BOOLEAN: + if (attributeValue === "") { + props[propName] = true; + } + break; + } + continue; + } + if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) { + props[attributeName] = attributeValue; + } + } + utilities.setStyleProp(attributes.style, props); + return props; + }; + function getPropName(attributeName) { + return reactProperty.possibleStandardNames[attributeName]; + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var RESERVED = 0; + var STRING = 1; + var BOOLEANISH_STRING = 2; + var BOOLEAN = 3; + var OVERLOADED_BOOLEAN = 4; + var NUMERIC = 5; + var POSITIVE_NUMERIC = 6; + function getPropertyInfo(name) { + return properties.hasOwnProperty(name) ? properties[name] : null; + } + function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) { + this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN; + this.attributeName = attributeName; + this.attributeNamespace = attributeNamespace; + this.mustUseProperty = mustUseProperty; + this.propertyName = name; + this.type = type; + this.sanitizeURL = sanitizeURL; + this.removeEmptyString = removeEmptyString; + } + var properties = {}; + var reservedProps = [ "children", "dangerouslySetInnerHTML", "defaultValue", "defaultChecked", "innerHTML", "suppressContentEditableWarning", "suppressHydrationWarning", "style" ]; + reservedProps.forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, RESERVED, false, name, null, false, false); + })); + [ [ "acceptCharset", "accept-charset" ], [ "className", "class" ], [ "htmlFor", "for" ], [ "httpEquiv", "http-equiv" ] ].forEach((function(_ref) { + var _ref2 = _slicedToArray(_ref, 2), name = _ref2[0], attributeName = _ref2[1]; + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, null, false, false); + })); + [ "contentEditable", "draggable", "spellCheck", "value" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, name.toLowerCase(), null, false, false); + })); + [ "autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, name, null, false, false); + })); + [ "allowFullScreen", "async", "autoFocus", "autoPlay", "controls", "default", "defer", "disabled", "disablePictureInPicture", "disableRemotePlayback", "formNoValidate", "hidden", "loop", "noModule", "noValidate", "open", "playsInline", "readOnly", "required", "reversed", "scoped", "seamless", "itemScope" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, name.toLowerCase(), null, false, false); + })); + [ "checked", "multiple", "muted", "selected" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, name, null, false, false); + })); + [ "capture", "download" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, name, null, false, false); + })); + [ "cols", "rows", "size", "span" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, name, null, false, false); + })); + [ "rowSpan", "start" ].forEach((function(name) { + properties[name] = new PropertyInfoRecord(name, NUMERIC, false, name.toLowerCase(), null, false, false); + })); + var CAMELIZE = /[\-\:]([a-z])/g; + var capitalize = function capitalize(token) { + return token[1].toUpperCase(); + }; + [ "accent-height", "alignment-baseline", "arabic-form", "baseline-shift", "cap-height", "clip-path", "clip-rule", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "dominant-baseline", "enable-background", "fill-opacity", "fill-rule", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "glyph-name", "glyph-orientation-horizontal", "glyph-orientation-vertical", "horiz-adv-x", "horiz-origin-x", "image-rendering", "letter-spacing", "lighting-color", "marker-end", "marker-mid", "marker-start", "overline-position", "overline-thickness", "paint-order", "panose-1", "pointer-events", "rendering-intent", "shape-rendering", "stop-color", "stop-opacity", "strikethrough-position", "strikethrough-thickness", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-anchor", "text-decoration", "text-rendering", "underline-position", "underline-thickness", "unicode-bidi", "unicode-range", "units-per-em", "v-alphabetic", "v-hanging", "v-ideographic", "v-mathematical", "vector-effect", "vert-adv-y", "vert-origin-x", "vert-origin-y", "word-spacing", "writing-mode", "xmlns:xlink", "x-height" ].forEach((function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, null, false, false); + })); + [ "xlink:actuate", "xlink:arcrole", "xlink:role", "xlink:show", "xlink:title", "xlink:type" ].forEach((function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, "http://www.w3.org/1999/xlink", false, false); + })); + [ "xml:base", "xml:lang", "xml:space" ].forEach((function(attributeName) { + var name = attributeName.replace(CAMELIZE, capitalize); + properties[name] = new PropertyInfoRecord(name, STRING, false, attributeName, "http://www.w3.org/XML/1998/namespace", false, false); + })); + [ "tabIndex", "crossOrigin" ].forEach((function(attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, attributeName.toLowerCase(), null, false, false); + })); + var xlinkHref = "xlinkHref"; + properties[xlinkHref] = new PropertyInfoRecord("xlinkHref", STRING, false, "xlink:href", "http://www.w3.org/1999/xlink", true, false); + [ "src", "href", "action", "formAction" ].forEach((function(attributeName) { + properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, attributeName.toLowerCase(), null, true, true); + })); + var _require = __webpack_require__(30), CAMELCASE = _require.CAMELCASE, SAME = _require.SAME, possibleStandardNamesOptimized = _require.possibleStandardNames; + var ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var isCustomAttribute = RegExp.prototype.test.bind(new RegExp("^(data|aria)-[" + ATTRIBUTE_NAME_CHAR + "]*$")); + var possibleStandardNames = Object.keys(possibleStandardNamesOptimized).reduce((function(accumulator, standardName) { + var propName = possibleStandardNamesOptimized[standardName]; + if (propName === SAME) { + accumulator[standardName] = standardName; + } else if (propName === CAMELCASE) { + accumulator[standardName.toLowerCase()] = standardName; + } else { + accumulator[standardName] = propName; + } + return accumulator; + }), {}); + exports.BOOLEAN = BOOLEAN; + exports.BOOLEANISH_STRING = BOOLEANISH_STRING; + exports.NUMERIC = NUMERIC; + exports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN; + exports.POSITIVE_NUMERIC = POSITIVE_NUMERIC; + exports.RESERVED = RESERVED; + exports.STRING = STRING; + exports.getPropertyInfo = getPropertyInfo; + exports.isCustomAttribute = isCustomAttribute; + exports.possibleStandardNames = possibleStandardNames; + }, (__unused_webpack_module, exports) => { + var SAME = 0; + exports.SAME = SAME; + var CAMELCASE = 1; + exports.CAMELCASE = CAMELCASE; + exports.possibleStandardNames = { + accept: 0, + acceptCharset: 1, + "accept-charset": "acceptCharset", + accessKey: 1, + action: 0, + allowFullScreen: 1, + alt: 0, + as: 0, + async: 0, + autoCapitalize: 1, + autoComplete: 1, + autoCorrect: 1, + autoFocus: 1, + autoPlay: 1, + autoSave: 1, + capture: 0, + cellPadding: 1, + cellSpacing: 1, + challenge: 0, + charSet: 1, + checked: 0, + children: 0, + cite: 0, + class: "className", + classID: 1, + className: 1, + cols: 0, + colSpan: 1, + content: 0, + contentEditable: 1, + contextMenu: 1, + controls: 0, + controlsList: 1, + coords: 0, + crossOrigin: 1, + dangerouslySetInnerHTML: 1, + data: 0, + dateTime: 1, + default: 0, + defaultChecked: 1, + defaultValue: 1, + defer: 0, + dir: 0, + disabled: 0, + disablePictureInPicture: 1, + disableRemotePlayback: 1, + download: 0, + draggable: 0, + encType: 1, + enterKeyHint: 1, + for: "htmlFor", + form: 0, + formMethod: 1, + formAction: 1, + formEncType: 1, + formNoValidate: 1, + formTarget: 1, + frameBorder: 1, + headers: 0, + height: 0, + hidden: 0, + high: 0, + href: 0, + hrefLang: 1, + htmlFor: 1, + httpEquiv: 1, + "http-equiv": "httpEquiv", + icon: 0, + id: 0, + innerHTML: 1, + inputMode: 1, + integrity: 0, + is: 0, + itemID: 1, + itemProp: 1, + itemRef: 1, + itemScope: 1, + itemType: 1, + keyParams: 1, + keyType: 1, + kind: 0, + label: 0, + lang: 0, + list: 0, + loop: 0, + low: 0, + manifest: 0, + marginWidth: 1, + marginHeight: 1, + max: 0, + maxLength: 1, + media: 0, + mediaGroup: 1, + method: 0, + min: 0, + minLength: 1, + multiple: 0, + muted: 0, + name: 0, + noModule: 1, + nonce: 0, + noValidate: 1, + open: 0, + optimum: 0, + pattern: 0, + placeholder: 0, + playsInline: 1, + poster: 0, + preload: 0, + profile: 0, + radioGroup: 1, + readOnly: 1, + referrerPolicy: 1, + rel: 0, + required: 0, + reversed: 0, + role: 0, + rows: 0, + rowSpan: 1, + sandbox: 0, + scope: 0, + scoped: 0, + scrolling: 0, + seamless: 0, + selected: 0, + shape: 0, + size: 0, + sizes: 0, + span: 0, + spellCheck: 1, + src: 0, + srcDoc: 1, + srcLang: 1, + srcSet: 1, + start: 0, + step: 0, + style: 0, + summary: 0, + tabIndex: 1, + target: 0, + title: 0, + type: 0, + useMap: 1, + value: 0, + width: 0, + wmode: 0, + wrap: 0, + about: 0, + accentHeight: 1, + "accent-height": "accentHeight", + accumulate: 0, + additive: 0, + alignmentBaseline: 1, + "alignment-baseline": "alignmentBaseline", + allowReorder: 1, + alphabetic: 0, + amplitude: 0, + arabicForm: 1, + "arabic-form": "arabicForm", + ascent: 0, + attributeName: 1, + attributeType: 1, + autoReverse: 1, + azimuth: 0, + baseFrequency: 1, + baselineShift: 1, + "baseline-shift": "baselineShift", + baseProfile: 1, + bbox: 0, + begin: 0, + bias: 0, + by: 0, + calcMode: 1, + capHeight: 1, + "cap-height": "capHeight", + clip: 0, + clipPath: 1, + "clip-path": "clipPath", + clipPathUnits: 1, + clipRule: 1, + "clip-rule": "clipRule", + color: 0, + colorInterpolation: 1, + "color-interpolation": "colorInterpolation", + colorInterpolationFilters: 1, + "color-interpolation-filters": "colorInterpolationFilters", + colorProfile: 1, + "color-profile": "colorProfile", + colorRendering: 1, + "color-rendering": "colorRendering", + contentScriptType: 1, + contentStyleType: 1, + cursor: 0, + cx: 0, + cy: 0, + d: 0, + datatype: 0, + decelerate: 0, + descent: 0, + diffuseConstant: 1, + direction: 0, + display: 0, + divisor: 0, + dominantBaseline: 1, + "dominant-baseline": "dominantBaseline", + dur: 0, + dx: 0, + dy: 0, + edgeMode: 1, + elevation: 0, + enableBackground: 1, + "enable-background": "enableBackground", + end: 0, + exponent: 0, + externalResourcesRequired: 1, + fill: 0, + fillOpacity: 1, + "fill-opacity": "fillOpacity", + fillRule: 1, + "fill-rule": "fillRule", + filter: 0, + filterRes: 1, + filterUnits: 1, + floodOpacity: 1, + "flood-opacity": "floodOpacity", + floodColor: 1, + "flood-color": "floodColor", + focusable: 0, + fontFamily: 1, + "font-family": "fontFamily", + fontSize: 1, + "font-size": "fontSize", + fontSizeAdjust: 1, + "font-size-adjust": "fontSizeAdjust", + fontStretch: 1, + "font-stretch": "fontStretch", + fontStyle: 1, + "font-style": "fontStyle", + fontVariant: 1, + "font-variant": "fontVariant", + fontWeight: 1, + "font-weight": "fontWeight", + format: 0, + from: 0, + fx: 0, + fy: 0, + g1: 0, + g2: 0, + glyphName: 1, + "glyph-name": "glyphName", + glyphOrientationHorizontal: 1, + "glyph-orientation-horizontal": "glyphOrientationHorizontal", + glyphOrientationVertical: 1, + "glyph-orientation-vertical": "glyphOrientationVertical", + glyphRef: 1, + gradientTransform: 1, + gradientUnits: 1, + hanging: 0, + horizAdvX: 1, + "horiz-adv-x": "horizAdvX", + horizOriginX: 1, + "horiz-origin-x": "horizOriginX", + ideographic: 0, + imageRendering: 1, + "image-rendering": "imageRendering", + in2: 0, + in: 0, + inlist: 0, + intercept: 0, + k1: 0, + k2: 0, + k3: 0, + k4: 0, + k: 0, + kernelMatrix: 1, + kernelUnitLength: 1, + kerning: 0, + keyPoints: 1, + keySplines: 1, + keyTimes: 1, + lengthAdjust: 1, + letterSpacing: 1, + "letter-spacing": "letterSpacing", + lightingColor: 1, + "lighting-color": "lightingColor", + limitingConeAngle: 1, + local: 0, + markerEnd: 1, + "marker-end": "markerEnd", + markerHeight: 1, + markerMid: 1, + "marker-mid": "markerMid", + markerStart: 1, + "marker-start": "markerStart", + markerUnits: 1, + markerWidth: 1, + mask: 0, + maskContentUnits: 1, + maskUnits: 1, + mathematical: 0, + mode: 0, + numOctaves: 1, + offset: 0, + opacity: 0, + operator: 0, + order: 0, + orient: 0, + orientation: 0, + origin: 0, + overflow: 0, + overlinePosition: 1, + "overline-position": "overlinePosition", + overlineThickness: 1, + "overline-thickness": "overlineThickness", + paintOrder: 1, + "paint-order": "paintOrder", + panose1: 0, + "panose-1": "panose1", + pathLength: 1, + patternContentUnits: 1, + patternTransform: 1, + patternUnits: 1, + pointerEvents: 1, + "pointer-events": "pointerEvents", + points: 0, + pointsAtX: 1, + pointsAtY: 1, + pointsAtZ: 1, + prefix: 0, + preserveAlpha: 1, + preserveAspectRatio: 1, + primitiveUnits: 1, + property: 0, + r: 0, + radius: 0, + refX: 1, + refY: 1, + renderingIntent: 1, + "rendering-intent": "renderingIntent", + repeatCount: 1, + repeatDur: 1, + requiredExtensions: 1, + requiredFeatures: 1, + resource: 0, + restart: 0, + result: 0, + results: 0, + rotate: 0, + rx: 0, + ry: 0, + scale: 0, + security: 0, + seed: 0, + shapeRendering: 1, + "shape-rendering": "shapeRendering", + slope: 0, + spacing: 0, + specularConstant: 1, + specularExponent: 1, + speed: 0, + spreadMethod: 1, + startOffset: 1, + stdDeviation: 1, + stemh: 0, + stemv: 0, + stitchTiles: 1, + stopColor: 1, + "stop-color": "stopColor", + stopOpacity: 1, + "stop-opacity": "stopOpacity", + strikethroughPosition: 1, + "strikethrough-position": "strikethroughPosition", + strikethroughThickness: 1, + "strikethrough-thickness": "strikethroughThickness", + string: 0, + stroke: 0, + strokeDasharray: 1, + "stroke-dasharray": "strokeDasharray", + strokeDashoffset: 1, + "stroke-dashoffset": "strokeDashoffset", + strokeLinecap: 1, + "stroke-linecap": "strokeLinecap", + strokeLinejoin: 1, + "stroke-linejoin": "strokeLinejoin", + strokeMiterlimit: 1, + "stroke-miterlimit": "strokeMiterlimit", + strokeWidth: 1, + "stroke-width": "strokeWidth", + strokeOpacity: 1, + "stroke-opacity": "strokeOpacity", + suppressContentEditableWarning: 1, + suppressHydrationWarning: 1, + surfaceScale: 1, + systemLanguage: 1, + tableValues: 1, + targetX: 1, + targetY: 1, + textAnchor: 1, + "text-anchor": "textAnchor", + textDecoration: 1, + "text-decoration": "textDecoration", + textLength: 1, + textRendering: 1, + "text-rendering": "textRendering", + to: 0, + transform: 0, + typeof: 0, + u1: 0, + u2: 0, + underlinePosition: 1, + "underline-position": "underlinePosition", + underlineThickness: 1, + "underline-thickness": "underlineThickness", + unicode: 0, + unicodeBidi: 1, + "unicode-bidi": "unicodeBidi", + unicodeRange: 1, + "unicode-range": "unicodeRange", + unitsPerEm: 1, + "units-per-em": "unitsPerEm", + unselectable: 0, + vAlphabetic: 1, + "v-alphabetic": "vAlphabetic", + values: 0, + vectorEffect: 1, + "vector-effect": "vectorEffect", + version: 0, + vertAdvY: 1, + "vert-adv-y": "vertAdvY", + vertOriginX: 1, + "vert-origin-x": "vertOriginX", + vertOriginY: 1, + "vert-origin-y": "vertOriginY", + vHanging: 1, + "v-hanging": "vHanging", + vIdeographic: 1, + "v-ideographic": "vIdeographic", + viewBox: 1, + viewTarget: 1, + visibility: 0, + vMathematical: 1, + "v-mathematical": "vMathematical", + vocab: 0, + widths: 0, + wordSpacing: 1, + "word-spacing": "wordSpacing", + writingMode: 1, + "writing-mode": "writingMode", + x1: 0, + x2: 0, + x: 0, + xChannelSelector: 1, + xHeight: 1, + "x-height": "xHeight", + xlinkActuate: 1, + "xlink:actuate": "xlinkActuate", + xlinkArcrole: 1, + "xlink:arcrole": "xlinkArcrole", + xlinkHref: 1, + "xlink:href": "xlinkHref", + xlinkRole: 1, + "xlink:role": "xlinkRole", + xlinkShow: 1, + "xlink:show": "xlinkShow", + xlinkTitle: 1, + "xlink:title": "xlinkTitle", + xlinkType: 1, + "xlink:type": "xlinkType", + xmlBase: 1, + "xml:base": "xmlBase", + xmlLang: 1, + "xml:lang": "xmlLang", + xmlns: 0, + "xml:space": "xmlSpace", + xmlnsXlink: 1, + "xmlns:xlink": "xmlnsXlink", + xmlSpace: 1, + y1: 0, + y2: 0, + y: 0, + yChannelSelector: 1, + z: 0, + zoomAndPan: 1 + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var React = __webpack_require__(27); + var styleToJS = __webpack_require__(32)["default"]; + function invertObject(obj, override) { + if (!obj || typeof obj !== "object") { + throw new TypeError("First argument must be an object"); + } + var key; + var value; + var isOverridePresent = typeof override === "function"; + var overrides = {}; + var result = {}; + for (key in obj) { + value = obj[key]; + if (isOverridePresent) { + overrides = override(key, value); + if (overrides && overrides.length === 2) { + result[overrides[0]] = overrides[1]; + continue; + } + } + if (typeof value === "string") { + result[value] = key; + } + } + return result; + } + function isCustomComponent(tagName, props) { + if (tagName.indexOf("-") === -1) { + return props && typeof props.is === "string"; + } + switch (tagName) { + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + return false; + + default: + return true; + } + } + var styleToJSOptions = { + reactCompat: true + }; + function setStyleProp(style, props) { + if (style === null || style === undefined) { + return; + } + try { + props.style = styleToJS(style, styleToJSOptions); + } catch (err) { + props.style = {}; + } + } + var PRESERVE_CUSTOM_ATTRIBUTES = React.version.split(".")[0] >= 16; + var elementsWithNoTextChildren = new Set([ "tr", "tbody", "thead", "tfoot", "colgroup", "table", "head", "html", "frameset" ]); + function canTextBeChildOfNode(node) { + return !elementsWithNoTextChildren.has(node.name); + } + module.exports = { + PRESERVE_CUSTOM_ATTRIBUTES, + invertObject, + isCustomComponent, + setStyleProp, + canTextBeChildOfNode, + elementsWithNoTextChildren + }; + }, function(__unused_webpack_module, exports, __webpack_require__) { + "use strict"; + var __importDefault = this && this.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { + default: mod + }; + }; + exports.__esModule = true; + var style_to_object_1 = __importDefault(__webpack_require__(33)); + var utilities_1 = __webpack_require__(35); + function StyleToJS(style, options) { + var output = {}; + if (!style || typeof style !== "string") { + return output; + } + (0, style_to_object_1["default"])(style, (function(property, value) { + if (property && value) { + output[(0, utilities_1.camelCase)(property, options)] = value; + } + })); + return output; + } + exports["default"] = StyleToJS; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var parse = __webpack_require__(34); + function StyleToObject(style, iterator) { + var output = null; + if (!style || typeof style !== "string") { + return output; + } + var declaration; + var declarations = parse(style); + var hasIterator = typeof iterator === "function"; + var property; + var value; + for (var i = 0, len = declarations.length; i < len; i++) { + declaration = declarations[i]; + property = declaration.property; + value = declaration.value; + if (hasIterator) { + iterator(property, value, declaration); + } else if (value) { + output || (output = {}); + output[property] = value; + } + } + return output; + } + module.exports = StyleToObject; + }, module => { + var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g; + var NEWLINE_REGEX = /\n/g; + var WHITESPACE_REGEX = /^\s*/; + var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/; + var COLON_REGEX = /^:\s*/; + var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/; + var SEMICOLON_REGEX = /^[;\s]*/; + var TRIM_REGEX = /^\s+|\s+$/g; + var NEWLINE = "\n"; + var FORWARD_SLASH = "/"; + var ASTERISK = "*"; + var EMPTY_STRING = ""; + var TYPE_COMMENT = "comment"; + var TYPE_DECLARATION = "declaration"; + module.exports = function(style, options) { + if (typeof style !== "string") { + throw new TypeError("First argument must be a string"); + } + if (!style) return []; + options = options || {}; + var lineno = 1; + var column = 1; + function updatePosition(str) { + var lines = str.match(NEWLINE_REGEX); + if (lines) lineno += lines.length; + var i = str.lastIndexOf(NEWLINE); + column = ~i ? str.length - i : column + str.length; + } + function position() { + var start = { + line: lineno, + column + }; + return function(node) { + node.position = new Position(start); + whitespace(); + return node; + }; + } + function Position(start) { + this.start = start; + this.end = { + line: lineno, + column + }; + this.source = options.source; + } + Position.prototype.content = style; + var errorsList = []; + function error(msg) { + var err = new Error(options.source + ":" + lineno + ":" + column + ": " + msg); + err.reason = msg; + err.filename = options.source; + err.line = lineno; + err.column = column; + err.source = style; + if (options.silent) { + errorsList.push(err); + } else { + throw err; + } + } + function match(re) { + var m = re.exec(style); + if (!m) return; + var str = m[0]; + updatePosition(str); + style = style.slice(str.length); + return m; + } + function whitespace() { + match(WHITESPACE_REGEX); + } + function comments(rules) { + var c; + rules = rules || []; + while (c = comment()) { + if (c !== false) { + rules.push(c); + } + } + return rules; + } + function comment() { + var pos = position(); + if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return; + var i = 2; + while (EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))) { + ++i; + } + i += 2; + if (EMPTY_STRING === style.charAt(i - 1)) { + return error("End of comment missing"); + } + var str = style.slice(2, i - 2); + column += 2; + updatePosition(str); + style = style.slice(i); + column += 2; + return pos({ + type: TYPE_COMMENT, + comment: str + }); + } + function declaration() { + var pos = position(); + var prop = match(PROPERTY_REGEX); + if (!prop) return; + comment(); + if (!match(COLON_REGEX)) return error("property missing ':'"); + var val = match(VALUE_REGEX); + var ret = pos({ + type: TYPE_DECLARATION, + property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)), + value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING + }); + match(SEMICOLON_REGEX); + return ret; + } + function declarations() { + var decls = []; + comments(decls); + var decl; + while (decl = declaration()) { + if (decl !== false) { + decls.push(decl); + comments(decls); + } + } + return decls; + } + whitespace(); + return declarations(); + }; + function trim(str) { + return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING; + } + }, (__unused_webpack_module, exports) => { + "use strict"; + exports.__esModule = true; + exports.camelCase = void 0; + var CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/; + var HYPHEN_REGEX = /-([a-z])/g; + var NO_HYPHEN_REGEX = /^[^-]+$/; + var VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/; + var MS_VENDOR_PREFIX_REGEX = /^-(ms)-/; + var skipCamelCase = function(property) { + return !property || NO_HYPHEN_REGEX.test(property) || CUSTOM_PROPERTY_REGEX.test(property); + }; + var capitalize = function(match, character) { + return character.toUpperCase(); + }; + var trimHyphen = function(match, prefix) { + return "".concat(prefix, "-"); + }; + var camelCase = function(property, options) { + if (options === void 0) { + options = {}; + } + if (skipCamelCase(property)) { + return property; + } + property = property.toLowerCase(); + if (options.reactCompat) { + property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen); + } else { + property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen); + } + return property.replace(HYPHEN_REGEX, capitalize); + }; + exports.camelCase = camelCase; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var domparser = __webpack_require__(37); + var formatDOM = __webpack_require__(38).formatDOM; + var DIRECTIVE_REGEX = /<(![a-zA-Z\s]+)>/; + function HTMLDOMParser(html) { + if (typeof html !== "string") { + throw new TypeError("First argument must be a string"); + } + if (html === "") { + return []; + } + var match = html.match(DIRECTIVE_REGEX); + var directive; + if (match && match[1]) { + directive = match[1]; + } + return formatDOM(domparser(html), null, directive); + } + module.exports = HTMLDOMParser; + }, module => { + var HTML = "html"; + var HEAD = "head"; + var BODY = "body"; + var FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; + var HEAD_TAG_REGEX = //i; + var BODY_TAG_REGEX = //i; + var parseFromDocument = function() { + throw new Error("This browser does not support `document.implementation.createHTMLDocument`"); + }; + var parseFromString = function() { + throw new Error("This browser does not support `DOMParser.prototype.parseFromString`"); + }; + if (typeof window.DOMParser === "function") { + var domParser = new window.DOMParser; + var mimeType = "text/html"; + parseFromString = function(html, tagName) { + if (tagName) { + html = "<" + tagName + ">" + html + ""; + } + return domParser.parseFromString(html, mimeType); + }; + parseFromDocument = parseFromString; + } + if (document.implementation) { + var doc = document.implementation.createHTMLDocument(); + parseFromDocument = function(html, tagName) { + if (tagName) { + var element = doc.documentElement.querySelector(tagName); + element.innerHTML = html; + return doc; + } + doc.documentElement.innerHTML = html; + return doc; + }; + } + var template = document.createElement("template"); + var parseFromTemplate; + if (template.content) { + parseFromTemplate = function(html) { + template.innerHTML = html; + return template.content.childNodes; + }; + } + function domparser(html) { + var firstTagName; + var match = html.match(FIRST_TAG_REGEX); + if (match && match[1]) { + firstTagName = match[1].toLowerCase(); + } + var doc; + var element; + var elements; + switch (firstTagName) { + case HTML: + doc = parseFromString(html); + if (!HEAD_TAG_REGEX.test(html)) { + element = doc.querySelector(HEAD); + if (element) { + element.parentNode.removeChild(element); + } + } + if (!BODY_TAG_REGEX.test(html)) { + element = doc.querySelector(BODY); + if (element) { + element.parentNode.removeChild(element); + } + } + return doc.querySelectorAll(HTML); + + case HEAD: + case BODY: + doc = parseFromDocument(html); + elements = doc.querySelectorAll(firstTagName); + if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) { + return elements[0].parentNode.childNodes; + } + return elements; + + default: + if (parseFromTemplate) { + return parseFromTemplate(html); + } + element = parseFromDocument(html, BODY).querySelector(BODY); + return element.childNodes; + } + } + module.exports = domparser; + }, (__unused_webpack_module, exports, __webpack_require__) => { + var domhandler = __webpack_require__(39); + var constants = __webpack_require__(42); + var CASE_SENSITIVE_TAG_NAMES = constants.CASE_SENSITIVE_TAG_NAMES; + var Comment = domhandler.Comment; + var Element = domhandler.Element; + var ProcessingInstruction = domhandler.ProcessingInstruction; + var Text = domhandler.Text; + var caseSensitiveTagNamesMap = {}; + var tagName; + for (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) { + tagName = CASE_SENSITIVE_TAG_NAMES[i]; + caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName; + } + function getCaseSensitiveTagName(tagName) { + return caseSensitiveTagNamesMap[tagName]; + } + function formatAttributes(attributes) { + var result = {}; + var attribute; + for (var i = 0, len = attributes.length; i < len; i++) { + attribute = attributes[i]; + result[attribute.name] = attribute.value; + } + return result; + } + function formatTagName(tagName) { + tagName = tagName.toLowerCase(); + var caseSensitiveTagName = getCaseSensitiveTagName(tagName); + if (caseSensitiveTagName) { + return caseSensitiveTagName; + } + return tagName; + } + function formatDOM(nodes, parent, directive) { + parent = parent || null; + var result = []; + for (var index = 0, len = nodes.length; index < len; index++) { + var node = nodes[index]; + var current; + switch (node.nodeType) { + case 1: + current = new Element(formatTagName(node.nodeName), formatAttributes(node.attributes)); + current.children = formatDOM(node.childNodes, current); + break; + + case 3: + current = new Text(node.nodeValue); + break; + + case 8: + current = new Comment(node.nodeValue); + break; + + default: + continue; + } + var prev = result[index - 1] || null; + if (prev) { + prev.next = current; + } + current.parent = parent; + current.prev = prev; + current.next = null; + result.push(current); + } + if (directive) { + current = new ProcessingInstruction(directive.substring(0, directive.indexOf(" ")).toLowerCase(), directive); + current.next = result[0] || null; + current.parent = parent; + result.unshift(current); + if (result[1]) { + result[1].prev = result[0]; + } + } + return result; + } + exports.formatAttributes = formatAttributes; + exports.formatDOM = formatDOM; + }, function(__unused_webpack_module, exports, __webpack_require__) { + "use strict"; + var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { + enumerable: true, + get: function() { + return m[k]; + } + }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + var __exportStar = this && this.__exportStar || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.DomHandler = void 0; + var domelementtype_1 = __webpack_require__(40); + var node_js_1 = __webpack_require__(41); + __exportStar(__webpack_require__(41), exports); + var defaultOpts = { + withStartIndices: false, + withEndIndices: false, + xmlMode: false + }; + var DomHandler = function() { + function DomHandler(callback, options, elementCB) { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [ this.root ]; + this.lastNode = null; + this.parser = null; + if (typeof options === "function") { + elementCB = options; + options = defaultOpts; + } + if (typeof callback === "object") { + options = callback; + callback = undefined; + } + this.callback = callback !== null && callback !== void 0 ? callback : null; + this.options = options !== null && options !== void 0 ? options : defaultOpts; + this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null; + } + DomHandler.prototype.onparserinit = function(parser) { + this.parser = parser; + }; + DomHandler.prototype.onreset = function() { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [ this.root ]; + this.lastNode = null; + this.parser = null; + }; + DomHandler.prototype.onend = function() { + if (this.done) return; + this.done = true; + this.parser = null; + this.handleCallback(null); + }; + DomHandler.prototype.onerror = function(error) { + this.handleCallback(error); + }; + DomHandler.prototype.onclosetag = function() { + this.lastNode = null; + var elem = this.tagStack.pop(); + if (this.options.withEndIndices) { + elem.endIndex = this.parser.endIndex; + } + if (this.elementCB) this.elementCB(elem); + }; + DomHandler.prototype.onopentag = function(name, attribs) { + var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined; + var element = new node_js_1.Element(name, attribs, undefined, type); + this.addNode(element); + this.tagStack.push(element); + }; + DomHandler.prototype.ontext = function(data) { + var lastNode = this.lastNode; + if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) { + lastNode.data += data; + if (this.options.withEndIndices) { + lastNode.endIndex = this.parser.endIndex; + } + } else { + var node = new node_js_1.Text(data); + this.addNode(node); + this.lastNode = node; + } + }; + DomHandler.prototype.oncomment = function(data) { + if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) { + this.lastNode.data += data; + return; + } + var node = new node_js_1.Comment(data); + this.addNode(node); + this.lastNode = node; + }; + DomHandler.prototype.oncommentend = function() { + this.lastNode = null; + }; + DomHandler.prototype.oncdatastart = function() { + var text = new node_js_1.Text(""); + var node = new node_js_1.CDATA([ text ]); + this.addNode(node); + text.parent = node; + this.lastNode = text; + }; + DomHandler.prototype.oncdataend = function() { + this.lastNode = null; + }; + DomHandler.prototype.onprocessinginstruction = function(name, data) { + var node = new node_js_1.ProcessingInstruction(name, data); + this.addNode(node); + }; + DomHandler.prototype.handleCallback = function(error) { + if (typeof this.callback === "function") { + this.callback(error, this.dom); + } else if (error) { + throw error; + } + }; + DomHandler.prototype.addNode = function(node) { + var parent = this.tagStack[this.tagStack.length - 1]; + var previousSibling = parent.children[parent.children.length - 1]; + if (this.options.withStartIndices) { + node.startIndex = this.parser.startIndex; + } + if (this.options.withEndIndices) { + node.endIndex = this.parser.endIndex; + } + parent.children.push(node); + if (previousSibling) { + node.prev = previousSibling; + previousSibling.next = node; + } + node.parent = parent; + this.lastNode = null; + }; + return DomHandler; + }(); + exports.DomHandler = DomHandler; + exports["default"] = DomHandler; + }, (__unused_webpack_module, exports) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0; + var ElementType; + (function(ElementType) { + ElementType["Root"] = "root"; + ElementType["Text"] = "text"; + ElementType["Directive"] = "directive"; + ElementType["Comment"] = "comment"; + ElementType["Script"] = "script"; + ElementType["Style"] = "style"; + ElementType["Tag"] = "tag"; + ElementType["CDATA"] = "cdata"; + ElementType["Doctype"] = "doctype"; + })(ElementType = exports.ElementType || (exports.ElementType = {})); + function isTag(elem) { + return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; + } + exports.isTag = isTag; + exports.Root = ElementType.Root; + exports.Text = ElementType.Text; + exports.Directive = ElementType.Directive; + exports.Comment = ElementType.Comment; + exports.Script = ElementType.Script; + exports.Style = ElementType.Style; + exports.Tag = ElementType.Tag; + exports.CDATA = ElementType.CDATA; + exports.Doctype = ElementType.Doctype; + }, function(__unused_webpack_module, exports, __webpack_require__) { + "use strict"; + var __extends = this && this.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { + __proto__: [] + } instanceof Array && function(d, b) { + d.__proto__ = b; + } || function(d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + var __assign = this && this.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0; + var domelementtype_1 = __webpack_require__(40); + var Node = function() { + function Node() { + this.parent = null; + this.prev = null; + this.next = null; + this.startIndex = null; + this.endIndex = null; + } + Object.defineProperty(Node.prototype, "parentNode", { + get: function() { + return this.parent; + }, + set: function(parent) { + this.parent = parent; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node.prototype, "previousSibling", { + get: function() { + return this.prev; + }, + set: function(prev) { + this.prev = prev; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node.prototype, "nextSibling", { + get: function() { + return this.next; + }, + set: function(next) { + this.next = next; + }, + enumerable: false, + configurable: true + }); + Node.prototype.cloneNode = function(recursive) { + if (recursive === void 0) { + recursive = false; + } + return cloneNode(this, recursive); + }; + return Node; + }(); + exports.Node = Node; + var DataNode = function(_super) { + __extends(DataNode, _super); + function DataNode(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + Object.defineProperty(DataNode.prototype, "nodeValue", { + get: function() { + return this.data; + }, + set: function(data) { + this.data = data; + }, + enumerable: false, + configurable: true + }); + return DataNode; + }(Node); + exports.DataNode = DataNode; + var Text = function(_super) { + __extends(Text, _super); + function Text() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Text; + return _this; + } + Object.defineProperty(Text.prototype, "nodeType", { + get: function() { + return 3; + }, + enumerable: false, + configurable: true + }); + return Text; + }(DataNode); + exports.Text = Text; + var Comment = function(_super) { + __extends(Comment, _super); + function Comment() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Comment; + return _this; + } + Object.defineProperty(Comment.prototype, "nodeType", { + get: function() { + return 8; + }, + enumerable: false, + configurable: true + }); + return Comment; + }(DataNode); + exports.Comment = Comment; + var ProcessingInstruction = function(_super) { + __extends(ProcessingInstruction, _super); + function ProcessingInstruction(name, data) { + var _this = _super.call(this, data) || this; + _this.name = name; + _this.type = domelementtype_1.ElementType.Directive; + return _this; + } + Object.defineProperty(ProcessingInstruction.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + return ProcessingInstruction; + }(DataNode); + exports.ProcessingInstruction = ProcessingInstruction; + var NodeWithChildren = function(_super) { + __extends(NodeWithChildren, _super); + function NodeWithChildren(children) { + var _this = _super.call(this) || this; + _this.children = children; + return _this; + } + Object.defineProperty(NodeWithChildren.prototype, "firstChild", { + get: function() { + var _a; + return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren.prototype, "lastChild", { + get: function() { + return this.children.length > 0 ? this.children[this.children.length - 1] : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren.prototype, "childNodes", { + get: function() { + return this.children; + }, + set: function(children) { + this.children = children; + }, + enumerable: false, + configurable: true + }); + return NodeWithChildren; + }(Node); + exports.NodeWithChildren = NodeWithChildren; + var CDATA = function(_super) { + __extends(CDATA, _super); + function CDATA() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.CDATA; + return _this; + } + Object.defineProperty(CDATA.prototype, "nodeType", { + get: function() { + return 4; + }, + enumerable: false, + configurable: true + }); + return CDATA; + }(NodeWithChildren); + exports.CDATA = CDATA; + var Document = function(_super) { + __extends(Document, _super); + function Document() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Root; + return _this; + } + Object.defineProperty(Document.prototype, "nodeType", { + get: function() { + return 9; + }, + enumerable: false, + configurable: true + }); + return Document; + }(NodeWithChildren); + exports.Document = Document; + var Element = function(_super) { + __extends(Element, _super); + function Element(name, attribs, children, type) { + if (children === void 0) { + children = []; + } + if (type === void 0) { + type = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag; + } + var _this = _super.call(this, children) || this; + _this.name = name; + _this.attribs = attribs; + _this.type = type; + return _this; + } + Object.defineProperty(Element.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element.prototype, "tagName", { + get: function() { + return this.name; + }, + set: function(name) { + this.name = name; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element.prototype, "attributes", { + get: function() { + var _this = this; + return Object.keys(this.attribs).map((function(name) { + var _a, _b; + return { + name, + value: _this.attribs[name], + namespace: (_a = _this["x-attribsNamespace"]) === null || _a === void 0 ? void 0 : _a[name], + prefix: (_b = _this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name] + }; + })); + }, + enumerable: false, + configurable: true + }); + return Element; + }(NodeWithChildren); + exports.Element = Element; + function isTag(node) { + return (0, domelementtype_1.isTag)(node); + } + exports.isTag = isTag; + function isCDATA(node) { + return node.type === domelementtype_1.ElementType.CDATA; + } + exports.isCDATA = isCDATA; + function isText(node) { + return node.type === domelementtype_1.ElementType.Text; + } + exports.isText = isText; + function isComment(node) { + return node.type === domelementtype_1.ElementType.Comment; + } + exports.isComment = isComment; + function isDirective(node) { + return node.type === domelementtype_1.ElementType.Directive; + } + exports.isDirective = isDirective; + function isDocument(node) { + return node.type === domelementtype_1.ElementType.Root; + } + exports.isDocument = isDocument; + function hasChildren(node) { + return Object.prototype.hasOwnProperty.call(node, "children"); + } + exports.hasChildren = hasChildren; + function cloneNode(node, recursive) { + if (recursive === void 0) { + recursive = false; + } + var result; + if (isText(node)) { + result = new Text(node.data); + } else if (isComment(node)) { + result = new Comment(node.data); + } else if (isTag(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_1 = new Element(node.name, __assign({}, node.attribs), children); + children.forEach((function(child) { + return child.parent = clone_1; + })); + if (node.namespace != null) { + clone_1.namespace = node.namespace; + } + if (node["x-attribsNamespace"]) { + clone_1["x-attribsNamespace"] = __assign({}, node["x-attribsNamespace"]); + } + if (node["x-attribsPrefix"]) { + clone_1["x-attribsPrefix"] = __assign({}, node["x-attribsPrefix"]); + } + result = clone_1; + } else if (isCDATA(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_2 = new CDATA(children); + children.forEach((function(child) { + return child.parent = clone_2; + })); + result = clone_2; + } else if (isDocument(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_3 = new Document(children); + children.forEach((function(child) { + return child.parent = clone_3; + })); + if (node["x-mode"]) { + clone_3["x-mode"] = node["x-mode"]; + } + result = clone_3; + } else if (isDirective(node)) { + var instruction = new ProcessingInstruction(node.name, node.data); + if (node["x-name"] != null) { + instruction["x-name"] = node["x-name"]; + instruction["x-publicId"] = node["x-publicId"]; + instruction["x-systemId"] = node["x-systemId"]; + } + result = instruction; + } else { + throw new Error("Not implemented yet: ".concat(node.type)); + } + result.startIndex = node.startIndex; + result.endIndex = node.endIndex; + if (node.sourceCodeLocation != null) { + result.sourceCodeLocation = node.sourceCodeLocation; + } + return result; + } + exports.cloneNode = cloneNode; + function cloneChildren(childs) { + var children = childs.map((function(child) { + return cloneNode(child, true); + })); + for (var i = 1; i < children.length; i++) { + children[i].prev = children[i - 1]; + children[i - 1].next = children[i]; + } + return children; + } + }, (__unused_webpack_module, exports) => { + exports.CASE_SENSITIVE_TAG_NAMES = [ "animateMotion", "animateTransform", "clipPath", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussainBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "foreignObject", "linearGradient", "radialGradient", "textPath" ]; + }, module => { + "use strict"; + module.exports = window["wp"]["editPost"]; + }, module => { + "use strict"; + module.exports = window["wp"]["compose"]; + }, module => { + "use strict"; + module.exports = window["wp"]["components"]; + }, module => { + "use strict"; + module.exports = window["wp"]["data"]; + }, module => { + "use strict"; + module.exports = window["wp"]["i18n"]; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + if (false) {} else { + module.exports = __webpack_require__(49); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + /** @license React v17.0.2 + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ if (true) { + (function() { + "use strict"; + var React = __webpack_require__(27); + var _assign = __webpack_require__(50); + var REACT_ELEMENT_TYPE = 60103; + var REACT_PORTAL_TYPE = 60106; + exports.Fragment = 60107; + var REACT_STRICT_MODE_TYPE = 60108; + var REACT_PROFILER_TYPE = 60114; + var REACT_PROVIDER_TYPE = 60109; + var REACT_CONTEXT_TYPE = 60110; + var REACT_FORWARD_REF_TYPE = 60112; + var REACT_SUSPENSE_TYPE = 60113; + var REACT_SUSPENSE_LIST_TYPE = 60120; + var REACT_MEMO_TYPE = 60115; + var REACT_LAZY_TYPE = 60116; + var REACT_BLOCK_TYPE = 60121; + var REACT_SERVER_BLOCK_TYPE = 60122; + var REACT_FUNDAMENTAL_TYPE = 60117; + var REACT_SCOPE_TYPE = 60119; + var REACT_OPAQUE_ID_TYPE = 60128; + var REACT_DEBUG_TRACING_MODE_TYPE = 60129; + var REACT_OFFSCREEN_TYPE = 60130; + var REACT_LEGACY_HIDDEN_TYPE = 60131; + if (typeof Symbol === "function" && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor("react.element"); + REACT_PORTAL_TYPE = symbolFor("react.portal"); + exports.Fragment = symbolFor("react.fragment"); + REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode"); + REACT_PROFILER_TYPE = symbolFor("react.profiler"); + REACT_PROVIDER_TYPE = symbolFor("react.provider"); + REACT_CONTEXT_TYPE = symbolFor("react.context"); + REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref"); + REACT_SUSPENSE_TYPE = symbolFor("react.suspense"); + REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list"); + REACT_MEMO_TYPE = symbolFor("react.memo"); + REACT_LAZY_TYPE = symbolFor("react.lazy"); + REACT_BLOCK_TYPE = symbolFor("react.block"); + REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block"); + REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental"); + REACT_SCOPE_TYPE = symbolFor("react.scope"); + REACT_OPAQUE_ID_TYPE = symbolFor("react.opaque.id"); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode"); + REACT_OFFSCREEN_TYPE = symbolFor("react.offscreen"); + REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden"); + } + var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== "object") { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === "function") { + return maybeIterator; + } + return null; + } + var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function error(format) { + { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + printWarning("error", format, args); + } + } + function printWarning(level, format, args) { + { + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame.getStackAddendum(); + if (stack !== "") { + format += "%s"; + args = args.concat([ stack ]); + } + var argsWithFormat = args.map((function(item) { + return "" + item; + })); + argsWithFormat.unshift("Warning: " + format); + Function.prototype.apply.call(console[level], console, argsWithFormat); + } + } + var enableScopeAPI = false; + function isValidElementType(type) { + if (typeof type === "string" || typeof type === "function") { + return true; + } + if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) { + return true; + } + if (typeof type === "object" && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + return false; + } + function getWrappedName(outerType, innerType, wrapperName) { + var functionName = innerType.displayName || innerType.name || ""; + return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName); + } + function getContextName(type) { + return type.displayName || "Context"; + } + function getComponentName(type) { + if (type == null) { + return null; + } + { + if (typeof type.tag === "number") { + error("Received an unexpected object in getComponentName(). " + "This is likely a bug in React. Please file an issue."); + } + } + if (typeof type === "function") { + return type.displayName || type.name || null; + } + if (typeof type === "string") { + return type; + } + switch (type) { + case exports.Fragment: + return "Fragment"; + + case REACT_PORTAL_TYPE: + return "Portal"; + + case REACT_PROFILER_TYPE: + return "Profiler"; + + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + + case REACT_SUSPENSE_TYPE: + return "Suspense"; + + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + ".Consumer"; + + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + ".Provider"; + + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, "ForwardRef"); + + case REACT_MEMO_TYPE: + return getComponentName(type.type); + + case REACT_BLOCK_TYPE: + return getComponentName(type._render); + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return getComponentName(init(payload)); + } catch (x) { + return null; + } + } + } + } + return null; + } + var disabledDepth = 0; + var prevLog; + var prevInfo; + var prevWarn; + var prevError; + var prevGroup; + var prevGroupCollapsed; + var prevGroupEnd; + function disabledLog() {} + disabledLog.__reactDisabledLog = true; + function disableLogs() { + { + if (disabledDepth === 0) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + } + function reenableLogs() { + { + disabledDepth--; + if (disabledDepth === 0) { + var props = { + configurable: true, + enumerable: true, + writable: true + }; + Object.defineProperties(console, { + log: _assign({}, props, { + value: prevLog + }), + info: _assign({}, props, { + value: prevInfo + }), + warn: _assign({}, props, { + value: prevWarn + }), + error: _assign({}, props, { + value: prevError + }), + group: _assign({}, props, { + value: prevGroup + }), + groupCollapsed: _assign({}, props, { + value: prevGroupCollapsed + }), + groupEnd: _assign({}, props, { + value: prevGroupEnd + }) + }); + } + if (disabledDepth < 0) { + error("disabledDepth fell below zero. " + "This is a bug in React. Please file an issue."); + } + } + } + var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix === undefined) { + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + } + } + return "\n" + prefix + name; + } + } + var reentry = false; + var componentFrameCache; + { + var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap; + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) { + return ""; + } + { + var frame = componentFrameCache.get(fn); + if (frame !== undefined) { + return frame; + } + } + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = undefined; + var previousDispatcher; + { + previousDispatcher = ReactCurrentDispatcher.current; + ReactCurrentDispatcher.current = null; + disableLogs(); + } + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if (typeof Reflect === "object" && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } + fn(); + } + } catch (sample) { + if (sample && control && typeof sample.stack === "string") { + var sampleLines = sample.stack.split("\n"); + var controlLines = control.stack.split("\n"); + var s = sampleLines.length - 1; + var c = controlLines.length - 1; + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + c--; + } + for (;s >= 1 && c >= 0; s--, c--) { + if (sampleLines[s] !== controlLines[c]) { + if (s !== 1 || c !== 1) { + do { + s--; + c--; + if (c < 0 || sampleLines[s] !== controlLines[c]) { + var _frame = "\n" + sampleLines[s].replace(" at new ", " at "); + { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } + return _frame; + } + } while (s >= 1 && c >= 0); + } + break; + } + } + } + } finally { + reentry = false; + { + ReactCurrentDispatcher.current = previousDispatcher; + reenableLogs(); + } + Error.prepareStackTrace = previousPrepareStackTrace; + } + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + return syntheticFrame; + } + function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } + } + function shouldConstruct(Component) { + var prototype = Component.prototype; + return !!(prototype && prototype.isReactComponent); + } + function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + if (type == null) { + return ""; + } + if (typeof type === "function") { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + if (typeof type === "string") { + return describeBuiltInComponentFrame(type); + } + switch (type) { + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + + case REACT_MEMO_TYPE: + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + + case REACT_BLOCK_TYPE: + return describeFunctionComponentFrame(type._render); + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x) {} + } + } + } + return ""; + } + var loggedTypeFailures = {}; + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame.setExtraStackFrame(null); + } + } + } + function checkPropTypes(typeSpecs, values, location, componentName, element) { + { + var has = Function.call.bind(Object.prototype.hasOwnProperty); + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error$1 = void 0; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; " + "it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`." + "This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + err.name = "Invariant Violation"; + throw err; + } + error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (ex) { + error$1 = ex; + } + if (error$1 && !(error$1 instanceof Error)) { + setCurrentlyValidatingElement(element); + error("%s: type specification of %s" + " `%s` is invalid; the type checker " + "function must return `null` or an `Error` but returned a %s. " + "You may have forgotten to pass an argument to the type checker " + "creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and " + "shape all require an argument).", componentName || "React class", location, typeSpecName, typeof error$1); + setCurrentlyValidatingElement(null); + } + if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { + loggedTypeFailures[error$1.message] = true; + setCurrentlyValidatingElement(element); + error("Failed %s type: %s", location, error$1.message); + setCurrentlyValidatingElement(null); + } + } + } + } + } + var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true + }; + var specialPropKeyWarningShown; + var specialPropRefWarningShown; + var didWarnAboutStringRefs; + { + didWarnAboutStringRefs = {}; + } + function hasValidRef(config) { + { + if (hasOwnProperty.call(config, "ref")) { + var getter = Object.getOwnPropertyDescriptor(config, "ref").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.ref !== undefined; + } + function hasValidKey(config) { + { + if (hasOwnProperty.call(config, "key")) { + var getter = Object.getOwnPropertyDescriptor(config, "key").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.key !== undefined; + } + function warnIfStringRefCannotBeAutoConverted(config, self) { + { + if (typeof config.ref === "string" && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) { + var componentName = getComponentName(ReactCurrentOwner.current.type); + if (!didWarnAboutStringRefs[componentName]) { + error('Component "%s" contains the string ref "%s". ' + "Support for string refs will be removed in a future major release. " + "This case cannot be automatically converted to an arrow function. " + "We ask you to manually fix this case by using useRef() or createRef() instead. " + "Learn more about using refs safely here: " + "https://reactjs.org/link/strict-mode-string-ref", getComponentName(ReactCurrentOwner.current.type), config.ref); + didWarnAboutStringRefs[componentName] = true; + } + } + } + } + function defineKeyPropWarningGetter(props, displayName) { + { + var warnAboutAccessingKey = function() { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + error("%s: `key` is not a prop. Trying to access it will result " + "in `undefined` being returned. If you need to access the same " + "value within the child component, you should pass it as a different " + "prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + } + function defineRefPropWarningGetter(props, displayName) { + { + var warnAboutAccessingRef = function() { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + error("%s: `ref` is not a prop. Trying to access it will result " + "in `undefined` being returned. If you need to access the same " + "value within the child component, you should pass it as a different " + "prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, "ref", { + get: warnAboutAccessingRef, + configurable: true + }); + } + } + var ReactElement = function(type, key, ref, self, source, owner, props) { + var element = { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref, + props, + _owner: owner + }; + { + element._store = {}; + Object.defineProperty(element._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + Object.defineProperty(element, "_self", { + configurable: false, + enumerable: false, + writable: false, + value: self + }); + Object.defineProperty(element, "_source", { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + return element; + }; + function jsxDEV(type, config, maybeKey, source, self) { + { + var propName; + var props = {}; + var key = null; + var ref = null; + if (maybeKey !== undefined) { + key = "" + maybeKey; + } + if (hasValidKey(config)) { + key = "" + config.key; + } + if (hasValidRef(config)) { + ref = config.ref; + warnIfStringRefCannotBeAutoConverted(config, self); + } + for (propName in config) { + if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + } + if (key || ref) { + var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); + } + } + var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner; + var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement$1(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame$1.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame$1.setExtraStackFrame(null); + } + } + } + var propTypesMisspellWarningShown; + { + propTypesMisspellWarningShown = false; + } + function isValidElement(object) { + { + return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + } + function getDeclarationErrorAddendum() { + { + if (ReactCurrentOwner$1.current) { + var name = getComponentName(ReactCurrentOwner$1.current.type); + if (name) { + return "\n\nCheck the render method of `" + name + "`."; + } + } + return ""; + } + } + function getSourceInfoErrorAddendum(source) { + { + if (source !== undefined) { + var fileName = source.fileName.replace(/^.*[\\\/]/, ""); + var lineNumber = source.lineNumber; + return "\n\nCheck your code at " + fileName + ":" + lineNumber + "."; + } + return ""; + } + } + var ownerHasKeyUseWarning = {}; + function getCurrentComponentErrorInfo(parentType) { + { + var info = getDeclarationErrorAddendum(); + if (!info) { + var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = "\n\nCheck the top-level render call using <" + parentName + ">."; + } + } + return info; + } + } + function validateExplicitKey(element, parentType) { + { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { + return; + } + ownerHasKeyUseWarning[currentComponentErrorInfo] = true; + var childOwner = ""; + if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) { + childOwner = " It was passed a child from " + getComponentName(element._owner.type) + "."; + } + setCurrentlyValidatingElement$1(element); + error('Each child in a list should have a unique "key" prop.' + "%s%s See https://reactjs.org/link/warning-keys for more information.", currentComponentErrorInfo, childOwner); + setCurrentlyValidatingElement$1(null); + } + } + function validateChildKeys(node, parentType) { + { + if (typeof node !== "object") { + return; + } + if (Array.isArray(node)) { + for (var i = 0; i < node.length; i++) { + var child = node[i]; + if (isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (isValidElement(node)) { + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + if (typeof iteratorFn === "function") { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } + } + } + function validatePropTypes(element) { + { + var type = element.type; + if (type === null || type === undefined || typeof type === "string") { + return; + } + var propTypes; + if (typeof type === "function") { + propTypes = type.propTypes; + } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_MEMO_TYPE)) { + propTypes = type.propTypes; + } else { + return; + } + if (propTypes) { + var name = getComponentName(type); + checkPropTypes(propTypes, element.props, "prop", name, element); + } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) { + propTypesMisspellWarningShown = true; + var _name = getComponentName(type); + error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown"); + } + if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) { + error("getDefaultProps is only used on classic React.createClass " + "definitions. Use a static property named `defaultProps` instead."); + } + } + } + function validateFragmentProps(fragment) { + { + var keys = Object.keys(fragment.props); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key !== "children" && key !== "key") { + setCurrentlyValidatingElement$1(fragment); + error("Invalid prop `%s` supplied to `React.Fragment`. " + "React.Fragment can only have `key` and `children` props.", key); + setCurrentlyValidatingElement$1(null); + break; + } + } + if (fragment.ref !== null) { + setCurrentlyValidatingElement$1(fragment); + error("Invalid attribute `ref` supplied to `React.Fragment`."); + setCurrentlyValidatingElement$1(null); + } + } + } + function jsxWithValidation(type, props, key, isStaticChildren, source, self) { + { + var validType = isValidElementType(type); + if (!validType) { + var info = ""; + if (type === undefined || typeof type === "object" && type !== null && Object.keys(type).length === 0) { + info += " You likely forgot to export your component from the file " + "it's defined in, or you might have mixed up default and named imports."; + } + var sourceInfo = getSourceInfoErrorAddendum(source); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } + var typeString; + if (type === null) { + typeString = "null"; + } else if (Array.isArray(type)) { + typeString = "array"; + } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) { + typeString = "<" + (getComponentName(type.type) || "Unknown") + " />"; + info = " Did you accidentally export a JSX literal instead of a component?"; + } else { + typeString = typeof type; + } + error("React.jsx: type is invalid -- expected a string (for " + "built-in components) or a class/function (for composite " + "components) but got: %s.%s", typeString, info); + } + var element = jsxDEV(type, props, key, source, self); + if (element == null) { + return element; + } + if (validType) { + var children = props.children; + if (children !== undefined) { + if (isStaticChildren) { + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + validateChildKeys(children[i], type); + } + if (Object.freeze) { + Object.freeze(children); + } + } else { + error("React.jsx: Static children should always be an array. " + "You are likely explicitly calling React.jsxs or React.jsxDEV. " + "Use the Babel transform instead."); + } + } else { + validateChildKeys(children, type); + } + } + } + if (type === exports.Fragment) { + validateFragmentProps(element); + } else { + validatePropTypes(element); + } + return element; + } + } + function jsxWithValidationStatic(type, props, key) { + { + return jsxWithValidation(type, props, key, true); + } + } + function jsxWithValidationDynamic(type, props, key) { + { + return jsxWithValidation(type, props, key, false); + } + } + var jsx = jsxWithValidationDynamic; + var jsxs = jsxWithValidationStatic; + exports.jsx = jsx; + exports.jsxs = jsxs; + })(); + } + }, module => { + "use strict"; + /* +object-assign +(c) Sindre Sorhus +@license MIT +*/ var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map((function(n) { + return test2[n]; + })); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach((function(letter) { + test3[letter] = letter; + })); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + module.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + return to; + }; + }, module => { + "use strict"; + module.exports = window["wp"]["element"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => HeaderSettings + }); + var _theme_switch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48); + function HeaderSettings() { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_theme_switch__WEBPACK_IMPORTED_MODULE_0__["default"], {}) + }); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var html_react_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); + var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); + var _wordpress_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54); + var _wordpress_editor__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_wordpress_editor__WEBPACK_IMPORTED_MODULE_4__); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var ThemeSwitch = function ThemeSwitch() { + var getEditorSettings = (0, _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)((function(select) { + var _select = select(_wordpress_editor__WEBPACK_IMPORTED_MODULE_4__.store), getEditorSettings = _select.getEditorSettings; + return getEditorSettings; + }), []); + var _useDispatch = (0, _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useDispatch)(_wordpress_editor__WEBPACK_IMPORTED_MODULE_4__.store), updateEditorSettings = _useDispatch.updateEditorSettings; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)("auto"), _useState2 = _slicedToArray(_useState, 2), currentTheme = _useState2[0], setCurrentTheme = _useState2[1]; + var icons = { + auto: (0, html_react_parser__WEBPACK_IMPORTED_MODULE_0__["default"])(''), + light: (0, html_react_parser__WEBPACK_IMPORTED_MODULE_0__["default"])(''), + dark: (0, html_react_parser__WEBPACK_IMPORTED_MODULE_0__["default"])('') + }; + var icon = icons[currentTheme]; + var handleThemeSwitch = function handleThemeSwitch(theme) { + setCurrentTheme(theme); + var current = document.querySelector("style#kenta-editor-color-theme"); + if (current) { + current.remove(); + } + var css = ""; + var id = "kenta-editor-color-theme"; + if (theme !== "auto") { + css = "\n :root, .editor-styles-wrapper {\n --kenta-transparent : rgba(0, 0, 0, 0) !important;\n --kenta-primary-color : var(--kenta-".concat(theme, "-primary-color, var(--kenta-light-primary-color)) !important;\n --kenta-primary-active : var(--kenta-").concat(theme, "-primary-active, var(--kenta-light-primary-active)) !important;\n --kenta-accent-color : var(--kenta-").concat(theme, "-accent-color, var(--kenta-light-accent-color)) !important;\n --kenta-accent-active : var(--kenta-").concat(theme, "-accent-active, var(--kenta-light-accent-active)) !important;\n --kenta-base-color : var(--kenta-").concat(theme, "-base-color, var(--kenta-light-base-color)) !important;\n --kenta-base-100 : var(--kenta-").concat(theme, "-base-100, var(--kenta-light-base-100)) !important;\n --kenta-base-200 : var(--kenta-").concat(theme, "-base-200, var(--kenta-light-base-200)) !important;\n --kenta-base-300 : var(--kenta-").concat(theme, "-base-300, var(--kenta-light-base-300)) !important;\n }\n "); + } + if (getEditorSettings && updateEditorSettings) { + var editorSettings = getEditorSettings(); + var otherStyles = editorSettings.styles.filter((function(_ref) { + var _ref$id = _ref.id, styleId = _ref$id === void 0 ? "" : _ref$id; + return styleId !== id; + })); + var style = { + id, + css, + isGlobalStyles: true + }; + updateEditorSettings(_objectSpread(_objectSpread({}, editorSettings), {}, { + styles: [ style ].concat(_toConsumableArray(otherStyles)) + })); + } else { + var styleEl = document.getElementById(id); + if (!styleEl) { + styleEl = document.createElement("style"); + styleEl.setAttribute("id", id); + } + styleEl.innerHTML = css; + document.head.appendChild(styleEl); + } + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.DropdownMenu, { + icon, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Select theme scheme", "kenta"), + children: function children(_ref2) { + var onClose = _ref2.onClose; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.Fragment, { + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.MenuGroup, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.MenuItem, { + icon: currentTheme === "auto" ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"] : null, + onClick: function onClick() { + return handleThemeSwitch("auto"); + }, + children: [ icons.auto, " ", (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Theme", "kenta") ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.MenuItem, { + icon: currentTheme === "light" ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"] : null, + onClick: function onClick() { + return handleThemeSwitch("light"); + }, + children: [ icons.light, " ", (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Light", "kenta") ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.MenuItem, { + icon: currentTheme === "dark" ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"] : null, + onClick: function onClick() { + return handleThemeSwitch("dark"); + }, + children: [ icons.dark, " ", (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Dark", "kenta") ] + }) ] + }) + }); + } + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = ThemeSwitch; + }, module => { + "use strict"; + module.exports = window["wp"]["editor"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56); + var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__); + const check = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24" + }, (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, { + d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z" + })); + const __WEBPACK_DEFAULT_EXPORT__ = check; + }, module => { + "use strict"; + module.exports = window["wp"]["primitives"]; + } ]; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); + return module.exports; + } + (() => { + __webpack_require__.n = module => { + var getter = module && module.__esModule ? () => module["default"] : () => module; + __webpack_require__.d(getter, { + a: getter + }); + return getter; + }; + })(); + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + var __webpack_exports__ = {}; + (() => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22); + var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__); + var _admin_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1); + var _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2__); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46); + var _wordpress_data__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_3__); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(51); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__); + var _admin_header_settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48); + (function(wp) { + (0, _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__.registerPlugin)("kenta-theme-settings", { + render: _admin_settings__WEBPACK_IMPORTED_MODULE_1__["default"] + }); + })(window.wp); + _wordpress_dom_ready__WEBPACK_IMPORTED_MODULE_2___default()((function() { + if ("widgets" === window.pagenow || "customize" === window.pagenow) return; + var timeout = null; + var unsubscribe = (0, _wordpress_data__WEBPACK_IMPORTED_MODULE_3__.subscribe)((function() { + var settingsBar = document.querySelector(".edit-post-header__settings, .editor-header__settings"); + if (!settingsBar) return; + var wrapper = document.createElement("div"); + wrapper.classList.add("kenta-edit-post-header-settings"); + if (!document.querySelector(".kenta-edit-post-header-settings")) { + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.createRoot) { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_4__.createRoot)(wrapper).render((0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_admin_header_settings__WEBPACK_IMPORTED_MODULE_5__["default"], {})); + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_4__.render)((0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_admin_header_settings__WEBPACK_IMPORTED_MODULE_5__["default"], {}), wrapper); + } + settingsBar.prepend(wrapper); + } + if (timeout) clearTimeout(timeout); + timeout = setTimeout((function() { + if (document.querySelector(".kenta-edit-post-header-settings")) { + unsubscribe(); + } + }), 0); + })); + })); + })(); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/block-editor.min.asset.php b/wp-content/themes/kenta/dist/js/block-editor.min.asset.php new file mode 100644 index 0000000000..d9cfb4e2e2 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/block-editor.min.asset.php @@ -0,0 +1 @@ + array('react', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-primitives'), 'version' => '61d5b23da0b05bd5'); diff --git a/wp-content/themes/kenta/dist/js/block-editor.min.js b/wp-content/themes/kenta/dist/js/block-editor.min.js new file mode 100644 index 0000000000..31660d73b2 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/block-editor.min.js @@ -0,0 +1,2 @@ +/*! For license information please see block-editor.min.js.LICENSE.txt */ +(()=>{var e={960:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},915:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var i=n(960),a=n(790);o(n(790),t);var l={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},s=function(){function e(e,t,n){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(n=t,t=l),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:l,this.elementCB=null!=n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new a.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?i.ElementType.Tag:void 0,r=new a.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===i.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new a.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===i.ElementType.Comment)this.lastNode.data+=e;else{var t=new a.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new a.Text(""),t=new a.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new a.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=s,t.default=s},790:function(e,t,n){"use strict";var r,o=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(l);t.NodeWithChildren=d;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.CDATA,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(d);t.CDATA=f;var h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=a.ElementType.Root,t}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(d);t.Document=h;var m=function(e){function t(t,n,r,o){void 0===r&&(r=[]),void 0===o&&(o="script"===t?a.ElementType.Script:"style"===t?a.ElementType.Style:a.ElementType.Tag);var i=e.call(this,r)||this;return i.name=t,i.attribs=n,i.type=o,i}return o(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(d);function g(e){return(0,a.isTag)(e)}function y(e){return e.type===a.ElementType.CDATA}function v(e){return e.type===a.ElementType.Text}function b(e){return e.type===a.ElementType.Comment}function w(e){return e.type===a.ElementType.Directive}function k(e){return e.type===a.ElementType.Root}function x(e,t){var n;if(void 0===t&&(t=!1),v(e))n=new c(e.data);else if(b(e))n=new u(e.data);else if(g(e)){var r=t?S(e.children):[],o=new m(e.name,i({},e.attribs),r);r.forEach((function(e){return e.parent=o})),null!=e.namespace&&(o.namespace=e.namespace),e["x-attribsNamespace"]&&(o["x-attribsNamespace"]=i({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(o["x-attribsPrefix"]=i({},e["x-attribsPrefix"])),n=o}else if(y(e)){r=t?S(e.children):[];var a=new f(r);r.forEach((function(e){return e.parent=a})),n=a}else if(k(e)){r=t?S(e.children):[];var l=new h(r);r.forEach((function(e){return e.parent=l})),e["x-mode"]&&(l["x-mode"]=e["x-mode"]),n=l}else{if(!w(e))throw new Error("Not implemented yet: ".concat(e.type));var s=new p(e.name,e.data);null!=e["x-name"]&&(s["x-name"]=e["x-name"],s["x-publicId"]=e["x-publicId"],s["x-systemId"]=e["x-systemId"]),n=s}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function S(e){for(var t=e.map((function(e){return x(e,!0)})),n=1;n{t.CASE_SENSITIVE_TAG_NAMES=["animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussainBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","linearGradient","radialGradient","textPath"]},276:e=>{var t="html",n="head",r="body",o=/<([a-zA-Z]+[0-9]?)/,i=//i,a=//i,l=function(){throw new Error("This browser does not support `document.implementation.createHTMLDocument`")},s=function(){throw new Error("This browser does not support `DOMParser.prototype.parseFromString`")};if("function"==typeof window.DOMParser){var c=new window.DOMParser;l=s=function(e,t){return t&&(e="<"+t+">"+e+""),c.parseFromString(e,"text/html")}}if(document.implementation){var u=document.implementation.createHTMLDocument();l=function(e,t){return t?(u.documentElement.querySelector(t).innerHTML=e,u):(u.documentElement.innerHTML=e,u)}}var p,d=document.createElement("template");d.content&&(p=function(e){return d.innerHTML=e,d.content.childNodes}),e.exports=function(e){var c,u,d,f,h=e.match(o);switch(h&&h[1]&&(c=h[1].toLowerCase()),c){case t:return u=s(e),i.test(e)||(d=u.querySelector(n))&&d.parentNode.removeChild(d),a.test(e)||(d=u.querySelector(r))&&d.parentNode.removeChild(d),u.querySelectorAll(t);case n:case r:return f=(u=l(e)).querySelectorAll(c),a.test(e)&&i.test(e)?f[0].parentNode.childNodes:f;default:return p?p(e):(d=l(e,r).querySelector(r)).childNodes}}},152:(e,t,n)=>{var r=n(276),o=n(507).e,i=/<(![a-zA-Z\s]+)>/;e.exports=function(e){if("string"!=typeof e)throw new TypeError("First argument must be a string");if(""===e)return[];var t,n=e.match(i);return n&&n[1]&&(t=n[1]),o(r(e),null,t)}},507:(e,t,n)=>{for(var r,o=n(915),i=n(885).CASE_SENSITIVE_TAG_NAMES,a=o.Comment,l=o.Element,s=o.ProcessingInstruction,c=o.Text,u={},p=0,d=i.length;p{var r=n(670),o=n(484),i=n(152);i="function"==typeof i.default?i.default:i;var a={lowerCaseAttributeNames:!1};function l(e,t){if("string"!=typeof e)throw new TypeError("First argument must be a string");return""===e?[]:r(i(e,(t=t||{}).htmlparser2||a),t)}l.domToReact=r,l.htmlToDOM=i,l.attributesToProps=o,l.Element=n(915).Element,e.exports=l,e.exports.default=l},484:(e,t,n)=>{var r=n(726),o=n(606);function i(e){return r.possibleStandardNames[e]}e.exports=function(e){var t,n,a,l,s,c={},u=(e=e||{}).type&&{reset:!0,submit:!0}[e.type];for(t in e)if(a=e[t],r.isCustomAttribute(t))c[t]=a;else if(l=i(n=t.toLowerCase()))switch(s=r.getPropertyInfo(l),"checked"!==l&&"value"!==l||u||(l=i("default"+n)),c[l]=a,s&&s.type){case r.BOOLEAN:c[l]=!0;break;case r.OVERLOADED_BOOLEAN:""===a&&(c[l]=!0)}else o.PRESERVE_CUSTOM_ATTRIBUTES&&(c[t]=a);return o.setStyleProp(e.style,c),c}},670:(e,t,n)=>{var r=n(196),o=n(484),i=n(606),a=i.setStyleProp,l=i.canTextBeChildOfNode;function s(e){return i.PRESERVE_CUSTOM_ATTRIBUTES&&"tag"===e.type&&i.isCustomComponent(e.name,e.attribs)}e.exports=function e(t,n){for(var i,c,u,p,d,f=(n=n||{}).library||r,h=f.cloneElement,m=f.createElement,g=f.isValidElement,y=[],v="function"==typeof n.replace,b=n.trim,w=0,k=t.length;w1&&(u=h(u,{key:u.key||w})),y.push(u);else if("text"!==i.type){switch(p=i.attribs,s(i)?a(p.style,p):p&&(p=o(p)),d=null,i.type){case"script":case"style":i.children[0]&&(p.dangerouslySetInnerHTML={__html:i.children[0].data});break;case"tag":"textarea"===i.name&&i.children[0]?p.defaultValue=i.children[0].data:i.children&&i.children.length&&(d=e(i.children,n));break;default:continue}k>1&&(p.key=w),y.push(m(i.name,p,d))}else{if((c=!i.data.trim().length)&&i.parent&&!l(i.parent))continue;if(b&&c)continue;y.push(i.data)}return 1===y.length?y[0]:y}},606:(e,t,n)=>{var r=n(196),o=n(476).default;var i={reactCompat:!0};var a=r.version.split(".")[0]>=16,l=new Set(["tr","tbody","thead","tfoot","colgroup","table","head","html","frameset"]);e.exports={PRESERVE_CUSTOM_ATTRIBUTES:a,invertObject:function(e,t){if(!e||"object"!=typeof e)throw new TypeError("First argument must be an object");var n,r,o="function"==typeof t,i={},a={};for(n in e)r=e[n],o&&(i=t(n,r))&&2===i.length?a[i[0]]=i[1]:"string"==typeof r&&(a[r]=n);return a},isCustomComponent:function(e,t){if(-1===e.indexOf("-"))return t&&"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}},setStyleProp:function(e,t){if(null!=e)try{t.style=o(e,i)}catch(e){t.style={}}},canTextBeChildOfNode:function(e){return!l.has(e.name)},elementsWithNoTextChildren:l}},139:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,s=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(s,c):c}e.exports=function(e,s){if("string"!=typeof e)throw new TypeError("First argument must be a string");if(!e)return[];s=s||{};var p=1,d=1;function f(e){var t=e.match(n);t&&(p+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function h(){var e={line:p,column:d};return function(t){return t.position=new m(e),b(),t}}function m(e){this.start=e,this.end={line:p,column:d},this.source=s.source}m.prototype.content=e;var g=[];function y(t){var n=new Error(s.source+":"+p+":"+d+": "+t);if(n.reason=t,n.filename=s.source,n.line=p,n.column=d,n.source=e,!s.silent)throw n;g.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function b(){v(r)}function w(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return y("End of comment missing");var r=e.slice(2,n-2);return d+=2,f(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function x(){var e=h(),n=v(o);if(n){if(k(),!v(i))return y("property missing ':'");var r=v(a),s=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return v(l),s}}return b(),function(){var e,t=[];for(w(t);e=x();)!1!==e&&(t.push(e),w(t));return t}()}},418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var a,l,s=o(e),c=1;c{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n{t.SAME=0;t.CAMELCASE=1,t.possibleStandardNames={accept:0,acceptCharset:1,"accept-charset":"acceptCharset",accessKey:1,action:0,allowFullScreen:1,alt:0,as:0,async:0,autoCapitalize:1,autoComplete:1,autoCorrect:1,autoFocus:1,autoPlay:1,autoSave:1,capture:0,cellPadding:1,cellSpacing:1,challenge:0,charSet:1,checked:0,children:0,cite:0,class:"className",classID:1,className:1,cols:0,colSpan:1,content:0,contentEditable:1,contextMenu:1,controls:0,controlsList:1,coords:0,crossOrigin:1,dangerouslySetInnerHTML:1,data:0,dateTime:1,default:0,defaultChecked:1,defaultValue:1,defer:0,dir:0,disabled:0,disablePictureInPicture:1,disableRemotePlayback:1,download:0,draggable:0,encType:1,enterKeyHint:1,for:"htmlFor",form:0,formMethod:1,formAction:1,formEncType:1,formNoValidate:1,formTarget:1,frameBorder:1,headers:0,height:0,hidden:0,high:0,href:0,hrefLang:1,htmlFor:1,httpEquiv:1,"http-equiv":"httpEquiv",icon:0,id:0,innerHTML:1,inputMode:1,integrity:0,is:0,itemID:1,itemProp:1,itemRef:1,itemScope:1,itemType:1,keyParams:1,keyType:1,kind:0,label:0,lang:0,list:0,loop:0,low:0,manifest:0,marginWidth:1,marginHeight:1,max:0,maxLength:1,media:0,mediaGroup:1,method:0,min:0,minLength:1,multiple:0,muted:0,name:0,noModule:1,nonce:0,noValidate:1,open:0,optimum:0,pattern:0,placeholder:0,playsInline:1,poster:0,preload:0,profile:0,radioGroup:1,readOnly:1,referrerPolicy:1,rel:0,required:0,reversed:0,role:0,rows:0,rowSpan:1,sandbox:0,scope:0,scoped:0,scrolling:0,seamless:0,selected:0,shape:0,size:0,sizes:0,span:0,spellCheck:1,src:0,srcDoc:1,srcLang:1,srcSet:1,start:0,step:0,style:0,summary:0,tabIndex:1,target:0,title:0,type:0,useMap:1,value:0,width:0,wmode:0,wrap:0,about:0,accentHeight:1,"accent-height":"accentHeight",accumulate:0,additive:0,alignmentBaseline:1,"alignment-baseline":"alignmentBaseline",allowReorder:1,alphabetic:0,amplitude:0,arabicForm:1,"arabic-form":"arabicForm",ascent:0,attributeName:1,attributeType:1,autoReverse:1,azimuth:0,baseFrequency:1,baselineShift:1,"baseline-shift":"baselineShift",baseProfile:1,bbox:0,begin:0,bias:0,by:0,calcMode:1,capHeight:1,"cap-height":"capHeight",clip:0,clipPath:1,"clip-path":"clipPath",clipPathUnits:1,clipRule:1,"clip-rule":"clipRule",color:0,colorInterpolation:1,"color-interpolation":"colorInterpolation",colorInterpolationFilters:1,"color-interpolation-filters":"colorInterpolationFilters",colorProfile:1,"color-profile":"colorProfile",colorRendering:1,"color-rendering":"colorRendering",contentScriptType:1,contentStyleType:1,cursor:0,cx:0,cy:0,d:0,datatype:0,decelerate:0,descent:0,diffuseConstant:1,direction:0,display:0,divisor:0,dominantBaseline:1,"dominant-baseline":"dominantBaseline",dur:0,dx:0,dy:0,edgeMode:1,elevation:0,enableBackground:1,"enable-background":"enableBackground",end:0,exponent:0,externalResourcesRequired:1,fill:0,fillOpacity:1,"fill-opacity":"fillOpacity",fillRule:1,"fill-rule":"fillRule",filter:0,filterRes:1,filterUnits:1,floodOpacity:1,"flood-opacity":"floodOpacity",floodColor:1,"flood-color":"floodColor",focusable:0,fontFamily:1,"font-family":"fontFamily",fontSize:1,"font-size":"fontSize",fontSizeAdjust:1,"font-size-adjust":"fontSizeAdjust",fontStretch:1,"font-stretch":"fontStretch",fontStyle:1,"font-style":"fontStyle",fontVariant:1,"font-variant":"fontVariant",fontWeight:1,"font-weight":"fontWeight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:1,"glyph-name":"glyphName",glyphOrientationHorizontal:1,"glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphOrientationVertical:1,"glyph-orientation-vertical":"glyphOrientationVertical",glyphRef:1,gradientTransform:1,gradientUnits:1,hanging:0,horizAdvX:1,"horiz-adv-x":"horizAdvX",horizOriginX:1,"horiz-origin-x":"horizOriginX",ideographic:0,imageRendering:1,"image-rendering":"imageRendering",in2:0,in:0,inlist:0,intercept:0,k1:0,k2:0,k3:0,k4:0,k:0,kernelMatrix:1,kernelUnitLength:1,kerning:0,keyPoints:1,keySplines:1,keyTimes:1,lengthAdjust:1,letterSpacing:1,"letter-spacing":"letterSpacing",lightingColor:1,"lighting-color":"lightingColor",limitingConeAngle:1,local:0,markerEnd:1,"marker-end":"markerEnd",markerHeight:1,markerMid:1,"marker-mid":"markerMid",markerStart:1,"marker-start":"markerStart",markerUnits:1,markerWidth:1,mask:0,maskContentUnits:1,maskUnits:1,mathematical:0,mode:0,numOctaves:1,offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:1,"overline-position":"overlinePosition",overlineThickness:1,"overline-thickness":"overlineThickness",paintOrder:1,"paint-order":"paintOrder",panose1:0,"panose-1":"panose1",pathLength:1,patternContentUnits:1,patternTransform:1,patternUnits:1,pointerEvents:1,"pointer-events":"pointerEvents",points:0,pointsAtX:1,pointsAtY:1,pointsAtZ:1,prefix:0,preserveAlpha:1,preserveAspectRatio:1,primitiveUnits:1,property:0,r:0,radius:0,refX:1,refY:1,renderingIntent:1,"rendering-intent":"renderingIntent",repeatCount:1,repeatDur:1,requiredExtensions:1,requiredFeatures:1,resource:0,restart:0,result:0,results:0,rotate:0,rx:0,ry:0,scale:0,security:0,seed:0,shapeRendering:1,"shape-rendering":"shapeRendering",slope:0,spacing:0,specularConstant:1,specularExponent:1,speed:0,spreadMethod:1,startOffset:1,stdDeviation:1,stemh:0,stemv:0,stitchTiles:1,stopColor:1,"stop-color":"stopColor",stopOpacity:1,"stop-opacity":"stopOpacity",strikethroughPosition:1,"strikethrough-position":"strikethroughPosition",strikethroughThickness:1,"strikethrough-thickness":"strikethroughThickness",string:0,stroke:0,strokeDasharray:1,"stroke-dasharray":"strokeDasharray",strokeDashoffset:1,"stroke-dashoffset":"strokeDashoffset",strokeLinecap:1,"stroke-linecap":"strokeLinecap",strokeLinejoin:1,"stroke-linejoin":"strokeLinejoin",strokeMiterlimit:1,"stroke-miterlimit":"strokeMiterlimit",strokeWidth:1,"stroke-width":"strokeWidth",strokeOpacity:1,"stroke-opacity":"strokeOpacity",suppressContentEditableWarning:1,suppressHydrationWarning:1,surfaceScale:1,systemLanguage:1,tableValues:1,targetX:1,targetY:1,textAnchor:1,"text-anchor":"textAnchor",textDecoration:1,"text-decoration":"textDecoration",textLength:1,textRendering:1,"text-rendering":"textRendering",to:0,transform:0,typeof:0,u1:0,u2:0,underlinePosition:1,"underline-position":"underlinePosition",underlineThickness:1,"underline-thickness":"underlineThickness",unicode:0,unicodeBidi:1,"unicode-bidi":"unicodeBidi",unicodeRange:1,"unicode-range":"unicodeRange",unitsPerEm:1,"units-per-em":"unitsPerEm",unselectable:0,vAlphabetic:1,"v-alphabetic":"vAlphabetic",values:0,vectorEffect:1,"vector-effect":"vectorEffect",version:0,vertAdvY:1,"vert-adv-y":"vertAdvY",vertOriginX:1,"vert-origin-x":"vertOriginX",vertOriginY:1,"vert-origin-y":"vertOriginY",vHanging:1,"v-hanging":"vHanging",vIdeographic:1,"v-ideographic":"vIdeographic",viewBox:1,viewTarget:1,visibility:0,vMathematical:1,"v-mathematical":"vMathematical",vocab:0,widths:0,wordSpacing:1,"word-spacing":"wordSpacing",writingMode:1,"writing-mode":"writingMode",x1:0,x2:0,x:0,xChannelSelector:1,xHeight:1,"x-height":"xHeight",xlinkActuate:1,"xlink:actuate":"xlinkActuate",xlinkArcrole:1,"xlink:arcrole":"xlinkArcrole",xlinkHref:1,"xlink:href":"xlinkHref",xlinkRole:1,"xlink:role":"xlinkRole",xlinkShow:1,"xlink:show":"xlinkShow",xlinkTitle:1,"xlink:title":"xlinkTitle",xlinkType:1,"xlink:type":"xlinkType",xmlBase:1,"xml:base":"xmlBase",xmlLang:1,"xml:lang":"xmlLang",xmlns:0,"xml:space":"xmlSpace",xmlnsXlink:1,"xmlns:xlink":"xmlnsXlink",xmlSpace:1,y1:0,y2:0,y:0,yChannelSelector:1,z:0,zoomAndPan:1}},251:(e,t,n)=>{"use strict";n(418);var r=n(196),o=60103;if(t.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),t.Fragment=i("react.fragment")}var a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l=Object.prototype.hasOwnProperty,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)l.call(t,r)&&!s.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:i,_owner:a.current}}t.jsx=c,t.jsxs=c},893:(e,t,n)=>{"use strict";e.exports=n(251)},476:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};t.__esModule=!0;var o=r(n(848)),i=n(678);t.default=function(e,t){var n={};return e&&"string"==typeof e?((0,o.default)(e,(function(e,r){e&&r&&(n[(0,i.camelCase)(e,t)]=r)})),n):n}},678:(e,t)=>{"use strict";t.__esModule=!0,t.camelCase=void 0;var n=/^--[a-zA-Z0-9-]+$/,r=/-([a-z])/g,o=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,l=function(e,t){return t.toUpperCase()},s=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){return void 0===t&&(t={}),function(e){return!e||o.test(e)||n.test(e)}(e)?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(a,s):e.replace(i,s)).replace(r,l))}},848:(e,t,n)=>{var r=n(139);e.exports=function(e,t){var n,o=null;if(!e||"string"!=typeof e)return o;for(var i,a,l=r(e),s="function"==typeof t,c=0,u=l.length;c{"use strict";e.exports=window.React}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";const e=window.wp.plugins;var t=n(488);t.domToReact,t.htmlToDOM,t.attributesToProps,t.Element;const r=t,o=window.wp.editPost,i=window.wp.compose,a=window.wp.components,l=window.wp.data,s=window.wp.i18n;var c=n(893);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t');return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(o.PluginSidebarMoreMenuItem,{target:"kenta-theme-meta-panel",icon:t,children:(0,s.__)("Kenta Settings","kenta")}),(0,c.jsx)(o.PluginSidebar,{isPinnable:!0,icon:t,name:"kenta-theme-meta-panel",title:(0,s.__)("Kenta Settings","kenta"),children:(0,c.jsxs)("div",{className:"kenta-sidebar-container",children:[(0,c.jsxs)(a.PanelBody,{title:(0,s.__)("Layout","kenta"),initialOpen:!0,children:[(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Container Style","kenta"),value:e.meta["site-container-style"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Boxed","kenta"),value:"boxed"},{label:(0,s.__)("Fluid","kenta"),value:"fluid"}],onChange:function(t){e.setMetaFieldValue(t,"site-container-style")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Content Width","kenta"),value:e.meta["site-container-layout"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Narrow","kenta"),value:"narrow"},{label:(0,s.__)("Normal","kenta"),value:"normal"}],onChange:function(t){e.setMetaFieldValue(t,"site-container-layout")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Sidebar Layout","kenta"),value:e.meta["site-sidebar-layout"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("No Sidebar","kenta"),value:"no-sidebar"},{label:(0,s.__)("Left Sidebar","kenta"),value:"left-sidebar"},{label:(0,s.__)("Right Sidebar","kenta"),value:"right-sidebar"}],onChange:function(t){e.setMetaFieldValue(t,"site-sidebar-layout")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Transparent Header","kenta"),help:(0,c.jsx)("a",{target:"_blank",href:"https://kentatheme.com/docs/kenta-theme/header-footer-builder/transparent-header/",children:(0,s.__)("Lean More About Transparent Header.","kenta")}),value:e.meta["site-transparent-header"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Enable","kenta"),value:"enable"},{label:(0,s.__)("Disable","kenta"),value:"disable"}],onChange:function(t){e.setMetaFieldValue(t,"site-transparent-header")}})]}),(0,c.jsxs)(a.PanelBody,{title:(0,s.__)("Elements","kenta"),initialOpen:!0,children:[(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Site Header","kenta"),value:e.meta["disable-site-header"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Enable","kenta"),value:"no"},{label:(0,s.__)("Disable","kenta"),value:"yes"}],onChange:function(t){e.setMetaFieldValue(t,"disable-site-header")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Site Footer","kenta"),value:e.meta["disable-site-footer"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Enable","kenta"),value:"no"},{label:(0,s.__)("Disable","kenta"),value:"yes"}],onChange:function(t){e.setMetaFieldValue(t,"disable-site-footer")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Article Header","kenta"),value:e.meta["disable-article-header"],options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Enable","kenta"),value:"no"},{label:(0,s.__)("Disable","kenta"),value:"yes"}],onChange:function(t){e.setMetaFieldValue(t,"disable-article-header")}}),(0,c.jsx)(a.SelectControl,{label:(0,s.__)("Content Spacing","kenta"),value:e.meta["disable-content-area-spacing"],help:(0,s.__)("There is a gap between the page content and the header or footer, if you don't want it you can disable it here.","kenta"),options:[{label:(0,s.__)("Inherit","kenta"),value:"default"},{label:(0,s.__)("Enable","kenta"),value:"no"},{label:(0,s.__)("Disable","kenta"),value:"yes"}],onChange:function(t){e.setMetaFieldValue(t,"disable-content-area-spacing")}})]}),(0,c.jsxs)("div",{style:{textAlign:"center",padding:"16px"},children:[(0,c.jsx)("p",{children:(0,s.__)("You can override the global customize settings for individual pages or posts here.","kenta")}),(0,c.jsx)("a",{href:"https://kentatheme.com/docs/kenta-theme/general/editor-sidebar-settings/",target:"_blank",children:(0,s.__)("Learn More")})]})]})})]})})),h=window.wp.domReady;var m=n.n(h);const g=window.wp.element,y=window.wp.primitives,v=(0,g.createElement)(y.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,g.createElement)(y.Path,{d:"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"})),b=window.wp.editor;function w(e){return function(e){if(Array.isArray(e))return E(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n'),light:r(''),dark:r('')},p=u[o],d=function(n){i(n);var r=document.querySelector("style#kenta-editor-color-theme");r&&r.remove();var o="",a="kenta-editor-color-theme";if("auto"!==n&&(o="\n :root, .editor-styles-wrapper {\n --kenta-transparent : rgba(0, 0, 0, 0) !important;\n --kenta-primary-color : var(--kenta-".concat(n,"-primary-color, var(--kenta-light-primary-color)) !important;\n --kenta-primary-active : var(--kenta-").concat(n,"-primary-active, var(--kenta-light-primary-active)) !important;\n --kenta-accent-color : var(--kenta-").concat(n,"-accent-color, var(--kenta-light-accent-color)) !important;\n --kenta-accent-active : var(--kenta-").concat(n,"-accent-active, var(--kenta-light-accent-active)) !important;\n --kenta-base-color : var(--kenta-").concat(n,"-base-color, var(--kenta-light-base-color)) !important;\n --kenta-base-100 : var(--kenta-").concat(n,"-base-100, var(--kenta-light-base-100)) !important;\n --kenta-base-200 : var(--kenta-").concat(n,"-base-200, var(--kenta-light-base-200)) !important;\n --kenta-base-300 : var(--kenta-").concat(n,"-base-300, var(--kenta-light-base-300)) !important;\n }\n ")),e&&t){var l=e(),s=l.styles.filter((function(e){var t=e.id;return(void 0===t?"":t)!==a})),c={id:a,css:o,isGlobalStyles:!0};t(x(x({},l),{},{styles:[c].concat(w(s))}))}else{var u=document.getElementById(a);u||(u=document.createElement("style")).setAttribute("id",a),u.innerHTML=o,document.head.appendChild(u)}};return(0,c.jsx)(a.DropdownMenu,{icon:p,label:(0,s.__)("Select theme scheme","kenta"),children:function(e){e.onClose;return(0,c.jsx)(c.Fragment,{children:(0,c.jsxs)(a.MenuGroup,{children:[(0,c.jsxs)(a.MenuItem,{icon:"auto"===o?v:null,onClick:function(){return d("auto")},children:[u.auto," ",(0,s.__)("Theme","kenta")]}),(0,c.jsxs)(a.MenuItem,{icon:"light"===o?v:null,onClick:function(){return d("light")},children:[u.light," ",(0,s.__)("Light","kenta")]}),(0,c.jsxs)(a.MenuItem,{icon:"dark"===o?v:null,onClick:function(){return d("dark")},children:[u.dark," ",(0,s.__)("Dark","kenta")]})]})})}})};function C(){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(T,{})})}window.wp,(0,e.registerPlugin)("kenta-theme-settings",{render:f}),m()((function(){if("widgets"!==window.pagenow&&"customize"!==window.pagenow)var e=null,t=(0,l.subscribe)((function(){var n=document.querySelector(".edit-post-header__settings, .editor-header__settings");if(n){var r=document.createElement("div");r.classList.add("kenta-edit-post-header-settings"),document.querySelector(".kenta-edit-post-header-settings")||(g.createRoot?(0,g.createRoot)(r).render((0,c.jsx)(C,{})):(0,g.render)((0,c.jsx)(C,{}),r),n.prepend(r)),e&&clearTimeout(e),e=setTimeout((function(){document.querySelector(".kenta-edit-post-header-settings")&&t()}),0)}}))}))})()})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/block-editor.min.js.LICENSE.txt b/wp-content/themes/kenta/dist/js/block-editor.min.js.LICENSE.txt new file mode 100644 index 0000000000..c7ed9133bb --- /dev/null +++ b/wp-content/themes/kenta/dist/js/block-editor.min.js.LICENSE.txt @@ -0,0 +1,14 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/** @license React v17.0.2 + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/wp-content/themes/kenta/dist/js/customizer-preview.asset.php b/wp-content/themes/kenta/dist/js/customizer-preview.asset.php new file mode 100644 index 0000000000..048d723a9d --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer-preview.asset.php @@ -0,0 +1 @@ + array(), 'version' => '7de8af956ca08e00'); diff --git a/wp-content/themes/kenta/dist/js/customizer-preview.js b/wp-content/themes/kenta/dist/js/customizer-preview.js new file mode 100644 index 0000000000..3413f0ff87 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer-preview.js @@ -0,0 +1,783 @@ +(() => { + "use strict"; + var __webpack_modules__ = [ , , (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + isNodeVisible: () => isNodeVisible, + queryFocusable: () => queryFocusable, + queryFocusableAll: () => queryFocusableAll + }); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + if (window.jQuery) { + jQuery.extend(jQuery.expr[":"], { + focusable: function focusable(el) { + return jQuery(el).is("a, button, :input, [tabindex]"); + } + }); + } + var focusableSelectors = 'a, button:not([disabled]):not([aria-hidden="true"]), input:not([disabled]):not([type="hidden"]):not([aria-hidden="true"]), [tabindex]'; + function queryFocusable(selector) { + var dom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; + if (!selector) { + return undefined; + } + if (selector.indexOf(":focusable") === -1) { + return dom.querySelector(selector); + } + selector = selector.replaceAll(":focusable", "").trim(); + if (selector) { + var _dom$querySelector; + return (_dom$querySelector = dom.querySelector(selector)) === null || _dom$querySelector === void 0 ? void 0 : _dom$querySelector.querySelector(focusableSelectors); + } + return dom.querySelector(focusableSelectors); + } + function isNodeVisible(node) { + if (!(node instanceof Element)) { + return false; + } + var s = getComputedStyle(node); + return !(s.getPropertyValue("display") === "none" || s.getPropertyValue("visibility") === "hidden"); + } + function visibleNodes(nodes) { + return _toConsumableArray(nodes).filter((function(n) { + return isNodeVisible(n); + })); + } + function travelNodes(el, fn) { + for (var i = 0; i < el.childNodes.length; i++) { + var child = el.childNodes[i]; + if (fn(child) !== false) { + travelNodes(child, fn); + } + } + } + function isFocusAble(node) { + if (!(node instanceof Element)) { + return false; + } + if (node.tagName === "button" || node.tagName === "input") { + return node.getAttribute("disabled") === null; + } + if (node.tagName === "a") { + return node.getAttribute("href") !== null; + } + return node.tabIndex >= 0; + } + function queryFocusableAll() { + var dom = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document; + var focusable = []; + travelNodes(dom, (function(el) { + if (!isNodeVisible(el)) { + return false; + } + if (isFocusAble(el)) { + focusable.push(el); + } + })); + return focusable; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var CollapsableMenu = _createClass((function CollapsableMenu() { + _classCallCheck(this, CollapsableMenu); + var submenus = document.querySelectorAll(".kenta-collapsable-menu.collapsable .menu-item-has-children, .kenta-collapsable-menu.collapsable .page_item_has_children"); + var _iterator = _createForOfIteratorHelper(submenus), _step; + try { + var _loop = function _loop() { + var item = _step.value; + var submenu = item.querySelector("& > .sub-menu, & > .children"); + var toggle = item.querySelector("& > a .kenta-dropdown-toggle"); + if (toggle && submenu) { + toggle.addEventListener("click", (function(ev) { + ev.preventDefault(); + ev.stopPropagation(); + if (toggle.classList.contains("active")) { + toggle.classList.remove("active"); + } else { + toggle.classList.add("active"); + } + if (submenu.classList.contains("open")) { + submenu.classList.remove("open"); + } else { + submenu.classList.add("open"); + } + })); + } + }; + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + _loop(); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + })); + const __WEBPACK_DEFAULT_EXPORT__ = CollapsableMenu; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Menu = _createClass((function Menu() { + _classCallCheck(this, Menu); + document.querySelectorAll(".sf-menu li").forEach((function(menuItem) { + var timer = null; + menuItem.addEventListener("mouseover", (function() { + if (timer) { + clearTimeout(timer); + } + menuItem.classList.add("sfHover"); + })); + menuItem.addEventListener("mouseleave", (function() { + timer = setTimeout((function() { + menuItem.classList.remove("sfHover"); + }), 300); + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Menu; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _focusable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Toggle = _createClass((function Toggle() { + _classCallCheck(this, Toggle); + var scrollBarWidth = window.innerWidth - document.documentElement.clientWidth; + if (scrollBarWidth > 0) { + document.body.style.setProperty("--scrollbar-width", "".concat(scrollBarWidth, "px")); + } + document.querySelectorAll("[data-toggle-target]").forEach((function(el) { + var _el$classList, _el$classList2; + if (el !== null && el !== void 0 && (_el$classList = el.classList) !== null && _el$classList !== void 0 && _el$classList.contains("kenta-toggleable")) { + return; + } + el === null || el === void 0 ? void 0 : (_el$classList2 = el.classList) === null || _el$classList2 === void 0 ? void 0 : _el$classList2.add("kenta-toggleable"); + el.addEventListener("click", (function() { + var _el$dataset, _el$dataset2, _el$dataset3, _target$classList, _target$classList4; + var target = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.toggleTarget); + var showFocus = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset2 = el.dataset) === null || _el$dataset2 === void 0 ? void 0 : _el$dataset2.toggleShowFocus); + var hiddenFocus = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusable)((_el$dataset3 = el.dataset) === null || _el$dataset3 === void 0 ? void 0 : _el$dataset3.toggleHiddenFocus); + if (!target) { + return; + } + if (target !== null && target !== void 0 && (_target$classList = target.classList) !== null && _target$classList !== void 0 && _target$classList.contains("active")) { + var _target$classList2; + target === null || target === void 0 ? void 0 : (_target$classList2 = target.classList) === null || _target$classList2 === void 0 ? void 0 : _target$classList2.remove("active"); + } else { + var _target$classList3; + target === null || target === void 0 ? void 0 : (_target$classList3 = target.classList) === null || _target$classList3 === void 0 ? void 0 : _target$classList3.add("active"); + } + if (target !== null && target !== void 0 && (_target$classList4 = target.classList) !== null && _target$classList4 !== void 0 && _target$classList4.contains("active")) { + var _document$body, _document$body$classL; + (_document$body = document.body) === null || _document$body === void 0 ? void 0 : (_document$body$classL = _document$body.classList) === null || _document$body$classL === void 0 ? void 0 : _document$body$classL.add("kenta-modal-visible"); + if (showFocus) { + setTimeout((function() { + return showFocus.focus(); + }), 100); + } + } else { + setTimeout((function() { + var _document$body2, _document$body2$class; + (_document$body2 = document.body) === null || _document$body2 === void 0 ? void 0 : (_document$body2$class = _document$body2.classList) === null || _document$body2$class === void 0 ? void 0 : _document$body2$class.remove("kenta-modal-visible"); + }), 300); + if (hiddenFocus) { + setTimeout((function() { + return hiddenFocus.focus(); + }), 100); + } + } + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Toggle; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _focusable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var FocusRedirect = _createClass((function FocusRedirect() { + _classCallCheck(this, FocusRedirect); + document.querySelectorAll("[data-redirect-focus]").forEach((function(el) { + var _el$dataset; + var target = document.querySelector(el === null || el === void 0 ? void 0 : (_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.redirectFocus); + if (!target) { + return; + } + el.addEventListener("keydown", (function(ev) { + var tabKey = ev.keyCode === 9; + var shiftKey = ev.shiftKey; + var focusable = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusableAll)(el); + var first = focusable[0]; + var last = focusable[focusable.length - 1]; + var active = document.activeElement; + if (tabKey && !shiftKey && active.isSameNode(last)) { + ev.preventDefault(); + target.focus(); + } + if (tabKey && shiftKey && active.isSameNode(first)) { + ev.preventDefault(); + target.focus(); + } + })); + target.addEventListener("keydown", (function(ev) { + if (!(0, _focusable__WEBPACK_IMPORTED_MODULE_0__.isNodeVisible)(el)) { + return; + } + var tabKey = ev.keyCode === 9; + var shiftKey = ev.shiftKey; + var focusable = (0, _focusable__WEBPACK_IMPORTED_MODULE_0__.queryFocusableAll)(el); + var first = focusable[0]; + var last = focusable[focusable.length - 1]; + if (tabKey && !shiftKey) { + ev.preventDefault(); + first.focus(); + } + if (tabKey && shiftKey) { + ev.preventDefault(); + last.focus(); + } + })); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = FocusRedirect; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Popup = _createClass((function Popup() { + _classCallCheck(this, Popup); + document.querySelectorAll("[data-popup-target]").forEach((function(el) { + var _el$dataset; + var target = el.getElementsByClassName(el === null || el === void 0 ? void 0 : (_el$dataset = el.dataset) === null || _el$dataset === void 0 ? void 0 : _el$dataset.popupTarget)[0]; + if (!target) { + return; + } + var show = function show() { + var _target$classList; + target === null || target === void 0 ? void 0 : (_target$classList = target.classList) === null || _target$classList === void 0 ? void 0 : _target$classList.add("show"); + }; + var hide = function hide() { + var _target$classList2; + target === null || target === void 0 ? void 0 : (_target$classList2 = target.classList) === null || _target$classList2 === void 0 ? void 0 : _target$classList2.remove("show"); + }; + el.addEventListener("focusin", show); + el.addEventListener("focusout", hide); + el.addEventListener("mouseover", show); + el.addEventListener("mouseleave", hide); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = Popup; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var ToTop = _createClass((function ToTop() { + _classCallCheck(this, ToTop); + var scrollTopBtn = document.getElementById("scroll-top"); + if (!scrollTopBtn) { + return; + } + window.addEventListener("scroll", (function() { + var offset = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop; + if (offset) { + scrollTopBtn.classList.add("active"); + } else { + scrollTopBtn.classList.remove("active"); + } + })); + scrollTopBtn.addEventListener("click", (function(ev) { + window.scrollTo(0, 0); + ev.preventDefault(); + })); + })); + const __WEBPACK_DEFAULT_EXPORT__ = ToTop; + }, , , , , , (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + var Particles = function() { + function Particles() { + _classCallCheck(this, Particles); + if (!window.particlesJS) { + return; + } + var allCanvas = document.getElementsByClassName("kenta-particles-canvas"); + var _iterator = _createForOfIteratorHelper(allCanvas), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var _canvas$dataset; + var canvas = _step.value; + var config = JSON.parse((_canvas$dataset = canvas.dataset) === null || _canvas$dataset === void 0 ? void 0 : _canvas$dataset.kentaParticles); + particlesJS(canvas.id, this.overrideConfig(canvas, config)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + _createClass(Particles, [ { + key: "overrideConfig", + value: function overrideConfig(canvas, config) { + var _canvas$dataset2, _canvas$dataset3, _canvas$dataset4, _canvas$dataset5, _canvas$dataset6, _canvas$dataset7, _canvas$dataset8; + var detect_on = (_canvas$dataset2 = canvas.dataset) === null || _canvas$dataset2 === void 0 ? void 0 : _canvas$dataset2.kentaParticleDetectOn; + var quantity = Number((_canvas$dataset3 = canvas.dataset) === null || _canvas$dataset3 === void 0 ? void 0 : _canvas$dataset3.kentaParticleQuantity); + var speed = Number((_canvas$dataset4 = canvas.dataset) === null || _canvas$dataset4 === void 0 ? void 0 : _canvas$dataset4.kentaParticleSpeed); + var size = Number((_canvas$dataset5 = canvas.dataset) === null || _canvas$dataset5 === void 0 ? void 0 : _canvas$dataset5.kentaParticleSize); + var shape = (_canvas$dataset6 = canvas.dataset) === null || _canvas$dataset6 === void 0 ? void 0 : _canvas$dataset6.kentaParticleShape; + var particle_color = this.getColorValue((_canvas$dataset7 = canvas.dataset) === null || _canvas$dataset7 === void 0 ? void 0 : _canvas$dataset7.kentaParticleColor); + var line_color = this.getColorValue(((_canvas$dataset8 = canvas.dataset) === null || _canvas$dataset8 === void 0 ? void 0 : _canvas$dataset8.kentaParticleLineColor) || particle_color); + if ("default" !== detect_on && "" !== detect_on && undefined !== detect_on) { + config.interactivity.detect_on = detect_on; + } + if ("" !== size && undefined !== size && size > 0) { + config.particles.size.value = size; + } + if ("" !== quantity && undefined !== quantity && quantity > 0) { + config.particles.number.value = quantity; + } + if ("" !== particle_color && undefined !== particle_color) { + config.particles.color.value = particle_color; + } + if ("" !== line_color && undefined !== line_color) { + if (config.particles.line_linked) { + config.particles.line_linked.color = line_color; + } else { + if (config.particles.links) { + config.particles.links.color = line_color; + } else { + config.particles.links = { + color: line_color + }; + } + } + } + if ("default" !== shape && "" !== shape && undefined !== shape) { + config.particles.shape.type = shape; + } + if ("" !== speed && undefined !== speed && speed > 0) { + config.particles.move.speed = speed; + } + config.background = {}; + config.fullScreen = { + enable: false + }; + return config; + } + }, { + key: "getColorValue", + value: function getColorValue(color) { + if (!color || color === "" || color === "__INITIAL_VALUE__") { + return ""; + } + if (color.indexOf("var") > -1) { + var value = getComputedStyle(document.documentElement).getPropertyValue(color.replace(/var\(/, "").replace(/\)/, "")).trim().replace(/\s/g, ""); + if (value.indexOf("#") === -1 && value.indexOf("rgb") === -1) { + return "rgb(".concat(value, ")"); + } + return value; + } + return color; + } + } ]); + return Particles; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = Particles; + } ]; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __webpack_require__); + return module.exports; + } + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + var __webpack_exports__ = {}; + (() => { + __webpack_require__.r(__webpack_exports__); + var _modules_focusable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); + var _modules_collapsable_menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3); + var _modules_menu__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); + var _modules_toggle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); + var _modules_focus_redirect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6); + var _modules_popup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7); + var _modules_to_top__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8); + var _modules_particles__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(14); + if (wp.customize && wp.customize.selectiveRefresh) { + wp.customize.selectiveRefresh.bind("partial-content-rendered", (function() { + "use strict"; + if (window.ScrollReveal) ScrollReveal().sync(); + new _modules_collapsable_menu__WEBPACK_IMPORTED_MODULE_1__["default"]; + new _modules_menu__WEBPACK_IMPORTED_MODULE_2__["default"]; + new _modules_toggle__WEBPACK_IMPORTED_MODULE_3__["default"]; + new _modules_focus_redirect__WEBPACK_IMPORTED_MODULE_4__["default"]; + new _modules_popup__WEBPACK_IMPORTED_MODULE_5__["default"]; + new _modules_to_top__WEBPACK_IMPORTED_MODULE_6__["default"]; + new _modules_particles__WEBPACK_IMPORTED_MODULE_7__["default"]; + })); + wp.customize.bind("preview-ready", (function() { + wp.customize.preview.bind("lotta-panel-open", (function(id) { + if (id === "kenta_global_preloader") { + jQuery(".kenta-preloader-wrap > div").fadeIn(150); + jQuery(".kenta-preloader-wrap").fadeIn(375); + } + })); + wp.customize.preview.bind("lotta-panel-close", (function(id) { + if (id === "kenta_global_preloader") { + jQuery(".kenta-preloader-wrap > div").fadeOut(150); + jQuery(".kenta-preloader-wrap").fadeOut(375); + } + })); + })); + } + })(); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/customizer-preview.min.asset.php b/wp-content/themes/kenta/dist/js/customizer-preview.min.asset.php new file mode 100644 index 0000000000..0ab09bc65b --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer-preview.min.asset.php @@ -0,0 +1 @@ + array(), 'version' => '8a27c96f1958fac2'); diff --git a/wp-content/themes/kenta/dist/js/customizer-preview.min.js b/wp-content/themes/kenta/dist/js/customizer-preview.min.js new file mode 100644 index 0000000000..bad8bf8209 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer-preview.min.js @@ -0,0 +1 @@ +(()=>{"use strict";window.jQuery&&jQuery.extend(jQuery.expr[":"],{focusable:function(e){return jQuery(e).is("a, button, :input, [tabindex]")}});var e='a, button:not([disabled]):not([aria-hidden="true"]), input:not([disabled]):not([type="hidden"]):not([aria-hidden="true"]), [tabindex]';function t(t){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;if(t)return-1===t.indexOf(":focusable")?r.querySelector(t):(t=t.replaceAll(":focusable","").trim())?null===(n=r.querySelector(t))||void 0===n?void 0:n.querySelector(e):r.querySelector(e)}function n(e){if(!(e instanceof Element))return!1;var t=getComputedStyle(e);return!("none"===t.getPropertyValue("display")||"hidden"===t.getPropertyValue("visibility"))}function r(e,t){for(var n=0;n=0)}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document,t=[];return r(e,(function(e){if(!n(e))return!1;o(e)&&t.push(e)})),t}function i(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw a}}}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n .sub-menu, & > .children"),r=e.querySelector("& > a .kenta-dropdown-toggle");r&&n&&r.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),r.classList.contains("active")?r.classList.remove("active"):r.classList.add("active"),n.classList.contains("open")?n.classList.remove("open"):n.classList.add("open")}))};for(n.s();!(t=n.n()).done;)r()}catch(e){n.e(e)}finally{n.f()}}));const d=s;function f(e,t){for(var n=0;n0&&document.body.style.setProperty("--scrollbar-width","".concat(n,"px")),document.querySelectorAll("[data-toggle-target]").forEach((function(e){var n,r;null!=e&&null!==(n=e.classList)&&void 0!==n&&n.contains("kenta-toggleable")||(null==e||null===(r=e.classList)||void 0===r||r.add("kenta-toggleable"),e.addEventListener("click",(function(){var n,r,o,a,i,l=t(null===(n=e.dataset)||void 0===n?void 0:n.toggleTarget),u=t(null===(r=e.dataset)||void 0===r?void 0:r.toggleShowFocus),c=t(null===(o=e.dataset)||void 0===o?void 0:o.toggleHiddenFocus);if(l){var s,d,f,v;if(null!=l&&null!==(a=l.classList)&&void 0!==a&&a.contains("active"))null==l||null===(s=l.classList)||void 0===s||s.remove("active");else null==l||null===(d=l.classList)||void 0===d||d.add("active");if(null!=l&&null!==(i=l.classList)&&void 0!==i&&i.contains("active"))null===(f=document.body)||void 0===f||null===(v=f.classList)||void 0===v||v.add("kenta-modal-visible"),u&&setTimeout((function(){return u.focus()}),100);else setTimeout((function(){var e,t;null===(e=document.body)||void 0===e||null===(t=e.classList)||void 0===t||t.remove("kenta-modal-visible")}),300),c&&setTimeout((function(){return c.focus()}),100)}})))}))}));function h(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(t.particles.size.value=f),""!==s&&void 0!==s&&s>0&&(t.particles.number.value=s),""!==p&&void 0!==p&&(t.particles.color.value=p),""!==y&&void 0!==y&&(t.particles.line_linked?t.particles.line_linked.color=y:t.particles.links?t.particles.links.color=y:t.particles.links={color:y}),"default"!==v&&""!==v&&void 0!==v&&(t.particles.shape.type=v),""!==d&&void 0!==d&&d>0&&(t.particles.move.speed=d),t.background={},t.fullScreen={enable:!1},t}},{key:"getColorValue",value:function(e){if(!e||""===e||"__INITIAL_VALUE__"===e)return"";if(e.indexOf("var")>-1){var t=getComputedStyle(document.documentElement).getPropertyValue(e.replace(/var\(/,"").replace(/\)/,"")).trim().replace(/\s/g,"");return-1===t.indexOf("#")&&-1===t.indexOf("rgb")?"rgb(".concat(t,")"):t}return e}}])&&C(t.prototype,n),r&&C(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();wp.customize&&wp.customize.selectiveRefresh&&(wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(){window.ScrollReveal&&ScrollReveal().sync(),new d,new p,new b,new w,new S,new P,new T})),wp.customize.bind("preview-ready",(function(){wp.customize.preview.bind("lotta-panel-open",(function(e){"kenta_global_preloader"===e&&(jQuery(".kenta-preloader-wrap > div").fadeIn(150),jQuery(".kenta-preloader-wrap").fadeIn(375))})),wp.customize.preview.bind("lotta-panel-close",(function(e){"kenta_global_preloader"===e&&(jQuery(".kenta-preloader-wrap > div").fadeOut(150),jQuery(".kenta-preloader-wrap").fadeOut(375))}))})))})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/customizer.asset.php b/wp-content/themes/kenta/dist/js/customizer.asset.php new file mode 100644 index 0000000000..df13972628 --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer.asset.php @@ -0,0 +1 @@ + array(), 'version' => '4fe95758343f235f'); diff --git a/wp-content/themes/kenta/dist/js/customizer.js b/wp-content/themes/kenta/dist/js/customizer.js new file mode 100644 index 0000000000..1ca713b27f --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer.js @@ -0,0 +1,25 @@ +(() => { + var __webpack_exports__ = {}; + if (wp.customize) { + wp.customize.bind("ready", (function() { + wp.customize.previewer.bind("kenta-theme-changed", (function(theme) { + jQuery(document.documentElement).attr("data-kenta-theme", theme); + jQuery(document.documentElement).attr("data-lotta-theme", theme); + })); + jQuery(document.documentElement).attr("data-kenta-theme", window.KentaCustomizer.theme); + jQuery(document.documentElement).attr("data-lotta-theme", window.KentaCustomizer.theme); + jQuery(window.KentaCustomizer.call_to_actions.join(",")).click((function(ev) { + ev.preventDefault(); + var $btn = jQuery(this); + $btn.attr("disabled", "disabled"); + $btn.html('Processing'); + jQuery.ajax({ + url: $btn.attr("href"), + complete: function complete() { + window.location.reload(); + } + }); + })); + })); + } +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/js/customizer.min.asset.php b/wp-content/themes/kenta/dist/js/customizer.min.asset.php new file mode 100644 index 0000000000..2c434cef3e --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer.min.asset.php @@ -0,0 +1 @@ + array(), 'version' => 'eab31e0f4ee94adf'); diff --git a/wp-content/themes/kenta/dist/js/customizer.min.js b/wp-content/themes/kenta/dist/js/customizer.min.js new file mode 100644 index 0000000000..90d5666e5c --- /dev/null +++ b/wp-content/themes/kenta/dist/js/customizer.min.js @@ -0,0 +1 @@ +wp.customize&&wp.customize.bind("ready",(function(){wp.customize.previewer.bind("kenta-theme-changed",(function(e){jQuery(document.documentElement).attr("data-kenta-theme",e),jQuery(document.documentElement).attr("data-lotta-theme",e)})),jQuery(document.documentElement).attr("data-kenta-theme",window.KentaCustomizer.theme),jQuery(document.documentElement).attr("data-lotta-theme",window.KentaCustomizer.theme),jQuery(window.KentaCustomizer.call_to_actions.join(",")).click((function(e){e.preventDefault();var t=jQuery(this);t.attr("disabled","disabled"),t.html('Processing'),jQuery.ajax({url:t.attr("href"),complete:function(){window.location.reload()}})}))})); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/vendor/.gitkeep b/wp-content/themes/kenta/dist/vendor/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.js b/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.js new file mode 100644 index 0000000000..e16762fcda --- /dev/null +++ b/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.js @@ -0,0 +1,743 @@ +/* + * HC-Sticky + * ========= + * Version: 2.2.7 + * Author: Some Web Media + * Author URL: https://github.com/somewebmedia + * Plugin URL: https://github.com/somewebmedia/hc-sticky + * Description: JavaScript library that makes any element on your page visible while you scroll + * License: MIT + */ + +'use strict'; + +(function(global, factory) { + if (typeof module === 'object' && typeof module.exports === 'object') { + if (global.document) { + module.exports = factory(global); + } + else { + throw new Error('HC-Sticky requires a browser to run.'); + } + } + else if (typeof define === 'function' && define.amd) { + define('hcSticky', [], factory(global)); + } + else { + factory(global); + } +})(typeof window !== 'undefined' ? window : this, (window) => { + const document = window.document; + + const DEFAULT_OPTIONS = { + top: 0, + bottom: 0, + bottomEnd: 0, + innerTop: 0, + innerSticker: null, + stickyClass: 'sticky', + stickTo: null, + followScroll: true, + responsive: null, + mobileFirst: false, + onStart: null, + onStop: null, + onBeforeResize: null, + onResize: null, + resizeDebounce: 100, + disable: false + }; + + const deprecated = (() => { + const pluginName = 'HC Sticky'; + + return (what, instead, type) => { + console.warn( + '%c' + pluginName + ':' + + '%c ' + type + + "%c '"+ what + "'" + + '%c is now deprecated and will be removed. Use' + + "%c '" + instead + "'" + + '%c instead.', + 'color: #fa253b', + 'color: default', + 'color: #5595c6', + 'color: default', + 'color: #5595c6', + 'color: default'); + }; + })(); + + const hcSticky = function(elem, userSettings) { + userSettings = userSettings || {}; + + // use querySeletor if string is passed + if (typeof elem === 'string') { + elem = document.querySelector(elem); + } + + // check if element exist + if (!elem) return false; + + if (userSettings.queries) { + deprecated('queries', 'responsive', 'option'); + } + + if (userSettings.queryFlow) { + deprecated('queryFlow', 'mobileFirst', 'option'); + } + + let STICKY_OPTIONS = {}; + const Helpers = hcSticky.Helpers; + const elemParent = elem.parentNode; + + // parent can't be static + if (Helpers.getStyle(elemParent, 'position') === 'static') { + elemParent.style.position = 'relative'; + } + + const setOptions = (options) => { + options = options || {}; + + if (Helpers.isEmptyObject(options) && !Helpers.isEmptyObject(STICKY_OPTIONS)) { + // nothing to set + return; + } + + // extend options + STICKY_OPTIONS = Object.assign({}, DEFAULT_OPTIONS, STICKY_OPTIONS, options); + }; + + const resetOptions = (options) => { + STICKY_OPTIONS = Object.assign({}, DEFAULT_OPTIONS, options || {}); + }; + + const getOptions = (option) => { + return option ? STICKY_OPTIONS[option] : Object.assign({}, STICKY_OPTIONS); + }; + + const isDisabled = () => { + return STICKY_OPTIONS.disable; + }; + + const applyQueries = () => { + const mediaQueries = STICKY_OPTIONS.responsive || STICKY_OPTIONS.queries; + + if (mediaQueries) { + const window_width = window.innerWidth; + + // reset settings + resetOptions(userSettings); + + if (STICKY_OPTIONS.mobileFirst) { + for (const width in mediaQueries) { + if (window_width >= width && !Helpers.isEmptyObject(mediaQueries[width])) { + setOptions(mediaQueries[width]); + } + } + } + else { + const queriesArr = []; + + // convert to array so we can reverse loop it + for (const b in mediaQueries) { + const q = {}; + + q[b] = mediaQueries[b]; + queriesArr.push(q); + } + + for (let i = queriesArr.length - 1; i >= 0; i--) { + const query = queriesArr[i]; + const breakpoint = Object.keys(query)[0]; + + if (window_width <= breakpoint && !Helpers.isEmptyObject(query[breakpoint])) { + setOptions(query[breakpoint]); + } + } + } + } + }; + + // our helper function for getting necessary styles + const getStickyCss = (el) => { + const cascadedStyle = Helpers.getCascadedStyle(el); + const computedStyle = Helpers.getStyle(el); + + const css = { + height: el.offsetHeight + 'px', + left: cascadedStyle.left, + right: cascadedStyle.right, + top: cascadedStyle.top, + bottom: cascadedStyle.bottom, + position: computedStyle.position, + display: computedStyle.display, + verticalAlign: computedStyle.verticalAlign, + boxSizing: computedStyle.boxSizing, + marginLeft: cascadedStyle.marginLeft, + marginRight: cascadedStyle.marginRight, + marginTop: cascadedStyle.marginTop, + marginBottom: cascadedStyle.marginBottom, + paddingLeft: cascadedStyle.paddingLeft, + paddingRight: cascadedStyle.paddingRight + }; + + if (cascadedStyle['float']) { + css['float'] = cascadedStyle['float'] || 'none'; + } + + if (cascadedStyle.cssFloat) { + css['cssFloat'] = cascadedStyle.cssFloat || 'none'; + } + + // old firefox box-sizing + if (computedStyle.MozBoxSizing) { + css['MozBoxSizing'] = computedStyle.MozBoxSizing; + } + + css['width'] = cascadedStyle.width !== 'auto' ? cascadedStyle.width : (css.boxSizing === 'border-box' || css.MozBoxSizing === 'border-box' ? el.offsetWidth + 'px' : computedStyle.width); + + return css; + }; + + const Sticky = { + css: {}, + position: null, // so we don't need to check css all the time + stick: (args) => { + args = args || {}; + + // check if element is already sticky + if (Helpers.hasClass(elem, STICKY_OPTIONS.stickyClass)) { + return; + } + + if (Spacer.isAttached === false) { + Spacer.attach(); + } + + Sticky.position = 'fixed'; + + // apply styles + elem.style.position = 'fixed'; + elem.style.left = Spacer.offsetLeft + 'px'; + elem.style.width = Spacer.width; + + if (typeof args.bottom === 'undefined') { + elem.style.bottom = 'auto'; + } + else { + elem.style.bottom = args.bottom + 'px'; + } + + if (typeof args.top === 'undefined') { + elem.style.top = 'auto'; + } + else { + elem.style.top = args.top + 'px'; + } + + // add sticky class + if (elem.classList) { + elem.classList.add(STICKY_OPTIONS.stickyClass); + } + else { + elem.className += ' ' + STICKY_OPTIONS.stickyClass; + } + + // fire 'start' event + if (STICKY_OPTIONS.onStart) { + STICKY_OPTIONS.onStart.call(elem, Object.assign({}, STICKY_OPTIONS)); + } + }, + release: (args) => { + args = args || {}; + args.stop = args.stop || false; + + // check if we've already done this + if (args.stop !== true && Sticky.position !== 'fixed' && Sticky.position !== null && ( + (typeof args.top === 'undefined' && typeof args.bottom === 'undefined') || + (typeof args.top !== 'undefined' && (parseInt(Helpers.getStyle(elem, 'top')) || 0) === args.top) || + (typeof args.bottom !== 'undefined' && (parseInt(Helpers.getStyle(elem, 'bottom')) || 0) === args.bottom) + )) { + return; + } + + if (args.stop === true) { + // remove spacer + if (Spacer.isAttached === true) { + Spacer.detach(); + } + } + else { + // check spacer + if (Spacer.isAttached === false) { + Spacer.attach(); + } + } + + const position = args.position || Sticky.css.position; + + // remember position + Sticky.position = position; + + // apply styles + elem.style.position = position; + elem.style.left = args.stop === true ? Sticky.css.left : Spacer.positionLeft + 'px'; + elem.style.width = position !== 'absolute' ? Sticky.css.width : Spacer.width; + + if (typeof args.bottom === 'undefined') { + elem.style.bottom = args.stop === true ? '' : 'auto'; + } + else { + elem.style.bottom = args.bottom + 'px'; + } + + if (typeof args.top === 'undefined') { + elem.style.top = args.stop === true ? '' : 'auto'; + } + else { + elem.style.top = args.top + 'px'; + } + + // remove sticky class + if (elem.classList) { + elem.classList.remove(STICKY_OPTIONS.stickyClass); + } + else { + elem.className = elem.className.replace(new RegExp('(^|\\b)' + STICKY_OPTIONS.stickyClass.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); + } + + // fire 'stop' event + if (STICKY_OPTIONS.onStop) { + STICKY_OPTIONS.onStop.call(elem, Object.assign({}, STICKY_OPTIONS)); + } + } + }; + + const Spacer = { + el: document.createElement('div'), + offsetLeft: null, + positionLeft: null, + width: null, + isAttached: false, + init: () => { + Spacer.el.className = 'sticky-spacer'; + + // copy styles from sticky element + for (const prop in Sticky.css) { + Spacer.el.style[prop] = Sticky.css[prop]; + } + + // just to be sure the spacer is behind everything + Spacer.el.style['z-index'] = '-1'; + + const elemStyle = Helpers.getStyle(elem); + + // get spacer offset and position + Spacer.offsetLeft = Helpers.offset(elem).left - (parseInt(elemStyle.marginLeft) || 0); + Spacer.positionLeft = Helpers.position(elem).left; + + // get spacer width + Spacer.width = Helpers.getStyle(elem, 'width'); + }, + attach: () => { + // insert spacer to DOM + elemParent.insertBefore(Spacer.el, elem); + Spacer.isAttached = true; + }, + detach: () => { + // remove spacer from DOM + Spacer.el = elemParent.removeChild(Spacer.el); + Spacer.isAttached = false; + } + }; + + // define our private variables + let stickTo_document; + let container; + let inner_sticker; + + let container_height; + let container_offsetTop; + + let elemParent_offsetTop; + + let window_height; + + let options_top; + let options_bottom; + + let stick_top; + let stick_bottom; + + let top_limit; + let bottom_limit; + + let largerSticky; + let sticky_height; + let sticky_offsetTop; + + let calcContainerHeight; + let calcStickyHeight; + + const calcSticky = () => { + // get/set element styles + Sticky.css = getStickyCss(elem); + + // init or reinit spacer + Spacer.init(); + + // check if referring element is document + stickTo_document = STICKY_OPTIONS.stickTo && (STICKY_OPTIONS.stickTo === 'document' + || (STICKY_OPTIONS.stickTo.nodeType && STICKY_OPTIONS.stickTo.nodeType === 9) + || (typeof STICKY_OPTIONS.stickTo === 'object' && STICKY_OPTIONS.stickTo instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document))) + ? true : false; + + // select referred container + container = STICKY_OPTIONS.stickTo + ? stickTo_document + ? document + : Helpers.getElement(STICKY_OPTIONS.stickTo) + : elemParent; + + // get sticky height + calcStickyHeight = () => { + const height = elem.offsetHeight + (parseInt(Sticky.css.marginTop) || 0) + (parseInt(Sticky.css.marginBottom) || 0); + const h_diff = (sticky_height || 0) - height; + + if (h_diff >= -1 && h_diff <= 1) { + // sometimes element height changes by 1px when it get fixed position, so don't return new value + return sticky_height; + } + else { + return height; + } + }; + + sticky_height = calcStickyHeight(); + + // get container height + calcContainerHeight = () => { + return !stickTo_document ? container.offsetHeight : Math.max(document.documentElement.clientHeight, document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight); + }; + + container_height = calcContainerHeight(); + + container_offsetTop = !stickTo_document ? Helpers.offset(container).top : 0; + elemParent_offsetTop = !STICKY_OPTIONS.stickTo + ? container_offsetTop // parent is container + : !stickTo_document + ? Helpers.offset(elemParent).top + : 0; + window_height = window.innerHeight; + sticky_offsetTop = elem.offsetTop - (parseInt(Sticky.css.marginTop) || 0); + + // get inner sticker element + inner_sticker = Helpers.getElement(STICKY_OPTIONS.innerSticker); + + // top + options_top = isNaN(STICKY_OPTIONS.top) && STICKY_OPTIONS.top.indexOf('%') > -1 + ? (parseFloat(STICKY_OPTIONS.top) / 100) * window_height + : STICKY_OPTIONS.top; + + // bottom + options_bottom = isNaN(STICKY_OPTIONS.bottom) && STICKY_OPTIONS.bottom.indexOf('%') > -1 + ? (parseFloat(STICKY_OPTIONS.bottom) / 100) * window_height + : STICKY_OPTIONS.bottom; + + // calculate sticky breakpoints + stick_top = inner_sticker + ? inner_sticker.offsetTop + : STICKY_OPTIONS.innerTop + ? STICKY_OPTIONS.innerTop + : 0; + + stick_bottom = isNaN(STICKY_OPTIONS.bottomEnd) && STICKY_OPTIONS.bottomEnd.indexOf('%') > -1 + ? (parseFloat(STICKY_OPTIONS.bottomEnd) / 100) * window_height + : STICKY_OPTIONS.bottomEnd; + + top_limit = container_offsetTop - options_top + stick_top + sticky_offsetTop; + }; + + // store scroll position so we can determine scroll direction + let last_pos = window.pageYOffset || document.documentElement.scrollTop; + let diff_y = 0; + let scroll_dir; + + const runSticky = () => { + // always calculate sticky and container height in case of DOM change + sticky_height = calcStickyHeight(); + container_height = calcContainerHeight(); + + bottom_limit = container_offsetTop + container_height - options_top - stick_bottom; + + // check if sticky is bigger than container + largerSticky = sticky_height > window_height; + + const offset_top = window.pageYOffset || document.documentElement.scrollTop; + const sticky_top = Helpers.offset(elem).top; + const sticky_window_top = sticky_top - offset_top; + let bottom_distance; + + // get scroll direction + scroll_dir = offset_top < last_pos ? 'up' : 'down'; + diff_y = offset_top - last_pos; + last_pos = offset_top; + + if (offset_top > top_limit) { + // http://geek-and-poke.com/geekandpoke/2012/7/27/simply-explained.html + if (bottom_limit + options_top + (largerSticky ? options_bottom : 0) - (STICKY_OPTIONS.followScroll && largerSticky ? 0 : options_top) <= offset_top + sticky_height - stick_top - ((sticky_height - stick_top > window_height - (top_limit - stick_top) && STICKY_OPTIONS.followScroll) ? (((bottom_distance = sticky_height - window_height - stick_top) > 0) ? bottom_distance : 0) : 0)) { // bottom reached end + Sticky.release({ + position: 'absolute', + //top: bottom_limit - sticky_height - top_limit + stick_top + sticky_offsetTop + bottom: elemParent_offsetTop + elemParent.offsetHeight - bottom_limit - options_top + }); + } + else if (largerSticky && STICKY_OPTIONS.followScroll) { // sticky is bigger than container and follows scroll + if (scroll_dir === 'down') { // scroll down + if (sticky_window_top + sticky_height + options_bottom <= window_height + .9) { // stick on bottom + // fix subpixel precision with adding .9 pixels + Sticky.stick({ + //top: window_height - sticky_height - options_bottom + bottom: options_bottom + }); + } + else if (Sticky.position === 'fixed') { // bottom reached window bottom + Sticky.release({ + position: 'absolute', + top: sticky_top - options_top - top_limit - diff_y + stick_top + }); + } + } + else { // scroll up + if (Math.ceil(sticky_window_top + stick_top) < 0 && Sticky.position === 'fixed') { // top reached window top + Sticky.release({ + position: 'absolute', + top: sticky_top - options_top - top_limit + stick_top - diff_y + }); + } + else if (sticky_top >= offset_top + options_top - stick_top) { // stick on top + Sticky.stick({ + top: options_top - stick_top + }); + } + } + } + else { // stick on top + Sticky.stick({ + top: options_top - stick_top + }); + } + } + else { // starting point + Sticky.release({ + stop: true + }); + } + }; + + let scrollAttached = false; + let resizeAttached = false; + + const disableSticky = () => { + if (scrollAttached) { + // detach sticky from scroll + window.removeEventListener('scroll', runSticky, Helpers.supportsPassive); + + // sticky is not attached to scroll anymore + scrollAttached = false; + } + }; + + const initSticky = () => { + // check if element or it's parents are visible + if (elem.offsetParent === null || Helpers.getStyle(elem, 'display') === 'none') { + disableSticky(); + return; + } + + // calculate stuff + calcSticky(); + + // check if sticky is bigger than reffering container + if (sticky_height > container_height) { + disableSticky(); + return; + } + + // run + runSticky(); + + if (!scrollAttached) { + // attach sticky to scroll + window.addEventListener('scroll', runSticky, Helpers.supportsPassive); + + // sticky is attached to scroll + scrollAttached = true; + } + }; + + const resetSticky = () => { + // remove inline styles + elem.style.position = ''; + elem.style.left = ''; + elem.style.top = ''; + elem.style.bottom = ''; + elem.style.width = ''; + + // remove sticky class + if (elem.classList) { + elem.classList.remove(STICKY_OPTIONS.stickyClass); + } + else { + elem.className = elem.className.replace(new RegExp('(^|\\b)' + STICKY_OPTIONS.stickyClass.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); + } + + // reset sticky object data + Sticky.css = {}; + Sticky.position = null; + + // remove spacer + if (Spacer.isAttached === true) { + Spacer.detach(); + } + }; + + const reinitSticky = () => { + resetSticky(); + applyQueries(); + + if (isDisabled()) { + disableSticky(); + return; + } + + // restart sticky + initSticky(); + }; + + const resizeSticky = () => { + // fire 'beforeResize' event + if (STICKY_OPTIONS.onBeforeResize) { + STICKY_OPTIONS.onBeforeResize.call(elem, Object.assign({}, STICKY_OPTIONS)); + } + + // reinit sticky + reinitSticky(); + + // fire 'resize' event + if (STICKY_OPTIONS.onResize) { + STICKY_OPTIONS.onResize.call(elem, Object.assign({}, STICKY_OPTIONS)); + } + }; + + const resize_cb = !STICKY_OPTIONS.resizeDebounce ? resizeSticky : Helpers.debounce(resizeSticky, STICKY_OPTIONS.resizeDebounce); + + // Method for updating options + const Update = (options) => { + setOptions(options); + + // also update user settings + userSettings = Object.assign({}, userSettings, options || {}); + + reinitSticky(); + }; + + const Detach = () => { + // detach resize reinit + if (resizeAttached) { + window.removeEventListener('resize', resize_cb, Helpers.supportsPassive); + resizeAttached = false; + } + + disableSticky(); + }; + + const Destroy = () => { + Detach(); + resetSticky(); + }; + + const Attach = () => { + // attach resize reinit + if (!resizeAttached) { + window.addEventListener('resize', resize_cb, Helpers.supportsPassive); + resizeAttached = true; + } + + applyQueries(); + + if (isDisabled()) { + disableSticky(); + return; + } + + initSticky(); + }; + + this.options = getOptions; + this.refresh = reinitSticky; + this.update = Update; + this.attach = Attach; + this.detach = Detach; + this.destroy = Destroy; + + // jQuery methods + this.triggerMethod = (method, options) => { + if (typeof this[method] === 'function') { + this[method](options); + } + }; + + this.reinit = () => { + deprecated('reinit', 'refresh', 'method'); + reinitSticky(); + }; + + // init settings + setOptions(userSettings); + + // start sticky + Attach(); + + // reinit on complete page load + window.addEventListener('load', reinitSticky); + }; + + // jQuery Plugin + if (typeof window.jQuery !== 'undefined') { + const $ = window.jQuery; + const namespace = 'hcSticky'; + + $.fn.extend({ + hcSticky: function(args, update) { + // check if selected element exist + if (!this.length) return this; + + // we need to return options + if (args === 'options') { + return $.data(this.get(0), namespace).options(); + } + + return this.each(function() { + let instance = $.data(this, namespace); + + if (instance) { + // already created, trigger method + instance.triggerMethod(args, update); + } + else { + // create new instance + instance = new hcSticky(this, args); + $.data(this, namespace, instance); + } + }); + } + }); + } + + // browser global + window.hcSticky = window.hcSticky || hcSticky; + + return hcSticky; +}); diff --git a/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.min.js b/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.min.js new file mode 100644 index 0000000000..3659e08020 --- /dev/null +++ b/wp-content/themes/kenta/dist/vendor/hc-sticky/hc-sticky.min.js @@ -0,0 +1,11 @@ +/* + * HC-Sticky + * ========= + * Version: 2.2.7 + * Author: Some Web Media + * Author URL: https://github.com/somewebmedia + * Plugin URL: https://github.com/somewebmedia/hc-sticky + * Description: JavaScript library that makes any element on your page visible while you scroll + * License: MIT + */ +"use strict";!function(t,e){if("object"==typeof module&&"object"==typeof module.exports){if(!t.document)throw new Error("HC-Sticky requires a browser to run.");module.exports=e(t)}else"function"==typeof define&&define.amd?define("hcSticky",[],e(t)):e(t)}("undefined"!=typeof window?window:this,function(V){var i,n,Q=V.document,U={top:0,bottom:0,bottomEnd:0,innerTop:0,innerSticker:null,stickyClass:"sticky",stickTo:null,followScroll:!0,responsive:null,mobileFirst:!1,onStart:null,onStop:null,onBeforeResize:null,onResize:null,resizeDebounce:100,disable:!1},Y=function(t,e,o){console.warn("%cHC Sticky:%c "+o+"%c '"+t+"'%c is now deprecated and will be removed. Use%c '"+e+"'%c instead.","color: #fa253b","color: default","color: #5595c6","color: default","color: #5595c6","color: default")},$=function(n,f){var o=this;if(f=f||{},!(n="string"==typeof n?Q.querySelector(n):n))return!1;f.queries&&Y("queries","responsive","option"),f.queryFlow&&Y("queryFlow","mobileFirst","option");var p={},u=$.Helpers,s=n.parentNode;"static"===u.getStyle(s,"position")&&(s.style.position="relative");function d(t){u.isEmptyObject(t=t||{})&&!u.isEmptyObject(p)||(p=Object.assign({},U,p,t))}function t(){return p.disable}function e(){var t,e=p.responsive||p.queries;if(e){var o=V.innerWidth;if(t=f,(p=Object.assign({},U,t||{})).mobileFirst)for(var i in e)i<=o&&!u.isEmptyObject(e[i])&&d(e[i]);else{var n,s=[];for(n in e){var r={};r[n]=e[n],s.push(r)}for(var l=s.length-1;0<=l;l--){var a=s[l],c=Object.keys(a)[0];o<=c&&!u.isEmptyObject(a[c])&&d(a[c])}}}}function i(){var t,e,o,i;I.css=(t=n,e=u.getCascadedStyle(t),o=u.getStyle(t),i={height:t.offsetHeight+"px",left:e.left,right:e.right,top:e.top,bottom:e.bottom,position:o.position,display:o.display,verticalAlign:o.verticalAlign,boxSizing:o.boxSizing,marginLeft:e.marginLeft,marginRight:e.marginRight,marginTop:e.marginTop,marginBottom:e.marginBottom,paddingLeft:e.paddingLeft,paddingRight:e.paddingRight},e.float&&(i.float=e.float||"none"),e.cssFloat&&(i.cssFloat=e.cssFloat||"none"),o.MozBoxSizing&&(i.MozBoxSizing=o.MozBoxSizing),i.width="auto"!==e.width?e.width:"border-box"===i.boxSizing||"border-box"===i.MozBoxSizing?t.offsetWidth+"px":o.width,i),P.init(),y=!(!p.stickTo||!("document"===p.stickTo||p.stickTo.nodeType&&9===p.stickTo.nodeType||"object"==typeof p.stickTo&&p.stickTo instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document))),h=p.stickTo?y?Q:u.getElement(p.stickTo):s,z=(R=function(){var t=n.offsetHeight+(parseInt(I.css.marginTop)||0)+(parseInt(I.css.marginBottom)||0),e=(z||0)-t;return-1<=e&&e<=1?z:t})(),v=(H=function(){return y?Math.max(Q.documentElement.clientHeight,Q.body.scrollHeight,Q.documentElement.scrollHeight,Q.body.offsetHeight,Q.documentElement.offsetHeight):h.offsetHeight})(),S=y?0:u.offset(h).top,w=p.stickTo?y?0:u.offset(s).top:S,E=V.innerHeight,N=n.offsetTop-(parseInt(I.css.marginTop)||0),b=u.getElement(p.innerSticker),L=isNaN(p.top)&&-1>>0;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(1 { +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + AnimatableColor: () => (/* reexport */ AnimatableColor), + AnimationOptions: () => (/* reexport */ AnimationOptions), + AnimationValueWithRandom: () => (/* reexport */ AnimationValueWithRandom), + Background: () => (/* reexport */ Background), + BackgroundMask: () => (/* reexport */ BackgroundMask), + BackgroundMaskCover: () => (/* reexport */ BackgroundMaskCover), + Circle: () => (/* reexport */ Circle), + ClickEvent: () => (/* reexport */ ClickEvent), + Collisions: () => (/* reexport */ Collisions), + CollisionsAbsorb: () => (/* reexport */ CollisionsAbsorb), + CollisionsOverlap: () => (/* reexport */ CollisionsOverlap), + ColorAnimation: () => (/* reexport */ ColorAnimation), + DivEvent: () => (/* reexport */ DivEvent), + Events: () => (/* reexport */ Events), + ExternalInteractorBase: () => (/* reexport */ ExternalInteractorBase), + FullScreen: () => (/* reexport */ FullScreen), + HoverEvent: () => (/* reexport */ HoverEvent), + HslAnimation: () => (/* reexport */ HslAnimation), + HslColorManager: () => (/* reexport */ HslColorManager), + Interactivity: () => (/* reexport */ Interactivity), + ManualParticle: () => (/* reexport */ ManualParticle), + Modes: () => (/* reexport */ Modes), + Move: () => (/* reexport */ Move), + MoveAngle: () => (/* reexport */ MoveAngle), + MoveAttract: () => (/* reexport */ MoveAttract), + MoveCenter: () => (/* reexport */ MoveCenter), + MoveGravity: () => (/* reexport */ MoveGravity), + MovePath: () => (/* reexport */ MovePath), + MoveTrail: () => (/* reexport */ MoveTrail), + Opacity: () => (/* reexport */ Opacity), + OpacityAnimation: () => (/* reexport */ OpacityAnimation), + Options: () => (/* reexport */ Options), + OptionsColor: () => (/* reexport */ OptionsColor), + OutModes: () => (/* reexport */ OutModes), + Parallax: () => (/* reexport */ Parallax), + ParticlesBounce: () => (/* reexport */ ParticlesBounce), + ParticlesBounceFactor: () => (/* reexport */ ParticlesBounceFactor), + ParticlesDensity: () => (/* reexport */ ParticlesDensity), + ParticlesInteractorBase: () => (/* reexport */ ParticlesInteractorBase), + ParticlesNumber: () => (/* reexport */ ParticlesNumber), + ParticlesOptions: () => (/* reexport */ ParticlesOptions), + Point: () => (/* reexport */ Point), + Range: () => (/* reexport */ Range), + RangedAnimationOptions: () => (/* reexport */ RangedAnimationOptions), + RangedAnimationValueWithRandom: () => (/* reexport */ RangedAnimationValueWithRandom), + Rectangle: () => (/* reexport */ Rectangle), + ResizeEvent: () => (/* reexport */ ResizeEvent), + Responsive: () => (/* reexport */ Responsive), + RgbColorManager: () => (/* reexport */ RgbColorManager), + Shadow: () => (/* reexport */ Shadow), + Shape: () => (/* reexport */ Shape), + Size: () => (/* reexport */ Size), + SizeAnimation: () => (/* reexport */ SizeAnimation), + Spin: () => (/* reexport */ Spin), + Stroke: () => (/* reexport */ Stroke), + Theme: () => (/* reexport */ Theme), + ThemeDefault: () => (/* reexport */ ThemeDefault), + ValueWithRandom: () => (/* reexport */ ValueWithRandom), + Vector: () => (/* reexport */ Vector), + Vector3d: () => (/* reexport */ Vector3d), + ZIndex: () => (/* reexport */ ZIndex), + addColorManager: () => (/* reexport */ addColorManager), + addEasing: () => (/* reexport */ addEasing), + alterHsl: () => (/* reexport */ alterHsl), + areBoundsInside: () => (/* reexport */ areBoundsInside), + arrayRandomIndex: () => (/* reexport */ arrayRandomIndex), + calcExactPositionOrRandomFromSize: () => (/* reexport */ calcExactPositionOrRandomFromSize), + calcExactPositionOrRandomFromSizeRanged: () => (/* reexport */ calcExactPositionOrRandomFromSizeRanged), + calcPositionFromSize: () => (/* reexport */ calcPositionFromSize), + calcPositionOrRandomFromSize: () => (/* reexport */ calcPositionOrRandomFromSize), + calcPositionOrRandomFromSizeRanged: () => (/* reexport */ calcPositionOrRandomFromSizeRanged), + calculateBounds: () => (/* reexport */ calculateBounds), + circleBounce: () => (/* reexport */ circleBounce), + circleBounceDataFromParticle: () => (/* reexport */ circleBounceDataFromParticle), + clamp: () => (/* reexport */ clamp), + clear: () => (/* reexport */ clear), + collisionVelocity: () => (/* reexport */ collisionVelocity), + colorMix: () => (/* reexport */ colorMix), + colorToHsl: () => (/* reexport */ colorToHsl), + colorToRgb: () => (/* reexport */ colorToRgb), + deepExtend: () => (/* reexport */ deepExtend), + divMode: () => (/* reexport */ divMode), + divModeExecute: () => (/* reexport */ divModeExecute), + drawLine: () => (/* reexport */ drawLine), + drawParticle: () => (/* reexport */ drawParticle), + drawParticlePlugin: () => (/* reexport */ drawParticlePlugin), + drawPlugin: () => (/* reexport */ drawPlugin), + drawShape: () => (/* reexport */ drawShape), + drawShapeAfterEffect: () => (/* reexport */ drawShapeAfterEffect), + drawTriangle: () => (/* reexport */ drawTriangle), + errorPrefix: () => (/* reexport */ errorPrefix), + executeOnSingleOrMultiple: () => (/* reexport */ executeOnSingleOrMultiple), + findItemFromSingleOrMultiple: () => (/* reexport */ findItemFromSingleOrMultiple), + generatedAttribute: () => (/* reexport */ generatedAttribute), + getDistance: () => (/* reexport */ getDistance), + getDistances: () => (/* reexport */ getDistances), + getEasing: () => (/* reexport */ getEasing), + getHslAnimationFromHsl: () => (/* reexport */ getHslAnimationFromHsl), + getHslFromAnimation: () => (/* reexport */ getHslFromAnimation), + getLinkColor: () => (/* reexport */ getLinkColor), + getLinkRandomColor: () => (/* reexport */ getLinkRandomColor), + getLogger: () => (/* reexport */ getLogger), + getParticleBaseVelocity: () => (/* reexport */ getParticleBaseVelocity), + getParticleDirectionAngle: () => (/* reexport */ getParticleDirectionAngle), + getPosition: () => (/* reexport */ getPosition), + getRandom: () => (/* reexport */ getRandom), + getRandomRgbColor: () => (/* reexport */ getRandomRgbColor), + getRangeMax: () => (/* reexport */ getRangeMax), + getRangeMin: () => (/* reexport */ getRangeMin), + getRangeValue: () => (/* reexport */ getRangeValue), + getSize: () => (/* reexport */ getSize), + getStyleFromHsl: () => (/* reexport */ getStyleFromHsl), + getStyleFromRgb: () => (/* reexport */ getStyleFromRgb), + getValue: () => (/* reexport */ getValue), + hasMatchMedia: () => (/* reexport */ hasMatchMedia), + hslToRgb: () => (/* reexport */ hslToRgb), + hslaToRgba: () => (/* reexport */ hslaToRgba), + initParticleNumericAnimationValue: () => (/* reexport */ initParticleNumericAnimationValue), + isArray: () => (/* reexport */ isArray), + isBoolean: () => (/* reexport */ isBoolean), + isDivModeEnabled: () => (/* reexport */ isDivModeEnabled), + isFunction: () => (/* reexport */ isFunction), + isInArray: () => (/* reexport */ isInArray), + isNumber: () => (/* reexport */ isNumber), + isObject: () => (/* reexport */ isObject), + isPointInside: () => (/* reexport */ isPointInside), + isSsr: () => (/* reexport */ isSsr), + isString: () => (/* reexport */ isString), + itemFromArray: () => (/* reexport */ itemFromArray), + itemFromSingleOrMultiple: () => (/* reexport */ itemFromSingleOrMultiple), + loadFont: () => (/* reexport */ loadFont), + loadFull: () => (/* reexport */ loadFull), + loadOptions: () => (/* reexport */ loadOptions), + loadParticlesOptions: () => (/* reexport */ loadParticlesOptions), + loadSlim: () => (/* reexport */ loadSlim), + mix: () => (/* reexport */ mix), + mouseDownEvent: () => (/* reexport */ mouseDownEvent), + mouseLeaveEvent: () => (/* reexport */ mouseLeaveEvent), + mouseMoveEvent: () => (/* reexport */ mouseMoveEvent), + mouseOutEvent: () => (/* reexport */ mouseOutEvent), + mouseUpEvent: () => (/* reexport */ mouseUpEvent), + paintBase: () => (/* reexport */ paintBase), + paintImage: () => (/* reexport */ paintImage), + parseAlpha: () => (/* reexport */ parseAlpha), + randomInRange: () => (/* reexport */ randomInRange), + rangeColorToHsl: () => (/* reexport */ rangeColorToHsl), + rangeColorToRgb: () => (/* reexport */ rangeColorToRgb), + rectBounce: () => (/* reexport */ rectBounce), + resizeEvent: () => (/* reexport */ resizeEvent), + rgbToHsl: () => (/* reexport */ rgbToHsl), + safeMatchMedia: () => (/* reexport */ safeMatchMedia), + safeMutationObserver: () => (/* reexport */ safeMutationObserver), + setLogger: () => (/* reexport */ setLogger), + setRandom: () => (/* reexport */ setRandom), + setRangeValue: () => (/* reexport */ setRangeValue), + singleDivModeExecute: () => (/* reexport */ singleDivModeExecute), + stringToAlpha: () => (/* reexport */ stringToAlpha), + stringToRgb: () => (/* reexport */ stringToRgb), + touchCancelEvent: () => (/* reexport */ touchCancelEvent), + touchEndEvent: () => (/* reexport */ touchEndEvent), + touchMoveEvent: () => (/* reexport */ touchMoveEvent), + touchStartEvent: () => (/* reexport */ touchStartEvent), + tsParticles: () => (/* reexport */ tsParticles), + visibilityChangeEvent: () => (/* reexport */ visibilityChangeEvent) +}); + +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Constants.js +const generatedAttribute = "generated"; +const mouseDownEvent = "pointerdown"; +const mouseUpEvent = "pointerup"; +const mouseLeaveEvent = "pointerleave"; +const mouseOutEvent = "pointerout"; +const mouseMoveEvent = "pointermove"; +const touchStartEvent = "touchstart"; +const touchEndEvent = "touchend"; +const touchMoveEvent = "touchmove"; +const touchCancelEvent = "touchcancel"; +const resizeEvent = "resize"; +const visibilityChangeEvent = "visibilitychange"; +const errorPrefix = "tsParticles - Error"; +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Vector3d.js + + +class Vector3d { + constructor(xOrCoords, y, z) { + this._updateFromAngle = (angle, length) => { + this.x = Math.cos(angle) * length; + this.y = Math.sin(angle) * length; + }; + if (!isNumber(xOrCoords) && xOrCoords) { + this.x = xOrCoords.x; + this.y = xOrCoords.y; + const coords3d = xOrCoords; + this.z = coords3d.z ? coords3d.z : 0; + } else if (xOrCoords !== undefined && y !== undefined) { + this.x = xOrCoords; + this.y = y; + this.z = z ?? 0; + } else { + throw new Error(`${errorPrefix} Vector3d not initialized correctly`); + } + } + static get origin() { + return Vector3d.create(0, 0, 0); + } + get angle() { + return Math.atan2(this.y, this.x); + } + set angle(angle) { + this._updateFromAngle(angle, this.length); + } + get length() { + return Math.sqrt(this.getLengthSq()); + } + set length(length) { + this._updateFromAngle(this.angle, length); + } + static clone(source) { + return Vector3d.create(source.x, source.y, source.z); + } + static create(x, y, z) { + return new Vector3d(x, y, z); + } + add(v) { + return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z); + } + addTo(v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + } + copy() { + return Vector3d.clone(this); + } + distanceTo(v) { + return this.sub(v).length; + } + distanceToSq(v) { + return this.sub(v).getLengthSq(); + } + div(n) { + return Vector3d.create(this.x / n, this.y / n, this.z / n); + } + divTo(n) { + this.x /= n; + this.y /= n; + this.z /= n; + } + getLengthSq() { + return this.x ** 2 + this.y ** 2; + } + mult(n) { + return Vector3d.create(this.x * n, this.y * n, this.z * n); + } + multTo(n) { + this.x *= n; + this.y *= n; + this.z *= n; + } + normalize() { + const length = this.length; + if (length != 0) { + this.multTo(1.0 / length); + } + } + rotate(angle) { + return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), 0); + } + setTo(c) { + this.x = c.x; + this.y = c.y; + const v3d = c; + this.z = v3d.z ? v3d.z : 0; + } + sub(v) { + return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z); + } + subFrom(v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Vector.js + +class Vector extends Vector3d { + constructor(xOrCoords, y) { + super(xOrCoords, y, 0); + } + static get origin() { + return Vector.create(0, 0); + } + static clone(source) { + return Vector.create(source.x, source.y); + } + static create(x, y) { + return new Vector(x, y); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/NumberUtils.js + + +let _random = Math.random; +const easings = new Map(); +function addEasing(name, easing) { + if (easings.get(name)) { + return; + } + easings.set(name, easing); +} +function getEasing(name) { + return easings.get(name) || (value => value); +} +function setRandom(rnd = Math.random) { + _random = rnd; +} +function getRandom() { + return clamp(_random(), 0, 1 - 1e-16); +} +function clamp(num, min, max) { + return Math.min(Math.max(num, min), max); +} +function mix(comp1, comp2, weight1, weight2) { + return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2)); +} +function randomInRange(r) { + const max = getRangeMax(r); + let min = getRangeMin(r); + if (max === min) { + min = 0; + } + return getRandom() * (max - min) + min; +} +function getRangeValue(value) { + return isNumber(value) ? value : randomInRange(value); +} +function getRangeMin(value) { + return isNumber(value) ? value : value.min; +} +function getRangeMax(value) { + return isNumber(value) ? value : value.max; +} +function setRangeValue(source, value) { + if (source === value || value === undefined && isNumber(source)) { + return source; + } + const min = getRangeMin(source), + max = getRangeMax(source); + return value !== undefined ? { + min: Math.min(min, value), + max: Math.max(max, value) + } : setRangeValue(min, max); +} +function getValue(options) { + const random = options.random, + { + enable, + minimumValue + } = isBoolean(random) ? { + enable: random, + minimumValue: 0 + } : random; + return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value); +} +function getDistances(pointA, pointB) { + const dx = pointA.x - pointB.x, + dy = pointA.y - pointB.y; + return { + dx: dx, + dy: dy, + distance: Math.sqrt(dx ** 2 + dy ** 2) + }; +} +function getDistance(pointA, pointB) { + return getDistances(pointA, pointB).distance; +} +function getParticleDirectionAngle(direction, position, center) { + if (isNumber(direction)) { + return direction * Math.PI / 180; + } + switch (direction) { + case "top": + return -Math.PI / 2; + case "top-right": + return -Math.PI / 4; + case "right": + return 0; + case "bottom-right": + return Math.PI / 4; + case "bottom": + return Math.PI / 2; + case "bottom-left": + return 3 * Math.PI / 4; + case "left": + return Math.PI; + case "top-left": + return -3 * Math.PI / 4; + case "inside": + return Math.atan2(center.y - position.y, center.x - position.x); + case "outside": + return Math.atan2(position.y - center.y, position.x - center.x); + default: + return getRandom() * Math.PI * 2; + } +} +function getParticleBaseVelocity(direction) { + const baseVelocity = Vector.origin; + baseVelocity.length = 1; + baseVelocity.angle = direction; + return baseVelocity; +} +function collisionVelocity(v1, v2, m1, m2) { + return Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * 2 * m2 / (m1 + m2), v1.y); +} +function calcPositionFromSize(data) { + return data.position && data.position.x !== undefined && data.position.y !== undefined ? { + x: data.position.x * data.size.width / 100, + y: data.position.y * data.size.height / 100 + } : undefined; +} +function calcPositionOrRandomFromSize(data) { + return { + x: (data.position?.x ?? getRandom() * 100) * data.size.width / 100, + y: (data.position?.y ?? getRandom() * 100) * data.size.height / 100 + }; +} +function calcPositionOrRandomFromSizeRanged(data) { + const position = { + x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined, + y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined + }; + return calcPositionOrRandomFromSize({ + size: data.size, + position + }); +} +function calcExactPositionOrRandomFromSize(data) { + return { + x: data.position?.x ?? getRandom() * data.size.width, + y: data.position?.y ?? getRandom() * data.size.height + }; +} +function calcExactPositionOrRandomFromSizeRanged(data) { + const position = { + x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined, + y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined + }; + return calcExactPositionOrRandomFromSize({ + size: data.size, + position + }); +} +function parseAlpha(input) { + return input ? input.endsWith("%") ? parseFloat(input) / 100 : parseFloat(input) : 1; +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/Utils.js + + +const _logger = { + debug: console.debug, + error: console.error, + info: console.info, + log: console.log, + verbose: console.log, + warning: console.warn +}; +function setLogger(logger) { + _logger.debug = logger.debug || _logger.debug; + _logger.error = logger.error || _logger.error; + _logger.info = logger.info || _logger.info; + _logger.log = logger.log || _logger.log; + _logger.verbose = logger.verbose || _logger.verbose; + _logger.warning = logger.warning || _logger.warning; +} +function getLogger() { + return _logger; +} +function rectSideBounce(data) { + const res = { + bounced: false + }, + { + pSide, + pOtherSide, + rectSide, + rectOtherSide, + velocity, + factor + } = data; + if (pOtherSide.min < rectOtherSide.min || pOtherSide.min > rectOtherSide.max || pOtherSide.max < rectOtherSide.min || pOtherSide.max > rectOtherSide.max) { + return res; + } + if (pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0 || pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0) { + res.velocity = velocity * -factor; + res.bounced = true; + } + return res; +} +function checkSelector(element, selectors) { + const res = executeOnSingleOrMultiple(selectors, selector => { + return element.matches(selector); + }); + return isArray(res) ? res.some(t => t) : res; +} +function isSsr() { + return typeof window === "undefined" || !window || typeof window.document === "undefined" || !window.document; +} +function hasMatchMedia() { + return !isSsr() && typeof matchMedia !== "undefined"; +} +function safeMatchMedia(query) { + if (!hasMatchMedia()) { + return; + } + return matchMedia(query); +} +function safeMutationObserver(callback) { + if (isSsr() || typeof MutationObserver === "undefined") { + return; + } + return new MutationObserver(callback); +} +function isInArray(value, array) { + return value === array || isArray(array) && array.indexOf(value) > -1; +} +async function loadFont(font, weight) { + try { + await document.fonts.load(`${weight ?? "400"} 36px '${font ?? "Verdana"}'`); + } catch {} +} +function arrayRandomIndex(array) { + return Math.floor(getRandom() * array.length); +} +function itemFromArray(array, index, useIndex = true) { + return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)]; +} +function isPointInside(point, size, offset, radius, direction) { + return areBoundsInside(calculateBounds(point, radius ?? 0), size, offset, direction); +} +function areBoundsInside(bounds, size, offset, direction) { + let inside = true; + if (!direction || direction === "bottom") { + inside = bounds.top < size.height + offset.x; + } + if (inside && (!direction || direction === "left")) { + inside = bounds.right > offset.x; + } + if (inside && (!direction || direction === "right")) { + inside = bounds.left < size.width + offset.y; + } + if (inside && (!direction || direction === "top")) { + inside = bounds.bottom > offset.y; + } + return inside; +} +function calculateBounds(point, radius) { + return { + bottom: point.y + radius, + left: point.x - radius, + right: point.x + radius, + top: point.y - radius + }; +} +function deepExtend(destination, ...sources) { + for (const source of sources) { + if (source === undefined || source === null) { + continue; + } + if (!isObject(source)) { + destination = source; + continue; + } + const sourceIsArray = Array.isArray(source); + if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) { + destination = []; + } else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) { + destination = {}; + } + for (const key in source) { + if (key === "__proto__") { + continue; + } + const sourceDict = source, + value = sourceDict[key], + destDict = destination; + destDict[key] = isObject(value) && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value); + } + } + return destination; +} +function isDivModeEnabled(mode, divs) { + return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode)); +} +function divModeExecute(mode, divs, callback) { + executeOnSingleOrMultiple(divs, div => { + const divMode = div.mode, + divEnabled = div.enable; + if (divEnabled && isInArray(mode, divMode)) { + singleDivModeExecute(div, callback); + } + }); +} +function singleDivModeExecute(div, callback) { + const selectors = div.selectors; + executeOnSingleOrMultiple(selectors, selector => { + callback(selector, div); + }); +} +function divMode(divs, element) { + if (!element || !divs) { + return; + } + return findItemFromSingleOrMultiple(divs, div => { + return checkSelector(element, div.selectors); + }); +} +function circleBounceDataFromParticle(p) { + return { + position: p.getPosition(), + radius: p.getRadius(), + mass: p.getMass(), + velocity: p.velocity, + factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical)) + }; +} +function circleBounce(p1, p2) { + const { + x: xVelocityDiff, + y: yVelocityDiff + } = p1.velocity.sub(p2.velocity), + [pos1, pos2] = [p1.position, p2.position], + { + dx: xDist, + dy: yDist + } = getDistances(pos2, pos1); + if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) { + return; + } + const angle = -Math.atan2(yDist, xDist), + m1 = p1.mass, + m2 = p2.mass, + u1 = p1.velocity.rotate(angle), + u2 = p2.velocity.rotate(angle), + v1 = collisionVelocity(u1, u2, m1, m2), + v2 = collisionVelocity(u2, u1, m1, m2), + vFinal1 = v1.rotate(-angle), + vFinal2 = v2.rotate(-angle); + p1.velocity.x = vFinal1.x * p1.factor.x; + p1.velocity.y = vFinal1.y * p1.factor.y; + p2.velocity.x = vFinal2.x * p2.factor.x; + p2.velocity.y = vFinal2.y * p2.factor.y; +} +function rectBounce(particle, divBounds) { + const pPos = particle.getPosition(), + size = particle.getRadius(), + bounds = calculateBounds(pPos, size), + resH = rectSideBounce({ + pSide: { + min: bounds.left, + max: bounds.right + }, + pOtherSide: { + min: bounds.top, + max: bounds.bottom + }, + rectSide: { + min: divBounds.left, + max: divBounds.right + }, + rectOtherSide: { + min: divBounds.top, + max: divBounds.bottom + }, + velocity: particle.velocity.x, + factor: getValue(particle.options.bounce.horizontal) + }); + if (resH.bounced) { + if (resH.velocity !== undefined) { + particle.velocity.x = resH.velocity; + } + if (resH.position !== undefined) { + particle.position.x = resH.position; + } + } + const resV = rectSideBounce({ + pSide: { + min: bounds.top, + max: bounds.bottom + }, + pOtherSide: { + min: bounds.left, + max: bounds.right + }, + rectSide: { + min: divBounds.top, + max: divBounds.bottom + }, + rectOtherSide: { + min: divBounds.left, + max: divBounds.right + }, + velocity: particle.velocity.y, + factor: getValue(particle.options.bounce.vertical) + }); + if (resV.bounced) { + if (resV.velocity !== undefined) { + particle.velocity.y = resV.velocity; + } + if (resV.position !== undefined) { + particle.position.y = resV.position; + } + } +} +function executeOnSingleOrMultiple(obj, callback) { + return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, 0); +} +function itemFromSingleOrMultiple(obj, index, useIndex) { + return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj; +} +function findItemFromSingleOrMultiple(obj, callback) { + return isArray(obj) ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined; +} +function initParticleNumericAnimationValue(options, pxRatio) { + const valueRange = options.value, + animationOptions = options.animation, + res = { + delayTime: getRangeValue(animationOptions.delay) * 1000, + enable: animationOptions.enable, + value: getRangeValue(options.value) * pxRatio, + max: getRangeMax(valueRange) * pxRatio, + min: getRangeMin(valueRange) * pxRatio, + loops: 0, + maxLoops: getRangeValue(animationOptions.count), + time: 0 + }; + if (animationOptions.enable) { + res.decay = 1 - getRangeValue(animationOptions.decay); + switch (animationOptions.mode) { + case "increase": + res.status = "increasing"; + break; + case "decrease": + res.status = "decreasing"; + break; + case "random": + res.status = getRandom() >= 0.5 ? "increasing" : "decreasing"; + break; + } + const autoStatus = animationOptions.mode === "auto"; + switch (animationOptions.startValue) { + case "min": + res.value = res.min; + if (autoStatus) { + res.status = "increasing"; + } + break; + case "max": + res.value = res.max; + if (autoStatus) { + res.status = "decreasing"; + } + break; + case "random": + default: + res.value = randomInRange(res); + if (autoStatus) { + res.status = getRandom() >= 0.5 ? "increasing" : "decreasing"; + } + break; + } + } + res.initialValue = res.value; + return res; +} +function getPositionOrSize(positionOrSize, canvasSize) { + const isPercent = positionOrSize.mode === "percent"; + if (!isPercent) { + const { + mode: _, + ...rest + } = positionOrSize; + return rest; + } + const isPosition = ("x" in positionOrSize); + if (isPosition) { + return { + x: positionOrSize.x / 100 * canvasSize.width, + y: positionOrSize.y / 100 * canvasSize.height + }; + } else { + return { + width: positionOrSize.width / 100 * canvasSize.width, + height: positionOrSize.height / 100 * canvasSize.height + }; + } +} +function getPosition(position, canvasSize) { + return getPositionOrSize(position, canvasSize); +} +function getSize(size, canvasSize) { + return getPositionOrSize(size, canvasSize); +} +function isBoolean(arg) { + return typeof arg === "boolean"; +} +function isString(arg) { + return typeof arg === "string"; +} +function isNumber(arg) { + return typeof arg === "number"; +} +function isFunction(arg) { + return typeof arg === "function"; +} +function isObject(arg) { + return typeof arg === "object" && arg !== null; +} +function isArray(arg) { + return Array.isArray(arg); +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/OptionsColor.js + +class OptionsColor { + constructor() { + this.value = ""; + } + static create(source, data) { + const color = new OptionsColor(); + color.load(source); + if (data !== undefined) { + if (isString(data) || isArray(data)) { + color.load({ + value: data + }); + } else { + color.load(data); + } + } + return color; + } + load(data) { + if (data?.value === undefined) { + return; + } + this.value = data.value; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/AnimationOptions.js + +class AnimationOptions { + constructor() { + this.count = 0; + this.enable = false; + this.speed = 1; + this.decay = 0; + this.delay = 0; + this.sync = false; + } + load(data) { + if (!data) { + return; + } + if (data.count !== undefined) { + this.count = setRangeValue(data.count); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + if (data.decay !== undefined) { + this.decay = setRangeValue(data.decay); + } + if (data.delay !== undefined) { + this.delay = setRangeValue(data.delay); + } + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +class RangedAnimationOptions extends AnimationOptions { + constructor() { + super(); + this.mode = "auto"; + this.startValue = "random"; + } + load(data) { + super.load(data); + if (!data) { + return; + } + if (data.minimumValue !== undefined) { + this.minimumValue = data.minimumValue; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.startValue !== undefined) { + this.startValue = data.startValue; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Random.js +class Random { + constructor() { + this.enable = false; + this.minimumValue = 0; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.minimumValue !== undefined) { + this.minimumValue = data.minimumValue; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/ValueWithRandom.js + + + + +class ValueWithRandom { + constructor() { + this.random = new Random(); + this.value = 0; + } + load(data) { + if (!data) { + return; + } + if (isBoolean(data.random)) { + this.random.enable = data.random; + } else { + this.random.load(data.random); + } + if (data.value !== undefined) { + this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined); + } + } +} +class AnimationValueWithRandom extends ValueWithRandom { + constructor() { + super(); + this.animation = new AnimationOptions(); + } + get anim() { + return this.animation; + } + set anim(value) { + this.animation = value; + } + load(data) { + super.load(data); + if (!data) { + return; + } + const animation = data.animation ?? data.anim; + if (animation !== undefined) { + this.animation.load(animation); + } + } +} +class RangedAnimationValueWithRandom extends AnimationValueWithRandom { + constructor() { + super(); + this.animation = new RangedAnimationOptions(); + } + load(data) { + super.load(data); + if (!data) { + return; + } + const animation = data.animation ?? data.anim; + if (animation !== undefined) { + this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined); + } + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/Options/Classes/AbsorberSizeLimit.js +class AbsorberSizeLimit { + constructor() { + this.radius = 0; + this.mass = 0; + } + load(data) { + if (!data) { + return; + } + if (data.mass !== undefined) { + this.mass = data.mass; + } + if (data.radius !== undefined) { + this.radius = data.radius; + } + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/Options/Classes/AbsorberSize.js + + +class AbsorberSize extends ValueWithRandom { + constructor() { + super(); + this.density = 5; + this.value = 50; + this.limit = new AbsorberSizeLimit(); + } + load(data) { + if (!data) { + return; + } + super.load(data); + if (data.density !== undefined) { + this.density = data.density; + } + if (isNumber(data.limit)) { + this.limit.radius = data.limit; + } else { + this.limit.load(data.limit); + } + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/Options/Classes/Absorber.js + + +class Absorber { + constructor() { + this.color = new OptionsColor(); + this.color.value = "#000000"; + this.draggable = false; + this.opacity = 1; + this.destroy = true; + this.orbits = false; + this.size = new AbsorberSize(); + } + load(data) { + if (data === undefined) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.draggable !== undefined) { + this.draggable = data.draggable; + } + this.name = data.name; + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + if (data.position !== undefined) { + this.position = {}; + if (data.position.x !== undefined) { + this.position.x = setRangeValue(data.position.x); + } + if (data.position.y !== undefined) { + this.position.y = setRangeValue(data.position.y); + } + } + if (data.size !== undefined) { + this.size.load(data.size); + } + if (data.destroy !== undefined) { + this.destroy = data.destroy; + } + if (data.orbits !== undefined) { + this.orbits = data.orbits; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/ColorUtils.js + + +const randomColorValue = "random", + midColorValue = "mid", + colorManagers = new Map(); +function addColorManager(manager) { + colorManagers.set(manager.key, manager); +} +function hue2rgb(p, q, t) { + if (t < 0) { + t += 1; + } + if (t > 1) { + t -= 1; + } + if (t < 1 / 6) { + return p + (q - p) * 6 * t; + } + if (t < 1 / 2) { + return q; + } + if (t < 2 / 3) { + return p + (q - p) * (2 / 3 - t) * 6; + } + return p; +} +function stringToRgba(input) { + for (const [, manager] of colorManagers) { + if (input.startsWith(manager.stringPrefix)) { + return manager.parseString(input); + } + } + const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i, + hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => { + return r + r + g + g + b + b + (a !== undefined ? a + a : ""); + }), + regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i, + result = regex.exec(hexFixed); + return result ? { + a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1, + b: parseInt(result[3], 16), + g: parseInt(result[2], 16), + r: parseInt(result[1], 16) + } : undefined; +} +function rangeColorToRgb(input, index, useIndex = true) { + if (!input) { + return; + } + const color = isString(input) ? { + value: input + } : input; + if (isString(color.value)) { + return colorToRgb(color.value, index, useIndex); + } + if (isArray(color.value)) { + return rangeColorToRgb({ + value: itemFromArray(color.value, index, useIndex) + }); + } + for (const [, manager] of colorManagers) { + const res = manager.handleRangeColor(color); + if (res) { + return res; + } + } +} +function colorToRgb(input, index, useIndex = true) { + if (!input) { + return; + } + const color = isString(input) ? { + value: input + } : input; + if (isString(color.value)) { + return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value); + } + if (isArray(color.value)) { + return colorToRgb({ + value: itemFromArray(color.value, index, useIndex) + }); + } + for (const [, manager] of colorManagers) { + const res = manager.handleColor(color); + if (res) { + return res; + } + } +} +function colorToHsl(color, index, useIndex = true) { + const rgb = colorToRgb(color, index, useIndex); + return rgb ? rgbToHsl(rgb) : undefined; +} +function rangeColorToHsl(color, index, useIndex = true) { + const rgb = rangeColorToRgb(color, index, useIndex); + return rgb ? rgbToHsl(rgb) : undefined; +} +function rgbToHsl(color) { + const r1 = color.r / 255, + g1 = color.g / 255, + b1 = color.b / 255, + max = Math.max(r1, g1, b1), + min = Math.min(r1, g1, b1), + res = { + h: 0, + l: (max + min) / 2, + s: 0 + }; + if (max !== min) { + res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min); + res.h = r1 === max ? (g1 - b1) / (max - min) : res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min); + } + res.l *= 100; + res.s *= 100; + res.h *= 60; + if (res.h < 0) { + res.h += 360; + } + if (res.h >= 360) { + res.h -= 360; + } + return res; +} +function stringToAlpha(input) { + return stringToRgba(input)?.a; +} +function stringToRgb(input) { + return stringToRgba(input); +} +function hslToRgb(hsl) { + const result = { + b: 0, + g: 0, + r: 0 + }, + hslPercent = { + h: hsl.h / 360, + l: hsl.l / 100, + s: hsl.s / 100 + }; + if (!hslPercent.s) { + result.r = result.g = result.b = hslPercent.l; + } else { + const q = hslPercent.l < 0.5 ? hslPercent.l * (1 + hslPercent.s) : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, + p = 2 * hslPercent.l - q; + result.r = hue2rgb(p, q, hslPercent.h + 1 / 3); + result.g = hue2rgb(p, q, hslPercent.h); + result.b = hue2rgb(p, q, hslPercent.h - 1 / 3); + } + result.r = Math.floor(result.r * 255); + result.g = Math.floor(result.g * 255); + result.b = Math.floor(result.b * 255); + return result; +} +function hslaToRgba(hsla) { + const rgbResult = hslToRgb(hsla); + return { + a: hsla.a, + b: rgbResult.b, + g: rgbResult.g, + r: rgbResult.r + }; +} +function getRandomRgbColor(min) { + const fixedMin = min ?? 0; + return { + b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))), + g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))), + r: Math.floor(randomInRange(setRangeValue(fixedMin, 256))) + }; +} +function getStyleFromRgb(color, opacity) { + return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? 1})`; +} +function getStyleFromHsl(color, opacity) { + return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? 1})`; +} +function colorMix(color1, color2, size1, size2) { + let rgb1 = color1, + rgb2 = color2; + if (rgb1.r === undefined) { + rgb1 = hslToRgb(color1); + } + if (rgb2.r === undefined) { + rgb2 = hslToRgb(color2); + } + return { + b: mix(rgb1.b, rgb2.b, size1, size2), + g: mix(rgb1.g, rgb2.g, size1, size2), + r: mix(rgb1.r, rgb2.r, size1, size2) + }; +} +function getLinkColor(p1, p2, linkColor) { + if (linkColor === randomColorValue) { + return getRandomRgbColor(); + } else if (linkColor === midColorValue) { + const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(), + destColor = p2?.getFillColor() ?? p2?.getStrokeColor(); + if (sourceColor && destColor && p2) { + return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius()); + } else { + const hslColor = sourceColor ?? destColor; + if (hslColor) { + return hslToRgb(hslColor); + } + } + } else { + return linkColor; + } +} +function getLinkRandomColor(optColor, blink, consent) { + const color = isString(optColor) ? optColor : optColor.value; + if (color === randomColorValue) { + if (consent) { + return rangeColorToRgb({ + value: color + }); + } + if (blink) { + return randomColorValue; + } + return midColorValue; + } else if (color === midColorValue) { + return midColorValue; + } else { + return rangeColorToRgb({ + value: color + }); + } +} +function getHslFromAnimation(animation) { + return animation !== undefined ? { + h: animation.h.value, + s: animation.s.value, + l: animation.l.value + } : undefined; +} +function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) { + const resColor = { + h: { + enable: false, + value: hsl.h + }, + s: { + enable: false, + value: hsl.s + }, + l: { + enable: false, + value: hsl.l + } + }; + if (animationOptions) { + setColorAnimation(resColor.h, animationOptions.h, reduceFactor); + setColorAnimation(resColor.s, animationOptions.s, reduceFactor); + setColorAnimation(resColor.l, animationOptions.l, reduceFactor); + } + return resColor; +} +function setColorAnimation(colorValue, colorAnimation, reduceFactor) { + colorValue.enable = colorAnimation.enable; + if (colorValue.enable) { + colorValue.velocity = getRangeValue(colorAnimation.speed) / 100 * reduceFactor; + colorValue.decay = 1 - getRangeValue(colorAnimation.decay); + colorValue.status = "increasing"; + colorValue.loops = 0; + colorValue.maxLoops = getRangeValue(colorAnimation.count); + colorValue.time = 0; + colorValue.delayTime = getRangeValue(colorAnimation.delay) * 1000; + if (!colorAnimation.sync) { + colorValue.velocity *= getRandom(); + colorValue.value *= getRandom(); + } + colorValue.initialValue = colorValue.value; + } else { + colorValue.velocity = 0; + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/AbsorberInstance.js + + +class AbsorberInstance { + constructor(absorbers, container, options, position) { + this.absorbers = absorbers; + this.container = container; + this._calcPosition = () => { + const exactPosition = calcPositionOrRandomFromSizeRanged({ + size: this.container.canvas.size, + position: this.options.position + }); + return Vector.create(exactPosition.x, exactPosition.y); + }; + this._updateParticlePosition = (particle, v) => { + if (particle.destroyed) { + return; + } + const container = this.container, + canvasSize = container.canvas.size; + if (particle.needsNewPosition) { + const newPosition = calcPositionOrRandomFromSize({ + size: canvasSize + }); + particle.position.setTo(newPosition); + particle.velocity.setTo(particle.initialVelocity); + particle.absorberOrbit = undefined; + particle.needsNewPosition = false; + } + if (this.options.orbits) { + if (particle.absorberOrbit === undefined) { + particle.absorberOrbit = Vector.create(0, 0); + particle.absorberOrbit.length = getDistance(particle.getPosition(), this.position); + particle.absorberOrbit.angle = getRandom() * Math.PI * 2; + } + if (particle.absorberOrbit.length <= this.size && !this.options.destroy) { + const minSize = Math.min(canvasSize.width, canvasSize.height); + particle.absorberOrbit.length = minSize * (1 + (getRandom() * 0.2 - 0.1)); + } + if (particle.absorberOrbitDirection === undefined) { + particle.absorberOrbitDirection = particle.velocity.x >= 0 ? "clockwise" : "counter-clockwise"; + } + const orbitRadius = particle.absorberOrbit.length, + orbitAngle = particle.absorberOrbit.angle, + orbitDirection = particle.absorberOrbitDirection; + particle.velocity.setTo(Vector.origin); + const updateFunc = { + x: orbitDirection === "clockwise" ? Math.cos : Math.sin, + y: orbitDirection === "clockwise" ? Math.sin : Math.cos + }; + particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle); + particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle); + particle.absorberOrbit.length -= v.length; + particle.absorberOrbit.angle += (particle.retina.moveSpeed ?? 0) * container.retina.pixelRatio / 100 * container.retina.reduceFactor; + } else { + const addV = Vector.origin; + addV.length = v.length; + addV.angle = v.angle; + particle.velocity.addTo(addV); + } + }; + this.initialPosition = position ? Vector.create(position.x, position.y) : undefined; + if (options instanceof Absorber) { + this.options = options; + } else { + this.options = new Absorber(); + this.options.load(options); + } + this.dragging = false; + this.name = this.options.name; + this.opacity = this.options.opacity; + this.size = getRangeValue(this.options.size.value) * container.retina.pixelRatio; + this.mass = this.size * this.options.size.density * container.retina.reduceFactor; + const limit = this.options.size.limit; + this.limit = { + radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor, + mass: limit.mass + }; + this.color = rangeColorToRgb(this.options.color) ?? { + b: 0, + g: 0, + r: 0 + }; + this.position = this.initialPosition?.copy() ?? this._calcPosition(); + } + attract(particle) { + const container = this.container, + options = this.options; + if (options.draggable) { + const mouse = container.interactivity.mouse; + if (mouse.clicking && mouse.downPosition) { + const mouseDist = getDistance(this.position, mouse.downPosition); + if (mouseDist <= this.size) { + this.dragging = true; + } + } else { + this.dragging = false; + } + if (this.dragging && mouse.position) { + this.position.x = mouse.position.x; + this.position.y = mouse.position.y; + } + } + const pos = particle.getPosition(), + { + dx, + dy, + distance + } = getDistances(this.position, pos), + v = Vector.create(dx, dy); + v.length = this.mass / Math.pow(distance, 2) * container.retina.reduceFactor; + if (distance < this.size + particle.getRadius()) { + const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio; + if (this.size > particle.getRadius() && distance < this.size - particle.getRadius() || particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0) { + if (options.destroy) { + particle.destroy(); + } else { + particle.needsNewPosition = true; + this._updateParticlePosition(particle, v); + } + } else { + if (options.destroy) { + particle.size.value -= sizeFactor; + } + this._updateParticlePosition(particle, v); + } + if (this.limit.radius <= 0 || this.size < this.limit.radius) { + this.size += sizeFactor; + } + if (this.limit.mass <= 0 || this.mass < this.limit.mass) { + this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor; + } + } else { + this._updateParticlePosition(particle, v); + } + } + draw(context) { + context.translate(this.position.x, this.position.y); + context.beginPath(); + context.arc(0, 0, this.size, 0, Math.PI * 2, false); + context.closePath(); + context.fillStyle = getStyleFromRgb(this.color, this.opacity); + context.fill(); + } + resize() { + const initialPosition = this.initialPosition; + this.position = initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin) ? initialPosition : this._calcPosition(); + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/Absorbers.js + + +class Absorbers { + constructor(container) { + this.container = container; + this.array = []; + this.absorbers = []; + this.interactivityAbsorbers = []; + container.getAbsorber = idxOrName => idxOrName === undefined || isNumber(idxOrName) ? this.array[idxOrName || 0] : this.array.find(t => t.name === idxOrName); + container.addAbsorber = (options, position) => this.addAbsorber(options, position); + } + addAbsorber(options, position) { + const absorber = new AbsorberInstance(this, this.container, options, position); + this.array.push(absorber); + return absorber; + } + draw(context) { + for (const absorber of this.array) { + absorber.draw(context); + } + } + handleClickMode(mode) { + const absorberOptions = this.absorbers, + modeAbsorbers = this.interactivityAbsorbers; + if (mode === "absorber") { + const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers), + absorbersOptions = absorbersModeOptions ?? itemFromSingleOrMultiple(absorberOptions), + aPosition = this.container.interactivity.mouse.clickPosition; + this.addAbsorber(absorbersOptions, aPosition); + } + } + async init() { + this.absorbers = this.container.actualOptions.absorbers; + this.interactivityAbsorbers = this.container.actualOptions.interactivity.modes.absorbers; + executeOnSingleOrMultiple(this.absorbers, absorber => { + this.addAbsorber(absorber); + }); + } + particleUpdate(particle) { + for (const absorber of this.array) { + absorber.attract(particle); + if (particle.destroyed) { + break; + } + } + } + removeAbsorber(absorber) { + const index = this.array.indexOf(absorber); + if (index >= 0) { + this.array.splice(index, 1); + } + } + resize() { + for (const absorber of this.array) { + absorber.resize(); + } + } + stop() { + this.array = []; + } +} +;// CONCATENATED MODULE: ../../plugins/absorbers/dist/esm/index.js + + + +class AbsorbersPlugin { + constructor() { + this.id = "absorbers"; + } + getPlugin(container) { + return new Absorbers(container); + } + loadOptions(options, source) { + if (!this.needsPlugin(options) && !this.needsPlugin(source)) { + return; + } + if (source?.absorbers) { + options.absorbers = executeOnSingleOrMultiple(source.absorbers, absorber => { + const tmp = new Absorber(); + tmp.load(absorber); + return tmp; + }); + } + options.interactivity.modes.absorbers = executeOnSingleOrMultiple(source?.interactivity?.modes?.absorbers, absorber => { + const tmp = new Absorber(); + tmp.load(absorber); + return tmp; + }); + } + needsPlugin(options) { + if (!options) { + return false; + } + const absorbers = options.absorbers; + if (isArray(absorbers)) { + return !!absorbers.length; + } else if (absorbers) { + return true; + } else if (options.interactivity?.events?.onClick?.mode && isInArray("absorber", options.interactivity.events.onClick.mode)) { + return true; + } + return false; + } +} +async function loadAbsorbersPlugin(engine, refresh = true) { + await engine.addPlugin(new AbsorbersPlugin(), refresh); +} + + +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Options/Classes/DestroyBounds.js + +class DestroyBounds { + load(data) { + if (!data) { + return; + } + if (data.bottom !== undefined) { + this.bottom = setRangeValue(data.bottom); + } + if (data.left !== undefined) { + this.left = setRangeValue(data.left); + } + if (data.right !== undefined) { + this.right = setRangeValue(data.right); + } + if (data.top !== undefined) { + this.top = setRangeValue(data.top); + } + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Options/Classes/SplitFactor.js + +class SplitFactor extends ValueWithRandom { + constructor() { + super(); + this.value = 3; + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Options/Classes/SplitRate.js + +class SplitRate extends ValueWithRandom { + constructor() { + super(); + this.value = { + min: 4, + max: 9 + }; + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Options/Classes/Split.js + + + +class Split { + constructor() { + this.count = 1; + this.factor = new SplitFactor(); + this.rate = new SplitRate(); + this.sizeOffset = true; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.count !== undefined) { + this.count = data.count; + } + this.factor.load(data.factor); + this.rate.load(data.rate); + this.particles = executeOnSingleOrMultiple(data.particles, particles => { + return deepExtend({}, particles); + }); + if (data.sizeOffset !== undefined) { + this.sizeOffset = data.sizeOffset; + } + if (data.colorOffset) { + this.colorOffset = this.colorOffset ?? {}; + if (data.colorOffset.h !== undefined) { + this.colorOffset.h = data.colorOffset.h; + } + if (data.colorOffset.s !== undefined) { + this.colorOffset.s = data.colorOffset.s; + } + if (data.colorOffset.l !== undefined) { + this.colorOffset.l = data.colorOffset.l; + } + } + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Options/Classes/Destroy.js + + +class Destroy { + constructor() { + this.bounds = new DestroyBounds(); + this.mode = "none"; + this.split = new Split(); + } + load(data) { + if (!data) { + return; + } + if (data.mode) { + this.mode = data.mode; + } + if (data.bounds) { + this.bounds.load(data.bounds); + } + this.split.load(data.split); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/ColorAnimation.js + +class ColorAnimation { + constructor() { + this.count = 0; + this.enable = false; + this.offset = 0; + this.speed = 1; + this.delay = 0; + this.decay = 0; + this.sync = true; + } + load(data) { + if (!data) { + return; + } + if (data.count !== undefined) { + this.count = setRangeValue(data.count); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.offset !== undefined) { + this.offset = setRangeValue(data.offset); + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + if (data.decay !== undefined) { + this.decay = setRangeValue(data.decay); + } + if (data.delay !== undefined) { + this.delay = setRangeValue(data.delay); + } + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/HslAnimation.js + +class HslAnimation { + constructor() { + this.h = new ColorAnimation(); + this.s = new ColorAnimation(); + this.l = new ColorAnimation(); + } + load(data) { + if (!data) { + return; + } + this.h.load(data.h); + this.s.load(data.s); + this.l.load(data.l); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/AnimatableColor.js + + + +class AnimatableColor extends OptionsColor { + constructor() { + super(); + this.animation = new HslAnimation(); + } + static create(source, data) { + const color = new AnimatableColor(); + color.load(source); + if (data !== undefined) { + if (isString(data) || isArray(data)) { + color.load({ + value: data + }); + } else { + color.load(data); + } + } + return color; + } + load(data) { + super.load(data); + if (!data) { + return; + } + const colorAnimation = data.animation; + if (colorAnimation !== undefined) { + if (colorAnimation.enable !== undefined) { + this.animation.h.load(colorAnimation); + } else { + this.animation.load(data.animation); + } + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js +class CollisionsAbsorb { + constructor() { + this.speed = 2; + } + load(data) { + if (!data) { + return; + } + if (data.speed !== undefined) { + this.speed = data.speed; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js +class CollisionsOverlap { + constructor() { + this.enable = true; + this.retries = 0; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.retries !== undefined) { + this.retries = data.retries; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js + +class ParticlesBounceFactor extends ValueWithRandom { + constructor() { + super(); + this.random.minimumValue = 0.1; + this.value = 1; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js + +class ParticlesBounce { + constructor() { + this.horizontal = new ParticlesBounceFactor(); + this.vertical = new ParticlesBounceFactor(); + } + load(data) { + if (!data) { + return; + } + this.horizontal.load(data.horizontal); + this.vertical.load(data.vertical); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Collisions/Collisions.js + + + + +class Collisions { + constructor() { + this.absorb = new CollisionsAbsorb(); + this.bounce = new ParticlesBounce(); + this.enable = false; + this.maxSpeed = 50; + this.mode = "bounce"; + this.overlap = new CollisionsOverlap(); + } + load(data) { + if (!data) { + return; + } + this.absorb.load(data.absorb); + this.bounce.load(data.bounce); + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.maxSpeed !== undefined) { + this.maxSpeed = setRangeValue(data.maxSpeed); + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + this.overlap.load(data.overlap); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveAngle.js + +class MoveAngle { + constructor() { + this.offset = 0; + this.value = 90; + } + load(data) { + if (!data) { + return; + } + if (data.offset !== undefined) { + this.offset = setRangeValue(data.offset); + } + if (data.value !== undefined) { + this.value = setRangeValue(data.value); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveAttract.js + +class MoveAttract { + constructor() { + this.distance = 200; + this.enable = false; + this.rotate = { + x: 3000, + y: 3000 + }; + } + get rotateX() { + return this.rotate.x; + } + set rotateX(value) { + this.rotate.x = value; + } + get rotateY() { + return this.rotate.y; + } + set rotateY(value) { + this.rotate.y = value; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = setRangeValue(data.distance); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + const rotateX = data.rotate?.x ?? data.rotateX; + if (rotateX !== undefined) { + this.rotate.x = rotateX; + } + const rotateY = data.rotate?.y ?? data.rotateY; + if (rotateY !== undefined) { + this.rotate.y = rotateY; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveCenter.js +class MoveCenter { + constructor() { + this.x = 50; + this.y = 50; + this.mode = "percent"; + this.radius = 0; + } + load(data) { + if (!data) { + return; + } + if (data.x !== undefined) { + this.x = data.x; + } + if (data.y !== undefined) { + this.y = data.y; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.radius !== undefined) { + this.radius = data.radius; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveGravity.js + +class MoveGravity { + constructor() { + this.acceleration = 9.81; + this.enable = false; + this.inverse = false; + this.maxSpeed = 50; + } + load(data) { + if (!data) { + return; + } + if (data.acceleration !== undefined) { + this.acceleration = setRangeValue(data.acceleration); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.inverse !== undefined) { + this.inverse = data.inverse; + } + if (data.maxSpeed !== undefined) { + this.maxSpeed = setRangeValue(data.maxSpeed); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/Path/MovePath.js + + +class MovePath { + constructor() { + this.clamp = true; + this.delay = new ValueWithRandom(); + this.enable = false; + this.options = {}; + } + load(data) { + if (!data) { + return; + } + if (data.clamp !== undefined) { + this.clamp = data.clamp; + } + this.delay.load(data.delay); + if (data.enable !== undefined) { + this.enable = data.enable; + } + this.generator = data.generator; + if (data.options) { + this.options = deepExtend(this.options, data.options); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveTrailFill.js + +class MoveTrailFill { + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.image !== undefined) { + this.image = data.image; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/MoveTrail.js + +class MoveTrail { + constructor() { + this.enable = false; + this.length = 10; + this.fill = new MoveTrailFill(); + } + get fillColor() { + return this.fill.color; + } + set fillColor(value) { + this.fill.load({ + color: value + }); + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.fill !== undefined || data.fillColor !== undefined) { + this.fill.load(data.fill || { + color: data.fillColor + }); + } + if (data.length !== undefined) { + this.length = data.length; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/OutModes.js +class OutModes { + constructor() { + this.default = "out"; + } + load(data) { + if (!data) { + return; + } + if (data.default !== undefined) { + this.default = data.default; + } + this.bottom = data.bottom ?? data.default; + this.left = data.left ?? data.default; + this.right = data.right ?? data.default; + this.top = data.top ?? data.default; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/Spin.js + + +class Spin { + constructor() { + this.acceleration = 0; + this.enable = false; + } + load(data) { + if (!data) { + return; + } + if (data.acceleration !== undefined) { + this.acceleration = setRangeValue(data.acceleration); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.position) { + this.position = deepExtend({}, data.position); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Move/Move.js + + + + + + + + + + +class Move { + constructor() { + this.angle = new MoveAngle(); + this.attract = new MoveAttract(); + this.center = new MoveCenter(); + this.decay = 0; + this.distance = {}; + this.direction = "none"; + this.drift = 0; + this.enable = false; + this.gravity = new MoveGravity(); + this.path = new MovePath(); + this.outModes = new OutModes(); + this.random = false; + this.size = false; + this.speed = 2; + this.spin = new Spin(); + this.straight = false; + this.trail = new MoveTrail(); + this.vibrate = false; + this.warp = false; + } + get bounce() { + return this.collisions; + } + set bounce(value) { + this.collisions = value; + } + get collisions() { + return false; + } + set collisions(_) {} + get noise() { + return this.path; + } + set noise(value) { + this.path = value; + } + get outMode() { + return this.outModes.default; + } + set outMode(value) { + this.outModes.default = value; + } + get out_mode() { + return this.outMode; + } + set out_mode(value) { + this.outMode = value; + } + load(data) { + if (!data) { + return; + } + this.angle.load(isNumber(data.angle) ? { + value: data.angle + } : data.angle); + this.attract.load(data.attract); + this.center.load(data.center); + if (data.decay !== undefined) { + this.decay = setRangeValue(data.decay); + } + if (data.direction !== undefined) { + this.direction = data.direction; + } + if (data.distance !== undefined) { + this.distance = isNumber(data.distance) ? { + horizontal: data.distance, + vertical: data.distance + } : { + ...data.distance + }; + } + if (data.drift !== undefined) { + this.drift = setRangeValue(data.drift); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + this.gravity.load(data.gravity); + const outModes = data.outModes ?? data.outMode ?? data.out_mode; + if (outModes !== undefined) { + if (isObject(outModes)) { + this.outModes.load(outModes); + } else { + this.outModes.load({ + default: outModes + }); + } + } + this.path.load(data.path ?? data.noise); + if (data.random !== undefined) { + this.random = data.random; + } + if (data.size !== undefined) { + this.size = data.size; + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + this.spin.load(data.spin); + if (data.straight !== undefined) { + this.straight = data.straight; + } + this.trail.load(data.trail); + if (data.vibrate !== undefined) { + this.vibrate = data.vibrate; + } + if (data.warp !== undefined) { + this.warp = data.warp; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js + +class OpacityAnimation extends RangedAnimationOptions { + constructor() { + super(); + this.destroy = "none"; + this.speed = 2; + } + get opacity_min() { + return this.minimumValue; + } + set opacity_min(value) { + this.minimumValue = value; + } + load(data) { + if (data?.opacity_min !== undefined && data.minimumValue === undefined) { + data.minimumValue = data.opacity_min; + } + super.load(data); + if (!data) { + return; + } + if (data.destroy !== undefined) { + this.destroy = data.destroy; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Opacity/Opacity.js + + + +class Opacity extends ValueWithRandom { + constructor() { + super(); + this.animation = new OpacityAnimation(); + this.random.minimumValue = 0.1; + this.value = 1; + } + get anim() { + return this.animation; + } + set anim(value) { + this.animation = value; + } + load(data) { + if (!data) { + return; + } + super.load(data); + const animation = data.animation ?? data.anim; + if (animation !== undefined) { + this.animation.load(animation); + this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Number/ParticlesDensity.js +class ParticlesDensity { + constructor() { + this.enable = false; + this.width = 1920; + this.height = 1080; + } + get area() { + return this.width; + } + set area(value) { + this.width = value; + } + get factor() { + return this.height; + } + set factor(value) { + this.height = value; + } + get value_area() { + return this.area; + } + set value_area(value) { + this.area = value; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + const width = data.width ?? data.area ?? data.value_area; + if (width !== undefined) { + this.width = width; + } + const height = data.height ?? data.factor; + if (height !== undefined) { + this.height = height; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Number/ParticlesNumber.js + +class ParticlesNumber { + constructor() { + this.density = new ParticlesDensity(); + this.limit = 0; + this.value = 0; + } + get max() { + return this.limit; + } + set max(value) { + this.limit = value; + } + load(data) { + if (!data) { + return; + } + this.density.load(data.density); + const limit = data.limit ?? data.max; + if (limit !== undefined) { + this.limit = limit; + } + if (data.value !== undefined) { + this.value = data.value; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Shadow.js + +class Shadow { + constructor() { + this.blur = 0; + this.color = new OptionsColor(); + this.enable = false; + this.offset = { + x: 0, + y: 0 + }; + this.color.value = "#000"; + } + load(data) { + if (!data) { + return; + } + if (data.blur !== undefined) { + this.blur = data.blur; + } + this.color = OptionsColor.create(this.color, data.color); + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.offset === undefined) { + return; + } + if (data.offset.x !== undefined) { + this.offset.x = data.offset.x; + } + if (data.offset.y !== undefined) { + this.offset.y = data.offset.y; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Shape/Shape.js + +const charKey = "character", + charAltKey = "char", + imageKey = "image", + imageAltKey = "images", + polygonKey = "polygon", + polygonAltKey = "star"; +class Shape { + constructor() { + this.loadShape = (item, mainKey, altKey, altOverride) => { + if (!item) { + return; + } + const itemIsArray = isArray(item), + emptyValue = itemIsArray ? [] : {}, + mainDifferentValues = itemIsArray !== isArray(this.options[mainKey]), + altDifferentValues = itemIsArray !== isArray(this.options[altKey]); + if (mainDifferentValues) { + this.options[mainKey] = emptyValue; + } + if (altDifferentValues && altOverride) { + this.options[altKey] = emptyValue; + } + this.options[mainKey] = deepExtend(this.options[mainKey] ?? emptyValue, item); + if (!this.options[altKey] || altOverride) { + this.options[altKey] = deepExtend(this.options[altKey] ?? emptyValue, item); + } + }; + this.close = true; + this.fill = true; + this.options = {}; + this.type = "circle"; + } + get character() { + return this.options[charKey] ?? this.options[charAltKey]; + } + set character(value) { + this.options[charAltKey] = this.options[charKey] = value; + } + get custom() { + return this.options; + } + set custom(value) { + this.options = value; + } + get image() { + return this.options[imageKey] ?? this.options[imageAltKey]; + } + set image(value) { + this.options[imageAltKey] = this.options[imageKey] = value; + } + get images() { + return this.image; + } + set images(value) { + this.image = value; + } + get polygon() { + return this.options[polygonKey] ?? this.options[polygonAltKey]; + } + set polygon(value) { + this.options[polygonAltKey] = this.options[polygonKey] = value; + } + get stroke() { + return []; + } + set stroke(_value) {} + load(data) { + if (!data) { + return; + } + const options = data.options ?? data.custom; + if (options !== undefined) { + for (const shape in options) { + const item = options[shape]; + if (item) { + this.options[shape] = deepExtend(this.options[shape] ?? {}, item); + } + } + } + this.loadShape(data.character, charKey, charAltKey, true); + this.loadShape(data.polygon, polygonKey, polygonAltKey, false); + this.loadShape(data.image ?? data.images, imageKey, imageAltKey, true); + if (data.close !== undefined) { + this.close = data.close; + } + if (data.fill !== undefined) { + this.fill = data.fill; + } + if (data.type !== undefined) { + this.type = data.type; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Size/SizeAnimation.js + +class SizeAnimation extends RangedAnimationOptions { + constructor() { + super(); + this.destroy = "none"; + this.speed = 5; + } + get size_min() { + return this.minimumValue; + } + set size_min(value) { + this.minimumValue = value; + } + load(data) { + if (data?.size_min !== undefined && data.minimumValue === undefined) { + data.minimumValue = data.size_min; + } + super.load(data); + if (!data) { + return; + } + if (data.destroy !== undefined) { + this.destroy = data.destroy; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Size/Size.js + + + +class Size extends ValueWithRandom { + constructor() { + super(); + this.animation = new SizeAnimation(); + this.random.minimumValue = 1; + this.value = 3; + } + get anim() { + return this.animation; + } + set anim(value) { + this.animation = value; + } + load(data) { + super.load(data); + if (!data) { + return; + } + const animation = data.animation ?? data.anim; + if (animation !== undefined) { + this.animation.load(animation); + this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/Stroke.js + + +class Stroke { + constructor() { + this.width = 0; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = AnimatableColor.create(this.color, data.color); + } + if (data.width !== undefined) { + this.width = setRangeValue(data.width); + } + if (data.opacity !== undefined) { + this.opacity = setRangeValue(data.opacity); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/ZIndex/ZIndex.js + +class ZIndex extends ValueWithRandom { + constructor() { + super(); + this.opacityRate = 1; + this.sizeRate = 1; + this.velocityRate = 1; + } + load(data) { + super.load(data); + if (!data) { + return; + } + if (data.opacityRate !== undefined) { + this.opacityRate = data.opacityRate; + } + if (data.sizeRate !== undefined) { + this.sizeRate = data.sizeRate; + } + if (data.velocityRate !== undefined) { + this.velocityRate = data.velocityRate; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Particles/ParticlesOptions.js + + + + + + + + + + + + +class ParticlesOptions { + constructor(engine, container) { + this._engine = engine; + this._container = container; + this.bounce = new ParticlesBounce(); + this.collisions = new Collisions(); + this.color = new AnimatableColor(); + this.color.value = "#fff"; + this.groups = {}; + this.move = new Move(); + this.number = new ParticlesNumber(); + this.opacity = new Opacity(); + this.reduceDuplicates = false; + this.shadow = new Shadow(); + this.shape = new Shape(); + this.size = new Size(); + this.stroke = new Stroke(); + this.zIndex = new ZIndex(); + } + load(data) { + if (!data) { + return; + } + this.bounce.load(data.bounce); + this.color.load(AnimatableColor.create(this.color, data.color)); + if (data.groups !== undefined) { + for (const group in data.groups) { + const item = data.groups[group]; + if (item !== undefined) { + this.groups[group] = deepExtend(this.groups[group] ?? {}, item); + } + } + } + this.move.load(data.move); + this.number.load(data.number); + this.opacity.load(data.opacity); + if (data.reduceDuplicates !== undefined) { + this.reduceDuplicates = data.reduceDuplicates; + } + this.shape.load(data.shape); + this.size.load(data.size); + this.shadow.load(data.shadow); + this.zIndex.load(data.zIndex); + const collisions = data.move?.collisions ?? data.move?.bounce; + if (collisions !== undefined) { + this.collisions.enable = collisions; + } + this.collisions.load(data.collisions); + if (data.interactivity !== undefined) { + this.interactivity = deepExtend({}, data.interactivity); + } + const strokeToLoad = data.stroke ?? data.shape?.stroke; + if (strokeToLoad) { + this.stroke = executeOnSingleOrMultiple(strokeToLoad, t => { + const tmp = new Stroke(); + tmp.load(t); + return tmp; + }); + } + if (this._container) { + const updaters = this._engine.plugins.updaters.get(this._container); + if (updaters) { + for (const updater of updaters) { + if (updater.loadOptions) { + updater.loadOptions(this, data); + } + } + } + const interactors = this._engine.plugins.interactors.get(this._container); + if (interactors) { + for (const interactor of interactors) { + if (interactor.loadParticlesOptions) { + interactor.loadParticlesOptions(this, data); + } + } + } + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/OptionsUtils.js + +function loadOptions(options, ...sourceOptionsArr) { + for (const sourceOptions of sourceOptionsArr) { + options.load(sourceOptions); + } +} +function loadParticlesOptions(engine, container, ...sourceOptionsArr) { + const options = new ParticlesOptions(engine, container); + loadOptions(options, ...sourceOptionsArr); + return options; +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/Utils.js + +function addSplitParticle(engine, container, parent, splitParticlesOptions) { + const destroyOptions = parent.options.destroy; + if (!destroyOptions) { + return; + } + const splitOptions = destroyOptions.split, + options = loadParticlesOptions(engine, container, parent.options), + factor = getValue(splitOptions.factor), + parentColor = parent.getFillColor(); + if (splitOptions.color) { + options.color.load(splitOptions.color); + } else if (splitOptions.colorOffset && parentColor) { + options.color.load({ + value: { + hsl: { + h: parentColor.h + getRangeValue(splitOptions.colorOffset.h ?? 0), + s: parentColor.s + getRangeValue(splitOptions.colorOffset.s ?? 0), + l: parentColor.l + getRangeValue(splitOptions.colorOffset.l ?? 0) + } + } + }); + } else { + options.color.load({ + value: { + hsl: parent.getFillColor() + } + }); + } + options.move.load({ + center: { + x: parent.position.x, + y: parent.position.y, + mode: "precise" + } + }); + if (isNumber(options.size.value)) { + options.size.value /= factor; + } else { + options.size.value.min /= factor; + options.size.value.max /= factor; + } + options.load(splitParticlesOptions); + const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0, + position = { + x: parent.position.x + randomInRange(offset), + y: parent.position.y + randomInRange(offset) + }; + return container.particles.addParticle(position, options, parent.group, particle => { + if (particle.size.value < 0.5) { + return false; + } + particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length)); + particle.splitCount = (parent.splitCount ?? 0) + 1; + particle.unbreakable = true; + setTimeout(() => { + particle.unbreakable = false; + }, 500); + return true; + }); +} +function split(engine, container, particle) { + const destroyOptions = particle.options.destroy; + if (!destroyOptions) { + return; + } + const splitOptions = destroyOptions.split; + if (splitOptions.count >= 0 && (particle.splitCount === undefined || particle.splitCount++ > splitOptions.count)) { + return; + } + const rate = getValue(splitOptions.rate), + particlesSplitOptions = itemFromSingleOrMultiple(splitOptions.particles); + for (let i = 0; i < rate; i++) { + addSplitParticle(engine, container, particle, particlesSplitOptions); + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/DestroyUpdater.js + + + +class DestroyUpdater { + constructor(engine, container) { + this.engine = engine; + this.container = container; + } + init(particle) { + const container = this.container, + particlesOptions = particle.options, + destroyOptions = particlesOptions.destroy; + if (!destroyOptions) { + return; + } + particle.splitCount = 0; + const destroyBoundsOptions = destroyOptions.bounds; + if (!particle.destroyBounds) { + particle.destroyBounds = {}; + } + const { + bottom, + left, + right, + top + } = destroyBoundsOptions, + { + destroyBounds + } = particle, + canvasSize = container.canvas.size; + if (bottom) { + destroyBounds.bottom = getRangeValue(bottom) * canvasSize.height / 100; + } + if (left) { + destroyBounds.left = getRangeValue(left) * canvasSize.width / 100; + } + if (right) { + destroyBounds.right = getRangeValue(right) * canvasSize.width / 100; + } + if (top) { + destroyBounds.top = getRangeValue(top) * canvasSize.height / 100; + } + } + isEnabled(particle) { + return !particle.destroyed; + } + loadOptions(options, ...sources) { + if (!options.destroy) { + options.destroy = new Destroy(); + } + for (const source of sources) { + options.destroy.load(source?.destroy); + } + } + particleDestroyed(particle, override) { + if (override) { + return; + } + const destroyOptions = particle.options.destroy; + if (destroyOptions && destroyOptions.mode === "split") { + split(this.engine, this.container, particle); + } + } + update(particle) { + if (!this.isEnabled(particle)) { + return; + } + const position = particle.getPosition(), + bounds = particle.destroyBounds; + if (!bounds) { + return; + } + if (bounds.bottom !== undefined && position.y >= bounds.bottom || bounds.left !== undefined && position.x <= bounds.left || bounds.right !== undefined && position.x >= bounds.right || bounds.top !== undefined && position.y <= bounds.top) { + particle.destroy(); + } + } +} +;// CONCATENATED MODULE: ../../updaters/destroy/dist/esm/index.js + +async function loadDestroyUpdater(engine, refresh = true) { + await engine.addParticleUpdater("destroy", container => new DestroyUpdater(engine, container), refresh); +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Shapes/Circle/CircleShape.js + +class CircleShape { + randomPosition(position, size, fill) { + const generateTheta = (x, y) => { + const u = getRandom() / 4.0, + theta = Math.atan(y / x * Math.tan(2 * Math.PI * u)), + v = getRandom(); + if (v < 0.25) { + return theta; + } else if (v < 0.5) { + return Math.PI - theta; + } else if (v < 0.75) { + return Math.PI + theta; + } else { + return -theta; + } + }, + radius = (x, y, theta) => x * y / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2), + [a, b] = [size.width / 2, size.height / 2], + randomTheta = generateTheta(a, b), + maxRadius = radius(a, b, randomTheta), + randomRadius = fill ? maxRadius * Math.sqrt(getRandom()) : maxRadius; + return { + x: position.x + randomRadius * Math.cos(randomTheta), + y: position.y + randomRadius * Math.sin(randomTheta) + }; + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Options/Classes/EmitterLife.js + +class EmitterLife { + constructor() { + this.wait = false; + } + load(data) { + if (!data) { + return; + } + if (data.count !== undefined) { + this.count = data.count; + } + if (data.delay !== undefined) { + this.delay = setRangeValue(data.delay); + } + if (data.duration !== undefined) { + this.duration = setRangeValue(data.duration); + } + if (data.wait !== undefined) { + this.wait = data.wait; + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Options/Classes/EmitterRate.js + +class EmitterRate { + constructor() { + this.quantity = 1; + this.delay = 0.1; + } + load(data) { + if (data === undefined) { + return; + } + if (data.quantity !== undefined) { + this.quantity = setRangeValue(data.quantity); + } + if (data.delay !== undefined) { + this.delay = setRangeValue(data.delay); + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Options/Classes/EmitterSize.js +class EmitterSize { + constructor() { + this.mode = "percent"; + this.height = 0; + this.width = 0; + } + load(data) { + if (data === undefined) { + return; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.height !== undefined) { + this.height = data.height; + } + if (data.width !== undefined) { + this.width = data.width; + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Options/Classes/Emitter.js + + + + +class Emitter { + constructor() { + this.autoPlay = true; + this.fill = true; + this.life = new EmitterLife(); + this.rate = new EmitterRate(); + this.shape = "square"; + this.startCount = 0; + } + load(data) { + if (!data) { + return; + } + if (data.autoPlay !== undefined) { + this.autoPlay = data.autoPlay; + } + if (data.size !== undefined) { + if (!this.size) { + this.size = new EmitterSize(); + } + this.size.load(data.size); + } + if (data.direction !== undefined) { + this.direction = data.direction; + } + this.domId = data.domId; + if (data.fill !== undefined) { + this.fill = data.fill; + } + this.life.load(data.life); + this.name = data.name; + this.particles = executeOnSingleOrMultiple(data.particles, particles => { + return deepExtend({}, particles); + }); + this.rate.load(data.rate); + if (data.shape !== undefined) { + this.shape = data.shape; + } + if (data.position !== undefined) { + this.position = {}; + if (data.position.x !== undefined) { + this.position.x = setRangeValue(data.position.x); + } + if (data.position.y !== undefined) { + this.position.y = setRangeValue(data.position.y); + } + } + if (data.spawnColor !== undefined) { + if (this.spawnColor === undefined) { + this.spawnColor = new AnimatableColor(); + } + this.spawnColor.load(data.spawnColor); + } + if (data.startCount !== undefined) { + this.startCount = data.startCount; + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/EmitterInstance.js + + + +class EmitterInstance { + constructor(engine, emitters, container, options, position) { + this.emitters = emitters; + this.container = container; + this._calcPosition = () => { + return calcPositionOrRandomFromSizeRanged({ + size: this.container.canvas.size, + position: this.options.position + }); + }; + this._destroy = () => { + this.emitters.removeEmitter(this); + this._engine.dispatchEvent("emitterDestroyed", { + container: this.container, + data: { + emitter: this + } + }); + }; + this._emit = () => { + if (this._paused) { + return; + } + const quantity = getRangeValue(this.options.rate.quantity); + this._emitParticles(quantity); + }; + this._emitParticles = quantity => { + const position = this.getPosition(), + size = this.getSize(), + singleParticlesOptions = itemFromSingleOrMultiple(this._particlesOptions); + for (let i = 0; i < quantity; i++) { + const particlesOptions = deepExtend({}, singleParticlesOptions); + if (this.spawnColor) { + const hslAnimation = this.options.spawnColor?.animation; + if (hslAnimation) { + this.spawnColor.h = this._setColorAnimation(hslAnimation.h, this.spawnColor.h, 360); + this.spawnColor.s = this._setColorAnimation(hslAnimation.s, this.spawnColor.s, 100); + this.spawnColor.l = this._setColorAnimation(hslAnimation.l, this.spawnColor.l, 100); + } + if (!particlesOptions.color) { + particlesOptions.color = { + value: this.spawnColor + }; + } else { + particlesOptions.color.value = this.spawnColor; + } + } + if (!position) { + return; + } + const pPosition = this._shape?.randomPosition(position, size, this.fill) ?? position; + this.container.particles.addParticle(pPosition, particlesOptions); + } + }; + this._prepareToDie = () => { + if (this._paused) { + return; + } + const duration = this.options.life?.duration !== undefined ? getRangeValue(this.options.life.duration) : undefined; + if (this.container.retina.reduceFactor && (this._lifeCount > 0 || this._immortal) && duration !== undefined && duration > 0) { + this._duration = duration * 1000; + } + }; + this._setColorAnimation = (animation, initValue, maxValue) => { + const container = this.container; + if (!animation.enable) { + return initValue; + } + const colorOffset = randomInRange(animation.offset), + delay = getRangeValue(this.options.rate.delay), + emitFactor = 1000 * delay / container.retina.reduceFactor, + colorSpeed = getRangeValue(animation.speed ?? 0); + return (initValue + colorSpeed * container.fpsLimit / emitFactor + colorOffset * 3.6) % maxValue; + }; + this._engine = engine; + this._currentDuration = 0; + this._currentEmitDelay = 0; + this._currentSpawnDelay = 0; + this._initialPosition = position; + if (options instanceof Emitter) { + this.options = options; + } else { + this.options = new Emitter(); + this.options.load(options); + } + this._spawnDelay = getRangeValue(this.options.life.delay ?? 0) * 1000 / this.container.retina.reduceFactor; + this.position = this._initialPosition ?? this._calcPosition(); + this.name = this.options.name; + this._shape = this._engine.emitterShapeManager?.getShape(this.options.shape); + this.fill = this.options.fill; + this._firstSpawn = !this.options.life.wait; + this._startParticlesAdded = false; + let particlesOptions = deepExtend({}, this.options.particles); + particlesOptions ??= {}; + particlesOptions.move ??= {}; + particlesOptions.move.direction ??= this.options.direction; + if (this.options.spawnColor) { + this.spawnColor = rangeColorToHsl(this.options.spawnColor); + } + this._paused = !this.options.autoPlay; + this._particlesOptions = particlesOptions; + this.size = this.options.size ?? (() => { + const size = new EmitterSize(); + size.load({ + height: 0, + mode: "percent", + width: 0 + }); + return size; + })(); + this._lifeCount = this.options.life.count ?? -1; + this._immortal = this._lifeCount <= 0; + this._engine.dispatchEvent("emitterCreated", { + container, + data: { + emitter: this + } + }); + this.play(); + } + externalPause() { + this._paused = true; + this.pause(); + } + externalPlay() { + this._paused = false; + this.play(); + } + getPosition() { + if (this.options.domId) { + const container = this.container, + element = document.getElementById(this.options.domId); + if (element) { + const elRect = element.getBoundingClientRect(); + return { + x: (elRect.x + elRect.width / 2) * container.retina.pixelRatio, + y: (elRect.y + elRect.height / 2) * container.retina.pixelRatio + }; + } + } + return this.position; + } + getSize() { + const container = this.container; + if (this.options.domId) { + const element = document.getElementById(this.options.domId); + if (element) { + const elRect = element.getBoundingClientRect(); + return { + width: elRect.width * container.retina.pixelRatio, + height: elRect.height * container.retina.pixelRatio + }; + } + } + return getSize(this.size, container.canvas.size); + } + pause() { + if (this._paused) { + return; + } + delete this._emitDelay; + } + play() { + if (this._paused) { + return; + } + if (!(this.container.retina.reduceFactor && (this._lifeCount > 0 || this._immortal || !this.options.life.count) && (this._firstSpawn || this._currentSpawnDelay >= (this._spawnDelay ?? 0)))) { + return; + } + if (this._emitDelay === undefined) { + const delay = getRangeValue(this.options.rate.delay); + this._emitDelay = 1000 * delay / this.container.retina.reduceFactor; + } + if (this._lifeCount > 0 || this._immortal) { + this._prepareToDie(); + } + } + resize() { + const initialPosition = this._initialPosition; + this.position = initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin) ? initialPosition : this._calcPosition(); + } + update(delta) { + if (this._paused) { + return; + } + if (this._firstSpawn) { + this._firstSpawn = false; + this._currentSpawnDelay = this._spawnDelay ?? 0; + this._currentEmitDelay = this._emitDelay ?? 0; + } + if (!this._startParticlesAdded) { + this._startParticlesAdded = true; + this._emitParticles(this.options.startCount); + } + if (this._duration !== undefined) { + this._currentDuration += delta.value; + if (this._currentDuration >= this._duration) { + this.pause(); + if (this._spawnDelay !== undefined) { + delete this._spawnDelay; + } + if (!this._immortal) { + this._lifeCount--; + } + if (this._lifeCount > 0 || this._immortal) { + this.position = this._calcPosition(); + this._spawnDelay = getRangeValue(this.options.life.delay ?? 0) * 1000 / this.container.retina.reduceFactor; + } else { + this._destroy(); + } + this._currentDuration -= this._duration; + delete this._duration; + } + } + if (this._spawnDelay !== undefined) { + this._currentSpawnDelay += delta.value; + if (this._currentSpawnDelay >= this._spawnDelay) { + this._engine.dispatchEvent("emitterPlay", { + container: this.container + }); + this.play(); + this._currentSpawnDelay -= this._currentSpawnDelay; + delete this._spawnDelay; + } + } + if (this._emitDelay !== undefined) { + this._currentEmitDelay += delta.value; + if (this._currentEmitDelay >= this._emitDelay) { + this._emit(); + this._currentEmitDelay -= this._emitDelay; + } + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Emitters.js + + + +class Emitters { + constructor(engine, container) { + this.container = container; + this._engine = engine; + this.array = []; + this.emitters = []; + this.interactivityEmitters = { + random: { + count: 1, + enable: false + }, + value: [] + }; + container.getEmitter = idxOrName => idxOrName === undefined || isNumber(idxOrName) ? this.array[idxOrName || 0] : this.array.find(t => t.name === idxOrName); + container.addEmitter = (options, position) => this.addEmitter(options, position); + container.removeEmitter = idxOrName => { + const emitter = container.getEmitter(idxOrName); + if (emitter) { + this.removeEmitter(emitter); + } + }; + container.playEmitter = idxOrName => { + const emitter = container.getEmitter(idxOrName); + if (emitter) { + emitter.externalPlay(); + } + }; + container.pauseEmitter = idxOrName => { + const emitter = container.getEmitter(idxOrName); + if (emitter) { + emitter.externalPause(); + } + }; + } + addEmitter(options, position) { + const emitterOptions = new Emitter(); + emitterOptions.load(options); + const emitter = new EmitterInstance(this._engine, this, this.container, emitterOptions, position); + this.array.push(emitter); + return emitter; + } + handleClickMode(mode) { + const emitterOptions = this.emitters, + modeEmitters = this.interactivityEmitters; + if (mode !== "emitter") { + return; + } + let emittersModeOptions; + if (modeEmitters && isArray(modeEmitters.value)) { + if (modeEmitters.value.length > 0 && modeEmitters.random.enable) { + emittersModeOptions = []; + const usedIndexes = []; + for (let i = 0; i < modeEmitters.random.count; i++) { + const idx = arrayRandomIndex(modeEmitters.value); + if (usedIndexes.includes(idx) && usedIndexes.length < modeEmitters.value.length) { + i--; + continue; + } + usedIndexes.push(idx); + emittersModeOptions.push(itemFromArray(modeEmitters.value, idx)); + } + } else { + emittersModeOptions = modeEmitters.value; + } + } else { + emittersModeOptions = modeEmitters?.value; + } + const emittersOptions = emittersModeOptions ?? emitterOptions, + ePosition = this.container.interactivity.mouse.clickPosition; + executeOnSingleOrMultiple(emittersOptions, emitter => { + this.addEmitter(emitter, ePosition); + }); + } + async init() { + this.emitters = this.container.actualOptions.emitters; + this.interactivityEmitters = this.container.actualOptions.interactivity.modes.emitters; + if (!this.emitters) { + return; + } + if (isArray(this.emitters)) { + for (const emitterOptions of this.emitters) { + this.addEmitter(emitterOptions); + } + } else { + this.addEmitter(this.emitters); + } + } + pause() { + for (const emitter of this.array) { + emitter.pause(); + } + } + play() { + for (const emitter of this.array) { + emitter.play(); + } + } + removeEmitter(emitter) { + const index = this.array.indexOf(emitter); + if (index >= 0) { + this.array.splice(index, 1); + } + } + resize() { + for (const emitter of this.array) { + emitter.resize(); + } + } + stop() { + this.array = []; + } + update(delta) { + for (const emitter of this.array) { + emitter.update(delta); + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/ShapeManager.js +const shapes = new Map(); +class ShapeManager { + constructor(engine) { + this._engine = engine; + } + addShape(name, drawer) { + if (!this.getShape(name)) { + shapes.set(name, drawer); + } + } + getShape(name) { + return shapes.get(name); + } + getSupportedShapes() { + return shapes.keys(); + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/Shapes/Square/SquareShape.js + +function randomSquareCoordinate(position, offset) { + return position + offset * (getRandom() - 0.5); +} +class SquareShape { + randomPosition(position, size, fill) { + if (fill) { + return { + x: randomSquareCoordinate(position.x, size.width), + y: randomSquareCoordinate(position.y, size.height) + }; + } else { + const halfW = size.width / 2, + halfH = size.height / 2, + side = Math.floor(getRandom() * 4), + v = (getRandom() - 0.5) * 2; + switch (side) { + case 0: + return { + x: position.x + v * halfW, + y: position.y - halfH + }; + case 1: + return { + x: position.x - halfW, + y: position.y + v * halfH + }; + case 2: + return { + x: position.x + v * halfW, + y: position.y + halfH + }; + case 3: + default: + return { + x: position.x + halfW, + y: position.y + v * halfH + }; + } + } + } +} +;// CONCATENATED MODULE: ../../plugins/emitters/dist/esm/index.js + + + + + + +class EmittersPlugin { + constructor(engine) { + this._engine = engine; + this.id = "emitters"; + } + getPlugin(container) { + return new Emitters(this._engine, container); + } + loadOptions(options, source) { + if (!this.needsPlugin(options) && !this.needsPlugin(source)) { + return; + } + if (source?.emitters) { + options.emitters = executeOnSingleOrMultiple(source.emitters, emitter => { + const tmp = new Emitter(); + tmp.load(emitter); + return tmp; + }); + } + const interactivityEmitters = source?.interactivity?.modes?.emitters; + if (interactivityEmitters) { + if (isArray(interactivityEmitters)) { + options.interactivity.modes.emitters = { + random: { + count: 1, + enable: true + }, + value: interactivityEmitters.map(s => { + const tmp = new Emitter(); + tmp.load(s); + return tmp; + }) + }; + } else { + const emitterMode = interactivityEmitters; + if (emitterMode.value !== undefined) { + if (isArray(emitterMode.value)) { + options.interactivity.modes.emitters = { + random: { + count: emitterMode.random.count ?? 1, + enable: emitterMode.random.enable ?? false + }, + value: emitterMode.value.map(s => { + const tmp = new Emitter(); + tmp.load(s); + return tmp; + }) + }; + } else { + const tmp = new Emitter(); + tmp.load(emitterMode.value); + options.interactivity.modes.emitters = { + random: { + count: emitterMode.random.count ?? 1, + enable: emitterMode.random.enable ?? false + }, + value: tmp + }; + } + } else { + const emitterOptions = options.interactivity.modes.emitters = { + random: { + count: 1, + enable: false + }, + value: new Emitter() + }; + emitterOptions.value.load(interactivityEmitters); + } + } + } + } + needsPlugin(options) { + if (!options) { + return false; + } + const emitters = options.emitters; + return isArray(emitters) && !!emitters.length || emitters !== undefined || !!options.interactivity?.events?.onClick?.mode && isInArray("emitter", options.interactivity.events.onClick.mode); + } +} +async function loadEmittersPlugin(engine, refresh = true) { + if (!engine.emitterShapeManager) { + engine.emitterShapeManager = new ShapeManager(engine); + } + if (!engine.addEmitterShape) { + engine.addEmitterShape = (name, shape) => { + engine.emitterShapeManager?.addShape(name, shape); + }; + } + const plugin = new EmittersPlugin(engine); + await engine.addPlugin(plugin, refresh); + engine.addEmitterShape("circle", new CircleShape()); + engine.addEmitterShape("square", new SquareShape()); +} + + + + +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/ExternalInteractorBase.js +class ExternalInteractorBase { + constructor(container) { + this.container = container; + this.type = "external"; + } +} +;// CONCATENATED MODULE: ../../interactions/external/trail/dist/esm/Options/Classes/Trail.js + +class Trail { + constructor() { + this.delay = 1; + this.pauseOnStop = false; + this.quantity = 1; + } + load(data) { + if (!data) { + return; + } + if (data.delay !== undefined) { + this.delay = data.delay; + } + if (data.quantity !== undefined) { + this.quantity = data.quantity; + } + if (data.particles !== undefined) { + this.particles = deepExtend({}, data.particles); + } + if (data.pauseOnStop !== undefined) { + this.pauseOnStop = data.pauseOnStop; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/trail/dist/esm/TrailMaker.js + + +class TrailMaker extends ExternalInteractorBase { + constructor(container) { + super(container); + this._delay = 0; + } + clear() {} + init() {} + async interact(delta) { + const container = this.container, + { + interactivity + } = container; + if (!container.retina.reduceFactor) { + return; + } + const options = container.actualOptions, + trailOptions = options.interactivity.modes.trail; + if (!trailOptions) { + return; + } + const optDelay = trailOptions.delay * 1000 / this.container.retina.reduceFactor; + if (this._delay < optDelay) { + this._delay += delta.value; + } + if (this._delay < optDelay) { + return; + } + const canEmit = !(trailOptions.pauseOnStop && (interactivity.mouse.position === this._lastPosition || interactivity.mouse.position?.x === this._lastPosition?.x && interactivity.mouse.position?.y === this._lastPosition?.y)); + const mousePos = container.interactivity.mouse.position; + if (mousePos) { + this._lastPosition = { + ...mousePos + }; + } else { + delete this._lastPosition; + } + if (canEmit) { + container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles); + } + this._delay -= optDelay; + } + isEnabled(particle) { + const container = this.container, + options = container.actualOptions, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? options.interactivity).events; + return mouse.clicking && mouse.inside && !!mouse.position && isInArray("trail", events.onClick.mode) || mouse.inside && !!mouse.position && isInArray("trail", events.onHover.mode); + } + loadModeOptions(options, ...sources) { + if (!options.trail) { + options.trail = new Trail(); + } + for (const source of sources) { + options.trail.load(source?.trail); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/trail/dist/esm/index.js + +async function loadExternalTrailInteraction(engine, refresh = true) { + await engine.addInteractor("externalTrail", container => new TrailMaker(container), refresh); +} + + +;// CONCATENATED MODULE: ../../updaters/roll/dist/esm/Utils.js + +function initParticle(particle) { + const rollOpt = particle.options.roll; + if (!rollOpt?.enable) { + particle.roll = { + enable: false, + horizontal: false, + vertical: false, + angle: 0, + speed: 0 + }; + return; + } + particle.roll = { + enable: rollOpt.enable, + horizontal: rollOpt.mode === "horizontal" || rollOpt.mode === "both", + vertical: rollOpt.mode === "vertical" || rollOpt.mode === "both", + angle: getRandom() * Math.PI * 2, + speed: getRangeValue(rollOpt.speed) / 360 + }; + if (rollOpt.backColor) { + particle.backColor = rangeColorToHsl(rollOpt.backColor); + } else if (rollOpt.darken.enable && rollOpt.enlighten.enable) { + const alterType = getRandom() >= 0.5 ? "darken" : "enlighten"; + particle.roll.alter = { + type: alterType, + value: getRangeValue(alterType === "darken" ? rollOpt.darken.value : rollOpt.enlighten.value) + }; + } else if (rollOpt.darken.enable) { + particle.roll.alter = { + type: "darken", + value: getRangeValue(rollOpt.darken.value) + }; + } else if (rollOpt.enlighten.enable) { + particle.roll.alter = { + type: "enlighten", + value: getRangeValue(rollOpt.enlighten.value) + }; + } +} +function updateRoll(particle, delta) { + const roll = particle.options.roll, + data = particle.roll; + if (!data || !roll?.enable) { + return; + } + const speed = data.speed * delta.factor, + max = 2 * Math.PI; + data.angle += speed; + if (data.angle > max) { + data.angle -= max; + } +} +;// CONCATENATED MODULE: ../../updaters/roll/dist/esm/Options/Classes/RollLight.js + +class RollLight { + constructor() { + this.enable = false; + this.value = 0; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.value !== undefined) { + this.value = setRangeValue(data.value); + } + } +} +;// CONCATENATED MODULE: ../../updaters/roll/dist/esm/Options/Classes/Roll.js + + +class Roll { + constructor() { + this.darken = new RollLight(); + this.enable = false; + this.enlighten = new RollLight(); + this.mode = "vertical"; + this.speed = 25; + } + load(data) { + if (!data) { + return; + } + if (data.backColor !== undefined) { + this.backColor = OptionsColor.create(this.backColor, data.backColor); + } + this.darken.load(data.darken); + if (data.enable !== undefined) { + this.enable = data.enable; + } + this.enlighten.load(data.enlighten); + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + } +} +;// CONCATENATED MODULE: ../../updaters/roll/dist/esm/RollUpdater.js + + +class RollUpdater { + getTransformValues(particle) { + const roll = particle.roll?.enable && particle.roll, + rollHorizontal = roll && roll.horizontal, + rollVertical = roll && roll.vertical; + return { + a: rollHorizontal ? Math.cos(roll.angle) : undefined, + d: rollVertical ? Math.sin(roll.angle) : undefined + }; + } + init(particle) { + initParticle(particle); + } + isEnabled(particle) { + const roll = particle.options.roll; + return !particle.destroyed && !particle.spawning && !!roll?.enable; + } + loadOptions(options, ...sources) { + if (!options.roll) { + options.roll = new Roll(); + } + for (const source of sources) { + options.roll.load(source?.roll); + } + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateRoll(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/roll/dist/esm/index.js + +async function loadRollUpdater(engine, refresh = true) { + await engine.addParticleUpdater("roll", () => new RollUpdater(), refresh); +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/CanvasUtils.js + +function drawLine(context, begin, end) { + context.beginPath(); + context.moveTo(begin.x, begin.y); + context.lineTo(end.x, end.y); + context.closePath(); +} +function drawTriangle(context, p1, p2, p3) { + context.beginPath(); + context.moveTo(p1.x, p1.y); + context.lineTo(p2.x, p2.y); + context.lineTo(p3.x, p3.y); + context.closePath(); +} +function paintBase(context, dimension, baseColor) { + context.fillStyle = baseColor ?? "rgba(0,0,0,0)"; + context.fillRect(0, 0, dimension.width, dimension.height); +} +function paintImage(context, dimension, image, opacity) { + if (!image) { + return; + } + context.globalAlpha = opacity; + context.drawImage(image, 0, 0, dimension.width, dimension.height); + context.globalAlpha = 1; +} +function clear(context, dimension) { + context.clearRect(0, 0, dimension.width, dimension.height); +} +function drawParticle(data) { + const { + container, + context, + particle, + delta, + colorStyles, + backgroundMask, + composite, + radius, + opacity, + shadow, + transform + } = data; + const pos = particle.getPosition(), + angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : 0), + rotateData = { + sin: Math.sin(angle), + cos: Math.cos(angle) + }, + transformData = { + a: rotateData.cos * (transform.a ?? 1), + b: rotateData.sin * (transform.b ?? 1), + c: -rotateData.sin * (transform.c ?? 1), + d: rotateData.cos * (transform.d ?? 1) + }; + context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y); + context.beginPath(); + if (backgroundMask) { + context.globalCompositeOperation = composite; + } + const shadowColor = particle.shadowColor; + if (shadow.enable && shadowColor) { + context.shadowBlur = shadow.blur; + context.shadowColor = getStyleFromRgb(shadowColor); + context.shadowOffsetX = shadow.offset.x; + context.shadowOffsetY = shadow.offset.y; + } + if (colorStyles.fill) { + context.fillStyle = colorStyles.fill; + } + const strokeWidth = particle.strokeWidth ?? 0; + context.lineWidth = strokeWidth; + if (colorStyles.stroke) { + context.strokeStyle = colorStyles.stroke; + } + drawShape(container, context, particle, radius, opacity, delta); + if (strokeWidth > 0) { + context.stroke(); + } + if (particle.close) { + context.closePath(); + } + if (particle.fill) { + context.fill(); + } + drawShapeAfterEffect(container, context, particle, radius, opacity, delta); + context.globalCompositeOperation = "source-over"; + context.setTransform(1, 0, 0, 1, 0, 0); +} +function drawShape(container, context, particle, radius, opacity, delta) { + if (!particle.shape) { + return; + } + const drawer = container.drawers.get(particle.shape); + if (!drawer) { + return; + } + drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio); +} +function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) { + if (!particle.shape) { + return; + } + const drawer = container.drawers.get(particle.shape); + if (!drawer || !drawer.afterEffect) { + return; + } + drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio); +} +function drawPlugin(context, plugin, delta) { + if (!plugin.draw) { + return; + } + plugin.draw(context, delta); +} +function drawParticlePlugin(context, plugin, particle, delta) { + if (!plugin.drawParticle) { + return; + } + plugin.drawParticle(context, particle, delta); +} +function alterHsl(color, type, value) { + return { + h: color.h, + s: color.s, + l: color.l + (type === "darken" ? -1 : 1) * value + }; +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Canvas.js + + + + +function setTransformValue(factor, newFactor, key) { + const newValue = newFactor[key]; + if (newValue !== undefined) { + factor[key] = (factor[key] ?? 1) * newValue; + } +} +class Canvas { + constructor(container) { + this.container = container; + this._applyPostDrawUpdaters = particle => { + for (const updater of this._postDrawUpdaters) { + updater.afterDraw && updater.afterDraw(particle); + } + }; + this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => { + for (const updater of this._preDrawUpdaters) { + if (updater.getColorStyles) { + const { + fill, + stroke + } = updater.getColorStyles(particle, ctx, radius, zOpacity); + if (fill) { + colorStyles.fill = fill; + } + if (stroke) { + colorStyles.stroke = stroke; + } + } + if (updater.getTransformValues) { + const updaterTransform = updater.getTransformValues(particle); + for (const key in updaterTransform) { + setTransformValue(transform, updaterTransform, key); + } + } + updater.beforeDraw && updater.beforeDraw(particle); + } + }; + this._applyResizePlugins = () => { + for (const plugin of this._resizePlugins) { + plugin.resize && plugin.resize(); + } + }; + this._getPluginParticleColors = particle => { + let fColor, sColor; + for (const plugin of this._colorPlugins) { + if (!fColor && plugin.particleFillColor) { + fColor = rangeColorToHsl(plugin.particleFillColor(particle)); + } + if (!sColor && plugin.particleStrokeColor) { + sColor = rangeColorToHsl(plugin.particleStrokeColor(particle)); + } + if (fColor && sColor) { + break; + } + } + return [fColor, sColor]; + }; + this._initCover = () => { + const options = this.container.actualOptions, + cover = options.backgroundMask.cover, + color = cover.color, + coverRgb = rangeColorToRgb(color); + if (coverRgb) { + const coverColor = { + ...coverRgb, + a: cover.opacity + }; + this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a); + } + }; + this._initStyle = () => { + const element = this.element, + options = this.container.actualOptions; + if (!element) { + return; + } + if (this._fullScreen) { + this._originalStyle = deepExtend({}, element.style); + this._setFullScreenStyle(); + } else { + this._resetOriginalStyle(); + } + for (const key in options.style) { + if (!key || !options.style) { + continue; + } + const value = options.style[key]; + if (!value) { + continue; + } + element.style.setProperty(key, value, "important"); + } + }; + this._initTrail = async () => { + const options = this.container.actualOptions, + trail = options.particles.move.trail, + trailFill = trail.fill; + if (!trail.enable) { + return; + } + if (trailFill.color) { + const fillColor = rangeColorToRgb(trailFill.color); + if (!fillColor) { + return; + } + const trail = options.particles.move.trail; + this._trailFill = { + color: { + ...fillColor + }, + opacity: 1 / trail.length + }; + } else { + await new Promise((resolve, reject) => { + if (!trailFill.image) { + return; + } + const img = document.createElement("img"); + img.addEventListener("load", () => { + this._trailFill = { + image: img, + opacity: 1 / trail.length + }; + resolve(); + }); + img.addEventListener("error", evt => { + reject(evt.error); + }); + img.src = trailFill.image; + }); + } + }; + this._paintBase = baseColor => { + this.draw(ctx => paintBase(ctx, this.size, baseColor)); + }; + this._paintImage = (image, opacity) => { + this.draw(ctx => paintImage(ctx, this.size, image, opacity)); + }; + this._repairStyle = () => { + const element = this.element; + if (!element) { + return; + } + this._safeMutationObserver(observer => observer.disconnect()); + this._initStyle(); + this.initBackground(); + this._safeMutationObserver(observer => observer.observe(element, { + attributes: true + })); + }; + this._resetOriginalStyle = () => { + const element = this.element, + originalStyle = this._originalStyle; + if (!(element && originalStyle)) { + return; + } + const style = element.style; + style.position = originalStyle.position; + style.zIndex = originalStyle.zIndex; + style.top = originalStyle.top; + style.left = originalStyle.left; + style.width = originalStyle.width; + style.height = originalStyle.height; + }; + this._safeMutationObserver = callback => { + if (!this._mutationObserver) { + return; + } + callback(this._mutationObserver); + }; + this._setFullScreenStyle = () => { + const element = this.element; + if (!element) { + return; + } + const priority = "important", + style = element.style; + style.setProperty("position", "fixed", priority); + style.setProperty("z-index", this.container.actualOptions.fullScreen.zIndex.toString(10), priority); + style.setProperty("top", "0", priority); + style.setProperty("left", "0", priority); + style.setProperty("width", "100%", priority); + style.setProperty("height", "100%", priority); + }; + this.size = { + height: 0, + width: 0 + }; + this._context = null; + this._generated = false; + this._preDrawUpdaters = []; + this._postDrawUpdaters = []; + this._resizePlugins = []; + this._colorPlugins = []; + } + get _fullScreen() { + return this.container.actualOptions.fullScreen.enable; + } + clear() { + const options = this.container.actualOptions, + trail = options.particles.move.trail, + trailFill = this._trailFill; + if (options.backgroundMask.enable) { + this.paint(); + } else if (trail.enable && trail.length > 0 && trailFill) { + if (trailFill.color) { + this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity)); + } else if (trailFill.image) { + this._paintImage(trailFill.image, trailFill.opacity); + } + } else { + this.draw(ctx => { + clear(ctx, this.size); + }); + } + } + destroy() { + this.stop(); + if (this._generated) { + const element = this.element; + element && element.remove(); + } else { + this._resetOriginalStyle(); + } + this._preDrawUpdaters = []; + this._postDrawUpdaters = []; + this._resizePlugins = []; + this._colorPlugins = []; + } + draw(cb) { + const ctx = this._context; + if (!ctx) { + return; + } + return cb(ctx); + } + drawParticle(particle, delta) { + if (particle.spawning || particle.destroyed) { + return; + } + const radius = particle.getRadius(); + if (radius <= 0) { + return; + } + const pfColor = particle.getFillColor(), + psColor = particle.getStrokeColor() ?? pfColor; + let [fColor, sColor] = this._getPluginParticleColors(particle); + if (!fColor) { + fColor = pfColor; + } + if (!sColor) { + sColor = psColor; + } + if (!fColor && !sColor) { + return; + } + this.draw(ctx => { + const container = this.container, + options = container.actualOptions, + zIndexOptions = particle.options.zIndex, + zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, + opacity = particle.bubble.opacity ?? particle.opacity?.value ?? 1, + strokeOpacity = particle.strokeOpacity ?? opacity, + zOpacity = opacity * zOpacityFactor, + zStrokeOpacity = strokeOpacity * zOpacityFactor, + transform = {}, + colorStyles = { + fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined + }; + colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill; + this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform); + drawParticle({ + container, + context: ctx, + particle, + delta, + colorStyles, + backgroundMask: options.backgroundMask.enable, + composite: options.backgroundMask.composite, + radius: radius * (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate, + opacity: zOpacity, + shadow: particle.options.shadow, + transform + }); + this._applyPostDrawUpdaters(particle); + }); + } + drawParticlePlugin(plugin, particle, delta) { + this.draw(ctx => drawParticlePlugin(ctx, plugin, particle, delta)); + } + drawPlugin(plugin, delta) { + this.draw(ctx => drawPlugin(ctx, plugin, delta)); + } + async init() { + this._safeMutationObserver(obs => obs.disconnect()); + this._mutationObserver = safeMutationObserver(records => { + for (const record of records) { + if (record.type === "attributes" && record.attributeName === "style") { + this._repairStyle(); + } + } + }); + this.resize(); + this._initStyle(); + this._initCover(); + try { + await this._initTrail(); + } catch (e) { + getLogger().error(e); + } + this.initBackground(); + this._safeMutationObserver(obs => { + if (!this.element) { + return; + } + obs.observe(this.element, { + attributes: true + }); + }); + this.initUpdaters(); + this.initPlugins(); + this.paint(); + } + initBackground() { + const options = this.container.actualOptions, + background = options.background, + element = this.element; + if (!element) { + return; + } + const elementStyle = element.style; + if (!elementStyle) { + return; + } + if (background.color) { + const color = rangeColorToRgb(background.color); + elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : ""; + } else { + elementStyle.backgroundColor = ""; + } + elementStyle.backgroundImage = background.image || ""; + elementStyle.backgroundPosition = background.position || ""; + elementStyle.backgroundRepeat = background.repeat || ""; + elementStyle.backgroundSize = background.size || ""; + } + initPlugins() { + this._resizePlugins = []; + for (const [, plugin] of this.container.plugins) { + if (plugin.resize) { + this._resizePlugins.push(plugin); + } + if (plugin.particleFillColor || plugin.particleStrokeColor) { + this._colorPlugins.push(plugin); + } + } + } + initUpdaters() { + this._preDrawUpdaters = []; + this._postDrawUpdaters = []; + for (const updater of this.container.particles.updaters) { + if (updater.afterDraw) { + this._postDrawUpdaters.push(updater); + } + if (updater.getColorStyles || updater.getTransformValues || updater.beforeDraw) { + this._preDrawUpdaters.push(updater); + } + } + } + loadCanvas(canvas) { + if (this._generated && this.element) { + this.element.remove(); + } + this._generated = canvas.dataset && generatedAttribute in canvas.dataset ? canvas.dataset[generatedAttribute] === "true" : this._generated; + this.element = canvas; + this.element.ariaHidden = "true"; + this._originalStyle = deepExtend({}, this.element.style); + this.size.height = canvas.offsetHeight; + this.size.width = canvas.offsetWidth; + this._context = this.element.getContext("2d"); + this._safeMutationObserver(obs => { + if (!this.element) { + return; + } + obs.observe(this.element, { + attributes: true + }); + }); + this.container.retina.init(); + this.initBackground(); + } + paint() { + const options = this.container.actualOptions; + this.draw(ctx => { + if (options.backgroundMask.enable && options.backgroundMask.cover) { + clear(ctx, this.size); + this._paintBase(this._coverColorStyle); + } else { + this._paintBase(); + } + }); + } + resize() { + if (!this.element) { + return false; + } + const container = this.container, + pxRatio = container.retina.pixelRatio, + size = container.canvas.size, + newSize = { + width: this.element.offsetWidth * pxRatio, + height: this.element.offsetHeight * pxRatio + }; + if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) { + return false; + } + const oldSize = { + ...size + }; + this.element.width = size.width = this.element.offsetWidth * pxRatio; + this.element.height = size.height = this.element.offsetHeight * pxRatio; + if (this.container.started) { + this.resizeFactor = { + width: size.width / oldSize.width, + height: size.height / oldSize.height + }; + } + return true; + } + stop() { + this._safeMutationObserver(obs => obs.disconnect()); + this._mutationObserver = undefined; + this.draw(ctx => clear(ctx, this.size)); + } + async windowResize() { + if (!this.element || !this.resize()) { + return; + } + const container = this.container, + needsRefresh = container.updateActualOptions(); + container.particles.setDensity(); + this._applyResizePlugins(); + if (needsRefresh) { + await container.refresh(); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/EventListeners.js + + +function manageListener(element, event, handler, add, options) { + if (add) { + let addOptions = { + passive: true + }; + if (isBoolean(options)) { + addOptions.capture = options; + } else if (options !== undefined) { + addOptions = options; + } + element.addEventListener(event, handler, addOptions); + } else { + const removeOptions = options; + element.removeEventListener(event, handler, removeOptions); + } +} +class EventListeners { + constructor(container) { + this.container = container; + this._doMouseTouchClick = e => { + const container = this.container, + options = container.actualOptions; + if (this._canPush) { + const mouseInteractivity = container.interactivity.mouse, + mousePos = mouseInteractivity.position; + if (!mousePos) { + return; + } + mouseInteractivity.clickPosition = { + ...mousePos + }; + mouseInteractivity.clickTime = new Date().getTime(); + const onClick = options.interactivity.events.onClick; + executeOnSingleOrMultiple(onClick.mode, mode => this.container.handleClickMode(mode)); + } + if (e.type === "touchend") { + setTimeout(() => this._mouseTouchFinish(), 500); + } + }; + this._handleThemeChange = e => { + const mediaEvent = e, + container = this.container, + options = container.options, + defaultThemes = options.defaultThemes, + themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, + theme = options.themes.find(theme => theme.name === themeName); + if (theme && theme.default.auto) { + container.loadTheme(themeName); + } + }; + this._handleVisibilityChange = () => { + const container = this.container, + options = container.actualOptions; + this._mouseTouchFinish(); + if (!options.pauseOnBlur) { + return; + } + if (document && document.hidden) { + container.pageHidden = true; + container.pause(); + } else { + container.pageHidden = false; + if (container.getAnimationStatus()) { + container.play(true); + } else { + container.draw(true); + } + } + }; + this._handleWindowResize = async () => { + if (this._resizeTimeout) { + clearTimeout(this._resizeTimeout); + delete this._resizeTimeout; + } + this._resizeTimeout = setTimeout(async () => { + const canvas = this.container.canvas; + canvas && (await canvas.windowResize()); + }, this.container.actualOptions.interactivity.events.resize.delay * 1000); + }; + this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => { + const handlers = this._handlers, + container = this.container, + options = container.actualOptions; + const interactivityEl = container.interactivity.element; + if (!interactivityEl) { + return; + } + const html = interactivityEl, + canvasEl = container.canvas.element; + if (canvasEl) { + canvasEl.style.pointerEvents = html === canvasEl ? "initial" : "none"; + } + if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) { + return; + } + manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add); + manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add); + manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add); + if (!options.interactivity.events.onClick.enable) { + manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add); + } else { + manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add); + manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add); + manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add); + } + manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add); + manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add); + }; + this._manageListeners = add => { + const handlers = this._handlers, + container = this.container, + options = container.actualOptions, + detectType = options.interactivity.detectsOn, + canvasEl = container.canvas.element; + let mouseLeaveTmpEvent = mouseLeaveEvent; + if (detectType === "window") { + container.interactivity.element = window; + mouseLeaveTmpEvent = mouseOutEvent; + } else if (detectType === "parent" && canvasEl) { + container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode; + } else { + container.interactivity.element = canvasEl; + } + this._manageMediaMatch(add); + this._manageResize(add); + this._manageInteractivityListeners(mouseLeaveTmpEvent, add); + if (document) { + manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false); + } + }; + this._manageMediaMatch = add => { + const handlers = this._handlers, + mediaMatch = safeMatchMedia("(prefers-color-scheme: dark)"); + if (!mediaMatch) { + return; + } + if (mediaMatch.addEventListener !== undefined) { + manageListener(mediaMatch, "change", handlers.themeChange, add); + return; + } + if (mediaMatch.addListener === undefined) { + return; + } + if (add) { + mediaMatch.addListener(handlers.oldThemeChange); + } else { + mediaMatch.removeListener(handlers.oldThemeChange); + } + }; + this._manageResize = add => { + const handlers = this._handlers, + container = this.container, + options = container.actualOptions; + if (!options.interactivity.events.resize) { + return; + } + if (typeof ResizeObserver === "undefined") { + manageListener(window, resizeEvent, handlers.resize, add); + return; + } + const canvasEl = container.canvas.element; + if (this._resizeObserver && !add) { + if (canvasEl) { + this._resizeObserver.unobserve(canvasEl); + } + this._resizeObserver.disconnect(); + delete this._resizeObserver; + } else if (!this._resizeObserver && add && canvasEl) { + this._resizeObserver = new ResizeObserver(async entries => { + const entry = entries.find(e => e.target === canvasEl); + if (!entry) { + return; + } + await this._handleWindowResize(); + }); + this._resizeObserver.observe(canvasEl); + } + }; + this._mouseDown = () => { + const { + interactivity + } = this.container; + if (!interactivity) { + return; + } + const { + mouse + } = interactivity; + mouse.clicking = true; + mouse.downPosition = mouse.position; + }; + this._mouseTouchClick = e => { + const container = this.container, + options = container.actualOptions, + { + mouse + } = container.interactivity; + mouse.inside = true; + let handled = false; + const mousePosition = mouse.position; + if (!mousePosition || !options.interactivity.events.onClick.enable) { + return; + } + for (const [, plugin] of container.plugins) { + if (!plugin.clickPositionValid) { + continue; + } + handled = plugin.clickPositionValid(mousePosition); + if (handled) { + break; + } + } + if (!handled) { + this._doMouseTouchClick(e); + } + mouse.clicking = false; + }; + this._mouseTouchFinish = () => { + const interactivity = this.container.interactivity; + if (!interactivity) { + return; + } + const mouse = interactivity.mouse; + delete mouse.position; + delete mouse.clickPosition; + delete mouse.downPosition; + interactivity.status = mouseLeaveEvent; + mouse.inside = false; + mouse.clicking = false; + }; + this._mouseTouchMove = e => { + const container = this.container, + options = container.actualOptions, + interactivity = container.interactivity, + canvasEl = container.canvas.element; + if (!interactivity || !interactivity.element) { + return; + } + interactivity.mouse.inside = true; + let pos; + if (e.type.startsWith("pointer")) { + this._canPush = true; + const mouseEvent = e; + if (interactivity.element === window) { + if (canvasEl) { + const clientRect = canvasEl.getBoundingClientRect(); + pos = { + x: mouseEvent.clientX - clientRect.left, + y: mouseEvent.clientY - clientRect.top + }; + } + } else if (options.interactivity.detectsOn === "parent") { + const source = mouseEvent.target, + target = mouseEvent.currentTarget; + if (source && target && canvasEl) { + const sourceRect = source.getBoundingClientRect(), + targetRect = target.getBoundingClientRect(), + canvasRect = canvasEl.getBoundingClientRect(); + pos = { + x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left), + y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top) + }; + } else { + pos = { + x: mouseEvent.offsetX ?? mouseEvent.clientX, + y: mouseEvent.offsetY ?? mouseEvent.clientY + }; + } + } else if (mouseEvent.target === canvasEl) { + pos = { + x: mouseEvent.offsetX ?? mouseEvent.clientX, + y: mouseEvent.offsetY ?? mouseEvent.clientY + }; + } + } else { + this._canPush = e.type !== "touchmove"; + if (canvasEl) { + const touchEvent = e, + lastTouch = touchEvent.touches[touchEvent.touches.length - 1], + canvasRect = canvasEl.getBoundingClientRect(); + pos = { + x: lastTouch.clientX - (canvasRect.left ?? 0), + y: lastTouch.clientY - (canvasRect.top ?? 0) + }; + } + } + const pxRatio = container.retina.pixelRatio; + if (pos) { + pos.x *= pxRatio; + pos.y *= pxRatio; + } + interactivity.mouse.position = pos; + interactivity.status = mouseMoveEvent; + }; + this._touchEnd = e => { + const evt = e, + touches = Array.from(evt.changedTouches); + for (const touch of touches) { + this._touches.delete(touch.identifier); + } + this._mouseTouchFinish(); + }; + this._touchEndClick = e => { + const evt = e, + touches = Array.from(evt.changedTouches); + for (const touch of touches) { + this._touches.delete(touch.identifier); + } + this._mouseTouchClick(e); + }; + this._touchStart = e => { + const evt = e, + touches = Array.from(evt.changedTouches); + for (const touch of touches) { + this._touches.set(touch.identifier, performance.now()); + } + this._mouseTouchMove(e); + }; + this._canPush = true; + this._touches = new Map(); + this._handlers = { + mouseDown: () => this._mouseDown(), + mouseLeave: () => this._mouseTouchFinish(), + mouseMove: e => this._mouseTouchMove(e), + mouseUp: e => this._mouseTouchClick(e), + touchStart: e => this._touchStart(e), + touchMove: e => this._mouseTouchMove(e), + touchEnd: e => this._touchEnd(e), + touchCancel: e => this._touchEnd(e), + touchEndClick: e => this._touchEndClick(e), + visibilityChange: () => this._handleVisibilityChange(), + themeChange: e => this._handleThemeChange(e), + oldThemeChange: e => this._handleThemeChange(e), + resize: () => { + this._handleWindowResize(); + } + }; + } + addListeners() { + this._manageListeners(true); + } + removeListeners() { + this._manageListeners(false); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Background/Background.js + +class Background { + constructor() { + this.color = new OptionsColor(); + this.color.value = ""; + this.image = ""; + this.position = ""; + this.repeat = ""; + this.size = ""; + this.opacity = 1; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.image !== undefined) { + this.image = data.image; + } + if (data.position !== undefined) { + this.position = data.position; + } + if (data.repeat !== undefined) { + this.repeat = data.repeat; + } + if (data.size !== undefined) { + this.size = data.size; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js + +class BackgroundMaskCover { + constructor() { + this.color = new OptionsColor(); + this.color.value = "#fff"; + this.opacity = 1; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/BackgroundMask/BackgroundMask.js + + +class BackgroundMask { + constructor() { + this.composite = "destination-out"; + this.cover = new BackgroundMaskCover(); + this.enable = false; + } + load(data) { + if (!data) { + return; + } + if (data.composite !== undefined) { + this.composite = data.composite; + } + if (data.cover !== undefined) { + const cover = data.cover; + const color = isString(data.cover) ? { + color: data.cover + } : data.cover; + this.cover.load(cover.color !== undefined ? cover : { + color: color + }); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/FullScreen/FullScreen.js +class FullScreen { + constructor() { + this.enable = true; + this.zIndex = 0; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.zIndex !== undefined) { + this.zIndex = data.zIndex; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/ClickEvent.js +class ClickEvent { + constructor() { + this.enable = false; + this.mode = []; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/DivEvent.js + +class DivEvent { + constructor() { + this.selectors = []; + this.enable = false; + this.mode = []; + this.type = "circle"; + } + get el() { + return this.elementId; + } + set el(value) { + this.elementId = value; + } + get elementId() { + return this.ids; + } + set elementId(value) { + this.ids = value; + } + get ids() { + return executeOnSingleOrMultiple(this.selectors, t => t.replace("#", "")); + } + set ids(value) { + this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`); + } + load(data) { + if (!data) { + return; + } + const ids = data.ids ?? data.elementId ?? data.el; + if (ids !== undefined) { + this.ids = ids; + } + if (data.selectors !== undefined) { + this.selectors = data.selectors; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.type !== undefined) { + this.type = data.type; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/Parallax.js +class Parallax { + constructor() { + this.enable = false; + this.force = 2; + this.smooth = 10; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.force !== undefined) { + this.force = data.force; + } + if (data.smooth !== undefined) { + this.smooth = data.smooth; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/HoverEvent.js + +class HoverEvent { + constructor() { + this.enable = false; + this.mode = []; + this.parallax = new Parallax(); + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + this.parallax.load(data.parallax); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/ResizeEvent.js +class ResizeEvent { + constructor() { + this.delay = 0.5; + this.enable = true; + } + load(data) { + if (data === undefined) { + return; + } + if (data.delay !== undefined) { + this.delay = data.delay; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Events/Events.js + + + + + +class Events { + constructor() { + this.onClick = new ClickEvent(); + this.onDiv = new DivEvent(); + this.onHover = new HoverEvent(); + this.resize = new ResizeEvent(); + } + get onclick() { + return this.onClick; + } + set onclick(value) { + this.onClick = value; + } + get ondiv() { + return this.onDiv; + } + set ondiv(value) { + this.onDiv = value; + } + get onhover() { + return this.onHover; + } + set onhover(value) { + this.onHover = value; + } + load(data) { + if (!data) { + return; + } + this.onClick.load(data.onClick ?? data.onclick); + const onDiv = data.onDiv ?? data.ondiv; + if (onDiv !== undefined) { + this.onDiv = executeOnSingleOrMultiple(onDiv, t => { + const tmp = new DivEvent(); + tmp.load(t); + return tmp; + }); + } + this.onHover.load(data.onHover ?? data.onhover); + if (isBoolean(data.resize)) { + this.resize.enable = data.resize; + } else { + this.resize.load(data.resize); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Modes/Modes.js +class Modes { + constructor(engine, container) { + this._engine = engine; + this._container = container; + } + load(data) { + if (!data) { + return; + } + if (!this._container) { + return; + } + const interactors = this._engine.plugins.interactors.get(this._container); + if (!interactors) { + return; + } + for (const interactor of interactors) { + if (!interactor.loadModeOptions) { + continue; + } + interactor.loadModeOptions(this, data); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Interactivity/Interactivity.js + + +class Interactivity { + constructor(engine, container) { + this.detectsOn = "window"; + this.events = new Events(); + this.modes = new Modes(engine, container); + } + get detect_on() { + return this.detectsOn; + } + set detect_on(value) { + this.detectsOn = value; + } + load(data) { + if (!data) { + return; + } + const detectsOn = data.detectsOn ?? data.detect_on; + if (detectsOn !== undefined) { + this.detectsOn = detectsOn; + } + this.events.load(data.events); + this.modes.load(data.modes); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/ManualParticle.js + +class ManualParticle { + load(data) { + if (!data) { + return; + } + if (data.position) { + this.position = { + x: data.position.x ?? 50, + y: data.position.y ?? 50, + mode: data.position.mode ?? "percent" + }; + } + if (data.options) { + this.options = deepExtend({}, data.options); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Responsive.js + +class Responsive { + constructor() { + this.maxWidth = Infinity; + this.options = {}; + this.mode = "canvas"; + } + load(data) { + if (!data) { + return; + } + if (data.maxWidth !== undefined) { + this.maxWidth = data.maxWidth; + } + if (data.mode !== undefined) { + if (data.mode === "screen") { + this.mode = "screen"; + } else { + this.mode = "canvas"; + } + } + if (data.options !== undefined) { + this.options = deepExtend({}, data.options); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Theme/ThemeDefault.js +class ThemeDefault { + constructor() { + this.auto = false; + this.mode = "any"; + this.value = false; + } + load(data) { + if (!data) { + return; + } + if (data.auto !== undefined) { + this.auto = data.auto; + } + if (data.mode !== undefined) { + this.mode = data.mode; + } + if (data.value !== undefined) { + this.value = data.value; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Theme/Theme.js + + +class Theme { + constructor() { + this.name = ""; + this.default = new ThemeDefault(); + } + load(data) { + if (!data) { + return; + } + if (data.name !== undefined) { + this.name = data.name; + } + this.default.load(data.default); + if (data.options !== undefined) { + this.options = deepExtend({}, data.options); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Options/Classes/Options.js + + + + + + + + + + +class Options { + constructor(engine, container) { + this._findDefaultTheme = mode => { + return this.themes.find(theme => theme.default.value && theme.default.mode === mode) ?? this.themes.find(theme => theme.default.value && theme.default.mode === "any"); + }; + this._importPreset = preset => { + this.load(this._engine.plugins.getPreset(preset)); + }; + this._engine = engine; + this._container = container; + this.autoPlay = true; + this.background = new Background(); + this.backgroundMask = new BackgroundMask(); + this.defaultThemes = {}; + this.delay = 0; + this.fullScreen = new FullScreen(); + this.detectRetina = true; + this.duration = 0; + this.fpsLimit = 120; + this.interactivity = new Interactivity(engine, container); + this.manualParticles = []; + this.particles = loadParticlesOptions(this._engine, this._container); + this.pauseOnBlur = true; + this.pauseOnOutsideViewport = true; + this.responsive = []; + this.smooth = false; + this.style = {}; + this.themes = []; + this.zLayers = 100; + } + get backgroundMode() { + return this.fullScreen; + } + set backgroundMode(value) { + this.fullScreen.load(value); + } + get fps_limit() { + return this.fpsLimit; + } + set fps_limit(value) { + this.fpsLimit = value; + } + get retina_detect() { + return this.detectRetina; + } + set retina_detect(value) { + this.detectRetina = value; + } + load(data) { + if (!data) { + return; + } + if (data.preset !== undefined) { + executeOnSingleOrMultiple(data.preset, preset => this._importPreset(preset)); + } + if (data.autoPlay !== undefined) { + this.autoPlay = data.autoPlay; + } + if (data.delay !== undefined) { + this.delay = setRangeValue(data.delay); + } + const detectRetina = data.detectRetina ?? data.retina_detect; + if (detectRetina !== undefined) { + this.detectRetina = detectRetina; + } + if (data.duration !== undefined) { + this.duration = setRangeValue(data.duration); + } + const fpsLimit = data.fpsLimit ?? data.fps_limit; + if (fpsLimit !== undefined) { + this.fpsLimit = fpsLimit; + } + if (data.pauseOnBlur !== undefined) { + this.pauseOnBlur = data.pauseOnBlur; + } + if (data.pauseOnOutsideViewport !== undefined) { + this.pauseOnOutsideViewport = data.pauseOnOutsideViewport; + } + if (data.zLayers !== undefined) { + this.zLayers = data.zLayers; + } + this.background.load(data.background); + const fullScreen = data.fullScreen ?? data.backgroundMode; + if (isBoolean(fullScreen)) { + this.fullScreen.enable = fullScreen; + } else { + this.fullScreen.load(fullScreen); + } + this.backgroundMask.load(data.backgroundMask); + this.interactivity.load(data.interactivity); + if (data.manualParticles) { + this.manualParticles = data.manualParticles.map(t => { + const tmp = new ManualParticle(); + tmp.load(t); + return tmp; + }); + } + this.particles.load(data.particles); + this.style = deepExtend(this.style, data.style); + this._engine.plugins.loadOptions(this, data); + if (data.smooth !== undefined) { + this.smooth = data.smooth; + } + const interactors = this._engine.plugins.interactors.get(this._container); + if (interactors) { + for (const interactor of interactors) { + if (interactor.loadOptions) { + interactor.loadOptions(this, data); + } + } + } + if (data.responsive !== undefined) { + for (const responsive of data.responsive) { + const optResponsive = new Responsive(); + optResponsive.load(responsive); + this.responsive.push(optResponsive); + } + } + this.responsive.sort((a, b) => a.maxWidth - b.maxWidth); + if (data.themes !== undefined) { + for (const theme of data.themes) { + const existingTheme = this.themes.find(t => t.name === theme.name); + if (!existingTheme) { + const optTheme = new Theme(); + optTheme.load(theme); + this.themes.push(optTheme); + } else { + existingTheme.load(theme); + } + } + } + this.defaultThemes.dark = this._findDefaultTheme("dark")?.name; + this.defaultThemes.light = this._findDefaultTheme("light")?.name; + } + setResponsive(width, pxRatio, defaultOptions) { + this.load(defaultOptions); + const responsiveOptions = this.responsive.find(t => t.mode === "screen" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width); + this.load(responsiveOptions?.options); + return responsiveOptions?.maxWidth; + } + setTheme(name) { + if (name) { + const chosenTheme = this.themes.find(theme => theme.name === name); + if (chosenTheme) { + this.load(chosenTheme.options); + } + } else { + const mediaMatch = safeMatchMedia("(prefers-color-scheme: dark)"), + clientDarkMode = mediaMatch && mediaMatch.matches, + defaultTheme = this._findDefaultTheme(clientDarkMode ? "dark" : "light"); + if (defaultTheme) { + this.load(defaultTheme.options); + } + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/InteractionManager.js +class InteractionManager { + constructor(engine, container) { + this.container = container; + this._engine = engine; + this._interactors = engine.plugins.getInteractors(this.container, true); + this._externalInteractors = []; + this._particleInteractors = []; + } + async externalInteract(delta) { + for (const interactor of this._externalInteractors) { + interactor.isEnabled() && (await interactor.interact(delta)); + } + } + handleClickMode(mode) { + for (const interactor of this._externalInteractors) { + interactor.handleClickMode && interactor.handleClickMode(mode); + } + } + init() { + this._externalInteractors = []; + this._particleInteractors = []; + for (const interactor of this._interactors) { + switch (interactor.type) { + case "external": + this._externalInteractors.push(interactor); + break; + case "particles": + this._particleInteractors.push(interactor); + break; + } + interactor.init(); + } + } + async particlesInteract(particle, delta) { + for (const interactor of this._externalInteractors) { + interactor.clear(particle, delta); + } + for (const interactor of this._particleInteractors) { + interactor.isEnabled(particle) && (await interactor.interact(particle, delta)); + } + } + async reset(particle) { + for (const interactor of this._externalInteractors) { + interactor.isEnabled() && interactor.reset(particle); + } + for (const interactor of this._particleInteractors) { + interactor.isEnabled(particle) && interactor.reset(particle); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Particle.js + + + + + + + + + +const fixOutMode = data => { + if (!isInArray(data.outMode, data.checkModes)) { + return; + } + const diameter = data.radius * 2; + if (data.coord > data.maxCoord - diameter) { + data.setCb(-data.radius); + } else if (data.coord < diameter) { + data.setCb(data.radius); + } +}; +class Particle { + constructor(engine, id, container, position, overrideOptions, group) { + this.container = container; + this._calcPosition = (container, position, zIndex, tryCount = 0) => { + for (const [, plugin] of container.plugins) { + const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined; + if (pluginPos) { + return Vector3d.create(pluginPos.x, pluginPos.y, zIndex); + } + } + const canvasSize = container.canvas.size, + exactPosition = calcExactPositionOrRandomFromSize({ + size: canvasSize, + position: position + }), + pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), + radius = this.getRadius(), + outModes = this.options.move.outModes, + fixHorizontal = outMode => { + fixOutMode({ + outMode, + checkModes: ["bounce", "bounce-horizontal"], + coord: pos.x, + maxCoord: container.canvas.size.width, + setCb: value => pos.x += value, + radius + }); + }, + fixVertical = outMode => { + fixOutMode({ + outMode, + checkModes: ["bounce", "bounce-vertical"], + coord: pos.y, + maxCoord: container.canvas.size.height, + setCb: value => pos.y += value, + radius + }); + }; + fixHorizontal(outModes.left ?? outModes.default); + fixHorizontal(outModes.right ?? outModes.default); + fixVertical(outModes.top ?? outModes.default); + fixVertical(outModes.bottom ?? outModes.default); + if (this._checkOverlap(pos, tryCount)) { + return this._calcPosition(container, undefined, zIndex, tryCount + 1); + } + return pos; + }; + this._calculateVelocity = () => { + const baseVelocity = getParticleBaseVelocity(this.direction), + res = baseVelocity.copy(), + moveOptions = this.options.move; + if (moveOptions.direction === "inside" || moveOptions.direction === "outside") { + return res; + } + const rad = Math.PI / 180 * getRangeValue(moveOptions.angle.value), + radOffset = Math.PI / 180 * getRangeValue(moveOptions.angle.offset), + range = { + left: radOffset - rad / 2, + right: radOffset + rad / 2 + }; + if (!moveOptions.straight) { + res.angle += randomInRange(setRangeValue(range.left, range.right)); + } + if (moveOptions.random && typeof moveOptions.speed === "number") { + res.length *= getRandom(); + } + return res; + }; + this._checkOverlap = (pos, tryCount = 0) => { + const collisionsOptions = this.options.collisions, + radius = this.getRadius(); + if (!collisionsOptions.enable) { + return false; + } + const overlapOptions = collisionsOptions.overlap; + if (overlapOptions.enable) { + return false; + } + const retries = overlapOptions.retries; + if (retries >= 0 && tryCount > retries) { + throw new Error(`${errorPrefix} particle is overlapping and can't be placed`); + } + return !!this.container.particles.find(particle => getDistance(pos, particle.position) < radius + particle.getRadius()); + }; + this._getRollColor = color => { + if (!color || !this.roll || !this.backColor && !this.roll.alter) { + return color; + } + const backFactor = this.roll.horizontal && this.roll.vertical ? 2 : 1, + backSum = this.roll.horizontal ? Math.PI / 2 : 0, + rolled = Math.floor(((this.roll.angle ?? 0) + backSum) / (Math.PI / backFactor)) % 2; + if (!rolled) { + return color; + } + if (this.backColor) { + return this.backColor; + } + if (this.roll.alter) { + return alterHsl(color, this.roll.alter.type, this.roll.alter.value); + } + return color; + }; + this._initPosition = position => { + const container = this.container, + zIndexValue = getRangeValue(this.options.zIndex.value); + this.position = this._calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers)); + this.initialPosition = this.position.copy(); + const canvasSize = container.canvas.size; + this.moveCenter = { + ...getPosition(this.options.move.center, canvasSize), + radius: this.options.move.center.radius ?? 0, + mode: this.options.move.center.mode ?? "percent" + }; + this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter); + switch (this.options.move.direction) { + case "inside": + this.outType = "inside"; + break; + case "outside": + this.outType = "outside"; + break; + } + this.offset = Vector.origin; + }; + this._loadShapeData = (shapeOptions, reduceDuplicates) => { + const shapeData = shapeOptions.options[this.shape]; + if (!shapeData) { + return; + } + return deepExtend({ + close: shapeOptions.close, + fill: shapeOptions.fill + }, itemFromSingleOrMultiple(shapeData, this.id, reduceDuplicates)); + }; + this._engine = engine; + this.init(id, position, overrideOptions, group); + } + destroy(override) { + if (this.unbreakable || this.destroyed) { + return; + } + this.destroyed = true; + this.bubble.inRange = false; + this.slow.inRange = false; + const container = this.container, + pathGenerator = this.pathGenerator; + for (const [, plugin] of container.plugins) { + if (plugin.particleDestroyed) { + plugin.particleDestroyed(this, override); + } + } + for (const updater of container.particles.updaters) { + if (updater.particleDestroyed) { + updater.particleDestroyed(this, override); + } + } + if (pathGenerator) { + pathGenerator.reset(this); + } + } + draw(delta) { + const container = this.container; + for (const [, plugin] of container.plugins) { + container.canvas.drawParticlePlugin(plugin, this, delta); + } + container.canvas.drawParticle(this, delta); + } + getFillColor() { + return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.color)); + } + getMass() { + return this.getRadius() ** 2 * Math.PI / 2; + } + getPosition() { + return { + x: this.position.x + this.offset.x, + y: this.position.y + this.offset.y, + z: this.position.z + }; + } + getRadius() { + return this.bubble.radius ?? this.size.value; + } + getStrokeColor() { + return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.strokeColor)); + } + init(id, position, overrideOptions, group) { + const container = this.container, + engine = this._engine; + this.id = id; + this.group = group; + this.fill = true; + this.pathRotation = false; + this.close = true; + this.lastPathTime = 0; + this.destroyed = false; + this.unbreakable = false; + this.rotation = 0; + this.misplaced = false; + this.retina = { + maxDistance: {} + }; + this.outType = "normal"; + this.ignoresResizeRatio = true; + const pxRatio = container.retina.pixelRatio, + mainOptions = container.actualOptions, + particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), + shapeType = particlesOptions.shape.type, + { + reduceDuplicates + } = particlesOptions; + this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates); + const shapeOptions = particlesOptions.shape; + if (overrideOptions && overrideOptions.shape && overrideOptions.shape.type) { + const overrideShapeType = overrideOptions.shape.type, + shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates); + if (shape) { + this.shape = shape; + shapeOptions.load(overrideOptions.shape); + } + } + this.shapeData = this._loadShapeData(shapeOptions, reduceDuplicates); + particlesOptions.load(overrideOptions); + const shapeData = this.shapeData; + if (shapeData) { + particlesOptions.load(shapeData.particles); + } + const interactivity = new Interactivity(engine, container); + interactivity.load(container.actualOptions.interactivity); + interactivity.load(particlesOptions.interactivity); + this.interactivity = interactivity; + this.fill = shapeData?.fill ?? particlesOptions.shape.fill; + this.close = shapeData?.close ?? particlesOptions.shape.close; + this.options = particlesOptions; + const pathOptions = this.options.move.path; + this.pathDelay = getValue(pathOptions.delay) * 1000; + if (pathOptions.generator) { + this.pathGenerator = this._engine.plugins.getPathGenerator(pathOptions.generator); + if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) { + this.pathGenerator.init(container); + } + } + container.retina.initParticle(this); + this.size = initParticleNumericAnimationValue(this.options.size, pxRatio); + this.bubble = { + inRange: false + }; + this.slow = { + inRange: false, + factor: 1 + }; + this._initPosition(position); + this.initialVelocity = this._calculateVelocity(); + this.velocity = this.initialVelocity.copy(); + this.moveDecay = 1 - getRangeValue(this.options.move.decay); + const particles = container.particles; + particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z; + particles.lastZIndex = this.position.z; + this.zIndexFactor = this.position.z / container.zLayers; + this.sides = 24; + let drawer = container.drawers.get(this.shape); + if (!drawer) { + drawer = this._engine.plugins.getShapeDrawer(this.shape); + if (drawer) { + container.drawers.set(this.shape, drawer); + } + } + if (drawer && drawer.loadShape) { + drawer.loadShape(this); + } + const sideCountFunc = drawer?.getSidesCount; + if (sideCountFunc) { + this.sides = sideCountFunc(this); + } + this.spawning = false; + this.shadowColor = rangeColorToRgb(this.options.shadow.color); + for (const updater of container.particles.updaters) { + updater.init(this); + } + for (const mover of container.particles.movers) { + mover.init && mover.init(this); + } + if (drawer && drawer.particleInit) { + drawer.particleInit(container, this); + } + for (const [, plugin] of container.plugins) { + plugin.particleCreated && plugin.particleCreated(this); + } + } + isInsideCanvas() { + const radius = this.getRadius(), + canvasSize = this.container.canvas.size, + position = this.position; + return position.x >= -radius && position.y >= -radius && position.y <= canvasSize.height + radius && position.x <= canvasSize.width + radius; + } + isVisible() { + return !this.destroyed && !this.spawning && this.isInsideCanvas(); + } + reset() { + for (const updater of this.container.particles.updaters) { + updater.reset && updater.reset(this); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Point.js +class Point { + constructor(position, particle) { + this.position = position; + this.particle = particle; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Range.js +class Range { + constructor(x, y) { + this.position = { + x: x, + y: y + }; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Rectangle.js + + +class Rectangle extends Range { + constructor(x, y, width, height) { + super(x, y); + this.size = { + height: height, + width: width + }; + } + contains(point) { + const w = this.size.width, + h = this.size.height, + pos = this.position; + return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h; + } + intersects(range) { + if (range instanceof Circle) { + range.intersects(this); + } + const w = this.size.width, + h = this.size.height, + pos1 = this.position, + pos2 = range.position, + size2 = range instanceof Rectangle ? range.size : { + width: 0, + height: 0 + }, + w2 = size2.width, + h2 = size2.height; + return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Circle.js + + + +class Circle extends Range { + constructor(x, y, radius) { + super(x, y); + this.radius = radius; + } + contains(point) { + return getDistance(point, this.position) <= this.radius; + } + intersects(range) { + const pos1 = this.position, + pos2 = range.position, + distPos = { + x: Math.abs(pos2.x - pos1.x), + y: Math.abs(pos2.y - pos1.y) + }, + r = this.radius; + if (range instanceof Circle) { + const rSum = r + range.radius, + dist = Math.sqrt(distPos.x ** 2 + distPos.y ** 2); + return rSum > dist; + } else if (range instanceof Rectangle) { + const { + width, + height + } = range.size, + edges = Math.pow(distPos.x - width, 2) + Math.pow(distPos.y - height, 2); + return edges <= r ** 2 || distPos.x <= r + width && distPos.y <= r + height || distPos.x <= width || distPos.y <= height; + } + return false; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/QuadTree.js + + + +class QuadTree { + constructor(rectangle, capacity) { + this.rectangle = rectangle; + this.capacity = capacity; + this._subdivide = () => { + const { + x, + y + } = this.rectangle.position, + { + width, + height + } = this.rectangle.size, + { + capacity + } = this; + for (let i = 0; i < 4; i++) { + this._subs.push(new QuadTree(new Rectangle(x + width / 2 * (i % 2), y + height / 2 * (Math.round(i / 2) - i % 2), width / 2, height / 2), capacity)); + } + this._divided = true; + }; + this._points = []; + this._divided = false; + this._subs = []; + } + insert(point) { + if (!this.rectangle.contains(point.position)) { + return false; + } + if (this._points.length < this.capacity) { + this._points.push(point); + return true; + } + if (!this._divided) { + this._subdivide(); + } + return this._subs.some(sub => sub.insert(point)); + } + query(range, check, found) { + const res = found || []; + if (!range.intersects(this.rectangle)) { + return []; + } + for (const p of this._points) { + if (!range.contains(p.position) && getDistance(range.position, p.position) > p.particle.getRadius() && (!check || check(p.particle))) { + continue; + } + res.push(p.particle); + } + if (this._divided) { + for (const sub of this._subs) { + sub.query(range, check, res); + } + } + return res; + } + queryCircle(position, radius, check) { + return this.query(new Circle(position.x, position.y, radius), check); + } + queryRectangle(position, size, check) { + return this.query(new Rectangle(position.x, position.y, size.width, size.height), check); + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Particles.js + + + + + + + +const qTreeCapacity = 4; +const qTreeRectangle = canvasSize => { + return new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2); +}; +class Particles { + constructor(engine, container) { + this._applyDensity = (options, manualCount, group) => { + if (!options.number.density?.enable) { + return; + } + const numberOptions = options.number, + densityFactor = this._initDensityFactor(numberOptions.density), + optParticlesNumber = numberOptions.value, + optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, + particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, + particlesCount = Math.min(this.count, this.filter(t => t.group === group).length); + this.limit = numberOptions.limit * densityFactor; + if (particlesCount < particlesNumber) { + this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group); + } else if (particlesCount > particlesNumber) { + this.removeQuantity(particlesCount - particlesNumber, group); + } + }; + this._initDensityFactor = densityOptions => { + const container = this._container; + if (!container.canvas.element || !densityOptions.enable) { + return 1; + } + const canvas = container.canvas.element, + pxRatio = container.retina.pixelRatio; + return canvas.width * canvas.height / (densityOptions.factor * pxRatio ** 2 * densityOptions.area); + }; + this._pushParticle = (position, overrideOptions, group, initializer) => { + try { + let particle = this.pool.pop(); + if (particle) { + particle.init(this._nextId, position, overrideOptions, group); + } else { + particle = new Particle(this._engine, this._nextId, this._container, position, overrideOptions, group); + } + let canAdd = true; + if (initializer) { + canAdd = initializer(particle); + } + if (!canAdd) { + return; + } + this._array.push(particle); + this._zArray.push(particle); + this._nextId++; + this._engine.dispatchEvent("particleAdded", { + container: this._container, + data: { + particle + } + }); + return particle; + } catch (e) { + getLogger().warning(`${errorPrefix} adding particle: ${e}`); + return; + } + }; + this._removeParticle = (index, group, override) => { + const particle = this._array[index]; + if (!particle || particle.group !== group) { + return false; + } + particle.destroy(override); + const zIdx = this._zArray.indexOf(particle); + this._array.splice(index, 1); + this._zArray.splice(zIdx, 1); + this.pool.push(particle); + this._engine.dispatchEvent("particleRemoved", { + container: this._container, + data: { + particle + } + }); + return true; + }; + this._engine = engine; + this._container = container; + this._nextId = 0; + this._array = []; + this._zArray = []; + this.pool = []; + this.limit = 0; + this.needsSort = false; + this.lastZIndex = 0; + this._interactionManager = new InteractionManager(engine, container); + const canvasSize = container.canvas.size; + this.quadTree = new QuadTree(qTreeRectangle(canvasSize), qTreeCapacity); + this.movers = this._engine.plugins.getMovers(container, true); + this.updaters = this._engine.plugins.getUpdaters(container, true); + } + get count() { + return this._array.length; + } + addManualParticles() { + const container = this._container, + options = container.actualOptions; + for (const particle of options.manualParticles) { + this.addParticle(particle.position ? getPosition(particle.position, container.canvas.size) : undefined, particle.options); + } + } + addParticle(position, overrideOptions, group, initializer) { + const container = this._container, + options = container.actualOptions, + limit = options.particles.number.limit; + if (limit > 0) { + const countToRemove = this.count + 1 - limit; + if (countToRemove > 0) { + this.removeQuantity(countToRemove); + } + } + return this._pushParticle(position, overrideOptions, group, initializer); + } + clear() { + this._array = []; + this._zArray = []; + } + destroy() { + this._array = []; + this._zArray = []; + this.movers = []; + this.updaters = []; + } + async draw(delta) { + const container = this._container; + container.canvas.clear(); + await this.update(delta); + for (const [, plugin] of container.plugins) { + container.canvas.drawPlugin(plugin, delta); + } + for (const p of this._zArray) { + p.draw(delta); + } + } + filter(condition) { + return this._array.filter(condition); + } + find(condition) { + return this._array.find(condition); + } + handleClickMode(mode) { + this._interactionManager.handleClickMode(mode); + } + init() { + const container = this._container, + options = container.actualOptions; + this.lastZIndex = 0; + this.needsSort = false; + let handled = false; + this.updaters = this._engine.plugins.getUpdaters(container, true); + this._interactionManager.init(); + for (const [, plugin] of container.plugins) { + if (plugin.particlesInitialization !== undefined) { + handled = plugin.particlesInitialization(); + } + if (handled) { + break; + } + } + this._interactionManager.init(); + for (const [, pathGenerator] of container.pathGenerators) { + pathGenerator.init(container); + } + this.addManualParticles(); + if (!handled) { + for (const group in options.particles.groups) { + const groupOptions = options.particles.groups[group]; + for (let i = this.count, j = 0; j < groupOptions.number?.value && i < options.particles.number.value; i++, j++) { + this.addParticle(undefined, groupOptions, group); + } + } + for (let i = this.count; i < options.particles.number.value; i++) { + this.addParticle(); + } + } + } + push(nb, mouse, overrideOptions, group) { + this.pushing = true; + for (let i = 0; i < nb; i++) { + this.addParticle(mouse?.position, overrideOptions, group); + } + this.pushing = false; + } + async redraw() { + this.clear(); + this.init(); + await this.draw({ + value: 0, + factor: 0 + }); + } + remove(particle, group, override) { + this.removeAt(this._array.indexOf(particle), undefined, group, override); + } + removeAt(index, quantity = 1, group, override) { + if (index < 0 || index > this.count) { + return; + } + let deleted = 0; + for (let i = index; deleted < quantity && i < this.count; i++) { + this._removeParticle(i--, group, override) && deleted++; + } + } + removeQuantity(quantity, group) { + this.removeAt(0, quantity, group); + } + setDensity() { + const options = this._container.actualOptions, + groups = options.particles.groups; + for (const group in groups) { + this._applyDensity(groups[group], 0, group); + } + this._applyDensity(options.particles, options.manualParticles.length); + } + async update(delta) { + const container = this._container, + particlesToDelete = new Set(); + this.quadTree = new QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity); + for (const [, pathGenerator] of container.pathGenerators) { + pathGenerator.update(); + } + for (const [, plugin] of container.plugins) { + plugin.update && plugin.update(delta); + } + for (const particle of this._array) { + const resizeFactor = container.canvas.resizeFactor; + if (resizeFactor && !particle.ignoresResizeRatio) { + particle.position.x *= resizeFactor.width; + particle.position.y *= resizeFactor.height; + particle.initialPosition.x *= resizeFactor.width; + particle.initialPosition.y *= resizeFactor.height; + } + particle.ignoresResizeRatio = false; + await this._interactionManager.reset(particle); + for (const [, plugin] of this._container.plugins) { + if (particle.destroyed) { + break; + } + if (plugin.particleUpdate) { + plugin.particleUpdate(particle, delta); + } + } + for (const mover of this.movers) { + mover.isEnabled(particle) && mover.move(particle, delta); + } + if (particle.destroyed) { + particlesToDelete.add(particle); + continue; + } + this.quadTree.insert(new Point(particle.getPosition(), particle)); + } + if (particlesToDelete.size) { + const checkDelete = p => !particlesToDelete.has(p); + this._array = this.filter(checkDelete); + this._zArray = this._zArray.filter(checkDelete); + this.pool.push(...particlesToDelete); + } + await this._interactionManager.externalInteract(delta); + for (const particle of this._array) { + for (const updater of this.updaters) { + updater.update(particle, delta); + } + if (!particle.destroyed && !particle.spawning) { + await this._interactionManager.particlesInteract(particle, delta); + } + } + delete container.canvas.resizeFactor; + if (this.needsSort) { + const zArray = this._zArray; + zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id); + this.lastZIndex = zArray[zArray.length - 1].position.z; + this.needsSort = false; + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Retina.js + + +class Retina { + constructor(container) { + this.container = container; + this.pixelRatio = 1; + this.reduceFactor = 1; + } + init() { + const container = this.container, + options = container.actualOptions; + this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio; + this.reduceFactor = 1; + const ratio = this.pixelRatio; + if (container.canvas.element) { + const element = container.canvas.element; + container.canvas.size.width = element.offsetWidth * ratio; + container.canvas.size.height = element.offsetHeight * ratio; + } + const particles = options.particles, + moveOptions = particles.move; + this.attractDistance = getRangeValue(moveOptions.attract.distance) * ratio; + this.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio; + this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio; + } + initParticle(particle) { + const options = particle.options, + ratio = this.pixelRatio, + moveOptions = options.move, + moveDistance = moveOptions.distance, + props = particle.retina; + props.attractDistance = getRangeValue(moveOptions.attract.distance) * ratio; + props.moveDrift = getRangeValue(moveOptions.drift) * ratio; + props.moveSpeed = getRangeValue(moveOptions.speed) * ratio; + props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio; + const maxDistance = props.maxDistance; + maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined; + maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined; + props.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Container.js + + + + + + + + + +function guardCheck(container) { + return container && !container.destroyed; +} +function initDelta(value, fpsLimit = 60, smooth = false) { + return { + value, + factor: smooth ? 60 / fpsLimit : 60 * value / 1000 + }; +} +function loadContainerOptions(engine, container, ...sourceOptionsArr) { + const options = new Options(engine, container); + loadOptions(options, ...sourceOptionsArr); + return options; +} +const defaultPathGeneratorKey = "default", + defaultPathGenerator = { + generate: p => p.velocity, + init: () => {}, + update: () => {}, + reset: () => {} + }; +class Container { + constructor(engine, id, sourceOptions) { + this.id = id; + this._intersectionManager = entries => { + if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) { + return; + } + for (const entry of entries) { + if (entry.target !== this.interactivity.element) { + continue; + } + (entry.isIntersecting ? this.play : this.pause)(); + } + }; + this._nextFrame = async timestamp => { + try { + if (!this.smooth && this.lastFrameTime !== undefined && timestamp < this.lastFrameTime + 1000 / this.fpsLimit) { + this.draw(false); + return; + } + this.lastFrameTime ??= timestamp; + const delta = initDelta(timestamp - this.lastFrameTime, this.fpsLimit, this.smooth); + this.addLifeTime(delta.value); + this.lastFrameTime = timestamp; + if (delta.value > 1000) { + this.draw(false); + return; + } + await this.particles.draw(delta); + if (!this.alive()) { + this.destroy(); + return; + } + if (this.getAnimationStatus()) { + this.draw(false); + } + } catch (e) { + getLogger().error(`${errorPrefix} in animation loop`, e); + } + }; + this._engine = engine; + this.fpsLimit = 120; + this.smooth = false; + this._delay = 0; + this._duration = 0; + this._lifeTime = 0; + this._firstStart = true; + this.started = false; + this.destroyed = false; + this._paused = true; + this.lastFrameTime = 0; + this.zLayers = 100; + this.pageHidden = false; + this._sourceOptions = sourceOptions; + this._initialSourceOptions = sourceOptions; + this.retina = new Retina(this); + this.canvas = new Canvas(this); + this.particles = new Particles(this._engine, this); + this.pathGenerators = new Map(); + this.interactivity = { + mouse: { + clicking: false, + inside: false + } + }; + this.plugins = new Map(); + this.drawers = new Map(); + this._options = loadContainerOptions(this._engine, this); + this.actualOptions = loadContainerOptions(this._engine, this); + this._eventListeners = new EventListeners(this); + if (typeof IntersectionObserver !== "undefined" && IntersectionObserver) { + this._intersectionObserver = new IntersectionObserver(entries => this._intersectionManager(entries)); + } + this._engine.dispatchEvent("containerBuilt", { + container: this + }); + } + get options() { + return this._options; + } + get sourceOptions() { + return this._sourceOptions; + } + addClickHandler(callback) { + if (!guardCheck(this)) { + return; + } + const el = this.interactivity.element; + if (!el) { + return; + } + const clickOrTouchHandler = (e, pos, radius) => { + if (!guardCheck(this)) { + return; + } + const pxRatio = this.retina.pixelRatio, + posRetina = { + x: pos.x * pxRatio, + y: pos.y * pxRatio + }, + particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio); + callback(e, particles); + }; + const clickHandler = e => { + if (!guardCheck(this)) { + return; + } + const mouseEvent = e, + pos = { + x: mouseEvent.offsetX || mouseEvent.clientX, + y: mouseEvent.offsetY || mouseEvent.clientY + }; + clickOrTouchHandler(e, pos, 1); + }; + const touchStartHandler = () => { + if (!guardCheck(this)) { + return; + } + touched = true; + touchMoved = false; + }; + const touchMoveHandler = () => { + if (!guardCheck(this)) { + return; + } + touchMoved = true; + }; + const touchEndHandler = e => { + if (!guardCheck(this)) { + return; + } + if (touched && !touchMoved) { + const touchEvent = e; + let lastTouch = touchEvent.touches[touchEvent.touches.length - 1]; + if (!lastTouch) { + lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1]; + if (!lastTouch) { + return; + } + } + const element = this.canvas.element, + canvasRect = element ? element.getBoundingClientRect() : undefined, + pos = { + x: lastTouch.clientX - (canvasRect ? canvasRect.left : 0), + y: lastTouch.clientY - (canvasRect ? canvasRect.top : 0) + }; + clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY)); + } + touched = false; + touchMoved = false; + }; + const touchCancelHandler = () => { + if (!guardCheck(this)) { + return; + } + touched = false; + touchMoved = false; + }; + let touched = false, + touchMoved = false; + el.addEventListener("click", clickHandler); + el.addEventListener("touchstart", touchStartHandler); + el.addEventListener("touchmove", touchMoveHandler); + el.addEventListener("touchend", touchEndHandler); + el.addEventListener("touchcancel", touchCancelHandler); + } + addLifeTime(value) { + this._lifeTime += value; + } + addPath(key, generator, override = false) { + if (!guardCheck(this) || !override && this.pathGenerators.has(key)) { + return false; + } + this.pathGenerators.set(key, generator ?? defaultPathGenerator); + return true; + } + alive() { + return !this._duration || this._lifeTime <= this._duration; + } + destroy() { + if (!guardCheck(this)) { + return; + } + this.stop(); + this.particles.destroy(); + this.canvas.destroy(); + for (const [, drawer] of this.drawers) { + drawer.destroy && drawer.destroy(this); + } + for (const key of this.drawers.keys()) { + this.drawers.delete(key); + } + this._engine.plugins.destroy(this); + this.destroyed = true; + const mainArr = this._engine.dom(), + idx = mainArr.findIndex(t => t === this); + if (idx >= 0) { + mainArr.splice(idx, 1); + } + this._engine.dispatchEvent("containerDestroyed", { + container: this + }); + } + draw(force) { + if (!guardCheck(this)) { + return; + } + let refreshTime = force; + this._drawAnimationFrame = requestAnimationFrame(async timestamp => { + if (refreshTime) { + this.lastFrameTime = undefined; + refreshTime = false; + } + await this._nextFrame(timestamp); + }); + } + async export(type, options = {}) { + for (const [, plugin] of this.plugins) { + if (!plugin.export) { + continue; + } + const res = await plugin.export(type, options); + if (!res.supported) { + continue; + } + return res.blob; + } + getLogger().error(`${errorPrefix} - Export plugin with type ${type} not found`); + } + getAnimationStatus() { + return !this._paused && !this.pageHidden && guardCheck(this); + } + handleClickMode(mode) { + if (!guardCheck(this)) { + return; + } + this.particles.handleClickMode(mode); + for (const [, plugin] of this.plugins) { + plugin.handleClickMode && plugin.handleClickMode(mode); + } + } + async init() { + if (!guardCheck(this)) { + return; + } + const shapes = this._engine.plugins.getSupportedShapes(); + for (const type of shapes) { + const drawer = this._engine.plugins.getShapeDrawer(type); + if (drawer) { + this.drawers.set(type, drawer); + } + } + this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions); + this.actualOptions = loadContainerOptions(this._engine, this, this._options); + const availablePlugins = this._engine.plugins.getAvailablePlugins(this); + for (const [id, plugin] of availablePlugins) { + this.plugins.set(id, plugin); + } + this.retina.init(); + await this.canvas.init(); + this.updateActualOptions(); + this.canvas.initBackground(); + this.canvas.resize(); + this.zLayers = this.actualOptions.zLayers; + this._duration = getRangeValue(this.actualOptions.duration) * 1000; + this._delay = getRangeValue(this.actualOptions.delay) * 1000; + this._lifeTime = 0; + this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120; + this.smooth = this.actualOptions.smooth; + for (const [, drawer] of this.drawers) { + drawer.init && (await drawer.init(this)); + } + for (const [, plugin] of this.plugins) { + plugin.init && (await plugin.init()); + } + this._engine.dispatchEvent("containerInit", { + container: this + }); + this.particles.init(); + this.particles.setDensity(); + for (const [, plugin] of this.plugins) { + plugin.particlesSetup && plugin.particlesSetup(); + } + this._engine.dispatchEvent("particlesSetup", { + container: this + }); + } + async loadTheme(name) { + if (!guardCheck(this)) { + return; + } + this._currentTheme = name; + await this.refresh(); + } + pause() { + if (!guardCheck(this)) { + return; + } + if (this._drawAnimationFrame !== undefined) { + cancelAnimationFrame(this._drawAnimationFrame); + delete this._drawAnimationFrame; + } + if (this._paused) { + return; + } + for (const [, plugin] of this.plugins) { + plugin.pause && plugin.pause(); + } + if (!this.pageHidden) { + this._paused = true; + } + this._engine.dispatchEvent("containerPaused", { + container: this + }); + } + play(force) { + if (!guardCheck(this)) { + return; + } + const needsUpdate = this._paused || force; + if (this._firstStart && !this.actualOptions.autoPlay) { + this._firstStart = false; + return; + } + if (this._paused) { + this._paused = false; + } + if (needsUpdate) { + for (const [, plugin] of this.plugins) { + if (plugin.play) { + plugin.play(); + } + } + } + this._engine.dispatchEvent("containerPlay", { + container: this + }); + this.draw(needsUpdate || false); + } + async refresh() { + if (!guardCheck(this)) { + return; + } + this.stop(); + return this.start(); + } + async reset() { + if (!guardCheck(this)) { + return; + } + this._initialSourceOptions = undefined; + this._options = loadContainerOptions(this._engine, this); + this.actualOptions = loadContainerOptions(this._engine, this, this._options); + return this.refresh(); + } + setNoise(noiseOrGenerator, init, update) { + if (!guardCheck(this)) { + return; + } + this.setPath(noiseOrGenerator, init, update); + } + setPath(pathOrGenerator, init, update) { + if (!pathOrGenerator || !guardCheck(this)) { + return; + } + const pathGenerator = { + ...defaultPathGenerator + }; + if (isFunction(pathOrGenerator)) { + pathGenerator.generate = pathOrGenerator; + if (init) { + pathGenerator.init = init; + } + if (update) { + pathGenerator.update = update; + } + } else { + const oldGenerator = pathGenerator; + pathGenerator.generate = pathOrGenerator.generate || oldGenerator.generate; + pathGenerator.init = pathOrGenerator.init || oldGenerator.init; + pathGenerator.update = pathOrGenerator.update || oldGenerator.update; + } + this.addPath(defaultPathGeneratorKey, pathGenerator, true); + } + async start() { + if (!guardCheck(this) || this.started) { + return; + } + await this.init(); + this.started = true; + await new Promise(resolve => { + this._delayTimeout = setTimeout(async () => { + this._eventListeners.addListeners(); + if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) { + this._intersectionObserver.observe(this.interactivity.element); + } + for (const [, plugin] of this.plugins) { + plugin.start && (await plugin.start()); + } + this._engine.dispatchEvent("containerStarted", { + container: this + }); + this.play(); + resolve(); + }, this._delay); + }); + } + stop() { + if (!guardCheck(this) || !this.started) { + return; + } + if (this._delayTimeout) { + clearTimeout(this._delayTimeout); + delete this._delayTimeout; + } + this._firstStart = true; + this.started = false; + this._eventListeners.removeListeners(); + this.pause(); + this.particles.clear(); + this.canvas.stop(); + if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) { + this._intersectionObserver.unobserve(this.interactivity.element); + } + for (const [, plugin] of this.plugins) { + plugin.stop && plugin.stop(); + } + for (const key of this.plugins.keys()) { + this.plugins.delete(key); + } + this._sourceOptions = this._options; + this._engine.dispatchEvent("containerStopped", { + container: this + }); + } + updateActualOptions() { + this.actualOptions.responsive = []; + const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options); + this.actualOptions.setTheme(this._currentTheme); + if (this.responsiveMaxWidth === newMaxWidth) { + return false; + } + this.responsiveMaxWidth = newMaxWidth; + return true; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/EventDispatcher.js +class EventDispatcher { + constructor() { + this._listeners = new Map(); + } + addEventListener(type, listener) { + this.removeEventListener(type, listener); + let arr = this._listeners.get(type); + if (!arr) { + arr = []; + this._listeners.set(type, arr); + } + arr.push(listener); + } + dispatchEvent(type, args) { + const listeners = this._listeners.get(type); + listeners && listeners.forEach(handler => handler(args)); + } + hasEventListener(type) { + return !!this._listeners.get(type); + } + removeAllEventListeners(type) { + if (!type) { + this._listeners = new Map(); + } else { + this._listeners.delete(type); + } + } + removeEventListener(type, listener) { + const arr = this._listeners.get(type); + if (!arr) { + return; + } + const length = arr.length, + idx = arr.indexOf(listener); + if (idx < 0) { + return; + } + if (length === 1) { + this._listeners.delete(type); + } else { + arr.splice(idx, 1); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/Plugins.js + +function getItemsFromInitializer(container, map, initializers, force = false) { + let res = map.get(container); + if (!res || force) { + res = [...initializers.values()].map(t => t(container)); + map.set(container, res); + } + return res; +} +class Plugins { + constructor(engine) { + this._engine = engine; + this.plugins = []; + this._initializers = { + interactors: new Map(), + movers: new Map(), + updaters: new Map() + }; + this.interactors = new Map(); + this.movers = new Map(); + this.updaters = new Map(); + this.presets = new Map(); + this.drawers = new Map(); + this.pathGenerators = new Map(); + } + addInteractor(name, initInteractor) { + this._initializers.interactors.set(name, initInteractor); + } + addParticleMover(name, initMover) { + this._initializers.movers.set(name, initMover); + } + addParticleUpdater(name, initUpdater) { + this._initializers.updaters.set(name, initUpdater); + } + addPathGenerator(type, pathGenerator) { + !this.getPathGenerator(type) && this.pathGenerators.set(type, pathGenerator); + } + addPlugin(plugin) { + !this.getPlugin(plugin.id) && this.plugins.push(plugin); + } + addPreset(presetKey, options, override = false) { + (override || !this.getPreset(presetKey)) && this.presets.set(presetKey, options); + } + addShapeDrawer(types, drawer) { + executeOnSingleOrMultiple(types, type => { + !this.getShapeDrawer(type) && this.drawers.set(type, drawer); + }); + } + destroy(container) { + this.updaters.delete(container); + this.movers.delete(container); + this.interactors.delete(container); + } + getAvailablePlugins(container) { + const res = new Map(); + for (const plugin of this.plugins) { + plugin.needsPlugin(container.actualOptions) && res.set(plugin.id, plugin.getPlugin(container)); + } + return res; + } + getInteractors(container, force = false) { + return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force); + } + getMovers(container, force = false) { + return getItemsFromInitializer(container, this.movers, this._initializers.movers, force); + } + getPathGenerator(type) { + return this.pathGenerators.get(type); + } + getPlugin(plugin) { + return this.plugins.find(t => t.id === plugin); + } + getPreset(preset) { + return this.presets.get(preset); + } + getShapeDrawer(type) { + return this.drawers.get(type); + } + getSupportedShapes() { + return this.drawers.keys(); + } + getUpdaters(container, force = false) { + return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force); + } + loadOptions(options, sourceOptions) { + for (const plugin of this.plugins) { + plugin.loadOptions(options, sourceOptions); + } + } + loadParticlesOptions(container, options, ...sourceOptions) { + const updaters = this.updaters.get(container); + if (!updaters) { + return; + } + for (const updater of updaters) { + updater.loadOptions && updater.loadOptions(options, ...sourceOptions); + } + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Engine.js + + + + + + +async function getDataFromUrl(data) { + const url = itemFromSingleOrMultiple(data.url, data.index); + if (!url) { + return data.fallback; + } + const response = await fetch(url); + if (response.ok) { + return response.json(); + } + getLogger().error(`${errorPrefix} ${response.status} while retrieving config file`); + return data.fallback; +} +function isParamsEmpty(params) { + return !params.id && !params.element && !params.url && !params.options; +} +function isParams(obj) { + return !isParamsEmpty(obj); +} +class Engine { + constructor() { + this._configs = new Map(); + this._domArray = []; + this._eventDispatcher = new EventDispatcher(); + this._initialized = false; + this.plugins = new Plugins(this); + } + get configs() { + const res = {}; + for (const [name, config] of this._configs) { + res[name] = config; + } + return res; + } + get version() { + return "2.12.0"; + } + addConfig(nameOrConfig, config) { + if (isString(nameOrConfig)) { + if (config) { + config.name = nameOrConfig; + this._configs.set(nameOrConfig, config); + } + } else { + this._configs.set(nameOrConfig.name ?? "default", nameOrConfig); + } + } + addEventListener(type, listener) { + this._eventDispatcher.addEventListener(type, listener); + } + async addInteractor(name, interactorInitializer, refresh = true) { + this.plugins.addInteractor(name, interactorInitializer); + await this.refresh(refresh); + } + async addMover(name, moverInitializer, refresh = true) { + this.plugins.addParticleMover(name, moverInitializer); + await this.refresh(refresh); + } + async addParticleUpdater(name, updaterInitializer, refresh = true) { + this.plugins.addParticleUpdater(name, updaterInitializer); + await this.refresh(refresh); + } + async addPathGenerator(name, generator, refresh = true) { + this.plugins.addPathGenerator(name, generator); + await this.refresh(refresh); + } + async addPlugin(plugin, refresh = true) { + this.plugins.addPlugin(plugin); + await this.refresh(refresh); + } + async addPreset(preset, options, override = false, refresh = true) { + this.plugins.addPreset(preset, options, override); + await this.refresh(refresh); + } + async addShape(shape, drawer, initOrRefresh, afterEffectOrRefresh, destroyOrRefresh, refresh = true) { + let customDrawer; + let realRefresh = refresh, + realInit, + realAfterEffect, + realDestroy; + if (isBoolean(initOrRefresh)) { + realRefresh = initOrRefresh; + realInit = undefined; + } else { + realInit = initOrRefresh; + } + if (isBoolean(afterEffectOrRefresh)) { + realRefresh = afterEffectOrRefresh; + realAfterEffect = undefined; + } else { + realAfterEffect = afterEffectOrRefresh; + } + if (isBoolean(destroyOrRefresh)) { + realRefresh = destroyOrRefresh; + realDestroy = undefined; + } else { + realDestroy = destroyOrRefresh; + } + if (isFunction(drawer)) { + customDrawer = { + afterEffect: realAfterEffect, + destroy: realDestroy, + draw: drawer, + init: realInit + }; + } else { + customDrawer = drawer; + } + this.plugins.addShapeDrawer(shape, customDrawer); + await this.refresh(realRefresh); + } + dispatchEvent(type, args) { + this._eventDispatcher.dispatchEvent(type, args); + } + dom() { + return this._domArray; + } + domItem(index) { + const dom = this.dom(), + item = dom[index]; + if (!item || item.destroyed) { + dom.splice(index, 1); + return; + } + return item; + } + init() { + if (this._initialized) { + return; + } + this._initialized = true; + } + async load(tagIdOrOptionsOrParams, options) { + return this.loadFromArray(tagIdOrOptionsOrParams, options); + } + async loadFromArray(tagIdOrOptionsOrParams, optionsOrIndex, index) { + let params; + if (!isParams(tagIdOrOptionsOrParams)) { + params = {}; + if (isString(tagIdOrOptionsOrParams)) { + params.id = tagIdOrOptionsOrParams; + } else { + params.options = tagIdOrOptionsOrParams; + } + if (isNumber(optionsOrIndex)) { + params.index = optionsOrIndex; + } else { + params.options = optionsOrIndex ?? params.options; + } + params.index = index ?? params.index; + } else { + params = tagIdOrOptionsOrParams; + } + return this._loadParams(params); + } + async loadJSON(tagId, pathConfigJson, index) { + let url, id; + if (isNumber(pathConfigJson) || pathConfigJson === undefined) { + url = tagId; + } else { + id = tagId; + url = pathConfigJson; + } + return this._loadParams({ + id: id, + url, + index + }); + } + async refresh(refresh = true) { + if (!refresh) { + return; + } + this.dom().forEach(t => t.refresh()); + } + removeEventListener(type, listener) { + this._eventDispatcher.removeEventListener(type, listener); + } + async set(id, element, options, index) { + const params = { + index + }; + if (isString(id)) { + params.id = id; + } else { + params.element = id; + } + if (element instanceof HTMLElement) { + params.element = element; + } else { + params.options = element; + } + if (isNumber(options)) { + params.index = options; + } else { + params.options = options ?? params.options; + } + return this._loadParams(params); + } + async setJSON(id, element, pathConfigJson, index) { + const params = {}; + if (id instanceof HTMLElement) { + params.element = id; + params.url = element; + params.index = pathConfigJson; + } else { + params.id = id; + params.element = element; + params.url = pathConfigJson; + params.index = index; + } + return this._loadParams(params); + } + setOnClickHandler(callback) { + const dom = this.dom(); + if (!dom.length) { + throw new Error(`${errorPrefix} can only set click handlers after calling tsParticles.load()`); + } + for (const domItem of dom) { + domItem.addClickHandler(callback); + } + } + async _loadParams(params) { + const id = params.id ?? `tsparticles${Math.floor(getRandom() * 10000)}`, + { + index, + url + } = params, + options = url ? await getDataFromUrl({ + fallback: params.options, + url, + index + }) : params.options; + let domContainer = params.element ?? document.getElementById(id); + if (!domContainer) { + domContainer = document.createElement("div"); + domContainer.id = id; + document.body.append(domContainer); + } + const currentOptions = itemFromSingleOrMultiple(options, index), + dom = this.dom(), + oldIndex = dom.findIndex(v => v.id === id); + if (oldIndex >= 0) { + const old = this.domItem(oldIndex); + if (old && !old.destroyed) { + old.destroy(); + dom.splice(oldIndex, 1); + } + } + let canvasEl; + if (domContainer.tagName.toLowerCase() === "canvas") { + canvasEl = domContainer; + canvasEl.dataset[generatedAttribute] = "false"; + } else { + const existingCanvases = domContainer.getElementsByTagName("canvas"); + if (existingCanvases.length) { + canvasEl = existingCanvases[0]; + canvasEl.dataset[generatedAttribute] = "false"; + } else { + canvasEl = document.createElement("canvas"); + canvasEl.dataset[generatedAttribute] = "true"; + domContainer.appendChild(canvasEl); + } + } + if (!canvasEl.style.width) { + canvasEl.style.width = "100%"; + } + if (!canvasEl.style.height) { + canvasEl.style.height = "100%"; + } + const newItem = new Container(this, id, currentOptions); + if (oldIndex >= 0) { + dom.splice(oldIndex, 0, newItem); + } else { + dom.push(newItem); + } + newItem.canvas.loadCanvas(canvasEl); + await newItem.start(); + return newItem; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/HslColorManager.js + + +class HslColorManager { + constructor() { + this.key = "hsl"; + this.stringPrefix = "hsl"; + } + handleColor(color) { + const colorValue = color.value, + hslColor = colorValue.hsl ?? color.value; + if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) { + return hslToRgb(hslColor); + } + } + handleRangeColor(color) { + const colorValue = color.value, + hslColor = colorValue.hsl ?? color.value; + if (hslColor.h !== undefined && hslColor.l !== undefined) { + return hslToRgb({ + h: getRangeValue(hslColor.h), + l: getRangeValue(hslColor.l), + s: getRangeValue(hslColor.s) + }); + } + } + parseString(input) { + if (!input.startsWith("hsl")) { + return; + } + const regex = /hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i, + result = regex.exec(input); + return result ? hslaToRgba({ + a: result.length > 4 ? parseAlpha(result[5]) : 1, + h: parseInt(result[1], 10), + l: parseInt(result[3], 10), + s: parseInt(result[2], 10) + }) : undefined; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Utils/RgbColorManager.js + +class RgbColorManager { + constructor() { + this.key = "rgb"; + this.stringPrefix = "rgb"; + } + handleColor(color) { + const colorValue = color.value, + rgbColor = colorValue.rgb ?? color.value; + if (rgbColor.r !== undefined) { + return rgbColor; + } + } + handleRangeColor(color) { + const colorValue = color.value, + rgbColor = colorValue.rgb ?? color.value; + if (rgbColor.r !== undefined) { + return { + r: getRangeValue(rgbColor.r), + g: getRangeValue(rgbColor.g), + b: getRangeValue(rgbColor.b) + }; + } + } + parseString(input) { + if (!input.startsWith(this.stringPrefix)) { + return; + } + const regex = /rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i, + result = regex.exec(input); + return result ? { + a: result.length > 4 ? parseAlpha(result[5]) : 1, + b: parseInt(result[3], 10), + g: parseInt(result[2], 10), + r: parseInt(result[1], 10) + } : undefined; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/init.js + + + + +function init() { + const rgbColorManager = new RgbColorManager(), + hslColorManager = new HslColorManager(); + addColorManager(rgbColorManager); + addColorManager(hslColorManager); + const engine = new Engine(); + engine.init(); + return engine; +} +;// CONCATENATED MODULE: ../../engine/dist/esm/Core/Utils/ParticlesInteractorBase.js +class ParticlesInteractorBase { + constructor(container) { + this.container = container; + this.type = "particles"; + } +} +;// CONCATENATED MODULE: ../../engine/dist/esm/exports.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;// CONCATENATED MODULE: ../../engine/dist/esm/index.js + + +const tsParticles = init(); +if (!isSsr()) { + window.tsParticles = tsParticles; +} + + + +;// CONCATENATED MODULE: ../pjs/dist/esm/marcbruederlin/Particles.js + +class Particles_Particles { + static init(options) { + const particles = new Particles_Particles(), + selector = options.selector; + if (!selector) { + throw new Error("No selector provided"); + } + const el = document.querySelector(selector); + if (!el) { + throw new Error("No element found for selector"); + } + tsParticles.set(selector.replace(".", "").replace("!", ""), el, { + fullScreen: { + enable: false + }, + particles: { + color: { + value: options.color ?? "!000000" + }, + links: { + color: "random", + distance: options.minDistance ?? 120, + enable: options.connectParticles ?? false + }, + move: { + enable: true, + speed: options.speed ?? 0.5 + }, + number: { + value: options.maxParticles ?? 100 + }, + size: { + value: { + min: 1, + max: options.sizeVariations ?? 3 + } + } + }, + responsive: options.responsive?.map(responsive => ({ + maxWidth: responsive.breakpoint, + options: { + particles: { + color: { + value: responsive.options?.color + }, + links: { + distance: responsive.options?.minDistance, + enable: responsive.options?.connectParticles + }, + number: { + value: options.maxParticles + }, + move: { + enable: true, + speed: responsive.options?.speed + }, + size: { + value: responsive.options?.sizeVariations + } + } + } + })) + }).then(container => { + particles._container = container; + }); + return particles; + } + destroy() { + const container = this._container; + container && container.destroy(); + } + pauseAnimation() { + const container = this._container; + container && container.pause(); + } + resumeAnimation() { + const container = this._container; + container && container.play(); + } +} +;// CONCATENATED MODULE: ../pjs/dist/esm/VincentGarreau/particles.js +const initParticlesJS = engine => { + const particlesJS = (tagId, options) => { + return engine.load(tagId, options); + }; + particlesJS.load = (tagId, pathConfigJson, callback) => { + engine.loadJSON(tagId, pathConfigJson).then(container => { + if (container) { + callback(container); + } + }).catch(() => { + callback(undefined); + }); + }; + particlesJS.setOnClickHandler = callback => { + engine.setOnClickHandler(callback); + }; + const pJSDom = engine.dom(); + return { + particlesJS, + pJSDom + }; +}; + +;// CONCATENATED MODULE: ../pjs/dist/esm/index.js + + +const initPjs = engine => { + const { + particlesJS, + pJSDom + } = initParticlesJS(engine); + window.particlesJS = particlesJS; + window.pJSDom = pJSDom; + window.Particles = Particles_Particles; + return { + particlesJS, + pJSDom, + Particles: Particles_Particles + }; +}; + +;// CONCATENATED MODULE: ../../move/base/dist/esm/Utils.js + +function applyDistance(particle) { + const initialPosition = particle.initialPosition, + { + dx, + dy + } = getDistances(initialPosition, particle.position), + dxFixed = Math.abs(dx), + dyFixed = Math.abs(dy), + { + maxDistance + } = particle.retina, + hDistance = maxDistance.horizontal, + vDistance = maxDistance.vertical; + if (!hDistance && !vDistance) { + return; + } + if ((hDistance && dxFixed >= hDistance || vDistance && dyFixed >= vDistance) && !particle.misplaced) { + particle.misplaced = !!hDistance && dxFixed > hDistance || !!vDistance && dyFixed > vDistance; + if (hDistance) { + particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x; + } + if (vDistance) { + particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y; + } + } else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) { + particle.misplaced = false; + } else if (particle.misplaced) { + const pos = particle.position, + vel = particle.velocity; + if (hDistance && (pos.x < initialPosition.x && vel.x < 0 || pos.x > initialPosition.x && vel.x > 0)) { + vel.x *= -getRandom(); + } + if (vDistance && (pos.y < initialPosition.y && vel.y < 0 || pos.y > initialPosition.y && vel.y > 0)) { + vel.y *= -getRandom(); + } + } +} +function move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta) { + applyPath(particle, delta); + const gravityOptions = particle.gravity, + gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -1 : 1; + if (moveDrift && moveSpeed) { + particle.velocity.x += moveDrift * delta.factor / (60 * moveSpeed); + } + if (gravityOptions?.enable && moveSpeed) { + particle.velocity.y += gravityFactor * (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed); + } + const decay = particle.moveDecay; + particle.velocity.multTo(decay); + const velocity = particle.velocity.mult(moveSpeed); + if (gravityOptions?.enable && maxSpeed > 0 && (!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed || gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed)) { + velocity.y = gravityFactor * maxSpeed; + if (moveSpeed) { + particle.velocity.y = velocity.y / moveSpeed; + } + } + const zIndexOptions = particle.options.zIndex, + zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate; + velocity.multTo(zVelocityFactor); + const { + position + } = particle; + position.addTo(velocity); + if (moveOptions.vibrate) { + position.x += Math.sin(position.x * Math.cos(position.y)); + position.y += Math.cos(position.y * Math.sin(position.x)); + } +} +function spin(particle, moveSpeed) { + const container = particle.container; + if (!particle.spin) { + return; + } + const updateFunc = { + x: particle.spin.direction === "clockwise" ? Math.cos : Math.sin, + y: particle.spin.direction === "clockwise" ? Math.sin : Math.cos + }; + particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle); + particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle); + particle.spin.radius += particle.spin.acceleration; + const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height); + if (particle.spin.radius > maxCanvasSize / 2) { + particle.spin.radius = maxCanvasSize / 2; + particle.spin.acceleration *= -1; + } else if (particle.spin.radius < 0) { + particle.spin.radius = 0; + particle.spin.acceleration *= -1; + } + particle.spin.angle += moveSpeed / 100 * (1 - particle.spin.radius / maxCanvasSize); +} +function applyPath(particle, delta) { + const particlesOptions = particle.options, + pathOptions = particlesOptions.move.path, + pathEnabled = pathOptions.enable; + if (!pathEnabled) { + return; + } + if (particle.lastPathTime <= particle.pathDelay) { + particle.lastPathTime += delta.value; + return; + } + const path = particle.pathGenerator?.generate(particle, delta); + if (path) { + particle.velocity.addTo(path); + } + if (pathOptions.clamp) { + particle.velocity.x = clamp(particle.velocity.x, -1, 1); + particle.velocity.y = clamp(particle.velocity.y, -1, 1); + } + particle.lastPathTime -= particle.pathDelay; +} +function getProximitySpeedFactor(particle) { + return particle.slow.inRange ? particle.slow.factor : 1; +} +;// CONCATENATED MODULE: ../../move/base/dist/esm/BaseMover.js + + +const diffFactor = 2; +class BaseMover { + constructor() { + this._initSpin = particle => { + const container = particle.container, + options = particle.options, + spinOptions = options.move.spin; + if (!spinOptions.enable) { + return; + } + const spinPos = spinOptions.position ?? { + x: 50, + y: 50 + }, + spinCenter = { + x: spinPos.x / 100 * container.canvas.size.width, + y: spinPos.y / 100 * container.canvas.size.height + }, + pos = particle.getPosition(), + distance = getDistance(pos, spinCenter), + spinAcceleration = getRangeValue(spinOptions.acceleration); + particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio; + particle.spin = { + center: spinCenter, + direction: particle.velocity.x >= 0 ? "clockwise" : "counter-clockwise", + angle: particle.velocity.angle, + radius: distance, + acceleration: particle.retina.spinAcceleration + }; + }; + } + init(particle) { + const options = particle.options, + gravityOptions = options.move.gravity; + particle.gravity = { + enable: gravityOptions.enable, + acceleration: getRangeValue(gravityOptions.acceleration), + inverse: gravityOptions.inverse + }; + this._initSpin(particle); + } + isEnabled(particle) { + return !particle.destroyed && particle.options.move.enable; + } + move(particle, delta) { + const particleOptions = particle.options, + moveOptions = particleOptions.move; + if (!moveOptions.enable) { + return; + } + const container = particle.container, + pxRatio = container.retina.pixelRatio, + slowFactor = getProximitySpeedFactor(particle), + baseSpeed = (particle.retina.moveSpeed ??= getRangeValue(moveOptions.speed) * pxRatio) * container.retina.reduceFactor, + moveDrift = particle.retina.moveDrift ??= getRangeValue(particle.options.move.drift) * pxRatio, + maxSize = getRangeMax(particleOptions.size.value) * pxRatio, + sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, + moveSpeed = baseSpeed * sizeFactor * slowFactor * (delta.factor || 1) / diffFactor, + maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed; + if (moveOptions.spin.enable) { + spin(particle, moveSpeed); + } else { + move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta); + } + applyDistance(particle); + } +} +;// CONCATENATED MODULE: ../../move/base/dist/esm/index.js + +async function loadBaseMover(engine, refresh = true) { + await engine.addMover("base", () => new BaseMover(), refresh); +} +;// CONCATENATED MODULE: ../../shapes/circle/dist/esm/CircleDrawer.js + +class CircleDrawer { + draw(context, particle, radius) { + if (!particle.circleRange) { + particle.circleRange = { + min: 0, + max: Math.PI * 2 + }; + } + const circleRange = particle.circleRange; + context.arc(0, 0, radius, circleRange.min, circleRange.max, false); + } + getSidesCount() { + return 12; + } + particleInit(container, particle) { + const shapeData = particle.shapeData, + angle = shapeData?.angle ?? { + max: 360, + min: 0 + }; + particle.circleRange = !isObject(angle) ? { + min: 0, + max: angle * Math.PI / 180 + } : { + min: angle.min * Math.PI / 180, + max: angle.max * Math.PI / 180 + }; + } +} +;// CONCATENATED MODULE: ../../shapes/circle/dist/esm/index.js + +async function loadCircleShape(engine, refresh = true) { + await engine.addShape("circle", new CircleDrawer(), refresh); +} +;// CONCATENATED MODULE: ../../updaters/color/dist/esm/Utils.js + +function updateColorValue(delta, colorValue, valueAnimation, max, decrease) { + if (!colorValue || !valueAnimation.enable || (colorValue.maxLoops ?? 0) > 0 && (colorValue.loops ?? 0) > (colorValue.maxLoops ?? 0)) { + return; + } + if (!colorValue.time) { + colorValue.time = 0; + } + if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) { + colorValue.time += delta.value; + } + if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) { + return; + } + const offset = randomInRange(valueAnimation.offset), + velocity = (colorValue.velocity ?? 0) * delta.factor + offset * 3.6, + decay = colorValue.decay ?? 1; + if (!decrease || colorValue.status === "increasing") { + colorValue.value += velocity; + if (colorValue.value > max) { + if (!colorValue.loops) { + colorValue.loops = 0; + } + colorValue.loops++; + if (decrease) { + colorValue.status = "decreasing"; + colorValue.value -= colorValue.value % max; + } + } + } else { + colorValue.value -= velocity; + if (colorValue.value < 0) { + if (!colorValue.loops) { + colorValue.loops = 0; + } + colorValue.loops++; + colorValue.status = "increasing"; + colorValue.value += colorValue.value; + } + } + if (colorValue.velocity && decay !== 1) { + colorValue.velocity *= decay; + } + if (colorValue.value > max) { + colorValue.value %= max; + } +} +function updateColor(particle, delta) { + const { + h: hAnimation, + s: sAnimation, + l: lAnimation + } = particle.options.color.animation, + { + color + } = particle; + if (!color) { + return; + } + const { + h, + s, + l + } = color; + if (h) { + updateColorValue(delta, h, hAnimation, 360, false); + } + if (s) { + updateColorValue(delta, s, sAnimation, 100, true); + } + if (l) { + updateColorValue(delta, l, lAnimation, 100, true); + } +} +;// CONCATENATED MODULE: ../../updaters/color/dist/esm/ColorUpdater.js + + +class ColorUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates); + if (hslColor) { + particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor); + } + } + isEnabled(particle) { + const { + h: hAnimation, + s: sAnimation, + l: lAnimation + } = particle.options.color.animation, + { + color + } = particle; + return !particle.destroyed && !particle.spawning && (color?.h.value !== undefined && hAnimation.enable || color?.s.value !== undefined && sAnimation.enable || color?.l.value !== undefined && lAnimation.enable); + } + update(particle, delta) { + updateColor(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/color/dist/esm/index.js + +async function loadColorUpdater(engine, refresh = true) { + await engine.addParticleUpdater("color", container => new ColorUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../updaters/opacity/dist/esm/Utils.js + +function checkDestroy(particle, value, minValue, maxValue) { + switch (particle.options.opacity.animation.destroy) { + case "max": + if (value >= maxValue) { + particle.destroy(); + } + break; + case "min": + if (value <= minValue) { + particle.destroy(); + } + break; + } +} +function updateOpacity(particle, delta) { + const data = particle.opacity; + if (particle.destroyed || !data?.enable || (data.maxLoops ?? 0) > 0 && (data.loops ?? 0) > (data.maxLoops ?? 0)) { + return; + } + const minValue = data.min, + maxValue = data.max, + decay = data.decay ?? 1; + if (!data.time) { + data.time = 0; + } + if ((data.delayTime ?? 0) > 0 && data.time < (data.delayTime ?? 0)) { + data.time += delta.value; + } + if ((data.delayTime ?? 0) > 0 && data.time < (data.delayTime ?? 0)) { + return; + } + switch (data.status) { + case "increasing": + if (data.value >= maxValue) { + data.status = "decreasing"; + if (!data.loops) { + data.loops = 0; + } + data.loops++; + } else { + data.value += (data.velocity ?? 0) * delta.factor; + } + break; + case "decreasing": + if (data.value <= minValue) { + data.status = "increasing"; + if (!data.loops) { + data.loops = 0; + } + data.loops++; + } else { + data.value -= (data.velocity ?? 0) * delta.factor; + } + break; + } + if (data.velocity && data.decay !== 1) { + data.velocity *= decay; + } + checkDestroy(particle, data.value, minValue, maxValue); + if (!particle.destroyed) { + data.value = clamp(data.value, minValue, maxValue); + } +} +;// CONCATENATED MODULE: ../../updaters/opacity/dist/esm/OpacityUpdater.js + + +class OpacityUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const opacityOptions = particle.options.opacity; + particle.opacity = initParticleNumericAnimationValue(opacityOptions, 1); + const opacityAnimation = opacityOptions.animation; + if (opacityAnimation.enable) { + particle.opacity.velocity = getRangeValue(opacityAnimation.speed) / 100 * this.container.retina.reduceFactor; + if (!opacityAnimation.sync) { + particle.opacity.velocity *= getRandom(); + } + } + } + isEnabled(particle) { + return !particle.destroyed && !particle.spawning && !!particle.opacity && particle.opacity.enable && ((particle.opacity.maxLoops ?? 0) <= 0 || (particle.opacity.maxLoops ?? 0) > 0 && (particle.opacity.loops ?? 0) < (particle.opacity.maxLoops ?? 0)); + } + reset(particle) { + if (particle.opacity) { + particle.opacity.time = 0; + particle.opacity.loops = 0; + } + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateOpacity(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/opacity/dist/esm/index.js + +async function loadOpacityUpdater(engine, refresh = true) { + await engine.addParticleUpdater("opacity", container => new OpacityUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/Utils.js + +function bounceHorizontal(data) { + if (data.outMode !== "bounce" && data.outMode !== "bounce-horizontal" && data.outMode !== "bounceHorizontal" && data.outMode !== "split" || data.direction !== "left" && data.direction !== "right") { + return; + } + if (data.bounds.right < 0 && data.direction === "left") { + data.particle.position.x = data.size + data.offset.x; + } else if (data.bounds.left > data.canvasSize.width && data.direction === "right") { + data.particle.position.x = data.canvasSize.width - data.size - data.offset.x; + } + const velocity = data.particle.velocity.x; + let bounced = false; + if (data.direction === "right" && data.bounds.right >= data.canvasSize.width && velocity > 0 || data.direction === "left" && data.bounds.left <= 0 && velocity < 0) { + const newVelocity = getValue(data.particle.options.bounce.horizontal); + data.particle.velocity.x *= -newVelocity; + bounced = true; + } + if (!bounced) { + return; + } + const minPos = data.offset.x + data.size; + if (data.bounds.right >= data.canvasSize.width && data.direction === "right") { + data.particle.position.x = data.canvasSize.width - minPos; + } else if (data.bounds.left <= 0 && data.direction === "left") { + data.particle.position.x = minPos; + } + if (data.outMode === "split") { + data.particle.destroy(); + } +} +function bounceVertical(data) { + if (data.outMode !== "bounce" && data.outMode !== "bounce-vertical" && data.outMode !== "bounceVertical" && data.outMode !== "split" || data.direction !== "bottom" && data.direction !== "top") { + return; + } + if (data.bounds.bottom < 0 && data.direction === "top") { + data.particle.position.y = data.size + data.offset.y; + } else if (data.bounds.top > data.canvasSize.height && data.direction === "bottom") { + data.particle.position.y = data.canvasSize.height - data.size - data.offset.y; + } + const velocity = data.particle.velocity.y; + let bounced = false; + if (data.direction === "bottom" && data.bounds.bottom >= data.canvasSize.height && velocity > 0 || data.direction === "top" && data.bounds.top <= 0 && velocity < 0) { + const newVelocity = getValue(data.particle.options.bounce.vertical); + data.particle.velocity.y *= -newVelocity; + bounced = true; + } + if (!bounced) { + return; + } + const minPos = data.offset.y + data.size; + if (data.bounds.bottom >= data.canvasSize.height && data.direction === "bottom") { + data.particle.position.y = data.canvasSize.height - minPos; + } else if (data.bounds.top <= 0 && data.direction === "top") { + data.particle.position.y = minPos; + } + if (data.outMode === "split") { + data.particle.destroy(); + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/BounceOutMode.js + + +class BounceOutMode { + constructor(container) { + this.container = container; + this.modes = ["bounce", "bounce-vertical", "bounce-horizontal", "bounceVertical", "bounceHorizontal", "split"]; + } + update(particle, direction, delta, outMode) { + if (!this.modes.includes(outMode)) { + return; + } + const container = this.container; + let handled = false; + for (const [, plugin] of container.plugins) { + if (plugin.particleBounce !== undefined) { + handled = plugin.particleBounce(particle, delta, direction); + } + if (handled) { + break; + } + } + if (handled) { + return; + } + const pos = particle.getPosition(), + offset = particle.offset, + size = particle.getRadius(), + bounds = calculateBounds(pos, size), + canvasSize = container.canvas.size; + bounceHorizontal({ + particle, + outMode, + direction, + bounds, + canvasSize, + offset, + size + }); + bounceVertical({ + particle, + outMode, + direction, + bounds, + canvasSize, + offset, + size + }); + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/DestroyOutMode.js + +class DestroyOutMode { + constructor(container) { + this.container = container; + this.modes = ["destroy"]; + } + update(particle, direction, _delta, outMode) { + if (!this.modes.includes(outMode)) { + return; + } + const container = this.container; + switch (particle.outType) { + case "normal": + case "outside": + if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) { + return; + } + break; + case "inside": + { + const { + dx, + dy + } = getDistances(particle.position, particle.moveCenter); + const { + x: vx, + y: vy + } = particle.velocity; + if (vx < 0 && dx > particle.moveCenter.radius || vy < 0 && dy > particle.moveCenter.radius || vx >= 0 && dx < -particle.moveCenter.radius || vy >= 0 && dy < -particle.moveCenter.radius) { + return; + } + break; + } + } + container.particles.remove(particle, undefined, true); + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/NoneOutMode.js + +class NoneOutMode { + constructor(container) { + this.container = container; + this.modes = ["none"]; + } + update(particle, direction, delta, outMode) { + if (!this.modes.includes(outMode)) { + return; + } + if (particle.options.move.distance.horizontal && (direction === "left" || direction === "right") || particle.options.move.distance.vertical && (direction === "top" || direction === "bottom")) { + return; + } + const gravityOptions = particle.options.move.gravity, + container = this.container; + const canvasSize = container.canvas.size; + const pRadius = particle.getRadius(); + if (!gravityOptions.enable) { + if (particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius || particle.velocity.y < 0 && particle.position.y >= -pRadius || particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius || particle.velocity.x < 0 && particle.position.x >= -pRadius) { + return; + } + if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) { + container.particles.remove(particle); + } + } else { + const position = particle.position; + if (!gravityOptions.inverse && position.y > canvasSize.height + pRadius && direction === "bottom" || gravityOptions.inverse && position.y < -pRadius && direction === "top") { + container.particles.remove(particle); + } + } + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/OutOutMode.js + +class OutOutMode { + constructor(container) { + this.container = container; + this.modes = ["out"]; + } + update(particle, direction, delta, outMode) { + if (!this.modes.includes(outMode)) { + return; + } + const container = this.container; + switch (particle.outType) { + case "inside": + { + const { + x: vx, + y: vy + } = particle.velocity; + const circVec = Vector.origin; + circVec.length = particle.moveCenter.radius; + circVec.angle = particle.velocity.angle + Math.PI; + circVec.addTo(Vector.create(particle.moveCenter)); + const { + dx, + dy + } = getDistances(particle.position, circVec); + if (vx <= 0 && dx >= 0 || vy <= 0 && dy >= 0 || vx >= 0 && dx <= 0 || vy >= 0 && dy <= 0) { + return; + } + particle.position.x = Math.floor(randomInRange({ + min: 0, + max: container.canvas.size.width + })); + particle.position.y = Math.floor(randomInRange({ + min: 0, + max: container.canvas.size.height + })); + const { + dx: newDx, + dy: newDy + } = getDistances(particle.position, particle.moveCenter); + particle.direction = Math.atan2(-newDy, -newDx); + particle.velocity.angle = particle.direction; + break; + } + default: + { + if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) { + return; + } + switch (particle.outType) { + case "outside": + { + particle.position.x = Math.floor(randomInRange({ + min: -particle.moveCenter.radius, + max: particle.moveCenter.radius + })) + particle.moveCenter.x; + particle.position.y = Math.floor(randomInRange({ + min: -particle.moveCenter.radius, + max: particle.moveCenter.radius + })) + particle.moveCenter.y; + const { + dx, + dy + } = getDistances(particle.position, particle.moveCenter); + if (particle.moveCenter.radius) { + particle.direction = Math.atan2(dy, dx); + particle.velocity.angle = particle.direction; + } + break; + } + case "normal": + { + const wrap = particle.options.move.warp, + canvasSize = container.canvas.size, + newPos = { + bottom: canvasSize.height + particle.getRadius() + particle.offset.y, + left: -particle.getRadius() - particle.offset.x, + right: canvasSize.width + particle.getRadius() + particle.offset.x, + top: -particle.getRadius() - particle.offset.y + }, + sizeValue = particle.getRadius(), + nextBounds = calculateBounds(particle.position, sizeValue); + if (direction === "right" && nextBounds.left > canvasSize.width + particle.offset.x) { + particle.position.x = newPos.left; + particle.initialPosition.x = particle.position.x; + if (!wrap) { + particle.position.y = getRandom() * canvasSize.height; + particle.initialPosition.y = particle.position.y; + } + } else if (direction === "left" && nextBounds.right < -particle.offset.x) { + particle.position.x = newPos.right; + particle.initialPosition.x = particle.position.x; + if (!wrap) { + particle.position.y = getRandom() * canvasSize.height; + particle.initialPosition.y = particle.position.y; + } + } + if (direction === "bottom" && nextBounds.top > canvasSize.height + particle.offset.y) { + if (!wrap) { + particle.position.x = getRandom() * canvasSize.width; + particle.initialPosition.x = particle.position.x; + } + particle.position.y = newPos.top; + particle.initialPosition.y = particle.position.y; + } else if (direction === "top" && nextBounds.bottom < -particle.offset.y) { + if (!wrap) { + particle.position.x = getRandom() * canvasSize.width; + particle.initialPosition.x = particle.position.x; + } + particle.position.y = newPos.bottom; + particle.initialPosition.y = particle.position.y; + } + break; + } + } + break; + } + } + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/OutOfCanvasUpdater.js + + + + +class OutOfCanvasUpdater { + constructor(container) { + this.container = container; + this._updateOutMode = (particle, delta, outMode, direction) => { + for (const updater of this.updaters) { + updater.update(particle, direction, delta, outMode); + } + }; + this.updaters = [new BounceOutMode(container), new DestroyOutMode(container), new OutOutMode(container), new NoneOutMode(container)]; + } + init() {} + isEnabled(particle) { + return !particle.destroyed && !particle.spawning; + } + update(particle, delta) { + const outModes = particle.options.move.outModes; + this._updateOutMode(particle, delta, outModes.bottom ?? outModes.default, "bottom"); + this._updateOutMode(particle, delta, outModes.left ?? outModes.default, "left"); + this._updateOutMode(particle, delta, outModes.right ?? outModes.default, "right"); + this._updateOutMode(particle, delta, outModes.top ?? outModes.default, "top"); + } +} +;// CONCATENATED MODULE: ../../updaters/outModes/dist/esm/index.js + +async function loadOutModesUpdater(engine, refresh = true) { + await engine.addParticleUpdater("outModes", container => new OutOfCanvasUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../updaters/size/dist/esm/Utils.js + +function Utils_checkDestroy(particle, value, minValue, maxValue) { + switch (particle.options.size.animation.destroy) { + case "max": + if (value >= maxValue) { + particle.destroy(); + } + break; + case "min": + if (value <= minValue) { + particle.destroy(); + } + break; + } +} +function updateSize(particle, delta) { + const data = particle.size; + if (particle.destroyed || !data || !data.enable || (data.maxLoops ?? 0) > 0 && (data.loops ?? 0) > (data.maxLoops ?? 0)) { + return; + } + const sizeVelocity = (data.velocity ?? 0) * delta.factor, + minValue = data.min, + maxValue = data.max, + decay = data.decay ?? 1; + if (!data.time) { + data.time = 0; + } + if ((data.delayTime ?? 0) > 0 && data.time < (data.delayTime ?? 0)) { + data.time += delta.value; + } + if ((data.delayTime ?? 0) > 0 && data.time < (data.delayTime ?? 0)) { + return; + } + switch (data.status) { + case "increasing": + if (data.value >= maxValue) { + data.status = "decreasing"; + if (!data.loops) { + data.loops = 0; + } + data.loops++; + } else { + data.value += sizeVelocity; + } + break; + case "decreasing": + if (data.value <= minValue) { + data.status = "increasing"; + if (!data.loops) { + data.loops = 0; + } + data.loops++; + } else { + data.value -= sizeVelocity; + } + } + if (data.velocity && decay !== 1) { + data.velocity *= decay; + } + Utils_checkDestroy(particle, data.value, minValue, maxValue); + if (!particle.destroyed) { + data.value = clamp(data.value, minValue, maxValue); + } +} +;// CONCATENATED MODULE: ../../updaters/size/dist/esm/SizeUpdater.js + + +class SizeUpdater { + init(particle) { + const container = particle.container, + sizeOptions = particle.options.size, + sizeAnimation = sizeOptions.animation; + if (sizeAnimation.enable) { + particle.size.velocity = (particle.retina.sizeAnimationSpeed ?? container.retina.sizeAnimationSpeed) / 100 * container.retina.reduceFactor; + if (!sizeAnimation.sync) { + particle.size.velocity *= getRandom(); + } + } + } + isEnabled(particle) { + return !particle.destroyed && !particle.spawning && particle.size.enable && ((particle.size.maxLoops ?? 0) <= 0 || (particle.size.maxLoops ?? 0) > 0 && (particle.size.loops ?? 0) < (particle.size.maxLoops ?? 0)); + } + reset(particle) { + particle.size.loops = 0; + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateSize(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/size/dist/esm/index.js + +async function loadSizeUpdater(engine, refresh = true) { + await engine.addParticleUpdater("size", () => new SizeUpdater(), refresh); +} +;// CONCATENATED MODULE: ../basic/dist/esm/index.js + + + + + + +async function loadBasic(engine, refresh = true) { + await loadBaseMover(engine, false); + await loadCircleShape(engine, false); + await loadColorUpdater(engine, false); + await loadOpacityUpdater(engine, false); + await loadOutModesUpdater(engine, false); + await loadSizeUpdater(engine, false); + await engine.refresh(refresh); +} +;// CONCATENATED MODULE: ../../plugins/easings/quad/dist/esm/index.js + +async function loadEasingQuadPlugin() { + addEasing("ease-in-quad", value => value ** 2); + addEasing("ease-out-quad", value => 1 - (1 - value) ** 2); + addEasing("ease-in-out-quad", value => value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2); +} +;// CONCATENATED MODULE: ../../interactions/external/attract/dist/esm/Options/Classes/Attract.js +class Attract { + constructor() { + this.distance = 200; + this.duration = 0.4; + this.easing = "ease-out-quad"; + this.factor = 1; + this.maxSpeed = 50; + this.speed = 1; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + if (data.duration !== undefined) { + this.duration = data.duration; + } + if (data.easing !== undefined) { + this.easing = data.easing; + } + if (data.factor !== undefined) { + this.factor = data.factor; + } + if (data.maxSpeed !== undefined) { + this.maxSpeed = data.maxSpeed; + } + if (data.speed !== undefined) { + this.speed = data.speed; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/attract/dist/esm/Attractor.js + + +class Attractor extends ExternalInteractorBase { + constructor(engine, container) { + super(container); + this._clickAttract = () => { + const container = this.container; + if (!container.attract) { + container.attract = { + particles: [] + }; + } + const { + attract + } = container; + if (!attract.finish) { + if (!attract.count) { + attract.count = 0; + } + attract.count++; + if (attract.count === container.particles.count) { + attract.finish = true; + } + } + if (attract.clicking) { + const mousePos = container.interactivity.mouse.clickPosition, + attractRadius = container.retina.attractModeDistance; + if (!attractRadius || attractRadius < 0 || !mousePos) { + return; + } + this._processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius)); + } else if (attract.clicking === false) { + attract.particles = []; + } + return; + }; + this._hoverAttract = () => { + const container = this.container, + mousePos = container.interactivity.mouse.position, + attractRadius = container.retina.attractModeDistance; + if (!attractRadius || attractRadius < 0 || !mousePos) { + return; + } + this._processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius)); + }; + this._processAttract = (position, attractRadius, area) => { + const container = this.container, + attractOptions = container.actualOptions.interactivity.modes.attract; + if (!attractOptions) { + return; + } + const query = container.particles.quadTree.query(area, p => this.isEnabled(p)); + for (const particle of query) { + const { + dx, + dy, + distance + } = getDistances(particle.position, position); + const velocity = attractOptions.speed * attractOptions.factor; + const attractFactor = clamp(getEasing(attractOptions.easing)(1 - distance / attractRadius) * velocity, 0, attractOptions.maxSpeed); + const normVec = Vector.create(distance === 0 ? velocity : dx / distance * attractFactor, distance === 0 ? velocity : dy / distance * attractFactor); + particle.position.subFrom(normVec); + } + }; + this._engine = engine; + if (!container.attract) { + container.attract = { + particles: [] + }; + } + this.handleClickMode = mode => { + const options = this.container.actualOptions, + attract = options.interactivity.modes.attract; + if (!attract || mode !== "attract") { + return; + } + if (!container.attract) { + container.attract = { + particles: [] + }; + } + container.attract.clicking = true; + container.attract.count = 0; + for (const particle of container.attract.particles) { + if (!this.isEnabled(particle)) { + continue; + } + particle.velocity.setTo(particle.initialVelocity); + } + container.attract.particles = []; + container.attract.finish = false; + setTimeout(() => { + if (container.destroyed) { + return; + } + if (!container.attract) { + container.attract = { + particles: [] + }; + } + container.attract.clicking = false; + }, attract.duration * 1000); + }; + } + clear() {} + init() { + const container = this.container, + attract = container.actualOptions.interactivity.modes.attract; + if (!attract) { + return; + } + container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio; + } + async interact() { + const container = this.container, + options = container.actualOptions, + mouseMoveStatus = container.interactivity.status === mouseMoveEvent, + events = options.interactivity.events, + hoverEnabled = events.onHover.enable, + hoverMode = events.onHover.mode, + clickEnabled = events.onClick.enable, + clickMode = events.onClick.mode; + if (mouseMoveStatus && hoverEnabled && isInArray("attract", hoverMode)) { + this._hoverAttract(); + } else if (clickEnabled && isInArray("attract", clickMode)) { + this._clickAttract(); + } + } + isEnabled(particle) { + const container = this.container, + options = container.actualOptions, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? options.interactivity).events; + if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) { + return false; + } + const hoverMode = events.onHover.mode, + clickMode = events.onClick.mode; + return isInArray("attract", hoverMode) || isInArray("attract", clickMode); + } + loadModeOptions(options, ...sources) { + if (!options.attract) { + options.attract = new Attract(); + } + for (const source of sources) { + options.attract.load(source?.attract); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/attract/dist/esm/index.js + +async function loadExternalAttractInteraction(engine, refresh = true) { + await engine.addInteractor("externalAttract", container => new Attractor(engine, container), refresh); +} + + +;// CONCATENATED MODULE: ../../interactions/external/bounce/dist/esm/Options/Classes/Bounce.js +class Bounce { + constructor() { + this.distance = 200; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/bounce/dist/esm/Bouncer.js + + +class Bouncer extends ExternalInteractorBase { + constructor(container) { + super(container); + this._processBounce = (position, radius, area) => { + const query = this.container.particles.quadTree.query(area, p => this.isEnabled(p)); + for (const particle of query) { + if (area instanceof Circle) { + circleBounce(circleBounceDataFromParticle(particle), { + position, + radius, + mass: radius ** 2 * Math.PI / 2, + velocity: Vector.origin, + factor: Vector.origin + }); + } else if (area instanceof Rectangle) { + rectBounce(particle, calculateBounds(position, radius)); + } + } + }; + this._processMouseBounce = () => { + const container = this.container, + pxRatio = container.retina.pixelRatio, + tolerance = 10 * pxRatio, + mousePos = container.interactivity.mouse.position, + radius = container.retina.bounceModeDistance; + if (!radius || radius < 0 || !mousePos) { + return; + } + this._processBounce(mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance)); + }; + this._singleSelectorBounce = (selector, div) => { + const container = this.container, + query = document.querySelectorAll(selector); + if (!query.length) { + return; + } + query.forEach(item => { + const elem = item, + pxRatio = container.retina.pixelRatio, + pos = { + x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio, + y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio + }, + radius = elem.offsetWidth / 2 * pxRatio, + tolerance = 10 * pxRatio, + area = div.type === "circle" ? new Circle(pos.x, pos.y, radius + tolerance) : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2); + this._processBounce(pos, radius, area); + }); + }; + } + clear() {} + init() { + const container = this.container, + bounce = container.actualOptions.interactivity.modes.bounce; + if (!bounce) { + return; + } + container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio; + } + async interact() { + const container = this.container, + options = container.actualOptions, + events = options.interactivity.events, + mouseMoveStatus = container.interactivity.status === mouseMoveEvent, + hoverEnabled = events.onHover.enable, + hoverMode = events.onHover.mode, + divs = events.onDiv; + if (mouseMoveStatus && hoverEnabled && isInArray("bounce", hoverMode)) { + this._processMouseBounce(); + } else { + divModeExecute("bounce", divs, (selector, div) => this._singleSelectorBounce(selector, div)); + } + } + isEnabled(particle) { + const container = this.container, + options = container.actualOptions, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? options.interactivity).events, + divs = events.onDiv; + return mouse.position && events.onHover.enable && isInArray("bounce", events.onHover.mode) || isDivModeEnabled("bounce", divs); + } + loadModeOptions(options, ...sources) { + if (!options.bounce) { + options.bounce = new Bounce(); + } + for (const source of sources) { + options.bounce.load(source?.bounce); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/bounce/dist/esm/index.js + +async function loadExternalBounceInteraction(engine, refresh = true) { + await engine.addInteractor("externalBounce", container => new Bouncer(container), refresh); +} + + +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/Options/Classes/BubbleBase.js + +class BubbleBase { + constructor() { + this.distance = 200; + this.duration = 0.4; + this.mix = false; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + if (data.duration !== undefined) { + this.duration = data.duration; + } + if (data.mix !== undefined) { + this.mix = data.mix; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + if (data.color !== undefined) { + const sourceColor = isArray(this.color) ? undefined : this.color; + this.color = executeOnSingleOrMultiple(data.color, color => { + return OptionsColor.create(sourceColor, color); + }); + } + if (data.size !== undefined) { + this.size = data.size; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/Options/Classes/BubbleDiv.js + + +class BubbleDiv extends BubbleBase { + constructor() { + super(); + this.selectors = []; + } + get ids() { + return executeOnSingleOrMultiple(this.selectors, t => t.replace("#", "")); + } + set ids(value) { + this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`); + } + load(data) { + super.load(data); + if (!data) { + return; + } + if (data.ids !== undefined) { + this.ids = data.ids; + } + if (data.selectors !== undefined) { + this.selectors = data.selectors; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/Options/Classes/Bubble.js + + + +class Bubble extends BubbleBase { + load(data) { + super.load(data); + if (!data) { + return; + } + this.divs = executeOnSingleOrMultiple(data.divs, div => { + const tmp = new BubbleDiv(); + tmp.load(div); + return tmp; + }); + } +} +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/Utils.js + +function calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) { + if (modeValue >= optionsValue) { + const value = particleValue + (modeValue - optionsValue) * ratio; + return clamp(value, particleValue, modeValue); + } else if (modeValue < optionsValue) { + const value = particleValue - (optionsValue - modeValue) * ratio; + return clamp(value, modeValue, particleValue); + } +} +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/Bubbler.js + + + +class Bubbler extends ExternalInteractorBase { + constructor(container) { + super(container); + this._clickBubble = () => { + const container = this.container, + options = container.actualOptions, + mouseClickPos = container.interactivity.mouse.clickPosition, + bubbleOptions = options.interactivity.modes.bubble; + if (!bubbleOptions || !mouseClickPos) { + return; + } + if (!container.bubble) { + container.bubble = {}; + } + const distance = container.retina.bubbleModeDistance; + if (!distance || distance < 0) { + return; + } + const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, p => this.isEnabled(p)), + { + bubble + } = container; + for (const particle of query) { + if (!bubble.clicking) { + continue; + } + particle.bubble.inRange = !bubble.durationEnd; + const pos = particle.getPosition(), + distMouse = getDistance(pos, mouseClickPos), + timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000; + if (timeSpent > bubbleOptions.duration) { + bubble.durationEnd = true; + } + if (timeSpent > bubbleOptions.duration * 2) { + bubble.clicking = false; + bubble.durationEnd = false; + } + const sizeData = { + bubbleObj: { + optValue: container.retina.bubbleModeSize, + value: particle.bubble.radius + }, + particlesObj: { + optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio, + value: particle.size.value + }, + type: "size" + }; + this._process(particle, distMouse, timeSpent, sizeData); + const opacityData = { + bubbleObj: { + optValue: bubbleOptions.opacity, + value: particle.bubble.opacity + }, + particlesObj: { + optValue: getRangeMax(particle.options.opacity.value), + value: particle.opacity?.value ?? 1 + }, + type: "opacity" + }; + this._process(particle, distMouse, timeSpent, opacityData); + if (!bubble.durationEnd && distMouse <= distance) { + this._hoverBubbleColor(particle, distMouse); + } else { + delete particle.bubble.color; + } + } + }; + this._hoverBubble = () => { + const container = this.container, + mousePos = container.interactivity.mouse.position, + distance = container.retina.bubbleModeDistance; + if (!distance || distance < 0 || mousePos === undefined) { + return; + } + const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p)); + for (const particle of query) { + particle.bubble.inRange = true; + const pos = particle.getPosition(), + pointDistance = getDistance(pos, mousePos), + ratio = 1 - pointDistance / distance; + if (pointDistance <= distance) { + if (ratio >= 0 && container.interactivity.status === mouseMoveEvent) { + this._hoverBubbleSize(particle, ratio); + this._hoverBubbleOpacity(particle, ratio); + this._hoverBubbleColor(particle, ratio); + } + } else { + this.reset(particle); + } + if (container.interactivity.status === mouseLeaveEvent) { + this.reset(particle); + } + } + }; + this._hoverBubbleColor = (particle, ratio, divBubble) => { + const options = this.container.actualOptions, + bubbleOptions = divBubble ?? options.interactivity.modes.bubble; + if (!bubbleOptions) { + return; + } + if (!particle.bubble.finalColor) { + const modeColor = bubbleOptions.color; + if (!modeColor) { + return; + } + const bubbleColor = itemFromSingleOrMultiple(modeColor); + particle.bubble.finalColor = rangeColorToHsl(bubbleColor); + } + if (!particle.bubble.finalColor) { + return; + } + if (bubbleOptions.mix) { + particle.bubble.color = undefined; + const pColor = particle.getFillColor(); + particle.bubble.color = pColor ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, 1 - ratio, ratio)) : particle.bubble.finalColor; + } else { + particle.bubble.color = particle.bubble.finalColor; + } + }; + this._hoverBubbleOpacity = (particle, ratio, divBubble) => { + const container = this.container, + options = container.actualOptions, + modeOpacity = divBubble?.opacity ?? options.interactivity.modes.bubble?.opacity; + if (!modeOpacity) { + return; + } + const optOpacity = particle.options.opacity.value, + pOpacity = particle.opacity?.value ?? 1, + opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio); + if (opacity !== undefined) { + particle.bubble.opacity = opacity; + } + }; + this._hoverBubbleSize = (particle, ratio, divBubble) => { + const container = this.container, + modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize; + if (modeSize === undefined) { + return; + } + const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio, + pSize = particle.size.value, + size = calculateBubbleValue(pSize, modeSize, optSize, ratio); + if (size !== undefined) { + particle.bubble.radius = size; + } + }; + this._process = (particle, distMouse, timeSpent, data) => { + const container = this.container, + bubbleParam = data.bubbleObj.optValue, + options = container.actualOptions, + bubbleOptions = options.interactivity.modes.bubble; + if (!bubbleOptions || bubbleParam === undefined) { + return; + } + const bubbleDuration = bubbleOptions.duration, + bubbleDistance = container.retina.bubbleModeDistance, + particlesParam = data.particlesObj.optValue, + pObjBubble = data.bubbleObj.value, + pObj = data.particlesObj.value || 0, + type = data.type; + if (!bubbleDistance || bubbleDistance < 0 || bubbleParam === particlesParam) { + return; + } + if (!container.bubble) { + container.bubble = {}; + } + if (container.bubble.durationEnd) { + if (pObjBubble) { + if (type === "size") { + delete particle.bubble.radius; + } + if (type === "opacity") { + delete particle.bubble.opacity; + } + } + } else { + if (distMouse <= bubbleDistance) { + const obj = pObjBubble ?? pObj; + if (obj !== bubbleParam) { + const value = pObj - timeSpent * (pObj - bubbleParam) / bubbleDuration; + if (type === "size") { + particle.bubble.radius = value; + } + if (type === "opacity") { + particle.bubble.opacity = value; + } + } + } else { + if (type === "size") { + delete particle.bubble.radius; + } + if (type === "opacity") { + delete particle.bubble.opacity; + } + } + } + }; + this._singleSelectorHover = (delta, selector, div) => { + const container = this.container, + selectors = document.querySelectorAll(selector), + bubble = container.actualOptions.interactivity.modes.bubble; + if (!bubble || !selectors.length) { + return; + } + selectors.forEach(item => { + const elem = item, + pxRatio = container.retina.pixelRatio, + pos = { + x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio, + y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio + }, + repulseRadius = elem.offsetWidth / 2 * pxRatio, + area = div.type === "circle" ? new Circle(pos.x, pos.y, repulseRadius) : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), + query = container.particles.quadTree.query(area, p => this.isEnabled(p)); + for (const particle of query) { + if (!area.contains(particle.getPosition())) { + continue; + } + particle.bubble.inRange = true; + const divs = bubble.divs, + divBubble = divMode(divs, elem); + if (!particle.bubble.div || particle.bubble.div !== elem) { + this.clear(particle, delta, true); + particle.bubble.div = elem; + } + this._hoverBubbleSize(particle, 1, divBubble); + this._hoverBubbleOpacity(particle, 1, divBubble); + this._hoverBubbleColor(particle, 1, divBubble); + } + }); + }; + if (!container.bubble) { + container.bubble = {}; + } + this.handleClickMode = mode => { + if (mode !== "bubble") { + return; + } + if (!container.bubble) { + container.bubble = {}; + } + container.bubble.clicking = true; + }; + } + clear(particle, delta, force) { + if (particle.bubble.inRange && !force) { + return; + } + delete particle.bubble.div; + delete particle.bubble.opacity; + delete particle.bubble.radius; + delete particle.bubble.color; + } + init() { + const container = this.container, + bubble = container.actualOptions.interactivity.modes.bubble; + if (!bubble) { + return; + } + container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio; + if (bubble.size !== undefined) { + container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio; + } + } + async interact(delta) { + const options = this.container.actualOptions, + events = options.interactivity.events, + onHover = events.onHover, + onClick = events.onClick, + hoverEnabled = onHover.enable, + hoverMode = onHover.mode, + clickEnabled = onClick.enable, + clickMode = onClick.mode, + divs = events.onDiv; + if (hoverEnabled && isInArray("bubble", hoverMode)) { + this._hoverBubble(); + } else if (clickEnabled && isInArray("bubble", clickMode)) { + this._clickBubble(); + } else { + divModeExecute("bubble", divs, (selector, div) => this._singleSelectorHover(delta, selector, div)); + } + } + isEnabled(particle) { + const container = this.container, + options = container.actualOptions, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? options.interactivity).events, + { + onClick, + onDiv, + onHover + } = events, + divBubble = isDivModeEnabled("bubble", onDiv); + if (!(divBubble || onHover.enable && mouse.position || onClick.enable && mouse.clickPosition)) { + return false; + } + return isInArray("bubble", onHover.mode) || isInArray("bubble", onClick.mode) || divBubble; + } + loadModeOptions(options, ...sources) { + if (!options.bubble) { + options.bubble = new Bubble(); + } + for (const source of sources) { + options.bubble.load(source?.bubble); + } + } + reset(particle) { + particle.bubble.inRange = false; + } +} +;// CONCATENATED MODULE: ../../interactions/external/bubble/dist/esm/index.js + +async function loadExternalBubbleInteraction(engine, refresh = true) { + await engine.addInteractor("externalBubble", container => new Bubbler(container), refresh); +} + + + + + + +;// CONCATENATED MODULE: ../../interactions/external/connect/dist/esm/Options/Classes/ConnectLinks.js +class ConnectLinks { + constructor() { + this.opacity = 0.5; + } + load(data) { + if (!data) { + return; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/connect/dist/esm/Options/Classes/Connect.js + +class Connect { + constructor() { + this.distance = 80; + this.links = new ConnectLinks(); + this.radius = 60; + } + get lineLinked() { + return this.links; + } + set lineLinked(value) { + this.links = value; + } + get line_linked() { + return this.links; + } + set line_linked(value) { + this.links = value; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + this.links.load(data.links ?? data.lineLinked ?? data.line_linked); + if (data.radius !== undefined) { + this.radius = data.radius; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/connect/dist/esm/Utils.js + +function gradient(context, p1, p2, opacity) { + const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), + color1 = p1.getFillColor(), + color2 = p2.getFillColor(); + if (!color1 || !color2) { + return; + } + const sourcePos = p1.getPosition(), + destPos = p2.getPosition(), + midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), + grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y); + grad.addColorStop(0, getStyleFromHsl(color1, opacity)); + grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity)); + grad.addColorStop(1, getStyleFromHsl(color2, opacity)); + return grad; +} +function drawConnectLine(context, width, lineStyle, begin, end) { + drawLine(context, begin, end); + context.lineWidth = width; + context.strokeStyle = lineStyle; + context.stroke(); +} +function lineStyle(container, ctx, p1, p2) { + const options = container.actualOptions, + connectOptions = options.interactivity.modes.connect; + if (!connectOptions) { + return; + } + return gradient(ctx, p1, p2, connectOptions.links.opacity); +} +function drawConnection(container, p1, p2) { + container.canvas.draw(ctx => { + const ls = lineStyle(container, ctx, p1, p2); + if (!ls) { + return; + } + const pos1 = p1.getPosition(), + pos2 = p2.getPosition(); + drawConnectLine(ctx, p1.retina.linksWidth ?? 0, ls, pos1, pos2); + }); +} +;// CONCATENATED MODULE: ../../interactions/external/connect/dist/esm/Connector.js + + + +class Connector extends ExternalInteractorBase { + constructor(container) { + super(container); + } + clear() {} + init() { + const container = this.container, + connect = container.actualOptions.interactivity.modes.connect; + if (!connect) { + return; + } + container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio; + container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio; + } + async interact() { + const container = this.container, + options = container.actualOptions; + if (options.interactivity.events.onHover.enable && container.interactivity.status === "pointermove") { + const mousePos = container.interactivity.mouse.position; + if (!container.retina.connectModeDistance || container.retina.connectModeDistance < 0 || !container.retina.connectModeRadius || container.retina.connectModeRadius < 0 || !mousePos) { + return; + } + const distance = Math.abs(container.retina.connectModeRadius), + query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p)); + let i = 0; + for (const p1 of query) { + const pos1 = p1.getPosition(); + for (const p2 of query.slice(i + 1)) { + const pos2 = p2.getPosition(), + distMax = Math.abs(container.retina.connectModeDistance), + xDiff = Math.abs(pos1.x - pos2.x), + yDiff = Math.abs(pos1.y - pos2.y); + if (xDiff < distMax && yDiff < distMax) { + drawConnection(container, p1, p2); + } + } + ++i; + } + } + } + isEnabled(particle) { + const container = this.container, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? container.actualOptions.interactivity).events; + if (!(events.onHover.enable && mouse.position)) { + return false; + } + return isInArray("connect", events.onHover.mode); + } + loadModeOptions(options, ...sources) { + if (!options.connect) { + options.connect = new Connect(); + } + for (const source of sources) { + options.connect.load(source?.connect); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/connect/dist/esm/index.js + +async function loadExternalConnectInteraction(engine, refresh = true) { + await engine.addInteractor("externalConnect", container => new Connector(container), refresh); +} + + + + +;// CONCATENATED MODULE: ../../interactions/external/grab/dist/esm/Options/Classes/GrabLinks.js + +class GrabLinks { + constructor() { + this.blink = false; + this.consent = false; + this.opacity = 1; + } + load(data) { + if (!data) { + return; + } + if (data.blink !== undefined) { + this.blink = data.blink; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.consent !== undefined) { + this.consent = data.consent; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/grab/dist/esm/Options/Classes/Grab.js + +class Grab { + constructor() { + this.distance = 100; + this.links = new GrabLinks(); + } + get lineLinked() { + return this.links; + } + set lineLinked(value) { + this.links = value; + } + get line_linked() { + return this.links; + } + set line_linked(value) { + this.links = value; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + this.links.load(data.links ?? data.lineLinked ?? data.line_linked); + } +} +;// CONCATENATED MODULE: ../../interactions/external/grab/dist/esm/Utils.js + +function drawGrabLine(context, width, begin, end, colorLine, opacity) { + drawLine(context, begin, end); + context.strokeStyle = getStyleFromRgb(colorLine, opacity); + context.lineWidth = width; + context.stroke(); +} +function drawGrab(container, particle, lineColor, opacity, mousePos) { + container.canvas.draw(ctx => { + const beginPos = particle.getPosition(); + drawGrabLine(ctx, particle.retina.linksWidth ?? 0, beginPos, mousePos, lineColor, opacity); + }); +} +;// CONCATENATED MODULE: ../../interactions/external/grab/dist/esm/Grabber.js + + + +class Grabber extends ExternalInteractorBase { + constructor(container) { + super(container); + } + clear() {} + init() { + const container = this.container, + grab = container.actualOptions.interactivity.modes.grab; + if (!grab) { + return; + } + container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio; + } + async interact() { + const container = this.container, + options = container.actualOptions, + interactivity = options.interactivity; + if (!interactivity.modes.grab || !interactivity.events.onHover.enable || container.interactivity.status !== mouseMoveEvent) { + return; + } + const mousePos = container.interactivity.mouse.position; + if (!mousePos) { + return; + } + const distance = container.retina.grabModeDistance; + if (!distance || distance < 0) { + return; + } + const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p)); + for (const particle of query) { + const pos = particle.getPosition(), + pointDistance = getDistance(pos, mousePos); + if (pointDistance > distance) { + continue; + } + const grabLineOptions = interactivity.modes.grab.links, + lineOpacity = grabLineOptions.opacity, + opacityLine = lineOpacity - pointDistance * lineOpacity / distance; + if (opacityLine <= 0) { + continue; + } + const optColor = grabLineOptions.color ?? particle.options.links?.color; + if (!container.particles.grabLineColor && optColor) { + const linksOptions = interactivity.modes.grab.links; + container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent); + } + const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor); + if (!colorLine) { + continue; + } + drawGrab(container, particle, colorLine, opacityLine, mousePos); + } + } + isEnabled(particle) { + const container = this.container, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? container.actualOptions.interactivity).events; + return events.onHover.enable && !!mouse.position && isInArray("grab", events.onHover.mode); + } + loadModeOptions(options, ...sources) { + if (!options.grab) { + options.grab = new Grab(); + } + for (const source of sources) { + options.grab.load(source?.grab); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/grab/dist/esm/index.js + +async function loadExternalGrabInteraction(engine, refresh = true) { + await engine.addInteractor("externalGrab", container => new Grabber(container), refresh); +} + + + + +;// CONCATENATED MODULE: ../../interactions/external/pause/dist/esm/Pauser.js + +class Pauser extends ExternalInteractorBase { + constructor(container) { + super(container); + this.handleClickMode = mode => { + if (mode !== "pause") { + return; + } + const container = this.container; + if (container.getAnimationStatus()) { + container.pause(); + } else { + container.play(); + } + }; + } + clear() {} + init() {} + async interact() {} + isEnabled() { + return true; + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/pause/dist/esm/index.js + +async function loadExternalPauseInteraction(engine, refresh = true) { + await engine.addInteractor("externalPause", container => new Pauser(container), refresh); +} +;// CONCATENATED MODULE: ../../interactions/external/push/dist/esm/Options/Classes/Push.js + +class Push { + constructor() { + this.default = true; + this.groups = []; + this.quantity = 4; + } + get particles_nb() { + return this.quantity; + } + set particles_nb(value) { + this.quantity = setRangeValue(value); + } + load(data) { + if (!data) { + return; + } + if (data.default !== undefined) { + this.default = data.default; + } + if (data.groups !== undefined) { + this.groups = data.groups.map(t => t); + } + if (!this.groups.length) { + this.default = true; + } + const quantity = data.quantity ?? data.particles_nb; + if (quantity !== undefined) { + this.quantity = setRangeValue(quantity); + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/push/dist/esm/Pusher.js + + +class Pusher extends ExternalInteractorBase { + constructor(container) { + super(container); + this.handleClickMode = mode => { + if (mode !== "push") { + return; + } + const container = this.container, + options = container.actualOptions, + pushOptions = options.interactivity.modes.push; + if (!pushOptions) { + return; + } + const quantity = getRangeValue(pushOptions.quantity); + if (quantity <= 0) { + return; + } + const group = itemFromArray([undefined, ...pushOptions.groups]), + groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined; + container.particles.push(quantity, container.interactivity.mouse, groupOptions, group); + }; + } + clear() {} + init() {} + async interact() {} + isEnabled() { + return true; + } + loadModeOptions(options, ...sources) { + if (!options.push) { + options.push = new Push(); + } + for (const source of sources) { + options.push.load(source?.push); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/push/dist/esm/index.js + +async function loadExternalPushInteraction(engine, refresh = true) { + await engine.addInteractor("externalPush", container => new Pusher(container), refresh); +} + + +;// CONCATENATED MODULE: ../../interactions/external/remove/dist/esm/Options/Classes/Remove.js + +class Remove { + constructor() { + this.quantity = 2; + } + get particles_nb() { + return this.quantity; + } + set particles_nb(value) { + this.quantity = setRangeValue(value); + } + load(data) { + if (!data) { + return; + } + const quantity = data.quantity ?? data.particles_nb; + if (quantity !== undefined) { + this.quantity = setRangeValue(quantity); + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/remove/dist/esm/Remover.js + + +class Remover extends ExternalInteractorBase { + constructor(container) { + super(container); + this.handleClickMode = mode => { + const container = this.container, + options = container.actualOptions; + if (!options.interactivity.modes.remove || mode !== "remove") { + return; + } + const removeNb = getRangeValue(options.interactivity.modes.remove.quantity); + container.particles.removeQuantity(removeNb); + }; + } + clear() {} + init() {} + async interact() {} + isEnabled() { + return true; + } + loadModeOptions(options, ...sources) { + if (!options.remove) { + options.remove = new Remove(); + } + for (const source of sources) { + options.remove.load(source?.remove); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/remove/dist/esm/index.js + +async function loadExternalRemoveInteraction(engine, refresh = true) { + await engine.addInteractor("externalRemove", container => new Remover(container), refresh); +} + + +;// CONCATENATED MODULE: ../../interactions/external/repulse/dist/esm/Options/Classes/RepulseBase.js +class RepulseBase { + constructor() { + this.distance = 200; + this.duration = 0.4; + this.factor = 100; + this.speed = 1; + this.maxSpeed = 50; + this.easing = "ease-out-quad"; + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + if (data.duration !== undefined) { + this.duration = data.duration; + } + if (data.easing !== undefined) { + this.easing = data.easing; + } + if (data.factor !== undefined) { + this.factor = data.factor; + } + if (data.speed !== undefined) { + this.speed = data.speed; + } + if (data.maxSpeed !== undefined) { + this.maxSpeed = data.maxSpeed; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/repulse/dist/esm/Options/Classes/RepulseDiv.js + + +class RepulseDiv extends RepulseBase { + constructor() { + super(); + this.selectors = []; + } + get ids() { + return executeOnSingleOrMultiple(this.selectors, t => t.replace("#", "")); + } + set ids(value) { + this.selectors = executeOnSingleOrMultiple(value, t => `#${t}`); + } + load(data) { + super.load(data); + if (!data) { + return; + } + if (data.ids !== undefined) { + this.ids = data.ids; + } + if (data.selectors !== undefined) { + this.selectors = data.selectors; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/repulse/dist/esm/Options/Classes/Repulse.js + + + +class Repulse extends RepulseBase { + load(data) { + super.load(data); + if (!data) { + return; + } + this.divs = executeOnSingleOrMultiple(data.divs, div => { + const tmp = new RepulseDiv(); + tmp.load(div); + return tmp; + }); + } +} +;// CONCATENATED MODULE: ../../interactions/external/repulse/dist/esm/Repulser.js + + +class Repulser extends ExternalInteractorBase { + constructor(engine, container) { + super(container); + this._clickRepulse = () => { + const container = this.container, + repulseOptions = container.actualOptions.interactivity.modes.repulse; + if (!repulseOptions) { + return; + } + const repulse = container.repulse || { + particles: [] + }; + if (!repulse.finish) { + if (!repulse.count) { + repulse.count = 0; + } + repulse.count++; + if (repulse.count === container.particles.count) { + repulse.finish = true; + } + } + if (repulse.clicking) { + const repulseDistance = container.retina.repulseModeDistance; + if (!repulseDistance || repulseDistance < 0) { + return; + } + const repulseRadius = Math.pow(repulseDistance / 6, 3), + mouseClickPos = container.interactivity.mouse.clickPosition; + if (mouseClickPos === undefined) { + return; + } + const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), + query = container.particles.quadTree.query(range, p => this.isEnabled(p)); + for (const particle of query) { + const { + dx, + dy, + distance + } = getDistances(mouseClickPos, particle.position), + d = distance ** 2, + velocity = repulseOptions.speed, + force = -repulseRadius * velocity / d; + if (d <= repulseRadius) { + repulse.particles.push(particle); + const vect = Vector.create(dx, dy); + vect.length = force; + particle.velocity.setTo(vect); + } + } + } else if (repulse.clicking === false) { + for (const particle of repulse.particles) { + particle.velocity.setTo(particle.initialVelocity); + } + repulse.particles = []; + } + }; + this._hoverRepulse = () => { + const container = this.container, + mousePos = container.interactivity.mouse.position, + repulseRadius = container.retina.repulseModeDistance; + if (!repulseRadius || repulseRadius < 0 || !mousePos) { + return; + } + this._processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius)); + }; + this._processRepulse = (position, repulseRadius, area, divRepulse) => { + const container = this.container, + query = container.particles.quadTree.query(area, p => this.isEnabled(p)), + repulseOptions = container.actualOptions.interactivity.modes.repulse; + if (!repulseOptions) { + return; + } + for (const particle of query) { + const { + dx, + dy, + distance + } = getDistances(particle.position, position), + velocity = (divRepulse?.speed ?? repulseOptions.speed) * repulseOptions.factor, + repulseFactor = clamp(getEasing(repulseOptions.easing)(1 - distance / repulseRadius) * velocity, 0, repulseOptions.maxSpeed), + normVec = Vector.create(distance === 0 ? velocity : dx / distance * repulseFactor, distance === 0 ? velocity : dy / distance * repulseFactor); + particle.position.addTo(normVec); + } + }; + this._singleSelectorRepulse = (selector, div) => { + const container = this.container, + repulse = container.actualOptions.interactivity.modes.repulse; + if (!repulse) { + return; + } + const query = document.querySelectorAll(selector); + if (!query.length) { + return; + } + query.forEach(item => { + const elem = item, + pxRatio = container.retina.pixelRatio, + pos = { + x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio, + y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio + }, + repulseRadius = elem.offsetWidth / 2 * pxRatio, + area = div.type === "circle" ? new Circle(pos.x, pos.y, repulseRadius) : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), + divs = repulse.divs, + divRepulse = divMode(divs, elem); + this._processRepulse(pos, repulseRadius, area, divRepulse); + }); + }; + this._engine = engine; + if (!container.repulse) { + container.repulse = { + particles: [] + }; + } + this.handleClickMode = mode => { + const options = this.container.actualOptions, + repulseOpts = options.interactivity.modes.repulse; + if (!repulseOpts || mode !== "repulse") { + return; + } + if (!container.repulse) { + container.repulse = { + particles: [] + }; + } + const repulse = container.repulse; + repulse.clicking = true; + repulse.count = 0; + for (const particle of container.repulse.particles) { + if (!this.isEnabled(particle)) { + continue; + } + particle.velocity.setTo(particle.initialVelocity); + } + repulse.particles = []; + repulse.finish = false; + setTimeout(() => { + if (container.destroyed) { + return; + } + repulse.clicking = false; + }, repulseOpts.duration * 1000); + }; + } + clear() {} + init() { + const container = this.container, + repulse = container.actualOptions.interactivity.modes.repulse; + if (!repulse) { + return; + } + container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio; + } + async interact() { + const container = this.container, + options = container.actualOptions, + mouseMoveStatus = container.interactivity.status === mouseMoveEvent, + events = options.interactivity.events, + hover = events.onHover, + hoverEnabled = hover.enable, + hoverMode = hover.mode, + click = events.onClick, + clickEnabled = click.enable, + clickMode = click.mode, + divs = events.onDiv; + if (mouseMoveStatus && hoverEnabled && isInArray("repulse", hoverMode)) { + this._hoverRepulse(); + } else if (clickEnabled && isInArray("repulse", clickMode)) { + this._clickRepulse(); + } else { + divModeExecute("repulse", divs, (selector, div) => this._singleSelectorRepulse(selector, div)); + } + } + isEnabled(particle) { + const container = this.container, + options = container.actualOptions, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? options.interactivity).events, + divs = events.onDiv, + hover = events.onHover, + click = events.onClick, + divRepulse = isDivModeEnabled("repulse", divs); + if (!(divRepulse || hover.enable && mouse.position || click.enable && mouse.clickPosition)) { + return false; + } + const hoverMode = hover.mode, + clickMode = click.mode; + return isInArray("repulse", hoverMode) || isInArray("repulse", clickMode) || divRepulse; + } + loadModeOptions(options, ...sources) { + if (!options.repulse) { + options.repulse = new Repulse(); + } + for (const source of sources) { + options.repulse.load(source?.repulse); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/external/repulse/dist/esm/index.js + +async function loadExternalRepulseInteraction(engine, refresh = true) { + await engine.addInteractor("externalRepulse", container => new Repulser(engine, container), refresh); +} + + + + + + +;// CONCATENATED MODULE: ../../interactions/external/slow/dist/esm/Options/Classes/Slow.js +class Slow { + constructor() { + this.factor = 3; + this.radius = 200; + } + load(data) { + if (!data) { + return; + } + if (data.factor !== undefined) { + this.factor = data.factor; + } + if (data.radius !== undefined) { + this.radius = data.radius; + } + } +} +;// CONCATENATED MODULE: ../../interactions/external/slow/dist/esm/Slower.js + + +class Slower extends ExternalInteractorBase { + constructor(container) { + super(container); + } + clear(particle, delta, force) { + if (particle.slow.inRange && !force) { + return; + } + particle.slow.factor = 1; + } + init() { + const container = this.container, + slow = container.actualOptions.interactivity.modes.slow; + if (!slow) { + return; + } + container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio; + } + async interact() {} + isEnabled(particle) { + const container = this.container, + mouse = container.interactivity.mouse, + events = (particle?.interactivity ?? container.actualOptions.interactivity).events; + return events.onHover.enable && !!mouse.position && isInArray("slow", events.onHover.mode); + } + loadModeOptions(options, ...sources) { + if (!options.slow) { + options.slow = new Slow(); + } + for (const source of sources) { + options.slow.load(source?.slow); + } + } + reset(particle) { + particle.slow.inRange = false; + const container = this.container, + options = container.actualOptions, + mousePos = container.interactivity.mouse.position, + radius = container.retina.slowModeRadius, + slowOptions = options.interactivity.modes.slow; + if (!slowOptions || !radius || radius < 0 || !mousePos) { + return; + } + const particlePos = particle.getPosition(), + dist = getDistance(mousePos, particlePos), + proximityFactor = dist / radius, + slowFactor = slowOptions.factor, + { + slow + } = particle; + if (dist > radius) { + return; + } + slow.inRange = true; + slow.factor = proximityFactor / slowFactor; + } +} +;// CONCATENATED MODULE: ../../interactions/external/slow/dist/esm/index.js + +async function loadExternalSlowInteraction(engine, refresh = true) { + await engine.addInteractor("externalSlow", container => new Slower(container), refresh); +} + + +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/GifUtils/Constants.js +const InterlaceOffsets = [0, 4, 2, 1]; +const InterlaceSteps = [8, 8, 4, 2]; +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/GifUtils/ByteStream.js +class ByteStream { + constructor(bytes) { + this.pos = 0; + this.data = new Uint8ClampedArray(bytes); + } + getString(count) { + const slice = this.data.slice(this.pos, this.pos + count); + this.pos += slice.length; + return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), ""); + } + nextByte() { + return this.data[this.pos++]; + } + nextTwoBytes() { + this.pos += 2; + return this.data[this.pos - 2] + (this.data[this.pos - 1] << 8); + } + readSubBlocks() { + let blockString = "", + size = 0; + do { + size = this.data[this.pos++]; + for (let count = size; --count >= 0; blockString += String.fromCharCode(this.data[this.pos++])) {} + } while (size !== 0); + return blockString; + } + readSubBlocksBin() { + let size = 0, + len = 0; + for (let offset = 0; (size = this.data[this.pos + offset]) !== 0; offset += size + 1) { + len += size; + } + const blockData = new Uint8Array(len); + for (let i = 0; (size = this.data[this.pos++]) !== 0;) { + for (let count = size; --count >= 0; blockData[i++] = this.data[this.pos++]) {} + } + return blockData; + } + skipSubBlocks() { + for (; this.data[this.pos] !== 0; this.pos += this.data[this.pos] + 1) {} + this.pos++; + } +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/GifUtils/Utils.js + + +function parseColorTable(byteStream, count) { + const colors = []; + for (let i = 0; i < count; i++) { + colors.push({ + r: byteStream.data[byteStream.pos], + g: byteStream.data[byteStream.pos + 1], + b: byteStream.data[byteStream.pos + 2] + }); + byteStream.pos += 3; + } + return colors; +} +async function parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) { + switch (byteStream.nextByte()) { + case 249: + { + const frame = gif.frames[getFrameIndex(false)]; + byteStream.pos++; + const packedByte = byteStream.nextByte(); + frame.GCreserved = (packedByte & 0xe0) >>> 5; + frame.disposalMethod = (packedByte & 0x1c) >>> 2; + frame.userInputDelayFlag = (packedByte & 2) === 2; + const transparencyFlag = (packedByte & 1) === 1; + frame.delayTime = byteStream.nextTwoBytes() * 0xa; + const transparencyIndex = byteStream.nextByte(); + if (transparencyFlag) { + getTransparencyIndex(transparencyIndex); + } + byteStream.pos++; + break; + } + case 255: + { + byteStream.pos++; + const applicationExtension = { + identifier: byteStream.getString(8), + authenticationCode: byteStream.getString(3), + data: byteStream.readSubBlocksBin() + }; + gif.applicationExtensions.push(applicationExtension); + break; + } + case 254: + { + gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]); + break; + } + case 1: + { + if (gif.globalColorTable.length === 0) { + throw new EvalError("plain text extension without global color table"); + } + byteStream.pos++; + gif.frames[getFrameIndex(false)].plainTextData = { + left: byteStream.nextTwoBytes(), + top: byteStream.nextTwoBytes(), + width: byteStream.nextTwoBytes(), + height: byteStream.nextTwoBytes(), + charSize: { + width: byteStream.nextTwoBytes(), + height: byteStream.nextTwoBytes() + }, + foregroundColor: byteStream.nextByte(), + backgroundColor: byteStream.nextByte(), + text: byteStream.readSubBlocks() + }; + break; + } + default: + byteStream.skipSubBlocks(); + break; + } +} +async function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) { + const frame = gif.frames[getFrameIndex(true)]; + frame.left = byteStream.nextTwoBytes(); + frame.top = byteStream.nextTwoBytes(); + frame.width = byteStream.nextTwoBytes(); + frame.height = byteStream.nextTwoBytes(); + const packedByte = byteStream.nextByte(), + localColorTableFlag = (packedByte & 0x80) === 0x80, + interlacedFlag = (packedByte & 0x40) === 0x40; + frame.sortFlag = (packedByte & 0x20) === 0x20; + frame.reserved = (packedByte & 0x18) >>> 3; + const localColorCount = 1 << (packedByte & 7) + 1; + if (localColorTableFlag) { + frame.localColorTable = parseColorTable(byteStream, localColorCount); + } + const getColor = index => { + const { + r, + g, + b + } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index]; + return { + r, + g, + b, + a: index === getTransparencyIndex(null) ? avgAlpha ? ~~((r + g + b) / 3) : 0 : 255 + }; + }; + const image = (() => { + try { + return new ImageData(frame.width, frame.height, { + colorSpace: "srgb" + }); + } catch (error) { + if (error instanceof DOMException && error.name === "IndexSizeError") { + return null; + } + throw error; + } + })(); + if (image == null) { + throw new EvalError("GIF frame size is to large"); + } + const minCodeSize = byteStream.nextByte(), + imageData = byteStream.readSubBlocksBin(), + clearCode = 1 << minCodeSize; + const readBits = (pos, len) => { + const bytePos = pos >>> 3, + bitPos = pos & 7; + return (imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16) & (1 << len) - 1 << bitPos) >>> bitPos; + }; + if (interlacedFlag) { + for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) { + if (InterlaceOffsets[pass] < frame.height) { + for (let pixelPos = 0, lineIndex = 0;;) { + const last = code; + code = readBits(pos, size); + pos += size + 1; + if (code === clearCode) { + size = minCodeSize + 1; + dic.length = clearCode + 2; + for (let i = 0; i < dic.length; i++) { + dic[i] = i < clearCode ? [i] : []; + } + } else { + if (code >= dic.length) { + dic.push(dic[last].concat(dic[last][0])); + } else if (last !== clearCode) { + dic.push(dic[last].concat(dic[code][0])); + } + for (let i = 0; i < dic[code].length; i++) { + const { + r, + g, + b, + a + } = getColor(dic[code][i]); + image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width + InterlaceSteps[pass] * lineIndex + pixelPos % (frame.width * 4)); + pixelPos += 4; + } + if (dic.length === 1 << size && size < 0xc) { + size++; + } + } + if (pixelPos === frame.width * 4 * (lineIndex + 1)) { + lineIndex++; + if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) { + break; + } + } + } + } + progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { + x: frame.left, + y: frame.top + }, { + width: gif.width, + height: gif.height + }); + } + frame.image = image; + frame.bitmap = await createImageBitmap(image); + } else { + for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pixelPos = -4;;) { + const last = code; + code = readBits(pos, size); + pos += size; + if (code === clearCode) { + size = minCodeSize + 1; + dic.length = clearCode + 2; + for (let i = 0; i < dic.length; i++) { + dic[i] = i < clearCode ? [i] : []; + } + } else { + if (code === clearCode + 1) { + break; + } + if (code >= dic.length) { + dic.push(dic[last].concat(dic[last][0])); + } else if (last !== clearCode) { + dic.push(dic[last].concat(dic[code][0])); + } + for (let i = 0; i < dic[code].length; i++) { + const { + r, + g, + b, + a + } = getColor(dic[code][i]); + image.data.set([r, g, b, a], pixelPos += 4); + } + if (dic.length >= 1 << size && size < 0xc) { + size++; + } + } + } + frame.image = image; + frame.bitmap = await createImageBitmap(image); + progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { + x: frame.left, + y: frame.top + }, { + width: gif.width, + height: gif.height + }); + } +} +async function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) { + switch (byteStream.nextByte()) { + case 59: + return true; + case 44: + await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback); + break; + case 33: + await parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex); + break; + default: + throw new EvalError("undefined block found"); + } + return false; +} +function getGIFLoopAmount(gif) { + for (const extension of gif.applicationExtensions) { + if (extension.identifier + extension.authenticationCode !== "NETSCAPE2.0") { + continue; + } + return extension.data[1] + (extension.data[2] << 8); + } + return NaN; +} +async function decodeGIF(gifURL, progressCallback, avgAlpha) { + if (!avgAlpha) avgAlpha = false; + const res = await fetch(gifURL); + if (!res.ok && res.status === 404) { + throw new EvalError("file not found"); + } + const buffer = await res.arrayBuffer(); + const gif = { + width: 0, + height: 0, + totalTime: 0, + colorRes: 0, + pixelAspectRatio: 0, + frames: [], + sortFlag: false, + globalColorTable: [], + backgroundImage: new ImageData(1, 1, { + colorSpace: "srgb" + }), + comments: [], + applicationExtensions: [] + }, + byteStream = new ByteStream(new Uint8ClampedArray(buffer)); + if (byteStream.getString(6) !== "GIF89a") { + throw new Error("not a supported GIF file"); + } + gif.width = byteStream.nextTwoBytes(); + gif.height = byteStream.nextTwoBytes(); + const packedByte = byteStream.nextByte(), + globalColorTableFlag = (packedByte & 0x80) === 0x80; + gif.colorRes = (packedByte & 0x70) >>> 4; + gif.sortFlag = (packedByte & 8) === 8; + const globalColorCount = 1 << (packedByte & 7) + 1, + backgroundColorIndex = byteStream.nextByte(); + gif.pixelAspectRatio = byteStream.nextByte(); + if (gif.pixelAspectRatio !== 0) { + gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40; + } + if (globalColorTableFlag) { + gif.globalColorTable = parseColorTable(byteStream, globalColorCount); + } + const backgroundImage = (() => { + try { + return new ImageData(gif.width, gif.height, { + colorSpace: "srgb" + }); + } catch (error) { + if (error instanceof DOMException && error.name === "IndexSizeError") { + return null; + } + throw error; + } + })(); + if (backgroundImage == null) { + throw new Error("GIF frame size is to large"); + } + const { + r, + g, + b + } = gif.globalColorTable[backgroundColorIndex]; + backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]); + for (let i = 4; i < backgroundImage.data.length; i *= 2) { + backgroundImage.data.copyWithin(i, 0, i); + } + gif.backgroundImage = backgroundImage; + let frameIndex = -1, + incrementFrameIndex = true, + transparencyIndex = -1; + const getframeIndex = increment => { + if (increment) { + incrementFrameIndex = true; + } + return frameIndex; + }; + const getTransparencyIndex = newValue => { + if (newValue != null) { + transparencyIndex = newValue; + } + return transparencyIndex; + }; + try { + do { + if (incrementFrameIndex) { + gif.frames.push({ + left: 0, + top: 0, + width: 0, + height: 0, + disposalMethod: 0, + image: new ImageData(1, 1, { + colorSpace: "srgb" + }), + plainTextData: null, + userInputDelayFlag: false, + delayTime: 0, + sortFlag: false, + localColorTable: [], + reserved: 0, + GCreserved: 0 + }); + frameIndex++; + transparencyIndex = -1; + incrementFrameIndex = false; + } + } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback))); + gif.frames.length--; + for (const frame of gif.frames) { + if (frame.userInputDelayFlag && frame.delayTime === 0) { + gif.totalTime = Infinity; + break; + } + gif.totalTime += frame.delayTime; + } + return gif; + } catch (error) { + if (error instanceof EvalError) { + throw new Error(`error while parsing frame ${frameIndex} "${error.message}"`); + } + throw error; + } +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/Utils.js + + +const currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi; +function replaceColorSvg(imageShape, color, opacity) { + const { + svgData + } = imageShape; + if (!svgData) { + return ""; + } + const colorStyle = getStyleFromHsl(color, opacity); + if (svgData.includes("fill")) { + return svgData.replace(currentColorRegex, () => colorStyle); + } + const preFillIndex = svgData.indexOf(">"); + return `${svgData.substring(0, preFillIndex)} fill="${colorStyle}"${svgData.substring(preFillIndex)}`; +} +async function loadImage(image) { + return new Promise(resolve => { + image.loading = true; + const img = new Image(); + image.element = img; + img.addEventListener("load", () => { + image.loading = false; + resolve(); + }); + img.addEventListener("error", () => { + image.element = undefined; + image.error = true; + image.loading = false; + getLogger().error(`${errorPrefix} loading image: ${image.source}`); + resolve(); + }); + img.src = image.source; + }); +} +async function loadGifImage(image) { + if (image.type !== "gif") { + await loadImage(image); + return; + } + image.loading = true; + try { + image.gifData = await decodeGIF(image.source); + image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? 0; + if (image.gifLoopCount === 0) { + image.gifLoopCount = Infinity; + } + } catch { + image.error = true; + } + image.loading = false; +} +async function downloadSvgImage(image) { + if (image.type !== "svg") { + await loadImage(image); + return; + } + image.loading = true; + const response = await fetch(image.source); + if (!response.ok) { + getLogger().error(`${errorPrefix} Image not found`); + image.error = true; + } else { + image.svgData = await response.text(); + } + image.loading = false; +} +function replaceImageColor(image, imageData, color, particle) { + const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? 1), + imageRes = { + color, + gif: imageData.gif, + data: { + ...image, + svgData: svgColoredData + }, + loaded: false, + ratio: imageData.width / imageData.height, + replaceColor: imageData.replaceColor ?? imageData.replace_color, + source: imageData.src + }; + return new Promise(resolve => { + const svg = new Blob([svgColoredData], { + type: "image/svg+xml" + }), + domUrl = URL || window.URL || window.webkitURL || window, + url = domUrl.createObjectURL(svg), + img = new Image(); + img.addEventListener("load", () => { + imageRes.loaded = true; + imageRes.element = img; + resolve(imageRes); + domUrl.revokeObjectURL(url); + }); + img.addEventListener("error", async () => { + domUrl.revokeObjectURL(url); + const img2 = { + ...image, + error: false, + loading: true + }; + await loadImage(img2); + imageRes.loaded = true; + imageRes.element = img2.element; + resolve(imageRes); + }); + img.src = url; + }); +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/ImageDrawer.js + + +class ImageDrawer { + constructor(engine) { + this.loadImageShape = async imageShape => { + if (!this._engine.loadImage) { + throw new Error(`${errorPrefix} image shape not initialized`); + } + await this._engine.loadImage({ + gif: imageShape.gif, + name: imageShape.name, + replaceColor: imageShape.replaceColor ?? imageShape.replace_color ?? false, + src: imageShape.src + }); + }; + this._engine = engine; + } + addImage(image) { + if (!this._engine.images) { + this._engine.images = []; + } + this._engine.images.push(image); + } + draw(context, particle, radius, opacity, delta) { + const image = particle.image, + element = image?.element; + if (!image) { + return; + } + context.globalAlpha = opacity; + if (image.gif && image.gifData) { + const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), + offscreenContext = offscreenCanvas.getContext("2d"); + if (!offscreenContext) { + throw new Error("could not create offscreen canvas context"); + } + offscreenContext.imageSmoothingQuality = "low"; + offscreenContext.imageSmoothingEnabled = false; + offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height); + if (particle.gifLoopCount === undefined) { + particle.gifLoopCount = image.gifLoopCount ?? 0; + } + let frameIndex = particle.gifFrame ?? 0; + const pos = { + x: -image.gifData.width * 0.5, + y: -image.gifData.height * 0.5 + }, + frame = image.gifData.frames[frameIndex]; + if (particle.gifTime === undefined) { + particle.gifTime = 0; + } + if (!frame.bitmap) { + return; + } + context.scale(radius / image.gifData.width, radius / image.gifData.height); + switch (frame.disposalMethod) { + case 4: + case 5: + case 6: + case 7: + case 0: + offscreenContext.drawImage(frame.bitmap, frame.left, frame.top); + context.drawImage(offscreenCanvas, pos.x, pos.y); + offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height); + break; + case 1: + offscreenContext.drawImage(frame.bitmap, frame.left, frame.top); + context.drawImage(offscreenCanvas, pos.x, pos.y); + break; + case 2: + offscreenContext.drawImage(frame.bitmap, frame.left, frame.top); + context.drawImage(offscreenCanvas, pos.x, pos.y); + offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height); + if (image.gifData.globalColorTable.length === 0) { + offscreenContext.putImageData(image.gifData.frames[0].image, pos.x + frame.left, pos.y + frame.top); + } else { + offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y); + } + break; + case 3: + { + const previousImageData = offscreenContext.getImageData(0, 0, offscreenCanvas.width, offscreenCanvas.height); + offscreenContext.drawImage(frame.bitmap, frame.left, frame.top); + context.drawImage(offscreenCanvas, pos.x, pos.y); + offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height); + offscreenContext.putImageData(previousImageData, 0, 0); + } + break; + } + particle.gifTime += delta.value; + if (particle.gifTime > frame.delayTime) { + particle.gifTime -= frame.delayTime; + if (++frameIndex >= image.gifData.frames.length) { + if (--particle.gifLoopCount <= 0) { + return; + } + frameIndex = 0; + offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height); + } + particle.gifFrame = frameIndex; + } + context.scale(image.gifData.width / radius, image.gifData.height / radius); + } else if (element) { + const ratio = image.ratio, + pos = { + x: -radius, + y: -radius + }; + context.drawImage(element, pos.x, pos.y, radius * 2, radius * 2 / ratio); + } + context.globalAlpha = 1; + } + getSidesCount() { + return 12; + } + async init(container) { + const options = container.actualOptions; + if (!options.preload || !this._engine.loadImage) { + return; + } + for (const imageData of options.preload) { + await this._engine.loadImage(imageData); + } + } + loadShape(particle) { + if (particle.shape !== "image" && particle.shape !== "images") { + return; + } + if (!this._engine.images) { + this._engine.images = []; + } + const imageData = particle.shapeData, + image = this._engine.images.find(t => t.name === imageData.name || t.source === imageData.src); + if (!image) { + this.loadImageShape(imageData).then(() => { + this.loadShape(particle); + }); + } + } + particleInit(container, particle) { + if (particle.shape !== "image" && particle.shape !== "images") { + return; + } + if (!this._engine.images) { + this._engine.images = []; + } + const images = this._engine.images, + imageData = particle.shapeData, + color = particle.getFillColor(), + image = images.find(t => t.name === imageData.name || t.source === imageData.src); + if (!image) { + return; + } + const replaceColor = imageData.replaceColor ?? imageData.replace_color ?? image.replaceColor; + if (image.loading) { + setTimeout(() => { + this.particleInit(container, particle); + }); + return; + } + (async () => { + let imageRes; + if (image.svgData && color) { + imageRes = await replaceImageColor(image, imageData, color, particle); + } else { + imageRes = { + color, + data: image, + element: image.element, + gif: image.gif, + gifData: image.gifData, + gifLoopCount: image.gifLoopCount, + loaded: true, + ratio: imageData.width && imageData.height ? imageData.width / imageData.height : image.ratio ?? 1, + replaceColor: replaceColor, + source: imageData.src + }; + } + if (!imageRes.ratio) { + imageRes.ratio = 1; + } + const fill = imageData.fill ?? particle.fill, + close = imageData.close ?? particle.close, + imageShape = { + image: imageRes, + fill, + close + }; + particle.image = imageShape.image; + particle.fill = imageShape.fill; + particle.close = imageShape.close; + })(); + } +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/Options/Classes/Preload.js +class Preload { + constructor() { + this.src = ""; + this.gif = false; + } + load(data) { + if (!data) { + return; + } + if (data.gif !== undefined) { + this.gif = data.gif; + } + if (data.height !== undefined) { + this.height = data.height; + } + if (data.name !== undefined) { + this.name = data.name; + } + if (data.replaceColor !== undefined) { + this.replaceColor = data.replaceColor; + } + if (data.src !== undefined) { + this.src = data.src; + } + if (data.width !== undefined) { + this.width = data.width; + } + } +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/ImagePreloader.js + +class ImagePreloaderPlugin { + constructor(engine) { + this.id = "imagePreloader"; + this._engine = engine; + } + getPlugin() { + return {}; + } + loadOptions(options, source) { + if (!source || !source.preload) { + return; + } + if (!options.preload) { + options.preload = []; + } + const preloadOptions = options.preload; + for (const item of source.preload) { + const existing = preloadOptions.find(t => t.name === item.name || t.src === item.src); + if (existing) { + existing.load(item); + } else { + const preload = new Preload(); + preload.load(item); + preloadOptions.push(preload); + } + } + } + needsPlugin() { + return true; + } +} +;// CONCATENATED MODULE: ../../shapes/image/dist/esm/index.js + + + + +function addLoadImageToEngine(engine) { + if (engine.loadImage) { + return; + } + engine.loadImage = async data => { + if (!data.name && !data.src) { + throw new Error(`${errorPrefix} no image source provided`); + } + if (!engine.images) { + engine.images = []; + } + if (engine.images.find(t => t.name === data.name || t.source === data.src)) { + return; + } + try { + const image = { + gif: data.gif ?? false, + name: data.name ?? data.src, + source: data.src, + type: data.src.substring(data.src.length - 3), + error: false, + loading: true, + replaceColor: data.replaceColor, + ratio: data.width && data.height ? data.width / data.height : undefined + }; + engine.images.push(image); + const imageFunc = data.gif ? loadGifImage : data.replaceColor ? downloadSvgImage : loadImage; + await imageFunc(image); + } catch { + throw new Error(`${errorPrefix} ${data.name ?? data.src} not found`); + } + }; +} +async function loadImageShape(engine, refresh = true) { + addLoadImageToEngine(engine); + const preloader = new ImagePreloaderPlugin(engine); + await engine.addPlugin(preloader, refresh); + await engine.addShape(["image", "images"], new ImageDrawer(engine), refresh); +} +;// CONCATENATED MODULE: ../../updaters/life/dist/esm/Options/Classes/LifeDelay.js + +class LifeDelay extends ValueWithRandom { + constructor() { + super(); + this.sync = false; + } + load(data) { + if (!data) { + return; + } + super.load(data); + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +;// CONCATENATED MODULE: ../../updaters/life/dist/esm/Options/Classes/LifeDuration.js + +class LifeDuration extends ValueWithRandom { + constructor() { + super(); + this.random.minimumValue = 0.0001; + this.sync = false; + } + load(data) { + if (!data) { + return; + } + super.load(data); + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +;// CONCATENATED MODULE: ../../updaters/life/dist/esm/Options/Classes/Life.js + + +class Life { + constructor() { + this.count = 0; + this.delay = new LifeDelay(); + this.duration = new LifeDuration(); + } + load(data) { + if (!data) { + return; + } + if (data.count !== undefined) { + this.count = data.count; + } + this.delay.load(data.delay); + this.duration.load(data.duration); + } +} +;// CONCATENATED MODULE: ../../updaters/life/dist/esm/LifeUpdater.js + + +class LifeUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const container = this.container, + particlesOptions = particle.options, + lifeOptions = particlesOptions.life; + if (!lifeOptions) { + return; + } + particle.life = { + delay: container.retina.reduceFactor ? getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : getRandom()) / container.retina.reduceFactor * 1000 : 0, + delayTime: 0, + duration: container.retina.reduceFactor ? getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : getRandom()) / container.retina.reduceFactor * 1000 : 0, + time: 0, + count: lifeOptions.count + }; + if (particle.life.duration <= 0) { + particle.life.duration = -1; + } + if (particle.life.count <= 0) { + particle.life.count = -1; + } + if (particle.life) { + particle.spawning = particle.life.delay > 0; + } + } + isEnabled(particle) { + return !particle.destroyed; + } + loadOptions(options, ...sources) { + if (!options.life) { + options.life = new Life(); + } + for (const source of sources) { + options.life.load(source?.life); + } + } + update(particle, delta) { + if (!this.isEnabled(particle) || !particle.life) { + return; + } + const life = particle.life; + let justSpawned = false; + if (particle.spawning) { + life.delayTime += delta.value; + if (life.delayTime >= particle.life.delay) { + justSpawned = true; + particle.spawning = false; + life.delayTime = 0; + life.time = 0; + } else { + return; + } + } + if (life.duration === -1) { + return; + } + if (particle.spawning) { + return; + } + if (justSpawned) { + life.time = 0; + } else { + life.time += delta.value; + } + if (life.time < life.duration) { + return; + } + life.time = 0; + if (particle.life.count > 0) { + particle.life.count--; + } + if (particle.life.count === 0) { + particle.destroy(); + return; + } + const canvasSize = this.container.canvas.size, + widthRange = setRangeValue(0, canvasSize.width), + heightRange = setRangeValue(0, canvasSize.width); + particle.position.x = randomInRange(widthRange); + particle.position.y = randomInRange(heightRange); + particle.spawning = true; + life.delayTime = 0; + life.time = 0; + particle.reset(); + const lifeOptions = particle.options.life; + if (lifeOptions) { + life.delay = getRangeValue(lifeOptions.delay.value) * 1000; + life.duration = getRangeValue(lifeOptions.duration.value) * 1000; + } + } +} +;// CONCATENATED MODULE: ../../updaters/life/dist/esm/index.js + +async function loadLifeUpdater(engine, refresh = true) { + await engine.addParticleUpdater("life", container => new LifeUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../shapes/line/dist/esm/LineDrawer.js +class LineDrawer { + draw(context, particle, radius) { + const shapeData = particle.shapeData; + context.moveTo(-radius / 2, 0); + context.lineTo(radius / 2, 0); + context.lineCap = shapeData?.cap ?? "butt"; + } + getSidesCount() { + return 1; + } +} +;// CONCATENATED MODULE: ../../shapes/line/dist/esm/index.js + +async function loadLineShape(engine, refresh = true) { + await engine.addShape("line", new LineDrawer(), refresh); +} +;// CONCATENATED MODULE: ../../move/parallax/dist/esm/ParallaxMover.js + +class ParallaxMover { + init() {} + isEnabled(particle) { + return !isSsr() && !particle.destroyed && particle.container.actualOptions.interactivity.events.onHover.parallax.enable; + } + move(particle) { + const container = particle.container, + options = container.actualOptions, + parallaxOptions = options.interactivity.events.onHover.parallax; + if (isSsr() || !parallaxOptions.enable) { + return; + } + const parallaxForce = parallaxOptions.force, + mousePos = container.interactivity.mouse.position; + if (!mousePos) { + return; + } + const canvasSize = container.canvas.size, + canvasCenter = { + x: canvasSize.width / 2, + y: canvasSize.height / 2 + }, + parallaxSmooth = parallaxOptions.smooth, + factor = particle.getRadius() / parallaxForce, + centerDistance = { + x: (mousePos.x - canvasCenter.x) * factor, + y: (mousePos.y - canvasCenter.y) * factor + }, + { + offset + } = particle; + offset.x += (centerDistance.x - offset.x) / parallaxSmooth; + offset.y += (centerDistance.y - offset.y) / parallaxSmooth; + } +} +;// CONCATENATED MODULE: ../../move/parallax/dist/esm/index.js + +async function loadParallaxMover(engine, refresh = true) { + await engine.addMover("parallax", () => new ParallaxMover(), refresh); +} +;// CONCATENATED MODULE: ../../interactions/particles/attract/dist/esm/Attractor.js + +class Attractor_Attractor extends ParticlesInteractorBase { + constructor(container) { + super(container); + } + clear() {} + init() {} + async interact(p1) { + const container = this.container, + distance = p1.retina.attractDistance ?? container.retina.attractDistance, + pos1 = p1.getPosition(), + query = container.particles.quadTree.queryCircle(pos1, distance); + for (const p2 of query) { + if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) { + continue; + } + const pos2 = p2.getPosition(), + { + dx, + dy + } = getDistances(pos1, pos2), + rotate = p1.options.move.attract.rotate, + ax = dx / (rotate.x * 1000), + ay = dy / (rotate.y * 1000), + p1Factor = p2.size.value / p1.size.value, + p2Factor = 1 / p1Factor; + p1.velocity.x -= ax * p1Factor; + p1.velocity.y -= ay * p1Factor; + p2.velocity.x += ax * p2Factor; + p2.velocity.y += ay * p2Factor; + } + } + isEnabled(particle) { + return particle.options.move.attract.enable; + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/particles/attract/dist/esm/index.js + +async function loadParticlesAttractInteraction(engine, refresh = true) { + await engine.addInteractor("particlesAttract", container => new Attractor_Attractor(container), refresh); +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/Absorb.js + +function updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) { + const factor = clamp(p1.options.collisions.absorb.speed * delta.factor / 10, 0, r2); + p1.size.value += factor / 2; + p2.size.value -= factor; + if (r2 <= pixelRatio) { + p2.size.value = 0; + p2.destroy(); + } +} +function absorb(p1, p2, delta, pixelRatio) { + const r1 = p1.getRadius(), + r2 = p2.getRadius(); + if (r1 === undefined && r2 !== undefined) { + p1.destroy(); + } else if (r1 !== undefined && r2 === undefined) { + p2.destroy(); + } else if (r1 !== undefined && r2 !== undefined) { + if (r1 >= r2) { + updateAbsorb(p1, r1, p2, r2, delta, pixelRatio); + } else { + updateAbsorb(p2, r2, p1, r1, delta, pixelRatio); + } + } +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/Bounce.js + +const fixBounceSpeed = p => { + if (p.collisionMaxSpeed === undefined) { + p.collisionMaxSpeed = getRangeValue(p.options.collisions.maxSpeed); + } + if (p.velocity.length > p.collisionMaxSpeed) { + p.velocity.length = p.collisionMaxSpeed; + } +}; +function bounce(p1, p2) { + circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2)); + fixBounceSpeed(p1); + fixBounceSpeed(p2); +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/Destroy.js + +function destroy(p1, p2) { + if (!p1.unbreakable && !p2.unbreakable) { + bounce(p1, p2); + } + if (p1.getRadius() === undefined && p2.getRadius() !== undefined) { + p1.destroy(); + } else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) { + p2.destroy(); + } else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) { + const deleteP = p1.getRadius() >= p2.getRadius() ? p2 : p1; + deleteP.destroy(); + } +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/ResolveCollision.js + + + +function resolveCollision(p1, p2, delta, pixelRatio) { + switch (p1.options.collisions.mode) { + case "absorb": + { + absorb(p1, p2, delta, pixelRatio); + break; + } + case "bounce": + { + bounce(p1, p2); + break; + } + case "destroy": + { + destroy(p1, p2); + break; + } + } +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/Collider.js + + +class Collider extends ParticlesInteractorBase { + constructor(container) { + super(container); + } + clear() {} + init() {} + async interact(p1, delta) { + if (p1.destroyed || p1.spawning) { + return; + } + const container = this.container, + pos1 = p1.getPosition(), + radius1 = p1.getRadius(), + query = container.particles.quadTree.queryCircle(pos1, radius1 * 2); + for (const p2 of query) { + if (p1 === p2 || !p2.options.collisions.enable || p1.options.collisions.mode !== p2.options.collisions.mode || p2.destroyed || p2.spawning) { + continue; + } + const pos2 = p2.getPosition(), + radius2 = p2.getRadius(); + if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) { + continue; + } + const dist = getDistance(pos1, pos2), + distP = radius1 + radius2; + if (dist > distP) { + continue; + } + resolveCollision(p1, p2, delta, container.retina.pixelRatio); + } + } + isEnabled(particle) { + return particle.options.collisions.enable; + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/particles/collisions/dist/esm/index.js + +async function loadParticlesCollisionsInteraction(engine, refresh = true) { + await engine.addInteractor("particlesCollisions", container => new Collider(container), refresh); +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/CircleWarp.js + +class CircleWarp extends Circle { + constructor(x, y, radius, canvasSize) { + super(x, y, radius); + this.canvasSize = canvasSize; + this.canvasSize = { + ...canvasSize + }; + } + contains(point) { + const { + width, + height + } = this.canvasSize; + const { + x, + y + } = point; + return super.contains(point) || super.contains({ + x: x - width, + y + }) || super.contains({ + x: x - width, + y: y - height + }) || super.contains({ + x, + y: y - height + }); + } + intersects(range) { + if (super.intersects(range)) { + return true; + } + const rect = range, + circle = range, + newPos = { + x: range.position.x - this.canvasSize.width, + y: range.position.y - this.canvasSize.height + }; + if (circle.radius !== undefined) { + const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2); + return super.intersects(biggerCircle); + } else if (rect.size !== undefined) { + const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2); + return super.intersects(rectSW); + } + return false; + } +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/Options/Classes/LinksShadow.js + +class LinksShadow { + constructor() { + this.blur = 5; + this.color = new OptionsColor(); + this.color.value = "#000"; + this.enable = false; + } + load(data) { + if (!data) { + return; + } + if (data.blur !== undefined) { + this.blur = data.blur; + } + this.color = OptionsColor.create(this.color, data.color); + if (data.enable !== undefined) { + this.enable = data.enable; + } + } +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/Options/Classes/LinksTriangle.js + +class LinksTriangle { + constructor() { + this.enable = false; + this.frequency = 1; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.frequency !== undefined) { + this.frequency = data.frequency; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + } +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/Options/Classes/Links.js + + + +class Links { + constructor() { + this.blink = false; + this.color = new OptionsColor(); + this.color.value = "#fff"; + this.consent = false; + this.distance = 100; + this.enable = false; + this.frequency = 1; + this.opacity = 1; + this.shadow = new LinksShadow(); + this.triangles = new LinksTriangle(); + this.width = 1; + this.warp = false; + } + load(data) { + if (!data) { + return; + } + if (data.id !== undefined) { + this.id = data.id; + } + if (data.blink !== undefined) { + this.blink = data.blink; + } + this.color = OptionsColor.create(this.color, data.color); + if (data.consent !== undefined) { + this.consent = data.consent; + } + if (data.distance !== undefined) { + this.distance = data.distance; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.frequency !== undefined) { + this.frequency = data.frequency; + } + if (data.opacity !== undefined) { + this.opacity = data.opacity; + } + this.shadow.load(data.shadow); + this.triangles.load(data.triangles); + if (data.width !== undefined) { + this.width = data.width; + } + if (data.warp !== undefined) { + this.warp = data.warp; + } + } +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/Linker.js + + + +function getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) { + const { + dx, + dy, + distance + } = getDistances(pos1, pos2); + if (!warp || distance <= optDistance) { + return distance; + } + const absDiffs = { + x: Math.abs(dx), + y: Math.abs(dy) + }, + warpDistances = { + x: Math.min(absDiffs.x, canvasSize.width - absDiffs.x), + y: Math.min(absDiffs.y, canvasSize.height - absDiffs.y) + }; + return Math.sqrt(warpDistances.x ** 2 + warpDistances.y ** 2); +} +class Linker extends ParticlesInteractorBase { + constructor(container) { + super(container); + this._setColor = p1 => { + if (!p1.options.links) { + return; + } + const container = this.linkContainer, + linksOptions = p1.options.links; + let linkColor = linksOptions.id === undefined ? container.particles.linksColor : container.particles.linksColors.get(linksOptions.id); + if (linkColor) { + return; + } + const optColor = linksOptions.color; + linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent); + if (linksOptions.id === undefined) { + container.particles.linksColor = linkColor; + } else { + container.particles.linksColors.set(linksOptions.id, linkColor); + } + }; + this.linkContainer = container; + } + clear() {} + init() { + this.linkContainer.particles.linksColor = undefined; + this.linkContainer.particles.linksColors = new Map(); + } + async interact(p1) { + if (!p1.options.links) { + return; + } + p1.links = []; + const pos1 = p1.getPosition(), + container = this.container, + canvasSize = container.canvas.size; + if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) { + return; + } + const linkOpt1 = p1.options.links, + optOpacity = linkOpt1.opacity, + optDistance = p1.retina.linksDistance ?? 0, + warp = linkOpt1.warp, + range = warp ? new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize) : new Circle(pos1.x, pos1.y, optDistance), + query = container.particles.quadTree.query(range); + for (const p2 of query) { + const linkOpt2 = p2.options.links; + if (p1 === p2 || !linkOpt2?.enable || linkOpt1.id !== linkOpt2.id || p2.spawning || p2.destroyed || !p2.links || p1.links.some(t => t.destination === p2) || p2.links.some(t => t.destination === p1)) { + continue; + } + const pos2 = p2.getPosition(); + if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) { + continue; + } + const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp); + if (distance > optDistance) { + continue; + } + const opacityLine = (1 - distance / optDistance) * optOpacity; + this._setColor(p1); + p1.links.push({ + destination: p2, + opacity: opacityLine + }); + } + } + isEnabled(particle) { + return !!particle.options.links?.enable; + } + loadParticlesOptions(options, ...sources) { + if (!options.links) { + options.links = new Links(); + } + for (const source of sources) { + options.links.load(source?.links ?? source?.lineLinked ?? source?.line_linked); + } + } + reset() {} +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/interaction.js + +async function loadLinksInteraction(engine, refresh = true) { + await engine.addInteractor("particlesLinks", container => new Linker(container), refresh); +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/Utils.js + +function drawLinkLine(params) { + let drawn = false; + const { + begin, + end, + maxDistance, + context, + canvasSize, + width, + backgroundMask, + colorLine, + opacity, + links + } = params; + if (getDistance(begin, end) <= maxDistance) { + drawLine(context, begin, end); + drawn = true; + } else if (links.warp) { + let pi1; + let pi2; + const endNE = { + x: end.x - canvasSize.width, + y: end.y + }; + const d1 = getDistances(begin, endNE); + if (d1.distance <= maxDistance) { + const yi = begin.y - d1.dy / d1.dx * begin.x; + pi1 = { + x: 0, + y: yi + }; + pi2 = { + x: canvasSize.width, + y: yi + }; + } else { + const endSW = { + x: end.x, + y: end.y - canvasSize.height + }; + const d2 = getDistances(begin, endSW); + if (d2.distance <= maxDistance) { + const yi = begin.y - d2.dy / d2.dx * begin.x; + const xi = -yi / (d2.dy / d2.dx); + pi1 = { + x: xi, + y: 0 + }; + pi2 = { + x: xi, + y: canvasSize.height + }; + } else { + const endSE = { + x: end.x - canvasSize.width, + y: end.y - canvasSize.height + }; + const d3 = getDistances(begin, endSE); + if (d3.distance <= maxDistance) { + const yi = begin.y - d3.dy / d3.dx * begin.x; + const xi = -yi / (d3.dy / d3.dx); + pi1 = { + x: xi, + y: yi + }; + pi2 = { + x: pi1.x + canvasSize.width, + y: pi1.y + canvasSize.height + }; + } + } + } + if (pi1 && pi2) { + drawLine(context, begin, pi1); + drawLine(context, end, pi2); + drawn = true; + } + } + if (!drawn) { + return; + } + context.lineWidth = width; + if (backgroundMask.enable) { + context.globalCompositeOperation = backgroundMask.composite; + } + context.strokeStyle = getStyleFromRgb(colorLine, opacity); + const { + shadow + } = links; + if (shadow.enable) { + const shadowColor = rangeColorToRgb(shadow.color); + if (shadowColor) { + context.shadowBlur = shadow.blur; + context.shadowColor = getStyleFromRgb(shadowColor); + } + } + context.stroke(); +} +function drawLinkTriangle(params) { + const { + context, + pos1, + pos2, + pos3, + backgroundMask, + colorTriangle, + opacityTriangle + } = params; + drawTriangle(context, pos1, pos2, pos3); + if (backgroundMask.enable) { + context.globalCompositeOperation = backgroundMask.composite; + } + context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle); + context.fill(); +} +function getLinkKey(ids) { + ids.sort((a, b) => a - b); + return ids.join("_"); +} +function setLinkFrequency(particles, dictionary) { + const key = getLinkKey(particles.map(t => t.id)); + let res = dictionary.get(key); + if (res === undefined) { + res = getRandom(); + dictionary.set(key, res); + } + return res; +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/LinkInstance.js + + +class LinkInstance { + constructor(container) { + this.container = container; + this._drawLinkLine = (p1, link) => { + const p1LinksOptions = p1.options.links; + if (!p1LinksOptions?.enable) { + return; + } + const container = this.container, + options = container.actualOptions, + p2 = link.destination, + pos1 = p1.getPosition(), + pos2 = p2.getPosition(); + let opacity = link.opacity; + container.canvas.draw(ctx => { + let colorLine; + const twinkle = p1.options.twinkle?.lines; + if (twinkle?.enable) { + const twinkleFreq = twinkle.frequency, + twinkleRgb = rangeColorToRgb(twinkle.color), + twinkling = getRandom() < twinkleFreq; + if (twinkling && twinkleRgb) { + colorLine = twinkleRgb; + opacity = getRangeValue(twinkle.opacity); + } + } + if (!colorLine) { + const linkColor = p1LinksOptions.id !== undefined ? container.particles.linksColors.get(p1LinksOptions.id) : container.particles.linksColor; + colorLine = getLinkColor(p1, p2, linkColor); + } + if (!colorLine) { + return; + } + const width = p1.retina.linksWidth ?? 0, + maxDistance = p1.retina.linksDistance ?? 0, + { + backgroundMask + } = options; + drawLinkLine({ + context: ctx, + width, + begin: pos1, + end: pos2, + maxDistance, + canvasSize: container.canvas.size, + links: p1LinksOptions, + backgroundMask: backgroundMask, + colorLine, + opacity + }); + }); + }; + this._drawLinkTriangle = (p1, link1, link2) => { + const linksOptions = p1.options.links; + if (!linksOptions?.enable) { + return; + } + const triangleOptions = linksOptions.triangles; + if (!triangleOptions.enable) { + return; + } + const container = this.container, + options = container.actualOptions, + p2 = link1.destination, + p3 = link2.destination, + opacityTriangle = triangleOptions.opacity ?? (link1.opacity + link2.opacity) / 2; + if (opacityTriangle <= 0) { + return; + } + container.canvas.draw(ctx => { + const pos1 = p1.getPosition(), + pos2 = p2.getPosition(), + pos3 = p3.getPosition(), + linksDistance = p1.retina.linksDistance ?? 0; + if (getDistance(pos1, pos2) > linksDistance || getDistance(pos3, pos2) > linksDistance || getDistance(pos3, pos1) > linksDistance) { + return; + } + let colorTriangle = rangeColorToRgb(triangleOptions.color); + if (!colorTriangle) { + const linkColor = linksOptions.id !== undefined ? container.particles.linksColors.get(linksOptions.id) : container.particles.linksColor; + colorTriangle = getLinkColor(p1, p2, linkColor); + } + if (!colorTriangle) { + return; + } + drawLinkTriangle({ + context: ctx, + pos1, + pos2, + pos3, + backgroundMask: options.backgroundMask, + colorTriangle, + opacityTriangle + }); + }); + }; + this._drawTriangles = (options, p1, link, p1Links) => { + const p2 = link.destination; + if (!(options.links?.triangles.enable && p2.options.links?.triangles.enable)) { + return; + } + const vertices = p2.links?.filter(t => { + const linkFreq = this._getLinkFrequency(p2, t.destination); + return p2.options.links && linkFreq <= p2.options.links.frequency && p1Links.findIndex(l => l.destination === t.destination) >= 0; + }); + if (!vertices?.length) { + return; + } + for (const vertex of vertices) { + const p3 = vertex.destination, + triangleFreq = this._getTriangleFrequency(p1, p2, p3); + if (triangleFreq > options.links.triangles.frequency) { + continue; + } + this._drawLinkTriangle(p1, link, vertex); + } + }; + this._getLinkFrequency = (p1, p2) => { + return setLinkFrequency([p1, p2], this._freqs.links); + }; + this._getTriangleFrequency = (p1, p2, p3) => { + return setLinkFrequency([p1, p2, p3], this._freqs.triangles); + }; + this._freqs = { + links: new Map(), + triangles: new Map() + }; + } + drawParticle(context, particle) { + const { + links, + options + } = particle; + if (!links || links.length <= 0) { + return; + } + const p1Links = links.filter(l => options.links && this._getLinkFrequency(particle, l.destination) <= options.links.frequency); + for (const link of p1Links) { + this._drawTriangles(options, particle, link, p1Links); + if (link.opacity > 0 && (particle.retina.linksWidth ?? 0) > 0) { + this._drawLinkLine(particle, link); + } + } + } + async init() { + this._freqs.links = new Map(); + this._freqs.triangles = new Map(); + } + particleCreated(particle) { + particle.links = []; + if (!particle.options.links) { + return; + } + const ratio = this.container.retina.pixelRatio, + { + retina + } = particle, + { + distance, + width + } = particle.options.links; + retina.linksDistance = distance * ratio; + retina.linksWidth = width * ratio; + } + particleDestroyed(particle) { + particle.links = []; + } +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/plugin.js + +class LinksPlugin { + constructor() { + this.id = "links"; + } + getPlugin(container) { + return new LinkInstance(container); + } + loadOptions() {} + needsPlugin() { + return true; + } +} +async function loadLinksPlugin(engine, refresh = true) { + const plugin = new LinksPlugin(); + await engine.addPlugin(plugin, refresh); +} +;// CONCATENATED MODULE: ../../interactions/particles/links/dist/esm/index.js + + +async function loadParticlesLinksInteraction(engine, refresh = true) { + await loadLinksInteraction(engine, refresh); + await loadLinksPlugin(engine, refresh); +} + + + + + + +;// CONCATENATED MODULE: ../../shapes/polygon/dist/esm/PolygonDrawerBase.js + +class PolygonDrawerBase { + draw(context, particle, radius) { + const start = this.getCenter(particle, radius), + side = this.getSidesData(particle, radius), + sideCount = side.count.numerator * side.count.denominator, + decimalSides = side.count.numerator / side.count.denominator, + interiorAngleDegrees = 180 * (decimalSides - 2) / decimalSides, + interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180; + if (!context) { + return; + } + context.beginPath(); + context.translate(start.x, start.y); + context.moveTo(0, 0); + for (let i = 0; i < sideCount; i++) { + context.lineTo(side.length, 0); + context.translate(side.length, 0); + context.rotate(interiorAngle); + } + } + getSidesCount(particle) { + const polygon = particle.shapeData; + return Math.round(getRangeValue(polygon?.sides ?? polygon?.nb_sides ?? 5)); + } +} +;// CONCATENATED MODULE: ../../shapes/polygon/dist/esm/PolygonDrawer.js + +class PolygonDrawer extends PolygonDrawerBase { + getCenter(particle, radius) { + return { + x: -radius / (particle.sides / 3.5), + y: -radius / (2.66 / 3.5) + }; + } + getSidesData(particle, radius) { + const sides = particle.sides; + return { + count: { + denominator: 1, + numerator: sides + }, + length: radius * 2.66 / (sides / 3) + }; + } +} +;// CONCATENATED MODULE: ../../shapes/polygon/dist/esm/TriangleDrawer.js + +class TriangleDrawer extends PolygonDrawerBase { + getCenter(particle, radius) { + return { + x: -radius, + y: radius / 1.66 + }; + } + getSidesCount() { + return 3; + } + getSidesData(particle, radius) { + return { + count: { + denominator: 2, + numerator: 3 + }, + length: radius * 2 + }; + } +} +;// CONCATENATED MODULE: ../../shapes/polygon/dist/esm/index.js + + +async function loadGenericPolygonShape(engine, refresh = true) { + await engine.addShape("polygon", new PolygonDrawer(), refresh); +} +async function loadTriangleShape(engine, refresh = true) { + await engine.addShape("triangle", new TriangleDrawer(), refresh); +} +async function loadPolygonShape(engine, refresh = true) { + await loadGenericPolygonShape(engine, refresh); + await loadTriangleShape(engine, refresh); +} +;// CONCATENATED MODULE: ../../updaters/rotate/dist/esm/Options/Classes/RotateAnimation.js + +class RotateAnimation { + constructor() { + this.enable = false; + this.speed = 0; + this.decay = 0; + this.sync = false; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + if (data.decay !== undefined) { + this.decay = setRangeValue(data.decay); + } + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +;// CONCATENATED MODULE: ../../updaters/rotate/dist/esm/Options/Classes/Rotate.js + + +class Rotate extends ValueWithRandom { + constructor() { + super(); + this.animation = new RotateAnimation(); + this.direction = "clockwise"; + this.path = false; + this.value = 0; + } + load(data) { + if (!data) { + return; + } + super.load(data); + if (data.direction !== undefined) { + this.direction = data.direction; + } + this.animation.load(data.animation); + if (data.path !== undefined) { + this.path = data.path; + } + } +} +;// CONCATENATED MODULE: ../../updaters/rotate/dist/esm/RotateUpdater.js + + +function updateRotate(particle, delta) { + const rotate = particle.rotate, + rotateOptions = particle.options.rotate; + if (!rotate || !rotateOptions) { + return; + } + const rotateAnimation = rotateOptions.animation, + speed = (rotate.velocity ?? 0) * delta.factor, + max = 2 * Math.PI, + decay = rotate.decay ?? 1; + if (!rotateAnimation.enable) { + return; + } + switch (rotate.status) { + case "increasing": + rotate.value += speed; + if (rotate.value > max) { + rotate.value -= max; + } + break; + case "decreasing": + default: + rotate.value -= speed; + if (rotate.value < 0) { + rotate.value += max; + } + break; + } + if (rotate.velocity && decay !== 1) { + rotate.velocity *= decay; + } +} +class RotateUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const rotateOptions = particle.options.rotate; + if (!rotateOptions) { + return; + } + particle.rotate = { + enable: rotateOptions.animation.enable, + value: getRangeValue(rotateOptions.value) * Math.PI / 180 + }; + particle.pathRotation = rotateOptions.path; + let rotateDirection = rotateOptions.direction; + if (rotateDirection === "random") { + const index = Math.floor(getRandom() * 2); + rotateDirection = index > 0 ? "counter-clockwise" : "clockwise"; + } + switch (rotateDirection) { + case "counter-clockwise": + case "counterClockwise": + particle.rotate.status = "decreasing"; + break; + case "clockwise": + particle.rotate.status = "increasing"; + break; + } + const rotateAnimation = rotateOptions.animation; + if (rotateAnimation.enable) { + particle.rotate.decay = 1 - getRangeValue(rotateAnimation.decay); + particle.rotate.velocity = getRangeValue(rotateAnimation.speed) / 360 * this.container.retina.reduceFactor; + if (!rotateAnimation.sync) { + particle.rotate.velocity *= getRandom(); + } + } + particle.rotation = particle.rotate.value; + } + isEnabled(particle) { + const rotate = particle.options.rotate; + if (!rotate) { + return false; + } + return !particle.destroyed && !particle.spawning && rotate.animation.enable && !rotate.path; + } + loadOptions(options, ...sources) { + if (!options.rotate) { + options.rotate = new Rotate(); + } + for (const source of sources) { + options.rotate.load(source?.rotate); + } + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateRotate(particle, delta); + particle.rotation = particle.rotate?.value ?? 0; + } +} +;// CONCATENATED MODULE: ../../updaters/rotate/dist/esm/index.js + +async function loadRotateUpdater(engine, refresh = true) { + await engine.addParticleUpdater("rotate", container => new RotateUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../shapes/square/dist/esm/SquareDrawer.js +const fixFactor = Math.sqrt(2); +class SquareDrawer { + draw(context, particle, radius) { + const fixedRadius = radius / fixFactor, + fixedDiameter = fixedRadius * 2; + context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter); + } + getSidesCount() { + return 4; + } +} +;// CONCATENATED MODULE: ../../shapes/square/dist/esm/index.js + +async function loadSquareShape(engine, refresh = true) { + await engine.addShape(["edge", "square"], new SquareDrawer(), refresh); +} +;// CONCATENATED MODULE: ../../shapes/star/dist/esm/StarDrawer.js + +class StarDrawer { + draw(context, particle, radius) { + const sides = particle.sides, + inset = particle.starInset ?? 2; + context.moveTo(0, 0 - radius); + for (let i = 0; i < sides; i++) { + context.rotate(Math.PI / sides); + context.lineTo(0, 0 - radius * inset); + context.rotate(Math.PI / sides); + context.lineTo(0, 0 - radius); + } + } + getSidesCount(particle) { + const star = particle.shapeData; + return Math.round(getRangeValue(star?.sides ?? star?.nb_sides ?? 5)); + } + particleInit(container, particle) { + const star = particle.shapeData, + inset = getRangeValue(star?.inset ?? 2); + particle.starInset = inset; + } +} +;// CONCATENATED MODULE: ../../shapes/star/dist/esm/index.js + +async function loadStarShape(engine, refresh = true) { + await engine.addShape("star", new StarDrawer(), refresh); +} +;// CONCATENATED MODULE: ../../updaters/strokeColor/dist/esm/Utils.js + +function Utils_updateColorValue(delta, colorValue, valueAnimation, max, decrease) { + if (!colorValue || !valueAnimation.enable || (colorValue.maxLoops ?? 0) > 0 && (colorValue.loops ?? 0) > (colorValue.maxLoops ?? 0)) { + return; + } + if (!colorValue.time) { + colorValue.time = 0; + } + if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) { + colorValue.time += delta.value; + } + if ((colorValue.delayTime ?? 0) > 0 && colorValue.time < (colorValue.delayTime ?? 0)) { + return; + } + const offset = randomInRange(valueAnimation.offset), + velocity = (colorValue.velocity ?? 0) * delta.factor + offset * 3.6, + decay = colorValue.decay ?? 1; + if (!decrease || colorValue.status === "increasing") { + colorValue.value += velocity; + if (colorValue.value > max) { + if (!colorValue.loops) { + colorValue.loops = 0; + } + colorValue.loops++; + if (decrease) { + colorValue.status = "decreasing"; + colorValue.value -= colorValue.value % max; + } + } + } else { + colorValue.value -= velocity; + if (colorValue.value < 0) { + if (!colorValue.loops) { + colorValue.loops = 0; + } + colorValue.loops++; + colorValue.status = "increasing"; + colorValue.value += colorValue.value; + } + } + if (colorValue.velocity && decay !== 1) { + colorValue.velocity *= decay; + } + if (colorValue.value > max) { + colorValue.value %= max; + } +} +function updateStrokeColor(particle, delta) { + if (!particle.strokeColor || !particle.strokeAnimation) { + return; + } + const { + h, + s, + l + } = particle.strokeColor, + { + h: hAnimation, + s: sAnimation, + l: lAnimation + } = particle.strokeAnimation; + if (h) { + Utils_updateColorValue(delta, h, hAnimation, 360, false); + } + if (s) { + Utils_updateColorValue(delta, s, sAnimation, 100, true); + } + if (l) { + Utils_updateColorValue(delta, l, lAnimation, 100, true); + } +} +;// CONCATENATED MODULE: ../../updaters/strokeColor/dist/esm/StrokeColorUpdater.js + + +class StrokeColorUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const container = this.container, + options = particle.options; + const stroke = itemFromSingleOrMultiple(options.stroke, particle.id, options.reduceDuplicates); + particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio; + particle.strokeOpacity = getRangeValue(stroke.opacity ?? 1); + particle.strokeAnimation = stroke.color?.animation; + const strokeHslColor = rangeColorToHsl(stroke.color) ?? particle.getFillColor(); + if (strokeHslColor) { + particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor); + } + } + isEnabled(particle) { + const color = particle.strokeAnimation, + { + strokeColor + } = particle; + return !particle.destroyed && !particle.spawning && !!color && (strokeColor?.h.value !== undefined && strokeColor.h.enable || strokeColor?.s.value !== undefined && strokeColor.s.enable || strokeColor?.l.value !== undefined && strokeColor.l.enable); + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateStrokeColor(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/strokeColor/dist/esm/index.js + +async function loadStrokeColorUpdater(engine, refresh = true) { + await engine.addParticleUpdater("strokeColor", container => new StrokeColorUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../shapes/text/dist/esm/TextDrawer.js + +const validTypes = ["text", "character", "char"]; +class TextDrawer { + draw(context, particle, radius, opacity) { + const character = particle.shapeData; + if (character === undefined) { + return; + } + const textData = character.value; + if (textData === undefined) { + return; + } + if (particle.text === undefined) { + particle.text = itemFromSingleOrMultiple(textData, particle.randomIndexData); + } + const text = particle.text, + style = character.style ?? "", + weight = character.weight ?? "400", + size = Math.round(radius) * 2, + font = character.font ?? "Verdana", + fill = particle.fill, + offsetX = text.length * radius / 2; + context.font = `${style} ${weight} ${size}px "${font}"`; + const pos = { + x: -offsetX, + y: radius / 2 + }; + context.globalAlpha = opacity; + if (fill) { + context.fillText(text, pos.x, pos.y); + } else { + context.strokeText(text, pos.x, pos.y); + } + context.globalAlpha = 1; + } + getSidesCount() { + return 12; + } + async init(container) { + const options = container.actualOptions; + if (validTypes.find(t => isInArray(t, options.particles.shape.type))) { + const shapeOptions = validTypes.map(t => options.particles.shape.options[t]).find(t => !!t), + promises = []; + executeOnSingleOrMultiple(shapeOptions, shape => { + promises.push(loadFont(shape.font, shape.weight)); + }); + await Promise.all(promises); + } + } + particleInit(container, particle) { + if (!particle.shape || !validTypes.includes(particle.shape)) { + return; + } + const character = particle.shapeData; + if (character === undefined) { + return; + } + const textData = character.value; + if (textData === undefined) { + return; + } + particle.text = itemFromSingleOrMultiple(textData, particle.randomIndexData); + } +} +;// CONCATENATED MODULE: ../../shapes/text/dist/esm/index.js + +async function loadTextShape(engine, refresh = true) { + await engine.addShape(validTypes, new TextDrawer(), refresh); +} +;// CONCATENATED MODULE: ../slim/dist/esm/index.js + + + + + + + + + + + + + + + + + + + + + + + + + + +async function loadSlim(engine, refresh = true) { + initPjs(engine); + await loadParallaxMover(engine, false); + await loadExternalAttractInteraction(engine, false); + await loadExternalBounceInteraction(engine, false); + await loadExternalBubbleInteraction(engine, false); + await loadExternalConnectInteraction(engine, false); + await loadExternalGrabInteraction(engine, false); + await loadExternalPauseInteraction(engine, false); + await loadExternalPushInteraction(engine, false); + await loadExternalRemoveInteraction(engine, false); + await loadExternalRepulseInteraction(engine, false); + await loadExternalSlowInteraction(engine, false); + await loadParticlesAttractInteraction(engine, false); + await loadParticlesCollisionsInteraction(engine, false); + await loadParticlesLinksInteraction(engine, false); + await loadEasingQuadPlugin(); + await loadImageShape(engine, false); + await loadLineShape(engine, false); + await loadPolygonShape(engine, false); + await loadSquareShape(engine, false); + await loadStarShape(engine, false); + await loadTextShape(engine, false); + await loadLifeUpdater(engine, false); + await loadRotateUpdater(engine, false); + await loadStrokeColorUpdater(engine, false); + await loadBasic(engine, refresh); +} +;// CONCATENATED MODULE: ../../updaters/tilt/dist/esm/Options/Classes/TiltAnimation.js + +class TiltAnimation { + constructor() { + this.enable = false; + this.speed = 0; + this.decay = 0; + this.sync = false; + } + load(data) { + if (!data) { + return; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.speed !== undefined) { + this.speed = setRangeValue(data.speed); + } + if (data.decay !== undefined) { + this.decay = setRangeValue(data.decay); + } + if (data.sync !== undefined) { + this.sync = data.sync; + } + } +} +;// CONCATENATED MODULE: ../../updaters/tilt/dist/esm/Options/Classes/Tilt.js + + +class Tilt extends ValueWithRandom { + constructor() { + super(); + this.animation = new TiltAnimation(); + this.direction = "clockwise"; + this.enable = false; + this.value = 0; + } + load(data) { + super.load(data); + if (!data) { + return; + } + this.animation.load(data.animation); + if (data.direction !== undefined) { + this.direction = data.direction; + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + } +} +;// CONCATENATED MODULE: ../../updaters/tilt/dist/esm/Utils.js +function updateTilt(particle, delta) { + if (!particle.tilt || !particle.options.tilt) { + return; + } + const tilt = particle.options.tilt, + tiltAnimation = tilt.animation, + speed = (particle.tilt.velocity ?? 0) * delta.factor, + max = 2 * Math.PI, + decay = particle.tilt.decay ?? 1; + if (!tiltAnimation.enable) { + return; + } + switch (particle.tilt.status) { + case "increasing": + particle.tilt.value += speed; + if (particle.tilt.value > max) { + particle.tilt.value -= max; + } + break; + case "decreasing": + default: + particle.tilt.value -= speed; + if (particle.tilt.value < 0) { + particle.tilt.value += max; + } + break; + } + if (particle.tilt.velocity && decay !== 1) { + particle.tilt.velocity *= decay; + } +} +;// CONCATENATED MODULE: ../../updaters/tilt/dist/esm/TiltUpdater.js + + + +class TiltUpdater { + constructor(container) { + this.container = container; + } + getTransformValues(particle) { + const tilt = particle.tilt?.enable && particle.tilt; + return { + b: tilt ? Math.cos(tilt.value) * tilt.cosDirection : undefined, + c: tilt ? Math.sin(tilt.value) * tilt.sinDirection : undefined + }; + } + init(particle) { + const tiltOptions = particle.options.tilt; + if (!tiltOptions) { + return; + } + particle.tilt = { + enable: tiltOptions.enable, + value: getRangeValue(tiltOptions.value) * Math.PI / 180, + sinDirection: getRandom() >= 0.5 ? 1 : -1, + cosDirection: getRandom() >= 0.5 ? 1 : -1 + }; + let tiltDirection = tiltOptions.direction; + if (tiltDirection === "random") { + const index = Math.floor(getRandom() * 2); + tiltDirection = index > 0 ? "counter-clockwise" : "clockwise"; + } + switch (tiltDirection) { + case "counter-clockwise": + case "counterClockwise": + particle.tilt.status = "decreasing"; + break; + case "clockwise": + particle.tilt.status = "increasing"; + break; + } + const tiltAnimation = particle.options.tilt?.animation; + if (tiltAnimation?.enable) { + particle.tilt.decay = 1 - getRangeValue(tiltAnimation.decay); + particle.tilt.velocity = getRangeValue(tiltAnimation.speed) / 360 * this.container.retina.reduceFactor; + if (!tiltAnimation.sync) { + particle.tilt.velocity *= getRandom(); + } + } + } + isEnabled(particle) { + const tiltAnimation = particle.options.tilt?.animation; + return !particle.destroyed && !particle.spawning && !!tiltAnimation?.enable; + } + loadOptions(options, ...sources) { + if (!options.tilt) { + options.tilt = new Tilt(); + } + for (const source of sources) { + options.tilt.load(source?.tilt); + } + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateTilt(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/tilt/dist/esm/index.js + +async function loadTiltUpdater(engine, refresh = true) { + await engine.addParticleUpdater("tilt", container => new TiltUpdater(container), refresh); +} +;// CONCATENATED MODULE: ../../updaters/twinkle/dist/esm/Options/Classes/TwinkleValues.js + +class TwinkleValues { + constructor() { + this.enable = false; + this.frequency = 0.05; + this.opacity = 1; + } + load(data) { + if (!data) { + return; + } + if (data.color !== undefined) { + this.color = OptionsColor.create(this.color, data.color); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.frequency !== undefined) { + this.frequency = data.frequency; + } + if (data.opacity !== undefined) { + this.opacity = setRangeValue(data.opacity); + } + } +} +;// CONCATENATED MODULE: ../../updaters/twinkle/dist/esm/Options/Classes/Twinkle.js + +class Twinkle { + constructor() { + this.lines = new TwinkleValues(); + this.particles = new TwinkleValues(); + } + load(data) { + if (!data) { + return; + } + this.lines.load(data.lines); + this.particles.load(data.particles); + } +} +;// CONCATENATED MODULE: ../../updaters/twinkle/dist/esm/TwinkleUpdater.js + + +class TwinkleUpdater { + getColorStyles(particle, context, radius, opacity) { + const pOptions = particle.options, + twinkleOptions = pOptions.twinkle; + if (!twinkleOptions) { + return {}; + } + const twinkle = twinkleOptions.particles, + twinkling = twinkle.enable && getRandom() < twinkle.frequency, + zIndexOptions = particle.options.zIndex, + zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, + twinklingOpacity = twinkling ? getRangeValue(twinkle.opacity) * zOpacityFactor : opacity, + twinkleRgb = rangeColorToHsl(twinkle.color), + twinkleStyle = twinkleRgb ? getStyleFromHsl(twinkleRgb, twinklingOpacity) : undefined, + res = {}, + needsTwinkle = twinkling && twinkleStyle; + res.fill = needsTwinkle ? twinkleStyle : undefined; + res.stroke = needsTwinkle ? twinkleStyle : undefined; + return res; + } + init() {} + isEnabled(particle) { + const pOptions = particle.options, + twinkleOptions = pOptions.twinkle; + if (!twinkleOptions) { + return false; + } + return twinkleOptions.particles.enable; + } + loadOptions(options, ...sources) { + if (!options.twinkle) { + options.twinkle = new Twinkle(); + } + for (const source of sources) { + options.twinkle.load(source?.twinkle); + } + } + update() {} +} +;// CONCATENATED MODULE: ../../updaters/twinkle/dist/esm/index.js + +async function loadTwinkleUpdater(engine, refresh = true) { + await engine.addParticleUpdater("twinkle", () => new TwinkleUpdater(), refresh); +} +;// CONCATENATED MODULE: ../../updaters/wobble/dist/esm/Options/Classes/WobbleSpeed.js + +class WobbleSpeed { + constructor() { + this.angle = 50; + this.move = 10; + } + load(data) { + if (!data) { + return; + } + if (data.angle !== undefined) { + this.angle = setRangeValue(data.angle); + } + if (data.move !== undefined) { + this.move = setRangeValue(data.move); + } + } +} +;// CONCATENATED MODULE: ../../updaters/wobble/dist/esm/Options/Classes/Wobble.js + + +class Wobble { + constructor() { + this.distance = 5; + this.enable = false; + this.speed = new WobbleSpeed(); + } + load(data) { + if (!data) { + return; + } + if (data.distance !== undefined) { + this.distance = setRangeValue(data.distance); + } + if (data.enable !== undefined) { + this.enable = data.enable; + } + if (data.speed !== undefined) { + if (isNumber(data.speed)) { + this.speed.load({ + angle: data.speed + }); + } else { + const rangeSpeed = data.speed; + if (rangeSpeed.min !== undefined) { + this.speed.load({ + angle: rangeSpeed + }); + } else { + this.speed.load(data.speed); + } + } + } + } +} +;// CONCATENATED MODULE: ../../updaters/wobble/dist/esm/Utils.js +function updateWobble(particle, delta) { + const { + wobble: wobbleOptions + } = particle.options, + { + wobble + } = particle; + if (!wobbleOptions?.enable || !wobble) { + return; + } + const angleSpeed = wobble.angleSpeed * delta.factor, + moveSpeed = wobble.moveSpeed * delta.factor, + distance = moveSpeed * ((particle.retina.wobbleDistance ?? 0) * delta.factor) / (1000 / 60), + max = 2 * Math.PI, + { + position + } = particle; + wobble.angle += angleSpeed; + if (wobble.angle > max) { + wobble.angle -= max; + } + position.x += distance * Math.cos(wobble.angle); + position.y += distance * Math.abs(Math.sin(wobble.angle)); +} +;// CONCATENATED MODULE: ../../updaters/wobble/dist/esm/WobbleUpdater.js + + + +class WobbleUpdater { + constructor(container) { + this.container = container; + } + init(particle) { + const wobbleOpt = particle.options.wobble; + if (wobbleOpt?.enable) { + particle.wobble = { + angle: getRandom() * Math.PI * 2, + angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360, + moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10 + }; + } else { + particle.wobble = { + angle: 0, + angleSpeed: 0, + moveSpeed: 0 + }; + } + particle.retina.wobbleDistance = getRangeValue(wobbleOpt?.distance ?? 0) * this.container.retina.pixelRatio; + } + isEnabled(particle) { + return !particle.destroyed && !particle.spawning && !!particle.options.wobble?.enable; + } + loadOptions(options, ...sources) { + if (!options.wobble) { + options.wobble = new Wobble(); + } + for (const source of sources) { + options.wobble.load(source?.wobble); + } + } + update(particle, delta) { + if (!this.isEnabled(particle)) { + return; + } + updateWobble(particle, delta); + } +} +;// CONCATENATED MODULE: ../../updaters/wobble/dist/esm/index.js + +async function loadWobbleUpdater(engine, refresh = true) { + await engine.addParticleUpdater("wobble", container => new WobbleUpdater(container), refresh); +} +;// CONCATENATED MODULE: ./dist/browser/index.js + + + + + + + + + +async function loadFull(engine, refresh = true) { + await loadDestroyUpdater(engine, false); + await loadRollUpdater(engine, false); + await loadTiltUpdater(engine, false); + await loadTwinkleUpdater(engine, false); + await loadWobbleUpdater(engine, false); + await loadExternalTrailInteraction(engine, false); + await loadAbsorbersPlugin(engine, false); + await loadEmittersPlugin(engine, false); + await loadSlim(engine, refresh); +} +;// CONCATENATED MODULE: ./dist/browser/bundle.js + + +loadFull(tsParticles); + + + +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/vendor/particles/tsparticles.bundle.min.js b/wp-content/themes/kenta/dist/vendor/particles/tsparticles.bundle.min.js new file mode 100644 index 0000000000..387fc09b71 --- /dev/null +++ b/wp-content/themes/kenta/dist/vendor/particles/tsparticles.bundle.min.js @@ -0,0 +1,2 @@ +/*! For license information please see tsparticles.bundle.min.js.LICENSE.txt */ +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var s in i)("object"==typeof exports?exports:t)[s]=i[s]}}(this,(()=>(()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},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.r(e),t.d(e,{AnimatableColor:()=>fe,AnimationOptions:()=>Mt,AnimationValueWithRandom:()=>Ot,Background:()=>Ti,BackgroundMask:()=>Di,BackgroundMaskCover:()=>Ri,Circle:()=>Ki,ClickEvent:()=>Ii,Collisions:()=>be,CollisionsAbsorb:()=>ve,CollisionsOverlap:()=>me,ColorAnimation:()=>ue,DivEvent:()=>Li,Events:()=>qi,ExternalInteractorBase:()=>li,FullScreen:()=>Ei,HoverEvent:()=>Fi,HslAnimation:()=>pe,HslColorManager:()=>us,Interactivity:()=>Hi,ManualParticle:()=>Ui,Modes:()=>Vi,Move:()=>Oe,MoveAngle:()=>we,MoveAttract:()=>xe,MoveCenter:()=>_e,MoveGravity:()=>ke,MovePath:()=>ze,MoveTrail:()=>Pe,Opacity:()=>Re,OpacityAnimation:()=>Te,Options:()=>ji,OptionsColor:()=>zt,OutModes:()=>Ce,Parallax:()=>Ai,ParticlesBounce:()=>ge,ParticlesBounceFactor:()=>ye,ParticlesDensity:()=>De,ParticlesInteractorBase:()=>fs,ParticlesNumber:()=>Ee,ParticlesOptions:()=>je,Point:()=>Ji,Range:()=>Zi,RangedAnimationOptions:()=>Pt,RangedAnimationValueWithRandom:()=>Tt,Rectangle:()=>Qi,ResizeEvent:()=>Bi,Responsive:()=>Wi,RgbColorManager:()=>ps,Shadow:()=>Ie,Shape:()=>He,Size:()=>We,SizeAnimation:()=>Ue,Spin:()=>Se,Stroke:()=>$e,Theme:()=>Gi,ThemeDefault:()=>$i,ValueWithRandom:()=>St,Vector:()=>m,Vector3d:()=>v,ZIndex:()=>Ge,addColorManager:()=>Ft,addEasing:()=>b,alterHsl:()=>Mi,areBoundsInside:()=>et,arrayRandomIndex:()=>Q,calcExactPositionOrRandomFromSize:()=>q,calcExactPositionOrRandomFromSizeRanged:()=>V,calcPositionFromSize:()=>A,calcPositionOrRandomFromSize:()=>F,calcPositionOrRandomFromSizeRanged:()=>B,calculateBounds:()=>it,circleBounce:()=>lt,circleBounceDataFromParticle:()=>ct,clamp:()=>k,clear:()=>bi,collisionVelocity:()=>L,colorMix:()=>Qt,colorToHsl:()=>Ut,colorToRgb:()=>Ht,deepExtend:()=>st,divMode:()=>rt,divModeExecute:()=>nt,drawLine:()=>vi,drawParticle:()=>wi,drawParticlePlugin:()=>zi,drawPlugin:()=>ki,drawShape:()=>xi,drawShapeAfterEffect:()=>_i,drawTriangle:()=>mi,errorPrefix:()=>f,executeOnSingleOrMultiple:()=>dt,findItemFromSingleOrMultiple:()=>pt,generatedAttribute:()=>i,getDistance:()=>D,getDistances:()=>R,getEasing:()=>w,getHslAnimationFromHsl:()=>ie,getHslFromAnimation:()=>ee,getLinkColor:()=>Kt,getLinkRandomColor:()=>te,getLogger:()=>$,getParticleBaseVelocity:()=>I,getParticleDirectionAngle:()=>E,getPosition:()=>mt,getRandom:()=>_,getRandomRgbColor:()=>Yt,getRangeMax:()=>S,getRangeMin:()=>C,getRangeValue:()=>P,getSize:()=>yt,getStyleFromHsl:()=>Zt,getStyleFromRgb:()=>Jt,getValue:()=>T,hasMatchMedia:()=>N,hslToRgb:()=>Nt,hslaToRgba:()=>Xt,initParticleNumericAnimationValue:()=>ft,isArray:()=>kt,isBoolean:()=>gt,isDivModeEnabled:()=>ot,isFunction:()=>xt,isInArray:()=>J,isNumber:()=>wt,isObject:()=>_t,isPointInside:()=>tt,isSsr:()=>j,isString:()=>bt,itemFromArray:()=>K,itemFromSingleOrMultiple:()=>ut,loadFont:()=>Z,loadFull:()=>fn,loadOptions:()=>Ne,loadParticlesOptions:()=>Xe,loadSlim:()=>on,mix:()=>z,mouseDownEvent:()=>s,mouseLeaveEvent:()=>n,mouseMoveEvent:()=>r,mouseOutEvent:()=>a,mouseUpEvent:()=>o,paintBase:()=>yi,paintImage:()=>gi,parseAlpha:()=>H,randomInRange:()=>M,rangeColorToHsl:()=>Wt,rangeColorToRgb:()=>Vt,rectBounce:()=>ht,resizeEvent:()=>u,rgbToHsl:()=>$t,safeMatchMedia:()=>X,safeMutationObserver:()=>Y,setLogger:()=>W,setRandom:()=>x,setRangeValue:()=>O,singleDivModeExecute:()=>at,stringToAlpha:()=>Gt,stringToRgb:()=>jt,touchCancelEvent:()=>d,touchEndEvent:()=>l,touchMoveEvent:()=>h,touchStartEvent:()=>c,tsParticles:()=>vs,visibilityChangeEvent:()=>p});const i="generated",s="pointerdown",o="pointerup",n="pointerleave",a="pointerout",r="pointermove",c="touchstart",l="touchend",h="touchmove",d="touchcancel",u="resize",p="visibilitychange",f="tsParticles - Error";class v{constructor(t,e,i){if(this._updateFromAngle=(t,e)=>{this.x=Math.cos(t)*e,this.y=Math.sin(t)*e},!wt(t)&&t){this.x=t.x,this.y=t.y;const e=t;this.z=e.z?e.z:0}else{if(void 0===t||void 0===e)throw new Error(`${f} Vector3d not initialized correctly`);this.x=t,this.y=e,this.z=i??0}}static get origin(){return v.create(0,0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this._updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(t){this._updateFromAngle(this.angle,t)}static clone(t){return v.create(t.x,t.y,t.z)}static create(t,e,i){return new v(t,e,i)}add(t){return v.create(this.x+t.x,this.y+t.y,this.z+t.z)}addTo(t){this.x+=t.x,this.y+=t.y,this.z+=t.z}copy(){return v.clone(this)}distanceTo(t){return this.sub(t).length}distanceToSq(t){return this.sub(t).getLengthSq()}div(t){return v.create(this.x/t,this.y/t,this.z/t)}divTo(t){this.x/=t,this.y/=t,this.z/=t}getLengthSq(){return this.x**2+this.y**2}mult(t){return v.create(this.x*t,this.y*t,this.z*t)}multTo(t){this.x*=t,this.y*=t,this.z*=t}normalize(){const t=this.length;0!=t&&this.multTo(1/t)}rotate(t){return v.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t),0)}setTo(t){this.x=t.x,this.y=t.y;const e=t;this.z=e.z?e.z:0}sub(t){return v.create(this.x-t.x,this.y-t.y,this.z-t.z)}subFrom(t){this.x-=t.x,this.y-=t.y,this.z-=t.z}}class m extends v{constructor(t,e){super(t,e,0)}static get origin(){return m.create(0,0)}static clone(t){return m.create(t.x,t.y)}static create(t,e){return new m(t,e)}}let y=Math.random;const g=new Map;function b(t,e){g.get(t)||g.set(t,e)}function w(t){return g.get(t)||(t=>t)}function x(t=Math.random){y=t}function _(){return k(y(),0,1-1e-16)}function k(t,e,i){return Math.min(Math.max(t,e),i)}function z(t,e,i,s){return Math.floor((t*i+e*s)/(i+s))}function M(t){const e=S(t);let i=C(t);return e===i&&(i=0),_()*(e-i)+i}function P(t){return wt(t)?t:M(t)}function C(t){return wt(t)?t:t.min}function S(t){return wt(t)?t:t.max}function O(t,e){if(t===e||void 0===e&&wt(t))return t;const i=C(t),s=S(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(s,e)}:O(i,s)}function T(t){const e=t.random,{enable:i,minimumValue:s}=gt(e)?{enable:e,minimumValue:0}:e;return P(i?O(t.value,s):t.value)}function R(t,e){const i=t.x-e.x,s=t.y-e.y;return{dx:i,dy:s,distance:Math.sqrt(i**2+s**2)}}function D(t,e){return R(t,e).distance}function E(t,e,i){if(wt(t))return t*Math.PI/180;switch(t){case"top":return-Math.PI/2;case"top-right":return-Math.PI/4;case"right":return 0;case"bottom-right":return Math.PI/4;case"bottom":return Math.PI/2;case"bottom-left":return 3*Math.PI/4;case"left":return Math.PI;case"top-left":return-3*Math.PI/4;case"inside":return Math.atan2(i.y-e.y,i.x-e.x);case"outside":return Math.atan2(e.y-i.y,e.x-i.x);default:return _()*Math.PI*2}}function I(t){const e=m.origin;return e.length=1,e.angle=t,e}function L(t,e,i,s){return m.create(t.x*(i-s)/(i+s)+2*e.x*s/(i+s),t.y)}function A(t){return t.position&&void 0!==t.position.x&&void 0!==t.position.y?{x:t.position.x*t.size.width/100,y:t.position.y*t.size.height/100}:void 0}function F(t){return{x:(t.position?.x??100*_())*t.size.width/100,y:(t.position?.y??100*_())*t.size.height/100}}function B(t){const e={x:void 0!==t.position?.x?P(t.position.x):void 0,y:void 0!==t.position?.y?P(t.position.y):void 0};return F({size:t.size,position:e})}function q(t){return{x:t.position?.x??_()*t.size.width,y:t.position?.y??_()*t.size.height}}function V(t){const e={x:void 0!==t.position?.x?P(t.position.x):void 0,y:void 0!==t.position?.y?P(t.position.y):void 0};return q({size:t.size,position:e})}function H(t){return t?t.endsWith("%")?parseFloat(t)/100:parseFloat(t):1}const U={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function W(t){U.debug=t.debug||U.debug,U.error=t.error||U.error,U.info=t.info||U.info,U.log=t.log||U.log,U.verbose=t.verbose||U.verbose,U.warning=t.warning||U.warning}function $(){return U}function G(t){const e={bounced:!1},{pSide:i,pOtherSide:s,rectSide:o,rectOtherSide:n,velocity:a,factor:r}=t;return s.minn.max||s.maxn.max||(i.max>=o.min&&i.max<=(o.max+o.min)/2&&a>0||i.min<=o.max&&i.min>(o.max+o.min)/2&&a<0)&&(e.velocity=a*-r,e.bounced=!0),e}function j(){return"undefined"==typeof window||!window||void 0===window.document||!window.document}function N(){return!j()&&"undefined"!=typeof matchMedia}function X(t){if(N())return matchMedia(t)}function Y(t){if(!j()&&"undefined"!=typeof MutationObserver)return new MutationObserver(t)}function J(t,e){return t===e||kt(e)&&e.indexOf(t)>-1}async function Z(t,e){try{await document.fonts.load(`${e??"400"} 36px '${t??"Verdana"}'`)}catch{}}function Q(t){return Math.floor(_()*t.length)}function K(t,e,i=!0){return t[void 0!==e&&i?e%t.length:Q(t)]}function tt(t,e,i,s,o){return et(it(t,s??0),e,i,o)}function et(t,e,i,s){let o=!0;return s&&"bottom"!==s||(o=t.topi.x),!o||s&&"right"!==s||(o=t.lefti.y),o}function it(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function st(t,...e){for(const i of e){if(null==i)continue;if(!_t(i)){t=i;continue}const e=Array.isArray(i);!e||!_t(t)&&t&&Array.isArray(t)?e||!_t(t)&&t&&!Array.isArray(t)||(t={}):t=[];for(const e in i){if("__proto__"===e)continue;const s=i[e],o=t;o[e]=_t(s)&&Array.isArray(s)?s.map((t=>st(o[e],t))):st(o[e],s)}}return t}function ot(t,e){return!!pt(e,(e=>e.enable&&J(t,e.mode)))}function nt(t,e,i){dt(e,(e=>{const s=e.mode;e.enable&&J(t,s)&&at(e,i)}))}function at(t,e){dt(t.selectors,(i=>{e(i,t)}))}function rt(t,e){if(e&&t)return pt(t,(t=>function(t,e){const i=dt(e,(e=>t.matches(e)));return kt(i)?i.some((t=>t)):i}(e,t.selectors)))}function ct(t){return{position:t.getPosition(),radius:t.getRadius(),mass:t.getMass(),velocity:t.velocity,factor:m.create(T(t.options.bounce.horizontal),T(t.options.bounce.vertical))}}function lt(t,e){const{x:i,y:s}=t.velocity.sub(e.velocity),[o,n]=[t.position,e.position],{dx:a,dy:r}=R(n,o);if(i*a+s*r<0)return;const c=-Math.atan2(r,a),l=t.mass,h=e.mass,d=t.velocity.rotate(c),u=e.velocity.rotate(c),p=L(d,u,l,h),f=L(u,d,l,h),v=p.rotate(-c),m=f.rotate(-c);t.velocity.x=v.x*t.factor.x,t.velocity.y=v.y*t.factor.y,e.velocity.x=m.x*e.factor.x,e.velocity.y=m.y*e.factor.y}function ht(t,e){const i=it(t.getPosition(),t.getRadius()),s=G({pSide:{min:i.left,max:i.right},pOtherSide:{min:i.top,max:i.bottom},rectSide:{min:e.left,max:e.right},rectOtherSide:{min:e.top,max:e.bottom},velocity:t.velocity.x,factor:T(t.options.bounce.horizontal)});s.bounced&&(void 0!==s.velocity&&(t.velocity.x=s.velocity),void 0!==s.position&&(t.position.x=s.position));const o=G({pSide:{min:i.top,max:i.bottom},pOtherSide:{min:i.left,max:i.right},rectSide:{min:e.top,max:e.bottom},rectOtherSide:{min:e.left,max:e.right},velocity:t.velocity.y,factor:T(t.options.bounce.vertical)});o.bounced&&(void 0!==o.velocity&&(t.velocity.y=o.velocity),void 0!==o.position&&(t.position.y=o.position))}function dt(t,e){return kt(t)?t.map(((t,i)=>e(t,i))):e(t,0)}function ut(t,e,i){return kt(t)?K(t,e,i):t}function pt(t,e){return kt(t)?t.find(((t,i)=>e(t,i))):e(t,0)?t:void 0}function ft(t,e){const i=t.value,s=t.animation,o={delayTime:1e3*P(s.delay),enable:s.enable,value:P(t.value)*e,max:S(i)*e,min:C(i)*e,loops:0,maxLoops:P(s.count),time:0};if(s.enable){switch(o.decay=1-P(s.decay),s.mode){case"increase":o.status="increasing";break;case"decrease":o.status="decreasing";break;case"random":o.status=_()>=.5?"increasing":"decreasing"}const t="auto"===s.mode;switch(s.startValue){case"min":o.value=o.min,t&&(o.status="increasing");break;case"max":o.value=o.max,t&&(o.status="decreasing");break;default:o.value=M(o),t&&(o.status=_()>=.5?"increasing":"decreasing")}}return o.initialValue=o.value,o}function vt(t,e){if(!("percent"===t.mode)){const{mode:e,...i}=t;return i}return"x"in t?{x:t.x/100*e.width,y:t.y/100*e.height}:{width:t.width/100*e.width,height:t.height/100*e.height}}function mt(t,e){return vt(t,e)}function yt(t,e){return vt(t,e)}function gt(t){return"boolean"==typeof t}function bt(t){return"string"==typeof t}function wt(t){return"number"==typeof t}function xt(t){return"function"==typeof t}function _t(t){return"object"==typeof t&&null!==t}function kt(t){return Array.isArray(t)}class zt{constructor(){this.value=""}static create(t,e){const i=new zt;return i.load(t),void 0!==e&&(bt(e)||kt(e)?i.load({value:e}):i.load(e)),i}load(t){void 0!==t?.value&&(this.value=t.value)}}class Mt{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(t){t&&(void 0!==t.count&&(this.count=O(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=O(t.speed)),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.delay&&(this.delay=O(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class Pt extends Mt{constructor(){super(),this.mode="auto",this.startValue="random"}load(t){super.load(t),t&&(void 0!==t.minimumValue&&(this.minimumValue=t.minimumValue),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.startValue&&(this.startValue=t.startValue))}}class Ct{constructor(){this.enable=!1,this.minimumValue=0}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.minimumValue&&(this.minimumValue=t.minimumValue))}}class St{constructor(){this.random=new Ct,this.value=0}load(t){t&&(gt(t.random)?this.random.enable=t.random:this.random.load(t.random),void 0!==t.value&&(this.value=O(t.value,this.random.enable?this.random.minimumValue:void 0)))}}class Ot extends St{constructor(){super(),this.animation=new Mt}get anim(){return this.animation}set anim(t){this.animation=t}load(t){if(super.load(t),!t)return;const e=t.animation??t.anim;void 0!==e&&this.animation.load(e)}}class Tt extends Ot{constructor(){super(),this.animation=new Pt}load(t){if(super.load(t),!t)return;void 0!==(t.animation??t.anim)&&(this.value=O(this.value,this.animation.enable?this.animation.minimumValue:void 0))}}class Rt{constructor(){this.radius=0,this.mass=0}load(t){t&&(void 0!==t.mass&&(this.mass=t.mass),void 0!==t.radius&&(this.radius=t.radius))}}class Dt extends St{constructor(){super(),this.density=5,this.value=50,this.limit=new Rt}load(t){t&&(super.load(t),void 0!==t.density&&(this.density=t.density),wt(t.limit)?this.limit.radius=t.limit:this.limit.load(t.limit))}}class Et{constructor(){this.color=new zt,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.size=new Dt}load(t){void 0!==t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.draggable&&(this.draggable=t.draggable),this.name=t.name,void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=O(t.position.x)),void 0!==t.position.y&&(this.position.y=O(t.position.y))),void 0!==t.size&&this.size.load(t.size),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.orbits&&(this.orbits=t.orbits))}}const It="random",Lt="mid",At=new Map;function Ft(t){At.set(t.key,t)}function Bt(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function qt(t){for(const[,e]of At)if(t.startsWith(e.stringPrefix))return e.parseString(t);const e=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,((t,e,i,s,o)=>e+e+i+i+s+s+(void 0!==o?o+o:""))),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);return i?{a:void 0!==i[4]?parseInt(i[4],16)/255:1,b:parseInt(i[3],16),g:parseInt(i[2],16),r:parseInt(i[1],16)}:void 0}function Vt(t,e,i=!0){if(!t)return;const s=bt(t)?{value:t}:t;if(bt(s.value))return Ht(s.value,e,i);if(kt(s.value))return Vt({value:K(s.value,e,i)});for(const[,t]of At){const e=t.handleRangeColor(s);if(e)return e}}function Ht(t,e,i=!0){if(!t)return;const s=bt(t)?{value:t}:t;if(bt(s.value))return s.value===It?Yt():jt(s.value);if(kt(s.value))return Ht({value:K(s.value,e,i)});for(const[,t]of At){const e=t.handleColor(s);if(e)return e}}function Ut(t,e,i=!0){const s=Ht(t,e,i);return s?$t(s):void 0}function Wt(t,e,i=!0){const s=Vt(t,e,i);return s?$t(s):void 0}function $t(t){const e=t.r/255,i=t.g/255,s=t.b/255,o=Math.max(e,i,s),n=Math.min(e,i,s),a={h:0,l:(o+n)/2,s:0};return o!==n&&(a.s=a.l<.5?(o-n)/(o+n):(o-n)/(2-o-n),a.h=e===o?(i-s)/(o-n):a.h=i===o?2+(s-e)/(o-n):4+(e-i)/(o-n)),a.l*=100,a.s*=100,a.h*=60,a.h<0&&(a.h+=360),a.h>=360&&(a.h-=360),a}function Gt(t){return qt(t)?.a}function jt(t){return qt(t)}function Nt(t){const e={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(i.s){const t=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,s=2*i.l-t;e.r=Bt(s,t,i.h+1/3),e.g=Bt(s,t,i.h),e.b=Bt(s,t,i.h-1/3)}else e.r=e.g=e.b=i.l;return e.r=Math.floor(255*e.r),e.g=Math.floor(255*e.g),e.b=Math.floor(255*e.b),e}function Xt(t){const e=Nt(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}function Yt(t){const e=t??0;return{b:Math.floor(M(O(e,256))),g:Math.floor(M(O(e,256))),r:Math.floor(M(O(e,256)))}}function Jt(t,e){return`rgba(${t.r}, ${t.g}, ${t.b}, ${e??1})`}function Zt(t,e){return`hsla(${t.h}, ${t.s}%, ${t.l}%, ${e??1})`}function Qt(t,e,i,s){let o=t,n=e;return void 0===o.r&&(o=Nt(t)),void 0===n.r&&(n=Nt(e)),{b:z(o.b,n.b,i,s),g:z(o.g,n.g,i,s),r:z(o.r,n.r,i,s)}}function Kt(t,e,i){if(i===It)return Yt();if(i!==Lt)return i;{const i=t.getFillColor()??t.getStrokeColor(),s=e?.getFillColor()??e?.getStrokeColor();if(i&&s&&e)return Qt(i,s,t.getRadius(),e.getRadius());{const t=i??s;if(t)return Nt(t)}}}function te(t,e,i){const s=bt(t)?t:t.value;return s===It?i?Vt({value:s}):e?It:Lt:s===Lt?Lt:Vt({value:s})}function ee(t){return void 0!==t?{h:t.h.value,s:t.s.value,l:t.l.value}:void 0}function ie(t,e,i){const s={h:{enable:!1,value:t.h},s:{enable:!1,value:t.s},l:{enable:!1,value:t.l}};return e&&(se(s.h,e.h,i),se(s.s,e.s,i),se(s.l,e.l,i)),s}function se(t,e,i){t.enable=e.enable,t.enable?(t.velocity=P(e.speed)/100*i,t.decay=1-P(e.decay),t.status="increasing",t.loops=0,t.maxLoops=P(e.count),t.time=0,t.delayTime=1e3*P(e.delay),e.sync||(t.velocity*=_(),t.value*=_()),t.initialValue=t.value):t.velocity=0}class oe{constructor(t,e,i,s){this.absorbers=t,this.container=e,this._calcPosition=()=>{const t=B({size:this.container.canvas.size,position:this.options.position});return m.create(t.x,t.y)},this._updateParticlePosition=(t,e)=>{if(t.destroyed)return;const i=this.container,s=i.canvas.size;if(t.needsNewPosition){const e=F({size:s});t.position.setTo(e),t.velocity.setTo(t.initialVelocity),t.absorberOrbit=void 0,t.needsNewPosition=!1}if(this.options.orbits){if(void 0===t.absorberOrbit&&(t.absorberOrbit=m.create(0,0),t.absorberOrbit.length=D(t.getPosition(),this.position),t.absorberOrbit.angle=_()*Math.PI*2),t.absorberOrbit.length<=this.size&&!this.options.destroy){const e=Math.min(s.width,s.height);t.absorberOrbit.length=e*(.2*_()-.1+1)}void 0===t.absorberOrbitDirection&&(t.absorberOrbitDirection=t.velocity.x>=0?"clockwise":"counter-clockwise");const o=t.absorberOrbit.length,n=t.absorberOrbit.angle,a=t.absorberOrbitDirection;t.velocity.setTo(m.origin);const r={x:"clockwise"===a?Math.cos:Math.sin,y:"clockwise"===a?Math.sin:Math.cos};t.position.x=this.position.x+o*r.x(n),t.position.y=this.position.y+o*r.y(n),t.absorberOrbit.length-=e.length,t.absorberOrbit.angle+=(t.retina.moveSpeed??0)*i.retina.pixelRatio/100*i.retina.reduceFactor}else{const i=m.origin;i.length=e.length,i.angle=e.angle,t.velocity.addTo(i)}},this.initialPosition=s?m.create(s.x,s.y):void 0,i instanceof Et?this.options=i:(this.options=new Et,this.options.load(i)),this.dragging=!1,this.name=this.options.name,this.opacity=this.options.opacity,this.size=P(this.options.size.value)*e.retina.pixelRatio,this.mass=this.size*this.options.size.density*e.retina.reduceFactor;const o=this.options.size.limit;this.limit={radius:o.radius*e.retina.pixelRatio*e.retina.reduceFactor,mass:o.mass},this.color=Vt(this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition()}attract(t){const e=this.container,i=this.options;if(i.draggable){const t=e.interactivity.mouse;if(t.clicking&&t.downPosition){D(this.position,t.downPosition)<=this.size&&(this.dragging=!0)}else this.dragging=!1;this.dragging&&t.position&&(this.position.x=t.position.x,this.position.y=t.position.y)}const s=t.getPosition(),{dx:o,dy:n,distance:a}=R(this.position,s),r=m.create(o,n);if(r.length=this.mass/Math.pow(a,2)*e.retina.reduceFactor,at.getRadius()&&avoid 0===t||wt(t)?this.array[t||0]:this.array.find((e=>e.name===t)),t.addAbsorber=(t,e)=>this.addAbsorber(t,e)}addAbsorber(t,e){const i=new oe(this,this.container,t,e);return this.array.push(i),i}draw(t){for(const e of this.array)e.draw(t)}handleClickMode(t){const e=this.absorbers,i=this.interactivityAbsorbers;if("absorber"===t){const t=ut(i)??ut(e),s=this.container.interactivity.mouse.clickPosition;this.addAbsorber(t,s)}}async init(){this.absorbers=this.container.actualOptions.absorbers,this.interactivityAbsorbers=this.container.actualOptions.interactivity.modes.absorbers,dt(this.absorbers,(t=>{this.addAbsorber(t)}))}particleUpdate(t){for(const e of this.array)if(e.attract(t),t.destroyed)break}removeAbsorber(t){const e=this.array.indexOf(t);e>=0&&this.array.splice(e,1)}resize(){for(const t of this.array)t.resize()}stop(){this.array=[]}}class ae{constructor(){this.id="absorbers"}getPlugin(t){return new ne(t)}loadOptions(t,e){(this.needsPlugin(t)||this.needsPlugin(e))&&(e?.absorbers&&(t.absorbers=dt(e.absorbers,(t=>{const e=new Et;return e.load(t),e}))),t.interactivity.modes.absorbers=dt(e?.interactivity?.modes?.absorbers,(t=>{const e=new Et;return e.load(t),e})))}needsPlugin(t){if(!t)return!1;const e=t.absorbers;return kt(e)?!!e.length:!!e||!(!t.interactivity?.events?.onClick?.mode||!J("absorber",t.interactivity.events.onClick.mode))}}class re{load(t){t&&(void 0!==t.bottom&&(this.bottom=O(t.bottom)),void 0!==t.left&&(this.left=O(t.left)),void 0!==t.right&&(this.right=O(t.right)),void 0!==t.top&&(this.top=O(t.top)))}}class ce extends St{constructor(){super(),this.value=3}}class le extends St{constructor(){super(),this.value={min:4,max:9}}}class he{constructor(){this.count=1,this.factor=new ce,this.rate=new le,this.sizeOffset=!0}load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.count&&(this.count=t.count),this.factor.load(t.factor),this.rate.load(t.rate),this.particles=dt(t.particles,(t=>st({},t))),void 0!==t.sizeOffset&&(this.sizeOffset=t.sizeOffset),t.colorOffset&&(this.colorOffset=this.colorOffset??{},void 0!==t.colorOffset.h&&(this.colorOffset.h=t.colorOffset.h),void 0!==t.colorOffset.s&&(this.colorOffset.s=t.colorOffset.s),void 0!==t.colorOffset.l&&(this.colorOffset.l=t.colorOffset.l)))}}class de{constructor(){this.bounds=new re,this.mode="none",this.split=new he}load(t){t&&(t.mode&&(this.mode=t.mode),t.bounds&&this.bounds.load(t.bounds),this.split.load(t.split))}}class ue{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.delay=0,this.decay=0,this.sync=!0}load(t){t&&(void 0!==t.count&&(this.count=O(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=O(t.offset)),void 0!==t.speed&&(this.speed=O(t.speed)),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.delay&&(this.delay=O(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class pe{constructor(){this.h=new ue,this.s=new ue,this.l=new ue}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class fe extends zt{constructor(){super(),this.animation=new pe}static create(t,e){const i=new fe;return i.load(t),void 0!==e&&(bt(e)||kt(e)?i.load({value:e}):i.load(e)),i}load(t){if(super.load(t),!t)return;const e=t.animation;void 0!==e&&(void 0!==e.enable?this.animation.h.load(e):this.animation.load(t.animation))}}class ve{constructor(){this.speed=2}load(t){t&&void 0!==t.speed&&(this.speed=t.speed)}}class me{constructor(){this.enable=!0,this.retries=0}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.retries&&(this.retries=t.retries))}}class ye extends St{constructor(){super(),this.random.minimumValue=.1,this.value=1}}class ge{constructor(){this.horizontal=new ye,this.vertical=new ye}load(t){t&&(this.horizontal.load(t.horizontal),this.vertical.load(t.vertical))}}class be{constructor(){this.absorb=new ve,this.bounce=new ge,this.enable=!1,this.maxSpeed=50,this.mode="bounce",this.overlap=new me}load(t){t&&(this.absorb.load(t.absorb),this.bounce.load(t.bounce),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.maxSpeed&&(this.maxSpeed=O(t.maxSpeed)),void 0!==t.mode&&(this.mode=t.mode),this.overlap.load(t.overlap))}}class we{constructor(){this.offset=0,this.value=90}load(t){t&&(void 0!==t.offset&&(this.offset=O(t.offset)),void 0!==t.value&&(this.value=O(t.value)))}}class xe{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}get rotateX(){return this.rotate.x}set rotateX(t){this.rotate.x=t}get rotateY(){return this.rotate.y}set rotateY(t){this.rotate.y=t}load(t){if(!t)return;void 0!==t.distance&&(this.distance=O(t.distance)),void 0!==t.enable&&(this.enable=t.enable);const e=t.rotate?.x??t.rotateX;void 0!==e&&(this.rotate.x=e);const i=t.rotate?.y??t.rotateY;void 0!==i&&(this.rotate.y=i)}}class _e{constructor(){this.x=50,this.y=50,this.mode="percent",this.radius=0}load(t){t&&(void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.radius&&(this.radius=t.radius))}}class ke{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(t){t&&(void 0!==t.acceleration&&(this.acceleration=O(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.inverse&&(this.inverse=t.inverse),void 0!==t.maxSpeed&&(this.maxSpeed=O(t.maxSpeed)))}}class ze{constructor(){this.clamp=!0,this.delay=new St,this.enable=!1,this.options={}}load(t){t&&(void 0!==t.clamp&&(this.clamp=t.clamp),this.delay.load(t.delay),void 0!==t.enable&&(this.enable=t.enable),this.generator=t.generator,t.options&&(this.options=st(this.options,t.options)))}}class Me{load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image))}}class Pe{constructor(){this.enable=!1,this.length=10,this.fill=new Me}get fillColor(){return this.fill.color}set fillColor(t){this.fill.load({color:t})}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0===t.fill&&void 0===t.fillColor||this.fill.load(t.fill||{color:t.fillColor}),void 0!==t.length&&(this.length=t.length))}}class Ce{constructor(){this.default="out"}load(t){t&&(void 0!==t.default&&(this.default=t.default),this.bottom=t.bottom??t.default,this.left=t.left??t.default,this.right=t.right??t.default,this.top=t.top??t.default)}}class Se{constructor(){this.acceleration=0,this.enable=!1}load(t){t&&(void 0!==t.acceleration&&(this.acceleration=O(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),t.position&&(this.position=st({},t.position)))}}class Oe{constructor(){this.angle=new we,this.attract=new xe,this.center=new _e,this.decay=0,this.distance={},this.direction="none",this.drift=0,this.enable=!1,this.gravity=new ke,this.path=new ze,this.outModes=new Ce,this.random=!1,this.size=!1,this.speed=2,this.spin=new Se,this.straight=!1,this.trail=new Pe,this.vibrate=!1,this.warp=!1}get bounce(){return this.collisions}set bounce(t){this.collisions=t}get collisions(){return!1}set collisions(t){}get noise(){return this.path}set noise(t){this.path=t}get outMode(){return this.outModes.default}set outMode(t){this.outModes.default=t}get out_mode(){return this.outMode}set out_mode(t){this.outMode=t}load(t){if(!t)return;this.angle.load(wt(t.angle)?{value:t.angle}:t.angle),this.attract.load(t.attract),this.center.load(t.center),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.distance&&(this.distance=wt(t.distance)?{horizontal:t.distance,vertical:t.distance}:{...t.distance}),void 0!==t.drift&&(this.drift=O(t.drift)),void 0!==t.enable&&(this.enable=t.enable),this.gravity.load(t.gravity);const e=t.outModes??t.outMode??t.out_mode;void 0!==e&&(_t(e)?this.outModes.load(e):this.outModes.load({default:e})),this.path.load(t.path??t.noise),void 0!==t.random&&(this.random=t.random),void 0!==t.size&&(this.size=t.size),void 0!==t.speed&&(this.speed=O(t.speed)),this.spin.load(t.spin),void 0!==t.straight&&(this.straight=t.straight),this.trail.load(t.trail),void 0!==t.vibrate&&(this.vibrate=t.vibrate),void 0!==t.warp&&(this.warp=t.warp)}}class Te extends Pt{constructor(){super(),this.destroy="none",this.speed=2}get opacity_min(){return this.minimumValue}set opacity_min(t){this.minimumValue=t}load(t){void 0!==t?.opacity_min&&void 0===t.minimumValue&&(t.minimumValue=t.opacity_min),super.load(t),t&&void 0!==t.destroy&&(this.destroy=t.destroy)}}class Re extends St{constructor(){super(),this.animation=new Te,this.random.minimumValue=.1,this.value=1}get anim(){return this.animation}set anim(t){this.animation=t}load(t){if(!t)return;super.load(t);const e=t.animation??t.anim;void 0!==e&&(this.animation.load(e),this.value=O(this.value,this.animation.enable?this.animation.minimumValue:void 0))}}class De{constructor(){this.enable=!1,this.width=1920,this.height=1080}get area(){return this.width}set area(t){this.width=t}get factor(){return this.height}set factor(t){this.height=t}get value_area(){return this.area}set value_area(t){this.area=t}load(t){if(!t)return;void 0!==t.enable&&(this.enable=t.enable);const e=t.width??t.area??t.value_area;void 0!==e&&(this.width=e);const i=t.height??t.factor;void 0!==i&&(this.height=i)}}class Ee{constructor(){this.density=new De,this.limit=0,this.value=0}get max(){return this.limit}set max(t){this.limit=t}load(t){if(!t)return;this.density.load(t.density);const e=t.limit??t.max;void 0!==e&&(this.limit=e),void 0!==t.value&&(this.value=t.value)}}class Ie{constructor(){this.blur=0,this.color=new zt,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=zt.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(void 0!==t.offset.x&&(this.offset.x=t.offset.x),void 0!==t.offset.y&&(this.offset.y=t.offset.y)))}}const Le="character",Ae="char",Fe="image",Be="images",qe="polygon",Ve="star";class He{constructor(){this.loadShape=(t,e,i,s)=>{if(!t)return;const o=kt(t),n=o?[]:{},a=o!==kt(this.options[e]),r=o!==kt(this.options[i]);a&&(this.options[e]=n),r&&s&&(this.options[i]=n),this.options[e]=st(this.options[e]??n,t),this.options[i]&&!s||(this.options[i]=st(this.options[i]??n,t))},this.close=!0,this.fill=!0,this.options={},this.type="circle"}get character(){return this.options[Le]??this.options[Ae]}set character(t){this.options[Ae]=this.options[Le]=t}get custom(){return this.options}set custom(t){this.options=t}get image(){return this.options[Fe]??this.options[Be]}set image(t){this.options[Be]=this.options[Fe]=t}get images(){return this.image}set images(t){this.image=t}get polygon(){return this.options[qe]??this.options[Ve]}set polygon(t){this.options[Ve]=this.options[qe]=t}get stroke(){return[]}set stroke(t){}load(t){if(!t)return;const e=t.options??t.custom;if(void 0!==e)for(const t in e){const i=e[t];i&&(this.options[t]=st(this.options[t]??{},i))}this.loadShape(t.character,Le,Ae,!0),this.loadShape(t.polygon,qe,Ve,!1),this.loadShape(t.image??t.images,Fe,Be,!0),void 0!==t.close&&(this.close=t.close),void 0!==t.fill&&(this.fill=t.fill),void 0!==t.type&&(this.type=t.type)}}class Ue extends Pt{constructor(){super(),this.destroy="none",this.speed=5}get size_min(){return this.minimumValue}set size_min(t){this.minimumValue=t}load(t){void 0!==t?.size_min&&void 0===t.minimumValue&&(t.minimumValue=t.size_min),super.load(t),t&&void 0!==t.destroy&&(this.destroy=t.destroy)}}class We extends St{constructor(){super(),this.animation=new Ue,this.random.minimumValue=1,this.value=3}get anim(){return this.animation}set anim(t){this.animation=t}load(t){if(super.load(t),!t)return;const e=t.animation??t.anim;void 0!==e&&(this.animation.load(e),this.value=O(this.value,this.animation.enable?this.animation.minimumValue:void 0))}}class $e{constructor(){this.width=0}load(t){t&&(void 0!==t.color&&(this.color=fe.create(this.color,t.color)),void 0!==t.width&&(this.width=O(t.width)),void 0!==t.opacity&&(this.opacity=O(t.opacity)))}}class Ge extends St{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(t){super.load(t),t&&(void 0!==t.opacityRate&&(this.opacityRate=t.opacityRate),void 0!==t.sizeRate&&(this.sizeRate=t.sizeRate),void 0!==t.velocityRate&&(this.velocityRate=t.velocityRate))}}class je{constructor(t,e){this._engine=t,this._container=e,this.bounce=new ge,this.collisions=new be,this.color=new fe,this.color.value="#fff",this.groups={},this.move=new Oe,this.number=new Ee,this.opacity=new Re,this.reduceDuplicates=!1,this.shadow=new Ie,this.shape=new He,this.size=new We,this.stroke=new $e,this.zIndex=new Ge}load(t){if(!t)return;if(this.bounce.load(t.bounce),this.color.load(fe.create(this.color,t.color)),void 0!==t.groups)for(const e in t.groups){const i=t.groups[e];void 0!==i&&(this.groups[e]=st(this.groups[e]??{},i))}this.move.load(t.move),this.number.load(t.number),this.opacity.load(t.opacity),void 0!==t.reduceDuplicates&&(this.reduceDuplicates=t.reduceDuplicates),this.shape.load(t.shape),this.size.load(t.size),this.shadow.load(t.shadow),this.zIndex.load(t.zIndex);const e=t.move?.collisions??t.move?.bounce;void 0!==e&&(this.collisions.enable=e),this.collisions.load(t.collisions),void 0!==t.interactivity&&(this.interactivity=st({},t.interactivity));const i=t.stroke??t.shape?.stroke;if(i&&(this.stroke=dt(i,(t=>{const e=new $e;return e.load(t),e}))),this._container){const e=this._engine.plugins.updaters.get(this._container);if(e)for(const i of e)i.loadOptions&&i.loadOptions(this,t);const i=this._engine.plugins.interactors.get(this._container);if(i)for(const e of i)e.loadParticlesOptions&&e.loadParticlesOptions(this,t)}}}function Ne(t,...e){for(const i of e)t.load(i)}function Xe(t,e,...i){const s=new je(t,e);return Ne(s,...i),s}function Ye(t,e,i,s){const o=i.options.destroy;if(!o)return;const n=o.split,a=Xe(t,e,i.options),r=T(n.factor),c=i.getFillColor();n.color?a.color.load(n.color):n.colorOffset&&c?a.color.load({value:{hsl:{h:c.h+P(n.colorOffset.h??0),s:c.s+P(n.colorOffset.s??0),l:c.l+P(n.colorOffset.l??0)}}}):a.color.load({value:{hsl:i.getFillColor()}}),a.move.load({center:{x:i.position.x,y:i.position.y,mode:"precise"}}),wt(a.size.value)?a.size.value/=r:(a.size.value.min/=r,a.size.value.max/=r),a.load(s);const l=n.sizeOffset?O(-i.size.value,i.size.value):0,h={x:i.position.x+M(l),y:i.position.y+M(l)};return e.particles.addParticle(h,a,i.group,(t=>!(t.size.value<.5)&&(t.velocity.length=M(O(i.velocity.length,t.velocity.length)),t.splitCount=(i.splitCount??0)+1,t.unbreakable=!0,setTimeout((()=>{t.unbreakable=!1}),500),!0)))}class Je{constructor(t,e){this.engine=t,this.container=e}init(t){const e=this.container,i=t.options.destroy;if(!i)return;t.splitCount=0;const s=i.bounds;t.destroyBounds||(t.destroyBounds={});const{bottom:o,left:n,right:a,top:r}=s,{destroyBounds:c}=t,l=e.canvas.size;o&&(c.bottom=P(o)*l.height/100),n&&(c.left=P(n)*l.width/100),a&&(c.right=P(a)*l.width/100),r&&(c.top=P(r)*l.height/100)}isEnabled(t){return!t.destroyed}loadOptions(t,...e){t.destroy||(t.destroy=new de);for(const i of e)t.destroy.load(i?.destroy)}particleDestroyed(t,e){if(e)return;const i=t.options.destroy;i&&"split"===i.mode&&function(t,e,i){const s=i.options.destroy;if(!s)return;const o=s.split;if(o.count>=0&&(void 0===i.splitCount||i.splitCount++>o.count))return;const n=T(o.rate),a=ut(o.particles);for(let s=0;s=i.bottom||void 0!==i.left&&e.x<=i.left||void 0!==i.right&&e.x>=i.right||void 0!==i.top&&e.y<=i.top)&&t.destroy()}}class Ze{randomPosition(t,e,i){const[s,o]=[e.width/2,e.height/2],n=((t,e)=>{const i=_()/4,s=Math.atan(e/t*Math.tan(2*Math.PI*i)),o=_();return o<.25?s:o<.5?Math.PI-s:o<.75?Math.PI+s:-s})(s,o),a=(h=n,(c=s)*(l=o)/Math.sqrt((l*Math.cos(h))**2+(c*Math.sin(h))**2)),r=i?a*Math.sqrt(_()):a;var c,l,h;return{x:t.x+r*Math.cos(n),y:t.y+r*Math.sin(n)}}}class Qe{constructor(){this.wait=!1}load(t){t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=O(t.delay)),void 0!==t.duration&&(this.duration=O(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class Ke{constructor(){this.quantity=1,this.delay=.1}load(t){void 0!==t&&(void 0!==t.quantity&&(this.quantity=O(t.quantity)),void 0!==t.delay&&(this.delay=O(t.delay)))}}class ti{constructor(){this.mode="percent",this.height=0,this.width=0}load(t){void 0!==t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class ei{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new Qe,this.rate=new Ke,this.shape="square",this.startCount=0}load(t){t&&(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(this.size||(this.size=new ti),this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,this.particles=dt(t.particles,(t=>st({},t))),this.rate.load(t.rate),void 0!==t.shape&&(this.shape=t.shape),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=O(t.position.x)),void 0!==t.position.y&&(this.position.y=O(t.position.y))),void 0!==t.spawnColor&&(void 0===this.spawnColor&&(this.spawnColor=new fe),this.spawnColor.load(t.spawnColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}class ii{constructor(t,e,i,s,o){this.emitters=e,this.container=i,this._calcPosition=()=>B({size:this.container.canvas.size,position:this.options.position}),this._destroy=()=>{this.emitters.removeEmitter(this),this._engine.dispatchEvent("emitterDestroyed",{container:this.container,data:{emitter:this}})},this._emit=()=>{if(this._paused)return;const t=P(this.options.rate.quantity);this._emitParticles(t)},this._emitParticles=t=>{const e=this.getPosition(),i=this.getSize(),s=ut(this._particlesOptions);for(let o=0;o{if(this._paused)return;const t=void 0!==this.options.life?.duration?P(this.options.life.duration):void 0;this.container.retina.reduceFactor&&(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=1e3*t)},this._setColorAnimation=(t,e,i)=>{const s=this.container;if(!t.enable)return e;const o=M(t.offset),n=1e3*P(this.options.rate.delay)/s.retina.reduceFactor;return(e+P(t.speed??0)*s.fpsLimit/n+3.6*o)%i},this._engine=t,this._currentDuration=0,this._currentEmitDelay=0,this._currentSpawnDelay=0,this._initialPosition=o,s instanceof ei?this.options=s:(this.options=new ei,this.options.load(s)),this._spawnDelay=1e3*P(this.options.life.delay??0)/this.container.retina.reduceFactor,this.position=this._initialPosition??this._calcPosition(),this.name=this.options.name,this._shape=this._engine.emitterShapeManager?.getShape(this.options.shape),this.fill=this.options.fill,this._firstSpawn=!this.options.life.wait,this._startParticlesAdded=!1;let n=st({},this.options.particles);n??={},n.move??={},n.move.direction??=this.options.direction,this.options.spawnColor&&(this.spawnColor=Wt(this.options.spawnColor)),this._paused=!this.options.autoPlay,this._particlesOptions=n,this.size=this.options.size??(()=>{const t=new ti;return t.load({height:0,mode:"percent",width:0}),t})(),this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._engine.dispatchEvent("emitterCreated",{container:i,data:{emitter:this}}),this.play()}externalPause(){this._paused=!0,this.pause()}externalPlay(){this._paused=!1,this.play()}getPosition(){if(this.options.domId){const t=this.container,e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{x:(i.x+i.width/2)*t.retina.pixelRatio,y:(i.y+i.height/2)*t.retina.pixelRatio}}}return this.position}getSize(){const t=this.container;if(this.options.domId){const e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{width:i.width*t.retina.pixelRatio,height:i.height*t.retina.pixelRatio}}}return yt(this.size,t.canvas.size)}pause(){this._paused||delete this._emitDelay}play(){if(!this._paused&&this.container.retina.reduceFactor&&(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))){if(void 0===this._emitDelay){const t=P(this.options.rate.delay);this._emitDelay=1e3*t/this.container.retina.reduceFactor}(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}resize(){const t=this._initialPosition;this.position=t&&tt(t,this.container.canvas.size,m.origin)?t:this._calcPosition()}update(t){this._paused||(this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0,this._currentEmitDelay=this._emitDelay??0),this._startParticlesAdded||(this._startParticlesAdded=!0,this._emitParticles(this.options.startCount)),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this.pause(),void 0!==this._spawnDelay&&delete this._spawnDelay,this._immortal||this._lifeCount--,this._lifeCount>0||this._immortal?(this.position=this._calcPosition(),this._spawnDelay=1e3*P(this.options.life.delay??0)/this.container.retina.reduceFactor):this._destroy(),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this._engine.dispatchEvent("emitterPlay",{container:this.container}),this.play(),this._currentSpawnDelay-=this._currentSpawnDelay,delete this._spawnDelay)),void 0!==this._emitDelay&&(this._currentEmitDelay+=t.value,this._currentEmitDelay>=this._emitDelay&&(this._emit(),this._currentEmitDelay-=this._emitDelay)))}}class si{constructor(t,e){this.container=e,this._engine=t,this.array=[],this.emitters=[],this.interactivityEmitters={random:{count:1,enable:!1},value:[]},e.getEmitter=t=>void 0===t||wt(t)?this.array[t||0]:this.array.find((e=>e.name===t)),e.addEmitter=(t,e)=>this.addEmitter(t,e),e.removeEmitter=t=>{const i=e.getEmitter(t);i&&this.removeEmitter(i)},e.playEmitter=t=>{const i=e.getEmitter(t);i&&i.externalPlay()},e.pauseEmitter=t=>{const i=e.getEmitter(t);i&&i.externalPause()}}addEmitter(t,e){const i=new ei;i.load(t);const s=new ii(this._engine,this,this.container,i,e);return this.array.push(s),s}handleClickMode(t){const e=this.emitters,i=this.interactivityEmitters;if("emitter"!==t)return;let s;if(i&&kt(i.value))if(i.value.length>0&&i.random.enable){s=[];const t=[];for(let e=0;e{this.addEmitter(t,n)}))}async init(){if(this.emitters=this.container.actualOptions.emitters,this.interactivityEmitters=this.container.actualOptions.interactivity.modes.emitters,this.emitters)if(kt(this.emitters))for(const t of this.emitters)this.addEmitter(t);else this.addEmitter(this.emitters)}pause(){for(const t of this.array)t.pause()}play(){for(const t of this.array)t.play()}removeEmitter(t){const e=this.array.indexOf(t);e>=0&&this.array.splice(e,1)}resize(){for(const t of this.array)t.resize()}stop(){this.array=[]}update(t){for(const e of this.array)e.update(t)}}const oi=new Map;class ni{constructor(t){this._engine=t}addShape(t,e){this.getShape(t)||oi.set(t,e)}getShape(t){return oi.get(t)}getSupportedShapes(){return oi.keys()}}function ai(t,e){return t+e*(_()-.5)}class ri{randomPosition(t,e,i){if(i)return{x:ai(t.x,e.width),y:ai(t.y,e.height)};{const i=e.width/2,s=e.height/2,o=Math.floor(4*_()),n=2*(_()-.5);switch(o){case 0:return{x:t.x+n*i,y:t.y-s};case 1:return{x:t.x-i,y:t.y+n*s};case 2:return{x:t.x+n*i,y:t.y+s};default:return{x:t.x+i,y:t.y+n*s}}}}}class ci{constructor(t){this._engine=t,this.id="emitters"}getPlugin(t){return new si(this._engine,t)}loadOptions(t,e){if(!this.needsPlugin(t)&&!this.needsPlugin(e))return;e?.emitters&&(t.emitters=dt(e.emitters,(t=>{const e=new ei;return e.load(t),e})));const i=e?.interactivity?.modes?.emitters;if(i)if(kt(i))t.interactivity.modes.emitters={random:{count:1,enable:!0},value:i.map((t=>{const e=new ei;return e.load(t),e}))};else{const e=i;if(void 0!==e.value)if(kt(e.value))t.interactivity.modes.emitters={random:{count:e.random.count??1,enable:e.random.enable??!1},value:e.value.map((t=>{const e=new ei;return e.load(t),e}))};else{const i=new ei;i.load(e.value),t.interactivity.modes.emitters={random:{count:e.random.count??1,enable:e.random.enable??!1},value:i}}else{(t.interactivity.modes.emitters={random:{count:1,enable:!1},value:new ei}).value.load(i)}}}needsPlugin(t){if(!t)return!1;const e=t.emitters;return kt(e)&&!!e.length||void 0!==e||!!t.interactivity?.events?.onClick?.mode&&J("emitter",t.interactivity.events.onClick.mode)}}class li{constructor(t){this.container=t,this.type="external"}}class hi{constructor(){this.delay=1,this.pauseOnStop=!1,this.quantity=1}load(t){t&&(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.quantity&&(this.quantity=t.quantity),void 0!==t.particles&&(this.particles=st({},t.particles)),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop))}}class di extends li{constructor(t){super(t),this._delay=0}clear(){}init(){}async interact(t){const e=this.container,{interactivity:i}=e;if(!e.retina.reduceFactor)return;const s=e.actualOptions.interactivity.modes.trail;if(!s)return;const o=1e3*s.delay/this.container.retina.reduceFactor;if(this._delay=.5?"darken":"enlighten";t.roll.alter={type:i,value:P("darken"===i?e.darken.value:e.enlighten.value)}}else e.darken.enable?t.roll.alter={type:"darken",value:P(e.darken.value)}:e.enlighten.enable&&(t.roll.alter={type:"enlighten",value:P(e.enlighten.value)});else t.roll={enable:!1,horizontal:!1,vertical:!1,angle:0,speed:0}}(t)}isEnabled(t){const e=t.options.roll;return!t.destroyed&&!t.spawning&&!!e?.enable}loadOptions(t,...e){t.roll||(t.roll=new pi);for(const i of e)t.roll.load(i?.roll)}update(t,e){this.isEnabled(t)&&function(t,e){const i=t.options.roll,s=t.roll;if(!s||!i?.enable)return;const o=s.speed*e.factor,n=2*Math.PI;s.angle+=o,s.angle>n&&(s.angle-=n)}(t,e)}}function vi(t,e,i){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.closePath()}function mi(t,e,i,s){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.lineTo(s.x,s.y),t.closePath()}function yi(t,e,i){t.fillStyle=i??"rgba(0,0,0,0)",t.fillRect(0,0,e.width,e.height)}function gi(t,e,i,s){i&&(t.globalAlpha=s,t.drawImage(i,0,0,e.width,e.height),t.globalAlpha=1)}function bi(t,e){t.clearRect(0,0,e.width,e.height)}function wi(t){const{container:e,context:i,particle:s,delta:o,colorStyles:n,backgroundMask:a,composite:r,radius:c,opacity:l,shadow:h,transform:d}=t,u=s.getPosition(),p=s.rotation+(s.pathRotation?s.velocity.angle:0),f=Math.sin(p),v=Math.cos(p),m={a:v*(d.a??1),b:f*(d.b??1),c:-f*(d.c??1),d:v*(d.d??1)};i.setTransform(m.a,m.b,m.c,m.d,u.x,u.y),i.beginPath(),a&&(i.globalCompositeOperation=r);const y=s.shadowColor;h.enable&&y&&(i.shadowBlur=h.blur,i.shadowColor=Jt(y),i.shadowOffsetX=h.offset.x,i.shadowOffsetY=h.offset.y),n.fill&&(i.fillStyle=n.fill);const g=s.strokeWidth??0;i.lineWidth=g,n.stroke&&(i.strokeStyle=n.stroke),xi(e,i,s,c,l,o),g>0&&i.stroke(),s.close&&i.closePath(),s.fill&&i.fill(),_i(e,i,s,c,l,o),i.globalCompositeOperation="source-over",i.setTransform(1,0,0,1,0,0)}function xi(t,e,i,s,o,n){if(!i.shape)return;const a=t.drawers.get(i.shape);a&&a.draw(e,i,s,o,n,t.retina.pixelRatio)}function _i(t,e,i,s,o,n){if(!i.shape)return;const a=t.drawers.get(i.shape);a&&a.afterEffect&&a.afterEffect(e,i,s,o,n,t.retina.pixelRatio)}function ki(t,e,i){e.draw&&e.draw(t,i)}function zi(t,e,i,s){e.drawParticle&&e.drawParticle(t,i,s)}function Mi(t,e,i){return{h:t.h,s:t.s,l:t.l+("darken"===e?-1:1)*i}}function Pi(t,e,i){const s=e[i];void 0!==s&&(t[i]=(t[i]??1)*s)}class Ci{constructor(t){this.container=t,this._applyPostDrawUpdaters=t=>{for(const e of this._postDrawUpdaters)e.afterDraw&&e.afterDraw(t)},this._applyPreDrawUpdaters=(t,e,i,s,o,n)=>{for(const a of this._preDrawUpdaters){if(a.getColorStyles){const{fill:n,stroke:r}=a.getColorStyles(e,t,i,s);n&&(o.fill=n),r&&(o.stroke=r)}if(a.getTransformValues){const t=a.getTransformValues(e);for(const e in t)Pi(n,t,e)}a.beforeDraw&&a.beforeDraw(e)}},this._applyResizePlugins=()=>{for(const t of this._resizePlugins)t.resize&&t.resize()},this._getPluginParticleColors=t=>{let e,i;for(const s of this._colorPlugins)if(!e&&s.particleFillColor&&(e=Wt(s.particleFillColor(t))),!i&&s.particleStrokeColor&&(i=Wt(s.particleStrokeColor(t))),e&&i)break;return[e,i]},this._initCover=()=>{const t=this.container.actualOptions.backgroundMask.cover,e=Vt(t.color);if(e){const i={...e,a:t.opacity};this._coverColorStyle=Jt(i,i.a)}},this._initStyle=()=>{const t=this.element,e=this.container.actualOptions;if(t){this._fullScreen?(this._originalStyle=st({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(const i in e.style){if(!i||!e.style)continue;const s=e.style[i];s&&t.style.setProperty(i,s,"important")}}},this._initTrail=async()=>{const t=this.container.actualOptions,e=t.particles.move.trail,i=e.fill;if(e.enable)if(i.color){const e=Vt(i.color);if(!e)return;const s=t.particles.move.trail;this._trailFill={color:{...e},opacity:1/s.length}}else await new Promise(((t,s)=>{if(!i.image)return;const o=document.createElement("img");o.addEventListener("load",(()=>{this._trailFill={image:o,opacity:1/e.length},t()})),o.addEventListener("error",(t=>{s(t.error)})),o.src=i.image}))},this._paintBase=t=>{this.draw((e=>yi(e,this.size,t)))},this._paintImage=(t,e)=>{this.draw((i=>gi(i,this.size,t,e)))},this._repairStyle=()=>{const t=this.element;t&&(this._safeMutationObserver((t=>t.disconnect())),this._initStyle(),this.initBackground(),this._safeMutationObserver((e=>e.observe(t,{attributes:!0}))))},this._resetOriginalStyle=()=>{const t=this.element,e=this._originalStyle;if(!t||!e)return;const i=t.style;i.position=e.position,i.zIndex=e.zIndex,i.top=e.top,i.left=e.left,i.width=e.width,i.height=e.height},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{const t=this.element;if(!t)return;const e="important",i=t.style;i.setProperty("position","fixed",e),i.setProperty("z-index",this.container.actualOptions.fullScreen.zIndex.toString(10),e),i.setProperty("top","0",e),i.setProperty("left","0",e),i.setProperty("width","100%",e),i.setProperty("height","100%",e)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){const t=this.container.actualOptions,e=t.particles.move.trail,i=this._trailFill;t.backgroundMask.enable?this.paint():e.enable&&e.length>0&&i?i.color?this._paintBase(Jt(i.color,i.opacity)):i.image&&this._paintImage(i.image,i.opacity):this.draw((t=>{bi(t,this.size)}))}destroy(){if(this.stop(),this._generated){const t=this.element;t&&t.remove()}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(t){const e=this._context;if(e)return t(e)}drawParticle(t,e){if(t.spawning||t.destroyed)return;const i=t.getRadius();if(i<=0)return;const s=t.getFillColor(),o=t.getStrokeColor()??s;let[n,a]=this._getPluginParticleColors(t);n||(n=s),a||(a=o),(n||a)&&this.draw((s=>{const o=this.container,r=o.actualOptions,c=t.options.zIndex,l=(1-t.zIndexFactor)**c.opacityRate,h=t.bubble.opacity??t.opacity?.value??1,d=h*l,u=(t.strokeOpacity??h)*l,p={},f={fill:n?Zt(n,d):void 0};f.stroke=a?Zt(a,u):f.fill,this._applyPreDrawUpdaters(s,t,i,d,f,p),wi({container:o,context:s,particle:t,delta:e,colorStyles:f,backgroundMask:r.backgroundMask.enable,composite:r.backgroundMask.composite,radius:i*(1-t.zIndexFactor)**c.sizeRate,opacity:d,shadow:t.options.shadow,transform:p}),this._applyPostDrawUpdaters(t)}))}drawParticlePlugin(t,e,i){this.draw((s=>zi(s,t,e,i)))}drawPlugin(t,e){this.draw((i=>ki(i,t,e)))}async init(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=Y((t=>{for(const e of t)"attributes"===e.type&&"style"===e.attributeName&&this._repairStyle()})),this.resize(),this._initStyle(),this._initCover();try{await this._initTrail()}catch(t){$().error(t)}this.initBackground(),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){const t=this.container.actualOptions.background,e=this.element;if(!e)return;const i=e.style;if(i){if(t.color){const e=Vt(t.color);i.backgroundColor=e?Jt(e,t.opacity):""}else i.backgroundColor="";i.backgroundImage=t.image||"",i.backgroundPosition=t.position||"",i.backgroundRepeat=t.repeat||"",i.backgroundSize=t.size||""}}initPlugins(){this._resizePlugins=[];for(const[,t]of this.container.plugins)t.resize&&this._resizePlugins.push(t),(t.particleFillColor||t.particleStrokeColor)&&this._colorPlugins.push(t)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(const t of this.container.particles.updaters)t.afterDraw&&this._postDrawUpdaters.push(t),(t.getColorStyles||t.getTransformValues||t.beforeDraw)&&this._preDrawUpdaters.push(t)}loadCanvas(t){this._generated&&this.element&&this.element.remove(),this._generated=t.dataset&&i in t.dataset?"true"===t.dataset[i]:this._generated,this.element=t,this.element.ariaHidden="true",this._originalStyle=st({},this.element.style),this.size.height=t.offsetHeight,this.size.width=t.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.container.retina.init(),this.initBackground()}paint(){const t=this.container.actualOptions;this.draw((e=>{t.backgroundMask.enable&&t.backgroundMask.cover?(bi(e,this.size),this._paintBase(this._coverColorStyle)):this._paintBase()}))}resize(){if(!this.element)return!1;const t=this.container,e=t.retina.pixelRatio,i=t.canvas.size,s=this.element.offsetWidth*e,o=this.element.offsetHeight*e;if(o===i.height&&s===i.width&&o===this.element.height&&s===this.element.width)return!1;const n={...i};return this.element.width=i.width=this.element.offsetWidth*e,this.element.height=i.height=this.element.offsetHeight*e,this.container.started&&(this.resizeFactor={width:i.width/n.width,height:i.height/n.height}),!0}stop(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=void 0,this.draw((t=>bi(t,this.size)))}async windowResize(){if(!this.element||!this.resize())return;const t=this.container,e=t.updateActualOptions();t.particles.setDensity(),this._applyResizePlugins(),e&&await t.refresh()}}function Si(t,e,i,s,o){if(s){let s={passive:!0};gt(o)?s.capture=o:void 0!==o&&(s=o),t.addEventListener(e,i,s)}else{const s=o;t.removeEventListener(e,i,s)}}class Oi{constructor(t){this.container=t,this._doMouseTouchClick=t=>{const e=this.container,i=e.actualOptions;if(this._canPush){const t=e.interactivity.mouse,s=t.position;if(!s)return;t.clickPosition={...s},t.clickTime=(new Date).getTime();dt(i.interactivity.events.onClick.mode,(t=>this.container.handleClickMode(t)))}"touchend"===t.type&&setTimeout((()=>this._mouseTouchFinish()),500)},this._handleThemeChange=t=>{const e=t,i=this.container,s=i.options,o=s.defaultThemes,n=e.matches?o.dark:o.light,a=s.themes.find((t=>t.name===n));a&&a.default.auto&&i.loadTheme(n)},this._handleVisibilityChange=()=>{const t=this.container,e=t.actualOptions;this._mouseTouchFinish(),e.pauseOnBlur&&(document&&document.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.getAnimationStatus()?t.play(!0):t.draw(!0)))},this._handleWindowResize=async()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout),this._resizeTimeout=setTimeout((async()=>{const t=this.container.canvas;t&&await t.windowResize()}),1e3*this.container.actualOptions.interactivity.events.resize.delay)},this._manageInteractivityListeners=(t,e)=>{const i=this._handlers,n=this.container,a=n.actualOptions,u=n.interactivity.element;if(!u)return;const p=u,f=n.canvas.element;f&&(f.style.pointerEvents=p===f?"initial":"none"),(a.interactivity.events.onHover.enable||a.interactivity.events.onClick.enable)&&(Si(u,r,i.mouseMove,e),Si(u,c,i.touchStart,e),Si(u,h,i.touchMove,e),a.interactivity.events.onClick.enable?(Si(u,l,i.touchEndClick,e),Si(u,o,i.mouseUp,e),Si(u,s,i.mouseDown,e)):Si(u,l,i.touchEnd,e),Si(u,t,i.mouseLeave,e),Si(u,d,i.touchCancel,e))},this._manageListeners=t=>{const e=this._handlers,i=this.container,s=i.actualOptions.interactivity.detectsOn,o=i.canvas.element;let r=n;"window"===s?(i.interactivity.element=window,r=a):i.interactivity.element="parent"===s&&o?o.parentElement??o.parentNode:o,this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(r,t),document&&Si(document,p,e.visibilityChange,t,!1)},this._manageMediaMatch=t=>{const e=this._handlers,i=X("(prefers-color-scheme: dark)");i&&(void 0===i.addEventListener?void 0!==i.addListener&&(t?i.addListener(e.oldThemeChange):i.removeListener(e.oldThemeChange)):Si(i,"change",e.themeChange,t))},this._manageResize=t=>{const e=this._handlers,i=this.container;if(!i.actualOptions.interactivity.events.resize)return;if("undefined"==typeof ResizeObserver)return void Si(window,u,e.resize,t);const s=i.canvas.element;this._resizeObserver&&!t?(s&&this._resizeObserver.unobserve(s),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&s&&(this._resizeObserver=new ResizeObserver((async t=>{t.find((t=>t.target===s))&&await this._handleWindowResize()})),this._resizeObserver.observe(s))},this._mouseDown=()=>{const{interactivity:t}=this.container;if(!t)return;const{mouse:e}=t;e.clicking=!0,e.downPosition=e.position},this._mouseTouchClick=t=>{const e=this.container,i=e.actualOptions,{mouse:s}=e.interactivity;s.inside=!0;let o=!1;const n=s.position;if(n&&i.interactivity.events.onClick.enable){for(const[,t]of e.plugins)if(t.clickPositionValid&&(o=t.clickPositionValid(n),o))break;o||this._doMouseTouchClick(t),s.clicking=!1}},this._mouseTouchFinish=()=>{const t=this.container.interactivity;if(!t)return;const e=t.mouse;delete e.position,delete e.clickPosition,delete e.downPosition,t.status=n,e.inside=!1,e.clicking=!1},this._mouseTouchMove=t=>{const e=this.container,i=e.actualOptions,s=e.interactivity,o=e.canvas.element;if(!s||!s.element)return;let n;if(s.mouse.inside=!0,t.type.startsWith("pointer")){this._canPush=!0;const e=t;if(s.element===window){if(o){const t=o.getBoundingClientRect();n={x:e.clientX-t.left,y:e.clientY-t.top}}}else if("parent"===i.interactivity.detectsOn){const t=e.target,i=e.currentTarget;if(t&&i&&o){const s=t.getBoundingClientRect(),a=i.getBoundingClientRect(),r=o.getBoundingClientRect();n={x:e.offsetX+2*s.left-(a.left+r.left),y:e.offsetY+2*s.top-(a.top+r.top)}}else n={x:e.offsetX??e.clientX,y:e.offsetY??e.clientY}}else e.target===o&&(n={x:e.offsetX??e.clientX,y:e.offsetY??e.clientY})}else if(this._canPush="touchmove"!==t.type,o){const e=t,i=e.touches[e.touches.length-1],s=o.getBoundingClientRect();n={x:i.clientX-(s.left??0),y:i.clientY-(s.top??0)}}const a=e.retina.pixelRatio;n&&(n.x*=a,n.y*=a),s.mouse.position=n,s.status=r},this._touchEnd=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.delete(t.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.delete(t.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.set(t.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}class Ti{constructor(){this.color=new zt,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.position&&(this.position=t.position),void 0!==t.repeat&&(this.repeat=t.repeat),void 0!==t.size&&(this.size=t.size),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Ri{constructor(){this.color=new zt,this.color.value="#fff",this.opacity=1}load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Di{constructor(){this.composite="destination-out",this.cover=new Ri,this.enable=!1}load(t){if(t){if(void 0!==t.composite&&(this.composite=t.composite),void 0!==t.cover){const e=t.cover,i=bt(t.cover)?{color:t.cover}:t.cover;this.cover.load(void 0!==e.color?e:{color:i})}void 0!==t.enable&&(this.enable=t.enable)}}}class Ei{constructor(){this.enable=!0,this.zIndex=0}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.zIndex&&(this.zIndex=t.zIndex))}}class Ii{constructor(){this.enable=!1,this.mode=[]}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode))}}class Li{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type="circle"}get el(){return this.elementId}set el(t){this.elementId=t}get elementId(){return this.ids}set elementId(t){this.ids=t}get ids(){return dt(this.selectors,(t=>t.replace("#","")))}set ids(t){this.selectors=dt(t,(t=>`#${t}`))}load(t){if(!t)return;const e=t.ids??t.elementId??t.el;void 0!==e&&(this.ids=e),void 0!==t.selectors&&(this.selectors=t.selectors),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.type&&(this.type=t.type)}}class Ai{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.force&&(this.force=t.force),void 0!==t.smooth&&(this.smooth=t.smooth))}}class Fi{constructor(){this.enable=!1,this.mode=[],this.parallax=new Ai}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),this.parallax.load(t.parallax))}}class Bi{constructor(){this.delay=.5,this.enable=!0}load(t){void 0!==t&&(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.enable&&(this.enable=t.enable))}}class qi{constructor(){this.onClick=new Ii,this.onDiv=new Li,this.onHover=new Fi,this.resize=new Bi}get onclick(){return this.onClick}set onclick(t){this.onClick=t}get ondiv(){return this.onDiv}set ondiv(t){this.onDiv=t}get onhover(){return this.onHover}set onhover(t){this.onHover=t}load(t){if(!t)return;this.onClick.load(t.onClick??t.onclick);const e=t.onDiv??t.ondiv;void 0!==e&&(this.onDiv=dt(e,(t=>{const e=new Li;return e.load(t),e}))),this.onHover.load(t.onHover??t.onhover),gt(t.resize)?this.resize.enable=t.resize:this.resize.load(t.resize)}}class Vi{constructor(t,e){this._engine=t,this._container=e}load(t){if(!t)return;if(!this._container)return;const e=this._engine.plugins.interactors.get(this._container);if(e)for(const i of e)i.loadModeOptions&&i.loadModeOptions(this,t)}}class Hi{constructor(t,e){this.detectsOn="window",this.events=new qi,this.modes=new Vi(t,e)}get detect_on(){return this.detectsOn}set detect_on(t){this.detectsOn=t}load(t){if(!t)return;const e=t.detectsOn??t.detect_on;void 0!==e&&(this.detectsOn=e),this.events.load(t.events),this.modes.load(t.modes)}}class Ui{load(t){t&&(t.position&&(this.position={x:t.position.x??50,y:t.position.y??50,mode:t.position.mode??"percent"}),t.options&&(this.options=st({},t.options)))}}class Wi{constructor(){this.maxWidth=1/0,this.options={},this.mode="canvas"}load(t){t&&(void 0!==t.maxWidth&&(this.maxWidth=t.maxWidth),void 0!==t.mode&&("screen"===t.mode?this.mode="screen":this.mode="canvas"),void 0!==t.options&&(this.options=st({},t.options)))}}class $i{constructor(){this.auto=!1,this.mode="any",this.value=!1}load(t){t&&(void 0!==t.auto&&(this.auto=t.auto),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}class Gi{constructor(){this.name="",this.default=new $i}load(t){t&&(void 0!==t.name&&(this.name=t.name),this.default.load(t.default),void 0!==t.options&&(this.options=st({},t.options)))}}class ji{constructor(t,e){this._findDefaultTheme=t=>this.themes.find((e=>e.default.value&&e.default.mode===t))??this.themes.find((t=>t.default.value&&"any"===t.default.mode)),this._importPreset=t=>{this.load(this._engine.plugins.getPreset(t))},this._engine=t,this._container=e,this.autoPlay=!0,this.background=new Ti,this.backgroundMask=new Di,this.defaultThemes={},this.delay=0,this.fullScreen=new Ei,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new Hi(t,e),this.manualParticles=[],this.particles=Xe(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}get backgroundMode(){return this.fullScreen}set backgroundMode(t){this.fullScreen.load(t)}get fps_limit(){return this.fpsLimit}set fps_limit(t){this.fpsLimit=t}get retina_detect(){return this.detectRetina}set retina_detect(t){this.detectRetina=t}load(t){if(!t)return;void 0!==t.preset&&dt(t.preset,(t=>this._importPreset(t))),void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.delay&&(this.delay=O(t.delay));const e=t.detectRetina??t.retina_detect;void 0!==e&&(this.detectRetina=e),void 0!==t.duration&&(this.duration=O(t.duration));const i=t.fpsLimit??t.fps_limit;void 0!==i&&(this.fpsLimit=i),void 0!==t.pauseOnBlur&&(this.pauseOnBlur=t.pauseOnBlur),void 0!==t.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=t.pauseOnOutsideViewport),void 0!==t.zLayers&&(this.zLayers=t.zLayers),this.background.load(t.background);const s=t.fullScreen??t.backgroundMode;gt(s)?this.fullScreen.enable=s:this.fullScreen.load(s),this.backgroundMask.load(t.backgroundMask),this.interactivity.load(t.interactivity),t.manualParticles&&(this.manualParticles=t.manualParticles.map((t=>{const e=new Ui;return e.load(t),e}))),this.particles.load(t.particles),this.style=st(this.style,t.style),this._engine.plugins.loadOptions(this,t),void 0!==t.smooth&&(this.smooth=t.smooth);const o=this._engine.plugins.interactors.get(this._container);if(o)for(const e of o)e.loadOptions&&e.loadOptions(this,t);if(void 0!==t.responsive)for(const e of t.responsive){const t=new Wi;t.load(e),this.responsive.push(t)}if(this.responsive.sort(((t,e)=>t.maxWidth-e.maxWidth)),void 0!==t.themes)for(const e of t.themes){const t=this.themes.find((t=>t.name===e.name));if(t)t.load(e);else{const t=new Gi;t.load(e),this.themes.push(t)}}this.defaultThemes.dark=this._findDefaultTheme("dark")?.name,this.defaultThemes.light=this._findDefaultTheme("light")?.name}setResponsive(t,e,i){this.load(i);const s=this.responsive.find((i=>"screen"===i.mode&&screen?i.maxWidth>screen.availWidth:i.maxWidth*e>t));return this.load(s?.options),s?.maxWidth}setTheme(t){if(t){const e=this.themes.find((e=>e.name===t));e&&this.load(e.options)}else{const t=X("(prefers-color-scheme: dark)"),e=t&&t.matches,i=this._findDefaultTheme(e?"dark":"light");i&&this.load(i.options)}}}class Ni{constructor(t,e){this.container=e,this._engine=t,this._interactors=t.plugins.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[]}async externalInteract(t){for(const e of this._externalInteractors)e.isEnabled()&&await e.interact(t)}handleClickMode(t){for(const e of this._externalInteractors)e.handleClickMode&&e.handleClickMode(t)}init(){this._externalInteractors=[],this._particleInteractors=[];for(const t of this._interactors){switch(t.type){case"external":this._externalInteractors.push(t);break;case"particles":this._particleInteractors.push(t)}t.init()}}async particlesInteract(t,e){for(const i of this._externalInteractors)i.clear(t,e);for(const i of this._particleInteractors)i.isEnabled(t)&&await i.interact(t,e)}async reset(t){for(const e of this._externalInteractors)e.isEnabled()&&e.reset(t);for(const e of this._particleInteractors)e.isEnabled(t)&&e.reset(t)}}const Xi=t=>{if(!J(t.outMode,t.checkModes))return;const e=2*t.radius;t.coord>t.maxCoord-e?t.setCb(-t.radius):t.coord{for(const[,s]of t.plugins){const t=void 0!==s.particlePosition?s.particlePosition(e,this):void 0;if(t)return v.create(t.x,t.y,i)}const o=q({size:t.canvas.size,position:e}),n=v.create(o.x,o.y,i),a=this.getRadius(),r=this.options.move.outModes,c=e=>{Xi({outMode:e,checkModes:["bounce","bounce-horizontal"],coord:n.x,maxCoord:t.canvas.size.width,setCb:t=>n.x+=t,radius:a})},l=e=>{Xi({outMode:e,checkModes:["bounce","bounce-vertical"],coord:n.y,maxCoord:t.canvas.size.height,setCb:t=>n.y+=t,radius:a})};return c(r.left??r.default),c(r.right??r.default),l(r.top??r.default),l(r.bottom??r.default),this._checkOverlap(n,s)?this._calcPosition(t,void 0,i,s+1):n},this._calculateVelocity=()=>{const t=I(this.direction).copy(),e=this.options.move;if("inside"===e.direction||"outside"===e.direction)return t;const i=Math.PI/180*P(e.angle.value),s=Math.PI/180*P(e.angle.offset),o={left:s-i/2,right:s+i/2};return e.straight||(t.angle+=M(O(o.left,o.right))),e.random&&"number"==typeof e.speed&&(t.length*=_()),t},this._checkOverlap=(t,e=0)=>{const i=this.options.collisions,s=this.getRadius();if(!i.enable)return!1;const o=i.overlap;if(o.enable)return!1;const n=o.retries;if(n>=0&&e>n)throw new Error(`${f} particle is overlapping and can't be placed`);return!!this.container.particles.find((e=>D(t,e.position){if(!t||!this.roll||!this.backColor&&!this.roll.alter)return t;const e=this.roll.horizontal&&this.roll.vertical?2:1,i=this.roll.horizontal?Math.PI/2:0;return Math.floor(((this.roll.angle??0)+i)/(Math.PI/e))%2?this.backColor?this.backColor:this.roll.alter?Mi(t,this.roll.alter.type,this.roll.alter.value):t:t},this._initPosition=t=>{const e=this.container,i=P(this.options.zIndex.value);this.position=this._calcPosition(e,t,k(i,0,e.zLayers)),this.initialPosition=this.position.copy();const s=e.canvas.size;switch(this.moveCenter={...mt(this.options.move.center,s),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??"percent"},this.direction=E(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside"}this.offset=m.origin},this._loadShapeData=(t,e)=>{const i=t.options[this.shape];if(i)return st({close:t.close,fill:t.fill},ut(i,this.id,e))},this._engine=t,this.init(e,s,o,n)}destroy(t){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;const e=this.container,i=this.pathGenerator;for(const[,i]of e.plugins)i.particleDestroyed&&i.particleDestroyed(this,t);for(const i of e.particles.updaters)i.particleDestroyed&&i.particleDestroyed(this,t);i&&i.reset(this)}draw(t){const e=this.container;for(const[,i]of e.plugins)e.canvas.drawParticlePlugin(i,this,t);e.canvas.drawParticle(this,t)}getFillColor(){return this._getRollColor(this.bubble.color??ee(this.color))}getMass(){return this.getRadius()**2*Math.PI/2}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??ee(this.strokeColor))}init(t,e,i,s){const o=this.container,n=this._engine;this.id=t,this.group=s,this.fill=!0,this.pathRotation=!1,this.close=!0,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;const a=o.retina.pixelRatio,r=o.actualOptions,c=Xe(this._engine,o,r.particles),l=c.shape.type,{reduceDuplicates:h}=c;this.shape=ut(l,this.id,h);const d=c.shape;if(i&&i.shape&&i.shape.type){const t=ut(i.shape.type,this.id,h);t&&(this.shape=t,d.load(i.shape))}this.shapeData=this._loadShapeData(d,h),c.load(i);const u=this.shapeData;u&&c.load(u.particles);const p=new Hi(n,o);p.load(o.actualOptions.interactivity),p.load(c.interactivity),this.interactivity=p,this.fill=u?.fill??c.shape.fill,this.close=u?.close??c.shape.close,this.options=c;const f=this.options.move.path;this.pathDelay=1e3*T(f.delay),f.generator&&(this.pathGenerator=this._engine.plugins.getPathGenerator(f.generator),this.pathGenerator&&o.addPath(f.generator,this.pathGenerator)&&this.pathGenerator.init(o)),o.retina.initParticle(this),this.size=ft(this.options.size,a),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(e),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-P(this.options.move.decay);const v=o.particles;v.needsSort=v.needsSort||v.lastZIndex=-t&&i.y>=-t&&i.y<=e.height+t&&i.x<=e.width+t}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(const t of this.container.particles.updaters)t.reset&&t.reset(this)}}class Ji{constructor(t,e){this.position=t,this.particle=e}}class Zi{constructor(t,e){this.position={x:t,y:e}}}class Qi extends Zi{constructor(t,e,i,s){super(t,e),this.size={height:s,width:i}}contains(t){const e=this.size.width,i=this.size.height,s=this.position;return t.x>=s.x&&t.x<=s.x+e&&t.y>=s.y&&t.y<=s.y+i}intersects(t){t instanceof Ki&&t.intersects(this);const e=this.size.width,i=this.size.height,s=this.position,o=t.position,n=t instanceof Qi?t.size:{width:0,height:0},a=n.width,r=n.height;return o.xs.x&&o.ys.y}}class Ki extends Zi{constructor(t,e,i){super(t,e),this.radius=i}contains(t){return D(t,this.position)<=this.radius}intersects(t){const e=this.position,i=t.position,s=Math.abs(i.x-e.x),o=Math.abs(i.y-e.y),n=this.radius;if(t instanceof Ki){return n+t.radius>Math.sqrt(s**2+o**2)}if(t instanceof Qi){const{width:e,height:i}=t.size;return Math.pow(s-e,2)+Math.pow(o-i,2)<=n**2||s<=n+e&&o<=n+i||s<=e||o<=i}return!1}}class ts{constructor(t,e){this.rectangle=t,this.capacity=e,this._subdivide=()=>{const{x:t,y:e}=this.rectangle.position,{width:i,height:s}=this.rectangle.size,{capacity:o}=this;for(let n=0;n<4;n++)this._subs.push(new ts(new Qi(t+i/2*(n%2),e+s/2*(Math.round(n/2)-n%2),i/2,s/2),o));this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(t){return!!this.rectangle.contains(t.position)&&(this._points.lengthe.insert(t)))))}query(t,e,i){const s=i||[];if(!t.intersects(this.rectangle))return[];for(const i of this._points)!t.contains(i.position)&&D(t.position,i.position)>i.particle.getRadius()&&(!e||e(i.particle))||s.push(i.particle);if(this._divided)for(const i of this._subs)i.query(t,e,s);return s}queryCircle(t,e,i){return this.query(new Ki(t.x,t.y,e),i)}queryRectangle(t,e,i){return this.query(new Qi(t.x,t.y,e.width,e.height),i)}}const es=t=>new Qi(-t.width/4,-t.height/4,3*t.width/2,3*t.height/2);class is{constructor(t,e){this._applyDensity=(t,e,i)=>{if(!t.number.density?.enable)return;const s=t.number,o=this._initDensityFactor(s.density),n=s.value,a=s.limit>0?s.limit:n,r=Math.min(n,a)*o+e,c=Math.min(this.count,this.filter((t=>t.group===i)).length);this.limit=s.limit*o,cr&&this.removeQuantity(c-r,i)},this._initDensityFactor=t=>{const e=this._container;if(!e.canvas.element||!t.enable)return 1;const i=e.canvas.element,s=e.retina.pixelRatio;return i.width*i.height/(t.factor*s**2*t.area)},this._pushParticle=(t,e,i,s)=>{try{let o=this.pool.pop();o?o.init(this._nextId,t,e,i):o=new Yi(this._engine,this._nextId,this._container,t,e,i);let n=!0;if(s&&(n=s(o)),!n)return;return this._array.push(o),this._zArray.push(o),this._nextId++,this._engine.dispatchEvent("particleAdded",{container:this._container,data:{particle:o}}),o}catch(t){return void $().warning(`${f} adding particle: ${t}`)}},this._removeParticle=(t,e,i)=>{const s=this._array[t];if(!s||s.group!==e)return!1;s.destroy(i);const o=this._zArray.indexOf(s);return this._array.splice(t,1),this._zArray.splice(o,1),this.pool.push(s),this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:s}}),!0},this._engine=t,this._container=e,this._nextId=0,this._array=[],this._zArray=[],this.pool=[],this.limit=0,this.needsSort=!1,this.lastZIndex=0,this._interactionManager=new Ni(t,e);const i=e.canvas.size;this.quadTree=new ts(es(i),4),this.movers=this._engine.plugins.getMovers(e,!0),this.updaters=this._engine.plugins.getUpdaters(e,!0)}get count(){return this._array.length}addManualParticles(){const t=this._container,e=t.actualOptions;for(const i of e.manualParticles)this.addParticle(i.position?mt(i.position,t.canvas.size):void 0,i.options)}addParticle(t,e,i,s){const o=this._container.actualOptions.particles.number.limit;if(o>0){const t=this.count+1-o;t>0&&this.removeQuantity(t)}return this._pushParticle(t,e,i,s)}clear(){this._array=[],this._zArray=[]}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}async draw(t){const e=this._container;e.canvas.clear(),await this.update(t);for(const[,i]of e.plugins)e.canvas.drawPlugin(i,t);for(const e of this._zArray)e.draw(t)}filter(t){return this._array.filter(t)}find(t){return this._array.find(t)}handleClickMode(t){this._interactionManager.handleClickMode(t)}init(){const t=this._container,e=t.actualOptions;this.lastZIndex=0,this.needsSort=!1;let i=!1;this.updaters=this._engine.plugins.getUpdaters(t,!0),this._interactionManager.init();for(const[,e]of t.plugins)if(void 0!==e.particlesInitialization&&(i=e.particlesInitialization()),i)break;this._interactionManager.init();for(const[,e]of t.pathGenerators)e.init(t);if(this.addManualParticles(),!i){for(const t in e.particles.groups){const i=e.particles.groups[t];for(let s=this.count,o=0;othis.count)return;let o=0;for(let n=t;o!i.has(t);this._array=this.filter(t),this._zArray=this._zArray.filter(t),this.pool.push(...i)}await this._interactionManager.externalInteract(t);for(const e of this._array){for(const i of this.updaters)i.update(e,t);e.destroyed||e.spawning||await this._interactionManager.particlesInteract(e,t)}if(delete e.canvas.resizeFactor,this.needsSort){const t=this._zArray;t.sort(((t,e)=>e.position.z-t.position.z||t.id-e.id)),this.lastZIndex=t[t.length-1].position.z,this.needsSort=!1}}}class ss{constructor(t){this.container=t,this.pixelRatio=1,this.reduceFactor=1}init(){const t=this.container,e=t.actualOptions;this.pixelRatio=!e.detectRetina||j()?1:window.devicePixelRatio,this.reduceFactor=1;const i=this.pixelRatio;if(t.canvas.element){const e=t.canvas.element;t.canvas.size.width=e.offsetWidth*i,t.canvas.size.height=e.offsetHeight*i}const s=e.particles,o=s.move;this.attractDistance=P(o.attract.distance)*i,this.maxSpeed=P(o.gravity.maxSpeed)*i,this.sizeAnimationSpeed=P(s.size.animation.speed)*i}initParticle(t){const e=t.options,i=this.pixelRatio,s=e.move,o=s.distance,n=t.retina;n.attractDistance=P(s.attract.distance)*i,n.moveDrift=P(s.drift)*i,n.moveSpeed=P(s.speed)*i,n.sizeAnimationSpeed=P(e.size.animation.speed)*i;const a=n.maxDistance;a.horizontal=void 0!==o.horizontal?o.horizontal*i:void 0,a.vertical=void 0!==o.vertical?o.vertical*i:void 0,n.maxSpeed=P(s.gravity.maxSpeed)*i}}function os(t){return t&&!t.destroyed}function ns(t,e,...i){const s=new ji(t,e);return Ne(s,...i),s}const as={generate:t=>t.velocity,init:()=>{},update:()=>{},reset:()=>{}};class rs{constructor(t,e,i){this.id=e,this._intersectionManager=t=>{if(os(this)&&this.actualOptions.pauseOnOutsideViewport)for(const e of t)e.target===this.interactivity.element&&(e.isIntersecting?this.play:this.pause)()},this._nextFrame=async t=>{try{if(!this.smooth&&void 0!==this.lastFrameTime&&t1e3)return void this.draw(!1);if(await this.particles.draw(e),!this.alive())return void this.destroy();this.getAnimationStatus()&&this.draw(!1)}catch(t){$().error(`${f} in animation loop`,t)}},this._engine=t,this.fpsLimit=120,this.smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this.lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._sourceOptions=i,this._initialSourceOptions=i,this.retina=new ss(this),this.canvas=new Ci(this),this.particles=new is(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.drawers=new Map,this._options=ns(this._engine,this),this.actualOptions=ns(this._engine,this),this._eventListeners=new Oi(this),"undefined"!=typeof IntersectionObserver&&IntersectionObserver&&(this._intersectionObserver=new IntersectionObserver((t=>this._intersectionManager(t)))),this._engine.dispatchEvent("containerBuilt",{container:this})}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(t){if(!os(this))return;const e=this.interactivity.element;if(!e)return;const i=(e,i,s)=>{if(!os(this))return;const o=this.retina.pixelRatio,n={x:i.x*o,y:i.y*o},a=this.particles.quadTree.queryCircle(n,s*o);t(e,a)};let s=!1,o=!1;e.addEventListener("click",(t=>{if(!os(this))return;const e=t,s={x:e.offsetX||e.clientX,y:e.offsetY||e.clientY};i(t,s,1)})),e.addEventListener("touchstart",(()=>{os(this)&&(s=!0,o=!1)})),e.addEventListener("touchmove",(()=>{os(this)&&(o=!0)})),e.addEventListener("touchend",(t=>{if(os(this)){if(s&&!o){const e=t;let s=e.touches[e.touches.length-1];if(!s&&(s=e.changedTouches[e.changedTouches.length-1],!s))return;const o=this.canvas.element,n=o?o.getBoundingClientRect():void 0,a={x:s.clientX-(n?n.left:0),y:s.clientY-(n?n.top:0)};i(t,a,Math.max(s.radiusX,s.radiusY))}s=!1,o=!1}})),e.addEventListener("touchcancel",(()=>{os(this)&&(s=!1,o=!1)}))}addLifeTime(t){this._lifeTime+=t}addPath(t,e,i=!1){return!(!os(this)||!i&&this.pathGenerators.has(t))&&(this.pathGenerators.set(t,e??as),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(){if(!os(this))return;this.stop(),this.particles.destroy(),this.canvas.destroy();for(const[,t]of this.drawers)t.destroy&&t.destroy(this);for(const t of this.drawers.keys())this.drawers.delete(t);this._engine.plugins.destroy(this),this.destroyed=!0;const t=this._engine.dom(),e=t.findIndex((t=>t===this));e>=0&&t.splice(e,1),this._engine.dispatchEvent("containerDestroyed",{container:this})}draw(t){if(!os(this))return;let e=t;this._drawAnimationFrame=requestAnimationFrame((async t=>{e&&(this.lastFrameTime=void 0,e=!1),await this._nextFrame(t)}))}async export(t,e={}){for(const[,i]of this.plugins){if(!i.export)continue;const s=await i.export(t,e);if(s.supported)return s.blob}$().error(`${f} - Export plugin with type ${t} not found`)}getAnimationStatus(){return!this._paused&&!this.pageHidden&&os(this)}handleClickMode(t){if(os(this)){this.particles.handleClickMode(t);for(const[,e]of this.plugins)e.handleClickMode&&e.handleClickMode(t)}}async init(){if(!os(this))return;const t=this._engine.plugins.getSupportedShapes();for(const e of t){const t=this._engine.plugins.getShapeDrawer(e);t&&this.drawers.set(e,t)}this._options=ns(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=ns(this._engine,this,this._options);const e=this._engine.plugins.getAvailablePlugins(this);for(const[t,i]of e)this.plugins.set(t,i);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this._duration=1e3*P(this.actualOptions.duration),this._delay=1e3*P(this.actualOptions.delay),this._lifeTime=0,this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this.smooth=this.actualOptions.smooth;for(const[,t]of this.drawers)t.init&&await t.init(this);for(const[,t]of this.plugins)t.init&&await t.init();this._engine.dispatchEvent("containerInit",{container:this}),this.particles.init(),this.particles.setDensity();for(const[,t]of this.plugins)t.particlesSetup&&t.particlesSetup();this._engine.dispatchEvent("particlesSetup",{container:this})}async loadTheme(t){os(this)&&(this._currentTheme=t,await this.refresh())}pause(){if(os(this)&&(void 0!==this._drawAnimationFrame&&(cancelAnimationFrame(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(const[,t]of this.plugins)t.pause&&t.pause();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}play(t){if(!os(this))return;const e=this._paused||t;if(!this._firstStart||this.actualOptions.autoPlay){if(this._paused&&(this._paused=!1),e)for(const[,t]of this.plugins)t.play&&t.play();this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(e||!1)}else this._firstStart=!1}async refresh(){if(os(this))return this.stop(),this.start()}async reset(){if(os(this))return this._initialSourceOptions=void 0,this._options=ns(this._engine,this),this.actualOptions=ns(this._engine,this,this._options),this.refresh()}setNoise(t,e,i){os(this)&&this.setPath(t,e,i)}setPath(t,e,i){if(!t||!os(this))return;const s={...as};if(xt(t))s.generate=t,e&&(s.init=e),i&&(s.update=i);else{const e=s;s.generate=t.generate||e.generate,s.init=t.init||e.init,s.update=t.update||e.update}this.addPath("default",s,!0)}async start(){os(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise((t=>{this._delayTimeout=setTimeout((async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(const[,t]of this.plugins)t.start&&await t.start();this._engine.dispatchEvent("containerStarted",{container:this}),this.play(),t()}),this._delay)})))}stop(){if(os(this)&&this.started){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(const[,t]of this.plugins)t.stop&&t.stop();for(const t of this.plugins.keys())this.plugins.delete(t);this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];const t=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this.responsiveMaxWidth!==t&&(this.responsiveMaxWidth=t,!0)}}class cs{constructor(){this._listeners=new Map}addEventListener(t,e){this.removeEventListener(t,e);let i=this._listeners.get(t);i||(i=[],this._listeners.set(t,i)),i.push(e)}dispatchEvent(t,e){const i=this._listeners.get(t);i&&i.forEach((t=>t(e)))}hasEventListener(t){return!!this._listeners.get(t)}removeAllEventListeners(t){t?this._listeners.delete(t):this._listeners=new Map}removeEventListener(t,e){const i=this._listeners.get(t);if(!i)return;const s=i.length,o=i.indexOf(e);o<0||(1===s?this._listeners.delete(t):i.splice(o,1))}}function ls(t,e,i,s=!1){let o=e.get(t);return o&&!s||(o=[...i.values()].map((e=>e(t))),e.set(t,o)),o}class hs{constructor(t){this._engine=t,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.drawers=new Map,this.pathGenerators=new Map}addInteractor(t,e){this._initializers.interactors.set(t,e)}addParticleMover(t,e){this._initializers.movers.set(t,e)}addParticleUpdater(t,e){this._initializers.updaters.set(t,e)}addPathGenerator(t,e){!this.getPathGenerator(t)&&this.pathGenerators.set(t,e)}addPlugin(t){!this.getPlugin(t.id)&&this.plugins.push(t)}addPreset(t,e,i=!1){(i||!this.getPreset(t))&&this.presets.set(t,e)}addShapeDrawer(t,e){dt(t,(t=>{!this.getShapeDrawer(t)&&this.drawers.set(t,e)}))}destroy(t){this.updaters.delete(t),this.movers.delete(t),this.interactors.delete(t)}getAvailablePlugins(t){const e=new Map;for(const i of this.plugins)i.needsPlugin(t.actualOptions)&&e.set(i.id,i.getPlugin(t));return e}getInteractors(t,e=!1){return ls(t,this.interactors,this._initializers.interactors,e)}getMovers(t,e=!1){return ls(t,this.movers,this._initializers.movers,e)}getPathGenerator(t){return this.pathGenerators.get(t)}getPlugin(t){return this.plugins.find((e=>e.id===t))}getPreset(t){return this.presets.get(t)}getShapeDrawer(t){return this.drawers.get(t)}getSupportedShapes(){return this.drawers.keys()}getUpdaters(t,e=!1){return ls(t,this.updaters,this._initializers.updaters,e)}loadOptions(t,e){for(const i of this.plugins)i.loadOptions(t,e)}loadParticlesOptions(t,e,...i){const s=this.updaters.get(t);if(s)for(const t of s)t.loadOptions&&t.loadOptions(e,...i)}}class ds{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new cs,this._initialized=!1,this.plugins=new hs(this)}get configs(){const t={};for(const[e,i]of this._configs)t[e]=i;return t}get version(){return"2.12.0"}addConfig(t,e){bt(t)?e&&(e.name=t,this._configs.set(t,e)):this._configs.set(t.name??"default",t)}addEventListener(t,e){this._eventDispatcher.addEventListener(t,e)}async addInteractor(t,e,i=!0){this.plugins.addInteractor(t,e),await this.refresh(i)}async addMover(t,e,i=!0){this.plugins.addParticleMover(t,e),await this.refresh(i)}async addParticleUpdater(t,e,i=!0){this.plugins.addParticleUpdater(t,e),await this.refresh(i)}async addPathGenerator(t,e,i=!0){this.plugins.addPathGenerator(t,e),await this.refresh(i)}async addPlugin(t,e=!0){this.plugins.addPlugin(t),await this.refresh(e)}async addPreset(t,e,i=!1,s=!0){this.plugins.addPreset(t,e,i),await this.refresh(s)}async addShape(t,e,i,s,o,n=!0){let a,r,c,l,h=n;gt(i)?(h=i,r=void 0):r=i,gt(s)?(h=s,c=void 0):c=s,gt(o)?(h=o,l=void 0):l=o,a=xt(e)?{afterEffect:c,destroy:l,draw:e,init:r}:e,this.plugins.addShapeDrawer(t,a),await this.refresh(h)}dispatchEvent(t,e){this._eventDispatcher.dispatchEvent(t,e)}dom(){return this._domArray}domItem(t){const e=this.dom(),i=e[t];if(i&&!i.destroyed)return i;e.splice(t,1)}init(){this._initialized||(this._initialized=!0)}async load(t,e){return this.loadFromArray(t,e)}async loadFromArray(t,e,i){let s;return!function(t){return!!((e=t).id||e.element||e.url||e.options);var e}(t)?(s={},bt(t)?s.id=t:s.options=t,wt(e)?s.index=e:s.options=e??s.options,s.index=i??s.index):s=t,this._loadParams(s)}async loadJSON(t,e,i){let s,o;return wt(e)||void 0===e?s=t:(o=t,s=e),this._loadParams({id:o,url:s,index:i})}async refresh(t=!0){t&&this.dom().forEach((t=>t.refresh()))}removeEventListener(t,e){this._eventDispatcher.removeEventListener(t,e)}async set(t,e,i,s){const o={index:s};return bt(t)?o.id=t:o.element=t,e instanceof HTMLElement?o.element=e:o.options=e,wt(i)?o.index=i:o.options=i??o.options,this._loadParams(o)}async setJSON(t,e,i,s){const o={};return t instanceof HTMLElement?(o.element=t,o.url=e,o.index=i):(o.id=t,o.element=e,o.url=i,o.index=s),this._loadParams(o)}setOnClickHandler(t){const e=this.dom();if(!e.length)throw new Error(`${f} can only set click handlers after calling tsParticles.load()`);for(const i of e)i.addClickHandler(t)}async _loadParams(t){const e=t.id??`tsparticles${Math.floor(1e4*_())}`,{index:s,url:o}=t,n=o?await async function(t){const e=ut(t.url,t.index);if(!e)return t.fallback;const i=await fetch(e);return i.ok?i.json():($().error(`${f} ${i.status} while retrieving config file`),t.fallback)}({fallback:t.options,url:o,index:s}):t.options;let a=t.element??document.getElementById(e);a||(a=document.createElement("div"),a.id=e,document.body.append(a));const r=ut(n,s),c=this.dom(),l=c.findIndex((t=>t.id===e));if(l>=0){const t=this.domItem(l);t&&!t.destroyed&&(t.destroy(),c.splice(l,1))}let h;if("canvas"===a.tagName.toLowerCase())h=a,h.dataset[i]="false";else{const t=a.getElementsByTagName("canvas");t.length?(h=t[0],h.dataset[i]="false"):(h=document.createElement("canvas"),h.dataset[i]="true",a.appendChild(h))}h.style.width||(h.style.width="100%"),h.style.height||(h.style.height="100%");const d=new rs(this,e,r);return l>=0?c.splice(l,0,d):c.push(d),d.canvas.loadCanvas(h),await d.start(),d}}class us{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(t){const e=t.value.hsl??t.value;if(void 0!==e.h&&void 0!==e.s&&void 0!==e.l)return Nt(e)}handleRangeColor(t){const e=t.value.hsl??t.value;if(void 0!==e.h&&void 0!==e.l)return Nt({h:P(e.h),l:P(e.l),s:P(e.s)})}parseString(t){if(!t.startsWith("hsl"))return;const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return e?Xt({a:e.length>4?H(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}}class ps{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(t){const e=t.value.rgb??t.value;if(void 0!==e.r)return e}handleRangeColor(t){const e=t.value.rgb??t.value;if(void 0!==e.r)return{r:P(e.r),g:P(e.g),b:P(e.b)}}parseString(t){if(!t.startsWith(this.stringPrefix))return;const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?H(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}}class fs{constructor(t){this.container=t,this.type="particles"}}const vs=function(){const t=new ps,e=new us;Ft(t),Ft(e);const i=new ds;return i.init(),i}();j()||(window.tsParticles=vs);class ms{static init(t){const e=new ms,i=t.selector;if(!i)throw new Error("No selector provided");const s=document.querySelector(i);if(!s)throw new Error("No element found for selector");return vs.set(i.replace(".","").replace("!",""),s,{fullScreen:{enable:!1},particles:{color:{value:t.color??"!000000"},links:{color:"random",distance:t.minDistance??120,enable:t.connectParticles??!1},move:{enable:!0,speed:t.speed??.5},number:{value:t.maxParticles??100},size:{value:{min:1,max:t.sizeVariations??3}}},responsive:t.responsive?.map((e=>({maxWidth:e.breakpoint,options:{particles:{color:{value:e.options?.color},links:{distance:e.options?.minDistance,enable:e.options?.connectParticles},number:{value:t.maxParticles},move:{enable:!0,speed:e.options?.speed},size:{value:e.options?.sizeVariations}}}})))}).then((t=>{e._container=t})),e}destroy(){const t=this._container;t&&t.destroy()}pauseAnimation(){const t=this._container;t&&t.pause()}resumeAnimation(){const t=this._container;t&&t.play()}}const ys=t=>{const{particlesJS:e,pJSDom:i}=(t=>{const e=(e,i)=>t.load(e,i);return e.load=(e,i,s)=>{t.loadJSON(e,i).then((t=>{t&&s(t)})).catch((()=>{s(void 0)}))},e.setOnClickHandler=e=>{t.setOnClickHandler(e)},{particlesJS:e,pJSDom:t.dom()}})(t);return window.particlesJS=e,window.pJSDom=i,window.Particles=ms,{particlesJS:e,pJSDom:i,Particles:ms}};function gs(t,e,i,s,o,n){!function(t,e){const i=t.options,s=i.move.path;if(!s.enable)return;if(t.lastPathTime<=t.pathDelay)return void(t.lastPathTime+=e.value);const o=t.pathGenerator?.generate(t,e);o&&t.velocity.addTo(o);s.clamp&&(t.velocity.x=k(t.velocity.x,-1,1),t.velocity.y=k(t.velocity.y,-1,1));t.lastPathTime-=t.pathDelay}(t,n);const a=t.gravity,r=a?.enable&&a.inverse?-1:1;o&&i&&(t.velocity.x+=o*n.factor/(60*i)),a?.enable&&i&&(t.velocity.y+=r*(a.acceleration*n.factor)/(60*i));const c=t.moveDecay;t.velocity.multTo(c);const l=t.velocity.mult(i);a?.enable&&s>0&&(!a.inverse&&l.y>=0&&l.y>=s||a.inverse&&l.y<=0&&l.y<=-s)&&(l.y=r*s,i&&(t.velocity.y=l.y/i));const h=t.options.zIndex,d=(1-t.zIndexFactor)**h.velocityRate;l.multTo(d);const{position:u}=t;u.addTo(l),e.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}class bs{constructor(){this._initSpin=t=>{const e=t.container,i=t.options.move.spin;if(!i.enable)return;const s=i.position??{x:50,y:50},o={x:s.x/100*e.canvas.size.width,y:s.y/100*e.canvas.size.height},n=D(t.getPosition(),o),a=P(i.acceleration);t.retina.spinAcceleration=a*e.retina.pixelRatio,t.spin={center:o,direction:t.velocity.x>=0?"clockwise":"counter-clockwise",angle:t.velocity.angle,radius:n,acceleration:t.retina.spinAcceleration}}}init(t){const e=t.options.move.gravity;t.gravity={enable:e.enable,acceleration:P(e.acceleration),inverse:e.inverse},this._initSpin(t)}isEnabled(t){return!t.destroyed&&t.options.move.enable}move(t,e){const i=t.options,s=i.move;if(!s.enable)return;const o=t.container,n=o.retina.pixelRatio,a=function(t){return t.slow.inRange?t.slow.factor:1}(t),r=(t.retina.moveSpeed??=P(s.speed)*n)*o.retina.reduceFactor,c=t.retina.moveDrift??=P(t.options.move.drift)*n,l=S(i.size.value)*n,h=r*(s.size?t.getRadius()/l:1)*a*(e.factor||1)/2,d=t.retina.maxSpeed??o.retina.maxSpeed;s.spin.enable?function(t,e){const i=t.container;if(!t.spin)return;const s={x:"clockwise"===t.spin.direction?Math.cos:Math.sin,y:"clockwise"===t.spin.direction?Math.sin:Math.cos};t.position.x=t.spin.center.x+t.spin.radius*s.x(t.spin.angle),t.position.y=t.spin.center.y+t.spin.radius*s.y(t.spin.angle),t.spin.radius+=t.spin.acceleration;const o=Math.max(i.canvas.size.width,i.canvas.size.height);t.spin.radius>o/2?(t.spin.radius=o/2,t.spin.acceleration*=-1):t.spin.radius<0&&(t.spin.radius=0,t.spin.acceleration*=-1),t.spin.angle+=e/100*(1-t.spin.radius/o)}(t,h):gs(t,s,h,d,c,e),function(t){const e=t.initialPosition,{dx:i,dy:s}=R(e,t.position),o=Math.abs(i),n=Math.abs(s),{maxDistance:a}=t.retina,r=a.horizontal,c=a.vertical;if(r||c)if((r&&o>=r||c&&n>=c)&&!t.misplaced)t.misplaced=!!r&&o>r||!!c&&n>c,r&&(t.velocity.x=t.velocity.y/2-t.velocity.x),c&&(t.velocity.y=t.velocity.x/2-t.velocity.y);else if((!r||oe.x&&s.x>0)&&(s.x*=-_()),c&&(i.ye.y&&s.y>0)&&(s.y*=-_())}}(t)}}class ws{draw(t,e,i){e.circleRange||(e.circleRange={min:0,max:2*Math.PI});const s=e.circleRange;t.arc(0,0,i,s.min,s.max,!1)}getSidesCount(){return 12}particleInit(t,e){const i=e.shapeData,s=i?.angle??{max:360,min:0};e.circleRange=_t(s)?{min:s.min*Math.PI/180,max:s.max*Math.PI/180}:{min:0,max:s*Math.PI/180}}}function xs(t,e,i,s,o){if(!e||!i.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0))return;if(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=t.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0))return;const n=M(i.offset),a=(e.velocity??0)*t.factor+3.6*n,r=e.decay??1;o&&"increasing"!==e.status?(e.value-=a,e.value<0&&(e.loops||(e.loops=0),e.loops++,e.status="increasing",e.value+=e.value)):(e.value+=a,e.value>s&&(e.loops||(e.loops=0),e.loops++,o&&(e.status="decreasing",e.value-=e.value%s))),e.velocity&&1!==r&&(e.velocity*=r),e.value>s&&(e.value%=s)}class _s{constructor(t){this.container=t}init(t){const e=Wt(t.options.color,t.id,t.options.reduceDuplicates);e&&(t.color=ie(e,t.options.color.animation,this.container.retina.reduceFactor))}isEnabled(t){const{h:e,s:i,l:s}=t.options.color.animation,{color:o}=t;return!t.destroyed&&!t.spawning&&(void 0!==o?.h.value&&e.enable||void 0!==o?.s.value&&i.enable||void 0!==o?.l.value&&s.enable)}update(t,e){!function(t,e){const{h:i,s,l:o}=t.options.color.animation,{color:n}=t;if(!n)return;const{h:a,s:r,l:c}=n;a&&xs(e,a,i,360,!1),r&&xs(e,r,s,100,!0),c&&xs(e,c,o,100,!0)}(t,e)}}class ks{constructor(t){this.container=t}init(t){const e=t.options.opacity;t.opacity=ft(e,1);const i=e.animation;i.enable&&(t.opacity.velocity=P(i.speed)/100*this.container.retina.reduceFactor,i.sync||(t.opacity.velocity*=_()))}isEnabled(t){return!t.destroyed&&!t.spawning&&!!t.opacity&&t.opacity.enable&&((t.opacity.maxLoops??0)<=0||(t.opacity.maxLoops??0)>0&&(t.opacity.loops??0)<(t.opacity.maxLoops??0))}reset(t){t.opacity&&(t.opacity.time=0,t.opacity.loops=0)}update(t,e){this.isEnabled(t)&&function(t,e){const i=t.opacity;if(t.destroyed||!i?.enable||(i.maxLoops??0)>0&&(i.loops??0)>(i.maxLoops??0))return;const s=i.min,o=i.max,n=i.decay??1;if(i.time||(i.time=0),(i.delayTime??0)>0&&i.time<(i.delayTime??0)&&(i.time+=e.value),!((i.delayTime??0)>0&&i.time<(i.delayTime??0))){switch(i.status){case"increasing":i.value>=o?(i.status="decreasing",i.loops||(i.loops=0),i.loops++):i.value+=(i.velocity??0)*e.factor;break;case"decreasing":i.value<=s?(i.status="increasing",i.loops||(i.loops=0),i.loops++):i.value-=(i.velocity??0)*e.factor}i.velocity&&1!==i.decay&&(i.velocity*=n),function(t,e,i,s){switch(t.options.opacity.animation.destroy){case"max":e>=s&&t.destroy();break;case"min":e<=i&&t.destroy()}}(t,i.value,s,o),t.destroyed||(i.value=k(i.value,s,o))}}(t,e)}}class zs{constructor(t){this.container=t,this.modes=["bounce","bounce-vertical","bounce-horizontal","bounceVertical","bounceHorizontal","split"]}update(t,e,i,s){if(!this.modes.includes(s))return;const o=this.container;let n=!1;for(const[,s]of o.plugins)if(void 0!==s.particleBounce&&(n=s.particleBounce(t,i,e)),n)break;if(n)return;const a=t.getPosition(),r=t.offset,c=t.getRadius(),l=it(a,c),h=o.canvas.size;!function(t){if("bounce"!==t.outMode&&"bounce-horizontal"!==t.outMode&&"bounceHorizontal"!==t.outMode&&"split"!==t.outMode||"left"!==t.direction&&"right"!==t.direction)return;t.bounds.right<0&&"left"===t.direction?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&"right"===t.direction&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);const e=t.particle.velocity.x;let i=!1;if("right"===t.direction&&t.bounds.right>=t.canvasSize.width&&e>0||"left"===t.direction&&t.bounds.left<=0&&e<0){const e=T(t.particle.options.bounce.horizontal);t.particle.velocity.x*=-e,i=!0}if(!i)return;const s=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width&&"right"===t.direction?t.particle.position.x=t.canvasSize.width-s:t.bounds.left<=0&&"left"===t.direction&&(t.particle.position.x=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:e,bounds:l,canvasSize:h,offset:r,size:c}),function(t){if("bounce"!==t.outMode&&"bounce-vertical"!==t.outMode&&"bounceVertical"!==t.outMode&&"split"!==t.outMode||"bottom"!==t.direction&&"top"!==t.direction)return;t.bounds.bottom<0&&"top"===t.direction?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&"bottom"===t.direction&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);const e=t.particle.velocity.y;let i=!1;if("bottom"===t.direction&&t.bounds.bottom>=t.canvasSize.height&&e>0||"top"===t.direction&&t.bounds.top<=0&&e<0){const e=T(t.particle.options.bounce.vertical);t.particle.velocity.y*=-e,i=!0}if(!i)return;const s=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height&&"bottom"===t.direction?t.particle.position.y=t.canvasSize.height-s:t.bounds.top<=0&&"top"===t.direction&&(t.particle.position.y=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:e,bounds:l,canvasSize:h,offset:r,size:c})}}class Ms{constructor(t){this.container=t,this.modes=["destroy"]}update(t,e,i,s){if(!this.modes.includes(s))return;const o=this.container;switch(t.outType){case"normal":case"outside":if(tt(t.position,o.canvas.size,m.origin,t.getRadius(),e))return;break;case"inside":{const{dx:e,dy:i}=R(t.position,t.moveCenter),{x:s,y:o}=t.velocity;if(s<0&&e>t.moveCenter.radius||o<0&&i>t.moveCenter.radius||s>=0&&e<-t.moveCenter.radius||o>=0&&i<-t.moveCenter.radius)return;break}}o.particles.remove(t,void 0,!0)}}class Ps{constructor(t){this.container=t,this.modes=["none"]}update(t,e,i,s){if(!this.modes.includes(s))return;if(t.options.move.distance.horizontal&&("left"===e||"right"===e)||t.options.move.distance.vertical&&("top"===e||"bottom"===e))return;const o=t.options.move.gravity,n=this.container,a=n.canvas.size,r=t.getRadius();if(o.enable){const i=t.position;(!o.inverse&&i.y>a.height+r&&"bottom"===e||o.inverse&&i.y<-r&&"top"===e)&&n.particles.remove(t)}else{if(t.velocity.y>0&&t.position.y<=a.height+r||t.velocity.y<0&&t.position.y>=-r||t.velocity.x>0&&t.position.x<=a.width+r||t.velocity.x<0&&t.position.x>=-r)return;tt(t.position,n.canvas.size,m.origin,r,e)||n.particles.remove(t)}}}class Cs{constructor(t){this.container=t,this.modes=["out"]}update(t,e,i,s){if(!this.modes.includes(s))return;const o=this.container;switch(t.outType){case"inside":{const{x:e,y:i}=t.velocity,s=m.origin;s.length=t.moveCenter.radius,s.angle=t.velocity.angle+Math.PI,s.addTo(m.create(t.moveCenter));const{dx:n,dy:a}=R(t.position,s);if(e<=0&&n>=0||i<=0&&a>=0||e>=0&&n<=0||i>=0&&a<=0)return;t.position.x=Math.floor(M({min:0,max:o.canvas.size.width})),t.position.y=Math.floor(M({min:0,max:o.canvas.size.height}));const{dx:r,dy:c}=R(t.position,t.moveCenter);t.direction=Math.atan2(-c,-r),t.velocity.angle=t.direction;break}default:if(tt(t.position,o.canvas.size,m.origin,t.getRadius(),e))return;switch(t.outType){case"outside":{t.position.x=Math.floor(M({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.x,t.position.y=Math.floor(M({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.y;const{dx:e,dy:i}=R(t.position,t.moveCenter);t.moveCenter.radius&&(t.direction=Math.atan2(i,e),t.velocity.angle=t.direction);break}case"normal":{const i=t.options.move.warp,s=o.canvas.size,n={bottom:s.height+t.getRadius()+t.offset.y,left:-t.getRadius()-t.offset.x,right:s.width+t.getRadius()+t.offset.x,top:-t.getRadius()-t.offset.y},a=t.getRadius(),r=it(t.position,a);"right"===e&&r.left>s.width+t.offset.x?(t.position.x=n.left,t.initialPosition.x=t.position.x,i||(t.position.y=_()*s.height,t.initialPosition.y=t.position.y)):"left"===e&&r.right<-t.offset.x&&(t.position.x=n.right,t.initialPosition.x=t.position.x,i||(t.position.y=_()*s.height,t.initialPosition.y=t.position.y)),"bottom"===e&&r.top>s.height+t.offset.y?(i||(t.position.x=_()*s.width,t.initialPosition.x=t.position.x),t.position.y=n.top,t.initialPosition.y=t.position.y):"top"===e&&r.bottom<-t.offset.y&&(i||(t.position.x=_()*s.width,t.initialPosition.x=t.position.x),t.position.y=n.bottom,t.initialPosition.y=t.position.y);break}}}}}class Ss{constructor(t){this.container=t,this._updateOutMode=(t,e,i,s)=>{for(const o of this.updaters)o.update(t,s,e,i)},this.updaters=[new zs(t),new Ms(t),new Cs(t),new Ps(t)]}init(){}isEnabled(t){return!t.destroyed&&!t.spawning}update(t,e){const i=t.options.move.outModes;this._updateOutMode(t,e,i.bottom??i.default,"bottom"),this._updateOutMode(t,e,i.left??i.default,"left"),this._updateOutMode(t,e,i.right??i.default,"right"),this._updateOutMode(t,e,i.top??i.default,"top")}}class Os{init(t){const e=t.container,i=t.options.size.animation;i.enable&&(t.size.velocity=(t.retina.sizeAnimationSpeed??e.retina.sizeAnimationSpeed)/100*e.retina.reduceFactor,i.sync||(t.size.velocity*=_()))}isEnabled(t){return!t.destroyed&&!t.spawning&&t.size.enable&&((t.size.maxLoops??0)<=0||(t.size.maxLoops??0)>0&&(t.size.loops??0)<(t.size.maxLoops??0))}reset(t){t.size.loops=0}update(t,e){this.isEnabled(t)&&function(t,e){const i=t.size;if(t.destroyed||!i||!i.enable||(i.maxLoops??0)>0&&(i.loops??0)>(i.maxLoops??0))return;const s=(i.velocity??0)*e.factor,o=i.min,n=i.max,a=i.decay??1;if(i.time||(i.time=0),(i.delayTime??0)>0&&i.time<(i.delayTime??0)&&(i.time+=e.value),!((i.delayTime??0)>0&&i.time<(i.delayTime??0))){switch(i.status){case"increasing":i.value>=n?(i.status="decreasing",i.loops||(i.loops=0),i.loops++):i.value+=s;break;case"decreasing":i.value<=o?(i.status="increasing",i.loops||(i.loops=0),i.loops++):i.value-=s}i.velocity&&1!==a&&(i.velocity*=a),function(t,e,i,s){switch(t.options.size.animation.destroy){case"max":e>=s&&t.destroy();break;case"min":e<=i&&t.destroy()}}(t,i.value,o,n),t.destroyed||(i.value=k(i.value,o,n))}}(t,e)}}async function Ts(t,e=!0){await async function(t,e=!0){await t.addMover("base",(()=>new bs),e)}(t,!1),await async function(t,e=!0){await t.addShape("circle",new ws,e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("color",(t=>new _s(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("opacity",(t=>new ks(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("outModes",(t=>new Ss(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("size",(()=>new Os),e)}(t,!1),await t.refresh(e)}class Rs{constructor(){this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}class Ds extends li{constructor(t,e){super(e),this._clickAttract=()=>{const t=this.container;t.attract||(t.attract={particles:[]});const{attract:e}=t;if(e.finish||(e.count||(e.count=0),e.count++,e.count===t.particles.count&&(e.finish=!0)),e.clicking){const e=t.interactivity.mouse.clickPosition,i=t.retina.attractModeDistance;if(!i||i<0||!e)return;this._processAttract(e,i,new Ki(e.x,e.y,i))}else!1===e.clicking&&(e.particles=[])},this._hoverAttract=()=>{const t=this.container,e=t.interactivity.mouse.position,i=t.retina.attractModeDistance;!i||i<0||!e||this._processAttract(e,i,new Ki(e.x,e.y,i))},this._processAttract=(t,e,i)=>{const s=this.container,o=s.actualOptions.interactivity.modes.attract;if(!o)return;const n=s.particles.quadTree.query(i,(t=>this.isEnabled(t)));for(const i of n){const{dx:s,dy:n,distance:a}=R(i.position,t),r=o.speed*o.factor,c=k(w(o.easing)(1-a/e)*r,0,o.maxSpeed),l=m.create(0===a?r:s/a*c,0===a?r:n/a*c);i.position.subFrom(l)}},this._engine=t,e.attract||(e.attract={particles:[]}),this.handleClickMode=t=>{const i=this.container.actualOptions.interactivity.modes.attract;if(i&&"attract"===t){e.attract||(e.attract={particles:[]}),e.attract.clicking=!0,e.attract.count=0;for(const t of e.attract.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);e.attract.particles=[],e.attract.finish=!1,setTimeout((()=>{e.destroyed||(e.attract||(e.attract={particles:[]}),e.attract.clicking=!1)}),1e3*i.duration)}}}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.attract;e&&(t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const t=this.container,e=t.actualOptions,i=t.interactivity.status===r,s=e.interactivity.events,o=s.onHover.enable,n=s.onHover.mode,a=s.onClick.enable,c=s.onClick.mode;i&&o&&J("attract",n)?this._hoverAttract():a&&J("attract",c)&&this._clickAttract()}isEnabled(t){const e=this.container,i=e.actualOptions,s=e.interactivity.mouse,o=(t?.interactivity??i.interactivity).events;if(!(s.position&&o.onHover.enable||s.clickPosition&&o.onClick.enable))return!1;const n=o.onHover.mode,a=o.onClick.mode;return J("attract",n)||J("attract",a)}loadModeOptions(t,...e){t.attract||(t.attract=new Rs);for(const i of e)t.attract.load(i?.attract)}reset(){}}class Es{constructor(){this.distance=200}load(t){t&&void 0!==t.distance&&(this.distance=t.distance)}}class Is extends li{constructor(t){super(t),this._processBounce=(t,e,i)=>{const s=this.container.particles.quadTree.query(i,(t=>this.isEnabled(t)));for(const o of s)i instanceof Ki?lt(ct(o),{position:t,radius:e,mass:e**2*Math.PI/2,velocity:m.origin,factor:m.origin}):i instanceof Qi&&ht(o,it(t,e))},this._processMouseBounce=()=>{const t=this.container,e=10*t.retina.pixelRatio,i=t.interactivity.mouse.position,s=t.retina.bounceModeDistance;!s||s<0||!i||this._processBounce(i,s,new Ki(i.x,i.y,s+e))},this._singleSelectorBounce=(t,e)=>{const i=this.container,s=document.querySelectorAll(t);s.length&&s.forEach((t=>{const s=t,o=i.retina.pixelRatio,n={x:(s.offsetLeft+s.offsetWidth/2)*o,y:(s.offsetTop+s.offsetHeight/2)*o},a=s.offsetWidth/2*o,r=10*o,c="circle"===e.type?new Ki(n.x,n.y,a+r):new Qi(s.offsetLeft*o-r,s.offsetTop*o-r,s.offsetWidth*o+2*r,s.offsetHeight*o+2*r);this._processBounce(n,a,c)}))}}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.bounce;e&&(t.retina.bounceModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const t=this.container,e=t.actualOptions.interactivity.events,i=t.interactivity.status===r,s=e.onHover.enable,o=e.onHover.mode,n=e.onDiv;i&&s&&J("bounce",o)?this._processMouseBounce():nt("bounce",n,((t,e)=>this._singleSelectorBounce(t,e)))}isEnabled(t){const e=this.container,i=e.actualOptions,s=e.interactivity.mouse,o=(t?.interactivity??i.interactivity).events,n=o.onDiv;return s.position&&o.onHover.enable&&J("bounce",o.onHover.mode)||ot("bounce",n)}loadModeOptions(t,...e){t.bounce||(t.bounce=new Es);for(const i of e)t.bounce.load(i?.bounce)}reset(){}}class Ls{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(t){if(t){if(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.mix&&(this.mix=t.mix),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.color){const e=kt(this.color)?void 0:this.color;this.color=dt(t.color,(t=>zt.create(e,t)))}void 0!==t.size&&(this.size=t.size)}}}class As extends Ls{constructor(){super(),this.selectors=[]}get ids(){return dt(this.selectors,(t=>t.replace("#","")))}set ids(t){this.selectors=dt(t,(t=>`#${t}`))}load(t){super.load(t),t&&(void 0!==t.ids&&(this.ids=t.ids),void 0!==t.selectors&&(this.selectors=t.selectors))}}class Fs extends Ls{load(t){super.load(t),t&&(this.divs=dt(t.divs,(t=>{const e=new As;return e.load(t),e})))}}function Bs(t,e,i,s){if(e>=i){return k(t+(e-i)*s,t,e)}if(e{const t=this.container,e=t.actualOptions,i=t.interactivity.mouse.clickPosition,s=e.interactivity.modes.bubble;if(!s||!i)return;t.bubble||(t.bubble={});const o=t.retina.bubbleModeDistance;if(!o||o<0)return;const n=t.particles.quadTree.queryCircle(i,o,(t=>this.isEnabled(t))),{bubble:a}=t;for(const e of n){if(!a.clicking)continue;e.bubble.inRange=!a.durationEnd;const n=D(e.getPosition(),i),r=((new Date).getTime()-(t.interactivity.mouse.clickTime||0))/1e3;r>s.duration&&(a.durationEnd=!0),r>2*s.duration&&(a.clicking=!1,a.durationEnd=!1);const c={bubbleObj:{optValue:t.retina.bubbleModeSize,value:e.bubble.radius},particlesObj:{optValue:S(e.options.size.value)*t.retina.pixelRatio,value:e.size.value},type:"size"};this._process(e,n,r,c);const l={bubbleObj:{optValue:s.opacity,value:e.bubble.opacity},particlesObj:{optValue:S(e.options.opacity.value),value:e.opacity?.value??1},type:"opacity"};this._process(e,n,r,l),!a.durationEnd&&n<=o?this._hoverBubbleColor(e,n):delete e.bubble.color}},this._hoverBubble=()=>{const t=this.container,e=t.interactivity.mouse.position,i=t.retina.bubbleModeDistance;if(!i||i<0||void 0===e)return;const s=t.particles.quadTree.queryCircle(e,i,(t=>this.isEnabled(t)));for(const o of s){o.bubble.inRange=!0;const s=D(o.getPosition(),e),a=1-s/i;s<=i?a>=0&&t.interactivity.status===r&&(this._hoverBubbleSize(o,a),this._hoverBubbleOpacity(o,a),this._hoverBubbleColor(o,a)):this.reset(o),t.interactivity.status===n&&this.reset(o)}},this._hoverBubbleColor=(t,e,i)=>{const s=this.container.actualOptions,o=i??s.interactivity.modes.bubble;if(o){if(!t.bubble.finalColor){const e=o.color;if(!e)return;const i=ut(e);t.bubble.finalColor=Wt(i)}if(t.bubble.finalColor)if(o.mix){t.bubble.color=void 0;const i=t.getFillColor();t.bubble.color=i?$t(Qt(i,t.bubble.finalColor,1-e,e)):t.bubble.finalColor}else t.bubble.color=t.bubble.finalColor}},this._hoverBubbleOpacity=(t,e,i)=>{const s=this.container.actualOptions,o=i?.opacity??s.interactivity.modes.bubble?.opacity;if(!o)return;const n=t.options.opacity.value,a=Bs(t.opacity?.value??1,o,S(n),e);void 0!==a&&(t.bubble.opacity=a)},this._hoverBubbleSize=(t,e,i)=>{const s=this.container,o=i?.size?i.size*s.retina.pixelRatio:s.retina.bubbleModeSize;if(void 0===o)return;const n=S(t.options.size.value)*s.retina.pixelRatio,a=Bs(t.size.value,o,n,e);void 0!==a&&(t.bubble.radius=a)},this._process=(t,e,i,s)=>{const o=this.container,n=s.bubbleObj.optValue,a=o.actualOptions.interactivity.modes.bubble;if(!a||void 0===n)return;const r=a.duration,c=o.retina.bubbleModeDistance,l=s.particlesObj.optValue,h=s.bubbleObj.value,d=s.particlesObj.value||0,u=s.type;if(c&&!(c<0)&&n!==l)if(o.bubble||(o.bubble={}),o.bubble.durationEnd)h&&("size"===u&&delete t.bubble.radius,"opacity"===u&&delete t.bubble.opacity);else if(e<=c){if((h??d)!==n){const e=d-i*(d-n)/r;"size"===u&&(t.bubble.radius=e),"opacity"===u&&(t.bubble.opacity=e)}}else"size"===u&&delete t.bubble.radius,"opacity"===u&&delete t.bubble.opacity},this._singleSelectorHover=(t,e,i)=>{const s=this.container,o=document.querySelectorAll(e),n=s.actualOptions.interactivity.modes.bubble;n&&o.length&&o.forEach((e=>{const o=e,a=s.retina.pixelRatio,r={x:(o.offsetLeft+o.offsetWidth/2)*a,y:(o.offsetTop+o.offsetHeight/2)*a},c=o.offsetWidth/2*a,l="circle"===i.type?new Ki(r.x,r.y,c):new Qi(o.offsetLeft*a,o.offsetTop*a,o.offsetWidth*a,o.offsetHeight*a),h=s.particles.quadTree.query(l,(t=>this.isEnabled(t)));for(const e of h){if(!l.contains(e.getPosition()))continue;e.bubble.inRange=!0;const i=rt(n.divs,o);e.bubble.div&&e.bubble.div===o||(this.clear(e,t,!0),e.bubble.div=o),this._hoverBubbleSize(e,1,i),this._hoverBubbleOpacity(e,1,i),this._hoverBubbleColor(e,1,i)}}))},t.bubble||(t.bubble={}),this.handleClickMode=e=>{"bubble"===e&&(t.bubble||(t.bubble={}),t.bubble.clicking=!0)}}clear(t,e,i){t.bubble.inRange&&!i||(delete t.bubble.div,delete t.bubble.opacity,delete t.bubble.radius,delete t.bubble.color)}init(){const t=this.container,e=t.actualOptions.interactivity.modes.bubble;e&&(t.retina.bubbleModeDistance=e.distance*t.retina.pixelRatio,void 0!==e.size&&(t.retina.bubbleModeSize=e.size*t.retina.pixelRatio))}async interact(t){const e=this.container.actualOptions.interactivity.events,i=e.onHover,s=e.onClick,o=i.enable,n=i.mode,a=s.enable,r=s.mode,c=e.onDiv;o&&J("bubble",n)?this._hoverBubble():a&&J("bubble",r)?this._clickBubble():nt("bubble",c,((e,i)=>this._singleSelectorHover(t,e,i)))}isEnabled(t){const e=this.container,i=e.actualOptions,s=e.interactivity.mouse,o=(t?.interactivity??i.interactivity).events,{onClick:n,onDiv:a,onHover:r}=o,c=ot("bubble",a);return!!(c||r.enable&&s.position||n.enable&&s.clickPosition)&&(J("bubble",r.mode)||J("bubble",n.mode)||c)}loadModeOptions(t,...e){t.bubble||(t.bubble=new Fs);for(const i of e)t.bubble.load(i?.bubble)}reset(t){t.bubble.inRange=!1}}class Vs{constructor(){this.opacity=.5}load(t){t&&void 0!==t.opacity&&(this.opacity=t.opacity)}}class Hs{constructor(){this.distance=80,this.links=new Vs,this.radius=60}get lineLinked(){return this.links}set lineLinked(t){this.links=t}get line_linked(){return this.links}set line_linked(t){this.links=t}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links??t.lineLinked??t.line_linked),void 0!==t.radius&&(this.radius=t.radius))}}function Us(t,e,i,s){const o=t.actualOptions.interactivity.modes.connect;if(o)return function(t,e,i,s){const o=Math.floor(i.getRadius()/e.getRadius()),n=e.getFillColor(),a=i.getFillColor();if(!n||!a)return;const r=e.getPosition(),c=i.getPosition(),l=Qt(n,a,e.getRadius(),i.getRadius()),h=t.createLinearGradient(r.x,r.y,c.x,c.y);return h.addColorStop(0,Zt(n,s)),h.addColorStop(o>1?1:o,Jt(l,s)),h.addColorStop(1,Zt(a,s)),h}(e,i,s,o.links.opacity)}function Ws(t,e,i){t.canvas.draw((s=>{const o=Us(t,s,e,i);if(!o)return;const n=e.getPosition(),a=i.getPosition();!function(t,e,i,s,o){vi(t,s,o),t.lineWidth=e,t.strokeStyle=i,t.stroke()}(s,e.retina.linksWidth??0,o,n,a)}))}class $s extends li{constructor(t){super(t)}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.connect;e&&(t.retina.connectModeDistance=e.distance*t.retina.pixelRatio,t.retina.connectModeRadius=e.radius*t.retina.pixelRatio)}async interact(){const t=this.container;if(t.actualOptions.interactivity.events.onHover.enable&&"pointermove"===t.interactivity.status){const e=t.interactivity.mouse.position;if(!t.retina.connectModeDistance||t.retina.connectModeDistance<0||!t.retina.connectModeRadius||t.retina.connectModeRadius<0||!e)return;const i=Math.abs(t.retina.connectModeRadius),s=t.particles.quadTree.queryCircle(e,i,(t=>this.isEnabled(t)));let o=0;for(const e of s){const i=e.getPosition();for(const n of s.slice(o+1)){const s=n.getPosition(),o=Math.abs(t.retina.connectModeDistance),a=Math.abs(i.x-s.x),r=Math.abs(i.y-s.y);a{const n=e.getPosition();!function(t,e,i,s,o,n){vi(t,i,s),t.strokeStyle=Jt(o,n),t.lineWidth=e,t.stroke()}(t,e.retina.linksWidth??0,n,o,i,s)}))}class Xs extends li{constructor(t){super(t)}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.grab;e&&(t.retina.grabModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const t=this.container,e=t.actualOptions.interactivity;if(!e.modes.grab||!e.events.onHover.enable||t.interactivity.status!==r)return;const i=t.interactivity.mouse.position;if(!i)return;const s=t.retina.grabModeDistance;if(!s||s<0)return;const o=t.particles.quadTree.queryCircle(i,s,(t=>this.isEnabled(t)));for(const n of o){const o=D(n.getPosition(),i);if(o>s)continue;const a=e.modes.grab.links,r=a.opacity,c=r-o*r/s;if(c<=0)continue;const l=a.color??n.options.links?.color;if(!t.particles.grabLineColor&&l){const i=e.modes.grab.links;t.particles.grabLineColor=te(l,i.blink,i.consent)}const h=Kt(n,void 0,t.particles.grabLineColor);h&&Ns(t,n,h,c,i)}}isEnabled(t){const e=this.container,i=e.interactivity.mouse,s=(t?.interactivity??e.actualOptions.interactivity).events;return s.onHover.enable&&!!i.position&&J("grab",s.onHover.mode)}loadModeOptions(t,...e){t.grab||(t.grab=new js);for(const i of e)t.grab.load(i?.grab)}reset(){}}class Ys extends li{constructor(t){super(t),this.handleClickMode=t=>{if("pause"!==t)return;const e=this.container;e.getAnimationStatus()?e.pause():e.play()}}clear(){}init(){}async interact(){}isEnabled(){return!0}reset(){}}class Js{constructor(){this.default=!0,this.groups=[],this.quantity=4}get particles_nb(){return this.quantity}set particles_nb(t){this.quantity=O(t)}load(t){if(!t)return;void 0!==t.default&&(this.default=t.default),void 0!==t.groups&&(this.groups=t.groups.map((t=>t))),this.groups.length||(this.default=!0);const e=t.quantity??t.particles_nb;void 0!==e&&(this.quantity=O(e))}}class Zs extends li{constructor(t){super(t),this.handleClickMode=t=>{if("push"!==t)return;const e=this.container,i=e.actualOptions.interactivity.modes.push;if(!i)return;const s=P(i.quantity);if(s<=0)return;const o=K([void 0,...i.groups]),n=void 0!==o?e.actualOptions.particles.groups[o]:void 0;e.particles.push(s,e.interactivity.mouse,n,o)}}clear(){}init(){}async interact(){}isEnabled(){return!0}loadModeOptions(t,...e){t.push||(t.push=new Js);for(const i of e)t.push.load(i?.push)}reset(){}}class Qs{constructor(){this.quantity=2}get particles_nb(){return this.quantity}set particles_nb(t){this.quantity=O(t)}load(t){if(!t)return;const e=t.quantity??t.particles_nb;void 0!==e&&(this.quantity=O(e))}}class Ks extends li{constructor(t){super(t),this.handleClickMode=t=>{const e=this.container,i=e.actualOptions;if(!i.interactivity.modes.remove||"remove"!==t)return;const s=P(i.interactivity.modes.remove.quantity);e.particles.removeQuantity(s)}}clear(){}init(){}async interact(){}isEnabled(){return!0}loadModeOptions(t,...e){t.remove||(t.remove=new Qs);for(const i of e)t.remove.load(i?.remove)}reset(){}}class to{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing="ease-out-quad"}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed))}}class eo extends to{constructor(){super(),this.selectors=[]}get ids(){return dt(this.selectors,(t=>t.replace("#","")))}set ids(t){this.selectors=dt(t,(t=>`#${t}`))}load(t){super.load(t),t&&(void 0!==t.ids&&(this.ids=t.ids),void 0!==t.selectors&&(this.selectors=t.selectors))}}class io extends to{load(t){super.load(t),t&&(this.divs=dt(t.divs,(t=>{const e=new eo;return e.load(t),e})))}}class so extends li{constructor(t,e){super(e),this._clickRepulse=()=>{const t=this.container,e=t.actualOptions.interactivity.modes.repulse;if(!e)return;const i=t.repulse||{particles:[]};if(i.finish||(i.count||(i.count=0),i.count++,i.count===t.particles.count&&(i.finish=!0)),i.clicking){const s=t.retina.repulseModeDistance;if(!s||s<0)return;const o=Math.pow(s/6,3),n=t.interactivity.mouse.clickPosition;if(void 0===n)return;const a=new Ki(n.x,n.y,o),r=t.particles.quadTree.query(a,(t=>this.isEnabled(t)));for(const t of r){const{dx:s,dy:a,distance:r}=R(n,t.position),c=r**2,l=-o*e.speed/c;if(c<=o){i.particles.push(t);const e=m.create(s,a);e.length=l,t.velocity.setTo(e)}}}else if(!1===i.clicking){for(const t of i.particles)t.velocity.setTo(t.initialVelocity);i.particles=[]}},this._hoverRepulse=()=>{const t=this.container,e=t.interactivity.mouse.position,i=t.retina.repulseModeDistance;!i||i<0||!e||this._processRepulse(e,i,new Ki(e.x,e.y,i))},this._processRepulse=(t,e,i,s)=>{const o=this.container,n=o.particles.quadTree.query(i,(t=>this.isEnabled(t))),a=o.actualOptions.interactivity.modes.repulse;if(a)for(const i of n){const{dx:o,dy:n,distance:r}=R(i.position,t),c=(s?.speed??a.speed)*a.factor,l=k(w(a.easing)(1-r/e)*c,0,a.maxSpeed),h=m.create(0===r?c:o/r*l,0===r?c:n/r*l);i.position.addTo(h)}},this._singleSelectorRepulse=(t,e)=>{const i=this.container,s=i.actualOptions.interactivity.modes.repulse;if(!s)return;const o=document.querySelectorAll(t);o.length&&o.forEach((t=>{const o=t,n=i.retina.pixelRatio,a={x:(o.offsetLeft+o.offsetWidth/2)*n,y:(o.offsetTop+o.offsetHeight/2)*n},r=o.offsetWidth/2*n,c="circle"===e.type?new Ki(a.x,a.y,r):new Qi(o.offsetLeft*n,o.offsetTop*n,o.offsetWidth*n,o.offsetHeight*n),l=rt(s.divs,o);this._processRepulse(a,r,c,l)}))},this._engine=t,e.repulse||(e.repulse={particles:[]}),this.handleClickMode=t=>{const i=this.container.actualOptions.interactivity.modes.repulse;if(!i||"repulse"!==t)return;e.repulse||(e.repulse={particles:[]});const s=e.repulse;s.clicking=!0,s.count=0;for(const t of e.repulse.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);s.particles=[],s.finish=!1,setTimeout((()=>{e.destroyed||(s.clicking=!1)}),1e3*i.duration)}}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.repulse;e&&(t.retina.repulseModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const t=this.container,e=t.actualOptions,i=t.interactivity.status===r,s=e.interactivity.events,o=s.onHover,n=o.enable,a=o.mode,c=s.onClick,l=c.enable,h=c.mode,d=s.onDiv;i&&n&&J("repulse",a)?this._hoverRepulse():l&&J("repulse",h)?this._clickRepulse():nt("repulse",d,((t,e)=>this._singleSelectorRepulse(t,e)))}isEnabled(t){const e=this.container,i=e.actualOptions,s=e.interactivity.mouse,o=(t?.interactivity??i.interactivity).events,n=o.onDiv,a=o.onHover,r=o.onClick,c=ot("repulse",n);if(!(c||a.enable&&s.position||r.enable&&s.clickPosition))return!1;const l=a.mode,h=r.mode;return J("repulse",l)||J("repulse",h)||c}loadModeOptions(t,...e){t.repulse||(t.repulse=new io);for(const i of e)t.repulse.load(i?.repulse)}reset(){}}class oo{constructor(){this.factor=3,this.radius=200}load(t){t&&(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.radius&&(this.radius=t.radius))}}class no extends li{constructor(t){super(t)}clear(t,e,i){t.slow.inRange&&!i||(t.slow.factor=1)}init(){const t=this.container,e=t.actualOptions.interactivity.modes.slow;e&&(t.retina.slowModeRadius=e.radius*t.retina.pixelRatio)}async interact(){}isEnabled(t){const e=this.container,i=e.interactivity.mouse,s=(t?.interactivity??e.actualOptions.interactivity).events;return s.onHover.enable&&!!i.position&&J("slow",s.onHover.mode)}loadModeOptions(t,...e){t.slow||(t.slow=new oo);for(const i of e)t.slow.load(i?.slow)}reset(t){t.slow.inRange=!1;const e=this.container,i=e.actualOptions,s=e.interactivity.mouse.position,o=e.retina.slowModeRadius,n=i.interactivity.modes.slow;if(!n||!o||o<0||!s)return;const a=D(s,t.getPosition()),r=a/o,c=n.factor,{slow:l}=t;a>o||(l.inRange=!0,l.factor=r/c)}}const ao=[0,4,2,1],ro=[8,8,4,2];class co{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce(((t,e)=>t+String.fromCharCode(e)),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let i=e;--i>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e);return t}readSubBlocksBin(){let t=0,e=0;for(let i=0;0!==(t=this.data[this.pos+i]);i+=t+1)e+=t;const i=new Uint8Array(e);for(let e=0;0!==(t=this.data[this.pos++]);)for(let s=t;--s>=0;i[e++]=this.data[this.pos++]);return i}skipSubBlocks(){for(;0!==this.data[this.pos];this.pos+=this.data[this.pos]+1);this.pos++}}function lo(t,e){const i=[];for(let s=0;s>>3;const h=1<<1+(7&r);c&&(a.localColorTable=lo(t,h));const d=t=>{const{r:s,g:n,b:r}=(c?a.localColorTable:e.globalColorTable)[t];return{r:s,g:n,b:r,a:t===o(null)?i?~~((s+n+r)/3):0:255}},u=(()=>{try{return new ImageData(a.width,a.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const p=t.nextByte(),f=t.readSubBlocksBin(),v=1<{const i=t>>>3,s=7&t;return(f[i]+(f[i+1]<<8)+(f[i+2]<<16)&(1<>>s};if(l){for(let i=0,o=p+1,r=0,c=[[0]],l=0;l<4;l++){if(ao[l]=c.length?c.push(c[s].concat(c[s][0])):s!==v&&c.push(c[s].concat(c[i][0]));for(let s=0;s=a.height))break}n?.(t.pos/(t.data.length-1),s(!1)+1,u,{x:a.left,y:a.top},{width:e.width,height:e.height})}a.image=u,a.bitmap=await createImageBitmap(u)}else{for(let t=0,e=p+1,i=0,s=[[0]],o=-4;;){const n=t;if(t=m(i,e),i+=e,t===v){e=p+1,s.length=v+2;for(let t=0;t=s.length?s.push(s[n].concat(s[n][0])):n!==v&&s.push(s[n].concat(s[t][0]));for(let e=0;e=1<>>5,o.disposalMethod=(28&n)>>>2,o.userInputDelayFlag=2==(2&n);const a=1==(1&n);o.delayTime=10*t.nextTwoBytes();const r=t.nextByte();a&&s(r),t.pos++;break}case 255:{t.pos++;const i={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(i);break}case 254:e.comments.push([i(!1),t.readSubBlocks()]);break;case 1:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[i(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,s,o);break;default:throw new EvalError("undefined block found")}return!1}const uo=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function po(t){return new Promise((e=>{t.loading=!0;const i=new Image;t.element=i,i.addEventListener("load",(()=>{t.loading=!1,e()})),i.addEventListener("error",(()=>{t.element=void 0,t.error=!0,t.loading=!1,$().error(`${f} loading image: ${t.source}`),e()})),i.src=t.source}))}async function fo(t){if("gif"===t.type){t.loading=!0;try{t.gifData=await async function(t,e,i){i||(i=!1);const s=await fetch(t);if(!s.ok&&404===s.status)throw new EvalError("file not found");const o=await s.arrayBuffer(),n={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},a=new co(new Uint8ClampedArray(o));if("GIF89a"!==a.getString(6))throw new Error("not a supported GIF file");n.width=a.nextTwoBytes(),n.height=a.nextTwoBytes();const r=a.nextByte(),c=128==(128&r);n.colorRes=(112&r)>>>4,n.sortFlag=8==(8&r);const l=1<<1+(7&r),h=a.nextByte();n.pixelAspectRatio=a.nextByte(),0!==n.pixelAspectRatio&&(n.pixelAspectRatio=(n.pixelAspectRatio+15)/64),c&&(n.globalColorTable=lo(a,l));const d=(()=>{try{return new ImageData(n.width,n.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==d)throw new Error("GIF frame size is to large");const{r:u,g:p,b:f}=n.globalColorTable[h];d.data.set(c?[u,p,f,255]:[0,0,0,0]);for(let t=4;t(t&&(m=!0),v),b=t=>(null!=t&&(y=t),y);try{do{m&&(n.frames.push({left:0,top:0,width:0,height:0,disposalMethod:0,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),v++,y=-1,m=!1)}while(!await ho(a,n,i,g,b,e));n.frames.length--;for(const t of n.frames){if(t.userInputDelayFlag&&0===t.delayTime){n.totalTime=1/0;break}n.totalTime+=t.delayTime}return n}catch(t){if(t instanceof EvalError)throw new Error(`error while parsing frame ${v} "${t.message}"`);throw t}}(t.source),t.gifLoopCount=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData)??0,0===t.gifLoopCount&&(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else await po(t)}async function vo(t){if("svg"!==t.type)return void await po(t);t.loading=!0;const e=await fetch(t.source);e.ok?t.svgData=await e.text():($().error(`${f} Image not found`),t.error=!0),t.loading=!1}function mo(t,e,i,s){const o=function(t,e,i){const{svgData:s}=t;if(!s)return"";const o=Zt(e,i);if(s.includes("fill"))return s.replace(uo,(()=>o));const n=s.indexOf(">");return`${s.substring(0,n)} fill="${o}"${s.substring(n)}`}(t,i,s.opacity?.value??1),n={color:i,gif:e.gif,data:{...t,svgData:o},loaded:!1,ratio:e.width/e.height,replaceColor:e.replaceColor??e.replace_color,source:e.src};return new Promise((e=>{const i=new Blob([o],{type:"image/svg+xml"}),s=URL||window.URL||window.webkitURL||window,a=s.createObjectURL(i),r=new Image;r.addEventListener("load",(()=>{n.loaded=!0,n.element=r,e(n),s.revokeObjectURL(a)})),r.addEventListener("error",(async()=>{s.revokeObjectURL(a);const i={...t,error:!1,loading:!0};await po(i),n.loaded=!0,n.element=i.element,e(n)})),r.src=a}))}class yo{constructor(t){this.loadImageShape=async t=>{if(!this._engine.loadImage)throw new Error(`${f} image shape not initialized`);await this._engine.loadImage({gif:t.gif,name:t.name,replaceColor:t.replaceColor??t.replace_color??!1,src:t.src})},this._engine=t}addImage(t){this._engine.images||(this._engine.images=[]),this._engine.images.push(t)}draw(t,e,i,s,o){const n=e.image,a=n?.element;if(n){if(t.globalAlpha=s,n.gif&&n.gifData){const s=new OffscreenCanvas(n.gifData.width,n.gifData.height),a=s.getContext("2d");if(!a)throw new Error("could not create offscreen canvas context");a.imageSmoothingQuality="low",a.imageSmoothingEnabled=!1,a.clearRect(0,0,s.width,s.height),void 0===e.gifLoopCount&&(e.gifLoopCount=n.gifLoopCount??0);let r=e.gifFrame??0;const c={x:.5*-n.gifData.width,y:.5*-n.gifData.height},l=n.gifData.frames[r];if(void 0===e.gifTime&&(e.gifTime=0),!l.bitmap)return;switch(t.scale(i/n.gifData.width,i/n.gifData.height),l.disposalMethod){case 4:case 5:case 6:case 7:case 0:a.drawImage(l.bitmap,l.left,l.top),t.drawImage(s,c.x,c.y),a.clearRect(0,0,s.width,s.height);break;case 1:a.drawImage(l.bitmap,l.left,l.top),t.drawImage(s,c.x,c.y);break;case 2:a.drawImage(l.bitmap,l.left,l.top),t.drawImage(s,c.x,c.y),a.clearRect(0,0,s.width,s.height),0===n.gifData.globalColorTable.length?a.putImageData(n.gifData.frames[0].image,c.x+l.left,c.y+l.top):a.putImageData(n.gifData.backgroundImage,c.x,c.y);break;case 3:{const e=a.getImageData(0,0,s.width,s.height);a.drawImage(l.bitmap,l.left,l.top),t.drawImage(s,c.x,c.y),a.clearRect(0,0,s.width,s.height),a.putImageData(e,0,0)}}if(e.gifTime+=o.value,e.gifTime>l.delayTime){if(e.gifTime-=l.delayTime,++r>=n.gifData.frames.length){if(--e.gifLoopCount<=0)return;r=0,a.clearRect(0,0,s.width,s.height)}e.gifFrame=r}t.scale(n.gifData.width/i,n.gifData.height/i)}else if(a){const e=n.ratio,s={x:-i,y:-i};t.drawImage(a,s.x,s.y,2*i,2*i/e)}t.globalAlpha=1}}getSidesCount(){return 12}async init(t){const e=t.actualOptions;if(e.preload&&this._engine.loadImage)for(const t of e.preload)await this._engine.loadImage(t)}loadShape(t){if("image"!==t.shape&&"images"!==t.shape)return;this._engine.images||(this._engine.images=[]);const e=t.shapeData;this._engine.images.find((t=>t.name===e.name||t.source===e.src))||this.loadImageShape(e).then((()=>{this.loadShape(t)}))}particleInit(t,e){if("image"!==e.shape&&"images"!==e.shape)return;this._engine.images||(this._engine.images=[]);const i=this._engine.images,s=e.shapeData,o=e.getFillColor(),n=i.find((t=>t.name===s.name||t.source===s.src));if(!n)return;const a=s.replaceColor??s.replace_color??n.replaceColor;n.loading?setTimeout((()=>{this.particleInit(t,e)})):(async()=>{let t;t=n.svgData&&o?await mo(n,s,o,e):{color:o,data:n,element:n.element,gif:n.gif,gifData:n.gifData,gifLoopCount:n.gifLoopCount,loaded:!0,ratio:s.width&&s.height?s.width/s.height:n.ratio??1,replaceColor:a,source:s.src},t.ratio||(t.ratio=1);const i={image:t,fill:s.fill??e.fill,close:s.close??e.close};e.image=i.image,e.fill=i.fill,e.close=i.close})()}}class go{constructor(){this.src="",this.gif=!1}load(t){t&&(void 0!==t.gif&&(this.gif=t.gif),void 0!==t.height&&(this.height=t.height),void 0!==t.name&&(this.name=t.name),void 0!==t.replaceColor&&(this.replaceColor=t.replaceColor),void 0!==t.src&&(this.src=t.src),void 0!==t.width&&(this.width=t.width))}}class bo{constructor(t){this.id="imagePreloader",this._engine=t}getPlugin(){return{}}loadOptions(t,e){if(!e||!e.preload)return;t.preload||(t.preload=[]);const i=t.preload;for(const t of e.preload){const e=i.find((e=>e.name===t.name||e.src===t.src));if(e)e.load(t);else{const e=new go;e.load(t),i.push(e)}}}needsPlugin(){return!0}}async function wo(t,e=!0){!function(t){t.loadImage||(t.loadImage=async e=>{if(!e.name&&!e.src)throw new Error(`${f} no image source provided`);if(t.images||(t.images=[]),!t.images.find((t=>t.name===e.name||t.source===e.src)))try{const i={gif:e.gif??!1,name:e.name??e.src,source:e.src,type:e.src.substring(e.src.length-3),error:!1,loading:!0,replaceColor:e.replaceColor,ratio:e.width&&e.height?e.width/e.height:void 0};t.images.push(i);const s=e.gif?fo:e.replaceColor?vo:po;await s(i)}catch{throw new Error(`${f} ${e.name??e.src} not found`)}})}(t);const i=new bo(t);await t.addPlugin(i,e),await t.addShape(["image","images"],new yo(t),e)}class xo extends St{constructor(){super(),this.sync=!1}load(t){t&&(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class _o extends St{constructor(){super(),this.random.minimumValue=1e-4,this.sync=!1}load(t){t&&(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class ko{constructor(){this.count=0,this.delay=new xo,this.duration=new _o}load(t){t&&(void 0!==t.count&&(this.count=t.count),this.delay.load(t.delay),this.duration.load(t.duration))}}class zo{constructor(t){this.container=t}init(t){const e=this.container,i=t.options.life;i&&(t.life={delay:e.retina.reduceFactor?P(i.delay.value)*(i.delay.sync?1:_())/e.retina.reduceFactor*1e3:0,delayTime:0,duration:e.retina.reduceFactor?P(i.duration.value)*(i.duration.sync?1:_())/e.retina.reduceFactor*1e3:0,time:0,count:i.count},t.life.duration<=0&&(t.life.duration=-1),t.life.count<=0&&(t.life.count=-1),t.life&&(t.spawning=t.life.delay>0))}isEnabled(t){return!t.destroyed}loadOptions(t,...e){t.life||(t.life=new ko);for(const i of e)t.life.load(i?.life)}update(t,e){if(!this.isEnabled(t)||!t.life)return;const i=t.life;let s=!1;if(t.spawning){if(i.delayTime+=e.value,!(i.delayTime>=t.life.delay))return;s=!0,t.spawning=!1,i.delayTime=0,i.time=0}if(-1===i.duration)return;if(t.spawning)return;if(s?i.time=0:i.time+=e.value,i.time0&&t.life.count--,0===t.life.count)return void t.destroy();const o=this.container.canvas.size,n=O(0,o.width),a=O(0,o.width);t.position.x=M(n),t.position.y=M(a),t.spawning=!0,i.delayTime=0,i.time=0,t.reset();const r=t.options.life;r&&(i.delay=1e3*P(r.delay.value),i.duration=1e3*P(r.duration.value))}}class Mo{draw(t,e,i){const s=e.shapeData;t.moveTo(-i/2,0),t.lineTo(i/2,0),t.lineCap=s?.cap??"butt"}getSidesCount(){return 1}}class Po{init(){}isEnabled(t){return!j()&&!t.destroyed&&t.container.actualOptions.interactivity.events.onHover.parallax.enable}move(t){const e=t.container,i=e.actualOptions.interactivity.events.onHover.parallax;if(j()||!i.enable)return;const s=i.force,o=e.interactivity.mouse.position;if(!o)return;const n=e.canvas.size,a=n.width/2,r=n.height/2,c=i.smooth,l=t.getRadius()/s,h=(o.x-a)*l,d=(o.y-r)*l,{offset:u}=t;u.x+=(h-u.x)/c,u.y+=(d-u.y)/c}}class Co extends fs{constructor(t){super(t)}clear(){}init(){}async interact(t){const e=this.container,i=t.retina.attractDistance??e.retina.attractDistance,s=t.getPosition(),o=e.particles.quadTree.queryCircle(s,i);for(const e of o){if(t===e||!e.options.move.attract.enable||e.destroyed||e.spawning)continue;const i=e.getPosition(),{dx:o,dy:n}=R(s,i),a=t.options.move.attract.rotate,r=o/(1e3*a.x),c=n/(1e3*a.y),l=e.size.value/t.size.value,h=1/l;t.velocity.x-=r*l,t.velocity.y-=c*l,e.velocity.x+=r*h,e.velocity.y+=c*h}}isEnabled(t){return t.options.move.attract.enable}reset(){}}function So(t,e,i,s,o,n){const a=k(t.options.collisions.absorb.speed*o.factor/10,0,s);t.size.value+=a/2,i.size.value-=a,s<=n&&(i.size.value=0,i.destroy())}const Oo=t=>{void 0===t.collisionMaxSpeed&&(t.collisionMaxSpeed=P(t.options.collisions.maxSpeed)),t.velocity.length>t.collisionMaxSpeed&&(t.velocity.length=t.collisionMaxSpeed)};function To(t,e){lt(ct(t),ct(e)),Oo(t),Oo(e)}function Ro(t,e,i,s){switch(t.options.collisions.mode){case"absorb":!function(t,e,i,s){const o=t.getRadius(),n=e.getRadius();void 0===o&&void 0!==n?t.destroy():void 0!==o&&void 0===n?e.destroy():void 0!==o&&void 0!==n&&(o>=n?So(t,0,e,n,i,s):So(e,0,t,o,i,s))}(t,e,i,s);break;case"bounce":To(t,e);break;case"destroy":!function(t,e){t.unbreakable||e.unbreakable||To(t,e),void 0===t.getRadius()&&void 0!==e.getRadius()?t.destroy():void 0!==t.getRadius()&&void 0===e.getRadius()?e.destroy():void 0!==t.getRadius()&&void 0!==e.getRadius()&&(t.getRadius()>=e.getRadius()?e:t).destroy()}(t,e)}}class Do extends fs{constructor(t){super(t)}clear(){}init(){}async interact(t,e){if(t.destroyed||t.spawning)return;const i=this.container,s=t.getPosition(),o=t.getRadius(),n=i.particles.quadTree.queryCircle(s,2*o);for(const a of n){if(t===a||!a.options.collisions.enable||t.options.collisions.mode!==a.options.collisions.mode||a.destroyed||a.spawning)continue;const n=a.getPosition(),r=a.getRadius();if(Math.abs(Math.round(s.z)-Math.round(n.z))>o+r)continue;D(s,n)>o+r||Ro(t,a,e,i.retina.pixelRatio)}}isEnabled(t){return t.options.collisions.enable}reset(){}}class Eo extends Ki{constructor(t,e,i,s){super(t,e,i),this.canvasSize=s,this.canvasSize={...s}}contains(t){const{width:e,height:i}=this.canvasSize,{x:s,y:o}=t;return super.contains(t)||super.contains({x:s-e,y:o})||super.contains({x:s-e,y:o-i})||super.contains({x:s,y:o-i})}intersects(t){if(super.intersects(t))return!0;const e=t,i=t,s={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==i.radius){const t=new Ki(s.x,s.y,2*i.radius);return super.intersects(t)}if(void 0!==e.size){const t=new Qi(s.x,s.y,2*e.size.width,2*e.size.height);return super.intersects(t)}return!1}}class Io{constructor(){this.blur=5,this.color=new zt,this.color.value="#000",this.enable=!1}load(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=zt.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable))}}class Lo{constructor(){this.enable=!1,this.frequency=1}load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Ao{constructor(){this.blink=!1,this.color=new zt,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Io,this.triangles=new Lo,this.width=1,this.warp=!1}load(t){t&&(void 0!==t.id&&(this.id=t.id),void 0!==t.blink&&(this.blink=t.blink),this.color=zt.create(this.color,t.color),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.distance&&(this.distance=t.distance),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity),this.shadow.load(t.shadow),this.triangles.load(t.triangles),void 0!==t.width&&(this.width=t.width),void 0!==t.warp&&(this.warp=t.warp))}}function Fo(t,e,i,s,o){const{dx:n,dy:a,distance:r}=R(t,e);if(!o||r<=i)return r;const c={x:Math.abs(n),y:Math.abs(a)},l=Math.min(c.x,s.width-c.x),h=Math.min(c.y,s.height-c.y);return Math.sqrt(l**2+h**2)}class Bo extends fs{constructor(t){super(t),this._setColor=t=>{if(!t.options.links)return;const e=this.linkContainer,i=t.options.links;let s=void 0===i.id?e.particles.linksColor:e.particles.linksColors.get(i.id);if(s)return;s=te(i.color,i.blink,i.consent),void 0===i.id?e.particles.linksColor=s:e.particles.linksColors.set(i.id,s)},this.linkContainer=t}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}async interact(t){if(!t.options.links)return;t.links=[];const e=t.getPosition(),i=this.container,s=i.canvas.size;if(e.x<0||e.y<0||e.x>s.width||e.y>s.height)return;const o=t.options.links,n=o.opacity,a=t.retina.linksDistance??0,r=o.warp,c=r?new Eo(e.x,e.y,a,s):new Ki(e.x,e.y,a),l=i.particles.quadTree.query(c);for(const i of l){const c=i.options.links;if(t===i||!c?.enable||o.id!==c.id||i.spawning||i.destroyed||!i.links||t.links.some((t=>t.destination===i))||i.links.some((e=>e.destination===t)))continue;const l=i.getPosition();if(l.x<0||l.y<0||l.x>s.width||l.y>s.height)continue;const h=Fo(e,l,a,s,r&&c.warp);if(h>a)continue;const d=(1-h/a)*n;this._setColor(t),t.links.push({destination:i,opacity:d})}}isEnabled(t){return!!t.options.links?.enable}loadParticlesOptions(t,...e){t.links||(t.links=new Ao);for(const i of e)t.links.load(i?.links??i?.lineLinked??i?.line_linked)}reset(){}}function qo(t,e){const i=((s=t.map((t=>t.id))).sort(((t,e)=>t-e)),s.join("_"));var s;let o=e.get(i);return void 0===o&&(o=_(),e.set(i,o)),o}class Vo{constructor(t){this.container=t,this._drawLinkLine=(t,e)=>{const i=t.options.links;if(!i?.enable)return;const s=this.container,o=s.actualOptions,n=e.destination,a=t.getPosition(),r=n.getPosition();let c=e.opacity;s.canvas.draw((e=>{let l;const h=t.options.twinkle?.lines;if(h?.enable){const t=h.frequency,e=Vt(h.color);_(){const s=t.options.links;if(!s?.enable)return;const o=s.triangles;if(!o.enable)return;const n=this.container,a=n.actualOptions,r=e.destination,c=i.destination,l=o.opacity??(e.opacity+i.opacity)/2;l<=0||n.canvas.draw((e=>{const i=t.getPosition(),h=r.getPosition(),d=c.getPosition(),u=t.retina.linksDistance??0;if(D(i,h)>u||D(d,h)>u||D(d,i)>u)return;let p=Vt(o.color);if(!p){const e=void 0!==s.id?n.particles.linksColors.get(s.id):n.particles.linksColor;p=Kt(t,r,e)}p&&function(t){const{context:e,pos1:i,pos2:s,pos3:o,backgroundMask:n,colorTriangle:a,opacityTriangle:r}=t;mi(e,i,s,o),n.enable&&(e.globalCompositeOperation=n.composite),e.fillStyle=Jt(a,r),e.fill()}({context:e,pos1:i,pos2:h,pos3:d,backgroundMask:a.backgroundMask,colorTriangle:p,opacityTriangle:l})}))},this._drawTriangles=(t,e,i,s)=>{const o=i.destination;if(!t.links?.triangles.enable||!o.options.links?.triangles.enable)return;const n=o.links?.filter((t=>{const e=this._getLinkFrequency(o,t.destination);return o.options.links&&e<=o.options.links.frequency&&s.findIndex((e=>e.destination===t.destination))>=0}));if(n?.length)for(const s of n){const n=s.destination;this._getTriangleFrequency(e,o,n)>t.links.triangles.frequency||this._drawLinkTriangle(e,i,s)}},this._getLinkFrequency=(t,e)=>qo([t,e],this._freqs.links),this._getTriangleFrequency=(t,e,i)=>qo([t,e,i],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(t,e){const{links:i,options:s}=e;if(!i||i.length<=0)return;const o=i.filter((t=>s.links&&this._getLinkFrequency(e,t.destination)<=s.links.frequency));for(const t of o)this._drawTriangles(s,e,t,o),t.opacity>0&&(e.retina.linksWidth??0)>0&&this._drawLinkLine(e,t)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map}particleCreated(t){if(t.links=[],!t.options.links)return;const e=this.container.retina.pixelRatio,{retina:i}=t,{distance:s,width:o}=t.options.links;i.linksDistance=s*e,i.linksWidth=o*e}particleDestroyed(t){t.links=[]}}class Ho{constructor(){this.id="links"}getPlugin(t){return new Vo(t)}loadOptions(){}needsPlugin(){return!0}}async function Uo(t,e=!0){await async function(t,e=!0){await t.addInteractor("particlesLinks",(t=>new Bo(t)),e)}(t,e),await async function(t,e=!0){const i=new Ho;await t.addPlugin(i,e)}(t,e)}class Wo{draw(t,e,i){const s=this.getCenter(e,i),o=this.getSidesData(e,i),n=o.count.numerator*o.count.denominator,a=o.count.numerator/o.count.denominator,r=180*(a-2)/a,c=Math.PI-Math.PI*r/180;if(t){t.beginPath(),t.translate(s.x,s.y),t.moveTo(0,0);for(let e=0;e0?"counter-clockwise":"clockwise"}switch(i){case"counter-clockwise":case"counterClockwise":t.rotate.status="decreasing";break;case"clockwise":t.rotate.status="increasing"}const s=e.animation;s.enable&&(t.rotate.decay=1-P(s.decay),t.rotate.velocity=P(s.speed)/360*this.container.retina.reduceFactor,s.sync||(t.rotate.velocity*=_())),t.rotation=t.rotate.value}isEnabled(t){const e=t.options.rotate;return!!e&&(!t.destroyed&&!t.spawning&&e.animation.enable&&!e.path)}loadOptions(t,...e){t.rotate||(t.rotate=new Xo);for(const i of e)t.rotate.load(i?.rotate)}update(t,e){this.isEnabled(t)&&(!function(t,e){const i=t.rotate,s=t.options.rotate;if(!i||!s)return;const o=s.animation,n=(i.velocity??0)*e.factor,a=2*Math.PI,r=i.decay??1;o.enable&&("increasing"===i.status?(i.value+=n,i.value>a&&(i.value-=a)):(i.value-=n,i.value<0&&(i.value+=a)),i.velocity&&1!==r&&(i.velocity*=r))}(t,e),t.rotation=t.rotate?.value??0)}}const Jo=Math.sqrt(2);class Zo{draw(t,e,i){const s=i/Jo,o=2*s;t.rect(-s,-s,o,o)}getSidesCount(){return 4}}class Qo{draw(t,e,i){const s=e.sides,o=e.starInset??2;t.moveTo(0,0-i);for(let e=0;e0&&(e.loops??0)>(e.maxLoops??0))return;if(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=t.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0))return;const n=M(i.offset),a=(e.velocity??0)*t.factor+3.6*n,r=e.decay??1;o&&"increasing"!==e.status?(e.value-=a,e.value<0&&(e.loops||(e.loops=0),e.loops++,e.status="increasing",e.value+=e.value)):(e.value+=a,e.value>s&&(e.loops||(e.loops=0),e.loops++,o&&(e.status="decreasing",e.value-=e.value%s))),e.velocity&&1!==r&&(e.velocity*=r),e.value>s&&(e.value%=s)}class tn{constructor(t){this.container=t}init(t){const e=this.container,i=t.options,s=ut(i.stroke,t.id,i.reduceDuplicates);t.strokeWidth=P(s.width)*e.retina.pixelRatio,t.strokeOpacity=P(s.opacity??1),t.strokeAnimation=s.color?.animation;const o=Wt(s.color)??t.getFillColor();o&&(t.strokeColor=ie(o,t.strokeAnimation,e.retina.reduceFactor))}isEnabled(t){const e=t.strokeAnimation,{strokeColor:i}=t;return!t.destroyed&&!t.spawning&&!!e&&(void 0!==i?.h.value&&i.h.enable||void 0!==i?.s.value&&i.s.enable||void 0!==i?.l.value&&i.l.enable)}update(t,e){this.isEnabled(t)&&function(t,e){if(!t.strokeColor||!t.strokeAnimation)return;const{h:i,s,l:o}=t.strokeColor,{h:n,s:a,l:r}=t.strokeAnimation;i&&Ko(e,i,n,360,!1),s&&Ko(e,s,a,100,!0),o&&Ko(e,o,r,100,!0)}(t,e)}}const en=["text","character","char"];class sn{draw(t,e,i,s){const o=e.shapeData;if(void 0===o)return;const n=o.value;if(void 0===n)return;void 0===e.text&&(e.text=ut(n,e.randomIndexData));const a=e.text,r=o.style??"",c=o.weight??"400",l=2*Math.round(i),h=o.font??"Verdana",d=e.fill,u=a.length*i/2;t.font=`${r} ${c} ${l}px "${h}"`;const p={x:-u,y:i/2};t.globalAlpha=s,d?t.fillText(a,p.x,p.y):t.strokeText(a,p.x,p.y),t.globalAlpha=1}getSidesCount(){return 12}async init(t){const e=t.actualOptions;if(en.find((t=>J(t,e.particles.shape.type)))){const t=en.map((t=>e.particles.shape.options[t])).find((t=>!!t)),i=[];dt(t,(t=>{i.push(Z(t.font,t.weight))})),await Promise.all(i)}}particleInit(t,e){if(!e.shape||!en.includes(e.shape))return;const i=e.shapeData;if(void 0===i)return;const s=i.value;void 0!==s&&(e.text=ut(s,e.randomIndexData))}}async function on(t,e=!0){ys(t),await async function(t,e=!0){await t.addMover("parallax",(()=>new Po),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalAttract",(e=>new Ds(t,e)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalBounce",(t=>new Is(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalBubble",(t=>new qs(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalConnect",(t=>new $s(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalGrab",(t=>new Xs(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalPause",(t=>new Ys(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalPush",(t=>new Zs(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalRemove",(t=>new Ks(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalRepulse",(e=>new so(t,e)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalSlow",(t=>new no(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("particlesAttract",(t=>new Co(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("particlesCollisions",(t=>new Do(t)),e)}(t,!1),await Uo(t,!1),await async function(){b("ease-in-quad",(t=>t**2)),b("ease-out-quad",(t=>1-(1-t)**2)),b("ease-in-out-quad",(t=>t<.5?2*t**2:1-(-2*t+2)**2/2))}(),await wo(t,!1),await async function(t,e=!0){await t.addShape("line",new Mo,e)}(t,!1),await jo(t,!1),await async function(t,e=!0){await t.addShape(["edge","square"],new Zo,e)}(t,!1),await async function(t,e=!0){await t.addShape("star",new Qo,e)}(t,!1),await async function(t,e=!0){await t.addShape(en,new sn,e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("life",(t=>new zo(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("rotate",(t=>new Yo(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("strokeColor",(t=>new tn(t)),e)}(t,!1),await Ts(t,e)}class nn{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=O(t.speed)),void 0!==t.decay&&(this.decay=O(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class an extends St{constructor(){super(),this.animation=new nn,this.direction="clockwise",this.enable=!1,this.value=0}load(t){super.load(t),t&&(this.animation.load(t.animation),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.enable&&(this.enable=t.enable))}}class rn{constructor(t){this.container=t}getTransformValues(t){const e=t.tilt?.enable&&t.tilt;return{b:e?Math.cos(e.value)*e.cosDirection:void 0,c:e?Math.sin(e.value)*e.sinDirection:void 0}}init(t){const e=t.options.tilt;if(!e)return;t.tilt={enable:e.enable,value:P(e.value)*Math.PI/180,sinDirection:_()>=.5?1:-1,cosDirection:_()>=.5?1:-1};let i=e.direction;if("random"===i){i=Math.floor(2*_())>0?"counter-clockwise":"clockwise"}switch(i){case"counter-clockwise":case"counterClockwise":t.tilt.status="decreasing";break;case"clockwise":t.tilt.status="increasing"}const s=t.options.tilt?.animation;s?.enable&&(t.tilt.decay=1-P(s.decay),t.tilt.velocity=P(s.speed)/360*this.container.retina.reduceFactor,s.sync||(t.tilt.velocity*=_()))}isEnabled(t){const e=t.options.tilt?.animation;return!t.destroyed&&!t.spawning&&!!e?.enable}loadOptions(t,...e){t.tilt||(t.tilt=new an);for(const i of e)t.tilt.load(i?.tilt)}update(t,e){this.isEnabled(t)&&function(t,e){if(!t.tilt||!t.options.tilt)return;const i=t.options.tilt.animation,s=(t.tilt.velocity??0)*e.factor,o=2*Math.PI,n=t.tilt.decay??1;i.enable&&("increasing"===t.tilt.status?(t.tilt.value+=s,t.tilt.value>o&&(t.tilt.value-=o)):(t.tilt.value-=s,t.tilt.value<0&&(t.tilt.value+=o)),t.tilt.velocity&&1!==n&&(t.tilt.velocity*=n))}(t,e)}}class cn{constructor(){this.enable=!1,this.frequency=.05,this.opacity=1}load(t){t&&(void 0!==t.color&&(this.color=zt.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=O(t.opacity)))}}class ln{constructor(){this.lines=new cn,this.particles=new cn}load(t){t&&(this.lines.load(t.lines),this.particles.load(t.particles))}}class hn{getColorStyles(t,e,i,s){const o=t.options.twinkle;if(!o)return{};const n=o.particles,a=n.enable&&_()a&&(s.angle-=a),r.x+=n*Math.cos(s.angle),r.y+=n*Math.abs(Math.sin(s.angle))}(t,e)}}async function fn(t,e=!0){await async function(t,e=!0){await t.addParticleUpdater("destroy",(e=>new Je(t,e)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("roll",(()=>new fi),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("tilt",(t=>new rn(t)),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("twinkle",(()=>new hn),e)}(t,!1),await async function(t,e=!0){await t.addParticleUpdater("wobble",(t=>new pn(t)),e)}(t,!1),await async function(t,e=!0){await t.addInteractor("externalTrail",(t=>new di(t)),e)}(t,!1),await async function(t,e=!0){await t.addPlugin(new ae,e)}(t,!1),await async function(t,e=!0){t.emitterShapeManager||(t.emitterShapeManager=new ni(t)),t.addEmitterShape||(t.addEmitterShape=(e,i)=>{t.emitterShapeManager?.addShape(e,i)});const i=new ci(t);await t.addPlugin(i,e),t.addEmitterShape("circle",new Ze),t.addEmitterShape("square",new ri)}(t,!1),await on(t,e)}return fn(vs),e})())); \ No newline at end of file diff --git a/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.js b/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.js new file mode 100644 index 0000000000..df406a904c --- /dev/null +++ b/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.js @@ -0,0 +1,1538 @@ +/*! @license ScrollReveal v4.0.0 + + Copyright 2018 Fisssion LLC. + + Licensed under the GNU General Public License 3.0 for + compatible open source projects and non-commercial use. + + For commercial sites, themes, projects, and applications, + keep your source code private/proprietary by purchasing + a commercial license from https://scrollrevealjs.org/ +*/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.ScrollReveal = factory()); +}(this, (function () { 'use strict'; + +var defaults = { + delay: 0, + distance: '0', + duration: 600, + easing: 'cubic-bezier(0.5, 0, 0, 1)', + interval: 0, + opacity: 0, + origin: 'bottom', + rotate: { + x: 0, + y: 0, + z: 0 + }, + scale: 1, + cleanup: true, + container: document.documentElement, + desktop: true, + mobile: true, + reset: false, + useDelay: 'always', + viewFactor: 0.0, + viewOffset: { + top: 0, + right: 0, + bottom: 0, + left: 0 + }, + afterReset: function afterReset() {}, + afterReveal: function afterReveal() {}, + beforeReset: function beforeReset() {}, + beforeReveal: function beforeReveal() {} +} + +var noop = { + clean: function clean() {}, + destroy: function destroy() {}, + reveal: function reveal() {}, + sync: function sync() {}, + get noop() { + return true + } +} + +/*! @license is-dom-node v1.0.4 + + Copyright 2018 Fisssion LLC. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +*/ +function isDomNode(x) { + return typeof window.Node === 'object' + ? x instanceof window.Node + : x !== null && + typeof x === 'object' && + typeof x.nodeType === 'number' && + typeof x.nodeName === 'string' +} + +/*! @license is-dom-node-list v1.2.1 + + Copyright 2018 Fisssion LLC. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +*/ +function isDomNodeList(x) { + var prototypeToString = Object.prototype.toString.call(x); + var regex = /^\[object (HTMLCollection|NodeList|Object)\]$/; + + return typeof window.NodeList === 'object' + ? x instanceof window.NodeList + : x !== null && + typeof x === 'object' && + typeof x.length === 'number' && + regex.test(prototypeToString) && + (x.length === 0 || isDomNode(x[0])) +} + +/*! @license Tealight v0.3.0 + + Copyright 2018 Fisssion LLC. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +*/ +function index(target, context) { + if ( context === void 0 ) { context = document; } + + if (target instanceof Array) { return target.filter(isDomNode) } + if (isDomNode(target)) { return [target] } + if (isDomNodeList(target)) { return Array.prototype.slice.call(target) } + if (typeof target === 'string') { + try { + var query = context.querySelectorAll(target); + return Array.prototype.slice.call(query) + } catch (err) { + return [] + } + } + return [] +} + +function isObject(x) { + return ( + x !== null && + x instanceof Object && + (x.constructor === Object || + Object.prototype.toString.call(x) === '[object Object]') + ) +} + +function each(collection, callback) { + if (isObject(collection)) { + var keys = Object.keys(collection); + return keys.forEach(function (key) { return callback(collection[key], key, collection); }) + } + if (collection instanceof Array) { + return collection.forEach(function (item, i) { return callback(item, i, collection); }) + } + throw new TypeError('Expected either an array or object literal.') +} + +function logger(message) { + var details = [], len = arguments.length - 1; + while ( len-- > 0 ) details[ len ] = arguments[ len + 1 ]; + + if (this.constructor.debug && console) { + var report = "%cScrollReveal: " + message; + details.forEach(function (detail) { return (report += "\n — " + detail); }); + console.log(report, 'color: #ea654b;'); // eslint-disable-line no-console + } +} + +function rinse() { + var this$1 = this; + + var struct = function () { return ({ + active: [], + stale: [] + }); }; + + var elementIds = struct(); + var sequenceIds = struct(); + var containerIds = struct(); + + /** + * Take stock of active element IDs. + */ + try { + each(index('[data-sr-id]'), function (node) { + var id = parseInt(node.getAttribute('data-sr-id')); + elementIds.active.push(id); + }); + } catch (e) { + throw e + } + /** + * Destroy stale elements. + */ + each(this.store.elements, function (element) { + if (elementIds.active.indexOf(element.id) === -1) { + elementIds.stale.push(element.id); + } + }); + + each(elementIds.stale, function (staleId) { return delete this$1.store.elements[staleId]; }); + + /** + * Take stock of active container and sequence IDs. + */ + each(this.store.elements, function (element) { + if (containerIds.active.indexOf(element.containerId) === -1) { + containerIds.active.push(element.containerId); + } + if (element.hasOwnProperty('sequence')) { + if (sequenceIds.active.indexOf(element.sequence.id) === -1) { + sequenceIds.active.push(element.sequence.id); + } + } + }); + + /** + * Destroy stale containers. + */ + each(this.store.containers, function (container) { + if (containerIds.active.indexOf(container.id) === -1) { + containerIds.stale.push(container.id); + } + }); + + each(containerIds.stale, function (staleId) { + var stale = this$1.store.containers[staleId].node; + stale.removeEventListener('scroll', this$1.delegate); + stale.removeEventListener('resize', this$1.delegate); + delete this$1.store.containers[staleId]; + }); + + /** + * Destroy stale sequences. + */ + each(this.store.sequences, function (sequence) { + if (sequenceIds.active.indexOf(sequence.id) === -1) { + sequenceIds.stale.push(sequence.id); + } + }); + + each(sequenceIds.stale, function (staleId) { return delete this$1.store.sequences[staleId]; }); +} + +function clean(target) { + var this$1 = this; + + var dirty; + try { + each(index(target), function (node) { + var id = node.getAttribute('data-sr-id'); + if (id !== null) { + dirty = true; + var element = this$1.store.elements[id]; + if (element.callbackTimer) { + window.clearTimeout(element.callbackTimer.clock); + } + node.setAttribute('style', element.styles.inline.generated); + node.removeAttribute('data-sr-id'); + delete this$1.store.elements[id]; + } + }); + } catch (e) { + return logger.call(this, 'Clean failed.', e.message) + } + + if (dirty) { + try { + rinse.call(this); + } catch (e) { + return logger.call(this, 'Clean failed.', e.message) + } + } +} + +function destroy() { + var this$1 = this; + + /** + * Remove all generated styles and element ids + */ + each(this.store.elements, function (element) { + element.node.setAttribute('style', element.styles.inline.generated); + element.node.removeAttribute('data-sr-id'); + }); + + /** + * Remove all event listeners. + */ + each(this.store.containers, function (container) { + var target = + container.node === document.documentElement ? window : container.node; + target.removeEventListener('scroll', this$1.delegate); + target.removeEventListener('resize', this$1.delegate); + }); + + /** + * Clear all data from the store + */ + this.store = { + containers: {}, + elements: {}, + history: [], + sequences: {} + }; +} + +/*! @license Rematrix v0.2.2 + + Copyright 2018 Fisssion LLC. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** + * @module Rematrix + */ + +/** + * Transformation matrices in the browser come in two flavors: + * + * - `matrix` using 6 values (short) + * - `matrix3d` using 16 values (long) + * + * This utility follows this [conversion guide](https://goo.gl/EJlUQ1) + * to expand short form matrices to their equivalent long form. + * + * @param {array} source - Accepts both short and long form matrices. + * @return {array} + */ +function format(source) { + if (source.constructor !== Array) { + throw new TypeError('Expected array.') + } + if (source.length === 16) { + return source + } + if (source.length === 6) { + var matrix = identity(); + matrix[0] = source[0]; + matrix[1] = source[1]; + matrix[4] = source[2]; + matrix[5] = source[3]; + matrix[12] = source[4]; + matrix[13] = source[5]; + return matrix + } + throw new RangeError('Expected array with either 6 or 16 values.') +} + +/** + * Returns a matrix representing no transformation. The product of any matrix + * multiplied by the identity matrix will be the original matrix. + * + * > **Tip:** Similar to how `5 * 1 === 5`, where `1` is the identity. + * + * @return {array} + */ +function identity() { + var matrix = []; + for (var i = 0; i < 16; i++) { + i % 5 == 0 ? matrix.push(1) : matrix.push(0); + } + return matrix +} + +/** + * Returns a 4x4 matrix describing the combined transformations + * of both arguments. + * + * > **Note:** Order is very important. For example, rotating 45° + * along the Z-axis, followed by translating 500 pixels along the + * Y-axis... is not the same as translating 500 pixels along the + * Y-axis, followed by rotating 45° along on the Z-axis. + * + * @param {array} m - Accepts both short and long form matrices. + * @param {array} x - Accepts both short and long form matrices. + * @return {array} + */ +function multiply(m, x) { + var fm = format(m); + var fx = format(x); + var product = []; + + for (var i = 0; i < 4; i++) { + var row = [fm[i], fm[i + 4], fm[i + 8], fm[i + 12]]; + for (var j = 0; j < 4; j++) { + var k = j * 4; + var col = [fx[k], fx[k + 1], fx[k + 2], fx[k + 3]]; + var result = + row[0] * col[0] + row[1] * col[1] + row[2] * col[2] + row[3] * col[3]; + + product[i + k] = result; + } + } + + return product +} + +/** + * Attempts to return a 4x4 matrix describing the CSS transform + * matrix passed in, but will return the identity matrix as a + * fallback. + * + * **Tip:** In virtually all cases, this method is used to convert + * a CSS matrix (retrieved as a `string` from computed styles) to + * its equivalent array format. + * + * @param {string} source - String containing a valid CSS `matrix` or `matrix3d` property. + * @return {array} + */ +function parse(source) { + if (typeof source === 'string') { + var match = source.match(/matrix(3d)?\(([^)]+)\)/); + if (match) { + var raw = match[2].split(', ').map(parseFloat); + return format(raw) + } + } + return identity() +} + +/** + * Returns a 4x4 matrix describing X-axis rotation. + * + * @param {number} angle - Measured in degrees. + * @return {array} + */ +function rotateX(angle) { + var theta = Math.PI / 180 * angle; + var matrix = identity(); + + matrix[5] = matrix[10] = Math.cos(theta); + matrix[6] = matrix[9] = Math.sin(theta); + matrix[9] *= -1; + + return matrix +} + +/** + * Returns a 4x4 matrix describing Y-axis rotation. + * + * @param {number} angle - Measured in degrees. + * @return {array} + */ +function rotateY(angle) { + var theta = Math.PI / 180 * angle; + var matrix = identity(); + + matrix[0] = matrix[10] = Math.cos(theta); + matrix[2] = matrix[8] = Math.sin(theta); + matrix[2] *= -1; + + return matrix +} + +/** + * Returns a 4x4 matrix describing Z-axis rotation. + * + * @param {number} angle - Measured in degrees. + * @return {array} + */ +function rotateZ(angle) { + var theta = Math.PI / 180 * angle; + var matrix = identity(); + + matrix[0] = matrix[5] = Math.cos(theta); + matrix[1] = matrix[4] = Math.sin(theta); + matrix[4] *= -1; + + return matrix +} + +/** + * Returns a 4x4 matrix describing 2D scaling. The first argument + * is used for both X and Y-axis scaling, unless an optional + * second argument is provided to explicitly define Y-axis scaling. + * + * @param {number} scalar - Decimal multiplier. + * @param {number} [scalarY] - Decimal multiplier. + * @return {array} + */ +function scale(scalar, scalarY) { + var matrix = identity(); + + matrix[0] = scalar; + matrix[5] = typeof scalarY === 'number' ? scalarY : scalar; + + return matrix +} + +/** + * Returns a 4x4 matrix describing X-axis translation. + * + * @param {number} distance - Measured in pixels. + * @return {array} + */ +function translateX(distance) { + var matrix = identity(); + matrix[12] = distance; + return matrix +} + +/** + * Returns a 4x4 matrix describing Y-axis translation. + * + * @param {number} distance - Measured in pixels. + * @return {array} + */ +function translateY(distance) { + var matrix = identity(); + matrix[13] = distance; + return matrix +} + +var getPrefixedCssProp = (function () { + var properties = {}; + var style = document.documentElement.style; + + function getPrefixedCssProperty(name, source) { + if ( source === void 0 ) source = style; + + if (name && typeof name === 'string') { + if (properties[name]) { + return properties[name] + } + if (typeof source[name] === 'string') { + return (properties[name] = name) + } + if (typeof source[("-webkit-" + name)] === 'string') { + return (properties[name] = "-webkit-" + name) + } + throw new RangeError(("Unable to find \"" + name + "\" style property.")) + } + throw new TypeError('Expected a string.') + } + + getPrefixedCssProperty.clearCache = function () { return (properties = {}); }; + + return getPrefixedCssProperty +})(); + +function style(element) { + var computed = window.getComputedStyle(element.node); + var position = computed.position; + var config = element.config; + + /** + * Generate inline styles + */ + var inline = {}; + var inlineStyle = element.node.getAttribute('style') || ''; + var inlineMatch = inlineStyle.match(/[\w-]+\s*:\s*[^;]+\s*/gi) || []; + + inline.computed = inlineMatch ? inlineMatch.map(function (m) { return m.trim(); }).join('; ') + ';' : ''; + + inline.generated = inlineMatch.some(function (m) { return m.match(/visibility\s?:\s?visible/i); }) + ? inline.computed + : inlineMatch.concat( ['visibility: visible']).map(function (m) { return m.trim(); }).join('; ') + ';'; + + /** + * Generate opacity styles + */ + var computedOpacity = parseFloat(computed.opacity); + var configOpacity = !isNaN(parseFloat(config.opacity)) + ? parseFloat(config.opacity) + : parseFloat(computed.opacity); + + var opacity = { + computed: computedOpacity !== configOpacity ? ("opacity: " + computedOpacity + ";") : '', + generated: computedOpacity !== configOpacity ? ("opacity: " + configOpacity + ";") : '' + }; + + /** + * Generate transformation styles + */ + var transformations = []; + + if (parseFloat(config.distance)) { + var axis = config.origin === 'top' || config.origin === 'bottom' ? 'Y' : 'X'; + + /** + * Let’s make sure our our pixel distances are negative for top and left. + * e.g. { origin: 'top', distance: '25px' } starts at `top: -25px` in CSS. + */ + var distance = config.distance; + if (config.origin === 'top' || config.origin === 'left') { + distance = /^-/.test(distance) ? distance.substr(1) : ("-" + distance); + } + + var ref = distance.match(/(^-?\d+\.?\d?)|(em$|px$|%$)/g); + var value = ref[0]; + var unit = ref[1]; + + switch (unit) { + case 'em': + distance = parseInt(computed.fontSize) * value; + break + case 'px': + distance = value; + break + case '%': + /** + * Here we use `getBoundingClientRect` instead of + * the existing data attached to `element.geometry` + * because only the former includes any transformations + * current applied to the element. + * + * If that behavior ends up being unintuitive, this + * logic could instead utilize `element.geometry.height` + * and `element.geoemetry.width` for the distaince calculation + */ + distance = + axis === 'Y' + ? element.node.getBoundingClientRect().height * value / 100 + : element.node.getBoundingClientRect().width * value / 100; + break + default: + throw new RangeError('Unrecognized or missing distance unit.') + } + + if (axis === 'Y') { + transformations.push(translateY(distance)); + } else { + transformations.push(translateX(distance)); + } + } + + if (config.rotate.x) { transformations.push(rotateX(config.rotate.x)); } + if (config.rotate.y) { transformations.push(rotateY(config.rotate.y)); } + if (config.rotate.z) { transformations.push(rotateZ(config.rotate.z)); } + if (config.scale !== 1) { + if (config.scale === 0) { + /** + * The CSS Transforms matrix interpolation specification + * basically disallows transitions of non-invertible + * matrixes, which means browsers won't transition + * elements with zero scale. + * + * That’s inconvenient for the API and developer + * experience, so we simply nudge their value + * slightly above zero; this allows browsers + * to transition our element as expected. + * + * `0.0002` was the smallest number + * that performed across browsers. + */ + transformations.push(scale(0.0002)); + } else { + transformations.push(scale(config.scale)); + } + } + + var transform = {}; + if (transformations.length) { + transform.property = getPrefixedCssProp('transform'); + /** + * The default computed transform value should be one of: + * undefined || 'none' || 'matrix()' || 'matrix3d()' + */ + transform.computed = { + raw: computed[transform.property], + matrix: parse(computed[transform.property]) + }; + + transformations.unshift(transform.computed.matrix); + var product = transformations.reduce(multiply); + + transform.generated = { + initial: ((transform.property) + ": matrix3d(" + (product.join(', ')) + ");"), + final: ((transform.property) + ": matrix3d(" + (transform.computed.matrix.join( + ', ' + )) + ");") + }; + } else { + transform.generated = { + initial: '', + final: '' + }; + } + + /** + * Generate transition styles + */ + var transition = {}; + if (opacity.generated || transform.generated.initial) { + transition.property = getPrefixedCssProp('transition'); + transition.computed = computed[transition.property]; + transition.fragments = []; + + var delay = config.delay; + var duration = config.duration; + var easing = config.easing; + + if (opacity.generated) { + transition.fragments.push({ + delayed: ("opacity " + (duration / 1000) + "s " + easing + " " + (delay / 1000) + "s"), + instant: ("opacity " + (duration / 1000) + "s " + easing + " 0s") + }); + } + + if (transform.generated.initial) { + transition.fragments.push({ + delayed: ((transform.property) + " " + (duration / 1000) + "s " + easing + " " + (delay / + 1000) + "s"), + instant: ((transform.property) + " " + (duration / 1000) + "s " + easing + " 0s") + }); + } + + /** + * The default computed transition property should be one of: + * undefined || '' || 'all 0s ease 0s' || 'all 0s 0s cubic-bezier()' + */ + if (transition.computed && !transition.computed.match(/all 0s/)) { + transition.fragments.unshift({ + delayed: transition.computed, + instant: transition.computed + }); + } + + var composed = transition.fragments.reduce( + function (composition, fragment, i) { + composition.delayed += + i === 0 ? fragment.delayed : (", " + (fragment.delayed)); + composition.instant += + i === 0 ? fragment.instant : (", " + (fragment.instant)); + return composition + }, + { + delayed: '', + instant: '' + } + ); + + transition.generated = { + delayed: ((transition.property) + ": " + (composed.delayed) + ";"), + instant: ((transition.property) + ": " + (composed.instant) + ";") + }; + } else { + transition.generated = { + delayed: '', + instant: '' + }; + } + + return { + inline: inline, + opacity: opacity, + position: position, + transform: transform, + transition: transition + } +} + +function animate(element, force) { + if ( force === void 0 ) force = {}; + + var pristine = force.pristine || this.pristine; + var delayed = + element.config.useDelay === 'always' || + (element.config.useDelay === 'onload' && pristine) || + (element.config.useDelay === 'once' && !element.seen); + + var shouldReveal = element.visible && !element.revealed; + var shouldReset = !element.visible && element.revealed && element.config.reset; + + if (force.reveal || shouldReveal) { + return triggerReveal.call(this, element, delayed) + } + + if (force.reset || shouldReset) { + return triggerReset.call(this, element) + } +} + +function triggerReveal(element, delayed) { + var styles = [ + element.styles.inline.generated, + element.styles.opacity.computed, + element.styles.transform.generated.final + ]; + if (delayed) { + styles.push(element.styles.transition.generated.delayed); + } else { + styles.push(element.styles.transition.generated.instant); + } + element.revealed = element.seen = true; + element.node.setAttribute('style', styles.filter(function (s) { return s !== ''; }).join(' ')); + registerCallbacks.call(this, element, delayed); +} + +function triggerReset(element) { + var styles = [ + element.styles.inline.generated, + element.styles.opacity.generated, + element.styles.transform.generated.initial, + element.styles.transition.generated.instant + ]; + element.revealed = false; + element.node.setAttribute('style', styles.filter(function (s) { return s !== ''; }).join(' ')); + registerCallbacks.call(this, element); +} + +function registerCallbacks(element, isDelayed) { + var this$1 = this; + + var duration = isDelayed + ? element.config.duration + element.config.delay + : element.config.duration; + + var beforeCallback = element.revealed + ? element.config.beforeReveal + : element.config.beforeReset; + + var afterCallback = element.revealed + ? element.config.afterReveal + : element.config.afterReset; + + var elapsed = 0; + if (element.callbackTimer) { + elapsed = Date.now() - element.callbackTimer.start; + window.clearTimeout(element.callbackTimer.clock); + } + + beforeCallback(element.node); + + element.callbackTimer = { + start: Date.now(), + clock: window.setTimeout(function () { + afterCallback(element.node); + element.callbackTimer = null; + if (element.revealed && !element.config.reset && element.config.cleanup) { + clean.call(this$1, element.node); + } + }, duration - elapsed) + }; +} + +var nextUniqueId = (function () { + var uid = 0; + return function () { return uid++; } +})(); + +function sequence(element, pristine) { + if ( pristine === void 0 ) pristine = this.pristine; + + /** + * We first check if the element should reset. + */ + if (!element.visible && element.revealed && element.config.reset) { + return animate.call(this, element, { reset: true }) + } + + var seq = this.store.sequences[element.sequence.id]; + var i = element.sequence.index; + + if (seq) { + var visible = new SequenceModel(seq, 'visible', this.store); + var revealed = new SequenceModel(seq, 'revealed', this.store); + + seq.models = { visible: visible, revealed: revealed }; + + /** + * If the sequence has no revealed members, + * then we reveal the first visible element + * within that sequence. + * + * The sequence then cues a recursive call + * in both directions. + */ + if (!revealed.body.length) { + var nextId = seq.members[visible.body[0]]; + var nextElement = this.store.elements[nextId]; + + if (nextElement) { + cue.call(this, seq, visible.body[0], -1, pristine); + cue.call(this, seq, visible.body[0], +1, pristine); + return animate.call(this, nextElement, { reveal: true, pristine: pristine }) + } + } + + /** + * If our element isn’t resetting, we check the + * element sequence index against the head, and + * then the foot of the sequence. + */ + if ( + !seq.blocked.head && + i === [].concat( revealed.head ).pop() && + i >= [].concat( visible.body ).shift() + ) { + cue.call(this, seq, i, -1, pristine); + return animate.call(this, element, { reveal: true, pristine: pristine }) + } + + if ( + !seq.blocked.foot && + i === [].concat( revealed.foot ).shift() && + i <= [].concat( visible.body ).pop() + ) { + cue.call(this, seq, i, +1, pristine); + return animate.call(this, element, { reveal: true, pristine: pristine }) + } + } +} + +function Sequence(interval) { + var i = Math.abs(interval); + if (!isNaN(i)) { + this.id = nextUniqueId(); + this.interval = Math.max(i, 16); + this.members = []; + this.models = {}; + this.blocked = { + head: false, + foot: false + }; + } else { + throw new RangeError('Invalid sequence interval.') + } +} + +function SequenceModel(seq, prop, store) { + var this$1 = this; + + this.head = []; + this.body = []; + this.foot = []; + + each(seq.members, function (id, index) { + var element = store.elements[id]; + if (element && element[prop]) { + this$1.body.push(index); + } + }); + + if (this.body.length) { + each(seq.members, function (id, index) { + var element = store.elements[id]; + if (element && !element[prop]) { + if (index < this$1.body[0]) { + this$1.head.push(index); + } else { + this$1.foot.push(index); + } + } + }); + } +} + +function cue(seq, i, direction, pristine) { + var this$1 = this; + + var blocked = ['head', null, 'foot'][1 + direction]; + var nextId = seq.members[i + direction]; + var nextElement = this.store.elements[nextId]; + + seq.blocked[blocked] = true; + + setTimeout(function () { + seq.blocked[blocked] = false; + if (nextElement) { + sequence.call(this$1, nextElement, pristine); + } + }, seq.interval); +} + +function initialize() { + var this$1 = this; + + rinse.call(this); + + each(this.store.elements, function (element) { + var styles = [element.styles.inline.generated]; + + if (element.visible) { + styles.push(element.styles.opacity.computed); + styles.push(element.styles.transform.generated.final); + } else { + styles.push(element.styles.opacity.generated); + styles.push(element.styles.transform.generated.initial); + } + + element.node.setAttribute('style', styles.filter(function (s) { return s !== ''; }).join(' ')); + }); + + each(this.store.containers, function (container) { + var target = + container.node === document.documentElement ? window : container.node; + target.addEventListener('scroll', this$1.delegate); + target.addEventListener('resize', this$1.delegate); + }); + + /** + * Manually invoke delegate once to capture + * element and container dimensions, container + * scroll position, and trigger any valid reveals + */ + this.delegate(); + + /** + * Wipe any existing `setTimeout` now + * that initialization has completed. + */ + this.initTimeout = null; +} + +function isMobile(agent) { + if ( agent === void 0 ) agent = navigator.userAgent; + + return /Android|iPhone|iPad|iPod/i.test(agent) +} + +function deepAssign(target) { + var sources = [], len = arguments.length - 1; + while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ]; + + if (isObject(target)) { + each(sources, function (source) { + each(source, function (data, key) { + if (isObject(data)) { + if (!target[key] || !isObject(target[key])) { + target[key] = {}; + } + deepAssign(target[key], data); + } else { + target[key] = data; + } + }); + }); + return target + } else { + throw new TypeError('Target must be an object literal.') + } +} + +function reveal(target, options, syncing) { + var this$1 = this; + if ( options === void 0 ) options = {}; + if ( syncing === void 0 ) syncing = false; + + var containerBuffer = []; + var sequence$$1; + var interval = options.interval || defaults.interval; + + try { + if (interval) { + sequence$$1 = new Sequence(interval); + } + + var nodes = index(target); + if (!nodes.length) { + throw new Error('Invalid reveal target.') + } + + var elements = nodes.reduce(function (elementBuffer, elementNode) { + var element = {}; + var existingId = elementNode.getAttribute('data-sr-id'); + + if (existingId) { + deepAssign(element, this$1.store.elements[existingId]); + + /** + * In order to prevent previously generated styles + * from throwing off the new styles, the style tag + * has to be reverted to its pre-reveal state. + */ + element.node.setAttribute('style', element.styles.inline.computed); + } else { + element.id = nextUniqueId(); + element.node = elementNode; + element.seen = false; + element.revealed = false; + element.visible = false; + } + + var config = deepAssign({}, element.config || this$1.defaults, options); + + if ((!config.mobile && isMobile()) || (!config.desktop && !isMobile())) { + if (existingId) { + clean.call(this$1, element); + } + return elementBuffer // skip elements that are disabled + } + + var containerNode = index(config.container)[0]; + if (!containerNode) { + throw new Error('Invalid container.') + } + if (!containerNode.contains(elementNode)) { + return elementBuffer // skip elements found outside the container + } + + var containerId; + { + containerId = getContainerId( + containerNode, + containerBuffer, + this$1.store.containers + ); + if (containerId === null) { + containerId = nextUniqueId(); + containerBuffer.push({ id: containerId, node: containerNode }); + } + } + + element.config = config; + element.containerId = containerId; + element.styles = style(element); + + if (sequence$$1) { + element.sequence = { + id: sequence$$1.id, + index: sequence$$1.members.length + }; + sequence$$1.members.push(element.id); + } + + elementBuffer.push(element); + return elementBuffer + }, []); + + /** + * Modifying the DOM via setAttribute needs to be handled + * separately from reading computed styles in the map above + * for the browser to batch DOM changes (limiting reflows) + */ + each(elements, function (element) { + this$1.store.elements[element.id] = element; + element.node.setAttribute('data-sr-id', element.id); + }); + } catch (e) { + return logger.call(this, 'Reveal failed.', e.message) + } + + /** + * Now that element set-up is complete... + * Let’s commit any container and sequence data we have to the store. + */ + each(containerBuffer, function (container) { + this$1.store.containers[container.id] = { + id: container.id, + node: container.node + }; + }); + if (sequence$$1) { + this.store.sequences[sequence$$1.id] = sequence$$1; + } + + /** + * If reveal wasn't invoked by sync, we want to + * make sure to add this call to the history. + */ + if (syncing !== true) { + this.store.history.push({ target: target, options: options }); + + /** + * Push initialization to the event queue, giving + * multiple reveal calls time to be interpreted. + */ + if (this.initTimeout) { + window.clearTimeout(this.initTimeout); + } + this.initTimeout = window.setTimeout(initialize.bind(this), 0); + } +} + +function getContainerId(node) { + var collections = [], len = arguments.length - 1; + while ( len-- > 0 ) collections[ len ] = arguments[ len + 1 ]; + + var id = null; + each(collections, function (collection) { + each(collection, function (container) { + if (id === null && container.node === node) { + id = container.id; + } + }); + }); + return id +} + +/** + * Re-runs the reveal method for each record stored in history, + * for capturing new content asynchronously loaded into the DOM. + */ +function sync() { + var this$1 = this; + + each(this.store.history, function (record) { + reveal.call(this$1, record.target, record.options, true); + }); + + initialize.call(this); +} + +var polyfill = function (x) { return (x > 0) - (x < 0) || +x; }; +var mathSign = Math.sign || polyfill + +/*! @license miniraf v1.0.0 + + Copyright 2018 Fisssion LLC. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +*/ +var polyfill$1 = (function () { + var clock = Date.now(); + + return function (callback) { + var currentTime = Date.now(); + if (currentTime - clock > 16) { + clock = currentTime; + callback(currentTime); + } else { + setTimeout(function () { return polyfill$1(callback); }, 0); + } + } +})(); + +var index$1 = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + polyfill$1; + +function getGeometry(target, isContainer) { + /** + * We want to ignore padding and scrollbars for container elements. + * More information here: https://goo.gl/vOZpbz + */ + var height = isContainer ? target.node.clientHeight : target.node.offsetHeight; + var width = isContainer ? target.node.clientWidth : target.node.offsetWidth; + + var offsetTop = 0; + var offsetLeft = 0; + var node = target.node; + + do { + if (!isNaN(node.offsetTop)) { + offsetTop += node.offsetTop; + } + if (!isNaN(node.offsetLeft)) { + offsetLeft += node.offsetLeft; + } + node = node.offsetParent; + } while (node) + + return { + bounds: { + top: offsetTop, + right: offsetLeft + width, + bottom: offsetTop + height, + left: offsetLeft + }, + height: height, + width: width + } +} + +function getScrolled(container) { + var top, left; + if (container.node === document.documentElement) { + top = window.pageYOffset; + left = window.pageXOffset; + } else { + top = container.node.scrollTop; + left = container.node.scrollLeft; + } + return { top: top, left: left } +} + +function isElementVisible(element) { + if ( element === void 0 ) element = {}; + + var container = this.store.containers[element.containerId]; + if (!container) { return } + + var viewFactor = Math.max(0, Math.min(1, element.config.viewFactor)); + var viewOffset = element.config.viewOffset; + + var elementBounds = { + top: element.geometry.bounds.top + element.geometry.height * viewFactor, + right: element.geometry.bounds.right - element.geometry.width * viewFactor, + bottom: element.geometry.bounds.bottom - element.geometry.height * viewFactor, + left: element.geometry.bounds.left + element.geometry.width * viewFactor + }; + + var containerBounds = { + top: container.geometry.bounds.top + container.scroll.top + viewOffset.top, + right: container.geometry.bounds.right + container.scroll.left - viewOffset.right, + bottom: + container.geometry.bounds.bottom + container.scroll.top - viewOffset.bottom, + left: container.geometry.bounds.left + container.scroll.left + viewOffset.left + }; + + return ( + (elementBounds.top < containerBounds.bottom && + elementBounds.right > containerBounds.left && + elementBounds.bottom > containerBounds.top && + elementBounds.left < containerBounds.right) || + element.styles.position === 'fixed' + ) +} + +function delegate( + event, + elements +) { + var this$1 = this; + if ( event === void 0 ) event = { type: 'init' }; + if ( elements === void 0 ) elements = this.store.elements; + + index$1(function () { + var stale = event.type === 'init' || event.type === 'resize'; + + each(this$1.store.containers, function (container) { + if (stale) { + container.geometry = getGeometry.call(this$1, container, true); + } + var scroll = getScrolled.call(this$1, container); + if (container.scroll) { + container.direction = { + x: mathSign(scroll.left - container.scroll.left), + y: mathSign(scroll.top - container.scroll.top) + }; + } + container.scroll = scroll; + }); + + /** + * Due to how the sequencer is implemented, it’s + * important that we update the state of all + * elements, before any animation logic is + * evaluated (in the second loop below). + */ + each(elements, function (element) { + if (stale) { + element.geometry = getGeometry.call(this$1, element); + } + element.visible = isElementVisible.call(this$1, element); + }); + + each(elements, function (element) { + if (element.sequence) { + sequence.call(this$1, element); + } else { + animate.call(this$1, element); + } + }); + + this$1.pristine = false; + }); +} + +function transformSupported() { + var style = document.documentElement.style; + return 'transform' in style || 'WebkitTransform' in style +} + +function transitionSupported() { + var style = document.documentElement.style; + return 'transition' in style || 'WebkitTransition' in style +} + +var version = "4.0.0"; + +var boundDelegate; +var boundDestroy; +var boundReveal; +var boundClean; +var boundSync; +var config; +var debug; +var instance; + +function ScrollReveal(options) { + if ( options === void 0 ) options = {}; + + var invokedWithoutNew = + typeof this === 'undefined' || + Object.getPrototypeOf(this) !== ScrollReveal.prototype; + + if (invokedWithoutNew) { + return new ScrollReveal(options) + } + + if (!ScrollReveal.isSupported()) { + logger.call(this, 'Instantiation failed.', 'This browser is not supported.'); + return noop + } + + /** + * Here we use `buffer` to validate our configuration, before + * assigning the contents to the private variable `_config`. + */ + var buffer; + try { + buffer = config + ? deepAssign({}, config, options) + : deepAssign({}, defaults, options); + } catch (e) { + logger.call(this, 'Instantiation failed.', 'Invalid configuration.', e.message); + return noop + } + + try { + var container = index(buffer.container)[0]; + if (!container) { + throw new Error('Invalid container.') + } + if ((!buffer.mobile && isMobile()) || (!buffer.desktop && !isMobile())) { + throw new Error('This device is disabled.') + } + } catch (e) { + logger.call(this, 'Instantiation failed.', e.message); + return noop + } + + config = buffer; + + /** + * Modify the DOM to reflect successful instantiation. + */ + document.documentElement.classList.add('sr'); + if (document.body) { + document.body.style.height = '100%'; + } else { + document.addEventListener('DOMContentLoaded', function () { + document.body.style.height = '100%'; + }); + } + + this.store = { + containers: {}, + elements: {}, + history: [], + sequences: {} + }; + + this.pristine = true; + + boundDelegate = boundDelegate || delegate.bind(this); + boundDestroy = boundDestroy || destroy.bind(this); + boundReveal = boundReveal || reveal.bind(this); + boundClean = boundClean || clean.bind(this); + boundSync = boundSync || sync.bind(this); + + Object.defineProperty(this, 'delegate', { get: function () { return boundDelegate; } }); + Object.defineProperty(this, 'destroy', { get: function () { return boundDestroy; } }); + Object.defineProperty(this, 'reveal', { get: function () { return boundReveal; } }); + Object.defineProperty(this, 'clean', { get: function () { return boundClean; } }); + Object.defineProperty(this, 'sync', { get: function () { return boundSync; } }); + + Object.defineProperty(this, 'defaults', { get: function () { return config; } }); + Object.defineProperty(this, 'version', { get: function () { return version; } }); + Object.defineProperty(this, 'noop', { get: function () { return false; } }); + + return instance ? instance : (instance = this) +} + +/** + * Static members are available immediately during instantiation, + * so debugging and browser support details are handled here. + */ +ScrollReveal.isSupported = function () { return transformSupported() && transitionSupported(); }; + +Object.defineProperty(ScrollReveal, 'debug', { + get: function () { return debug || false; }, + set: function (value) { return (debug = typeof value === 'boolean' ? value : debug); } +}); + +ScrollReveal(); + +return ScrollReveal; + +}))); diff --git a/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.min.js b/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.min.js new file mode 100644 index 0000000000..009b407969 --- /dev/null +++ b/wp-content/themes/kenta/dist/vendor/scrollreveal/scrollreveal.min.js @@ -0,0 +1,12 @@ +/*! @license ScrollReveal v4.0.0 + + Copyright 2018 Fisssion LLC. + + Licensed under the GNU General Public License 3.0 for + compatible open source projects and non-commercial use. + + For commercial sites, themes, projects, and applications, + keep your source code private/proprietary by purchasing + a commercial license from https://scrollrevealjs.org/ +*/ +var ScrollReveal=function(){"use strict";var r={delay:0,distance:"0",duration:600,easing:"cubic-bezier(0.5, 0, 0, 1)",interval:0,opacity:0,origin:"bottom",rotate:{x:0,y:0,z:0},scale:1,cleanup:!0,container:document.documentElement,desktop:!0,mobile:!0,reset:!1,useDelay:"always",viewFactor:0,viewOffset:{top:0,right:0,bottom:0,left:0},afterReset:function(){},afterReveal:function(){},beforeReset:function(){},beforeReveal:function(){}},n={clean:function(){},destroy:function(){},reveal:function(){},sync:function(){},get noop(){return!0}};function o(e){return"object"==typeof window.Node?e instanceof window.Node:null!==e&&"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName}function u(e,t){if(void 0===t&&(t=document),e instanceof Array)return e.filter(o);if(o(e))return[e];if(n=e,i=Object.prototype.toString.call(n),"object"==typeof window.NodeList?n instanceof window.NodeList:null!==n&&"object"==typeof n&&"number"==typeof n.length&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(i)&&(0===n.length||o(n[0])))return Array.prototype.slice.call(e);var n,i;if("string"==typeof e)try{var r=t.querySelectorAll(e);return Array.prototype.slice.call(r)}catch(e){return[]}return[]}function s(e){return null!==e&&e instanceof Object&&(e.constructor===Object||"[object Object]"===Object.prototype.toString.call(e))}function f(n,i){if(s(n))return Object.keys(n).forEach(function(e){return i(n[e],e,n)});if(n instanceof Array)return n.forEach(function(e,t){return i(e,t,n)});throw new TypeError("Expected either an array or object literal.")}function h(e){for(var t=[],n=arguments.length-1;0=[].concat(r.body).shift())return g.call(this,n,i,-1,t),c.call(this,e,{reveal:!0,pristine:t});if(!n.blocked.foot&&i===[].concat(o.foot).shift()&&i<=[].concat(r.body).pop())return g.call(this,n,i,1,t),c.call(this,e,{reveal:!0,pristine:t})}}function v(e){var t=Math.abs(e);if(isNaN(t))throw new RangeError("Invalid sequence interval.");this.id=y(),this.interval=Math.max(t,16),this.members=[],this.models={},this.blocked={head:!1,foot:!1}}function d(e,i,r){var o=this;this.head=[],this.body=[],this.foot=[],f(e.members,function(e,t){var n=r.elements[e];n&&n[i]&&o.body.push(t)}),this.body.length&&f(e.members,function(e,t){var n=r.elements[e];n&&!n[i]&&(tstoreAs( 'option' ); + +// add global dynamic css partial +kenta_app( 'CZ' )->addPartial( 'kenta-global-selective-css', '#kenta-global-selective-css', function () { + echo kenta_dynamic_css() . kenta_no_cache_dynamic_css(); +} ); + +// add preloader customize partial +kenta_app( 'CZ' )->addPartial( 'kenta-preloader-selective-css', '#kenta-preloader-selective-css', function () { + echo kenta_preloader_css(); +} ); + +// add WooCommerce css partial +kenta_app( 'CZ' )->addPartial( 'kenta-woo-selective-css', '#kenta-woo-selective-css', function () { + if ( function_exists( 'kenta_woo_dynamic_css' ) ) { + echo \LottaFramework\Facades\Css::parse( kenta_woo_dynamic_css() ); + } +} ); + +// add transparent header dynamic css partial +kenta_app( 'CZ' )->addPartial( 'kenta-transparent-selective-css', '#kenta-transparent-selective-css', function () { + echo kenta_transparent_header_css(); +} ); + +// add header customize partial +kenta_app( 'CZ' )->addPartial( 'kenta-header-selective-css', '#kenta-header-selective-css', function () { + Kenta_Header_Builder::instance()->builder()->do( 'enqueue_frontend_scripts' ); + echo \LottaFramework\Facades\Css::parse( apply_filters( 'kenta_filter_dynamic_css', [] ) ); + echo \LottaFramework\Facades\Css::parse( apply_filters( 'kenta_filter_no_cache_dynamic_css', [] ) ); +} ); + +// add footer customize partial +kenta_app( 'CZ' )->addPartial( 'kenta-footer-selective-css', '#kenta-footer-selective-css', function () { + Kenta_Footer_Builder::instance()->builder()->do( 'enqueue_frontend_scripts' ); + echo \LottaFramework\Facades\Css::parse( apply_filters( 'kenta_filter_dynamic_css', [] ) ); + echo \LottaFramework\Facades\Css::parse( apply_filters( 'kenta_filter_no_cache_dynamic_css', [] ) ); +} ); + +/** + * After lotta-framework boostrap + */ +do_action( 'kenta_after_lotta_framework_bootstrap' ); + +// support locally hosted google-fonts and we should do this after all options are loaded +if ( kenta_app( 'CZ' )->checked( 'kenta_use_local_fonts' ) ) { + kenta_app()->support( 'local_webfonts' ); +} diff --git a/wp-content/themes/kenta/header.php b/wp-content/themes/kenta/header.php new file mode 100644 index 0000000000..6a8ec7ca7f --- /dev/null +++ b/wp-content/themes/kenta/header.php @@ -0,0 +1,46 @@ + section and everything up until
+ * + * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials + * + * @package Kenta + */ + +// document open +get_template_part( 'template-parts/document', 'open' ); + +if ( ! function_exists( 'elementor_theme_do_location' ) || ! elementor_theme_do_location( 'header' ) ) { + + /** + * Hook - kenta_action_before. + */ + do_action( 'kenta_action_before' ); + + /** + * Hook - kenta_action_before_header. + */ + do_action( 'kenta_action_before_header' ); + + /** + * Hook - kenta_action_header. + */ + do_action( 'kenta_action_header' ); + + /** + * Hook - kenta_action_after_header. + */ + do_action( 'kenta_action_after_header' ); + + /** + * Hook - kenta_action_before_content. + */ + do_action( 'kenta_action_before_content' ); + + /** + * Hook - kenta_action_content. + */ + do_action( 'kenta_action_content' ); +} diff --git a/wp-content/themes/kenta/inc/admin-page.php b/wp-content/themes/kenta/inc/admin-page.php new file mode 100644 index 0000000000..e778c18bb2 --- /dev/null +++ b/wp-content/themes/kenta/inc/admin-page.php @@ -0,0 +1,228 @@ + array( + 'icon' => kenta_image_url( 'recommend-plugins/plover-kit.png' ), + 'title' => __( 'Plover Kit', 'kenta' ), + 'desc' => __( 'Plover kit have pluggable modules that enhance the Gutenberg core blocks and also provide extended features.', 'kenta' ), + 'home' => 'https://wpplover.com/plugins/plover-kit/', + ), + 'kenta-blocks' => array( + 'icon' => kenta_image_url( 'recommend-plugins/kenta-blocks.png' ), + 'title' => __( 'Kenta Blocks', 'kenta' ), + 'desc' => __( 'Kenta Blocks is a set of responsive blocks with powerful options and pre-designed templates library. ', 'kenta' ), + 'home' => 'https://kentatheme.com/blocks/', + ), + 'kenta-companion' => array( + 'icon' => kenta_image_url( 'recommend-plugins/kenta-companion.png' ), + 'title' => __( 'Kenta Companion', 'kenta' ), + 'desc' => __( 'Kenta Companion is an extension to the Kenta theme. It provides a lot of features and one-click demo import for Kenta Theme.', 'kenta' ), + 'home' => 'https://kentatheme.com/', + ) + ) ); + } +} + +if ( ! function_exists( 'kenta_install_recommend_plugin' ) ) { + /** + * Install Recommend Plugins By One Click + */ + function kenta_install_recommend_plugin() { + + global $title; + $title = esc_html__( 'Install Recommend Plugin', 'kenta' ); + + check_ajax_referer( 'kenta_install_recommend_plugin' ); + + if ( ! current_user_can( 'activate_plugins' ) ) { + wp_die( + '

' . __( 'You need a higher level of permission.', 'kenta' ) . '

' . + '

' . __( 'Sorry, you are not allowed to activate plugins on this site.', 'kenta' ) . '

', + 403 + ); + } + + require_once ABSPATH . 'wp-admin/admin-header.php'; + ?> +
+ ' . __( 'You can not install this plugin.', 'kenta' ) . '' . + '

' . __( 'Sorry, you are not allowed to install this plugin.', 'kenta' ) . '

', + 403 + ); + } + + kenta_do_install_plugins( [ + $slug => $recommend_plugins[ $slug ]['title'], + ], admin_url( 'themes.php' ) ); + ?> +
+ base, array( 'dashboard', 'themes' ) ) ) { + return; + } + + get_template_part( 'template-parts/admin-start' ); + } +} + +add_action( 'admin_notices', 'kenta_admin_get_start_notice' ); + +if ( ! function_exists( 'kenta_dismiss_notice' ) ) { + /** + * Dismiss admin notice + */ + function kenta_dismiss_notice() { + + global $current_user; + + $user_id = $current_user->ID; + + $dismiss_option = esc_html( $_GET['kenta_dismiss'] ?? '' ); + if ( is_string( $dismiss_option ) && in_array( $dismiss_option, array( 'start' ) ) ) { + check_ajax_referer( 'kenta_dismiss' ); + + if ( isset( $_GET['revert'] ) ) { + delete_user_meta( $user_id, "kenta_dismissed_$dismiss_option", 'true', true ); + } else { + add_user_meta( $user_id, "kenta_dismissed_$dismiss_option", 'true', true ); + } + wp_die( '', '', array( 'response' => 200 ) ); + } + } +} +add_action( 'admin_init', 'kenta_dismiss_notice' ); + +if ( ! function_exists( 'kenta_install_companion' ) ) { + /** + * Install Kenta Companion Plugin By One Click + */ + function kenta_install_companion() { + check_ajax_referer( 'kenta_install_companion' ); + + if ( ! current_user_can( 'activate_plugins' ) ) { + wp_die( + '

' . __( 'You need a higher level of permission.', 'kenta' ) . '

' . + '

' . __( 'Sorry, you are not allowed to activate plugins on this site.', 'kenta' ) . '

', + 403 + ); + } + + require_once ABSPATH . 'wp-admin/admin-header.php'; + + ?> +
+ esc_html__( 'Kenta Companion', 'kenta' ), + 'kenta-blocks' => esc_html__( 'Kenta Blocks', 'kenta' ), + ], admin_url( 'themes.php' ) ); + ?> +
+ ' . __( 'You need a higher level of permission.', 'kenta' ) . '' . + '

' . __( 'Sorry, you are not allowed to customize this site.', 'kenta' ) . '

', + 403 + ); + } + + kenta_reset_dynamic_css_cache(); + kenta_update_customizer_default_settings(); + } +} +add_action( 'admin_action_kenta_update_dynamic_css_cache', 'kenta_update_dynamic_css_cache_action' ); + +if ( ! function_exists( 'kenta_show_admin_page' ) ) { + /** + * Show admin page + * + * @return void + */ + function kenta_show_admin_page() { + get_template_part( 'template-parts/admin', 'container' ); + } +} + +if ( ! function_exists( 'kenta_add_admin_menu' ) ) { + /** + * Add admin menu + * + * @return void + */ + function kenta_add_admin_menu() { + add_theme_page( + esc_html__( 'Kenta Theme', 'kenta' ), + esc_html__( 'Kenta Theme', 'kenta' ), + 'edit_theme_options', + 'kenta-theme', + 'kenta_show_admin_page' + ); + } +} + +if ( ! function_exists( 'kenta_cmp_need_upgrade_notice' ) ) { + /** + * Show upgrade Kenta Companion notice + */ + function kenta_cmp_need_upgrade_notice() { + get_template_part( 'template-parts/admin-cmp-upgrade' ); + } +} + +if ( KENTA_CMP_ACTIVE ) { + add_action( 'kcmp/show_admin_setup_page', 'kenta_show_admin_page' ); + // Kenta Companion plugin is out of date + if ( defined( 'KCMP_VERSION' ) && version_compare( KCMP_VERSION, MIN_KENTA_CMP_VERSION, '<' ) ) { + add_action( 'admin_notices', 'kenta_cmp_need_upgrade_notice' ); + } +} else { + add_action( 'admin_menu', 'kenta_add_admin_menu' ); +} diff --git a/wp-content/themes/kenta/inc/builder/class-builder-column.php b/wp-content/themes/kenta/inc/builder/class-builder-column.php new file mode 100644 index 0000000000..6d8f4bc1c9 --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-builder-column.php @@ -0,0 +1,202 @@ + $this->get( 'width', $settings ), + 'flex-direction' => $this->get( 'direction', $settings ), + 'justify-content' => $this->get( 'justify-content', $settings ), + 'align-items' => $this->get( 'align-items', $settings ), + '--kenta-builder-elements-gap' => $this->get( 'elements-gap', $settings ), + ], + Css::dimensions( $this->get( 'padding', $settings ), 'padding' ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function start( $id, $data, $location = '' ) { + $index = $data['index'] ?? 0; + $device = $data['device'] ?? 0; + $settings = $data['settings'] ?? []; + $dir = $this->get( 'direction', $settings ); + if ( ! is_array( $dir ) ) { + $dir = [ 'desktop' => $dir, 'tablet' => $dir, 'mobile' => $dir ]; + } + + $this->add_render_attribute( $id, 'class', Utils::clsx( [ + 'kenta-builder-column', + 'kenta-builder-column-' . $index, + 'kenta-builder-column-' . $device, + 'kenta-builder-column-desktop-dir-' . $dir['desktop'] ?? 'row', + 'kenta-builder-column-tablet-dir-' . $dir['tablet'] ?? 'row', + 'kenta-builder-column-mobile-dir-' . $dir['mobile'] ?? 'row', + $id + ], + [ 'kenta-scroll-reveal' => $this->checked( 'scroll-reveal', $settings ) ], + $data['css'] ?? [] + ) ); + + if ( is_customize_preview() ) { + $this->add_render_attribute( $id, 'data-shortcut-inner', 'true' ); + $this->add_render_attribute( $id, 'data-shortcut', 'dashed-border' ); + $this->add_render_attribute( $id, 'data-shortcut-location', $location ); + } + echo '
render_attribute_string( $id ) . '>'; + } + + /** + * {@inheritDoc} + */ + public function end( $id, $data ) { + echo '
'; + } + + public function getControls() { + $defaults = wp_parse_args( $this->getDefaultSettings(), [ + 'width' => '100%', + 'scroll-reveal' => 'no', + 'elements-gap' => '12px', + 'direction' => 'row', + 'justify-content' => 'flex-start', + 'align-items' => 'flex-start', + 'exclude' => [], + 'padding' => [ + 'top' => '0px', + 'right' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'linked' => true, + ], + ] ); + + $exclude = $defaults['exclude']; + + $controls = [ + ( new Slider( 'width' ) ) + ->setLabel( __( 'Width', 'kenta' ) ) + ->setOption( 'responsive', $this->isResponsive() ) + ->setMin( 0 ) + ->setMax( 100 ) + ->setDefaultUnit( '%' ) + ->setDefaultValue( $defaults['width'] ) + , + ( new Separator() ), + ( new Slider( 'elements-gap' ) ) + ->setLabel( __( 'Elements Gap', 'kenta' ) ) + ->setOption( 'responsive', $this->isResponsive() ) + ->setMin( 0 ) + ->setMax( 100 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['elements-gap'] ) + , + ( new Separator() ), + ( new Toggle( 'scroll-reveal' ) ) + ->setLabel( __( 'Enable Scroll Reveal', 'kenta' ) ) + ->setDefaultValue( $defaults['scroll-reveal'] ) + , + ( new Separator() ) + ]; + + if ( in_array( 'direction', $exclude ) ) { + $controls[] = ( new Placeholder( 'direction' ) )->setDefaultValue( $defaults['direction'] ); + } else { + $controls[] = ( new Radio( 'direction' ) ) + ->setLabel( __( 'Direction', 'kenta' ) ) + ->setOption( 'responsive', $this->isResponsive() ) + ->setDefaultValue( $defaults['direction'] ) + ->buttonsGroupView() + ->setChoices( [ + 'row' => __( 'Row', 'kenta' ), + 'column' => __( 'Column', 'kenta' ), + ] ); + } + + if ( in_array( 'justify-content', $exclude ) ) { + $controls[] = ( new Placeholder( 'justify-content' ) )->setDefaultValue( $defaults['justify-content'] ); + } else { + $controls[] = ( new Radio( 'justify-content' ) ) + ->setLabel( __( 'Justify Content', 'kenta' ) ) + ->setOption( 'responsive', $this->isResponsive() ) + ->setDefaultValue( $defaults['justify-content'] ) + ->buttonsGroupView() + ->setChoices( [ + 'flex-start' => __( 'Start', 'kenta' ), + 'center' => __( 'Center', 'kenta' ), + 'flex-end' => __( 'End', 'kenta' ), + ] ); + } + + if ( in_array( 'align-items', $exclude ) ) { + $controls[] = ( new Placeholder( 'align-items' ) )->setDefaultValue( $defaults['align-items'] ); + } else { + $controls[] = ( new Radio( 'align-items' ) ) + ->setLabel( __( 'Align Items', 'kenta' ) ) + ->setOption( 'responsive', $this->isResponsive() ) + ->setDefaultValue( $defaults['align-items'] ) + ->buttonsGroupView() + ->setChoices( [ + 'flex-start' => __( 'Start', 'kenta' ), + 'center' => __( 'Center', 'kenta' ), + 'flex-end' => __( 'End', 'kenta' ), + ] ); + } + + if ( in_array( 'padding', $exclude ) ) { + $controls[] = ( new Placeholder( 'padding' ) )->setDefaultValue( $defaults['padding'] ); + } else { + $controls[] = ( new Spacing( 'padding' ) ) + ->setLabel( __( 'Padding', 'kenta' ) ) +// ->asyncCss( '', AsyncCss::dimensions( 'padding' ) ) + ->setDefaultValue( $defaults['padding'] ); + } + + return $controls; + } + } + +} diff --git a/wp-content/themes/kenta/inc/builder/class-footer-builder.php b/wp-content/themes/kenta/inc/builder/class-footer-builder.php new file mode 100644 index 0000000000..dbe5c1c47f --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-footer-builder.php @@ -0,0 +1,224 @@ +_builder = ( new Builder( 'kenta_footer_builder' ) ) + ->setLabel( __( 'Footer Elements', 'kenta' ) ) + ->showLabel() + ->bindSelectiveRefresh( 'kenta-footer-selective-css' ) + ->selectiveRefresh( '.kenta-footer-area', 'kenta_footer_render' ) + ->setColumn( Kenta_Footer_Column::instance() ); + + $this->_builder + ->addElement( new Kenta_Logo_Element( 'footer-logo', 'kenta_footer_el_logo', __( 'Logo', 'kenta' ) ) ) + ->addElement( new Kenta_Copyright_Element( 'copyright', 'kenta_footer_el_copyright', __( 'Copyright', 'kenta' ) ) ) + ->addElement( new Kenta_Menu_Element( 'footer-menu', 'kenta_footer_el_menu', __( 'Footer Menu', 'kenta' ), [ + 'depth' => 1, + 'top-level-height' => '36px', + 'top-level-height-unit' => 'px', + 'selective-refresh' => 'kenta-footer-selective-css', + ] ) ) + // Breadcrumbs + ->addElement( new Kenta_Breadcrumbs_Element( 'breadcrumbs', 'kenta_footer_el_breadcrumbs', __( 'Breadcrumbs', 'kenta' ) ) ) + // Widgets + ->addElement( new Kenta_Widgets_Element( 'widgets-1', 'kenta_footer_el_widgets_1', __( 'Footer Widgets Area #1', 'kenta' ) ) ) + ->addElement( new Kenta_Widgets_Element( 'widgets-2', 'kenta_footer_el_widgets_2', __( 'Footer Widgets Area #2', 'kenta' ) ) ) + ->addElement( new Kenta_Widgets_Element( 'widgets-3', 'kenta_footer_el_widgets_3', __( 'Footer Widgets Area #3', 'kenta' ) ) ) + ->addElement( new Kenta_Widgets_Element( 'widgets-4', 'kenta_footer_el_widgets_4', __( 'Footer Widgets Area #4', 'kenta' ) ) ) + ->addElement( new Kenta_Socials_Element( 'footer-socials', 'kenta_footer_el_socials', __( 'Socials', 'kenta' ) ) ); + + $this->_builder + ->addRow( $this->getTopRow() ) + ->addRow( $this->getMiddleRow() ) + ->addRow( $this->getBottomRow() ); + + do_action( 'kenta_footer_builder_initialized', $this->_builder ); + } + + protected function getTopRow() { + $data = apply_filters( 'kenta_footer_top_row_default_value', [ + [ + 'elements' => [], + 'settings' => [ 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ] ], + ], + [ + 'elements' => [], + 'settings' => [ 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ] ], + ], + [ + 'elements' => [], + 'settings' => [ 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ] ], + ], + [ + 'elements' => [], + 'settings' => [ 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ] ], + ] + ] ); + + $row = ( new Kenta_Footer_Row( 'top', __( 'Top Row', 'kenta' ), [ + 'z_index' => 100, + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_footer_top_row_max_columns', 4 ) ); + + foreach ( $data as $column ) { + $row->addColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + protected function getMiddleRow() { + $data = apply_filters( 'kenta_footer_middle_row_default_value', [ + [ + 'elements' => [], + 'settings' => [ + 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ], + 'padding' => [ 'top' => '12px', 'right' => '12px', 'bottom' => '12px', 'left' => '12px' ] + ], + ], + [ + 'elements' => [], + 'settings' => [ + 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ], + 'padding' => [ 'top' => '12px', 'right' => '12px', 'bottom' => '12px', 'left' => '12px' ] + ], + ], + [ + 'elements' => [], + 'settings' => [ + 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ], + 'padding' => [ 'top' => '12px', 'right' => '12px', 'bottom' => '12px', 'left' => '12px' ] + ], + ], + [ + 'elements' => [], + 'settings' => [ + 'width' => [ 'desktop' => '25%', 'tablet' => '50%', 'mobile' => '100%' ], + 'padding' => [ 'top' => '12px', 'right' => '12px', 'bottom' => '12px', 'left' => '12px' ] + ], + ] + ] ); + + $row = ( new Kenta_Footer_Row( 'middle', __( 'Middle Row', 'kenta' ), [ + 'z_index' => 99, + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_footer_middle_row_max_columns', 4 ) ); + + foreach ( $data as $column ) { + $row->addColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + protected function getBottomRow() { + $data = apply_filters( 'kenta_footer_bottom_row_default_value', [ + [ + 'elements' => [ 'footer-menu' ], + 'settings' => [ + 'width' => [ 'desktop' => '60%', 'tablet' => '100%', 'mobile' => '100%' ], + 'direction' => 'row', + 'align-items' => 'center', + 'justify-content' => [ + 'desktop' => 'flex-start', + 'tablet' => 'center', + 'mobile' => 'center' + ], + ], + ], + [ + 'elements' => [ 'copyright' ], + 'settings' => [ + 'width' => [ 'desktop' => '40%', 'tablet' => '100%', 'mobile' => '100%' ], + 'direction' => 'row', + 'align-items' => 'center', + 'justify-content' => [ + 'desktop' => 'flex-end', + 'tablet' => 'center', + 'mobile' => 'center' + ], + ], + ] + ] ); + + $row = ( new Kenta_Footer_Row( 'bottom', __( 'Bottom Row', 'kenta' ), [ + 'z_index' => 98, + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_footer_bottom_row_max_columns', 4 ) ); + + foreach ( $data as $column ) { + $row->addColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + /** + * Get footer builder + * + * @return Kenta_Footer_Builder|null + */ + public static function instance() { + if ( self::$_instance === null ) { + self::$_instance = new self(); + } + + return self::$_instance; + } + + /** + * Magic static calls + * + * @param $method + * @param $args + * + * @return mixed + */ + public static function __callStatic( $method, $args ) { + $builder = self::instance()->builder(); + + if ( method_exists( $builder, $method ) ) { + return $builder->$method( ...$args ); + } + + return null; + } + + /** + * @return Builder|null + */ + public function builder() { + return $this->_builder; + } + } +} diff --git a/wp-content/themes/kenta/inc/builder/class-footer-column.php b/wp-content/themes/kenta/inc/builder/class-footer-column.php new file mode 100644 index 0000000000..cce406f9c1 --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-footer-column.php @@ -0,0 +1,31 @@ + 'column', + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/builder/class-footer-row.php b/wp-content/themes/kenta/inc/builder/class-footer-row.php new file mode 100644 index 0000000000..c6ef60c48f --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-footer-row.php @@ -0,0 +1,207 @@ +getRowControlKey( 'visibility' ) ); + + $css[".kenta-footer-row-{$this->id}"] = array_merge( + [ + 'z-index' => CZ::get( $this->getRowControlKey( 'z_index' ) ), + 'padding-top' => CZ::get( $this->getRowControlKey( 'vt_spacing' ) ), + 'padding-bottom' => CZ::get( $this->getRowControlKey( 'vt_spacing' ) ), + 'display' => [ + 'desktop' => ( isset( $visibility['desktop'] ) && $visibility['desktop'] === 'yes' ) ? 'block' : 'none', + 'tablet' => ( isset( $visibility['tablet'] ) && $visibility['tablet'] === 'yes' ) ? 'block' : 'none', + 'mobile' => ( isset( $visibility['mobile'] ) && $visibility['mobile'] === 'yes' ) ? 'block' : 'none', + ], + ], + Css::background( CZ::get( $this->getRowControlKey( 'background' ) ) ), + Css::border( CZ::get( $this->getRowControlKey( 'border_top' ) ), 'border-top' ), + Css::colors( CZ::get( $this->getRowControlKey( 'primary_color' ) ), [ + 'default' => '--kenta-primary-color', + 'active' => '--kenta-primary-active', + ] ), + Css::colors( CZ::get( $this->getRowControlKey( 'accent_color' ) ), [ + 'default' => '--kenta-accent-color', + 'active' => '--kenta-accent-active', + ] ), + Css::colors( CZ::get( $this->getRowControlKey( 'base_color' ) ), [ + 'default' => '--kenta-base-color', + '100' => '--kenta-base-100', + '200' => '--kenta-base-200', + '300' => '--kenta-base-300', + ] ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function shouldRender() { + return CZ::checked( $this->getRowControlKey( 'render_empty' ) ) || $this->builder->hasContent( $this->id ); + } + + /** + * {@inheritDoc} + */ + public function beforeRowDevice( $device, $settings ) { + $attrs = [ + 'class' => 'kenta-footer-row kenta-footer-row-' . $this->id, + 'data-row' => $this->id, + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_footer:' . $this->id; + } + + echo '
'; + echo '
'; + } + + /** + * {@inheritDoc} + */ + public function afterRowDevice( $device, $settings ) { + echo '
'; + } + + /** + * @param $key + * + * @return string + */ + protected function getRowControlKey( $key ) { + return 'kenta_footer_' . $this->id . '_row_' . $key; + } + + /** + * {@inheritDoc} + */ + protected function getRowControls() { + return [ + ( new Tabs() ) + ->setActiveTab( 'general' ) + ->addTab( 'general', __( 'General', 'kenta' ), [ + ( new Slider( $this->getRowControlKey( 'vt_spacing' ) ) ) + ->setLabel( __( 'Vertical Spacing', 'kenta' ) ) + ->asyncCss( ".kenta-footer-row-{$this->id}", [ + 'padding-top' => 'value', + 'padding-bottom' => 'value', + ] ) + ->enableResponsive() + ->setMin( 0 ) + ->setMax( 100 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ( new Number( $this->getRowControlKey( 'z_index' ) ) ) + ->setLabel( __( 'Z Index', 'kenta' ) ) + ->setMin( - 99999 ) + ->setMax( 99999 ) + ->setDefaultUnit( false ) + ->setDefaultValue( $this->getRowControlDefault( 'z_index', 9 ) ) + , + ( new Toggle( $this->getRowControlKey( 'render_empty' ) ) ) + ->setLabel( __( 'Render Empty Row', 'kenta' ) ) + ->closeByDefault() + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + , + ( new MultiSelect( $this->getRowControlKey( 'visibility' ) ) ) + ->setLabel( __( 'Visibility', 'kenta' ) ) + ->buttonsGroupView() + ->setChoices( [ + 'desktop' => kenta_image( 'desktop' ), + 'tablet' => kenta_image( 'tablet' ), + 'mobile' => kenta_image( 'mobile' ) + ] ) + ->asyncCss( ".kenta-footer-row-{$this->id}", [ + 'display' => [ + 'desktop' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['desktop']" ) ), + 'tablet' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['tablet']" ) ), + 'mobile' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['mobile']" ) ), + ] + ] ) + ->setDefaultValue( [ + 'desktop' => 'yes', + 'tablet' => 'yes', + 'mobile' => 'yes', + ] ) + , + ] ) + ->addTab( 'style', __( 'Style', 'kenta' ), array_merge( + [ ( new Info() )->hideBackground()->setInfo( __( 'Override Global Colors', 'kenta' ) ) ], + $this->getGlobalColorControls( $this->getRowControlKey( '' ), ".kenta-footer-row-{$this->id}" ), + [ + ( new Separator() ), + ( new Border( $this->getRowControlKey( 'border_top' ) ) ) + ->setLabel( __( 'Top Border', 'kenta' ) ) + ->asyncCss( ".kenta-footer-row-{$this->id}", AsyncCss::border( 'border-top' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( + ...$this->getRowControlDefault( 'border_top', [ + 1, + 'none', + 'var(--kenta-base-300)' + ] ) + ) + , + ( new Separator() ), + ( new Background( $this->getRowControlKey( 'background' ) ) ) + ->setLabel( __( 'Background', 'kenta' ) ) + ->asyncCss( ".kenta-footer-row-{$this->id}", AsyncCss::background() ) + ->enableResponsive() + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)' + ] ) + , + ] + ) ) + ]; + } + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/builder/class-header-builder.php b/wp-content/themes/kenta/inc/builder/class-header-builder.php new file mode 100644 index 0000000000..68ba4b93ca --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-header-builder.php @@ -0,0 +1,288 @@ +_builder = ( new Builder( 'kenta_header_builder' ) ) + ->setLabel( __( 'Header Elements', 'kenta' ) ) + ->showLabel() + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + ->enableResponsive() + ->setColumn( Kenta_Header_Column::instance() ); + + $this->_builder + ->addElement( new Kenta_Logo_Element( 'logo', 'kenta_header_el_logo', __( 'Logo', 'kenta' ), [ + 'transparent-logo' => true, + ] ) ) + ->addElement( new Kenta_Search_Element( 'search', 'kenta_header_el_search', __( 'Search', 'kenta' ) ) ) + // Buttons + ->addElement( new Kenta_Button_Element( 'button-1', 'kenta_header_el_button_1', __( 'Button #1', 'kenta' ) ) ) + ->addElement( new Kenta_Button_Element( 'button-2', 'kenta_header_el_button_2', __( 'Button #2', 'kenta' ) ) ) + // Menus + ->addElement( new Kenta_Menu_Element( 'menu-1', 'kenta_header_el_menu_1', __( 'Menu #1', 'kenta' ), [ + 'selective-refresh' => 'kenta-header-selective-css', + ] ) ) + ->addElement( new Kenta_Menu_Element( 'menu-2', 'kenta_header_el_menu_2', __( 'Menu #2', 'kenta' ), [ + 'selective-refresh' => 'kenta-header-selective-css', + ] ) ) + ->addElement( new Kenta_Collapsable_Menu_Element( + 'collapsable-menu', + 'kenta_header_el_collapsable_menu', + __( 'Collapsable Menu', 'kenta' ) + ) ) + // Trigger + ->addElement( new Kenta_Trigger_Element( 'trigger', 'kenta_header_el_trigger', __( 'Trigger', 'kenta' ) ) ) + // Breadcrumbs + ->addElement( new Kenta_Breadcrumbs_Element( 'breadcrumbs', 'kenta_header_el_breadcrumbs', __( 'Breadcrumbs', 'kenta' ) ) ) + ->addElement( new Kenta_Socials_Element( 'socials', 'kenta_header_el_socials', __( 'Socials', 'kenta' ) ) ) + ->addElement( new Kenta_Theme_Switch_Element( 'theme-switch', 'kenta_header_el_theme_switch', __( 'Theme Switch', 'kenta' ) ) ); + + // WooCommerce Elements + if ( KENTA_WOOCOMMERCE_ACTIVE ) { + $this->_builder->addElement( new Kenta_Cart_Element( 'cart', 'kenta_header_el_cart', __( 'Cart', 'kenta' ) ) ); + } + + // add rows + $this->_builder + ->addRow( $this->getModalRow() ) + ->addRow( $this->getTopBarRow() ) + ->addRow( $this->getPrimaryRow() ) + ->addRow( $this->getBottomRow() ); + + do_action( 'kenta_header_builder_initialized', $this->_builder ); + } + + protected function getModalRow() { + $data = apply_filters( 'kenta_modal_row_default_value', [ + 'desktop' => [ + [ + 'elements' => [ 'collapsable-menu' ], + 'settings' => [ 'direction' => 'column', ], + ] + ], + 'mobile' => [ + [ + 'elements' => [ 'collapsable-menu' ], + 'settings' => [ + 'direction' => 'column', + 'elements-gap' => '24px', + ], + ] + ], + ] ); + + $row = ( new Kenta_Modal_Row( 'modal', __( 'Modal Area', 'kenta' ) ) )->isOffCanvas(); + + foreach ( $data['desktop'] as $column ) { + $row->addDesktopColumn( $column['elements'], $column['settings'] ); + } + + foreach ( $data['mobile'] as $column ) { + $row->addMobileColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + protected function getTopBarRow() { + + $data = apply_filters( 'kenta_header_top_row_default_value', [ + 'desktop' => [ + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + ], + 'mobile' => [ + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + ], + ] ); + + $row = ( new Kenta_Header_Row( 'top_bar', __( 'Top Bar', 'kenta' ), [ + 'min_height' => '40px', + 'z_index' => 100, + 'background' => [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)' + ], + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_header_top_row_max_columns', 3 ) ); + + foreach ( $data['desktop'] as $column ) { + $row->addDesktopColumn( $column['elements'], $column['settings'] ); + } + + foreach ( $data['mobile'] as $column ) { + $row->addMobileColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + protected function getPrimaryRow() { + $data = apply_filters( 'kenta_header_primary_row_default_value', [ + 'desktop' => [ + [ + 'elements' => [ 'logo' ], + 'settings' => [ 'width' => '30%' ] + ], + [ + 'elements' => [ 'menu-1', 'socials', 'theme-switch', 'search' ], + 'settings' => [ 'width' => '70%', 'justify-content' => 'flex-end' ] + ], + ], + 'mobile' => [ + [ + 'elements' => [ 'logo' ], + 'settings' => [ 'width' => '70%', ] + ], + [ + 'elements' => [ 'socials', 'theme-switch', 'search', 'trigger' ], + 'settings' => [ 'width' => '30%', 'justify-content' => 'flex-end' ] + ], + ], + ] ); + + $row = ( new Kenta_Header_Row( 'primary_navbar', __( 'Primary Navbar', 'kenta' ), [ + 'min_height' => '80px', + 'z_index' => 99, + 'background' => [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)' + ], + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_header_primary_row_max_columns', 3 ) ); + + foreach ( $data['desktop'] as $column ) { + $row->addDesktopColumn( $column['elements'], $column['settings'] ); + } + + foreach ( $data['mobile'] as $column ) { + $row->addMobileColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + protected function getBottomRow() { + + $data = apply_filters( 'kenta_header_bottom_row_default_value', [ + 'desktop' => [ + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + ], + 'mobile' => [ + [ + 'elements' => [], + 'settings' => [ 'width' => '50%', ] + ], + [ + 'elements' => [], + 'settings' => [ 'width' => '50%' ] + ], + ], + ] ); + + $row = ( new Kenta_Header_Row( 'bottom_row', __( 'Bottom Row', 'kenta' ), [ + 'z_index' => 98, + ] ) ); + + $row->setMaxColumns( apply_filters( 'kenta_header_bottom_row_max_columns', 3 ) ); + + foreach ( $data['desktop'] as $column ) { + $row->addDesktopColumn( $column['elements'], $column['settings'] ); + } + + foreach ( $data['mobile'] as $column ) { + $row->addMobileColumn( $column['elements'], $column['settings'] ); + } + + return $row; + } + + /** + * Get header builder + * + * @return Kenta_Header_Builder|null + */ + public static function instance() { + if ( self::$_instance === null ) { + self::$_instance = new self(); + } + + return self::$_instance; + } + + /** + * Magic static calls + * + * @param $method + * @param $args + * + * @return mixed + */ + public static function __callStatic( $method, $args ) { + $builder = self::instance()->builder(); + + if ( method_exists( $builder, $method ) ) { + return $builder->$method( ...$args ); + } + + return null; + } + + /** + * @return Builder|null + */ + public function builder() { + return $this->_builder; + } + } +} + diff --git a/wp-content/themes/kenta/inc/builder/class-header-column.php b/wp-content/themes/kenta/inc/builder/class-header-column.php new file mode 100644 index 0000000000..268b6ae851 --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-header-column.php @@ -0,0 +1,34 @@ + 'center', + 'exclude' => [ + 'align-items', + ], + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/builder/class-header-row.php b/wp-content/themes/kenta/inc/builder/class-header-row.php new file mode 100644 index 0000000000..46a438f826 --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-header-row.php @@ -0,0 +1,237 @@ +getRowControlKey( 'visibility' ) ); + + $css[".kenta-header-row-{$this->id}"] = array_merge( + [ + 'z-index' => CZ::get( $this->getRowControlKey( 'z_index' ) ), + 'display' => [ + 'desktop' => ( isset( $visibility['desktop'] ) && $visibility['desktop'] === 'yes' ) ? 'block' : 'none', + 'tablet' => ( isset( $visibility['tablet'] ) && $visibility['tablet'] === 'yes' ) ? 'block' : 'none', + 'mobile' => ( isset( $visibility['mobile'] ) && $visibility['mobile'] === 'yes' ) ? 'block' : 'none', + ], + ], + Css::background( CZ::get( $this->getRowControlKey( 'background' ) ) ), + Css::shadow( CZ::get( $this->getRowControlKey( 'shadow' ) ) ), + Css::border( CZ::get( $this->getRowControlKey( 'border_top' ) ), 'border-top' ), + Css::border( CZ::get( $this->getRowControlKey( 'border_bottom' ) ), 'border-bottom' ), + Css::background( CZ::get( $this->getRowControlKey( 'background' ) ) ), + Css::border( CZ::get( $this->getRowControlKey( 'border_top' ) ), 'border-top' ), + Css::colors( CZ::get( $this->getRowControlKey( 'primary_color' ) ), [ + 'default' => '--kenta-primary-color', + 'active' => '--kenta-primary-active', + ] ), + Css::colors( CZ::get( $this->getRowControlKey( 'accent_color' ) ), [ + 'default' => '--kenta-accent-color', + 'active' => '--kenta-accent-active', + ] ), + Css::colors( CZ::get( $this->getRowControlKey( 'base_color' ) ), [ + 'default' => '--kenta-base-color', + '100' => '--kenta-base-100', + '200' => '--kenta-base-200', + '300' => '--kenta-base-300', + ] ) + ); + + $css[".kenta-header-row-{$this->id} .container"] = [ + 'min-height' => CZ::get( $this->getRowControlKey( 'min_height' ) ) + ]; + + return apply_filters( 'kenta_header_row_css', $css, $this->id ); + } ); + } + + /** + * {@inheritDoc} + */ + public function shouldRender() { + return CZ::checked( $this->getRowControlKey( 'render_empty' ) ) || $this->builder->hasContent( $this->id ); + } + + /** + * {@inheritDoc} + */ + public function beforeRow() { + do_action( 'kenta_start_header_row', $this->id ); + } + + /** + * {@inheritDoc} + */ + public function afterRow() { + do_action( 'kenta_after_header_row', $this->id ); + } + + /** + * @param $key + * + * @return string + */ + protected function getRowControlKey( $key ) { + return 'kenta_header_' . $this->id . '_row_' . $key; + } + + /** + * {@inheritDoc} + * + * @return array + */ + protected function getRowControls() { + $general_controls = [ + ( new Slider( $this->getRowControlKey( 'min_height' ) ) ) + ->setLabel( __( 'Min Height', 'kenta' ) ) + ->setDefaultValue( $this->getRowControlDefault( 'min_height', '80px' ) ) + ->asyncCss( ".kenta-header-row-{$this->id} .container", [ 'min-height' => 'value' ] ) + ->setDefaultUnit( 'px' ) + ->enableResponsive() + ->setMin( 20 ) + ->setMax( 800 ) + , + ( new Number( $this->getRowControlKey( 'z_index' ) ) ) + ->setLabel( __( 'Z Index', 'kenta' ) ) + ->setMin( - 99999 ) + ->setMax( 99999 ) + ->setDefaultUnit( false ) + ->setDefaultValue( $this->getRowControlDefault( 'z_index', 9 ) ) + , + ( new Toggle( $this->getRowControlKey( 'render_empty' ) ) ) + ->setLabel( __( 'Render Empty Row', 'kenta' ) ) + ->closeByDefault() + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + , + ( new MultiSelect( $this->getRowControlKey( 'visibility' ) ) ) + ->setLabel( __( 'Visibility', 'kenta' ) ) + ->buttonsGroupView() + ->setChoices( [ + 'desktop' => kenta_image( 'desktop' ), + 'tablet' => kenta_image( 'tablet' ), + 'mobile' => kenta_image( 'mobile' ) + ] ) + ->asyncCss( ".kenta-header-row-{$this->id}", [ + 'display' => [ + 'desktop' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['desktop']" ) ), + 'tablet' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['tablet']" ) ), + 'mobile' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'block', + 'no' => 'none' + ], "value['mobile']" ) ), + ] + ] ) + ->setDefaultValue( [ + 'desktop' => 'yes', + 'tablet' => 'yes', + 'mobile' => 'yes', + ] ) + , + ]; + + $style_controls = array_merge( + [ ( new Info() )->hideBackground()->setInfo( __( 'Override Global Colors', 'kenta' ) ) ], + $this->getGlobalColorControls( $this->getRowControlKey( '' ), ".kenta-header-row-{$this->id}" ), + [ + ( new Separator() ), + ( new Border( $this->getRowControlKey( 'border_top' ) ) ) + ->setLabel( __( 'Top Border', 'kenta' ) ) + ->asyncCss( ".kenta-header-row-{$this->id}", AsyncCss::border( 'border-top' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( + ...$this->getRowControlDefault( 'border_top', [ + 1, + 'none', + 'var(--kenta-base-300)' + ] ) ) + , + ( new Border( $this->getRowControlKey( 'border_bottom' ) ) ) + ->setLabel( __( 'Bottom Border', 'kenta' ) ) + ->asyncCss( ".kenta-header-row-{$this->id}", AsyncCss::border( 'border-bottom' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( + ...$this->getRowControlDefault( 'border_bottom', [ + 1, + 'none', + 'var(--kenta-base-300)' + ] ) ) + , + ( new BoxShadow( $this->getRowControlKey( 'shadow' ) ) ) + ->setLabel( __( 'Box Shadow', 'kenta' ) ) + ->asyncCss( ".kenta-header-row-{$this->id}", AsyncCss::shadow() ) + ->enableResponsive() + ->displayBlock() + ->setDefaultShadow( + ...$this->getRowControlDefault( 'shadow', [ + 'rgba(44, 62, 80, 0.05)', + '0px', + '10px', + '10px', + '0px', + false + ] + ) ) + , + ( new Background( $this->getRowControlKey( 'background' ) ) ) + ->setLabel( __( 'Background', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( ".kenta-header-row-{$this->id}", AsyncCss::background() ) + ->setDefaultValue( $this->getRowControlDefault( 'background', [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)' + ] ) ) + ] + ); + + return [ + ( new Tabs() ) + ->setActiveTab( 'general' ) + ->addTab( 'general', __( 'General', 'kenta' ), apply_filters( + 'kenta_header_row_general_controls', $general_controls, $this->getRowControlKey( '' ), $this->id + ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), apply_filters( + 'kenta_header_row_style_controls', $style_controls, $this->getRowControlKey( '' ), $this->id + ) ) + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/builder/class-modal-row.php b/wp-content/themes/kenta/inc/builder/class-modal-row.php new file mode 100644 index 0000000000..5c5fbb0c25 --- /dev/null +++ b/wp-content/themes/kenta/inc/builder/class-modal-row.php @@ -0,0 +1,195 @@ + '--kenta-modal-action-initial', + 'hover' => '--kenta-modal-action-hover', + ] ); + + if ( CZ::get( 'kenta_canvas_modal_type' ) === 'drawer' ) { + $fixed['width'] = CZ::get( 'kenta_canvas_drawer_width' ); + + $fixed[ ( CZ::get( 'kenta_canvas_drawer_placement' ) === 'left' ) ? 'margin-right' : 'margin-left' ] = 'auto'; + } + + $css['.kenta-off-canvas .kenta-modal-inner'] = $fixed; + + $css['.kenta-off-canvas .kenta-modal-inner'] = array_merge( + Css::shadow( CZ::get( 'kenta_canvas_modal_shadow' ) ), + Css::background( CZ::get( 'kenta_canvas_modal_background' ) ) + , $fixed + ); + + $css['.kenta-off-canvas'] = Css::background( CZ::get( 'kenta_canvas_modal_mask' ) ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function beforeRow() { + $behaviour = 'toggle'; + + if ( CZ::get( 'kenta_canvas_modal_type' ) === 'drawer' ) { + $behaviour = 'drawer-' . CZ::get( 'kenta_canvas_drawer_placement' ); + } + + $attrs = [ + 'id' => 'kenta-off-canvas-modal', + 'class' => 'kenta-off-canvas kenta-modal', + 'data-toggle-behaviour' => $behaviour, + ]; + + $inner_attrs = [ + 'class' => 'kenta-modal-inner' + ]; + + if ( is_customize_preview() ) { + $inner_attrs['data-shortcut'] = 'border'; + $inner_attrs['data-shortcut-location'] = 'kenta_header:' . $this->id; + } + + ?> +
> +
> +
+ +
+
+
'; + } + + protected function getRowControls() { + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $this->getContentControls() ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getStyleControls() ) + ]; + } + + protected function getStyleControls() { + return [ + ( new ColorPicker( 'kenta_canvas_close_button_color' ) ) + ->setLabel( __( 'Close Button Color', 'kenta' ) ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-accent-color)' ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ( new Separator() ), + ( new Background( 'kenta_canvas_modal_background' ) ) + ->setLabel( __( 'Modal Background', 'kenta' ) ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)', + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_canvas_modal_type' => 'drawer' ] ) + ->setControls( [ + ( new Background( 'kenta_canvas_modal_mask' ) ) + ->setLabel( __( 'Modal Mask', 'kenta' ) ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'rgba(0, 0, 0, 0)', + ] ) + , + ( new BoxShadow( 'kenta_canvas_modal_shadow' ) ) + ->setLabel( __( 'Modal Shadow', 'kenta' ) ) + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.35)', + '0px', '0px', + '70px', '0px', true + ) + , + ] ) + , + ]; + } + + protected function getContentControls() { + return [ + ( new Radio( 'kenta_canvas_modal_type' ) ) + ->setLabel( __( 'Modal Type', 'kenta' ) ) + ->setDefaultValue( 'drawer' ) + ->buttonsGroupView() + ->setChoices( [ + 'modal' => __( 'Modal', 'kenta' ), + 'drawer' => __( 'Drawer', 'kenta' ), + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_canvas_modal_type' => 'drawer' ] ) + ->setControls( [ + ( new Radio( 'kenta_canvas_drawer_placement' ) ) + ->setLabel( __( 'Drawer Placement', 'kenta' ) ) + ->setDefaultValue( 'right' ) + ->buttonsGroupView() + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new Slider( 'kenta_canvas_drawer_width' ) ) + ->setLabel( __( 'Drawer Width', 'kenta' ) ) + ->enableResponsive() + ->setDefaultValue( [ + 'desktop' => '500px', + 'tablet' => '65vw', + 'mobile' => '90vw', + ] ) + ->setOption( 'units', Utils::units_config( [ + [ 'unit' => 'px', 'min' => 0, 'max' => 1000 ], + ] ) ) + , + ] ) + , + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer.php b/wp-content/themes/kenta/inc/customizer.php new file mode 100644 index 0000000000..f66edf79c9 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer.php @@ -0,0 +1,306 @@ + $args ) { + if ( ! \LottaFramework\Utils::str_starts_with( $id, 'lotta_rand' ) ) { + if ( isset( $args['default'] ) ) { + $settings[ $id ] = [ + 'default' => $args['default'] + ]; + } + } + } + + return $settings; +} + +/** + * Theme customizer register + * + * @param WP_Customize_Manager|null $wp_customize Theme Customizer object. + */ +function kenta_customize_register( $wp_customize ) { + + if ( ! $wp_customize instanceof WP_Customize_Manager ) { + $wp_customize = null; + } + + if ( $wp_customize ) { + $wp_customize->get_setting( 'blogname' )->transport = 'postMessage'; + $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; + + if ( isset( $wp_customize->selective_refresh ) ) { + $wp_customize->selective_refresh->add_partial( + 'blogname', + array( + 'selector' => '.site-title a', + 'render_callback' => function () { + echo esc_html( get_bloginfo( 'name' ) ); + }, + ) + ); + $wp_customize->selective_refresh->add_partial( + 'blogdescription', + array( + 'selector' => '.site-tagline', + 'render_callback' => function () { + echo esc_html( get_bloginfo( 'description' ) ); + }, + ) + ); + } + + if ( ! KENTA_CMP_ACTIVE ) { + $wp_customize->add_section( new CallToActionSection( $wp_customize, 'kenta_install_companion', array( + 'priority' => 0, + 'title' => __( 'Install Companion Plugin', 'kenta' ), + 'link' => array( + 'url' => esc_url_raw( add_query_arg( array( + 'action' => 'kenta_install_companion', + '_wpnonce' => wp_create_nonce( 'kenta_install_companion' ) + ), admin_url( 'admin.php' ) ) ), + ), + 'desc' => kenta_why_companion_link() + ) ) ); + } else { + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $wp_customize->add_section( new CallToActionSection( $wp_customize, 'kenta_upgrade', array( + 'priority' => 0, + 'title' => __( 'Upgrade To Pro', 'kenta' ), + 'link' => array( + 'url' => kenta_upsell_url(), + 'target' => '_blank', + ) + ) ) ); + } + + $wp_customize->add_section( new CallToActionSection( $wp_customize, 'kenta_visit_starter_sites', array( + 'priority' => 0, + 'title' => __( 'Visit Starter Sites', 'kenta' ), + 'link' => array( + 'url' => add_query_arg( [ 'page' => 'kenta-starter-sites' ], admin_url( 'admin.php' ) ), + 'target' => '_blank', + ) + ) ) ); + } + + $wp_customize->add_section( new CallToActionSection( $wp_customize, 'kenta_update_dynamic_css_cache', array( + 'priority' => 99999, + 'title' => __( 'Update Customizer Cache', 'kenta' ), + 'desc' => __( 'If the final style is not the same as the preview, please try to update the cache', 'kenta' ), + 'link' => array( + 'url' => esc_url_raw( add_query_arg( array( + 'action' => 'kenta_update_dynamic_css_cache', + '_wpnonce' => wp_create_nonce( 'kenta_update_dynamic_css_cache' ) + ), admin_url( 'admin.php' ) ) ), + ) + ) ) ); + } + + // Don't cache woocommerce controls + if ( KENTA_WOOCOMMERCE_ACTIVE ) { + if ( $wp_customize ) { + CZ::changeObject( $wp_customize, 'panel', 'woocommerce', 'priority', 20 ); + // Remove default catalog columns + $wp_customize->remove_control( 'woocommerce_catalog_columns' ); + } + + CZ::addSection( $wp_customize, new Kenta_Store_Notice_Section( 'woocommerce_store_notice', __( 'Store Notice', 'kenta' ), 0, 'woocommerce' ) ); + CZ::addSection( $wp_customize, new Kenta_Store_Catalog_Section( 'woocommerce_product_catalog', __( 'Product Catalog', 'kenta' ), 0, 'woocommerce' ) ); + } + + $settings_version = kenta_get_option( 'customizer_default_settings_version' ); + $enable_customizer_cache = get_option( 'kenta_enable_customizer_cache', apply_filters( 'kenta_enable_customizer_cache_default_value', 'yes' ) ); + // load cached cz settings + if ( ! kenta_apply_filters( 'should_reload_customizer_settings', ( $wp_customize || $enable_customizer_cache === 'no' || kenta_get_theme_version() !== $settings_version ) ) ) { + $default_options = kenta_get_option( 'customizer_default_settings', [] ); + if ( ! empty( $default_options ) ) { + CZ::restore( array_merge( $default_options, kenta_cz_settings() ) ); + \LottaFramework\Customizer\Controls\Typography::setQueued( + kenta_get_option( 'customizer_queued_typography', [] ) + ); + + // Manually trigger after register action for builders + Kenta_Header_Builder::instance()->builder()->do( 'after_register' ); + Kenta_Footer_Builder::instance()->builder()->do( 'after_register' ); + + return; + } + } + + Kenta_Placeholders::instance(); + + CZ::addSection( $wp_customize, new Kenta_Header_Section( 'kenta_header', __( 'Header Builder', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Footer_Section( 'kenta_footer', __( 'Footer Builder', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Homepage_Section( 'static_front_page', __( 'Homepage Settings', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Colors_Section( 'kenta_colors', __( 'Colors', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Background_Section( 'kenta_background', __( 'Background', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Global_Section( 'kenta_global', __( 'Global', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Archive_Section( 'kenta_archive', __( 'Archive Settings', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Content_Section( 'kenta_content', __( 'Content Settings', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Single_Post_Section( 'kenta_single_post', __( 'Single Post Settings', 'kenta' ) ) ); + CZ::addSection( $wp_customize, new Kenta_Pages_Section( 'kenta_pages', __( 'Pages Settings', 'kenta' ) ) ); + + /** + * Cache customizer settings + */ + $settings = kenta_cz_settings(); + kenta_update_customizer_default_settings( $settings ); + kenta_do_action( 'customizer_default_settings_saved', $settings ); +} + +add_action( 'customize_register', 'kenta_customize_register' ); +add_action( 'kenta_after_lotta_framework_bootstrap', 'kenta_customize_register' ); + +if ( ! function_exists( 'kenta_customizer_scripts' ) ) { + /** + * Enqueue customizer scripts + */ + function kenta_customizer_scripts() { + kenta_enqueue_global_vars(); + } +} +add_action( 'customize_controls_enqueue_scripts', 'kenta_customizer_scripts' ); + +/** + * Change customizer localize object + * + * @param $localize + * + * @return mixed + */ +function kenta_customizer_localize( $localize ) { + $localize['customizer']['colorPicker']['swatches'] = [ + 'var(--kenta-primary-color)', + 'var(--kenta-primary-active)', + 'var(--kenta-accent-color)', + 'var(--kenta-accent-active)', + 'var(--kenta-base-300)', + 'var(--kenta-base-200)', + 'var(--kenta-base-100)', + 'var(--kenta-base-color)', + Css::INITIAL_VALUE, + ]; + + $localize['customizer']['gradientPicker']['swatches'] = array_merge( + $localize['customizer']['gradientPicker']['swatches'], + [ + [ "gradient" => "linear-gradient(to right, rgb(142, 158, 171), rgb(238, 242, 243))" ], + [ "gradient" => "linear-gradient(to right, rgb(172, 203, 238), rgb(231, 240, 253))" ], + [ "gradient" => "linear-gradient(to right, rgb(211, 204, 227), rgb(233, 228, 240))" ], + [ "gradient" => "linear-gradient(to right, rgb(217, 167, 199), rgb(255, 252, 220))" ], + [ "gradient" => "linear-gradient(to right, rgb(251, 200, 212), rgb(151, 149, 240))" ], + [ "gradient" => "linear-gradient(to right, rgb(255, 226, 89), rgb(255, 167, 81))" ], + [ "gradient" => "linear-gradient(to right, rgb(247, 151, 30), rgb(255, 210, 0))" ], + [ "gradient" => "linear-gradient(to right, rgb(248, 54, 0), rgb(249, 212, 35))" ], + [ "gradient" => "linear-gradient(to right, rgb(238, 156, 167), rgb(255, 221, 225))" ], + [ "gradient" => "linear-gradient(to right, rgb(252, 203, 144), rgb(213, 126, 235))" ], + [ "gradient" => "linear-gradient(to right, rgb(255, 129, 119), rgb(177, 42, 91))" ], + [ "gradient" => "linear-gradient(to right, rgb(242, 112, 156), rgb(255, 148, 114))" ], + [ "gradient" => "linear-gradient(to right, rgb(237, 66, 100), rgb(255, 237, 188))" ], + [ "gradient" => "linear-gradient(to right, rgb(255, 68, 197), rgb(255, 241, 163))" ], + [ "gradient" => "linear-gradient(to right, rgb(236, 0, 140), rgb(252, 103, 103))" ], + [ "gradient" => "linear-gradient(to right, rgb(121, 0, 255), rgb(255, 88, 202))" ], + [ "gradient" => "linear-gradient(to right, rgb(183, 33, 255), rgb(33, 212, 253))" ], + [ "gradient" => "linear-gradient(to right, rgb(106, 17, 203), rgb(119, 212, 255))" ], + [ "gradient" => "linear-gradient(to right, rgb(43, 152, 248), rgb(0, 254, 163))" ], + [ "gradient" => "linear-gradient(to right, rgb(84, 51, 255), rgb(32, 189, 255), rgb(165, 254, 203))" ], + [ "gradient" => "linear-gradient(to right, rgb(202, 197, 49), rgb(243, 249, 167))" ], + [ "gradient" => "linear-gradient(to right, rgb(161, 255, 206), rgb(250, 255, 209))" ], + [ "gradient" => "linear-gradient(to right, rgb(29, 151, 108), rgb(147, 249, 185))" ], + [ "gradient" => "linear-gradient(to right, rgb(255, 224, 0), rgb(121, 159, 12))" ], + [ "gradient" => "linear-gradient(to right, rgb(86, 171, 47), rgb(168, 224, 99))" ], + [ "gradient" => "linear-gradient(to right, rgb(66, 147, 33), rgb(180, 236, 81))" ], + [ "gradient" => "linear-gradient(to right, rgb(22, 160, 133), rgb(244, 208, 63))" ], + [ "gradient" => "linear-gradient(to right, rgb(78, 247, 255), rgb(255, 205, 27))" ], + [ "gradient" => "linear-gradient(to right, rgb(94, 231, 223), rgb(180, 144, 202))" ], + [ "gradient" => "linear-gradient(to right, rgb(186, 200, 224), rgb(106, 133, 182))" ], + [ "gradient" => "linear-gradient(to right, rgb(161, 196, 253), rgb(194, 233, 251))" ], + [ "gradient" => "linear-gradient(to right, rgb(102, 126, 234), rgb(118, 75, 162))" ], + [ "gradient" => "linear-gradient(to right, rgb(173, 83, 137), rgb(60, 16, 83))" ], + [ "gradient" => "linear-gradient(to right, rgb(102, 166, 255), rgb(137, 247, 254))" ], + [ "gradient" => "linear-gradient(to right, rgb(97, 144, 232), rgb(167, 191, 232))" ], + [ "gradient" => "linear-gradient(to right, rgb(71, 59, 123), rgb(48, 210, 190))" ], + [ "gradient" => "linear-gradient(to right, rgb(20, 136, 204), rgb(43, 50, 178))" ], + [ "gradient" => "linear-gradient(to right, rgb(9, 48, 40), rgb(35, 122, 87))" ], + [ "gradient" => "linear-gradient(to right, rgb(100, 65, 165), rgb(42, 8, 69))" ], + [ "gradient" => "linear-gradient(to right, rgb(35, 37, 38), rgb(65, 67, 69))" ], + [ "gradient" => "linear-gradient(to right, rgb(15, 32, 39), rgb(32, 58, 67), rgb(44, 83, 100))" ], + [ "gradient" => "linear-gradient(to right, rgb(20, 30, 48), rgb(36, 59, 8 ]5))" ] + ] + ); + + return $localize; +} + +add_filter( 'lotta_filter_customizer_js_localize', 'kenta_customizer_localize' ); diff --git a/wp-content/themes/kenta/inc/customizer/class-archive-section.php b/wp-content/themes/kenta/inc/customizer/class-archive-section.php new file mode 100644 index 0000000000..ba1ebb9330 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-archive-section.php @@ -0,0 +1,531 @@ +getArchiveLayoutControls(), + [ + ( new Section( 'kenta_archive_title' ) ) + ->setLabel( __( 'Header', 'kenta' ) ) + ->setControls( $this->getArchiveHeaderControls() ) + , + + ( new Section( 'kenta_archive_card_section' ) ) + ->setLabel( __( 'Post Card', 'kenta' ) ) + ->setControls( $this->getCardControls() ) + , + + ( new Section( 'kenta_archive_pagination_section' ) ) + ->setLabel( __( 'Pagination', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getPaginationControls() ) + , + + ( new Section( 'kenta_archive_sidebar_section' ) ) + ->setLabel( __( 'Sidebar', 'kenta' ) ) + ->enableSwitch( false ) + ->keepMarginBelow() + ->setControls( [ + ( new ImageRadio( 'kenta_archive_sidebar_layout' ) ) + ->setLabel( __( 'Sidebar Layout', 'kenta' ) ) + ->setDefaultValue( 'right-sidebar' ) + ->setChoices( [ + 'left-sidebar' => [ + 'title' => __( 'Left Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'archive-left-sidebar.png' ), + ], + 'right-sidebar' => [ + 'title' => __( 'Right Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'archive-right-sidebar.png' ), + ], + ] ) + , + ( new CallToAction() ) + ->setLabel( __( 'Customize Sidebar', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( 'kenta_global:kenta_global_sidebar_section' ) + , + ] ) + , + kenta_docs_control( + __( '%sRead documentation for archive customize%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/archive-theme-options/archive-layout/', + 'kenta_archive_layout_doc' + ) + ] + ); + } + + /** + * @return array + */ + protected function getArchiveLayoutControls() { + $controls = [ + ( new Slider( 'kenta_archive_columns' ) ) + ->setLabel( __( 'Card Columns', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( false ) + ->setMin( 1 ) + ->setMax( 6 ) + ->enableResponsive() + ->setDefaultValue( [ + 'desktop' => 3, + 'tablet' => 2, + 'mobile' => 1, + ] ) + , + ( new Slider( 'kenta_card_gap' ) ) + ->setLabel( __( 'Card Gap', 'kenta' ) ) + ->asyncCss( '.card-list', [ '--card-gap' => 'value' ] ) + ->enableResponsive() + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ]; + + return apply_filters( 'kenta_archive_layout_controls', $controls ); + } + + /** + * @return array + */ + protected function getArchiveHeaderControls() { + $controls = [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $this->getArchiveHeaderContentControls() ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getArchiveHeaderStyleControls() ) + , + ]; + + return apply_filters( 'kenta_archive_header_controls', $controls ); + } + + protected function getArchiveHeaderContentControls() { + $controls = [ + ( new Toggle( 'kenta_disable_blogs_archive_header' ) ) + ->setLabel( __( 'Disable Header On Blogs Home', 'kenta' ) ) + ->selectiveRefresh( '.kenta-archive-header', 'kenta_show_archive_header', [ + 'container_inclusive' => true, + ] ) + ->openByDefault() + , + ]; + + if ( KENTA_WOOCOMMERCE_ACTIVE ) { + $controls[] = ( new Toggle( 'kenta_disable_shop_archive_header' ) ) + ->setLabel( __( 'Disable Header On Shop', 'kenta' ) ) + ->selectiveRefresh( '.kenta-archive-header', 'kenta_show_archive_header', [ + 'container_inclusive' => true, + ] ) + ->closeByDefault(); + } + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $controls[] = ( new Separator() ); + $controls[] = ( new Text( 'kenta_blogs_archive_header_title' ) ) + ->setLabel( __( 'Blogs Page Title', 'kenta' ) ) + ->selectiveRefresh( '.kenta-archive-header', 'kenta_show_archive_header', [ + 'container_inclusive' => true, + ] ) + ->setDefaultValue( __( 'Blogs', 'kenta' ) ); + } + + return apply_filters( 'kenta_archive_header_content_controls', $controls ); + } + + protected function getArchiveHeaderStyleControls() { + $controls = [ + ( new Radio( 'kenta_archive_header_alignment' ) ) + ->setLabel( __( 'Alignment', 'kenta' ) ) + ->asyncCss( '.kenta-archive-header', [ 'text-align' => 'value' ] ) + ->buttonsGroupView() + ->setDefaultValue( 'center' ) + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'center' => __( 'Center', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new Spacing( 'kenta_archive_header_padding' ) ) + ->setLabel( __( 'Padding', 'kenta' ) ) + ->asyncCss( '.kenta-archive-header .container', AsyncCss::dimensions( 'padding' ) ) + ->setSpacing( [ + 'top' => '24px', + 'bottom' => '24px', + 'left' => '0px', + 'right' => '0px', + 'linked' => true, + ] ) + , + ( new Separator() ), + ( new Background( 'kenta_archive_header_background' ) ) + ->setLabel( __( 'Background', 'kenta' ) ) + ->asyncCss( '.kenta-archive-header', AsyncCss::background() ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-accent-active)', + ] ) + , + ( new Separator() ), + ( new Toggle( 'kenta_archive_header_has_overlay' ) ) + ->setLabel( __( 'Enable Overlay', 'kenta' ) ) + ->selectiveRefresh( '.kenta-archive-header', 'kenta_show_archive_header', [ + 'container_inclusive' => true, + ] ) + ->closeByDefault() + , + ( new Condition() ) + ->setCondition( [ 'kenta_archive_header_has_overlay' => 'yes' ] ) + ->setControls( [ + ( new Slider( 'kenta_archive_header_overlay_opacity' ) ) + ->setLabel( __( 'Overlay Opacity', 'kenta' ) ) + ->asyncCss( '.kenta-archive-header::after', [ 'opacity' => 'value' ] ) + ->setMin( 0 ) + ->setMax( 1 ) + ->setDecimals( 2 ) + ->setDefaultUnit( false ) + ->setDefaultValue( 0.6 ) + , + ( new Background( 'kenta_archive_header_overlay' ) ) + ->setLabel( __( 'Header Overlay', 'kenta' ) ) + ->asyncCss( '.kenta-archive-header::after', AsyncCss::background() ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-accent-color)', + ] ) + , + ] ), + ]; + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $controls = array_merge( + [ + ( new ColorPicker( 'kenta_archive_title_color' ) ) + ->setLabel( __( 'Title Color', 'kenta' ) ) + ->asyncColors( '.kenta-archive-header .archive-title', [ + 'initial' => 'color', + ] ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-base-color)' ) + , + ( new ColorPicker( 'kenta_archive_description_color' ) ) + ->setLabel( __( 'Description Color', 'kenta' ) ) + ->asyncColors( '.kenta-archive-header .archive-description', [ + 'initial' => 'color', + ] ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-base-200)' ) + , + ], + $controls + ); + } + + return apply_filters( 'kenta_archive_header_style_controls', $controls ); + } + + /** + * @return array + */ + protected function getCardControls() { + + $content_controls = array_merge( + array( + $this->getPostElementsLayer( 'kenta_card_structure', 'entry', [ + 'selective-refresh' => [ '.kenta-posts', 'kenta_render_posts_list' ], + 'selector' => '.card', + 'value' => [ + [ 'id' => 'thumbnail', 'visible' => true ], + [ 'id' => 'categories', 'visible' => true ], + [ 'id' => 'title', 'visible' => true ], + [ 'id' => 'metas', 'visible' => true ], + [ 'id' => 'excerpt', 'visible' => true ], + [ 'id' => 'divider', 'visible' => true ], + [ 'id' => 'read-more', 'visible' => true ], + ], + 'title' => [], + 'cats' => [], + 'tags' => [], + 'metas' => [], + 'divider' => [], + ] ), + ( new Separator() ) + ), + $this->getCardContentControls( 'kenta_' ) + ); + + $style_controls = $this->getCardStyleControls( 'kenta_', [ + 'preset' => 'plain', + 'selective' => 'kenta-global-selective-css', + ] ); + + return array( + kenta_docs_control( + __( '%sRead documentation for post card options%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/archive-theme-options/post-card/' + ), + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), apply_filters( + 'kenta_card_content_controls', + $content_controls + ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), apply_filters( + 'kenta_card_style_controls', + $style_controls, + array( 'selector' => '.card' ) + ) ) + ); + } + + /** + * @return array + */ + protected function getPaginationControls() { + return [ + kenta_docs_control( __( '%sRead documentation for posts pagination%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/archive-theme-options/pagination/' ), + ( new Tabs() ) + ->setActiveTab( 'general' ) + ->addTab( 'general', __( 'General', 'kenta' ), $this->getPaginationGeneralControls() ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getPaginationStyleControls() ) + , + ]; + } + + /** + * @return array + */ + protected function getPaginationGeneralControls() { + + $pagination_type = [ + 'numbered' => __( 'Numbered', 'kenta' ), + 'prev-next' => __( 'Prev & Next', 'kenta' ), + 'load-more' => __( 'Load More', 'kenta' ), + 'infinite-scroll' => __( 'Infinite Scroll', 'kenta' ), + ]; + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $pagination_type['load-more'] = $pagination_type['load-more'] . ' (Pro Only)'; + $pagination_type['infinite-scroll'] = $pagination_type['infinite-scroll'] . ' (Pro Only)'; + } + + $controls = [ + ( new Select( 'kenta_pagination_type' ) ) + ->setLabel( __( 'Pagination Type', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->setDefaultValue( 'numbered' ) + ->setChoices( $pagination_type ) + , + ( new ImageRadio( 'kenta_pagination_alignment' ) ) + ->setLabel( __( 'Alignment', 'kenta' ) ) + ->inlineChoices() + ->asyncCss( '.kenta-pagination', [ 'justify-content' => 'value' ] ) + ->setDefaultValue( 'center' ) + ->setChoices( [ + 'flex-start' => [ + 'src' => kenta_image( 'text-left' ) + ], + 'center' => [ + 'src' => kenta_image( 'text-center' ) + ], + 'flex-end' => [ + 'src' => kenta_image( 'text-right' ) + ], + ] ) + , + ( new Separator() ), + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_type' => 'numbered' ] ) + ->setControls( [ + ( new Toggle( 'kenta_pagination_prev_next_button' ) ) + ->setLabel( __( 'Previous & Next Buttons', 'kenta' ) ) + ->openByDefault() + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + , + ( new Separator() ), + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_type' => 'numbered|prev-next' ] ) + ->setControls( [ + ( new Radio( 'kenta_pagination_prev_next_type' ) ) + ->setLabel( __( 'Previous & Next Type', 'kenta' ) ) + ->setDefaultValue( 'icon' ) + ->buttonsGroupView() + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->setChoices( [ + 'text' => __( 'Text', 'kenta' ), + 'icon' => __( 'Icon', 'kenta' ), + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_prev_next_type' => 'icon' ] ) + ->setControls( [ + ( new Icons( 'kenta_pagination_prev_icon' ) ) + ->setLabel( __( 'Previous Icon', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->setDefaultValue( [ + 'value' => 'fas fa-arrow-left-long', + 'library' => 'fa-solid', + ] ) + , + ( new Icons( 'kenta_pagination_next_icon' ) ) + ->setLabel( __( 'Next Icon', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->setDefaultValue( [ + 'value' => 'fas fa-arrow-right-long', + 'library' => 'fa-solid', + ] ) + , + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_prev_next_type' => 'text' ] ) + ->setControls( [ + ( new Text( 'kenta_pagination_prev_text' ) ) + ->setLabel( __( 'Previous Text', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->displayInline() + ->setDefaultValue( __( 'Prev', 'kenta' ) ) + , + ( new Text( 'kenta_pagination_next_text' ) ) + ->setLabel( __( 'Next Text', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->displayInline() + ->setDefaultValue( __( 'Next', 'kenta' ) ) + , + ] ) + , + ( new Separator() ), + ( new Toggle( 'kenta_pagination_disabled_button' ) ) + ->setLabel( __( 'Show Disabled Buttons', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->closeByDefault() + , + ( new Toggle( 'kenta_pagination_scroll_reveal' ) ) + ->setLabel( __( 'Enable Scroll Reveal', 'kenta' ) ) + ->selectiveRefresh( '.kenta-pagination', 'kenta_show_posts_pagination', [ + 'container_inclusive' => true, + ] ) + ->openByDefault() + , + ] ) + , + ]; + + return apply_filters( 'kenta_pagination_general_controls', $controls ); + } + + /** + * @return array + */ + protected function getPaginationStyleControls() { + $controls = [ + ( new Typography( 'kenta_pagination_typography' ) ) + ->setLabel( __( 'Typography', 'kenta' ) ) + ->asyncCss( '.kenta-pagination', AsyncCss::typography() ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '0.875rem', + 'variant' => '400', + 'lineHeight' => '1', + ] ) + , + ( new Separator() ), + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_type' => 'numbered|prev-next' ] ) + ->setControls( [ + ( new ColorPicker( 'kenta_pagination_button_color' ) ) + ->setLabel( __( 'Text Color', 'kenta' ) ) + ->asyncColors( '.kenta-pagination', [ + 'initial' => '--kenta-pagination-initial-color', + 'active' => '--kenta-pagination-active-color', + 'accent' => '--kenta-pagination-accent-color', + ] ) + ->addColor( 'initial', __( 'Text Initial', 'kenta' ), 'var(--kenta-accent-active)' ) + ->addColor( 'active', __( 'Text Active', 'kenta' ), 'var(--kenta-base-color)' ) + ->addColor( 'accent', __( 'Accent', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ( new Border( 'kenta_pagination_button_border' ) ) + ->setLabel( __( 'Border', 'kenta' ) ) + ->displayInline() + ->asyncCss( '.kenta-pagination', AsyncCss::border( '--kenta-pagination-button-border' ) ) + ->setDefaultBorder( 2, 'solid', 'var(--kenta-base-300)' ) + , + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_pagination_type' => 'numbered|prev-next|load-more' ] ) + ->setControls( [ + ( new Slider( 'kenta_pagination_button_radius' ) ) + ->setLabel( __( 'Radius', 'kenta' ) ) + ->asyncCss( '.kenta-pagination', [ '--kenta-pagination-button-radius' => 'value' ] ) + ->enableResponsive() + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '2px' ) + ->setMin( 0 ) + ->setMax( 100 ) + , + ] ) + ]; + + return apply_filters( 'kenta_pagination_style_controls', $controls ); + } + } +} + diff --git a/wp-content/themes/kenta/inc/customizer/class-background-section.php b/wp-content/themes/kenta/inc/customizer/class-background-section.php new file mode 100644 index 0000000000..02f4e94396 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-background-section.php @@ -0,0 +1,101 @@ +setLabel( __( 'Site Wrap', 'kenta' ) ) + ->setDescription( __( 'Enable boundaries for your site on large screens (>1600px)', 'kenta' ) ) + ->asyncCss( '.kenta-site-wrap', [ + 'max-width' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => '1600px', + 'no' => 'inherit', + ] ) ), + '--kenta-site-wrap-width' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => '1600px', + 'no' => '100vw', + ] ) ), + ] ) + ->closeByDefault() + , + ( new Background( 'kenta_site_background' ) ) + ->setLabel( __( 'Site Background', 'kenta' ) ) + ->asyncCss( '.kenta-site-wrap', AsyncCss::background() ) + ->enableResponsive() + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-base-100)', + ] ) + , + ( new Condition( 'kenta_site_wrap_condition' ) ) + ->setCondition( [ 'kenta_enable_site_wrap' => 'yes' ] ) + ->setControls( [ + ( new Background( 'kenta_site_body_background' ) ) + ->setLabel( __( 'Body Background', 'kenta' ) ) + ->asyncCss( '.kenta-body', AsyncCss::background() ) + ->enableResponsive() + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-base-200)', + ] ) + , + ( new BoxShadow( 'kenta_site_wrap_shadow' ) ) + ->setLabel( __( 'Site Box Shadow', 'kenta' ) ) + ->asyncCss( '.kenta-site-wrap', AsyncCss::shadow() ) + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.06)', + '0px', + '0px', + '24px', + '0px', + true + ) + , + ] ) + , + kenta_docs_control( + __( '%sLearn how to use site wrap & site background%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general-theme-options/site-wrap-site-background/', + 'kenta_site_wrap_doc' + )->hideBackground(), + ( new Filters( 'kenta_site_filters' ) ) + ->setLabel( __( 'Site Css Filters', 'kenta' ) ) + ->asyncCss( ':root', AsyncCss::filters() ) + , + kenta_docs_control( + __( '%sLearn how to use site filters', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general-theme-options/site-css-filters/', + 'kenta_site_filters_doc' + )->hideBackground(), + ]; + + return apply_filters( 'kenta_background_controls', $controls ); + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer/class-colors-section.php b/wp-content/themes/kenta/inc/customizer/class-colors-section.php new file mode 100644 index 0000000000..5132b9283f --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-colors-section.php @@ -0,0 +1,159 @@ +setActiveTab( 'light' ) + ->addTab( 'light', __( 'Light', 'kenta' ), $this->getColors( 'light', kenta_color_presets() ) ) + ->addTab( 'dark', __( 'Dark', 'kenta' ), $this->getColors( 'dark', kenta_dark_color_presets(), [ + 'primary-color' => \LottaFramework\Facades\Css::INITIAL_VALUE, + 'primary-active' => \LottaFramework\Facades\Css::INITIAL_VALUE, + ] ) ), + kenta_docs_control( + __( '%sRead Colors Documentation%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general-theme-options/colors/', + 'kenta_colors_doc' + )->hideBackground(), + ( new Separator( 'kenta_dark_color_palette_separator' ) ), + ( new Toggle( 'kenta_default_dark_scheme' ) ) + ->setLabel( __( 'Use Dark Scheme As Default', 'kenta' ) ) + ->closeByDefault() + , + ( new Toggle( 'kenta_save_color_scheme' ) ) + ->setLabel( __( 'Save User Color Scheme', 'kenta' ) ) + ->setDescription( __( "Save the user's color scheme to the cookie and refresh the page without losing current color scheme.", 'kenta' ) ) + ->openByDefault() + , + ]; + } + + protected function getColors( $scheme, $palettes = [], $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'primary-color' => "var(--kenta-{$scheme}-primary-color)", + 'primary-active' => "var(--kenta-{$scheme}-primary-active)", + 'accent-color' => "var(--kenta-{$scheme}-accent-color)", + 'accent-active' => "var(--kenta-{$scheme}-accent-active)", + 'base-300' => "var(--kenta-{$scheme}-base-300)", + 'base-200' => "var(--kenta-{$scheme}-base-200)", + 'base-100' => "var(--kenta-{$scheme}-base-100)", + 'base-color' => "var(--kenta-{$scheme}-base-color)", + ] ); + + $prefix = $scheme === 'light' ? 'kenta' : "kenta_{$scheme}"; + + $palettesControl = ( new ColorPalettes( "{$prefix}_color_palettes", [ + 'kenta-primary-color' => __( 'Primary Color', 'kenta' ), + 'kenta-primary-active' => __( 'Primary Active', 'kenta' ), + 'kenta-accent-color' => __( 'Accent Color', 'kenta' ), + 'kenta-accent-active' => __( 'Accent Active', 'kenta' ), + 'kenta-base-color' => __( 'Base Color', 'kenta' ), + 'kenta-base-50' => __( 'Base 50', 'kenta' ), + 'kenta-base-100' => __( 'Base 100', 'kenta' ), + 'kenta-base-200' => __( 'Base 200', 'kenta' ), + 'kenta-base-300' => __( 'Base 300', 'kenta' ), + ] ) ) + ->setLabel( __( 'Color Presets', 'kenta' ) ) + ->setColor( "{$prefix}_primary_color", [ + 'default' => 'kenta-primary-color', + 'active' => 'kenta-primary-active', + ] ) + ->setColor( "{$prefix}_accent_color", [ + 'default' => 'kenta-accent-color', + 'active' => 'kenta-accent-active', + ] ) + ->setColor( "{$prefix}_base_color", [ + 'default' => 'kenta-base-color', + '100' => 'kenta-base-100', + '200' => 'kenta-base-200', + '300' => 'kenta-base-300', + ] ) + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultValue( 'preset-1' ); + + foreach ( $palettes as $id => $preset ) { + $palettesControl->addPalette( $id, $preset ); + } + + return [ + $palettesControl, + ( new ColorPicker( "{$prefix}_primary_color" ) ) + ->setLabel( __( 'Primary Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->setSwatches( [] ) + ->asyncColors( ':root', [ + 'default' => "--kenta-{$scheme}-primary-color", + 'active' => "--kenta-{$scheme}-primary-active", + ] ) + ->setCustomizerColors( ':root', [ + 'default' => "--kenta-{$scheme}-primary-color", + 'active' => "--kenta-{$scheme}-primary-active", + ] ) + ->addColor( 'default', __( 'Default', 'kenta' ), $defaults['primary-color'] ) + ->addColor( 'active', __( 'Active', 'kenta' ), $defaults['primary-active'] ) + , + ( new ColorPicker( "{$prefix}_accent_color" ) ) + ->setLabel( __( 'Accent Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->setSwatches( [] ) + ->asyncColors( ':root', [ + 'default' => "--kenta-{$scheme}-accent-color", + 'active' => "--kenta-{$scheme}-accent-active", + ] ) + ->setCustomizerColors( ':root', [ + 'default' => "--kenta-{$scheme}-accent-color", + 'active' => "--kenta-{$scheme}-accent-active", + ] ) + ->addColor( 'default', __( 'Default', 'kenta' ), $defaults['accent-color'] ) + ->addColor( 'active', __( 'Active', 'kenta' ), $defaults['accent-active'] ) + , + ( new ColorPicker( "{$prefix}_base_color" ) ) + ->setLabel( __( 'Base Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->setSwatches( [] ) + ->asyncColors( ':root', [ + 'default' => "--kenta-{$scheme}-base-color", + '100' => "--kenta-{$scheme}-base-100", + '200' => "--kenta-{$scheme}-base-200", + '300' => "--kenta-{$scheme}-base-300", + ] ) + ->setCustomizerColors( ':root', [ + 'default' => "--kenta-{$scheme}-base-color", + '100' => "--kenta-{$scheme}-base-100", + '200' => "--kenta-{$scheme}-base-200", + '300' => "--kenta-{$scheme}-base-300", + ] ) + ->addColor( '300', __( 'Base 300', 'kenta' ), $defaults['base-300'] ) + ->addColor( '200', __( 'Base 200', 'kenta' ), $defaults['base-200'] ) + ->addColor( '100', __( 'Base 100', 'kenta' ), $defaults['base-100'] ) + ->addColor( 'default', __( 'Base Color', 'kenta' ), $defaults['base-color'] ) + , + ]; + } + } +} + diff --git a/wp-content/themes/kenta/inc/customizer/class-content-section.php b/wp-content/themes/kenta/inc/customizer/class-content-section.php new file mode 100644 index 0000000000..736188ecc8 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-content-section.php @@ -0,0 +1,239 @@ +setLabel( __( 'Colors', 'kenta' ) ) + ->setControls( $this->getColorsControls() ) + , + ( new Section( 'kenta_content_typography' ) ) + ->setLabel( __( 'Typography', 'kenta' ) ) + ->setControls( $this->getTypographyControls() ) + , + ( new Section( 'kenta_content_buttons' ) ) + ->setLabel( __( 'Buttons', 'kenta' ) ) + ->setControls( $this->getButtonStyleControls( 'kenta_content_buttons_', [ + 'min-height' => '42px', + 'button-selector' => [ + '.kenta-article-content .wp-block-button', + '.kenta-article-content button' + ], + 'button-css-selective' => 'kenta-global-selective-css', + 'preset' => 'solid', + 'preset-options' => [ + 'ghost' => __( 'Ghost', 'kenta' ), + 'outline' => __( 'Outline', 'kenta' ), + 'solid' => __( 'Solid', 'kenta' ), + 'invert' => __( 'Invert', 'kenta' ), + 'primary' => __( 'Primary', 'kenta' ), + 'accent' => __( 'Accent', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ], + ] ) ) + , + ( new Section( 'kenta_content_forms' ) ) + ->setLabel( __( 'Forms', 'kenta' ) ) + ->setControls( $this->getFormControls() ) + , + ]; + } + + /** + * @return array + */ + protected function getColorsControls() { + $colors = apply_filters( 'kenta_content_color_options', [ + 'base_color' => [ + 'label' => __( 'Paragraph Color', 'kenta' ), + 'colors' => [ + 'initial' => 'var(--kenta-accent-active)', + ], + 'maps' => [ + 'initial' => '--kenta-content-base-color', + ], + ], + 'drop_cap_color' => [ + 'label' => __( 'Drop Cap Color', 'kenta' ), + 'colors' => [ + 'initial' => 'var(--kenta-accent-color)', + ], + 'maps' => [ + 'initial' => '--kenta-content-drop-cap-color', + ], + ], + 'links_color' => [ + 'label' => __( 'Links Color', 'kenta' ), + 'colors' => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-primary-active)', + ], + 'maps' => [ + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ], + ], + 'headings_color' => [ + 'label' => __( 'All Headings Color (H1 - H6)', 'kenta' ), + 'colors' => [ + 'initial' => 'var(--kenta-accent-color)', + ], + 'maps' => [ + 'initial' => '--kenta-headings-color', + ], + ], + ] ); + + + $controls = []; + + foreach ( $colors as $item => $color ) { + $picker = new ColorPicker( 'kenta_content_' . $item ); + $picker->setLabel( $color['label'] ); + $picker->asyncColors( '.kenta-body', $color['maps'] ); + + foreach ( $color['colors'] as $id => $value ) { + $picker->addColor( $id, ucfirst( $id ), $value ); + } + + $controls[] = $picker; + } + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $controls[] = ( kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) ) + ->showBackground(); + } + + return $controls; + } + + /** + * @return array + */ + protected function getTypographyControls() { + + $fonts = apply_filters( 'kenta_content_typography_options', [ + 'base_typography' => [ + 'label' => __( 'Content', 'kenta' ), + 'selector' => '.kenta-article-content', + 'default' => [ + 'family' => 'inherit', + 'fontSize' => '1rem', + 'variant' => '400', + 'lineHeight' => '1.75' + ], + ], + 'drop_cap_typography' => [ + 'label' => __( 'Drop Cap', 'kenta' ), + 'selector' => '.kenta-article-content .has-drop-cap::first-letter', + 'default' => [ + 'family' => 'serif', + 'fontSize' => '5rem', + 'variant' => '700', + 'lineHeight' => '1', + 'textTransform' => 'uppercase' + ], + ], + ] ); + + $controls = [ + kenta_docs_control( + __( '%sRead Documentation%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/general-theme-options/typography/' + ), + ( new Typography( 'kenta_site_global_typography' ) ) + ->setLabel( __( 'Global Typography', 'kenta' ) ) + ->setDescription( __( 'This option will affects the entire site', 'kenta' ) ) + ->asyncCss( [ ':root', '.kenta-site-wrap' ], AsyncCss::typography() ) + ->setDefaultValue( [ + 'family' => 'sans', + 'fontSize' => '16px', + 'variant' => '400', + 'lineHeight' => '1.5', + ] ) + , + ( new Separator() ), + ]; + + foreach ( $fonts as $item => $font ) { + $controls[] = ( new Typography( 'kenta_content_' . $item ) ) + ->setLabel( $font['label'] ) + ->asyncCss( $font['selector'], AsyncCss::typography() ) + ->setDefaultValue( $font['default'] ); + } + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $controls[] = ( kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) ) + ->showBackground(); + } + + return $controls; + } + + /** + * @return array + */ + protected function getFormControls() { + $selectors = '.kenta-form, form'; + + return [ + ( new Radio( 'kenta_content_form_style' ) ) + ->setLabel( __( 'Style', 'kenta' ) ) + ->setDefaultValue( 'classic' ) + ->buttonsGroupView() + ->setChoices( [ + 'classic' => __( 'Classic', 'kenta' ), + 'modern' => __( 'Modern', 'kenta' ), + ] ) + , + ( new Typography( 'kenta_content_form_typography' ) ) + ->setLabel( __( 'Typography', 'kenta' ) ) + ->asyncCss( $selectors, AsyncCss::typography() ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '0.85rem', + 'variant' => '400', + 'lineHeight' => '2' + ] ) + , + ( new ColorPicker( 'kenta_content_form_color' ) ) + ->setLabel( __( 'Controls Color', 'kenta' ) ) + ->enableAlpha() + ->asyncColors( $selectors, [ + 'background' => '--kenta-form-background-color', + 'border' => '--kenta-form-border-color', + 'active' => '--kenta-form-active-color', + ] ) + ->addColor( 'background', __( 'Background', 'kenta' ), 'var(--kenta-base-color)' ) + ->addColor( 'border', __( 'Border', 'kenta' ), 'var(--kenta-base-300)' ) + ->addColor( 'active', __( 'Active', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ]; + } + } + +} diff --git a/wp-content/themes/kenta/inc/customizer/class-footer-section.php b/wp-content/themes/kenta/inc/customizer/class-footer-section.php new file mode 100644 index 0000000000..edea283007 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-footer-section.php @@ -0,0 +1,43 @@ +builder()->setPreviewLocation( $this->id ), + + ( new Section( 'kenta_footer_colors_override' ) ) + ->setLabel( __( 'Override Global Colors', 'kenta' ) ) + ->keepMarginBelow() + ->setControls( $this->getGlobalColorControls( 'kenta_footer_', '.kenta-footer-area' ) ) + , + ]; + + return apply_filters( 'kenta_footer_builder_controls', $controls ); + } + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/customizer/class-global-section.php b/wp-content/themes/kenta/inc/customizer/class-global-section.php new file mode 100644 index 0000000000..5022818341 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-global-section.php @@ -0,0 +1,128 @@ +setLabel( __( 'Layout', 'kenta' ) ) + ->setControls( $this->getLayoutControls() ) + , + + ( new Section( 'kenta_global_performance_section' ) ) + ->setLabel( __( 'Performance', 'kenta' ) ) + ->setControls( $this->getPerformanceControls() ) + , + + ( new Section( 'kenta_global_sidebar_section' ) ) + ->setLabel( __( 'Sidebar', 'kenta' ) ) + ->setControls( array_merge( + $this->getWidgetsControls( [ + 'css-selective-refresh' => 'kenta-global-selective-css', + 'async-selector' => '.kenta-sidebar', + 'customize-location' => 'sidebar-widgets-primary-sidebar', + ] ), + [ + kenta_docs_control( + __( '%sLearn More%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general-theme-options/sidebar/' + ) + ] + ) ) + , + ]; + + return apply_filters( 'kenta_global_section_controls', $controls ); + } + + protected function getLayoutControls() { + return [ + ( new Collapse() ) + ->setLabel( __( 'Content Area Spacing', 'kenta' ) ) + ->openByDefault() + ->setControls( [ + ( new Slider( 'kenta_homepage_content_spacing' ) ) + ->setLabel( __( 'Homepage', 'kenta' ) ) + ->enableResponsive() + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '0px' ) + , + ( new Slider( 'kenta_archive_content_spacing' ) ) + ->setLabel( __( 'Archive', 'kenta' ) ) + ->enableResponsive() + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '48px' ) + , + ( new Slider( 'kenta_single_post_content_spacing' ) ) + ->setLabel( __( 'Single Post', 'kenta' ) ) + ->enableResponsive() + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ( new Slider( 'kenta_pages_content_spacing' ) ) + ->setLabel( __( 'Pages', 'kenta' ) ) + ->enableResponsive() + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ( new Slider( 'kenta_store_content_spacing' ) ) + ->setLabel( __( 'Store', 'kenta' ) ) + ->enableResponsive() + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '48px' ) + , + + kenta_docs_control( + __( '%sRead Documentation%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general-theme-options/content-area-spacing/' + )->hideBackground(), + ] ) + ]; + } + + protected function getPerformanceControls() { + return [ + ( new Toggle( 'kenta_enable_customizer_cache' ) ) + ->setLabel( __( 'Enable Customizer Cache', 'kenta' ) ) + ->setDescription( __( 'Enable Customizer caching can improve page load speed.', 'kenta' ) ) + ->openByDefault() + , + ( new Toggle( 'kenta_use_local_fonts' ) ) + ->setLabel( __( 'Load Google Fonts Locally', 'kenta' ) ) + ->setDescription( __( 'Complying with GDPR by using local google fonts.', 'kenta' ) ) + ->openByDefault() + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer/class-header-section.php b/wp-content/themes/kenta/inc/customizer/class-header-section.php new file mode 100644 index 0000000000..0f872faf83 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-header-section.php @@ -0,0 +1,210 @@ +builder()->setPreviewLocation( $this->id ), + + ( new Section( 'kenta_header_colors_override' ) ) + ->setLabel( __( 'Override Global Colors', 'kenta' ) ) + ->setControls( $this->getGlobalColorControls( 'kenta_header_', '.kenta-site-header' ) ) + , + + ( new Section( 'kenta_transparent_header' ) ) + ->setLabel( __( 'Transparent Header', 'kenta' ) ) + ->setControls( $this->transparentHeaderControls() ) + , + ]; + + return apply_filters( 'kenta_header_builder_controls', $controls ); + } + + protected function transparentHeaderControls() { + return [ + kenta_docs_control( __( '%sRead Documentation%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/header-footer-builder/transparent-header/' ), + ( new Tabs() ) + ->setActiveTab( 'general' ) + ->addTab( 'general', __( 'General', 'kenta' ), [ + ( new Toggle( 'kenta_enable_transparent_header' ) ) + ->setLabel( __( 'Enable Transparent Header', 'kenta' ) ) + ->closeByDefault() + , + ( new Condition() ) + ->setCondition( [ 'kenta_enable_transparent_header' => 'yes' ] ) + ->setControls( [ + ( new Toggle( 'kenta_disable_archive_transparent_header' ) ) + ->setLabel( __( 'Disable on Search & Archives', 'kenta' ) ) + ->openByDefault() + , + ( new Toggle( 'kenta_disable_posts_transparent_header' ) ) + ->setLabel( __( 'Disable on Posts', 'kenta' ) ) + ->closeByDefault() + , + ( new Toggle( 'kenta_disable_pages_transparent_header' ) ) + ->setLabel( __( 'Disable on Pages', 'kenta' ) ) + ->closeByDefault() + , + ] ) + , + ( new Separator() ), + ( new Radio( 'kenta_enable_transparent_header_device' ) ) + ->setLabel( __( 'Enable Device', 'kenta' ) ) + ->setDefaultValue( 'desktop' ) + ->buttonsGroupView() + ->setChoices( [ + 'all' => __( 'All', 'kenta' ), + 'desktop' => __( 'Desktop', 'kenta' ), + 'mobile' => __( 'Mobile', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new Toggle( 'kenta_enable_transparent_header_logo' ) ) + ->setLabel( __( 'Logo for Transparent Header', 'kenta' ) ) + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + ->closeByDefault() + , + ( new Condition() ) + ->setCondition( [ + 'kenta_enable_transparent_header_logo' => 'yes' + ] ) + ->setControls( [ + ( new ImageUploader( 'kenta_transparent_header_logo' ) ) + ->setLabel( __( 'Logo', 'kenta' ) ) + ->setDefaultValue( '' ) + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + , + ] ) + , + ] ) + ->addTab( 'style', __( 'Style', 'kenta' ), [ + ( new ColorPicker( 'kenta_trans_header_site_title_color' ) ) + ->setLabel( __( 'Site Title Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new Separator() ), + ( new ColorPicker( 'kenta_trans_header_raw_text_color' ) ) + ->setLabel( __( 'Raw Text Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'text', __( 'Text', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'initial', __( 'Link Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Link Hover', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new Separator() ), + ( new ColorPicker( 'kenta_trans_header_menu_color' ) ) + ->setLabel( __( 'Menu Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'active', __( 'Active', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new ColorPicker( 'kenta_trans_header_menu_border_color' ) ) + ->setLabel( __( 'Menu Border Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'active', __( 'Active', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new ColorPicker( 'kenta_trans_header_menu_bg_color' ) ) + ->setLabel( __( 'Menu Background Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'active', __( 'Active', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new Separator() ), + ( new ColorPicker( 'kenta_trans_header_button_color' ) ) + ->setLabel( __( 'Button/Icon Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new ColorPicker( 'kenta_trans_header_button_border_color' ) ) + ->setLabel( __( 'Button Border Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new ColorPicker( 'kenta_trans_header_button_bg_color' ) ) + ->setLabel( __( 'Button Background Colors', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-transparent-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), Css::INITIAL_VALUE ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new Separator() ), + ( new Border( 'kenta_trans_header_border_top' ) ) + ->setLabel( __( 'Top Border', 'kenta' ) ) + ->asyncCss( '.kenta-transparent-header .kenta-header-row', AsyncCss::border( 'border-top' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( + 1, + 'none', + 'var(--kenta-base-300)', + '', + true + ) + , + ( new Border( 'kenta_trans_header_border_bottom' ) ) + ->setLabel( __( 'Bottom Border', 'kenta' ) ) + ->asyncCss( '.kenta-transparent-header .kenta-header-row', AsyncCss::border( 'border-bottom' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( + 1, + 'none', + 'var(--kenta-base-300)', + '', + true + ) + , + ( new Background( 'kenta_trans_header_bg' ) ) + ->setLabel( __( 'Header Background', 'kenta' ) ) + ->asyncCss( '.kenta-transparent-header .kenta-header-row', AsyncCss::background() ) + ->enableResponsive() + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-transparent)', + ] ) + , + ] ) + ]; + } + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/customizer/class-homepage-section.php b/wp-content/themes/kenta/inc/customizer/class-homepage-section.php new file mode 100644 index 0000000000..be6a20a819 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-homepage-section.php @@ -0,0 +1,38 @@ +setCondition( [ + 'show_on_front' => 'page', + 'page_on_front' => '!0' + ] ) + ->setControls( [ + ( new Separator( 'kenta_homepage_separator' ) ), + ( new Toggle( 'kenta_show_frontpage_header' ) ) + ->setLabel( __( 'Show Page Header', 'kenta' ) ) + ->closeByDefault() + , + ] ) + , + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer/class-pages-section.php b/wp-content/themes/kenta/inc/customizer/class-pages-section.php new file mode 100644 index 0000000000..8fb700f596 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-pages-section.php @@ -0,0 +1,135 @@ +setLabel( __( 'Container', 'kenta' ) ) + ->setControls( $this->getContainerControls( 'pages' ) ) + , + ( new Section( 'kenta_page_sidebar_section' ) ) + ->setLabel( __( 'Sidebar', 'kenta' ) ) + ->enableSwitch( false ) + ->setControls( [ + ( new ImageRadio( 'kenta_page_sidebar_layout' ) ) + ->setLabel( __( 'Sidebar Layout', 'kenta' ) ) + ->setDefaultValue( 'right-sidebar' ) + ->setChoices( [ + 'left-sidebar' => [ + 'title' => __( 'Left Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'left-sidebar.png' ), + ], + 'right-sidebar' => [ + 'title' => __( 'Right Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'right-sidebar.png' ), + ], + ] ) + , + ( new CallToAction() ) + ->setLabel( __( 'Customize Sidebar', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( 'kenta_global:kenta_global_sidebar_section' ) + , + ] ) + , + + ( new Section( 'kenta_page_header' ) ) + ->setLabel( __( 'Page Header', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getHeaderControls( 'page', [ + 'selector' => '.kenta-page-header.kenta-article-header', + 'selective-refresh' => [ + '.kenta-page-header.kenta-article-header', + function () { + kenta_show_article_header( 'kenta_pages', 'page', true, false ); + }, + [ 'container_inclusive' => true ] + ], + 'elements' => [ + [ 'id' => 'title', 'visible' => true ], + ], + 'metas' => [ + 'elements' => [ + [ 'id' => 'published', 'visible' => true ] + ], + ], + ] ) ) + , + + ( new Section( 'kenta_page_featured_image' ) ) + ->setLabel( __( 'Featured Image', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getFeaturedImageControls( 'page', [ + 'selector' => '.kenta_page_feature_image.article-featured-image', + 'selective-refresh' => [ + '.kenta_page_feature_image.article-featured-image', + function () { + kenta_show_article_feature_image( 'kenta_pages', 'kenta_page' ); + }, + [ 'container_inclusive' => true ] + ] + ] ) ) + , + + ( new Section( 'kenta_page_share_box' ) ) + ->setLabel( __( 'Share Box', 'kenta' ) ) + ->enableSwitch( false ) + ->setControls( $this->getSocialControls( array( + 'selector' => '.kenta-page-socials', + 'icon-size' => '18px', + 'icons-shape' => 'rounded', + 'icons-color-initial' => 'var(--kenta-base-color)', + 'icons-color-hover' => 'var(--kenta-base-color)', + 'icons-bg-initial' => 'var(--kenta-official-color)', + 'icons-bg-hover' => 'var(--kenta-primary-color)', + 'icons-box-spacing' => [ + 'top' => '48px', + 'right' => '0px', + 'bottom' => '24px', + 'left' => '0px', + ], + ) ) ) + , + ]; + + return apply_filters( 'kenta_pages_section_controls', $controls ); + } + } + +} diff --git a/wp-content/themes/kenta/inc/customizer/class-placeholders.php b/wp-content/themes/kenta/inc/customizer/class-placeholders.php new file mode 100644 index 0000000000..217967572f --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-placeholders.php @@ -0,0 +1,413 @@ +addColor( 'initial', $defaults['text-initial'] ) + ->addColor( 'hover', $defaults['text-hover'] ) + , + ( new Placeholder( $id . 'button_color' ) ) + ->addColor( 'initial', $defaults['button-initial'] ) + ->addColor( 'hover', $defaults['button-hover'] ) + , + ( new Placeholder( $id . 'border' ) ) + ->setDefaultBorder( ...array_merge( $defaults['border'], [ + $defaults['border-initial'], + $defaults['border-hover'] + ] ) ) + , + ( new Placeholder( $id . 'shadow' ) ) + ->setDefaultShadow( ...$defaults['shadow'] ) + , + ( new Placeholder( $id . 'shadow_active' ) ) + ->setDefaultShadow( ...$defaults['shadow-active'] ) + , + ( new Placeholder( $id . 'typography' ) ) + ->setDefaultValue( $defaults['typography'] ) + , + ( new Placeholder( $id . 'radius' ) ) + ->setDefaultValue( $defaults['border-radius'] ) + , + ( new Placeholder( $id . 'padding' ) ) + ->setDefaultValue( $defaults['padding'] ) + , + kenta_upsell_info_control( __( 'Fully customize your button style in %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_archive_header_controls', function ( $controls ) { + return array_merge( $controls, [ + ( new Placeholder( 'kenta_search_archive_header_prefix' ) ) + ->setDefaultValue( __( 'Search Results for: ', 'kenta' ) ) + , + ( new Placeholder( 'kenta_archive_title_typography' ) ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => [ + 'desktop' => '1.45rem', + 'tablet' => '1.25rem', + 'mobile' => '1rem' + ], + 'variant' => '600', + 'lineHeight' => '2', + 'textTransform' => 'capitalize', + ] ) + , + ( new Placeholder( 'kenta_archive_description_typography' ) ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => [ + 'desktop' => '0.875rem', + 'tablet' => '0.875rem', + 'mobile' => '0.75em' + ], + 'variant' => '400', + 'lineHeight' => '1.5', + ] ) + , + kenta_upsell_info_control( __( 'Fully customize your archive header in %sPro Version%s', 'kenta' ) ), + ] ); + } ); + + add_filter( 'kenta_title_element_controls', function ( $controls, $id, $link, $defaults ) { + return array_merge( $controls, [ + ( new Placeholder( 'kenta_' . $id . '_title_typography' ) ) + ->setDefaultValue( $defaults['typography'] ) + , + ( new Placeholder( 'kenta_' . $id . '_title_color' ) ) + ->addColor( 'initial', $defaults['initial'] ) + ->addColor( 'hover', $defaults['hover'] ) + , + kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 4 ); + + add_filter( 'kenta_taxonomy_element_controls', function ( $controls, $id, $type, $defaults ) { + return array_merge( $controls, [ + ( new Placeholder( 'kenta_' . $id . '_tax_typography' . $type ) ) + ->setDefaultValue( $defaults['typography'] ) + , + ( new Placeholder( 'kenta_' . $id . '_tax_default_color' . $type ) ) + ->addColor( 'initial', $defaults['text-initial'] ) + ->addColor( 'hover', $defaults['text-hover'] ) + , + ( new Placeholder( 'kenta_' . $id . '_tax_badge_text_color' . $type ) ) + ->addColor( 'initial', $defaults['badge-text-initial'] ) + ->addColor( 'hover', $defaults['badge-text-hover'] ) + , + ( new Placeholder( 'kenta_' . $id . '_tax_badge_bg_color' . $type ) ) + ->addColor( 'initial', $defaults['badge-bg-initial'] ) + ->addColor( 'hover', $defaults['badge-bg-hover'] ) + , + kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 4 ); + + add_filter( 'kenta_excerpt_element_controls', function ( $controls, $id, $defaults ) { + return array_merge( $controls, [ + ( new Placeholder( 'kenta_' . $id . '_excerpt_typography' ) ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '0.875rem', + 'variant' => '400', + 'lineHeight' => '1.5' + ] ) + , + ( new Placeholder( 'kenta_' . $id . '_excerpt_color' ) ) + ->addColor( 'initial', 'var(--kenta-accent-active)' ) + , + kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_metas_element_controls', function ( $controls, $id, $defaults ) { + return array_merge( $controls, [ + ( new Placeholder( 'kenta_' . $id . '_meta_typography' ) ) + ->setDefaultValue( $defaults['typography'] ) + , + ( new Placeholder( 'kenta_' . $id . '_meta_color' ) ) + ->addColor( 'initial', $defaults['initial'] ) + ->addColor( 'hover', $defaults['hover'] ) + , + ( new Placeholder( 'kenta_' . $id . '_meta_items_style' ) ) + ->setDefaultValue( $defaults['style'] ) + , + ( new Placeholder( 'kenta_' . $id . '_meta_items_divider' ) ) + ->setDefaultValue( $defaults['divider'] ) + , + kenta_upsell_info_control( __( 'More options in %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_widgets_style_controls', function ( $controls, $id, $defaults ) { + + return array_merge( $controls, [ + ( new Placeholder( $id . 'title-typography' ) ) + ->setDefaultValue( $defaults['title-typography'] ) + , + ( new Placeholder( $id . 'title-color' ) ) + ->addColor( 'initial', $defaults['title-color'] ) + ->addColor( 'indicator', $defaults['title-indicator'] ) + , + ( new Placeholder( $id . 'content-typography' ) ) + ->setDefaultValue( $defaults['content-typography'] ) + , + ( new Placeholder( $id . 'content-color' ) ) + ->addColor( 'text', $defaults['text-color'] ) + ->addColor( 'initial', $defaults['link-initial'] ) + ->addColor( 'hover', $defaults['link-hover'] ) + , + ( new Placeholder( $id . 'widgets-background' ) ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => $defaults['widgets-background'], + ] ) + , + ( new Placeholder( $id . 'widgets-border' ) ) + ->setDefaultBorder( ...$defaults['widgets-border'] ) + , + ( new Placeholder( $id . 'widgets-shadow' ) ) + ->setDefaultShadow( ...array_merge( $defaults['widgets-shadow'], [ $defaults['widgets-shadow-enable'] ] ) ) + , + ( new Placeholder( $id . 'widgets-padding' ) ) + ->setDefaultValue( $defaults['widgets-padding'] ) + , + ( new Placeholder( $id . 'widgets-radius' ) ) + ->setDefaultValue( $defaults['widgets-radius'] ) + , + kenta_upsell_info_control( __( 'Fully customize your sidebar in %sPro Version%s', 'kenta' ) ) + ] ); + + }, 10, 3 ); + + add_filter( 'kenta_menu_top_level_controls', function ( $controls, $slug, $defaults ) { + $id = $slug . '_'; + + return array_merge( $controls, [ + ( new Placeholder( $id . 'top_level_typography' ) ) + ->setDefaultValue( $defaults['top-level-typography'] ?? [ + 'family' => 'inherit', + 'fontSize' => '0.85rem', + 'variant' => '500', + 'lineHeight' => '1', + 'textTransform' => 'capitalize', + ] ) + , + ( new Placeholder( $id . 'top_level_text_color' ) ) + ->addColor( 'initial', $defaults['top-level-text-initial'] ?? 'var(--kenta-accent-active)' ) + ->addColor( 'hover', $defaults['top-level-text-hover'] ?? 'var(--kenta-primary-color)' ) + ->addColor( 'active', $defaults['top-level-text-active'] ?? 'var(--kenta-primary-color)' ) + , + ( new Placeholder( $id . 'top_level_background_color' ) ) + ->addColor( 'initial', $defaults['top-level-background-initial'] ?? 'var(--kenta-transparent)' ) + ->addColor( 'hover', $defaults['top-level-background-hover'] ?? 'var(--kenta-transparent)' ) + ->addColor( 'active', $defaults['top-level-background-active'] ?? 'var(--kenta-transparent)' ) + , + ( new Placeholder( $id . 'top_level_border_top' ) ) + ->setDefaultBorder( 2, 'none', 'var(--kenta-transparent)' ) + , + ( new Placeholder( $id . 'top_level_border_top_active' ) ) + ->setDefaultBorder( 2, 'none', 'var(--kenta-primary-color)' ) + , + ( new Placeholder( $id . 'top_level_border_bottom' ) ) + ->setDefaultBorder( 2, 'none', 'var(--kenta-transparent)' ) + , + ( new Placeholder( $id . 'top_level_border_bottom_active' ) ) + ->setDefaultBorder( 2, 'none', 'var(--kenta-primary-color)' ) + , + ( new Placeholder( $id . 'top_level_margin' ) ) + ->setDefaultValue( $defaults['top-level-margin'] ?? [ + 'top' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'right' => '0px', + 'linked' => true, + ] ) + , + ( new Placeholder( $id . 'top_level_padding' ) ) + ->setDefaultValue( $defaults['top-level-padding'] ?? [ + 'top' => '4px', + 'bottom' => '4px', + 'left' => '8px', + 'right' => '8px', + 'linked' => false, + ] ) + , + ( new Placeholder( $id . 'top_level_radius' ) ) + ->setDefaultValue( $defaults['top-level-radius'] ?? [ + 'top' => '0', + 'bottom' => '0', + 'left' => '0', + 'right' => '0', + 'linked' => true, + ] ) + , + + kenta_upsell_info_control( __( "Fully customize your menu's top level items in %sPro Version%s", 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_copyright_element_controls', function ( $controls ) { + return array_merge( $controls, [ + kenta_upsell_info_control( __( "Customize your copyright text in %sPro Version%s", 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_breadcrumbs_element_content_controls', function ( $controls ) { + return array_merge( $controls, [ + kenta_upsell_info_control( __( "More breadcrumb options in %sPro Version%s", 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_breadcrumbs_element_style_controls', function ( $controls, $slug ) { + $id = $slug . '_'; + + return array_merge( $controls, [ + ( new Placeholder( $id . 'typography' ) ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '0.8rem', + 'variant' => '400', + 'lineHeight' => '1.5', + 'textTransform' => 'capitalize', + ] ) + , + ( new Placeholder( $id . 'text_color' ) ) + ->addColor( 'text', 'var(--kenta-accent-color)' ) + ->addColor( 'initial', 'var(--kenta-accent-active)' ) + ->addColor( 'hover', 'var(--kenta-primary-color)' ) + , + kenta_upsell_info_control( __( "More breadcrumb style options in %sPro Version%s", 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_socials_element_content_controls', function ( $controls, $slug, $defaults ) { + $id = $slug . '_'; + + return array_merge( $controls, [ + ( new Placeholder( $id . 'icons_shape' ) ) + ->setDefaultValue( $defaults['icons-shape'] ) + , + ( new Placeholder( $id . 'shape_fill_type' ) ) + ->setDefaultValue( $defaults['icons-fill-type'] ) + , + kenta_upsell_info_control( __( 'More social icon options in our %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_socials_element_style_controls', function ( $controls, $slug, $defaults ) { + $id = $slug . '_'; + + return array_merge( $controls, [ + ( new Placeholder( $id . 'icons_bg_color' ) ) + ->addColor( 'initial', $defaults['icons-bg-initial'] ) + ->addColor( 'hover', $defaults['icons-bg-hover'] ) + , + ( new Placeholder( $id . 'icons_border_color' ) ) + ->addColor( 'initial', $defaults['icons-border-initial'] ) + ->addColor( 'hover', $defaults['icons-border-hover'] ) + , + ( new Placeholder( $id . 'padding' ) ) + ->setDefaultValue( $defaults['icons-box-spacing'] ) + , + kenta_upsell_info_control( __( 'Fully customize your social icons in our %sPro Version%s', 'kenta' ) ) + ] ); + }, 10, 3 ); + + add_filter( 'kenta_icon_button_style_controls', [ $this, 'more_options_upsell' ], 10, 3 ); + add_filter( 'kenta_menu_dropdown_style_controls', [ $this, 'more_options_upsell' ], 10, 3 ); + + add_filter( 'kenta_archive_layout_controls', function ( $controls ) { + $controls[] = kenta_upsell_info_control( __( 'More layout available in %sPro Version%s', 'kenta' ), 'kenta_archive_layout_upsell_info' ); + + return $controls; + } ); + + add_filter( 'kenta_card_style_controls', function ( $controls ) { + $controls[] = kenta_upsell_info_control( __( "Fully customize your posts card style in %sPro Version%s", 'kenta' ) ); + + return $controls; + }, 10, 2 ); + + add_filter( 'kenta_pagination_general_controls', function ( $controls ) { + $controls[] = ( new Condition() ) + ->setCondition( [ 'kenta_pagination_type' => 'load-more|infinite-scroll' ] ) + ->setControls( [ + kenta_upsell_info_control( __( 'Load More & Infinite Scroll is available in our %sPro Version%s', 'kenta' ) ) + ] ); + + return $controls; + } ); + + /** + * WooCommerce controls + */ + add_filter( 'kenta_store_card_style_controls', function ( $controls ) { + $controls[] = kenta_upsell_info_control( __( "Fully customize your product card style in %sPro Version%s", 'kenta' ) ); + + return $controls; + } ); + } + + public function more_options_upsell( $controls ) { + return array_merge( $controls, [ + kenta_upsell_info_control( __( "More options in %sPro Version%s", 'kenta' ) ) + ] ); + } + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/customizer/class-single-post-section.php b/wp-content/themes/kenta/inc/customizer/class-single-post-section.php new file mode 100644 index 0000000000..d564edd3bf --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-single-post-section.php @@ -0,0 +1,319 @@ +setLabel( __( 'Container', 'kenta' ) ) + ->setControls( $this->getContainerControls( 'single_post', [ + 'layout' => 'narrow', + ] ) ) + , + ( new Section( 'kenta_post_sidebar_section' ) ) + ->setLabel( __( 'Sidebar', 'kenta' ) ) + ->enableSwitch( false ) + ->setControls( [ + ( new ImageRadio( 'kenta_post_sidebar_layout' ) ) + ->setLabel( __( 'Sidebar Layout', 'kenta' ) ) + ->setDefaultValue( 'right-sidebar' ) + ->setChoices( [ + 'left-sidebar' => [ + 'title' => __( 'Left Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'left-sidebar.png' ), + ], + 'right-sidebar' => [ + 'title' => __( 'Right Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'right-sidebar.png' ), + ], + ] ) + , + ( new CallToAction() ) + ->setLabel( __( 'Customize Sidebar', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( 'kenta_global:kenta_global_sidebar_section' ) + , + ] ) + , + + ( new Section( 'kenta_post_header' ) ) + ->setLabel( __( 'Post Header', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getHeaderControls( 'post', [ + 'selector' => '.kenta-post-header.kenta-article-header', + 'selective-refresh' => [ + '.kenta-post-header.kenta-article-header', + function () { + kenta_show_article_header( 'kenta_single_post', 'post', true, false ); + }, + [ 'container_inclusive' => true ] + ], + ] ) ) + , + + ( new Section( 'kenta_post_featured_image' ) ) + ->setLabel( __( 'Featured Image', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getFeaturedImageControls( 'post', [ + 'selector' => '.kenta_post_feature_image.article-featured-image', + 'selective-refresh' => [ + '.kenta_post_feature_image.article-featured-image', + function () { + kenta_show_article_feature_image( 'kenta_single_post', 'kenta_post' ); + }, + [ 'container_inclusive' => true ] + ] + ] ) ) + , + + ( new Section( 'kenta_post_share_box' ) ) + ->setLabel( __( 'Share Box', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getSocialControls( array( + 'selector' => '.kenta-post-socials', + 'icon-size' => '18px', + 'icons-shape' => 'rounded', + 'icons-color-initial' => 'var(--kenta-base-color)', + 'icons-color-hover' => 'var(--kenta-base-color)', + 'icons-bg-initial' => 'var(--kenta-official-color)', + 'icons-bg-hover' => 'var(--kenta-primary-color)', + 'icons-box-spacing' => [ + 'top' => '48px', + 'right' => '0px', + 'bottom' => '48px', + 'left' => '0px', + ], + ) ) ) + , + + ( new Section( 'kenta_post_author_bio' ) ) + ->setLabel( __( 'Author Bio', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getAuthorBioControls() ) + , + + ( new Section( 'kenta_post_navigation' ) ) + ->setLabel( __( 'Posts Navigation', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getNavigationControls( 'post' ) ) + , + ]; + + return apply_filters( 'kenta_single_post_section_controls', $controls ); + } + + /** + * @return array + */ + protected function getAuthorBioControls() { + $content_controls = apply_filters( 'kenta_filter_author_bio_content_controls', [ + ( new Toggle( 'kenta_post_author_bio_avatar' ) ) + ->setLabel( __( 'Show Avatar', 'kenta' ) ) + ->openByDefault() + , + ( new Condition() ) + ->setCondition( [ 'kenta_post_author_bio_avatar' => 'yes' ] ) + ->setControls( [ + ( new Toggle( 'kenta_post_author_bio_avatar_link' ) ) + ->setLabel( __( 'Link Avatar To Author Page', 'kenta' ) ) + ->openByDefault() + , + ( new Slider( 'kenta_post_author_bio_avatar_size' ) ) + ->setLabel( __( 'Avatar Size', 'kenta' ) ) + ->setMin( 20 ) + ->setMax( 200 ) + ->setDefaultValue( 80 ) + ->setDefaultUnit( false ) + , + ( new Slider( 'kenta_post_author_bio_avatar_radius' ) ) + ->setLabel( __( 'Avatar Radius', 'kenta' ) ) + ->setMin( 0 ) + ->setMax( 200 ) + ->setDefaultValue( '200px' ) + ->setDefaultUnit( 'px' ) + , + ] ) + , + ( new Separator() ), + ( new Text( 'kenta_post_author_bio_name_prefix' ) ) + ->setLabel( __( 'Author Name Prefix', 'kenta' ) ) + ->setDefaultValue( __( 'Hi, I’m', 'kenta' ) ) + , + ( new Separator() ), + ( new Toggle( 'kenta_post_author_bio_all_articles_link' ) ) + ->setLabel( __( 'Show All Articles Link', 'kenta' ) ) + ->openByDefault() + , + ( new Condition() ) + ->setCondition( [ 'kenta_post_author_bio_all_articles_link' => 'yes' ] ) + ->setControls( [ + ( new Text( 'kenta_post_author_bio_all_articles_text' ) ) + ->setLabel( __( 'All Articles Text', 'kenta' ) ) + ->setDefaultValue( __( 'All My Articles', 'kenta' ) ) + ] ) + , + ( new Separator() ), + ( new Radio( 'kenta_post_author_bio_alignment' ) ) + ->setLabel( __( 'Alignment', 'kenta' ) ) + ->asyncCss( '.kenta-about-author-bio-box', [ 'text-align' => 'value' ] ) + ->buttonsGroupView() + ->setDefaultValue( 'center' ) + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'center' => __( 'Center', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ] ); + $style_controls = apply_filters( 'kenta_filter_author_bio_style_controls', [ + ( new Border( 'kenta_post_author_bio_border' ) ) + ->setLabel( __( 'Border', 'kenta' ) ) + ->displayInline() + ->asyncCss( '.kenta-about-author-bio-box', AsyncCss::border() ) + ->setDefaultBorder( 1, 'solid', 'var(--kenta-base-300)' ) + , + ( new BoxShadow( 'kenta_post_author_bio_shadow' ) ) + ->setLabel( __( 'Shadow', 'kenta' ) ) + ->asyncCss( '.kenta-about-author-bio-box', AsyncCss::shadow() ) + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.1)', + '0px', '0px', + '10px', '0px', false + ) + , + ( new Background( 'kenta_post_author_bio_background' ) ) + ->setLabel( __( 'Background', 'kenta' ) ) + ->asyncCss( '.kenta-about-author-bio-box', AsyncCss::background() ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-base-200)', + ] ) + , + ( new Spacing( 'kenta_post_author_bio_padding' ) ) + ->setLabel( __( 'Padding', 'kenta' ) ) + ->asyncCss( '.kenta-about-author-bio-box', AsyncCss::dimensions( 'padding' ) ) + ->setDefaultValue( [ + 'top' => '48px', + 'bottom' => '48px', + 'left' => '48px', + 'right' => '48px', + 'linked' => true, + ] ) + , + ( new Spacing( 'kenta_post_author_bio_margin' ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->asyncCss( '.kenta-about-author-bio-box', AsyncCss::dimensions() ) + ->setDisabled( [ 'left', 'right' ] ) + ->setDefaultValue( [ + 'top' => '48px', + 'bottom' => '48px', + 'linked' => true, + ] ) + , + ] ); + + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $content_controls ) + ->addTab( 'style', __( 'Style', 'kenta' ), $style_controls ) + , + ]; + } + + /** + * @return array + */ + protected function getNavigationControls( $type ) { + return [ + ( new ColorPicker( 'kenta_' . $type . '_navigation_text_color' ) ) + ->setLabel( __( 'Text Color', 'kenta' ) ) + ->asyncColors( '.kenta-post-navigation', [ + 'initial' => '--kenta-navigation-initial-color', + 'hover' => '--kenta-navigation-hover-color', + ] ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-accent-color)' ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ( new Separator() ), + ( new Icons( 'kenta_' . $type . '_navigation_prev_icon' ) ) + ->setLabel( __( 'Prev Icon', 'kenta' ) ) + ->selectiveRefresh( '.kenta-post-navigation', 'kenta_add_post_navigation', [ + 'container_inclusive' => true, + ] ) + ->setDefaultValue( [ + 'value' => 'fas fa-arrow-left-long', + 'library' => 'fa-solid', + ] ) + , + ( new Icons( 'kenta_' . $type . '_navigation_next_icon' ) ) + ->setLabel( __( 'Prev Icon', 'kenta' ) ) + ->setDefaultValue( [ + 'value' => 'fas fa-arrow-right-long', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ( new Spacing( 'kenta_' . $type . '_navigation_padding' ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->asyncCss( '.kenta-post-navigation', AsyncCss::dimensions() ) + ->setDisabled( [ 'left', 'right' ] ) + ->setSpacing( [ + 'top' => '48px', + 'bottom' => '48px', + 'linked' => true + ] ) + , + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer/class-store-catalog-section.php b/wp-content/themes/kenta/inc/customizer/class-store-catalog-section.php new file mode 100644 index 0000000000..dc8e5bfd24 --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-store-catalog-section.php @@ -0,0 +1,111 @@ +setLabel( __( 'Shop Columns', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-woo-selective-css' ) + ->setDefaultUnit( false ) + ->setMin( 1 ) + ->setMax( 6 ) + ->enableResponsive() + ->setDefaultValue( [ + 'desktop' => 4, + 'tablet' => 2, + 'mobile' => 1, + ] ) + , + ( new Slider( 'kenta_store_catalog_gap' ) ) + ->setLabel( __( 'Shop Gap', 'kenta' ) ) + ->asyncCss( '.kenta-products', [ '--card-gap' => 'value' ] ) + ->enableResponsive() + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ( new Number( 'kenta_store_catalog_per_page' ) ) + ->setLabel( __( 'Products Per Page', 'kenta' ) ) + ->setDefaultValue( 12 ) + ->setMin( 1 ) + ->setMax( 99999 ) + ->setDefaultUnit( false ) + , + ( new Section( 'kenta_store_product_card_section' ) ) + ->setLabel( __( 'Store Product Card', 'kenta' ) ) + ->setControls( $this->getCardControls() ) + , + + ( new Section( 'kenta_store_sidebar_section' ) ) + ->setLabel( __( 'Sidebar', 'kenta' ) ) + ->enableSwitch( false ) + ->setControls( [ + ( new ImageRadio( 'kenta_store_sidebar_layout' ) ) + ->setLabel( __( 'Sidebar Layout', 'kenta' ) ) + ->setDefaultValue( 'right-sidebar' ) + ->setChoices( [ + 'left-sidebar' => [ + 'title' => __( 'Left Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'left-sidebar.png' ), + ], + 'right-sidebar' => [ + 'title' => __( 'Right Sidebar', 'kenta' ), + 'src' => kenta_image_url( 'left-sidebar.png' ), + ], + ] ) + , + ] ) + ]; + } + + protected function getCardControls() { + $selector = '.woocommerce .kenta-products li.product .kenta-product-wrapper'; + + $content_controls = $this->getCardContentControls( 'kenta_store_', [ + 'selector' => $selector, + 'content-spacing' => '0px', + 'thumbnail-spacing' => '24px', + ] ); + + $style_controls = $this->getCardStyleControls( 'kenta_store_', [ + 'preset' => 'ghost', + 'selective' => 'kenta-woo-selective-css', + ] ); + + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), apply_filters( + 'kenta_store_card_content_controls', $content_controls + ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), apply_filters( + 'kenta_store_card_style_controls', $style_controls, [ + 'selector' => $selector, + ] + ) ) + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/customizer/class-store-notice-section.php b/wp-content/themes/kenta/inc/customizer/class-store-notice-section.php new file mode 100644 index 0000000000..6aa52bef4f --- /dev/null +++ b/wp-content/themes/kenta/inc/customizer/class-store-notice-section.php @@ -0,0 +1,50 @@ +setLabel( __( 'Colors', 'kenta' ) ) + ->asyncColors( '.woocommerce-store-notice, p.demo_store', [ + 'text' => 'color', + 'dismiss-initial' => '--kenta-link-initial-color', + 'dismiss-hover' => '--kenta-link-hover-color', + ] ) + ->addColor( 'text', __( 'Text', 'kenta' ), '#ffffff' ) + ->addColor( 'dismiss-initial', __( 'Dismiss Initial', 'kenta' ), '#ffffff' ) + ->addColor( 'dismiss-hover', __( 'Dismiss Hover', 'kenta' ), '#ffffff' ) + , + ( new Background( 'kenta_store_notice_background' ) ) + ->setLabel( __( 'Background', 'kenta' ) ) + ->asyncCss( '.woocommerce-store-notice, p.demo_store', AsyncCss::background() ) + ->setDefaultValue( [ + 'type' => 'color', + 'color' => 'var(--kenta-primary-color)' + ] ) + , + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/dynamic-css.php b/wp-content/themes/kenta/inc/dynamic-css.php new file mode 100644 index 0000000000..75abf32260 --- /dev/null +++ b/wp-content/themes/kenta/inc/dynamic-css.php @@ -0,0 +1,1121 @@ + 1 ) ? '_blog-' . $blog_id : null; + + $file_name = '/asset' . $css_blog_id . '-' . $current_loop . '.css'; + $folder_path = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'kenta'; + + // Does the folder exist? + if ( file_exists( $folder_path ) ) { + // Folder exists, but is the folder writable? + if ( ! is_writable( $folder_path ) ) { + // Folder is not writable. + // Does the file exist? + if ( ! file_exists( $folder_path . $file_name ) ) { + // File does not exist, therefore it can't be created + // since the parent folder is not writable. + return false; + } else { + // File exists, but is it writable? + if ( ! is_writable( $folder_path . $file_name ) ) { + // Nope, it's not writable. + return false; + } + } + } else { + // The folder is writable. + // Does the file exist? + if ( file_exists( $folder_path . $file_name ) ) { + // File exists. + // Is it writable? + if ( ! is_writable( $folder_path . $file_name ) ) { + // Nope, it's not writable. + return false; + } + } + } + } else { + // Can we create the folder? + // returns true if yes and false if not. + return wp_mkdir_p( $folder_path ); + } + + // all is well! + return true; +} + +/** + * Write dynamic css to file + * + * @return bool + * @since v1.2.8 + */ +function kenta_make_dynamic_css_cache() { + $current_loop = kenta_current_loop(); + + $raw_css = kenta_dynamic_css(); + + // Don't need to create assets file + if ( ! $raw_css ) { + return false; + } + + // If we only have a little CSS/Scripts, we should inline it. + $css_size = strlen( $raw_css ); + if ( $css_size < (int) apply_filters( 'kenta_assets_inline_length', 500 ) ) { + return false; + } + + global $wp_filesystem; + + // Initialize the WordPress filesystem. + if ( empty( $wp_filesystem ) ) { + require_once ABSPATH . '/wp-admin/includes/file.php'; + WP_Filesystem(); + } + + // Take care of domain mapping. + if ( defined( 'DOMAIN_MAPPING' ) && DOMAIN_MAPPING ) { + if ( function_exists( 'domain_mapping_siteurl' ) && function_exists( 'get_original_url' ) ) { + $mapped_domain = domain_mapping_siteurl( false ); + $original_domain = get_original_url( 'siteurl' ); + + $raw_css = str_replace( $original_domain, $mapped_domain, $raw_css ); + } + } + + if ( ! is_writable( dirname( kenta_get_cached_dynamic_css( 'path' ) ) ) ) { + return false; + } + + $chmod_file = 0644; + + if ( defined( 'FS_CHMOD_FILE' ) ) { + $chmod_file = FS_CHMOD_FILE; + } + + // write css + $css_file_path = kenta_get_cached_dynamic_css( 'path' ); + if ( $raw_css && is_writable( $css_file_path ) || ( ! file_exists( $css_file_path ) ) ) { + // can't save css file + if ( ! $wp_filesystem->put_contents( $css_file_path, wp_strip_all_tags( $raw_css ), $chmod_file ) ) { + return false; + } + } + + $option = kenta_get_option( 'dynamic_css_assets', array() ); + $option[ $current_loop ] = true; + kenta_update_option( 'dynamic_css_assets', $option ); + + // Update the 'dynamic_css_time' option. + kenta_update_option( 'dynamic_css_time', time() ); + kenta_update_option( + 'dynamic_css_cached_version', + esc_html( kenta_apply_filters( 'dynamic_css_cached_version', kenta_get_theme_version() ) ) + ); + + kenta_do_action( 'dynamic_css_cached', $raw_css, $current_loop ); + + // Success! + return true; +} + +/** + * Do we need to update the assets file? + * + * @return bool + * @since v1.2.8 + */ +function kenta_should_update_dynamic_cache() { + $cached_version = kenta_get_option( 'dynamic_css_cached_version', '' ); + if ( kenta_apply_filters( 'should_dynamic_css_re_cached', kenta_get_theme_version() !== $cached_version ) ) { + kenta_reset_dynamic_css_cache(); + + return true; + } + + // If the CSS file does not exist then we definitely need to regenerate the CSS. + if ( ! file_exists( kenta_get_cached_dynamic_css( 'path' ) ) ) { + return true; + } + + $current_loop = kenta_current_loop(); + $option = kenta_get_option( 'dynamic_css_assets', array() ); + + return ( ! isset( $option[ $current_loop ] ) || ! $option[ $current_loop ] ) ? true : false; + +} + +/** + * Get current dynamic css mode + * + * @return string|void + * @since v1.2.8 + */ +function kenta_dynamic_css_mode() { + $using_cached_dynamic_css = kenta_apply_filters( 'using_cached_dynamic_css', CZ::checked( 'kenta_enable_customizer_cache' ) ); + $mode = 'cached'; + + if ( + ! $using_cached_dynamic_css + || + ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) + || + is_preview() + || + // AMP inlines all CSS, so inlining from the start improves CSS processing performance. + ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) ) { + return 'inline'; + } + + if ( kenta_should_update_dynamic_cache() ) { + // Only allow processing 1 file every 5 seconds. + $current_time = (int) time(); + $last_time = (int) kenta_get_option( 'dynamic_css_time' ); + if ( 5 <= ( $current_time - $last_time ) ) { + // Attempt to write to the file. + $mode = ( kenta_is_dynamic_css_assets_folder_writable() && kenta_make_dynamic_css_cache() ) ? 'cached' : 'inline'; + + // Does again if the file exists. + if ( 'inline' !== $mode ) { + $mode = ( file_exists( kenta_get_cached_dynamic_css( 'path' ) ) ) ? 'cached' : 'inline'; + } + } + } + + return $mode; +} + +/** + * Get cached dynamic css file path or uri + * + * @param $target + * + * @return string|void + * @since v1.2.8 + */ +function kenta_get_cached_dynamic_css( $target = 'path' ) { + + global $blog_id; + $current_loop = kenta_current_loop(); + + // Get the upload directory for this site. + $upload_dir = wp_get_upload_dir(); + // If this is a multisite installation, append the blogid to the filename. + $css_blog_id = ( is_multisite() && $blog_id > 1 ) ? '_blog-' . $blog_id : null; + + $file_name = 'asset' . $css_blog_id . '-' . $current_loop . '.css'; + $folder_path = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'kenta'; + + // The complete path to the file. + $file_path = $folder_path . DIRECTORY_SEPARATOR . $file_name; + // Get the URL directory of the stylesheet. + $css_uri_folder = $upload_dir['baseurl']; + $css_uri = trailingslashit( $css_uri_folder ) . 'kenta/' . $file_name; + // Take care of domain mapping. + if ( defined( 'DOMAIN_MAPPING' ) && DOMAIN_MAPPING ) { + if ( function_exists( 'domain_mapping_siteurl' ) && function_exists( 'get_original_url' ) ) { + $mapped_domain = domain_mapping_siteurl( false ); + $original_domain = get_original_url( 'siteurl' ); + $css_uri = str_replace( $original_domain, $mapped_domain, $css_uri ); + } + } + $css_uri = set_url_scheme( $css_uri ); + + if ( 'path' === $target ) { + return $file_path; + } elseif ( 'url' === $target || 'uri' === $target ) { + $timestamp = ( file_exists( $file_path ) ) ? '?ver=' . filemtime( $file_path ) : ''; + + return $css_uri . $timestamp; + } +} + +/** + * Enqueue global css variables + */ +function kenta_enqueue_global_vars( $args = [] ) { + $args = wp_parse_args( $args, [ + 'defaultScheme' => '', + 'selector' => ':root', + 'suffix' => '' + ] ); + + wp_register_style( 'kenta-dynamic-vars' . $args['suffix'], false ); + wp_enqueue_style( 'kenta-dynamic-vars' . $args['suffix'] ); + wp_add_inline_style( 'kenta-dynamic-vars' . $args['suffix'], + kenta_global_css_vars( $args['selector'], $args['suffix'], $args['defaultScheme'] ) + ); +} + +/** + * Enqueue dynamic css for our theme + */ +function kenta_enqueue_transparent_header_css() { + wp_register_style( 'kenta-transparent-header', false ); + wp_enqueue_style( 'kenta-transparent-header' ); + wp_add_inline_style( 'kenta-transparent-header', kenta_transparent_header_css() ); +} + +/** + * Enqueue dynamic css for our theme + */ +function kenta_enqueue_dynamic_css() { + wp_register_style( 'kenta-preloader', false ); + wp_enqueue_style( 'kenta-preloader' ); + wp_add_inline_style( 'kenta-preloader', kenta_preloader_css() ); + + if ( 'inline' === kenta_dynamic_css_mode() ) { + $dynamic_css = kenta_dynamic_css(); + } else { + $dynamic_css = ''; + wp_enqueue_style( + 'kenta-cached-dynamic-styles', + esc_url( kenta_get_cached_dynamic_css( 'uri' ) ), + [], + null + ); + } + + $dynamic_css .= kenta_no_cache_dynamic_css(); + + wp_register_style( 'kenta-dynamic', false ); + wp_enqueue_style( 'kenta-dynamic' ); + wp_add_inline_style( 'kenta-dynamic', $dynamic_css ); +} + +/** + * Generate global css vars + * + * @return mixed + */ +function kenta_global_css_vars( $selector, $suffix = '', $defaultScheme = '' ) { + $suffix = $suffix === '' ? '' : '-' . $suffix; + + $vars = [ + '--kenta-transparent' . $suffix => 'rgba(0, 0, 0, 0)', + ]; + + if ( $defaultScheme !== '' ) { + $vars = [ + '--kenta-transparent' => 'rgba(0, 0, 0, 0)', + '--kenta-primary-color' => "var(--kenta-{$defaultScheme}-primary-color, var(--kenta-light-primary-color))", + '--kenta-primary-active' => "var(--kenta-{$defaultScheme}-primary-active, var(--kenta-light-primary-active))", + '--kenta-accent-color' => "var(--kenta-{$defaultScheme}-accent-color, var(--kenta-light-accent-color))", + '--kenta-accent-active' => "var(--kenta-{$defaultScheme}-accent-active, var(--kenta-light-accent-active))", + '--kenta-base-color' => "var(--kenta-{$defaultScheme}-base-color, var(--kenta-light-base-color))", + '--kenta-base-100' => "var(--kenta-{$defaultScheme}-base-100, var(--kenta-light-base-100))", + '--kenta-base-200' => "var(--kenta-{$defaultScheme}-base-200, var(--kenta-light-base-200))", + '--kenta-base-300' => "var(--kenta-{$defaultScheme}-base-300, var(--kenta-light-base-300))", + ]; + } + + foreach ( [ 'light', 'dark' ] as $scheme ) { + $prefix = ( $scheme === 'light' ) ? 'kenta' : "kenta_{$scheme}"; + + /** + * Palette + */ + $global_colors = apply_filters( 'kenta_global_color_vars', [ + "{$prefix}_primary_color" => [ + 'default' => "kenta-{$scheme}-primary-color", + 'active' => "kenta-{$scheme}-primary-active", + ], + "{$prefix}_accent_color" => [ + 'default' => "kenta-{$scheme}-accent-color", + 'active' => "kenta-{$scheme}-accent-active", + ], + "{$prefix}_base_color" => [ + 'default' => "kenta-{$scheme}-base-color", + '100' => "kenta-{$scheme}-base-100", + '200' => "kenta-{$scheme}-base-200", + '300' => "kenta-{$scheme}-base-300", + ], + ] ); + + $presets = $scheme === 'light' ? kenta_color_presets() : kenta_dark_color_presets(); + $preset = $presets[ CZ::get( "{$prefix}_color_palettes" ) ] ?? []; + + foreach ( $global_colors as $setting => $args ) { + $color = CZ::get( $setting ); + foreach ( $args as $key => $var ) { + $preset_var_name = str_replace( "kenta-{$scheme}-", 'kenta-', rtrim( substr( $color[ $key ], strlen( 'var(--' ) ), ')' ) ); + if ( Utils::str_starts_with( $color[ $key ], 'var' ) && isset( $preset[ $preset_var_name ] ) ) { + $vars[ '--' . $var . $suffix ] = $preset[ $preset_var_name ]; + continue; + } + + $vars[ '--' . $var . $suffix ] = $color[ $key ]; + } + } + } + + // Content colors + $content_colors = apply_filters( 'kenta_content_color_vars', [ + 'kenta_content_base_color' => [ + 'initial' => 'kenta-content-base-color', + ], + 'kenta_content_drop_cap_color' => [ + 'initial' => 'kenta-content-drop-cap-color', + ], + 'kenta_content_links_color' => [ + 'initial' => 'kenta-link-initial-color', + 'hover' => 'kenta-link-hover-color', + ], + 'kenta_content_headings_color' => [ + 'initial' => 'kenta-headings-color', + ], + ] ); + + foreach ( $content_colors as $setting => $args ) { + $color = CZ::get( $setting ); + foreach ( $args as $key => $var ) { + $vars[ '--' . $var . $suffix ] = $color[ $key ]; + } + } + + return Css::parse( [ + /** + * Css vars + */ + $selector => $vars, + ] ); +} + +/** + * @param $scope + * @param array $css + * + * @return array|mixed + */ +function kenta_content_typography_css( $scope, $css = [] ) { + $fonts = apply_filters( 'kenta_content_typography_vars', [ + 'kenta_content_base_typography' => '', + 'kenta_content_drop_cap_typography' => '.has-drop-cap::first-letter', + ] ); + + foreach ( $fonts as $id => $selector ) { + $selector = $selector === '' ? $scope : $scope . ' ' . $selector; + + $css[ $selector ] = array_merge( + Css::typography( CZ::get( $id ) ), + $css[ $selector ] ?? [] + ); + } + + return $css; +} + +/** + * Button css + * + * @return array + */ +function kenta_content_buttons_css() { + $preset = kenta_button_preset( 'kenta_content_buttons_', CZ::get( 'kenta_content_buttons_preset' ) ); + + return array_merge( + [ + '--kenta-button-height' => CZ::get( 'kenta_content_buttons_min_height' ) + ], + Css::shadow( CZ::get( 'kenta_content_buttons_shadow', $preset ), '--kenta-button-shadow' ), + Css::shadow( CZ::get( 'kenta_content_buttons_shadow_active', $preset ), '--kenta-button-shadow-active' ), + Css::typography( CZ::get( 'kenta_content_buttons_typography', $preset ) ), + Css::border( CZ::get( 'kenta_content_buttons_border', $preset ), '--kenta-button-border' ), + Css::dimensions( CZ::get( 'kenta_content_buttons_padding', $preset ), '--kenta-button-padding' ), + Css::dimensions( CZ::get( 'kenta_content_buttons_radius', $preset ), '--kenta-button-radius' ), + Css::colors( CZ::get( 'kenta_content_buttons_text_color', $preset ), [ + 'initial' => '--kenta-button-text-initial-color', + 'hover' => '--kenta-button-text-hover-color', + ] ), + Css::colors( CZ::get( 'kenta_content_buttons_button_color', $preset ), [ + 'initial' => '--kenta-button-initial-color', + 'hover' => '--kenta-button-hover-color', + ] ) + ); +} + +/** + * Transparent header css + * + * @return string + */ +function kenta_transparent_header_css() { + + $transparent = kenta_is_transparent_header(); + + if ( ! $transparent ) { + return ''; + } + + $css = []; + + // header row + $css['.kenta-transparent-header .kenta-header-row'] = array_merge( + [ 'box-shadow' => 'none' ], + Css::border( CZ::get( 'kenta_trans_header_border_top' ), 'border-top' ), + Css::border( CZ::get( 'kenta_trans_header_border_bottom' ), 'border-bottom' ), + Css::background( CZ::get( 'kenta_trans_header_bg' ) ) + ); + + // site branding + $css['.kenta-transparent-header .kenta-site-branding .kenta-has-transparent-logo .kenta-transparent-logo'] = [ + 'display' => 'inline-block', + ]; + $css['.kenta-transparent-header .kenta-site-branding .kenta-has-transparent-logo .kenta-logo, .kenta-transparent-header .kenta-site-branding .kenta-has-transparent-logo .kenta-dark-scheme-logo'] = [ + 'display' => 'none', + ]; + $css['.kenta-transparent-header .kenta-site-branding .site-identity .site-title, .kenta-transparent-header .kenta-site-branding .site-identity .site-tagline'] = + Css::colors( CZ::get( 'kenta_trans_header_site_title_color' ), [ + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ); + + // Raw text + $css['.kenta-transparent-header, .kenta-transparent-header .kenta-data-time-element, .kenta-transparent-header .kenta-raw-html, .kenta-transparent-header .kenta-breadcrumbs-element'] = Css::colors( CZ::get( 'kenta_trans_header_raw_text_color' ), [ + 'text' => [ 'color', '--kenta-data-time-text-color', '--kenta-data-time-icon-color', '--breadcrumb-text' ], + 'initial' => [ '--kenta-link-initial-color', '--breadcrumb-link-initial' ], + 'hover' => [ '--kenta-link-hover-color', '--breadcrumb-link-hover' ], + ] ); + + // menu element + $css['.kenta-transparent-header .kenta-menu'] = array_merge( + Css::colors( CZ::get( 'kenta_trans_header_menu_color' ), [ + 'initial' => '--menu-text-initial-color', + 'hover' => '--menu-text-hover-color', + 'active' => '--menu-text-active-color', + ] ), + Css::colors( CZ::get( 'kenta_trans_header_menu_bg_color' ), [ + 'initial' => '--menu-background-initial-color', + 'hover' => '--menu-background-hover-color', + 'active' => '--menu-background-active-color', + ] ), + Css::colors( CZ::get( 'kenta_trans_header_menu_border_color' ), [ + 'initial' => [ + '--lotta-border---menu-items-border-top-initial-color', + '--lotta-border---menu-items-border-bottom-initial-color', + ], + 'active' => [ + '--lotta-border---menu-items-border-top-active-initial-color', + '--lotta-border---menu-items-border-bottom-active-initial-color', + ], + ] ) + ); + + // button & icon button element + $css['.kenta-transparent-header .kenta-button, .kenta-transparent-header .kenta-icon-button, .kenta-transparent-header .kenta-social-icon'] = array_merge( + Css::colors( CZ::get( 'kenta_trans_header_button_color' ), [ + 'initial' => [ + '--kenta-button-text-initial-color', + '--kenta-icon-button-icon-initial-color', + '--kenta-social-icon-initial-color', + ], + 'hover' => [ + '--kenta-button-text-hover-color', + '--kenta-icon-button-icon-hover-color', + '--kenta-social-icon-hover-color', + ], + ] ), + Css::colors( CZ::get( 'kenta_trans_header_button_border_color' ), [ + 'initial' => [ + '--lotta-border-initial-color', + '--lotta-border---kenta-button-border-initial-color', + '--kenta-icon-button-border-initial-color', + '--kenta-social-border-initial-color' + ], + 'hover' => [ + '--lotta-border-hover-color', + '--lotta-border---kenta-button-border-hover-color', + '--kenta-icon-button-border-hover-color', + '--kenta-social-border-hover-color', + ], + ] ), + Css::colors( CZ::get( 'kenta_trans_header_button_bg_color' ), [ + 'initial' => [ + '--kenta-button-initial-color', + '--kenta-icon-button-bg-initial-color', + '--kenta-social-bg-initial-color', + ], + 'hover' => [ + '--kenta-button-hover-color', + '--kenta-icon-button-bg-hover-color', + '--kenta-social-bg-hover-color', + ], + ] ) + ); + + $css = Css::parse( apply_filters( 'kenta_filter_transparent_header_css', $css ) ); + $breakpoint = Css::desktop(); + $device = CZ::get( 'kenta_enable_transparent_header_device' ); + + if ( $device === 'mobile' ) { + $css = '@media (max-width: ' . $breakpoint . ') {' . $css . '}'; + } + + if ( $device === 'desktop' ) { + $css = '@media (min-width: ' . $breakpoint . ') {' . $css . '}'; + } + + return $css; +} + +/** + * Preloader css + * + * @return mixed + */ +function kenta_preloader_css() { + if ( ! CZ::checked( 'kenta_global_preloader' ) ) { + return ''; + } + + $css = [ + '.kenta-preloader-wrap' => array_merge( + [ + '--kenta-preloader-background' => 'var(--kenta-base-100)', + '--kenta-preloader-primary' => 'var(--kenta-primary-color)', + '--kenta-preloader-accent' => 'var(--kenta-accent-active)', + 'position' => 'fixed', + 'top' => '0', + 'left' => '0', + 'width' => '100%', + 'height' => '100%', + 'z-index' => '100000', + 'display' => 'flex', + 'align-items' => 'center', + 'background' => 'var(--kenta-preloader-background)', + ], + Css::colors( CZ::get( 'kenta_preloader_colors' ), [ + 'background' => '--kenta-preloader-background', + 'accent' => '--kenta-preloader-accent', + 'primary' => '--kenta-preloader-primary', + ] ) + ), + ]; + + $preset = kenta_get_preloader( CZ::get( 'kenta_preloader_preset' ) ); + + return Css::parse( array_merge( $css, $preset['css'] ) ) . Css::keyframes( $preset['keyframes'] ); +} + +/** + * Generate no cache dynamic css + * + * @return mixed + * @since 1.1.4 + */ +function kenta_no_cache_dynamic_css() { + $css = array(); + + $option_type = kenta_current_option_type(); + $site_wrap_css = [ + '--kenta-content-area-spacing' => kenta_get_current_post_meta( 'disable-content-area-spacing' ) === 'yes' + ? '0px' : CZ::get( "kenta_{$option_type}_content_spacing" ), + '--wp-admin-bar-height' => ( ! is_admin_bar_showing() || is_customize_preview() ) ? '0px' : [ + 'desktop' => '32px', + 'tablet' => '32px', + 'mobile' => '46px', + ], + ]; + + // enable site wrap + $css['.kenta-site-wrap'] = $site_wrap_css; + + $css = apply_filters( 'kenta_filter_no_cache_dynamic_css', $css ); + + return Css::parse( $css ); +} + +/** + * Generate cached dynamic css + * + * @return mixed + */ +function kenta_dynamic_css() { + + // Enqueue header & footer builder style manually + Kenta_Header_Builder::instance()->builder()->do( 'enqueue_frontend_scripts' ); + Kenta_Footer_Builder::instance()->builder()->do( 'enqueue_frontend_scripts' ); + + $css = [ + ':root' => array_merge( + Css::typography( CZ::get( 'kenta_site_global_typography' ) ), + Css::filters( CZ::get( 'kenta_site_filters' ) ) + ), + ]; + + $option_type = kenta_current_option_type(); + + /** + * Global site + */ + $site_wrap_css = array_merge( + Css::typography( CZ::get( 'kenta_site_global_typography' ) ), + Css::background( CZ::get( 'kenta_site_background' ) ) + ); + + // enable site wrap + if ( CZ::checked( 'kenta_enable_site_wrap' ) ) { + $css['.kenta-body'] = Css::background( CZ::get( 'kenta_site_body_background' ) ); + $site_wrap_css = array_merge( $site_wrap_css, + Css::shadow( CZ::get( 'kenta_site_wrap_shadow' ) ), + [ '--kenta-site-wrap-width' => '1600px', 'margin' => '0 auto' ] + ); + } + + $css['.kenta-site-wrap'] = $site_wrap_css; + + // Posts, pages and store site background override + if ( $option_type === 'pages' || $option_type === 'single_post' || $option_type === 'store' ) { + $css[".kenta-{$option_type} .kenta-site-wrap"] = Css::background( CZ::get( 'kenta_' . $option_type . '_site_background' ) ); + } + + /** + * override global colors in header + */ + $css['.kenta-site-header'] = array_merge( + Css::colors( CZ::get( 'kenta_header_primary_color' ), [ + 'default' => '--kenta-primary-color', + 'active' => '--kenta-primary-active', + ] ), + Css::colors( CZ::get( 'kenta_header_accent_color' ), [ + 'default' => '--kenta-accent-color', + 'active' => '--kenta-accent-active', + ] ), + Css::colors( CZ::get( 'kenta_header_base_color' ), [ + 'default' => '--kenta-base-color', + '100' => '--kenta-base-100', + '200' => '--kenta-base-200', + '300' => '--kenta-base-300', + ] ) + ); + + // override global colors in footer + $css['.kenta-footer-area'] = array_merge( + Css::colors( CZ::get( 'kenta_footer_primary_color' ), [ + 'default' => '--kenta-primary-color', + 'active' => '--kenta-primary-active', + ] ), + Css::colors( CZ::get( 'kenta_footer_accent_color' ), [ + 'default' => '--kenta-accent-color', + 'active' => '--kenta-accent-active', + ] ), + Css::colors( CZ::get( 'kenta_footer_base_color' ), [ + 'default' => '--kenta-base-color', + '100' => '--kenta-base-100', + '200' => '--kenta-base-200', + '300' => '--kenta-base-300', + ] ) + ); + + /** + * Archive title + */ + $css['.kenta-archive-header'] = array_merge( + [ 'text-align' => CZ::get( 'kenta_archive_header_alignment' ) ], + Css::background( CZ::get( 'kenta_archive_header_background' ) ) + ); + $css['.kenta-archive-header .container'] = Css::dimensions( CZ::get( 'kenta_archive_header_padding' ), 'padding' ); + $css['.kenta-archive-header .archive-title'] = array_merge( + Css::typography( CZ::get( 'kenta_archive_title_typography' ) ), + Css::colors( CZ::get( 'kenta_archive_title_color' ), [ + 'initial' => 'color', + ] ) + ); + $css['.kenta-archive-header .archive-description'] = array_merge( + Css::typography( CZ::get( 'kenta_archive_description_typography' ) ), + Css::colors( CZ::get( 'kenta_archive_description_color' ), [ + 'initial' => 'color', + ] ) + ); + + $css['.kenta-archive-header::after'] = array_merge( + [ 'opacity' => CZ::get( 'kenta_archive_header_overlay_opacity' ) ], + Css::background( CZ::get( 'kenta_archive_header_overlay' ) ) + ); + + /** + * Post card + */ + if ( is_archive() || is_home() || is_search() ) { + + $css['.card-list'] = [ + '--card-gap' => CZ::get( 'kenta_card_gap' ), + '--card-thumbnail-width' => CZ::get( 'kenta_archive_image_width' ), + ]; + + $archive_layout = CZ::get( 'kenta_archive_layout' ); + + if ( $archive_layout === null || $archive_layout === 'archive-grid' || $archive_layout === 'archive-masonry' ) { + $card_width = []; + foreach ( CZ::get( 'kenta_archive_columns' ) as $device => $columns ) { + $card_width[ $device ] = sprintf( "%.2f", substr( sprintf( "%.3f", ( 100 / (int) $columns ) ), 0, - 1 ) ) . '%'; + } + $css['.card-wrapper'] = [ + 'width' => $card_width, + ]; + } else { + $css['.card-wrapper'] = [ + 'width' => '100%', + ]; + } + + $css['.card'] = array_merge( + [ + 'text-align' => CZ::get( 'kenta_card_content_alignment' ), + '--card-thumbnail-spacing' => CZ::get( 'kenta_card_thumbnail_spacing' ), + '--card-content-spacing' => CZ::get( 'kenta_card_content_spacing' ) + ], + kenta_card_preset_style( CZ::get( 'kenta_card_style_preset' ) ) + ); + } + + /** + * Posts Pagination + */ + if ( CZ::checked( 'kenta_archive_pagination_section' ) ) { + $pagination_type = CZ::get( 'kenta_pagination_type' ); + $pagination_css = []; + + if ( $pagination_type === 'numbered' || $pagination_type === 'prev-next' ) { + $pagination_css = array_merge( + Css::border( CZ::get( 'kenta_pagination_button_border' ), '--kenta-pagination-button-border' ), + Css::colors( CZ::get( 'kenta_pagination_button_color' ), [ + 'initial' => '--kenta-pagination-initial-color', + 'active' => '--kenta-pagination-active-color', + 'accent' => '--kenta-pagination-accent-color', + ] ), + [ '--kenta-pagination-button-radius' => CZ::get( 'kenta_pagination_button_radius' ) ] + ); + } + + $css['.kenta-pagination'] = array_merge( $pagination_css, + Css::typography( CZ::get( 'kenta_pagination_typography' ) ), + [ 'justify-content' => CZ::get( 'kenta_pagination_alignment' ) ] + ); + } + + /** + * Post elements + */ + $post_elements_scope = [ + 'entry' => [ + 'condition' => is_archive() || is_home() || is_search(), + 'elements' => [ 'title', 'metas', 'categories', 'tags', 'excerpt', 'thumbnail', 'divider', 'read-more' ], + 'selector' => '.card' + ], + 'post' => [ + 'condition' => is_single(), + 'elements' => [ 'title', 'metas', 'categories', 'tags' ], + 'selector' => '.kenta-article-header' + ], + 'page' => [ + 'condition' => is_page(), + 'elements' => [ 'title', 'metas', 'categories', 'tags' ], + 'selector' => '.kenta-article-header' + ], + 'related_posts' => [ + 'condition' => is_single() && CZ::checked( 'kenta_post_related_posts' ), + 'elements' => [ 'title', 'metas', 'categories', 'tags', 'excerpt', 'thumbnail', 'divider', 'read-more' ], + 'selector' => '.kenta-related-posts-wrap .card' + ], + ]; + + foreach ( $post_elements_scope as $id => $scope ) { + if ( ! $scope['condition'] ) { + continue; + } + + $scope_selector = $scope['selector']; + + $css = array_merge( $css, kenta_post_elements_css( $scope_selector, $id, $scope['elements'] ) ); + } + + /** + * Sidebar + */ + $sidebar_style = CZ::get( 'kenta_global_sidebar_sidebar-style' ); + $widgets_style_preset = CZ::get( 'kenta_global_sidebar_widgets-style' ); + $widgets_css = $widgets_style_preset === 'custom' ? array_merge( + Css::background( CZ::get( 'kenta_global_sidebar_widgets-background' ) ), + Css::border( CZ::get( 'kenta_global_sidebar_widgets-border' ) ), + Css::shadow( CZ::get( 'kenta_global_sidebar_widgets-shadow' ) ) + ) : kenta_card_preset_style( $widgets_style_preset ); + + $widgets_css = array_merge( + $widgets_css, + Css::dimensions( CZ::get( 'kenta_global_sidebar_widgets-padding' ), 'padding' ), + Css::dimensions( CZ::get( 'kenta_global_sidebar_widgets-radius' ), 'border-radius' ) + ); + + if ( $sidebar_style === 'style-1' ) { + $css[".kenta-sidebar .kenta-widget"] = $widgets_css; + } + + // list icon style + if ( ! CZ::checked( 'kenta_global_sidebar_list-icon' ) ) { + $css[".kenta-sidebar .kenta-widget ul li"] = [ + '--fa-display' => 'none', + '--widget-list-pl' => '0', + ]; + } + + $css[".kenta-sidebar"] = array_merge( + $sidebar_style === 'style-2' ? $widgets_css : [], + Css::typography( CZ::get( 'kenta_global_sidebar_content-typography' ) ), + Css::colors( CZ::get( 'kenta_global_sidebar_content-color' ), [ + 'text' => '--kenta-widgets-text-color', + 'initial' => '--kenta-widgets-link-initial', + 'hover' => '--kenta-widgets-link-hover', + ] ), + [ + '--kenta-sidebar-width' => CZ::get( 'kenta_global_sidebar_width' ) ?? '27%', + '--kenta-sidebar-gap' => CZ::get( 'kenta_global_sidebar_gap' ) ?? '24px', + '--kenta-widgets-spacing' => CZ::get( 'kenta_global_sidebar_widgets-spacing' ), + ] + ); + + $css[".kenta-sidebar .widget-title"] = array_merge( + Css::typography( CZ::get( 'kenta_global_sidebar_title-typography' ) ), + Css::colors( CZ::get( 'kenta_global_sidebar_title-color' ), [ + 'initial' => 'color', + 'indicator' => '--kenta-heading-indicator', + ] ) + ); + + /** + * Single post & page + */ + if ( is_single() || is_page() ) { + $article_type = is_page() ? 'page' : 'post'; + $prefix = 'kenta_' . $article_type; + + // Article content + $content_preset = CZ::get( $prefix . '_content_style_preset' ); + $sidebar_layout = kenta_get_sidebar_layout( $article_type ); + if ( $sidebar_layout === 'no-sidebar' ) { + $css['.kenta-article-content-wrap'] = array_merge( + array( + 'position' => 'relative', + 'padding' => $content_preset === 'ghost' ? '' : '24px', + ) + ); + + $css['.kenta-article-content-wrap::before'] = kenta_card_preset_style( $content_preset ); + } else { + $css['.kenta-article-content-wrap'] = kenta_card_preset_style( $content_preset ); + } + + // Article header + $css['.kenta-article-header'] = array_merge( + Css::dimensions( CZ::get( "{$prefix}_header_spacing" ), 'padding' ), + [ + 'text-align' => CZ::get( "{$prefix}_header_alignment" ) + ] + ); + + // Article header background + $css['.kenta-article-header-background::after'] = array_merge( + [ 'opacity' => CZ::get( "{$prefix}_featured_image_background_overlay_opacity" ) ], + Css::background( CZ::get( "{$prefix}_featured_image_background_overlay" ) ) + ); + $css['.kenta-article-header-background'] = array_merge( + Css::dimensions( CZ::get( "{$prefix}_featured_image_background_spacing" ), 'padding' ), + Css::colors( CZ::get( "{$prefix}_featured_image_elements_override" ), [ + 'override' => '--kenta-article-header-override', + ] ), + [ + 'position' => 'relative', + 'background-position' => 'center', + 'background-size' => 'cover', + 'background-repeat' => 'no-repeat', + ] + ); + + $css['.kenta-article-header-background img'] = Css::filters( CZ::get( "{$prefix}_featured_image_filter" ) ); + + // Article thumbnail + $css['.article-featured-image'] = Css::dimensions( CZ::get( "{$prefix}_featured_image_spacing" ), 'padding' ); + $css['.article-featured-image img'] = array_merge( + [ 'width' => '100%', 'height' => CZ::get( "{$prefix}_featured_image_height" ) ], + Css::shadow( CZ::get( "{$prefix}_featured_image_shadow" ) ), + Css::dimensions( CZ::get( "{$prefix}_featured_image_radius" ), 'border-radius' ), + Css::filters( CZ::get( "{$prefix}_featured_image_filter" ) ) + ); + + // Share box + if ( CZ::checked( 'kenta_' . $article_type . '_share_box' ) ) { + $css[ '.kenta-' . $article_type . '-socials' ] = array_merge( + [ + '--kenta-social-icons-size' => CZ::get( 'kenta_' . $article_type . '_share_box_icons_size' ), + '--kenta-social-icons-spacing' => CZ::get( 'kenta_' . $article_type . '_share_box_icons_spacing' ) + ], + Css::dimensions( CZ::get( 'kenta_' . $article_type . '_share_box_padding' ) ) + ); + + $css[ '.kenta-' . $article_type . '-socials .kenta-social-link' ] = array_merge( + Css::colors( CZ::get( 'kenta_' . $article_type . '_share_box_icons_color' ), [ + 'initial' => '--kenta-social-icon-initial-color', + 'hover' => '--kenta-social-icon-hover-color', + ] ), + Css::colors( CZ::get( 'kenta_' . $article_type . '_share_box_icons_bg_color' ), [ + 'initial' => '--kenta-social-bg-initial-color', + 'hover' => '--kenta-social-bg-hover-color', + ] ), + Css::colors( CZ::get( 'kenta_' . $article_type . '_share_box_icons_border_color' ), [ + 'initial' => '--kenta-social-border-initial-color', + 'hover' => '--kenta-social-border-hover-color', + ] ) + ); + } + + // Author box + if ( is_single() && CZ::checked( 'kenta_post_author_bio' ) ) { + $css['.kenta-about-author-bio-box'] = array_merge( + [ + '--kenta-author-bio-avatar-radius' => CZ::get( 'kenta_post_author_bio_avatar_radius' ), + 'text-align' => CZ::get( 'kenta_post_author_bio_alignment' ) + ], + Css::background( CZ::get( 'kenta_post_author_bio_background' ) ), + Css::dimensions( CZ::get( 'kenta_post_author_bio_padding' ), 'padding' ), + Css::dimensions( CZ::get( 'kenta_post_author_bio_spacing' ) ), + Css::border( CZ::get( 'kenta_post_author_bio_border' ) ), + Css::shadow( CZ::get( 'kenta_post_author_bio_shadow' ) ) + ); + } + + // Post navigation + if ( is_single() ) { + $css['.kenta-post-navigation'] = array_merge( + Css::dimensions( CZ::get( 'kenta_post_navigation_padding' ) ), + Css::colors( CZ::get( 'kenta_post_navigation_text_color' ), [ + 'initial' => '--kenta-navigation-initial-color', + 'hover' => '--kenta-navigation-hover-color', + ] ) + ); + } + + // Related posts + if ( CZ::checked( 'kenta_post_related_posts' ) ) { + $css['.kenta-related-posts-list'] = [ + '--card-gap' => CZ::get( 'kenta_related_posts_grid_items_gap' ), + ]; + + $card_width = []; + foreach ( CZ::get( 'kenta_related_posts_grid_columns' ) as $device => $columns ) { + $card_width[ $device ] = sprintf( "%.2f", substr( sprintf( "%.3f", ( 100 / (int) $columns ) ), 0, - 1 ) ) . '%'; + } + $css['.kenta-related-posts-list .card-wrapper'] = [ + 'width' => $card_width, + ]; + + $css['.kenta-related-posts-list .card'] = array_merge( + [ + 'text-align' => CZ::get( 'kenta_related_posts_card_content_alignment' ), + '--card-thumbnail-spacing' => CZ::get( 'kenta_related_posts_card_thumbnail_spacing' ), + '--card-content-spacing' => CZ::get( 'kenta_related_posts_card_content_spacing' ) + ], + kenta_card_preset_style( CZ::get( 'kenta_related_posts_card_style_preset' ) ) + ); + } + } + + /** + * Article & shop + */ + if ( is_single() || is_page() || kenta_is_woo_shop() ) { + // Article typography + $css = kenta_content_typography_css( '.kenta-article-content', $css ); + } + + // Buttons + $button_selectors = [ + '[type="submit"]', + // woocommerce + '.woocommerce a.button', + '.woocommerce button.button', + // widgets + '.wp-block-search__button', + '.wc-block-product-search__button', + // article + '.kenta-article-content .wp-block-button', + '.kenta-article-content button', + ]; + $css[ implode( ',', $button_selectors ) ] = kenta_content_buttons_css(); + + // Forms + $css['.kenta-form, form, [type="submit"]'] = Css::typography( CZ::get( 'kenta_content_form_typography' ) ); + + $form_presets = kenta_form_style_presets(); + $css[ implode( ',', array_keys( $form_presets ) ) ] = array_merge( + Css::colors( CZ::get( 'kenta_content_form_color' ), [ + 'background' => '--kenta-form-background-color', + 'border' => '--kenta-form-border-color', + 'active' => '--kenta-form-active-color', + ] ) + ); + + foreach ( $form_presets as $selector => $preset ) { + $css[ $selector ] = $preset; + } + + $css = apply_filters( 'kenta_filter_dynamic_css', $css ); + + return Css::parse( $css ); +} + +/** + * Generate dynamic css for block editor + * + * @param $root .editor-styles-wrapper | body + * + * @return mixed + * @since 1.4.0 + */ +function kenta_block_editor_dynamic_css( $root = ':root' ) { + $css = []; + + $css[ $root ] = array_merge( + Css::background( CZ::get( 'kenta_site_background' ) ), + Css::typography( CZ::get( 'kenta_site_global_typography' ) ), + Css::filters( CZ::get( 'kenta_site_filters' ) ) + ); + + $css["{$root} .wp-block-button"] = kenta_content_buttons_css(); + + return Css::parse( apply_filters( + 'kenta_filter_admin_dynamic_css', + kenta_content_typography_css( $root, $css ) + ) ); +} diff --git a/wp-content/themes/kenta/inc/elements/class-breadcrumbs-element.php b/wp-content/themes/kenta/inc/elements/class-breadcrumbs-element.php new file mode 100644 index 0000000000..61dcdf6d82 --- /dev/null +++ b/wp-content/themes/kenta/inc/elements/class-breadcrumbs-element.php @@ -0,0 +1,154 @@ +setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $this->getBreadcrumbsContentControls() ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getBreadcrumbsStyleControls() ) + ]; + } + + protected function getBreadcrumbsContentControls() { + $controls = [ + ( new ImageRadio( $this->getSlug( 'separator' ) ) ) + ->setLabel( __( 'Separator', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( 'breadcrumb-sep-1' ) + ->setColumns( 4 ) + ->setChoices( [ + 'breadcrumb-sep-1' => [ + 'src' => kenta_image( 'breadcrumb-sep-1' ), + 'title' => __( 'Type 1', 'kenta' ), + ], + 'breadcrumb-sep-2' => [ + 'src' => kenta_image( 'breadcrumb-sep-2' ), + 'title' => __( 'Type 2', 'kenta' ), + ], + 'breadcrumb-sep-3' => [ + 'src' => kenta_image( 'breadcrumb-sep-3' ), + 'title' => __( 'Type 3', 'kenta' ), + ], + 'breadcrumb-sep-4' => [ + 'src' => kenta_image( 'breadcrumb-sep-4' ), + 'title' => __( 'Type 4', 'kenta' ), + ], + ] ), + ]; + + return apply_filters( 'kenta_breadcrumbs_element_content_controls', $controls, $this->slug, $this->selectiveRefresh() ); + } + + protected function getBreadcrumbsStyleControls() { + $controls = [ + ( new Spacing( $this->getSlug( 'spacing' ) ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->enableResponsive() + ->setDisabled( [ 'left', 'right' ] ) + ->asyncCss( ".$this->slug", AsyncCss::dimensions( 'padding' ) ) + ->setDefaultValue( [ + 'left' => '0px', + 'right' => '0px', + 'top' => '12px', + 'bottom' => '12px', + 'linked' => true, + ] ) + , + ]; + + return apply_filters( 'kenta_breadcrumbs_element_style_controls', $controls, $this->slug, $this->selectiveRefresh() ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".$this->slug"] = array_merge( + Css::dimensions( CZ::get( $this->getSlug( 'spacing' ) ), 'padding' ), + Css::typography( CZ::get( $this->getSlug( 'typography' ) ) ), + Css::colors( CZ::get( $this->getSlug( 'text_color' ) ), [ + 'text' => '--breadcrumb-text', + 'initial' => '--breadcrumb-link-initial', + 'hover' => '--breadcrumb-link-hover', + ] ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function shouldRender() { + // Don't render in front page + return ! is_front_page(); + } + + public function render( $attrs = [] ) { + $attrs['class'] = Utils::clsx( [ + 'kenta-breadcrumbs-element', + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'breadcrumbs', $attr, $value ); + } + + Breadcrumbs::setSep( '' . kenta_image( CZ::get( $this->getSlug( 'separator' ) ) ) . '' ); + Breadcrumbs::setLinkFormat( '%2$s' ); + Breadcrumbs::setItemFormat( '%1$s' ); + + /** + * Before breadcrumbs element render + */ + do_action( 'kenta_before_breadcrumbs_render', $this->slug ); + + ?> +
print_attribute_string( 'breadcrumbs' ); ?>> + +
+ slug ); + } + } +} diff --git a/wp-content/themes/kenta/inc/elements/class-button-element.php b/wp-content/themes/kenta/inc/elements/class-button-element.php new file mode 100644 index 0000000000..f8b935f772 --- /dev/null +++ b/wp-content/themes/kenta/inc/elements/class-button-element.php @@ -0,0 +1,140 @@ + ".{$this->slug}", + 'button-selective' => $this->selectiveRefresh(), + 'button-css-selective' => 'kenta-header-selective-css', + 'show-arrow' => 'yes', + ], $this->defaults ); + + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), array_merge( [ + ( new Text( $this->getSlug( 'link' ) ) ) + ->setLabel( __( 'Button Link', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( '#' ) + , + ( new Separator() ), + ( new Toggle( $this->getSlug( 'open_new_tab' ) ) ) + ->setLabel( __( 'Open In New Tab', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->closeByDefault() + , + ( new Toggle( $this->getSlug( 'no_follow' ) ) ) + ->setLabel( __( 'No Follow', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->closeByDefault() + , + ( new Separator() ), + ], $this->getButtonContentControls( $this->slug . '_', $button_defaults ) ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getButtonStyleControls( $this->slug . '_', $button_defaults ) ) + , + ]; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + + $preset = kenta_button_preset( $this->slug . '_', CZ::get( $this->getSlug( 'preset' ) ) ); + + $css[".{$this->slug}"] = array_merge( + [ + '--kenta-button-height' => CZ::get( $this->getSlug( 'min_height' ) ) + ], + Css::shadow( CZ::get( $this->getSlug( 'shadow' ), $preset ), '--kenta-button-shadow' ), + Css::shadow( CZ::get( $this->getSlug( 'shadow_active' ), $preset ), '--kenta-button-shadow-active' ), + Css::typography( CZ::get( $this->getSlug( 'typography' ), $preset ) ), + Css::dimensions( CZ::get( $this->getSlug( 'padding' ), $preset ), '--kenta-button-padding' ), + Css::dimensions( CZ::get( $this->getSlug( 'radius' ), $preset ), '--kenta-button-radius' ), + Css::colors( CZ::get( $this->getSlug( 'text_color' ), $preset ), [ + 'initial' => '--kenta-button-text-initial-color', + 'hover' => '--kenta-button-text-hover-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'button_color' ), $preset ), [ + 'initial' => '--kenta-button-initial-color', + 'hover' => '--kenta-button-hover-color', + ] ), + Css::border( CZ::get( $this->getSlug( 'border' ), $preset ), '--kenta-button-border' ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $attrs['class'] = Utils::clsx( [ + 'kenta-button', + 'kenta-button-' . CZ::get( $this->getSlug( 'arrow_dir' ) ), + $this->slug + ], $attrs['class'] ?? [] ); + + $this->add_render_attribute( 'button', 'href', esc_url( CZ::get( $this->getSlug( 'link' ) ) ) ); + + if ( CZ::checked( $this->getSlug( 'open_new_tab' ) ) ) { + $this->add_render_attribute( 'button', 'target', '_blank' ); + } + + if ( CZ::checked( $this->getSlug( 'no_follow' ) ) ) { + $this->add_render_attribute( 'button', 'rel', 'nofollow' ); + } + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'button', $attr, $value ); + } + + ?> + print_attribute_string( 'button' ); ?>> + getSlug( 'show_arrow' ) ) ) { + echo ''; + IconsManager::print( CZ::get( $this->getSlug( 'arrow' ) ) ); + echo ''; + } + ?> + + getSlug( 'text' ) ) ) ?> + + + show_badge(); + $html = ob_get_clean(); + + $fragments['.kenta-cart-badge-wrapper'] = $html; + + return $fragments; + } + + /** + * {@inheritDoc} + */ + public function getControls() { + return [ + ( new Tabs() ) + ->setActiveTab( 'icon' ) + ->addTab( 'icon', __( 'Icon', 'kenta' ), array_merge( [ + ( new Icons( $this->getSlug( 'icon_button_icon' ) ) ) + ->setLabel( __( 'Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-basket-shopping', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ], $this->getIconControls( [ + 'selector' => ".{$this->slug} .kenta-cart-trigger", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getIconStyleControls( [ + 'selector' => ".{$this->slug} .kenta-cart-trigger", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) + ]; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".{$this->slug} .kenta-cart-trigger"] = $this->getIconButtonCss(); + + return $css; + } ); + } + + /** + * Validates whether the Woo Cart instance is available in the request + * + * @return bool + */ + protected function is_woo_cart_available() { + if ( ! KENTA_WOOCOMMERCE_ACTIVE ) { + return false; + } + + $woo = WC(); + + return $woo instanceof \WooCommerce && $woo->cart instanceof \WC_Cart; + } + + /** + * Show cart count badge + */ + public function show_badge() { + echo ''; + + $cart_count = WC()->cart->cart_contents_count; + if ( $cart_count > 0 ) { + echo ''; + echo $cart_count; + echo ''; + } + + echo ''; + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + if ( ! $this->is_woo_cart_available() ) { + return; + } + + $preset = $this->getIconButtonPreset( CZ::get( $this->getSlug( 'icon_button_preset' ) ) ); + $shape = CZ::get( $this->getSlug( 'icon_button_icon_shape' ), $preset ); + $fill = CZ::get( $this->getSlug( 'icon_button_shape_fill_type' ), $preset ); + + $button_classes = Utils::clsx( [ + 'kenta-cart-trigger', + 'kenta-icon-button', + 'kenta-icon-button-' . $shape, + 'kenta-icon-button-' . $fill => $shape !== 'none', + ] ); + + $this->add_render_attribute( 'cart', 'class', $button_classes ); + + $attrs['class'] = ( $attrs['class'] ?? '' ) . ' kenta-cart-trigger-wrap relative ' . $this->slug; + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'cart-wrap', $attr, $value ); + } + + $this->add_render_attribute( 'cart-wrap', 'data-popup-target', "kenta-cart-popup" ); + + $cart_count = WC()->cart->cart_contents_count; + $cart_link = esc_url( $cart_count ? wc_get_cart_url() : wc_get_page_permalink( 'shop' ) ); + + ?> + + slug, $this->getLabel() ); + } ); + } + + /** + * {@inheritDoc} + */ + public function getControls() { + return [ + ( new CallToAction( $this->getSlug( 'edit_locations' ) ) ) + ->setLabel( __( 'Edit Menu Locations', 'kenta' ) ) + ->expandCustomize( 'menu_locations' ) + , + ( new Separator() ), + ( new Slider( $this->getSlug( 'depth' ) ) ) + ->setLabel( __( 'Menu Depth', 'kenta' ) ) + ->setDescription( __( '"0" meas no limit.', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->displayInline() + ->setMin( 0 ) + ->setMax( 10 ) + ->setDefaultUnit( false ) + ->setDefaultValue( $this->getDefaultSetting( 'depth', 0 ) ) + , + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), [ + ( new Toggle( $this->getSlug( 'collapsable' ) ) ) + ->setLabel( __( 'Collapsable', 'kenta' ) ) + ->setDescription( __( 'This option will collapse/expand the sub menu items on click/touch.', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->openByDefault() + , + ( new Separator() ), + ( new Icons( $this->getSlug( 'toggle-icon' ) ) ) + ->setLabel( __( 'Toggle Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-angle-down', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ( new Radio( $this->getSlug( 'toggle-style' ) ) ) + ->setLabel( __( 'Toggle Style', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->setDefaultValue( 'bordered' ) + ->buttonsGroupView() + ->setChoices( [ + 'simple' => __( 'Simple', 'kenta' ), + 'bordered' => __( 'Bordered', 'kenta' ), + ] ) + , + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'toggle-style' ) => 'bordered' ] ) + ->setControls( [ + ( new Border( $this->getSlug( 'toggle-border' ) ) ) + ->setLabel( __( 'Toggle Border', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->setDefaultBorder( 1, 'solid', 'var(--kenta-base-200)' ) + , + ] ) + , + ] ) + ->addTab( 'style', __( 'Style', 'kenta' ), [ + ( new Typography( $this->getSlug( 'typography' ) ) ) + ->setLabel( __( 'Typography', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '1rem', + 'variant' => '700', + 'lineHeight' => '1.5em' + ] ) + , + ( new ColorPicker( $this->getSlug( 'color' ) ) ) + ->setLabel( __( 'Color', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-accent-color)' ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), 'var(--kenta-primary-color)' ) + ->addColor( 'active', __( 'Active', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ( new Separator() ), + ( new Border( $this->getSlug( 'divider' ) ) ) + ->setLabel( __( 'Items Divider', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->setDefaultBorder( 1, 'solid', 'var(--kenta-base-200)' ) + , + ] ) + , + ]; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + + $css[".$this->slug"] = array_merge( + Css::typography( CZ::get( $this->getSlug( 'typography' ) ) ), + Css::border( CZ::get( $this->getSlug( 'divider' ) ), '--menu-items-divider' ), + Css::colors( CZ::get( $this->getSlug( 'color' ) ), [ + 'initial' => '--menu-text-initial-color', + 'hover' => '--menu-text-hover-color', + 'active' => '--menu-text-active-color', + ] ) + ); + + if ( CZ::get( $this->getSlug( 'toggle-style' ) ) === 'bordered' ) { + $css[".$this->slug"] = array_merge( + $css[".$this->slug"], + Css::border( CZ::get( $this->getSlug( 'toggle-border' ) ), '--menu-dropdown-toggle-border' ) + ); + } + + return $css; + } ); + } + + /** + * Seletive refresh args + * + * @return array + */ + protected function selectiveRefresh() { + return [ + ".{$this->getSlug( 'wrap' )}", + [ $this, 'build' ], + [ 'container_inclusive' => true ] + ]; + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + + $attrs['class'] = Utils::clsx( + 'kenta-collapsable-menu h-full', + $this->getSlug( 'wrap' ), + $attrs['class'] ?? [] + ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( $this->slug, $attr, $value ); + } + + $menu = CZ::get( $this->getSlug( 'menu' ) ); + + $depth = absint( CZ::get( $this->getSlug( 'depth' ) ) ); + $hasArrow = $depth !== 1; + + echo '
render_attribute_string( $this->slug ) . '>'; + wp_nav_menu( [ + 'menu' => $menu, + 'theme_location' => $this->slug, + 'menu_class' => Utils::clsx( 'kenta-collapsable-menu', $this->slug, [ + 'collapsable' => CZ::checked( $this->getSlug( 'collapsable' ) ), + 'kenta-menu-has-arrow' => $hasArrow, + ] ), + 'fallback_cb' => function ( $args ) { + // for customize menu style, the default one not work. + wp_page_menu( array_merge( $args, [ + 'container' => 'ul' + ] ) ); + }, + 'items_wrap' => '
    %3$s
', + 'depth' => $depth, + 'container' => false, + 'echo' => true, + 'link_after' => CZ::checked( $this->getSlug( 'collapsable' ) ) + ? '' + : '', + ] ); + echo '
'; + } + } +} diff --git a/wp-content/themes/kenta/inc/elements/class-copyright-element.php b/wp-content/themes/kenta/inc/elements/class-copyright-element.php new file mode 100644 index 0000000000..aaa9ba0c76 --- /dev/null +++ b/wp-content/themes/kenta/inc/elements/class-copyright-element.php @@ -0,0 +1,105 @@ +getSlug( 'typography' ) ) ) + ->setLabel( __( 'Typography', 'kenta' ) ) + ->asyncCss( ".$this->slug", AsyncCss::typography() ) + ->setDefaultValue( [ + 'family' => 'inherit', + 'fontSize' => '0.85rem', + 'variant' => '400', + 'lineHeight' => '1.5em' + ] ) + , + ( new ColorPicker( $this->getSlug( 'color' ) ) ) + ->setLabel( __( 'Color', 'kenta' ) ) + ->asyncColors( ".$this->slug", [ + 'text' => 'color', + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ) + ->enableAlpha() + ->addColor( 'text', __( 'Text Initial', 'kenta' ), 'var(--kenta-accent-active)' ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), 'var(--kenta-primary-color)' ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), 'var(--kenta-primary-active)' ) + , + ], $this->slug, $this->selectiveRefresh() ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add copyright dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".$this->slug"] = array_merge( + Css::typography( CZ::get( $this->getSlug( 'typography' ) ) ), + Css::colors( CZ::get( $this->getSlug( 'color' ) ), [ + 'text' => 'color', + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $attrs['class'] = Utils::clsx( [ + 'kenta-copyright', + 'kenta-raw-html', + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'copyright', $attr, $value ); + } + + $theme = wp_get_theme(); + $theme_info = sprintf( '%s', esc_url( $theme->get( 'ThemeURI' ) ), $theme->get( 'Name' ) ); + $author_info = sprintf( '%s', esc_url( $theme->get( 'AuthorURI' ) ), $theme->get( 'Author' ) ); + + $text = CZ::get( $this->getSlug( 'text' ) ) ?? 'Copyright © {current_year} - {about_theme} By {about_author}'; + + $text = str_replace( '{current_year}', date( 'Y' ), $text ); + $text = str_replace( '{site_title}', get_bloginfo( 'name' ), $text ); + $text = str_replace( '{about_theme}', $theme_info, $text ); + $text = str_replace( '{about_author}', $author_info, $text ); + + ?> +
print_attribute_string( 'copyright' ); ?>> + +
+ setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), [ + ( new ImageUploader( $this->getSlug( 'logo' ) ) ) + ->setLabel( __( 'Logo', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( $this->getDefaultSetting( 'logo', '' ) ) + , + ( new Toggle( 'kenta_enable_dark_scheme_logo' ) ) + ->setLabel( __( 'Logo For Dark Mode', 'kenta' ) ) + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + ->closeByDefault() + , + ( new \LottaFramework\Customizer\Controls\Condition() ) + ->setCondition( [ 'kenta_enable_dark_scheme_logo' => 'yes' ] ) + ->setControls( [ + ( new ImageUploader( 'kenta_dark_scheme_logo' ) ) + ->setLabel( __( 'Dark Mode Logo', 'kenta' ) ) + ->setDefaultValue( '' ) + ->selectiveRefresh( '.kenta-site-header', 'kenta_header_render' ) + , + ] ), + ( new Separator() ), + ( new Radio( $this->getSlug( 'position' ) ) ) + ->setLabel( __( 'Logo Position', 'kenta' ) ) + ->buttonsGroupView() + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( $this->getDefaultSetting( 'position', 'left' ) ) + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + 'top' => __( 'Top', 'kenta' ), + ] ) + , + ( new Slider( $this->getSlug( 'width' ) ) ) + ->setLabel( __( 'Logo Width', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( ".{$this->slug}", [ '--logo-max-width' => 'value' ] ) + ->setUnits( [ + [ 'unit' => 'px', 'min' => 0, 'max' => 600 ], + [ 'unit' => '%', 'min' => 0, 'max' => 100 ], + ] ) + ->postMessage() + ->setDefaultValue( $this->getDefaultSetting( 'width', '200px' ) ) + , + ( new Slider( $this->getSlug( 'spacing' ) ) ) + ->setLabel( __( 'Logo Spacing', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( ".{$this->slug}", [ '--logo-spacing' => 'value' ] ) + ->setMin( 0 ) + ->setMax( 300 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $this->getDefaultSetting( 'spacing', '12px' ) ) + , + ( new Separator() ), + ( new Toggle( $this->getSlug( 'enable_site_title' ) ) ) + ->setLabel( __( 'Site Title', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( $this->getDefaultSetting( 'enable-site-title', 'yes' ) ) + , + ( new Toggle( $this->getSlug( 'enable_site_tagline' ) ) ) + ->setLabel( __( 'Site Tagline', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( $this->getDefaultSetting( 'enable-site-tagline', 'no' ) ) + , + ( new CallToAction() ) + ->setLabel( __( 'Click here to edit the site title and tagline.', 'kenta' ) ) + ->expandCustomize( 'title_tagline' ) + , + ( new Separator() )->dashedStyle(), + ( new Radio( $this->getSlug( 'content_alignment' ) ) ) + ->enableResponsive() + ->asyncCss( ".{$this->slug}", [ 'text-align' => 'value' ] ) + ->setLabel( __( 'Content Alignment', 'kenta' ) ) + ->buttonsGroupView() + ->setDefaultValue( $this->getDefaultSetting( 'content-alignment', 'left' ) ) + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'center' => __( 'Center', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ] ) + ->addTab( 'style', __( 'Style', 'kenta' ), [ + ( new Typography( $this->getSlug( 'site_title_typography' ) ) ) + ->setLabel( __( 'Site Title Typography', 'kenta' ) ) + ->asyncCss( ".{$this->slug} .site-title", AsyncCss::typography() ) + ->setDefaultValue( $this->getDefaultSetting( 'site-title-typography', [ + 'family' => 'inherit', + 'fontSize' => '28px', + 'variant' => '400', + 'lineHeight' => '1.5', + 'textTransform' => 'uppercase', + ] ) ) + , + ( new ColorPicker( $this->getSlug( 'site_title_color' ) ) ) + ->setLabel( __( 'Site Title Color', 'kenta' ) ) + ->enableAlpha() + ->asyncColors( ".{$this->slug} .site-title", [ + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), + $this->getDefaultSetting( 'title-initial', 'var(--kenta-accent-color)' ) ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), + $this->getDefaultSetting( 'title-hover', 'var(--kenta-primary-color)' ) ) + , + ( new Separator() ), + ( new Typography( $this->getSlug( 'site_tagline_typography' ) ) ) + ->setLabel( __( 'Site Tagline Typography', 'kenta' ) ) + ->asyncCss( ".{$this->slug} .site-tagline", AsyncCss::typography() ) + ->setDefaultValue( $this->getDefaultSetting( 'site-tagline-typography', [ + 'family' => 'inherit', + 'fontSize' => '14px', + 'variant' => '400', + 'lineHeight' => '1.5', + ] ) ) + , + ( new ColorPicker( $this->getSlug( 'site_tagline_color' ) ) ) + ->setLabel( __( 'Site Tagline Color', 'kenta' ) ) + ->enableAlpha() + ->asyncColors( ".{$this->slug} .site-tagline", [ + 'initial' => '--kenta-link-initial-color', + ] ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), + $this->getDefaultSetting( 'tagline-initial', 'var(--kenta-accent-active)' ) ) + , + ] ) + ]; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + + $css[".{$this->slug}"] = [ + '--logo-max-width' => CZ::get( $this->getSlug( 'width' ) ), + '--logo-spacing' => CZ::get( $this->getSlug( 'spacing' ) ), + 'text-align' => CZ::get( $this->getSlug( 'content_alignment' ) ), + ]; + + if ( CZ::checked( $this->getSlug( 'enable_site_title' ) ) ) { + $css[".{$this->slug} .site-title"] = array_merge( + Css::typography( CZ::get( $this->getSlug( 'site_title_typography' ) ) ), + Css::colors( CZ::get( $this->getSlug( 'site_title_color' ) ), [ + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ) + ); + } + + if ( CZ::checked( $this->getSlug( 'enable_site_tagline' ) ) ) { + $css[".{$this->slug} .site-tagline"] = array_merge( + Css::typography( CZ::get( $this->getSlug( 'site_tagline_typography' ) ) ), + Css::colors( CZ::get( $this->getSlug( 'site_tagline_color' ) ), [ + 'initial' => '--kenta-link-initial-color', + ] ) + ); + } + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'wrapper', $attr, $value ); + } + + $this->add_render_attribute( 'wrapper', 'class', 'kenta-site-branding ' . $this->slug ); + $this->add_render_attribute( 'wrapper', 'data-logo', CZ::get( $this->getSlug( 'position' ) ) ); + + $trans_logo_attr = array(); + $dark_logo_attr = array(); + $logo_attr = CZ::imgAttrs( $this->getSlug( 'logo' ) ); + + if ( $this->getDefaultSetting( 'transparent-logo', false ) + && kenta_is_transparent_header() + && CZ::checked( 'kenta_enable_transparent_header_logo' ) + ) { + $trans_logo_attr = CZ::imgAttrs( 'kenta_transparent_header_logo' ); + $trans_logo_attr['class'] = 'kenta-transparent-logo'; + } + + if ( CZ::checked( 'kenta_enable_dark_scheme_logo' ) ) { + $dark_logo_attr = CZ::imgAttrs( 'kenta_dark_scheme_logo' ); + $dark_logo_attr['class'] = 'kenta-dark-scheme-logo'; + } + + $title = CZ::checked( $this->getSlug( 'enable_site_title' ) ) + ? get_bloginfo( 'name' ) + : ''; + + $tagline = CZ::checked( $this->getSlug( 'enable_site_tagline' ) ) + ? get_bloginfo( 'description' ) + : ''; + + ?> +
print_attribute_string( 'wrapper' ); ?>> + + + + /> + + + /> + + /> + + +
+ + + + + + + + + + +
+
+ slug, $this->getLabel() ); + } ); + } + + protected function getTopLevelControls() { + $controls = [ + ( new Select( $this->getSlug( 'top_level_preset' ) ) ) + ->setLabel( __( 'Top Level Preset', 'kenta' ) ) + ->setDefaultValue( 'ghost' ) + ->bindSelectiveRefresh( $this->getDefaultSetting( 'selective-refresh' ) ) + ->setChoices( apply_filters( 'kenta_menu_top_level_preset_options', [ + 'ghost' => __( 'Ghost', 'kenta' ), + 'border-bottom' => __( 'Bottom Border', 'kenta' ), + 'border-top' => __( 'Top Border', 'kenta' ), + 'border-both' => __( 'Both Border', 'kenta' ), + 'pill' => __( 'Pill', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ] ) ) + , + ( new Slider( $this->getSlug( 'top_level_height' ) ) ) + ->setLabel( __( 'Items Height', 'kenta' ) ) + ->asyncCss( ".{$this->slug}", [ '--menu-items-height' => 'value' ] ) + ->setDefaultValue( $this->getDefaultSetting( 'top-level-height', '50%' ) ) + ->setDefaultUnit( $this->getDefaultSetting( 'top-level-height-unit', '%' ) ) + ->setMin( 5 ) + ->setMax( 100 ) + , + ]; + + return apply_filters( 'kenta_menu_top_level_controls', $controls, $this->slug, $this->defaults ); + } + + /** + * @return array + */ + protected function getDropdownGeneralControls() { + return [ + ( new Slider( $this->getSlug( 'dropdown_width' ) ) ) + ->setLabel( __( 'Min Width', 'kenta' ) ) + ->asyncCss( ".{$this->slug}", [ '--dropdown-width' => 'value' ] ) + ->setDefaultValue( $this->getDefaultSetting( 'dropdown-width', '200px' ) ) + ->setMin( 100 ) + ->setMax( 300 ) + , + ( new Radio( $this->getSlug( 'dropdown_direction' ) ) ) + ->setLabel( __( 'Direction', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->buttonsGroupView() + ->setDefaultValue( $this->getDefaultSetting( 'dropdown-direction', 'right' ) ) + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new Spacing( $this->getSlug( 'dropdown_item_padding' ) ) ) + ->setLabel( __( 'Items Padding', 'kenta' ) ) + ->asyncCss( ".{$this->slug}", AsyncCss::dimensions( '--dropdown-item-padding' ) ) + ->setDefaultValue( $this->getDefaultSetting( 'dropdown-item-padding', [ + 'top' => '12px', + 'bottom' => '12px', + 'left' => '12px', + 'right' => '12px', + 'linked' => true, + ] ) ) + , + ( new Spacing( $this->getSlug( 'dropdown_radius' ) ) ) + ->setLabel( __( 'Dropdown Border Radius', 'kenta' ) ) + ->asyncCss( ".{$this->slug}", AsyncCss::dimensions( '--dropdown-radius' ) ) + ->setDefaultValue( $this->getDefaultSetting( 'dropdown-radius', [ + 'top' => '3px', + 'bottom' => '3px', + 'left' => '3px', + 'right' => '3px', + 'linked' => true, + ] ) ) + ]; + } + + /** + * @return array + */ + protected function getDropdownStyleControls() { + $controls = [ + ( new Select( $this->getSlug( 'dropdown_preset' ) ) ) + ->setLabel( __( 'Dropdown Preset', 'kenta' ) ) + ->setDefaultValue( 'ghost' ) + ->bindSelectiveRefresh( $this->getDefaultSetting( 'selective-refresh' ) ) + ->setChoices( [ + 'ghost' => __( 'Ghost', 'kenta' ), + 'ghost-dark' => __( 'Ghost Dark', 'kenta' ), + 'solid' => __( 'Solid', 'kenta' ), + 'solid-dark' => __( 'Solid Dark', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ] ) + , + ]; + + return apply_filters( 'kenta_menu_dropdown_style_controls', $controls, $this->slug, $this->defaults ); + } + + /** + * Get all controls + * + * @return array + */ + public function getControls(): array { + return [ + ( new CallToAction( $this->getSlug( 'edit_locations' ) ) ) + ->setLabel( __( 'Edit Menu Locations', 'kenta' ) ) + ->expandCustomize( 'menu_locations' ) + , + ( new Separator() ), + ( new Slider( $this->getSlug( 'depth' ) ) ) + ->setLabel( __( 'Menu Depth', 'kenta' ) ) + ->setDescription( __( '"0" meas no limit.', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setMin( 0 ) + ->setMax( 10 ) + ->setDefaultUnit( false ) + ->setDefaultValue( $this->getDefaultSetting( 'depth', 0 ) ) + , + + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'depth' ) => '!1' ] ) + ->setControls( [ + ( new Separator() ), + ( new Toggle( $this->getSlug( 'arrow' ) ) ) + ->setLabel( __( 'Sub Menu Toggle Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( $this->getDefaultSetting( 'arrow', 'yes' ) ) + , + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'arrow' ) => 'yes' ] ) + ->setControls( [ + ( new Icons( $this->getSlug( 'arrow-icon' ) ) ) + ->setLabel( __( 'Toggle Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-angle-down', + 'library' => 'fa-solid', + ] ) + , + ] ) + , + ] ) + , + ( new Section() ) + ->setLabel( __( 'Top Level Options', 'kenta' ) ) + ->keepMarginBelow() + ->setControls( $this->getTopLevelControls() ) + , + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'depth' ) => '!1' ] ) + ->setControls( [ + ( new Section() ) + ->keepMarginBelow() + ->setLabel( __( 'Dropdown Options', 'kenta' ) ) + ->setControls( [ + ( new Tabs() ) + ->setActiveTab( 'general' ) + ->addTab( 'general', __( 'General', 'kenta' ), $this->getDropdownGeneralControls() ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getDropdownStyleControls() ) + , + ] ) + , + ] ) + ]; + } + + /** + * @param $preset + * + * @return array + */ + protected function getTopLevelPreset( $preset ) { + $presets = [ + 'border-bottom' => [ + $this->getSlug( 'top_level_border_bottom' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-transparent)' + ], + $this->getSlug( 'top_level_border_bottom_active' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-primary-color)' + ], + ], + 'border-top' => [ + $this->getSlug( 'top_level_border_top' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-transparent)' + ], + $this->getSlug( 'top_level_border_top_active' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-primary-color)' + ], + ], + 'border-both' => [ + $this->getSlug( 'top_level_border_top' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-transparent)' + ], + $this->getSlug( 'top_level_border_top_active' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-primary-color)' + ], + $this->getSlug( 'top_level_border_bottom' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-transparent)' + ], + $this->getSlug( 'top_level_border_bottom_active' ) => [ + 'width' => 2, + 'style' => 'solid', + 'color' => 'var(--kenta-primary-color)' + ], + ], + 'pill' => [ + $this->getSlug( 'top_level_text_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-base-color)', + 'active' => 'var(--kenta-base-color)', + ], + $this->getSlug( 'top_level_background_color' ) => [ + 'initial' => 'var(--kenta-transparent)', + 'hover' => 'var(--kenta-primary-color)', + 'active' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'top_level_padding' ) => [ + 'top' => '0.5em', + 'bottom' => '0.5em', + 'left' => '1.5em', + 'right' => '1.5em', + ], + ], + ]; + + return apply_filters( $this->getSlug( 'top_level_preset_args' ), $presets[ $preset ] ?? [], $this->getSlug(''), $preset ); + } + + /** + * @param $preset + * + * @return array + */ + protected function getDropdownPreset( $preset ) { + $shadow = [ + 'enable' => 'yes', + 'horizontal' => '0px', + 'vertical' => '0px', + 'blur' => '4px', + 'spread' => '0px', + 'color' => 'rgba(44, 62, 80, 0.2)', + ]; + + $presets = [ + 'ghost' => [ + $this->getSlug( 'dropdown_text_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + 'active' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'dropdown_background_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'active' => 'var(--kenta-base-color)', + ], + $this->getSlug( 'dropdown_border' ) => [ + 'width' => 1, + 'style' => 'none', + 'color' => 'var(--kenta-base-300)' + ], + $this->getSlug( 'dropdown_divider' ) => [ + 'width' => 1, + 'style' => 'solid', + 'color' => 'var(--kenta-base-300)' + ], + $this->getSlug( 'dropdown_shadow' ) => $shadow, + ], + 'ghost-dark' => [ + $this->getSlug( 'dropdown_text_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'hover' => 'var(--kenta-primary-color)', + 'active' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'dropdown_background_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'active' => 'var(--kenta-accent-color)', + ], + $this->getSlug( 'dropdown_border' ) => [ + 'width' => 1, + 'style' => 'none', + 'color' => 'var(--kenta-accent-active)' + ], + $this->getSlug( 'dropdown_divider' ) => [ + 'width' => 1, + 'style' => 'solid', + 'color' => 'var(--kenta-accent-active)' + ], + $this->getSlug( 'dropdown_shadow' ) => $shadow, + ], + 'solid' => [ + $this->getSlug( 'dropdown_text_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-base-color)', + 'active' => 'var(--kenta-base-color)', + ], + $this->getSlug( 'dropdown_background_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'active' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'dropdown_border' ) => [ + 'width' => 1, + 'style' => 'none', + 'color' => 'var(--kenta-base-300)' + ], + $this->getSlug( 'dropdown_divider' ) => [ + 'width' => 1, + 'style' => 'solid', + 'color' => 'var(--kenta-base-300)' + ], + $this->getSlug( 'dropdown_shadow' ) => $shadow, + ], + 'solid-dark' => [ + $this->getSlug( 'dropdown_text_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'hover' => 'var(--kenta-base-color)', + 'active' => 'var(--kenta-base-color)', + ], + $this->getSlug( 'dropdown_background_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'active' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'dropdown_border' ) => [ + 'width' => 1, + 'style' => 'none', + 'color' => 'var(--kenta-accent-active)' + ], + $this->getSlug( 'dropdown_divider' ) => [ + 'width' => 1, + 'style' => 'solid', + 'color' => 'var(--kenta-accent-active)' + ], + $this->getSlug( 'dropdown_shadow' ) => $shadow, + ], + ]; + + return apply_filters( $this->getSlug( 'dropdown_preset_args' ), $presets[ $preset ] ?? [], $this->getSlug(''), $preset ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + + // top level typography + $css[".{$this->slug} > li"] = Css::typography( CZ::get( $this->getSlug( 'top_level_typography' ) ) ); + // dropdown typography + $css[".{$this->slug} > li ul"] = Css::typography( CZ::get( $this->getSlug( 'dropdown_typography' ) ) ); + + $top_level_preset = $this->getTopLevelPreset( CZ::get( $this->getSlug( 'top_level_preset' ) ) ); + $dropdown_preset = $this->getDropdownPreset( CZ::get( $this->getSlug( 'dropdown_preset' ) ) ); + + $css[".{$this->slug}"] = array_merge( + [ + '--menu-items-height' => CZ::get( $this->getSlug( 'top_level_height' ), $top_level_preset ), + '--dropdown-width' => CZ::get( $this->getSlug( 'dropdown_width' ) ), + ], + Css::colors( CZ::get( $this->getSlug( 'top_level_text_color' ), $top_level_preset ), [ + 'initial' => '--menu-text-initial-color', + 'hover' => '--menu-text-hover-color', + 'active' => '--menu-text-active-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'top_level_background_color' ), $top_level_preset ), [ + 'initial' => '--menu-background-initial-color', + 'hover' => '--menu-background-hover-color', + 'active' => '--menu-background-active-color', + ] ), + Css::dimensions( CZ::get( $this->getSlug( 'top_level_margin' ), $top_level_preset ), '--menu-items-margin' ), + Css::dimensions( CZ::get( $this->getSlug( 'top_level_padding' ), $top_level_preset ), '--menu-items-padding' ), + Css::dimensions( CZ::get( $this->getSlug( 'top_level_radius' ), $top_level_preset ), '--menu-items-radius' ), + Css::border( CZ::get( $this->getSlug( 'top_level_border_top' ), $top_level_preset ), '--menu-items-border-top' ), + Css::border( CZ::get( $this->getSlug( 'top_level_border_top_active' ), $top_level_preset ), '--menu-items-border-top-active' ), + Css::border( CZ::get( $this->getSlug( 'top_level_border_bottom' ), $top_level_preset ), '--menu-items-border-bottom' ), + Css::border( CZ::get( $this->getSlug( 'top_level_border_bottom_active' ), $top_level_preset ), '--menu-items-border-bottom-active' ), + // dropdown css + Css::colors( CZ::get( $this->getSlug( 'dropdown_text_color' ), $dropdown_preset ), [ + 'initial' => '--dropdown-text-initial-color', + 'hover' => '--dropdown-text-hover-color', + 'active' => '--dropdown-text-active-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'dropdown_background_color' ), $dropdown_preset ), [ + 'initial' => '--dropdown-background-initial-color', + 'active' => '--dropdown-background-active-color', + ] ), + Css::dimensions( CZ::get( $this->getSlug( 'dropdown_item_padding' ), $dropdown_preset ), '--dropdown-item-padding' ), + Css::dimensions( CZ::get( $this->getSlug( 'dropdown_radius' ), $dropdown_preset ), '--dropdown-radius' ), + Css::shadow( CZ::get( $this->getSlug( 'dropdown_shadow' ), $dropdown_preset ), '--dropdown-box-shadow' ), + Css::border( CZ::get( $this->getSlug( 'dropdown_border' ), $dropdown_preset ), '--dropdown-border' ), + Css::border( CZ::get( $this->getSlug( 'dropdown_divider' ), $dropdown_preset ), '--dropdown-divider' ) + ); + + return $css; + } ); + } + + /** + * Seletive refresh args + * + * @return array + */ + protected function selectiveRefresh() { + return [ + ".{$this->getSlug( 'wrap' )}", + [ $this, 'build' ], + [ 'container_inclusive' => true ] + ]; + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + + $attrs['class'] = Utils::clsx( + 'kenta-menu-wrap h-full', + $this->getSlug( 'wrap' ), + $attrs['class'] ?? [] + ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( $this->slug, $attr, $value ); + } + + $depth = absint( CZ::get( $this->getSlug( 'depth' ) ) ); + $hasArrow = ( $depth !== 1 ) && CZ::checked( $this->getSlug( 'arrow' ) ); + + echo '
render_attribute_string( $this->slug ) . '>'; + wp_nav_menu( [ + 'theme_location' => $this->slug, + 'container' => false, + 'depth' => $depth, + 'items_wrap' => '
    %3$s
', + 'link_after' => '' . wp_kses_post( IconsManager::render( CZ::get( $this->getSlug( 'arrow-icon' ) ) ) ) . '', + 'menu_class' => Utils::clsx( 'sf-menu clearfix kenta-menu', $this->slug, [ + 'kenta-menu-has-arrow' => $hasArrow, + 'sf-dropdown-left' => CZ::get( $this->getSlug( 'dropdown_direction' ) ) === 'left', + ], $menu_attrs['class'] ?? [] ), + 'fallback_cb' => function ( $args ) { + // for customize menu style, the default one not work. + wp_page_menu( array_merge( $args, [ + 'container' => 'ul' + ] ) ); + }, + ] ); + echo '
'; + } + } +} diff --git a/wp-content/themes/kenta/inc/elements/class-search-element.php b/wp-content/themes/kenta/inc/elements/class-search-element.php new file mode 100644 index 0000000000..f2cbdf00c2 --- /dev/null +++ b/wp-content/themes/kenta/inc/elements/class-search-element.php @@ -0,0 +1,324 @@ +getSlug( 'style' ) ) ) + ->setLabel( __( 'Search Style', 'kenta' ) ) + ->setDefaultValue( 'modal' ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->buttonsGroupView() + ->setChoices( [ + 'popup' => __( 'Popup', 'kenta' ), + 'modal' => __( 'Modal', 'kenta' ), + 'inline' => __( 'Inline', 'kenta' ), + ] ) + , + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'style' ) => 'inline' ] ) + ->setControls( [ + ( new Slider( $this->getSlug( 'inline_width' ) ) ) + ->setLabel( __( 'Search Input Width', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( ".{$this->slug}", [ 'width' => 'value' ] ) + ->setUnits( [ + [ 'unit' => 'px', 'min' => 10, 'max' => 500 ], + [ 'unit' => '%', 'min' => 1, 'max' => 100 ], + ] ) + ->setDefaultValue( '260px' ) + , + ] ) + ->setReverseControls( [ + ( new Tabs() ) + ->setLabel( __( 'Search Icon', 'kenta' ) ) + ->showLabel() + ->setActiveTab( 'icon' ) + ->addTab( 'icon', __( 'Icon', 'kenta' ), array_merge( [ + ( new Icons( $this->getSlug( 'icon_button_icon' ) ) ) + ->setLabel( __( 'Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-magnifying-glass', + 'library' => 'fa-solid' + ] ) + , + ( new Separator() ), + ], $this->getIconControls( [ + 'selector' => ".{$this->slug} .kenta-search-button", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getIconStyleControls( [ + 'selector' => ".{$this->slug} .kenta-search-button", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) + , + ] ) + , + ( new Text( $this->getSlug( 'placeholder' ) ) ) + ->setLabel( __( 'Search Placeholder Text', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( __( 'Type & Hit Enter', 'kenta' ) ) + , + ( new Condition() ) + ->setCondition( [ $this->getSlug( 'style' ) => 'modal' ] ) + ->setControls( apply_filters( 'kenta_search_modal_controls', [ + ( new Radio( $this->getSlug( 'modal_style' ) ) ) + ->setLabel( __( 'Modal Style', 'kenta' ) ) + ->bindSelectiveRefresh( 'kenta-header-selective-css' ) + ->setDefaultValue( 'light' ) + ->buttonsGroupView() + ->setChoices( apply_filters( 'kenta_search_modal_style', [ + 'light' => __( 'Light', 'kenta' ), + 'dark' => __( 'Dark', 'kenta' ), + ] ) ) + , + ] ) ) + , + ]; + } + + /** + * @param $style + * + * @return array|mixed + */ + protected function getSearchModalPresets( $style ) { + $presets = [ + 'light' => [ + $this->getSlug( 'input_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'focus' => 'var(--kenta-accent-color)', + 'placeholder' => 'var(--kenta-accent-color)', + ], + $this->getSlug( 'input_border_color' ) => [ + 'initial' => 'var(--kenta-base-300)', + 'focus' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'modal_close_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'modal_background' ) => [ + 'type' => 'color', + 'color' => 'var(--kenta-base-color)', + ], + ], + 'dark' => [ + $this->getSlug( 'input_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'focus' => 'var(--kenta-base-color)', + 'placeholder' => 'var(--kenta-base-300)', + ], + $this->getSlug( 'input_border_color' ) => [ + 'initial' => 'var(--kenta-accent-active)', + 'focus' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'modal_close_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'modal_background' ) => [ + 'type' => 'color', + 'color' => 'var(--kenta-accent-color)', + ], + ], + ]; + + return $presets[ $style ] ?? []; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $search_style = CZ::get( $this->getSlug( 'style' ) ); + + if ( $search_style !== 'inline' ) { + $css[".{$this->slug}"] = [ 'width' => 'auto' ]; + $css[".{$this->slug} .kenta-search-button"] = $this->getIconButtonCss(); + } else { + $css[".{$this->slug}"] = [ 'width' => CZ::get( $this->getSlug( 'inline_width' ) ) ]; + } + + if ( $search_style === 'modal' ) { + $modal_preset = $this->getSearchModalPresets( CZ::get( $this->getSlug( 'modal_style' ) ) ); + + $css[".{$this->slug}_modal"] = array_merge( + Css::background( CZ::get( $this->getSlug( 'modal_background' ), $modal_preset ) ), + Css::colors( CZ::get( $this->getSlug( 'input_color' ), $modal_preset ), [ + 'initial' => '--kenta-search-input-initial-color', + 'focus' => '--kenta-search-input-focus-color', + 'placeholder' => '--kenta-search-input-placeholder-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'input_border_color' ), $modal_preset ), [ + 'initial' => '--kenta-search-input-border-initial-color', + 'focus' => '--kenta-search-input-border-focus-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'modal_close_color' ), $modal_preset ), [ + 'initial' => '--kenta-modal-action-initial', + 'hover' => '--kenta-modal-action-hover', + ] ) + ); + + $css[".{$this->slug}_modal .search-input"] = [ + 'text-align' => 'center', + ]; + } + + return $css; + } ); + + if ( CZ::get( $this->getSlug( 'style' ) ) === 'modal' && true !== has_action( 'kenta_action_before', [ + $this, + 'render_search_modal' + ] ) ) { + add_action( 'kenta_action_before', [ $this, 'render_search_modal' ] ); + } + } + + /** + * Render search form + */ + public function render_search_form( $args = [] ) { + $args = wp_parse_args( $args, [ + 'placeholder' => CZ::get( $this->getSlug( 'placeholder' ) ), + 'disable_submit' => true, + ] ); + + get_search_form( $args ); + } + + /** + * Render search modal + */ + public function render_search_modal() { + $css = [ + 'kenta-search-modal kenta-modal', + $this->slug . '_modal', + ]; + + ?> +
+
+
+ render_search_form(); ?> +
+
+ +
+ +
+
+ getIconButtonPreset( CZ::get( $this->getSlug( 'icon_button_preset' ) ) ); + $shape = CZ::get( $this->getSlug( 'icon_button_icon_shape' ), $preset ); + $fill = CZ::get( $this->getSlug( 'icon_button_shape_fill_type' ), $preset ); + $search_style = CZ::get( $this->getSlug( 'style' ) ); + + $attrs['class'] = ( $attrs['class'] ?? '' ) . ' kenta-search-wrap kenta-form relative ' . $this->slug; + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'search-wrap', $attr, $value ); + } + + /** + * Inline style + */ + if ( $search_style === 'inline' ) { + echo '
render_attribute_string( 'search-wrap' ) . '>'; + $this->render_search_form(); + echo '
'; + + return; + } + + /** + * Modal & popup + */ + + $button_classes = Utils::clsx( [ + 'kenta-search-button', + 'kenta-icon-button', + 'kenta-icon-button-' . $shape, + 'kenta-icon-button-' . $fill => $shape !== 'none', + ] ); + + $this->add_render_attribute( 'search-button', 'class', $button_classes ); + + if ( $search_style === 'modal' ) { + $this->add_render_attribute( 'search-button', 'data-toggle-target', '#kenta-search-modal' ); + $this->add_render_attribute( 'search-button', ' data-toggle-show-focus', '#kenta-search-modal :focusable' ); + } + + if ( $search_style === 'popup' ) { + $this->add_render_attribute( 'search-wrap', 'data-popup-target', "kenta-search-popup" ); + } + + ?> +
print_attribute_string( 'search-wrap' ); ?>> + + getSlug( 'style' ) ) === 'popup' ) { + ?> +
+ render_search_form() ?> +
+ +
+ getSlug( $id ); + } + + public function getControls() { + return $this->getSocialControls( wp_parse_args( $this->defaults, [ + 'render-callback' => $this->selectiveRefresh(), + 'selector' => ".$this->slug", + 'icons-color-type' => 'custom', + 'icons-box-spacing' => [ + 'top' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'right' => '0px', + 'linked' => true, + ], + ] ) ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".$this->slug"] = array_merge( + [ + '--kenta-social-icons-size' => CZ::get( $this->getSlug( 'icons_size' ) ), + '--kenta-social-icons-spacing' => CZ::get( $this->getSlug( 'icons_spacing' ) ) + ], + Css::dimensions( CZ::get( $this->getSlug( 'padding' ) ), 'padding' ), + Css::colors( CZ::get( $this->getSlug( 'icons_color' ) ), [ + 'initial' => '--kenta-social-icon-initial-color', + 'hover' => '--kenta-social-icon-hover-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'icons_bg_color' ) ), [ + 'initial' => '--kenta-social-bg-initial-color', + 'hover' => '--kenta-social-bg-hover-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'icons_border_color' ) ), [ + 'initial' => '--kenta-social-border-initial-color', + 'hover' => '--kenta-social-border-hover-color', + ] ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $color = CZ::get( $this->getSlug( 'icons_color_type' ) ); + $shape = CZ::get( $this->getSlug( 'icons_shape' ) ); + $fill = CZ::get( $this->getSlug( 'shape_fill_type' ) ); + + $attrs['class'] = Utils::clsx( [ + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'socials', $attr, $value ); + } + + $this->add_render_attribute( 'social-link', 'class', 'kenta-social-link' ); + + if ( CZ::checked( $this->getSlug( 'open_new_tab' ) ) ) { + $this->add_render_attribute( 'social-link', 'target', '_blank' ); + } + + if ( CZ::checked( $this->getSlug( 'no_follow' ) ) ) { + $this->add_render_attribute( 'social-link', 'rel', 'nofollow' ); + } + + $socials = CZ::repeater( 'kenta_social_networks' ); + + ?> + + getSlug( 'light_icon' ) ) ) + ->setLabel( __( 'Light Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-sun', + 'library' => 'fa-solid', + ] ) + , + ( new Icons( $this->getSlug( 'dark_icon' ) ) ) + ->setLabel( __( 'Dark Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-moon', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ], + $this->getIconControls( [ + 'render-callback' => $this->selectiveRefresh(), + 'selector' => ".{$this->slug}" + ] ), + $this->getIconStyleControls( [ + 'selector' => ".{$this->slug}" + ] ) + ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".{$this->slug}"] = $this->getIconButtonCss(); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $preset = $this->getIconButtonPreset( CZ::get( $this->getSlug( 'icon_button_preset' ) ) ); + $shape = CZ::get( $this->getSlug( 'icon_button_icon_shape' ), $preset ); + $fill = CZ::get( $this->getSlug( 'icon_button_shape_fill_type' ), $preset ); + + $attrs['class'] = Utils::clsx( [ + 'kenta-theme-switch', + 'kenta-icon-button', + 'kenta-icon-button-' . $shape, + 'kenta-icon-button-' . $fill => $shape !== 'none', + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'theme-switch', $attr, $value ); + } + ?> + + setActiveTab( 'icon' ) + ->addTab( 'icon', __( 'Icon', 'kenta' ), array_merge( [ + ( new Icons( $this->getSlug( 'icon_button_icon' ) ) ) + ->setLabel( __( 'Icon', 'kenta' ) ) + ->selectiveRefresh( ...$this->selectiveRefresh() ) + ->setDefaultValue( [ + 'value' => 'fas fa-bars-staggered', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ], $this->getIconControls( [ + 'selector' => ".{$this->slug}", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getIconStyleControls( [ + 'selector' => ".{$this->slug}", + 'render-callback' => $this->selectiveRefresh(), + 'css-selective-refresh' => 'kenta-header-selective-css', + ] ) ) + ]; + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts() { + // Add button dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) { + $css[".{$this->slug}"] = $this->getIconButtonCss(); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $preset = $this->getIconButtonPreset( CZ::get( $this->getSlug( 'icon_button_preset' ) ) ); + $shape = CZ::get( $this->getSlug( 'icon_button_icon_shape' ), $preset ); + $fill = CZ::get( $this->getSlug( 'icon_button_shape_fill_type' ), $preset ); + + $attrs['class'] = Utils::clsx( [ + 'kenta-trigger', + 'kenta-icon-button', + 'kenta-icon-button-' . $shape, + 'kenta-icon-button-' . $fill => $shape !== 'none', + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( 'trigger', $attr, $value ); + } + + $this->add_render_attribute( 'trigger', 'data-toggle-target', '#kenta-off-canvas-modal' ); + $this->add_render_attribute( 'trigger', ' data-toggle-show-focus', '#kenta-off-canvas-modal :focusable' ); + + ?> + + getWidgetsControls( [ + 'css-selective-refresh' => 'kenta-footer-selective-css', + 'async-selector' => '.' . $this->slug, + 'widgets-style' => 'ghost', + 'scroll-reveal' => 'no', + 'widgets-padding' => [ + 'top' => '0px', + 'right' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'linked' => true + ], + ] ); + } + + /** + * @param null $id + * @param array $data + */ + public function after_register( $id = null, $data = [] ) { + $id = $id ?? $this->slug; + + $options = $this->getOptions(); + $settings = $data['settings'] ?? []; + + add_action( 'widgets_init', function () use ( $id, $options, $settings ) { + + $widgets_class = 'kenta-widget clearfix %2$s'; + + if ( $options->checked( $this->getSlug( 'scroll-reveal' ) ) ) { + $widgets_class = 'kenta-scroll-reveal ' . $widgets_class; + } + + $title_class = 'widget-title mb-half-gutter heading-content'; + $tag = $options->get( $this->getSlug( 'title-tag' ), $settings ); + + register_sidebar( [ + 'name' => $this->getLabel(), + 'id' => $id, + 'before_widget' => '', + 'before_title' => '<' . $tag . ' class="' . $title_class . '">', + 'after_title' => '', + ] ); + } ); + } + + protected function getOptions() { + return CZ::getFacadeRoot(); + } + + protected function getSidebarId( $attrs = [] ) { + return $this->slug; + } + + protected function getAttrId( $attrs = [] ) { + return $this->slug; + } + + protected function beforeRender( $attrs = [] ) { + $attrs['class'] = Utils::clsx( [ + 'no-underline' => ! CZ::checked( $this->getSlug( 'link-underline' ) ), + 'kenta-heading', + 'kenta-heading-' . CZ::get( $this->getSlug( 'title-style' ) ), + $this->slug + ], $attrs['class'] ?? [] ); + + foreach ( $attrs as $attr => $value ) { + $this->add_render_attribute( $this->slug, $attr, $value ); + } + } + } +} diff --git a/wp-content/themes/kenta/inc/extensions.php b/wp-content/themes/kenta/inc/extensions.php new file mode 100644 index 0000000000..4eb5b362d6 --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions.php @@ -0,0 +1,14 @@ +particles_presets = apply_filters( 'kenta_particles_effect_presets', [ + 'default' => '{"particles":{"number":{"value":120,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.5,"random":false,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":3,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":true,"distance":150,"color":"#ffffff","opacity":0.4,"width":1},"move":{"enable":true,"speed":2,"direction":"none","random":true,"straight":false,"out_mode":"bounce","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":true,"mode":"repulse"},"onclick":{"enable":true,"mode":"push"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'gather' => '{"particles":{"number":{"value":120,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.5,"random":false,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":3,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":true,"distance":150,"color":"#ffffff","opacity":0.4,"width":1},"move":{"enable":true,"speed":2,"direction":"none","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":true,"mode":"grab"},"onclick":{"enable":true,"mode":"push"},"resize":true},"modes":{"grab":{"distance":150,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'parallax' => '{"autoPlay":true,"background":{},"backgroundMask":{"composite":"destination-out","cover":{"color":{"value":"#fff"},"opacity":1},"enable":false},"defaultThemes":{},"delay":0,"fullScreen":{"enable":false,"zIndex":1},"detectRetina":true,"duration":0,"fpsLimit":120,"interactivity":{"detectsOn":"window","events":{"onClick":{"enable":true,"mode":"push"},"onDiv":{"selectors":[],"enable":false,"mode":[],"type":"circle"},"onHover":{"enable":true,"mode":"grab","parallax":{"enable":true,"force":60,"smooth":10}},"resize":{"delay":0.5,"enable":true}},"modes":{"trail":{"delay":1,"pauseOnStop":false,"quantity":1},"attract":{"distance":200,"duration":0.4,"easing":"ease-out-quad","factor":1,"maxSpeed":50,"speed":1},"bounce":{"distance":200},"bubble":{"distance":400,"duration":2,"mix":false,"opacity":0.8,"size":40,"divs":{"distance":200,"duration":0.4,"mix":false,"selectors":[]}},"connect":{"distance":80,"links":{"opacity":0.5},"radius":60},"grab":{"distance":400,"links":{"blink":false,"consent":false,"opacity":1}},"push":{"default":true,"groups":[],"quantity":4},"remove":{"quantity":2},"repulse":{"distance":200,"duration":0.4,"factor":100,"speed":1,"maxSpeed":50,"easing":"ease-out-quad","divs":{"distance":200,"duration":0.4,"factor":100,"speed":1,"maxSpeed":50,"easing":"ease-out-quad","selectors":[]}},"slow":{"factor":3,"radius":200},"light":{"area":{"gradient":{"start":{"value":"#ffffff"},"stop":{"value":"#000000"}},"radius":1000},"shadow":{"color":{"value":"#000000"},"length":2000}}}},"manualParticles":[],"particles":{"bounce":{"horizontal":{"random":{"enable":false,"minimumValue":0.1},"value":1},"vertical":{"random":{"enable":false,"minimumValue":0.1},"value":1}},"collisions":{"absorb":{"speed":2},"bounce":{"horizontal":{"random":{"enable":false,"minimumValue":0.1},"value":1},"vertical":{"random":{"enable":false,"minimumValue":0.1},"value":1}},"enable":false,"maxSpeed":50,"mode":"bounce","overlap":{"enable":true,"retries":0}},"color":{"value":"#ffffff","animation":{"h":{"count":0,"enable":false,"offset":0,"speed":1,"delay":0,"decay":0,"sync":true},"s":{"count":0,"enable":false,"offset":0,"speed":1,"delay":0,"decay":0,"sync":true},"l":{"count":0,"enable":false,"offset":0,"speed":1,"delay":0,"decay":0,"sync":true}}},"groups":{},"move":{"angle":{"offset":0,"value":90},"attract":{"distance":200,"enable":false,"rotate":{"x":600,"y":1200}},"center":{"x":50,"y":50,"mode":"percent","radius":0},"decay":0,"distance":{},"direction":"none","drift":0,"enable":true,"gravity":{"acceleration":9.81,"enable":false,"inverse":false,"maxSpeed":50},"path":{"clamp":true,"delay":{"random":{"enable":false,"minimumValue":0},"value":0},"enable":false,"options":{}},"outModes":{"default":"out","bottom":"out","left":"out","right":"out","top":"out"},"random":false,"size":false,"speed":2,"spin":{"acceleration":0,"enable":false},"straight":false,"trail":{"enable":false,"length":10,"fill":{}},"vibrate":false,"warp":false},"number":{"density":{"enable":true,"width":1920,"height":1080},"limit":0,"value":160},"opacity":{"random":{"enable":true,"minimumValue":0.1},"value":{"min":0.1,"max":0.5},"animation":{"count":0,"enable":true,"speed":3,"decay":0,"delay":0,"sync":false,"mode":"auto","startValue":"random","destroy":"none","minimumValue":0.1}},"reduceDuplicates":false,"shadow":{"blur":0,"color":{"value":"#000"},"enable":false,"offset":{"x":0,"y":0}},"shape":{"close":true,"fill":true,"options":{},"type":"circle"},"size":{"random":{"enable":true,"minimumValue":1},"value":{"min":0.1,"max":4},"animation":{"count":0,"enable":true,"speed":20,"decay":0,"delay":0,"sync":false,"mode":"auto","startValue":"random","destroy":"none","minimumValue":0.1}},"stroke":{"width":0},"zIndex":{"random":{"enable":false,"minimumValue":0},"value":0,"opacityRate":1,"sizeRate":1,"velocityRate":1},"destroy":{"bounds":{},"mode":"none","split":{"count":1,"factor":{"random":{"enable":false,"minimumValue":0},"value":3},"rate":{"random":{"enable":false,"minimumValue":0},"value":{"min":4,"max":9}},"sizeOffset":true,"particles":{}}},"roll":{"darken":{"enable":false,"value":0},"enable":false,"enlighten":{"enable":false,"value":0},"mode":"vertical","speed":25},"tilt":{"random":{"enable":false,"minimumValue":0},"value":0,"animation":{"enable":false,"speed":0,"decay":0,"sync":false},"direction":"clockwise","enable":false},"twinkle":{"lines":{"enable":false,"frequency":0.05,"opacity":1},"particles":{"enable":false,"frequency":0.05,"opacity":1}},"wobble":{"distance":5,"enable":false,"speed":{"angle":50,"move":10}},"life":{"count":0,"delay":{"random":{"enable":false,"minimumValue":0},"value":0,"sync":false},"duration":{"random":{"enable":false,"minimumValue":0.0001},"value":0,"sync":false}},"rotate":{"random":{"enable":false,"minimumValue":0},"value":0,"animation":{"enable":false,"speed":0,"decay":0,"sync":false},"direction":"clockwise","path":false},"orbit":{"animation":{"count":0,"enable":false,"speed":1,"decay":0,"delay":0,"sync":false},"enable":false,"opacity":1,"rotation":{"random":{"enable":false,"minimumValue":0},"value":45},"width":1},"links":{"blink":false,"color":{"value":"#ffffff"},"consent":false,"distance":150,"enable":true,"frequency":1,"opacity":0.4,"shadow":{"blur":5,"color":{"value":"#000"},"enable":false},"triangles":{"enable":false,"frequency":1},"width":1,"warp":false},"repulse":{"random":{"enable":false,"minimumValue":0},"value":0,"enabled":false,"distance":1,"duration":1,"factor":1,"speed":1}},"pauseOnBlur":true,"pauseOnOutsideViewport":true,"responsive":[],"smooth":false,"style":{},"themes":[],"zLayers":100,"motion":{"disable":false,"reduce":{"factor":4,"value":true}}}', + 'nasa' => '{"particles":{"number":{"value":160,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":1,"random":true,"anim":{"enable":true,"speed":1,"opacity_min":0,"sync":false}},"size":{"value":3,"random":true,"anim":{"enable":false,"speed":4,"size_min":0.3,"sync":false}},"line_linked":{"enable":false,"distance":150,"color":"#ffffff","opacity":0.4,"width":1},"move":{"enable":true,"speed":1,"direction":"none","random":true,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":600}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":true,"mode":"bubble"},"onclick":{"enable":true,"mode":"repulse"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":250,"size":0,"duration":2,"opacity":0,"speed":3},"repulse":{"distance":400,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'polygon-bubble' => '{"particles":{"number":{"value":6,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"polygon","stroke":{"width":0,"color":"#000"},"polygon":{"nb_sides":6},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.3,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":160,"random":false,"anim":{"enable":true,"speed":10,"size_min":40,"sync":false}},"line_linked":{"enable":false,"distance":200,"color":"#ffffff","opacity":1,"width":2},"move":{"enable":true,"speed":8,"direction":"none","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"grab"},"onclick":{"enable":false,"mode":"push"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'circle-bubble' => '{"particles":{"number":{"value":6,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000"},"polygon":{"nb_sides":6},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.3,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":160,"random":false,"anim":{"enable":true,"speed":10,"size_min":40,"sync":false}},"line_linked":{"enable":false,"distance":200,"color":"#ffffff","opacity":1,"width":2},"move":{"enable":true,"speed":8,"direction":"none","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"grab"},"onclick":{"enable":false,"mode":"push"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'snow' => '{"particles":{"number":{"value":400,"density":{"enable":true,"value_area":800}},"color":{"value":"#fff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.5,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":3,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":false,"distance":500,"color":"#ffffff","opacity":0.4,"width":2},"move":{"enable":true,"speed":4,"direction":"bottom","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"repulse"},"onclick":{"enable":false,"mode":"repulse"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":0.5}},"bubble":{"distance":400,"size":4,"duration":0.3,"opacity":1,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'fire-spark' => '{"particles":{"number":{"value":400,"density":{"enable":true,"value_area":3000}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":3},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.5,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":4,"random":true,"anim":{"enable":true,"speed":5,"size_min":0,"sync":false}},"line_linked":{"enable":false,"distance":500,"color":"#ffffff","opacity":0.4,"width":2},"move":{"enable":true,"speed":7.8914764163227265,"direction":"top","random":true,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"bubble"},"onclick":{"enable":false,"mode":"repulse"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":0.5}},"bubble":{"distance":400,"size":4,"duration":0.3,"opacity":1,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + 'nyancat' => '{"particles":{"number":{"value":100,"density":{"enable":false,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"star","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"http://wiki.lexisnexis.com/academic/images/f/fb/Itunes_podcast_icon_300.jpg","width":100,"height":100}},"opacity":{"value":0.5,"random":false,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":4,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":false,"distance":150,"color":"#ffffff","opacity":0.4,"width":1},"move":{"enable":true,"speed":14,"direction":"left","random":false,"straight":true,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"grab"},"onclick":{"enable":true,"mode":"repulse"},"resize":true},"modes":{"grab":{"distance":200,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true}', + ] ); + } + + public function header_row_particles_css( $css, $id ) { + return array_merge( $css, $this->getParticlesCss( 'kenta_header_' . $id . '_row_' ) ); + } + + public function site_background_particles_css( $css ) { + return array_merge( $css, $this->getParticlesCss( + 'kenta_site_background', + '.kenta_site_background_particles_canvas,.kenta_site_body_particles' + ) ); + } + + public function featured_image_particles_css( $css ) { + if ( is_single() || is_page() ) { + $article_type = is_page() ? 'page' : 'post'; + $prefix = 'kenta_' . $article_type; + + if ( CZ::checked( "{$prefix}_featured_image_enable_particles" ) + && CZ::get( "{$prefix}_featured_image_position" ) === 'behind' ) { + return array_merge( $css, $this->getParticlesCss( + "{$prefix}_featured_image" + ) ); + } + } + + return $css; + } + + public function render_header_row_particles_canvas( $id ) { + $this->renderParticlesCanvas( 'kenta_header_' . $id . '_row_' ); + } + + public function render_background_particles_canvas() { + if ( ! CZ::checked( 'kenta_enable_site_wrap' ) ) { + $this->renderParticlesCanvas( 'kenta_site_background' ); + + return; + } + + $scope = CZ::get( 'kenta_site_background_particles_scope' ); + if ( isset( $scope['site-content'] ) && $scope['site-content'] === 'yes' ) { + $this->renderParticlesCanvas( 'kenta_site_background' ); + } + } + + public function render_body_particles_canvas() { + if ( ! CZ::checked( 'kenta_enable_site_wrap' ) ) { + return; + } + + $scope = CZ::get( 'kenta_site_background_particles_scope' ); + if ( isset( $scope['site-body'] ) && $scope['site-body'] === 'yes' ) { + $this->renderParticlesCanvas( 'kenta_site_background', 'kenta_site_body_particles' ); + } + } + + public function render_featured_image_particles_canvas( $prefix ) { + if ( CZ::get( "{$prefix}_featured_image_position" ) !== 'behind' ) { + return; + } + + $this->renderParticlesCanvas( "{$prefix}_featured_image" ); + } + + /** + * @param $controls + * @param $key + * @param $id + * + * @return array + */ + public function header_row_particle_effect_controls( $controls, $key, $id ) { + return array_merge( + $controls, + [ ( new Separator() ) ], + $this->getParticleEffectControls( $key ), + [ ( new Separator() ) ] + ); + } + + /** + * @param $controls + * @param $key + * @param $id + * + * @return array + */ + public function background_particle_effect_controls( $controls ) { + return array_merge( $controls, [ + ( new Section( 'kenta_site_background_enable_particles' ) ) + ->setLabel( __( 'Background Particles Effect', 'kenta' ) ) + ->enableSwitch( false ) + ->setControls( array_merge( + [ + ( new \LottaFramework\Customizer\Controls\Condition() ) + ->setCondition( [ + 'kenta_enable_site_wrap' => 'yes', + 'kenta_site_background_enable_particles' => 'yes', + ] ) + ->setControls( [ + ( new MultiSelect( 'kenta_site_background_particles_scope' ) ) + ->setLabel( __( 'Scope', 'kenta' ) ) + ->buttonsGroupView() + ->setChoices( [ + 'site-body' => __( 'Site Body', 'kenta' ), + 'site-content' => __( 'Site Content', 'kenta' ), + ] ) + ->setDefaultValue( [ + 'site-body' => 'yes', + 'site-content' => 'no', + ] ) + , + ] ) + , + ], + $this->getParticleEffectControls( 'kenta_site_background', [ 'enable' ] ) + ) ) + , + ] ); + } + + /** + * @param $controls + * + * @return array + */ + public function post_featured_image_particle_effect_controls( $controls ) { + return array_merge( + $controls, + [ ( new Separator() ) ], + $this->getParticleEffectControls( "kenta_post_featured_image" ), + [ ( new Separator() ) ] + ); + } + + /** + * @param $controls + * + * @return array + */ + public function page_featured_image_particle_effect_controls( $controls ) { + return array_merge( + $controls, + [ ( new Separator() ) ], + $this->getParticleEffectControls( "kenta_page_featured_image" ), + [ ( new Separator() ) ] + ); + } + } +} + +new Kenta_Particles_Extension(); diff --git a/wp-content/themes/kenta/inc/extensions/class-preloader-extension.php b/wp-content/themes/kenta/inc/extensions/class-preloader-extension.php new file mode 100644 index 0000000000..57f54b4246 --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions/class-preloader-extension.php @@ -0,0 +1,83 @@ +setLabel( __( 'Preloader', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getPreloaderControls() ); + + return $controls; + } + + /** + * Preloader + * + * @return array + */ + protected function getPreloaderControls() { + return [ + ( new Select( 'kenta_preloader_preset' ) ) + ->setLabel( __( 'Preloader Preset', 'kenta' ) ) + ->setDefaultValue( 'preset-1' ) + ->bindSelectiveRefresh( 'kenta-preloader-selective-css' ) + ->selectiveRefresh( '.kenta-preloader-wrap', function () { + echo wp_kses_post( kenta_get_preloader( CZ::get( 'kenta_preloader_preset' ) )['html'] ); + } ) + ->setChoices( [ + 'preset-1' => __( 'Preset 1', 'kenta' ), + 'preset-2' => __( 'Preset 2', 'kenta' ), + 'preset-3' => __( 'Preset 3', 'kenta' ), + 'preset-4' => __( 'Preset 4', 'kenta' ), + 'preset-5' => __( 'Preset 5', 'kenta' ), + 'preset-6' => __( 'Preset 6', 'kenta' ), + 'preset-7' => __( 'Preset 7', 'kenta' ), + 'preset-8' => __( 'Preset 8', 'kenta' ), + 'preset-9' => __( 'Preset 9', 'kenta' ), + 'preset-10' => __( 'Preset 10', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new ColorPicker( 'kenta_preloader_colors' ) ) + ->setLabel( __( 'Colors', 'kenta' ) ) + ->asyncColors( '.kenta-preloader-wrap', [ + 'background' => '--kenta-preloader-background', + 'accent' => '--kenta-preloader-accent', + 'primary' => '--kenta-preloader-primary', + ] ) + ->addColor( 'background', __( 'Background', 'kenta' ), 'var(--kenta-accent-color)' ) + ->addColor( 'accent', __( 'Accent', 'kenta' ), 'var(--kenta-base-color)' ) + ->addColor( 'primary', __( 'Primary', 'kenta' ), 'var(--kenta-primary-color)' ) + , + ]; + } + } + +} + +new Kenta_Preloader_Extension(); diff --git a/wp-content/themes/kenta/inc/extensions/class-related-posts-extension.php b/wp-content/themes/kenta/inc/extensions/class-related-posts-extension.php new file mode 100644 index 0000000000..c862708248 --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions/class-related-posts-extension.php @@ -0,0 +1,256 @@ + true + ] + ]; + + $content_controls = apply_filters( 'kenta_filter_related_posts_content_controls', [ + ( new Select( 'kenta_related_posts_criteria' ) ) + ->setLabel( __( 'Related Criteria', 'kenta' ) ) + ->selectiveRefresh( ...$selective ) + ->setDefaultValue( 'category' ) + ->setChoices( [ + 'category' => __( 'Category', 'kenta' ), + 'tag' => __( 'Tag', 'kenta' ), + 'author' => __( 'Author', 'kenta' ), + ] ) + , + ( new Select( 'kenta_related_posts_sort' ) ) + ->setLabel( __( 'Sort By', 'kenta' ) ) + ->selectiveRefresh( ...$selective ) + ->setDefaultValue( 'recent' ) + ->setChoices( [ + 'default' => __( 'Default', 'kenta' ), + 'recent' => __( 'Recent', 'kenta' ), + 'random' => __( 'Random', 'kenta' ), + 'comment' => __( 'Comment Count', 'kenta' ), + ] ) + , + ( new Number( 'kenta_related_posts_number' ) ) + ->setLabel( __( 'Posts Count', 'kenta' ) ) + ->selectiveRefresh( ...$selective ) + ->setMin( 1 ) + ->setMax( 20 ) + ->setDefaultUnit( false ) + ->setDefaultValue( 3 ) + , + ( new Separator() ), + ( new Text( 'kenta_related_posts_section_title' ) ) + ->setLabel( __( 'Section Title', 'kenta' ) ) + ->asyncText( '.kenta-related-posts-wrap .heading-content' ) + ->setDefaultValue( __( 'Related Posts', 'kenta' ) ) + , + ] ); + + $layout_controls = apply_filters( 'kenta_filter_related_posts_layout_controls', array_merge( + [ + $this->getPostElementsLayer( 'kenta_related_posts_card_structure', 'related_posts', [ + 'selective-refresh' => $selective, + 'selector' => '.kenta-related-posts-wrap .card', + 'value' => [ + [ 'id' => 'thumbnail', 'visible' => true ], + [ 'id' => 'categories', 'visible' => false ], + [ 'id' => 'title', 'visible' => true ], + [ 'id' => 'excerpt', 'visible' => true ], + [ 'id' => 'metas', 'visible' => true ], + [ 'id' => 'divider', 'visible' => false ], + [ 'id' => 'read-more', 'visible' => false ], + ], + 'thumbnail' => [ 'full-width' => 'no', 'height' => '128px' ], + 'title' => [ + 'tag' => 'h4', + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => [ 'desktop' => '1rem', 'tablet' => '1rem', 'mobile' => '1rem' ], + 'variant' => '700', + 'lineHeight' => '1.5' + ], + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + 'cats' => [], + 'tags' => [], + 'metas' => [], + 'divider' => [], + 'excerpt' => [ 'length' => 10 ], + ] ), + ( new Separator() ), + ( new Slider( 'kenta_related_posts_grid_columns' ) ) + ->setLabel( __( 'Grid Columns', 'kenta' ) ) + ->enableResponsive() + ->setMin( 1 ) + ->setMax( 4 ) + ->setDefaultUnit( false ) + ->setDefaultValue( [ + 'desktop' => 3, + 'tablet' => 2, + 'mobile' => 1, + ] ) + , + ( new Slider( 'kenta_related_posts_grid_items_gap' ) ) + ->setLabel( __( 'Items Gap', 'kenta' ) ) + ->enableResponsive() + ->setMin( 0 ) + ->setMax( 50 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '24px' ) + , + ( new Separator() ) + ], + $this->getCardContentControls( 'kenta_related_posts_', [ + 'selector' => '.kenta-related-posts-wrap .card', + 'content-spacing' => '0px', + 'scroll-reveal' => 'no', + 'thumbnail-spacing' => '12px', + ] ) + ) ); + + $style_controls = apply_filters( 'kenta_filter_related_posts_style_controls', + $this->getCardStyleControls( 'kenta_related_posts_', [ + 'preset' => 'ghost', + 'selective' => 'kenta-global-selective-css', + ] ) + ); + + $controls[] = ( new Section( 'kenta_post_related_posts' ) ) + ->setLabel( __( 'Related Posts', 'kenta' ) ) + ->enableSwitch() + ->setControls( [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $content_controls ) + ->addTab( 'layout', __( 'Layout', 'kenta' ), $layout_controls ) + ->addTab( 'style', __( 'Style', 'kenta' ), $style_controls ) + , + ] ); + + return $controls; + } + + /** + * Render related posts + */ + public function render() { + $current = get_post(); + + if ( ! CZ::checked( 'kenta_post_related_posts' ) || ! $current ) { + return; + } + + $args = [ + 'post_type' => $current->post_type, + 'ignore_sticky_posts' => 0, + 'post__not_in' => array( get_the_ID() ), + 'posts_per_page' => absint( CZ::get( 'kenta_related_posts_number' ) ), + ]; + + $sort = CZ::get( 'kenta_related_posts_sort' ); + $criteria = CZ::get( 'kenta_related_posts_criteria' ); + + if ( $criteria === 'category' ) { + $args['category__in'] = wp_get_post_categories( get_the_ID(), [ 'fields' => 'ids' ] ); + } elseif ( $criteria === 'tag' ) { + $args['tag__in'] = wp_get_post_tags( get_the_ID(), [ 'fields' => 'ids' ] ); + } else if ( $criteria === 'author' ) { + $args['author'] = isset( $current->post_author ) ? $current->post_author : 0; + } + + if ( $sort !== 'default' ) { + $orderby_map = [ + 'random' => 'rand', + 'recent' => 'post_date', + 'comment' => 'comment_count' + ]; + + if ( isset( $orderby_map[ $sort ] ) ) { + $args['orderby'] = $orderby_map[ $sort ]; + } + } + + $related_query = new \WP_Query( $args ); + + if ( ! $related_query->have_posts() ) { + return; + } + + $attrs = [ + 'class' => 'kenta-max-w-content has-global-padding mx-auto', + ]; + + if ( is_customize_preview() ) { + $attrs['class'] = $attrs['class'] . ' kenta-related-posts-container'; + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_single_post:kenta_post_related_posts'; + } + ?> +
> + +
+ setLabel( __( 'Scroll Reveal', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getScrollRevealControls() ); + + return $controls; + } + + protected function getScrollRevealControls() { + $controls = [ + ( new Toggle( 'kenta_customize_preview_scroll_reveal' ) ) + ->setLabel( __( 'Enable On Customize Preview', 'kenta' ) ) + ->openByDefault() + , + ( new Separator() ), + ( new Number( 'kenta_scroll_reveal_delay' ) ) + ->setLabel( __( 'Delay', 'kenta' ) ) + ->setMin( 0 ) + ->setMax( 500 ) + ->setDefaultValue( 200 ) + , + ( new Number( 'kenta_scroll_reveal_duration' ) ) + ->setLabel( __( 'Duration', 'kenta' ) ) + ->setMin( 100 ) + ->setMax( 1000 ) + ->setDefaultValue( 600 ) + , + ]; + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $controls = array_merge( $controls, [ + ( new Placeholder( 'kenta_scroll_reveal_interval' ) ) + ->setDefaultValue( 200 ) + , + ( new Placeholder( 'kenta_scroll_reveal_opacity' ) ) + ->setDefaultValue( 0 ) + , + ( new Placeholder( 'kenta_scroll_reveal_scale' ) ) + ->setDefaultValue( 1 ) + , + ( new Placeholder( 'kenta_scroll_reveal_origin' ) ) + ->setDefaultValue( 'bottom' ) + , + ( new Placeholder( 'kenta_scroll_reveal_distance' ) ) + ->setDefaultValue( '200px' ) + , + kenta_upsell_info_control( __( 'More scroll reveal options in %sPro Version%s', 'kenta' ) ) + ->showBackground() + ] ); + } + + return apply_filters( 'kenta_scroll_reveal_controls', $controls ); + } + } +} +new Kenta_Scroll_Reveal_Extension(); diff --git a/wp-content/themes/kenta/inc/extensions/class-scroll-top-extension.php b/wp-content/themes/kenta/inc/extensions/class-scroll-top-extension.php new file mode 100644 index 0000000000..e3231393e2 --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions/class-scroll-top-extension.php @@ -0,0 +1,237 @@ +setLabel( __( 'Scroll Top', 'kenta' ) ) + ->enableSwitch() + ->setControls( $this->getScrollToTopControls() ); + + return $controls; + } + + /** + * Show scroll to top button + * + * @return void + */ + public function render() { + if ( ! CZ::checked( 'kenta_global_scroll_top' ) ) { + return; + } + + $css = [ 'kenta-to-top', 'kenta-to-top-' . CZ::get( 'kenta_to_top_position' ) ]; + $attrs = [ + 'href' => '#', + 'id' => 'scroll-top', + 'class' => Utils::clsx( $css ), + ]; + echo ''; + if ( is_customize_preview() ) { + echo '
'; + echo '
'; + } + IconsManager::print( CZ::get( 'kenta_to_top_icon' ) ); + echo '
'; + } + + /** + * Add dynamic css for scroll to top button + * + * @param $css + * + * @return mixed + */ + public function css( $css ) { + if ( ! CZ::checked( 'kenta_global_scroll_top' ) ) { + return $css; + } + + $css['.kenta-to-top'] = array_merge( + Css::shadow( CZ::get( 'kenta_to_top_shadow' ) ), + Css::dimensions( CZ::get( 'kenta_to_top_radius' ), 'border-radius' ), + Css::dimensions( CZ::get( 'kenta_to_top_padding' ), 'padding' ), + Css::colors( CZ::get( 'kenta_to_top_icon_color' ), [ + 'initial' => '--kenta-to-top-icon-initial', + 'hover' => '--kenta-to-top-icon-hover', + ] ), + Css::colors( CZ::get( 'kenta_to_top_background' ), [ + 'initial' => '--kenta-to-top-background-initial', + 'hover' => '--kenta-to-top-background-hover', + ] ), + Css::border( CZ::get( 'kenta_to_top_border' ) ), + [ + '--kenta-to-top-icon-size' => CZ::get( 'kenta_to_top_icon_size' ), + '--kenta-to-top-bottom-offset' => CZ::get( 'kenta_to_top_bottom_offset' ), + '--kenta-to-top-side-offset' => CZ::get( 'kenta_to_top_side_offset' ), + ] + ); + + $css['.kenta-to-top:hover'] = Css::shadow( CZ::get( 'kenta_to_top_shadow_active' ) ); + + return $css; + } + + protected function getScrollToTopControls() { + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), [ + ( new Icons( 'kenta_to_top_icon' ) ) + ->setLabel( __( 'Icon', 'kenta' ) ) + ->selectiveRefresh( '.kenta-to-top', [ + $this, + 'render' + ], [ 'container_inclusive' => true ] ) + ->setDefaultValue( [ + 'value' => 'fas fa-angle-up', + 'library' => 'fa-solid', + ] ) + , + ( new Separator() ), + ( new Slider( 'kenta_to_top_icon_size' ) ) + ->setLabel( __( 'Icon Size', 'kenta' ) ) + ->asyncCss( '.kenta-to-top', [ '--kenta-to-top-icon-size' => 'value' ] ) + ->enableResponsive() + ->setMin( 10 ) + ->setMax( 50 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '14px' ) + , + ( new Separator() ), + ( new Slider( 'kenta_to_top_bottom_offset' ) ) + ->setLabel( __( 'Bottom Offset', 'kenta' ) ) + ->asyncCss( '.kenta-to-top', [ '--kenta-to-top-bottom-offset' => 'value' ] ) + ->enableResponsive() + ->setMin( 5 ) + ->setMax( 300 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '48px' ) + , + ( new Slider( 'kenta_to_top_side_offset' ) ) + ->setLabel( __( 'Side Offset', 'kenta' ) ) + ->asyncCss( '.kenta-to-top', [ '--kenta-to-top-side-offset' => 'value' ] ) + ->enableResponsive() + ->setMin( 5 ) + ->setMax( 300 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( '48px' ) + , + ( new Separator() ), + ( new Radio( 'kenta_to_top_position' ) ) + ->setLabel( __( 'Position', 'kenta' ) ) + ->selectiveRefresh( '.kenta-to-top', [ + $this, + 'render' + ], [ 'container_inclusive' => true ] ) + ->setDefaultValue( 'right' ) + ->buttonsGroupView() + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'right' => __( 'Right', 'kenta' ), + ] ) + , + ] ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getScrollToTopStyleControls() ) + , + ]; + } + + /** + * Scroll to top button style + * + * @return array + */ + protected function getScrollToTopStyleControls() { + + return apply_filters( 'kenta_scroll_top_style_controls', [ + ( new Placeholder( 'kenta_to_top_icon_color' ) ) + ->addColor( 'initial', 'var(--kenta-base-color)' ) + ->addColor( 'hover', 'var(--kenta-base-color)' ) + , + ( new Placeholder( 'kenta_to_top_background' ) ) + ->addColor( 'initial', 'var(--kenta-accent-active)' ) + ->addColor( 'hover', 'var(--kenta-primary-color)' ) + , + ( new Placeholder( 'kenta_to_top_border' ) ) + ->setDefaultBorder( 1, 'solid', 'var(--kenta-base-300)', 'var(--kenta-primary-color)' ) + , + ( new Placeholder( 'kenta_to_top_padding' ) ) + ->setDefaultValue( [ + 'top' => '16px', + 'bottom' => '16px', + 'left' => '16px', + 'right' => '16px', + 'linked' => true, + ] ) + , + ( new Placeholder( 'kenta_to_top_radius' ) ) + ->setDefaultValue( [ + 'top' => '999px', + 'bottom' => '999px', + 'left' => '999px', + 'right' => '999px', + 'linked' => true, + ] ) + , + ( new Placeholder( 'kenta_to_top_shadow' ) ) + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.15)', + '0px', + '10px', + '20px', + '0px', + true + ) + , + ( new Placeholder( 'kenta_to_top_shadow_active' ) ) + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.15)', + '0px', + '10px', + '20px', + '0px', + true + ) + , + kenta_upsell_info_control( __( 'Fully customize to top button in %sPro Version%s', 'kenta' ) ) + ] ); + } + } +} + +new Kenta_Scroll_Top_Extension(); diff --git a/wp-content/themes/kenta/inc/extensions/class-socials-extension.php b/wp-content/themes/kenta/inc/extensions/class-socials-extension.php new file mode 100644 index 0000000000..43dc85c5c5 --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions/class-socials-extension.php @@ -0,0 +1,184 @@ +setLabel( __( 'Socials', 'kenta' ) ) + ->setControls( $this->getSocialsControls() ); + + return $controls; + } + + /** + * @return array + */ + public function getSocialsControls() { + $repeater = ( new Repeater( 'kenta_social_networks' ) ) + ->setLabel( __( 'Social Networks', 'kenta' ) ) + ->setTitleField( "<%= settings.label %>" ) + ->setDefaultValue( [ + [ + 'visible' => true, + 'settings' => [ + 'color' => [ 'official' => '#557dbc' ], + 'label' => 'Facebook', + 'url' => '', + 'share' => 'https://www.facebook.com/sharer/sharer.php?u={url}', + 'icon' => [ 'value' => 'fab fa-facebook', 'library' => 'fa-brands' ] + ], + ], + [ + 'visible' => true, + 'settings' => [ + 'color' => [ 'official' => '#000000' ], + 'label' => 'Twitter', + 'url' => '', + 'share' => 'https://twitter.com/share?url={url}&text={text}', + 'icon' => [ 'value' => 'fab fa-x-twitter', 'library' => 'fa-brands' ] + ], + ], + [ + 'visible' => true, + 'settings' => [ + 'color' => [ 'official' => '#ed1376' ], + 'label' => 'Instagram', + 'url' => '', + 'icon' => [ 'value' => 'fab fa-instagram', 'library' => 'fa-brands' ] + ], + ], + ] ) + ->setControls( [ + ( new Text( 'label' ) ) + ->setLabel( __( 'Label', 'kenta' ) ) + ->displayInline() + ->setDefaultValue( 'WordPress' ) + , + ( new Text( 'url' ) ) + ->setLabel( __( 'URL', 'kenta' ) ) + ->displayInline() + ->setDefaultValue( '' ) + , + ( new Text( 'share' ) ) + ->setLabel( __( 'Share Link', 'kenta' ) ) + ->displayInline() + ->setDescription( + sprintf( + // translators: placeholder here means the actual URL. + __( 'Social media sharing link formats, you can use {url} instead of the url of the current post and {text} instead of the title of the current post. %s Learn more %s', 'kenta' ), + '', + '' + ) + ) + ->setDefaultValue( '' ) + , + ( new Separator() ), + ( new ColorPicker( 'color' ) ) + ->setLabel( __( 'Official Color', 'kenta' ) ) + ->addColor( 'official', __( 'Official', 'kenta' ), 'var(--kenta-primary-active)' ) + ->setSwatches( [ + '#557dbc' => 'Facebook', + '#3d87fb' => 'Facebook Group', + '#1887FC' => 'Facebook Messenger', + '#7187d4' => 'Discord', + '#40dfa3' => 'Tripadvisor', + '#f84a7a' => 'Foursquare', + '#ca252a' => 'Yelp', + '#7acdee' => 'Twitter', + '#ed1376' => 'Instagram', + '#ea575a' => 'Pinterest', + '#d77ea6' => 'Dribbble', + '#00e59b' => 'Deviantart', + '#1b64f6' => 'Behance', + '#000000' => 'Unsplash', + '#1c86c6' => 'Linkedin', + '#bc2131' => 'Parler', + '#368ad2' => 'Mastodon', + '#292929' => 'Medium', + '#4e1850' => 'Slack', + '#000001' => 'Codepen', + '#fc471e' => 'Reddit', + '#9150fb' => 'Twitch', + '#000002' => 'Tiktok', + '#f9d821' => 'Snapchat', + '#2ab859' => 'Spotify', + '#fd561f' => 'Soundcloud', + '#933ac3' => 'Apple Podcast', + '#e65c4b' => 'Patreon', + '#4a396f' => 'Alignable', + '#5382b6' => 'Vk', + '#e96651' => 'Youtube', + '#233253' => 'Dtube', + '#8ecfde' => 'Vimeo', + '#f09124' => 'Rss', + '#5bba67' => 'Whatsapp', + '#7f509e' => 'Viber', + '#229cce' => 'Telegram', + '#20be60' => 'Line', + '#0a5c5d' => 'Xing', + '#e41c34' => 'Weibo', + '#314255' => 'Tumblr', + '#487fc8' => 'Qq', + '#2dc121' => 'Wechat', + '#2dc122' => 'Strava', + '#0f64d1' => 'Flickr', + '#244371' => 'Phone', + '#392c44' => 'Email', + '#24292e' => 'Github', + '#f8713f' => 'Gitlab', + '#1caae7' => 'Skype', + '#1074a8' => 'Wordpress', + '#fd6721' => 'Hacker News', + '#eb7e2f' => 'Ok', + '#c40812' => 'Flipboard', + ] ) + , + ( new Icons( 'icon' ) ) + ->setLabel( __( 'Icon', 'kenta' ) ) + ->setLibraries( [ 'fa-brands' ] ) + ->setDefaultValue( [ + 'value' => 'fab fa-wordpress', + 'library' => 'fa-brands', + ] ) + , + ] ); + + if ( ! KENTA_CMP_PRO_ACTIVE ) { + $repeater->setLimit( 4, kenta_upsell_info( __( 'Add more social networks in %sPro Version%s', 'kenta' ) ) ); + } + + return [ + $repeater, + kenta_docs_control( + __( '%sRead Documentation%s', 'kenta' ), + 'https://kentatheme.com/docs/kenta-theme/general/social-networks/', + 'kenta_social_networks_doc' + ), + ]; + } + } +} + +new Kenta_Socials_Extension(); diff --git a/wp-content/themes/kenta/inc/extensions/class-sticky-extension.php b/wp-content/themes/kenta/inc/extensions/class-sticky-extension.php new file mode 100644 index 0000000000..6c49ee8d5c --- /dev/null +++ b/wp-content/themes/kenta/inc/extensions/class-sticky-extension.php @@ -0,0 +1,145 @@ +setLabel( __( 'Sticky Header', 'kenta' ) ) + ->enableSwitch( false ) + ->keepMarginBelow() + ->setControls( [ + ( new \LottaFramework\Customizer\Controls\Select( 'kenta_sticky_header_rows' ) ) + ->setLabel( __( 'Sticky Rows', 'kenta' ) ) + ->setDefaultValue( 'all' ) + ->setChoices( [ + 'all' => __( 'All Rows', 'kenta' ), + 'top-row' => __( 'Top Row Only', 'kenta' ), + 'primary-row' => __( 'Primary Row Only', 'kenta' ), + 'bottom-row' => __( 'Bottom Row Only', 'kenta' ), + 'top-primary-row' => __( 'Top & Primary Row', 'kenta' ), + 'primary-bottom-row' => __( 'Primary & Bottom Row', 'kenta' ), + ] ) + , + ( new \LottaFramework\Customizer\Controls\Separator() ), + ( new \LottaFramework\Customizer\Controls\Border( 'kenta_sticky_header_border_top' ) ) + ->setLabel( __( 'Top Border', 'kenta' ) ) + ->asyncCss( ".kenta-is-sticky", AsyncCss::border( 'border-top' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( 1, 'none', 'var(--kenta-base-300)' ) + , + ( new \LottaFramework\Customizer\Controls\Border( 'kenta_sticky_header_border_bottom' ) ) + ->setLabel( __( 'Bottom Border', 'kenta' ) ) + ->asyncCss( ".kenta-is-sticky", AsyncCss::border( 'border-bottom' ) ) + ->enableResponsive() + ->displayBlock() + ->setDefaultBorder( 1, 'none', 'var(--kenta-base-300)' ) + , + ( new \LottaFramework\Customizer\Controls\BoxShadow( 'kenta_sticky_header_shadow' ) ) + ->setLabel( __( 'Box Shadow', 'kenta' ) ) + ->asyncCss( ".kenta-is-sticky", AsyncCss::shadow() ) + ->enableResponsive() + ->displayBlock() + ->setDefaultShadow( + 'rgba(44, 62, 80, 0.05)', + '0px', + '10px', + '10px', + '0px', + false + ) + , + ] ); + + return $controls; + } + + public function beforeRowRender( $id ) { + + if ( $id === 'modal' || ! CZ::checked( 'kenta_sticky_header' ) ) { + return; + } + + $sticky_rows = CZ::get( 'kenta_sticky_header_rows' ); + + if ( $id === 'top_bar' && ! in_array( $sticky_rows, [ 'all', 'top-row', 'top-primary-row' ] ) ) { + return; + } + if ( $id === 'primary_navbar' && ! in_array( $sticky_rows, [ 'primary-row', 'primary-bottom-row' ] ) ) { + return; + } + if ( $id === 'bottom_row' && $sticky_rows !== 'bottom-row' ) { + return; + } + + $attrs = array( + 'class' => 'kenta-sticky', + ); + + echo '
'; + } + + public function afterRowRender( $id ) { + + if ( $id === 'modal' || ! CZ::checked( 'kenta_sticky_header' ) ) { + return; + } + + $sticky_rows = CZ::get( 'kenta_sticky_header_rows' ); + + if ( $id === 'top_bar' && $sticky_rows !== 'top-row' ) { + return; + } + if ( $id === 'primary_navbar' && ! in_array( $sticky_rows, [ 'primary-row', 'top-primary-row' ] ) ) { + return; + } + if ( $id === 'bottom_row' && ! in_array( $sticky_rows, [ 'all', 'bottom-row' ] ) ) { + return; + } + + echo '
'; + } + } +} +new Kenta_Sticky_Extension(); diff --git a/wp-content/themes/kenta/inc/helpers.php b/wp-content/themes/kenta/inc/helpers.php new file mode 100644 index 0000000000..88d3c338ad --- /dev/null +++ b/wp-content/themes/kenta/inc/helpers.php @@ -0,0 +1,514 @@ + array( + 'class' => true, + 'aria-hidden' => true, + 'aria-labelledby' => true, + 'role' => true, + 'xmlns' => true, + 'width' => true, + 'height' => true, + 'viewbox' => true, + ), + 'clipPath' => array( 'id' => true ), + 'rect' => array( 'width' => true, 'height' => true, 'fill' => true, 'transform' => true ), + 'defs' => array(), + 'g' => array( 'fill' => true ), + 'title' => array( 'title' => true ), + 'path' => array( 'd' => true, 'fill' => true, ), + ); + + return wp_kses( $data, array_merge( $kses_defaults, $svg_args ) ); + } +} + +if ( ! function_exists( 'kenta_do_elementor_location' ) ) { + /** + * Do the Elementor location, if it does not exist, display the custom template part. + * + * @param $elementor_location + * @param string $template_part + * @param null $name + */ + function kenta_do_elementor_location( $elementor_location, $template_part = '', $name = null ) { + if ( ! function_exists( 'elementor_theme_do_location' ) || ! elementor_theme_do_location( $elementor_location ) ) { + get_template_part( $template_part, $name ); + } + } +} + +if ( ! function_exists( 'kenta_is_woo_page' ) ) { + /** + * Is woo card, account, checkout page + * + * @return bool + */ + function kenta_is_woo_page() { + return KENTA_WOOCOMMERCE_ACTIVE && ( is_cart() || is_account_page() || is_checkout() ); + } +} + +if ( ! function_exists( 'kenta_is_woo_shop' ) ) { + /** + * Is products or product detail page + * + * @return bool + */ + function kenta_is_woo_shop() { + return KENTA_WOOCOMMERCE_ACTIVE && is_woocommerce(); + } +} + +if ( ! function_exists( 'kenta_is_plugin_installed' ) ) { + /** + * Check whether a plugin is installed + * + * @param $slug + * + * @return bool + */ + function kenta_is_plugin_installed( $slug ) { + if ( ! function_exists( 'get_plugins' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + $all_plugins = get_plugins(); + + if ( ! empty( $all_plugins[ $slug ] ) ) { + return true; + } else { + return false; + } + } +} + +if ( ! function_exists( 'kenta_install_plugin' ) ) { + /** + * Install new plugin + * + * @param $plugin_zip + * + * @return array|bool|WP_Error + */ + function kenta_install_plugin( $plugin_zip ) { + include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + wp_cache_flush(); + + $upgrader = new Plugin_Upgrader(); + $installed = $upgrader->install( $plugin_zip ); + + return $installed; + } +} + +if ( ! function_exists( 'kenta_upgrade_plugin' ) ) { + /** + * Upgrade plugin + * + * @param $slug + * + * @return array|bool|WP_Error + */ + function kenta_upgrade_plugin( $slug ) { + include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + wp_cache_flush(); + + $upgrader = new Plugin_Upgrader(); + $upgraded = $upgrader->upgrade( $slug ); + + return $upgraded; + } +} + +if ( ! function_exists( 'kenta_do_install_plugins' ) ) { + /** + * Install and active plugin + * + * @param $plugins + * @param $back_url + */ + function kenta_do_install_plugins( $plugins, $back_url ) { + echo '

'; + echo esc_html__( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'kenta' ); + echo '

'; + + foreach ( $plugins as $slug => $name ) { + $name = '' . $name . ''; + $plugin_slug = "{$slug}/{$slug}.php"; + $plugin_zip = "https://downloads.wordpress.org/plugin/{$slug}.latest-stable.zip"; + + if ( kenta_is_plugin_installed( $plugin_slug ) ) { + echo '

'; + echo sprintf( esc_html__( 'Upgrading %s ...', 'kenta' ), $name ); + echo '

'; + kenta_upgrade_plugin( $plugin_slug ); + $installed = true; + } else { + echo '

'; + echo sprintf( esc_html__( 'Installing %s ...', 'kenta' ), $name ); + echo '

'; + $installed = kenta_install_plugin( $plugin_zip ); + } + + if ( ! is_wp_error( $installed ) && $installed ) { + echo '

'; + echo sprintf( esc_html__( 'Activating %s ...', 'kenta' ), $name ); + echo '

'; + activate_plugin( $plugin_slug ); + echo '

'; + echo sprintf( esc_html__( '%s installed successfully', 'kenta' ), $name ); + echo '

'; + } else { + echo '

'; + echo sprintf( esc_html__( 'Could not install the %s plugin.', 'kenta' ), $name ); + echo '

'; + } + + echo '

'; + } + + echo '

'; + esc_html_e( 'All Done!', 'kenta' ); + echo '

'; + echo '

' . esc_html__( 'Return To Theme Page', 'kenta' ) . '

'; + } +} + +if ( ! function_exists( 'kenta_why_companion_link' ) ) { + function kenta_why_companion_link() { + return '' . __( 'Access our starter sites and more extensions', 'kenta' ) . ''; + // return '' . __( 'Why do I need a companion plugin?', 'kenta' ) . ''; + } +} + +if ( ! function_exists( 'kenta_pro_features_link' ) ) { + function kenta_pro_features_link() { + return '' . __( 'Learn More', 'kenta' ) . ''; + } +} + +if ( ! function_exists( 'kenta_upsell_url' ) ) { + /** + * Get upsell url + * + * @return string + */ + function kenta_upsell_url() { + if ( function_exists( 'kcmp_upsell_url' ) ) { + return kcmp_upsell_url(); + } + + return 'https://kentatheme.com/pricing'; + } +} + +if ( ! function_exists( 'kenta_upsell_info' ) ) { + /** + * @param $info + * + * @return string + */ + function kenta_upsell_info( $info ) { + if ( function_exists( 'kcmp_upsell_info' ) ) { + return kcmp_upsell_info( $info ); + } + + $upsell_url = kenta_upsell_url(); + + return sprintf( + $info, '', '' + ); + } +} + +if ( ! function_exists( 'kenta_upsell_info_control' ) ) { + /** + * @param $info + * @param null $id + * + * @return \LottaFramework\Customizer\Controls\Info + */ + function kenta_upsell_info_control( $info, $id = null ) { + return ( new \LottaFramework\Customizer\Controls\Info( $id ) ) + ->alignCenter() + ->hideBackground() + ->setInfo( kenta_upsell_info( $info ) ); + } +} + +if ( ! function_exists( 'kenta_docs_control' ) ) { + /** + * @param $info + * @param $url + * + * @return \LottaFramework\Customizer\Controls\Info + */ + function kenta_docs_control( $info, $url, $id = null ) { + return ( new \LottaFramework\Customizer\Controls\Info( $id ) ) + ->alignCenter() + ->setInfo( sprintf( + $info, '', '' + ) ); + } +} + +if ( ! function_exists( 'kenta_theme_admin_url' ) ) { + /** + * Get kenta theme admin page url + * + * @param $args + * + * @return string + */ + function kenta_theme_admin_url( $args ) { + return apply_filters( 'kenta_admin_page_url', add_query_arg( array_merge( $args, [ + 'page' => 'kenta-theme' + ] ), admin_url( 'themes.php' ) ), $args ); + } +} + +if ( ! function_exists( 'kenta_install_cmp_redirect_url' ) ) { + /** + * @param string $hash + * + * @return string + */ + function kenta_install_cmp_redirect_url( $hash = '' ) { + $switch = apply_filters( 'kenta_welcome_demo_switch_after_importing', false ); + $args['page'] = 'kenta-starter-sites'; + $args['skip-opt-in'] = 'yes'; + if ( $switch ) { + $args['switch'] = true; + } + + return add_query_arg( $args, admin_url( 'admin.php' ) ) . $hash; + } +} + +if ( ! function_exists( 'kenta_blog_id' ) ) { + /** + * Get blog id, support multisite + * + * + * @param null $slug + * + * @return string + */ + function kenta_blog_id( $slug = null ) { + global $blog_id; + + $prefix = ( is_multisite() && $blog_id > 1 ) ? 'kenta-blog-' . $blog_id : 'kenta-blog'; + + return $slug === null ? $prefix : $prefix . '-' . $slug; + } +} + +if ( ! function_exists( 'kenta_current_loop' ) ) { + /** + * @return string + */ + function kenta_current_loop() { + global $wp_query; + $loop = 'default'; + + if ( $wp_query->is_page ) { + $loop = is_front_page() ? 'front' : get_post_type(); + } elseif ( $wp_query->is_home ) { + $loop = 'home'; + } elseif ( $wp_query->is_single ) { + $loop = ( $wp_query->is_attachment ) ? 'attachment' : get_post_type(); + } elseif ( $wp_query->is_category ) { + $loop = 'category'; + } elseif ( $wp_query->is_tag ) { + $loop = 'tag'; + } elseif ( $wp_query->is_tax ) { + $loop = 'tax'; + } elseif ( $wp_query->is_archive ) { + if ( $wp_query->is_day ) { + $loop = 'day'; + } elseif ( $wp_query->is_month ) { + $loop = 'month'; + } elseif ( $wp_query->is_year ) { + $loop = 'year'; + } elseif ( $wp_query->is_author ) { + $loop = 'author'; + } else { + $loop = 'archive'; + } + } elseif ( $wp_query->is_search ) { + $loop = 'search'; + } elseif ( $wp_query->is_404 ) { + $loop = 'notfound'; + } + + return $loop; + } +} + +if ( ! function_exists( 'kenta_current_option_type' ) ) { + /** + * @return string + */ + function kenta_current_option_type() { + $post_type = 'archive'; + if ( is_page() ) { + $post_type = 'pages'; + } + + if ( is_single() ) { + $post_type = 'single_post'; + } + + if ( is_front_page() && ! is_home() ) { + $post_type = 'homepage'; + } + + if ( kenta_is_woo_shop() ) { + $post_type = 'store'; + } + + return $post_type; + } +} + +if ( ! function_exists( 'kenta_get_stylesheet_tag' ) ) { + /** + * Get tag with stylesheet prefix + * + * @param $tag + * + * @return string + * @since v1.2.8 + */ + function kenta_get_stylesheet_tag( $tag ) { + return get_stylesheet() . '_' . $tag; + } +} + +if ( ! function_exists( 'kenta_get_option' ) ) { + /** + * @param $option + * @param $default_value + * + * @return false|mixed|null + * @since v1.2.8 + */ + function kenta_get_option( $option, $default_value = false ) { + return get_option( kenta_get_stylesheet_tag( $option ), $default_value ); + } +} + +if ( ! function_exists( 'kenta_update_option' ) ) { + /** + * @param $option + * @param $value + * @param null $autoload + * + * @return false|mixed|null + * @since v1.2.8 + */ + function kenta_update_option( $option, $value, $autoload = null ) { + return update_option( kenta_get_stylesheet_tag( $option ), $value, $autoload = null ); + } +} + +if ( ! function_exists( 'kenta_do_action' ) ) { + /** + * @param $hook_name + * @param ...$arg + * + * @return void + * @since v1.2.8 + */ + function kenta_do_action( $hook_name, ...$arg ) { + do_action( kenta_get_stylesheet_tag( $hook_name ), ...$arg ); + } +} + +if ( ! function_exists( 'kenta_add_action' ) ) { + /** + * @param $hook_name + * @param $callback + * @param $priority + * @param $accepted_args + * + * @return true|null + * @since v1.2.8 + */ + function kenta_add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) { + return add_action( kenta_get_stylesheet_tag( $hook_name ), $callback, $priority, $accepted_args ); + } +} + +if ( ! function_exists( 'kenta_apply_filters' ) ) { + /** + * @param $hook_name + * @param $value + * @param ...$args + * + * @return mixed|null + * @since v1.2.8 + */ + function kenta_apply_filters( $hook_name, $value, ...$args ) { + return apply_filters( kenta_get_stylesheet_tag( $hook_name ), $value, ...$args ); + } +} + +if ( ! function_exists( 'kenta_add_filter' ) ) { + /** + * @param $hook_name + * @param $callback + * @param $priority + * @param $accepted_args + * + * @return true|null + * @since v1.2.8 + */ + function kenta_add_filter( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) { + return add_filter( kenta_get_stylesheet_tag( $hook_name ), $callback, $priority, $accepted_args ); + } +} + +if ( ! function_exists( 'kenta_get_theme_version' ) ) { + /** + * Get current theme version + * + * @return array|false|string + */ + function kenta_get_theme_version() { + $theme = wp_get_theme(); + + return $theme->get( 'Version' ) ?: KENTA_VERSION; + } +} diff --git a/wp-content/themes/kenta/inc/template-functions.php b/wp-content/themes/kenta/inc/template-functions.php new file mode 100644 index 0000000000..826cdd5c46 --- /dev/null +++ b/wp-content/themes/kenta/inc/template-functions.php @@ -0,0 +1,696 @@ +has( 'store.excerpt_length' ) || absint( kenta_app()['store.excerpt_length'] ) <= 0 ) { + return $length; + } + + return absint( kenta_app()['store.excerpt_length'] ); +} + +add_filter( 'excerpt_length', 'kenta_excerpt_length' ); + +if ( ! function_exists( 'kenta_get_the_archive_title' ) ) { + /** + * Override blogs page title + */ + function kenta_get_the_archive_title( $title ) { + if ( is_home() ) { + return CZ::get( 'kenta_blogs_archive_header_title' ); + } + + return $title; + } +} +add_filter( 'get_the_archive_title', 'kenta_get_the_archive_title' ); + +/** + * Replaces "[...]" (appended to automatically generated excerpts) with ... and a option from customizer + * + * @return string option from customizer prepended with an ellipsis. + */ +function kenta_excerpt_more( $link ) { + if ( is_admin() || ! kenta_app()->has( 'store.excerpt_more_text' ) || kenta_app()['store.excerpt_more_text'] === '' ) { + return $link; + } + + return kenta_app()['store.excerpt_more_text']; +} + +add_filter( 'excerpt_more', 'kenta_excerpt_more' ); + +/** + * Add a pingback url auto-discovery header for single posts, pages, or attachments. + */ +function kenta_pingback_header() { + if ( is_singular() && pings_open() ) { + printf( '', esc_url( get_bloginfo( 'pingback_url' ) ) ); + } +} + +add_action( 'wp_head', 'kenta_pingback_header' ); + +/** + * Add selective dynamic css output container + */ +function kenta_add_selective_css_container() { + ?> + + + + + + + +
+ +
+ +
+ +
+ 'kenta-header-row kenta-header-row-' . $id, + 'data-row' => $id, + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_header:' . $id; + } + + echo '
'; +} + +add_action( 'kenta_start_header_row', 'kenta_header_row_start', 10 ); + +function kenta_header_row_container_start( $id ) { + echo '
'; +} + +add_action( 'kenta_start_header_row', 'kenta_header_row_container_start', 20 ); + +function kenta_header_row_close() { + echo '
'; +} + +// header row +add_action( 'kenta_after_header_row', 'kenta_header_row_close', 10 ); +// container +add_action( 'kenta_after_header_row', 'kenta_header_row_close', 20 ); + +/** + * Show single post header + */ +function kenta_show_single_post_header( $layout ) { + if ( CZ::get( 'kenta_post_featured_image_position' ) === 'behind' ) { + if ( have_posts() ) { + the_post(); + kenta_show_article_header( 'kenta_single_post', 'post' ); + rewind_posts(); + } + } +} + +add_action( 'kenta_action_before_single_post_container', 'kenta_show_single_post_header', 10, 2 ); + +/** + * Show page header + */ +function kenta_show_page_header( $layout ) { + $header = ! ( is_front_page() && ! is_home() ) || CZ::checked( 'kenta_show_frontpage_header' ); + if ( $header && CZ::get( 'kenta_page_featured_image_position' ) === 'behind' ) { + if ( have_posts() ) { + the_post(); + kenta_show_article_header( 'kenta_pages', 'page' ); + rewind_posts(); + } + } +} + +add_action( 'kenta_action_before_page_container', 'kenta_show_page_header', 10, 2 ); + +/** + * Show posts pagination + */ +function kenta_show_posts_pagination() { + global $wp_query; + $pages = $wp_query->max_num_pages; + + global $paged; + $paged = empty( $paged ) ? 1 : $paged; + + // Don't print empty markup in archives if there's only one page or pagination is disabled. + if ( ! CZ::checked( 'kenta_archive_pagination_section' ) || + ( $pages < 2 && ( is_home() || is_archive() || is_search() ) ) ) { + return; + } + + $type = CZ::get( 'kenta_pagination_type' ); + $show_disabled_button = CZ::checked( 'kenta_pagination_disabled_button' ); + + $css = apply_filters( 'kenta_pagination_css', [ + 'kenta-pagination' => true, + 'kenta-scroll-reveal' => CZ::checked( 'kenta_pagination_scroll_reveal' ) + ], $type ); + + $pagination_attrs = [ + 'class' => Utils::clsx( $css ), + 'data-pagination-type' => $type, + 'data-pagination-max-pages' => $pages, + ]; + + if ( is_customize_preview() ) { + $pagination_attrs['data-shortcut'] = 'border'; + $pagination_attrs['data-shortcut-location'] = 'kenta_archive:kenta_archive_pagination_section'; + } + + $btn_class = 'kenta-btn'; + $current_btn_class = $btn_class . ' kenta-btn-active'; + $disabled_btn_class = $btn_class . ' kenta-btn-disabled'; + + $show_previous_button = function ( $disabled = false ) use ( $paged, $btn_class, $disabled_btn_class ) { + $prev_type = CZ::get( 'kenta_pagination_prev_next_type' ); + + if ( $disabled ) { + echo ''; + } else { + echo ''; + } + + if ( $prev_type === 'text' ) { + echo '' . esc_html( CZ::get( 'kenta_pagination_prev_text' ) ) . ''; + } else { + IconsManager::print( CZ::get( 'kenta_pagination_prev_icon' ) ); + } + + echo $disabled ? '' : ''; + }; + + $show_next_button = function ( $disabled = false ) use ( $paged, $btn_class, $disabled_btn_class ) { + $next_type = CZ::get( 'kenta_pagination_prev_next_type' ); + + if ( $disabled ) { + echo ''; + } else { + echo ''; + } + + echo ''; + if ( $next_type === 'text' ) { + esc_html_e( CZ::get( 'kenta_pagination_next_text' ) ); + } else { + IconsManager::print( CZ::get( 'kenta_pagination_next_icon' ) ); + } + echo ''; + + echo $disabled ? '' : ''; + }; + + echo ''; +} + +add_action( 'kenta_action_posts_pagination', 'kenta_show_posts_pagination' ); + +/** + * Show page content + */ +function kenta_show_page_content( $layout ) { + $is_behind = CZ::get( 'kenta_page_featured_image_position' ) === 'behind'; + + kenta_show_article( 'kenta_pages', 'page', ! $is_behind ); +} + +add_action( 'kenta_action_page', 'kenta_show_page_content', 10, 2 ); + +/** + * Show single post content + */ +function kenta_show_single_post_content( $layout ) { + $is_behind = CZ::get( 'kenta_post_featured_image_position' ) === 'behind'; + + kenta_show_article( 'kenta_single_post', 'post', ! $is_behind ); +} + +add_action( 'kenta_action_single_post', 'kenta_show_single_post_content', 10, 2 ); + +/** + * Show share box + */ +function kenta_add_post_share_box() { + if ( is_page() && ! is_front_page() && CZ::checked( 'kenta_page_share_box' ) ) { + kenta_show_share_box( 'page', 'kenta_pages:kenta_page_share_box' ); + } + + if ( is_single() && CZ::checked( 'kenta_post_share_box' ) ) { + kenta_show_share_box( 'post', 'kenta_single_post:kenta_post_share_box' ); + } +} + +add_action( 'kenta_action_after_single_post', 'kenta_add_post_share_box', 10 ); +add_action( 'kenta_action_after_page', 'kenta_add_post_share_box', 10 ); + +function kenta_add_post_author_bio() { + if ( ! CZ::checked( 'kenta_post_author_bio' ) ) { + return; + } + + $user_id = null; + $obj = get_queried_object(); + if ( is_author() ) { + $user_id = $obj->data->ID; + } elseif ( is_single() ) { + $user_id = $obj->post_author; + } + + if ( ! $user_id ) { + return; + } + + $attrs = [ + 'class' => 'kenta-max-w-content has-global-padding mx-auto', + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_single_post:kenta_post_author_bio'; + } + + $author_posts_url = get_author_posts_url( get_the_author_meta( 'ID', $user_id ) ); + ?> +
> +
+ '; + } + + echo get_avatar( get_the_author_meta( 'user_email', $user_id ), absint( $author_bio_avatar_size ), '', '', [ + 'class' => 'kenta-author-bio-avatar' + ] ); + + if ( $author_bio_avatar_link ) { + echo ''; + } + } + ?> + + '; + echo esc_html( $name_prefix ) . ( ! empty( $name_prefix ) ? ' ' : '' ); + echo ''; + echo esc_html( get_the_author_meta( 'display_name', $user_id ) ); + echo ''; + echo ''; + ?> + + + + + +

+ +

+
+
+ 'kenta-max-w-content has-global-padding mx-auto', + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_single_post:kenta_post_navigation'; + } + + echo '
'; + echo '
'; + + $fallback_image = CZ::hasImage( 'kenta_post_featured_image_fallback' ) + ? '' + : ''; + + $prev_post = get_previous_post(); + + $prev_thumbnail = $fallback_image; + $next_thumbnail = $fallback_image; + + if ( has_post_thumbnail( $prev_post ? $prev_post->ID : null ) ) { + $prev_thumbnail = get_the_post_thumbnail( $prev_post ? $prev_post->ID : null, 'medium' ); + } + + $prev_thumbnail = ''; + + $next_post = get_next_post(); + if ( has_post_thumbnail( $next_post ? $next_post->ID : null ) ) { + $next_thumbnail = get_the_post_thumbnail( $next_post ? $next_post->ID : null, 'medium' ); + } + + $next_thumbnail = ''; + + the_post_navigation( [ + 'prev_text' => $prev_thumbnail . '
' . esc_html__( 'Previous Post', 'kenta' ) . '%title
', + 'next_text' => $next_thumbnail . '
' . esc_html__( 'Next Post', 'kenta' ) . '%title
', + 'screen_reader_text' => '' . esc_html__( 'Page', 'kenta' ) . '', + ] ); + + echo '
'; + echo '
'; +} + +add_action( 'kenta_action_after_single_post', 'kenta_add_post_navigation', 10 ); + +/** + * Show post comments + */ +function kenta_show_post_comments() { + // If comments are open, or we have at least one comment, load up the comment template. + if ( ( comments_open() || get_comments_number() ) ) { + comments_template(); + } +} + +add_action( 'kenta_action_after_page', 'kenta_show_post_comments', 30 ); +add_action( 'kenta_action_after_single_post', 'kenta_show_post_comments', 30 ); + +/** + * Footer open + */ +function kenta_footer_open() { + ?> +
+ +
+ 2, + 'settings' => array( + 'layout' => array( + 'contentSize' => $content_size, + 'wideSize' => $wide_size, + ), + ) + ); + + return $theme_json->update_with( $new_data ); + } +} +add_filter( 'wp_theme_json_data_theme', 'kenta_custom_theme_layout' ); diff --git a/wp-content/themes/kenta/inc/template-tags.php b/wp-content/themes/kenta/inc/template-tags.php new file mode 100644 index 0000000000..c686e53bb1 --- /dev/null +++ b/wp-content/themes/kenta/inc/template-tags.php @@ -0,0 +1,1896 @@ + 'yes', + 'data-kenta-blog-id' => kenta_blog_id(), + 'data-kenta-theme' => $_COOKIE[ kenta_blog_id( 'color-mode' ) ] ?? $default_scheme, + ]; + } else { + $attrs = [ + 'data-save-color-scheme' => 'no', + 'data-kenta-blog-id' => kenta_blog_id(), + 'data-kenta-theme' => $default_scheme, + ]; + } + + $attrs = apply_filters( 'kenta_html_attributes', $attrs ); + + if ( $key === null ) { + return $attrs; + } + + return $attrs[ $key ] ?? null; + } +} + +if ( ! function_exists( 'kenta_html_attributes' ) ) { + /** + * Output html element attributes + */ + function kenta_html_attributes() { + Utils::print_attribute_string( kenta_get_html_attributes() ); + } +} + +if ( ! function_exists( 'kenta_image_size_options' ) ) { + /** + * @param bool $add_disable + * @param array $allowed + * @param bool $show_dimension + * + * @return array + */ + function kenta_image_size_options( $add_disable = true, array $allowed = [], $show_dimension = true ) { + + global $_wp_additional_image_sizes; + + $choices = []; + + if ( true === $add_disable ) { + $choices['disable'] = 'No Image'; + } + + $choices['thumbnail'] = 'Thumbnail'; + $choices['medium'] = 'Medium'; + $choices['large'] = 'Large'; + $choices['full'] = 'Full (original)'; + + if ( true === $show_dimension ) { + foreach ( [ 'thumbnail', 'medium', 'large' ] as $_size ) { + $choices[ $_size ] = $choices[ $_size ] . ' (' . get_option( $_size . '_size_w' ) . 'x' . get_option( $_size . '_size_h' ) . ')'; + } + } + + if ( ! empty( $_wp_additional_image_sizes ) && is_array( $_wp_additional_image_sizes ) ) { + foreach ( $_wp_additional_image_sizes as $key => $size ) { + $choices[ $key ] = $key; + if ( true === $show_dimension ) { + $choices[ $key ] .= ' (' . $size['width'] . 'x' . $size['height'] . ')'; + } + } + } + + if ( ! empty( $allowed ) ) { + foreach ( $choices as $key => $value ) { + if ( ! in_array( $key, $allowed, true ) ) { + unset( $choices[ $key ] ); + } + } + } + + return $choices; + } +} + +if ( ! function_exists( 'kenta_image' ) ) { + /** + * Get image file + * + * @param $name + * + * @return mixed|string + */ + function kenta_image( $name ) { + $svgs = [ + 'none' => '', + /** + * Divider + */ + 'divider-1' => '', + /** + * Text Align + */ + 'text-left' => '', + 'text-center' => '', + 'text-right' => '', + 'text-justify' => '', + /** + * Justify Content + */ + 'justify-space-between-v' => '', + 'justify-space-around-v' => '', + 'justify-start-v' => '', + 'justify-center-v' => '', + 'justify-end-v' => '', + + 'justify-space-between-h' => '', + 'justify-space-around-h' => '', + 'justify-start-h' => '', + 'justify-center-h' => '', + 'justify-end-h' => '', + /** + * Device + */ + 'desktop' => '', + 'tablet' => '', + 'mobile' => '', + /** + * Breadcrumb Separator + */ + 'breadcrumb-sep-1' => '', + 'breadcrumb-sep-2' => '', + 'breadcrumb-sep-3' => '', + 'breadcrumb-sep-4' => '', + ]; + + $svgs = apply_filters( 'kenta_svg_images', $svgs ); + + if ( ! isset( $svgs[ $name ] ) ) { + return ''; + } + + return $svgs[ $name ]; + } +} + +if ( ! function_exists( 'kenta_image_url' ) ) { + /** + * Get image file url + * + * @param $path + * + * @return string + */ + function kenta_image_url( $path ): string { + return trailingslashit( get_template_directory_uri() ) . 'dist/images/' . $path; + } +} + +if ( ! function_exists( 'kenta_get_sidebar_layout' ) ) { + /** + * Get current post/page/store sidebar layout + * + * @param $post_type + * + * @return mixed|string + * @since 2.0.0 + */ + function kenta_get_sidebar_layout( $post_type = 'page' ) { + $layout = 'no-sidebar'; + $page_sidebar = kenta_get_current_post_meta( 'site-sidebar-layout' ); + if ( $page_sidebar && $page_sidebar !== 'default' ) { + $layout = $page_sidebar; + } else if ( ( ! is_front_page() || is_home() ) && CZ::checked( "kenta_{$post_type}_sidebar_section" ) ) { + $layout = CZ::get( "kenta_{$post_type}_sidebar_layout" ); + } + + return $layout; + } +} + +if ( ! function_exists( 'kenta_get_container_style' ) ) { + /** + * @return mixed|string + */ + function kenta_get_container_style( $post_type = 'page' ) { + $page_container = kenta_get_current_post_meta( 'site-container-style' ); + if ( $page_container && $page_container !== 'default' ) { + return $page_container; + } + + if ( $post_type === 'post' ) { + return CZ::get( 'kenta_single_post_container_style' ); + } + + if ( $post_type === 'page' ) { + return CZ::get( 'kenta_pages_container_style' ); + } + + return 'boxed'; + } +} + +if ( ! function_exists( 'kenta_get_container_layout' ) ) { + /** + * @return mixed|string + */ + function kenta_get_container_layout( $post_type = 'page' ) { + $option_type = $post_type === 'page' ? 'pages' : 'single_post'; + $content_container_layout = kenta_get_current_post_meta( 'site-container-layout' ); + if ( $content_container_layout === 'default' ) { + $content_container_layout = CZ::get( 'kenta_' . $option_type . '_container_layout' ) ?? 'normal'; + } + + return $content_container_layout; + } +} + +if ( ! function_exists( 'kenta_container_css' ) ) { + /** + * Get container css + * + * @param string $layout + * @param array $css + * + * @return []|array|string[] + */ + function kenta_container_css( $args = array() ) { + $args = wp_parse_args( $args, array( + 'layout' => 'narrow', + 'sidebar' => 'no-sidebar', + 'style' => 'boxed', + 'css' => array(), + ) ); + + $sidebar = $args['sidebar']; + $style = $args['style']; + + return array_merge( $args['css'], [ + 'kenta-container flex flex-col lg:flex-row flex-grow z-[1]' => true, + 'kenta-max-w-wide mx-auto' => $style === 'boxed' && ( $sidebar === 'right-sidebar' || $sidebar === 'left-sidebar' ), + 'is-style-' . $style => true, + 'is-align-' . $args['layout'] => true, + 'kenta-no-sidebar no-sidebar' => $sidebar !== 'right-sidebar' && $sidebar !== 'left-sidebar', + 'kenta-right-sidebar lg:flex-row' => $sidebar === 'right-sidebar', + 'kenta-left-sidebar lg:flex-row-reverse' => $sidebar === 'left-sidebar', + ] ); + } +} + +if ( ! function_exists( 'kenta_render_posts_list' ) ) { + /** + * Render posts list + */ + function kenta_render_posts_list() { + + $attrs = [ + 'class' => 'flex flex-wrap card-list', + 'data-card-layout' => CZ::get( 'kenta_archive_layout' ), + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_archive'; + } + + if ( have_posts() ) { + ?> +
> + +
+ + '', + 'after' => '', + 'sep' => '', + 'style' => '', + ]; + + $options = $options ?? CZ::getFacadeRoot(); + + extract( array_merge( $default_args, $args ) ); + $divider = $options->get( 'kenta_' . $id . '_meta_items_divider', $settings ); + $icon = $options->get( 'kenta_' . $id . '_meta_items_style', $settings ) === 'icon'; + + echo $before; + + foreach ( $items as $item ) { + + if ( $item === 'byline' ) { + + $byline = sprintf( + '%s', + '' . esc_html( get_the_author() ) . '' + ); + + if ( ! empty( $byline ) ) { + echo ''; + } + } elseif ( $item === 'published' ) { + $date_format = $options->get( 'kenta_' . $id . '_published_format', $settings ); + $show_modified = $options->checked( 'kenta_' . $id . '_show_modified_date', $settings ); + + $time_string = ''; + if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { + if ( $show_modified ) { + $time_string = ''; + } else { + $time_string = ''; + } + } + + $time_string = sprintf( $time_string, + esc_attr( get_the_date( 'c' ) ), + esc_html( get_the_date( $date_format ) ), + esc_attr( get_the_modified_date( 'c' ) ), + esc_html( get_the_modified_date( $date_format ) ) + ); + + $posted_on = sprintf( + '%s', + '' + ); + + if ( ! empty( $posted_on ) ) { + echo '' . ( $icon ? IconsManager::render( $options->get( 'kenta_' . $id . '_published_icon' ) ) : '' ) . $posted_on . ''; + } + } elseif ( $item === 'comments' ) { + if ( ! comments_open( get_the_ID() ) || get_comments_number() <= 0 ) { + continue; + } + + echo ''; + echo $icon ? IconsManager::render( $options->get( 'kenta_' . $id . '_comments_icon' ) ) : ''; + comments_popup_link( false, false, false, $style ); + echo ''; + } + + if ( $divider !== 'none' ) { + echo ''; + echo kenta_image( $divider ); + echo ''; + } else { + echo ''; + } + } + + echo $after; + } +} + +if ( ! function_exists( 'kenta_post_categories' ) ) { + /** + * Prints HTML with categories information for the current post. + * + * @param string $before + * @param string $after + * @param array $style + */ + function kenta_post_categories( $before = '', $after = '', $style = [] ) { + // Hide category for pages. + if ( 'post' !== get_post_type() || empty( get_the_category() ) ) { + return; + } + + global $wp_rewrite; + + $style = esc_attr( Utils::clsx( $style ) ); + + $rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"'; + echo $before; + foreach ( get_the_category() as $category ) { + echo '' . esc_html( $category->name ) . ''; + } + echo $after; + } +} + +if ( ! function_exists( 'kenta_post_tags' ) ) { + /** + * Prints HTML with tags information for the current post. + * + * @param string $before + * @param string $after + * @param array $style + */ + function kenta_post_tags( $before = '', $after = '', $style = [] ) { + // Hide tag text for pages. + if ( 'post' !== get_post_type() ) { + return; + } + + $tags = get_the_tags(); + + if ( is_wp_error( $tags ) || empty( $tags ) ) { + return; + } + + $style = esc_attr( Utils::clsx( $style ) ); + + $tag_links = array_map( function ( $tag ) use ( $style ) { + return ''; + }, $tags ); + + /* Translators: used between list items, there is a space after the comma. */ + echo $before . implode( '', $tag_links ) . $after; + } +} + +if ( ! function_exists( 'kenta_post_structure' ) ) { + /** + * Render post structure + */ + function kenta_post_structure( $id, $structure, $metas, $args = [] ) { + $args = wp_parse_args( $args, [ + 'title_link' => false, + 'title_tag' => 'h1', + 'excerpt_type' => 'full', + 'options' => CZ::getFacadeRoot(), + 'settings' => [], + ] ); + + $options = $args['options']; + $settings = $args['settings']; + $title_link = $args['title_link']; + $title_tag = $args['title_tag']; + + kenta_app()->instance( 'store.excerpt_more_text', (string) $options->get( 'kenta_' . $id . '_excerpt_more_text', $settings ) ); + kenta_app()->instance( 'store.excerpt_length', (string) $options->get( 'kenta_' . $id . '_excerpt_length', $settings ) ); + + $content_open = false; + ?> + + + '; + } + ?> + + + get( 'kenta_' . $id . '_thumbnail_size' ), [ + 'class' => 'w-full h-full', + ] ); + } else { + echo ''; + } + ?> + + + '; + } + ?> + + +
+ ", "" ); ?> +
+ + + %2$s %3$s', + $title_tag, + sprintf( + '%2$s', + esc_url( get_permalink() ), + get_the_title() + ), + ( get_edit_post_link() ? sprintf( + '%2$s', + get_edit_post_link(), + __( 'Edit', 'kenta' ) + ) : '' ) + ) ); + ?> + + + + + + get( 'kenta_' . $id . '_tax_style_cats', $settings ) . '">', + '
', + [ 'entry-tax-item mr-2 last:mr-0' ] + ); + ?> + + + + get( 'kenta_' . $id . '_tax_style_tags', $settings ) . '">', + '
', + [ 'entry-tax-item mr-2 last:mr-0' ] + ); + ?> + + +
+ +
+ + + + + +
+ + + get( 'kenta_' . $id . '_title_typography', $settings ) ), + Css::colors( $options->get( 'kenta_' . $id . '_title_color', $settings ), [ + 'initial' => '--kenta-link-initial-color', + 'hover' => '--kenta-link-hover-color', + ] ) ); + } + + // taxonomies + if ( $element === 'categories' || $element === 'tags' ) { + $tax = $element === 'categories' ? '_cats' : '_tags'; + $selector = ".entry-{$element}"; + + $tax_css = Css::typography( $options->get( 'kenta_' . $id . '_tax_typography' . $tax, $settings ) ); + $tax_type = $options->get( 'kenta_' . $id . '_tax_style' . $tax, $settings ); + + if ( $tax_type === 'default' ) { + $tax_css = array_merge( + $tax_css, + [ + '--kenta-tax-bg-initial' => 'var(--kenta-transparent)', + '--kenta-tax-bg-hover' => 'var(--kenta-transparent)', + ], + Css::colors( $options->get( 'kenta_' . $id . '_tax_default_color' . $tax, $settings ), [ + 'initial' => '--kenta-tax-text-initial', + 'hover' => '--kenta-tax-text-hover', + ] ) + ); + } else { + $tax_css = array_merge( + $tax_css, + Css::colors( $options->get( 'kenta_' . $id . '_tax_badge_text_color' . $tax, $settings ), [ + 'initial' => '--kenta-tax-text-initial', + 'hover' => '--kenta-tax-text-hover', + ] ), + Css::colors( $options->get( 'kenta_' . $id . '_tax_badge_bg_color' . $tax, $settings ), [ + 'initial' => '--kenta-tax-bg-initial', + 'hover' => '--kenta-tax-bg-hover', + ] ) + ); + } + + $css["$scope_selector $selector"] = $tax_css; + } + + // excerpt + if ( $element === 'excerpt' ) { + $css["$scope_selector .entry-excerpt"] = array_merge( + Css::typography( $options->get( 'kenta_' . $id . '_excerpt_typography', $settings ) ), + Css::colors( $options->get( 'kenta_' . $id . '_excerpt_color', $settings ), [ + 'initial' => 'color' + ] ) + ); + } + + // divider + if ( $element === 'divider' ) { + $css["$scope_selector .entry-divider"] = Css::border( + $options->get( 'kenta_' . $id . '_divider', $settings ), + '--entry-divider' + ); + } + + // metas + if ( $element === 'metas' ) { + $css["$scope_selector .entry-metas"] = array_merge( + Css::typography( $options->get( 'kenta_' . $id . '_meta_typography', $settings ) ), + Css::colors( $options->get( 'kenta_' . $id . '_meta_color', $settings ), [ + 'initial' => '--kenta-meta-link-initial-color', + 'hover' => '--kenta-meta-link-hover-color', + ] ) + ); + } + + // thumbnail + if ( $element === 'thumbnail' ) { + $css["$scope_selector .entry-thumbnail"] = array_merge( + [ 'height' => CZ::get( 'kenta_' . $id . '_thumbnail_height' ) ], + Css::dimensions( CZ::get( 'kenta_' . $id . '_thumbnail_radius' ), 'border-radius' ), + Css::shadow( CZ::get( 'kenta_' . $id . '_thumbnail_shadow' ) ), + Css::filters( CZ::get( 'kenta_' . $id . '_thumbnail_filter' ) ) + ); + } + + if ( $element === 'read-more' ) { + $preset = kenta_button_preset( 'kenta_' . $id . '_read_more_', CZ::get( 'kenta_' . $id . '_read_more_preset' ) ); + + $css["$scope_selector .entry-read-more"] = array_merge( + [ + '--kenta-button-height' => CZ::get( 'kenta_' . $id . '_read_more_min_height' ) + ], + Css::shadow( CZ::get( 'kenta_' . $id . '_read_more_shadow', $preset ) ), + Css::typography( CZ::get( 'kenta_' . $id . '_read_more_typography', $preset ) ), + Css::dimensions( CZ::get( 'kenta_' . $id . '_read_more_padding', $preset ), '--kenta-button-padding' ), + Css::dimensions( CZ::get( 'kenta_' . $id . '_read_more_radius', $preset ), '--kenta-button-radius' ), + Css::colors( CZ::get( 'kenta_' . $id . '_read_more_text_color', $preset ), [ + 'initial' => '--kenta-button-text-initial-color', + 'hover' => '--kenta-button-text-hover-color', + ] ), + Css::colors( CZ::get( 'kenta_' . $id . '_read_more_button_color', $preset ), [ + 'initial' => '--kenta-button-initial-color', + 'hover' => '--kenta-button-hover-color', + ] ), + Css::border( CZ::get( 'kenta_' . $id . '_read_more_border', $preset ), '--kenta-button-border' ) + ); + + $css["$scope_selector .entry-read-more:hover"] = Css::shadow( CZ::get( 'kenta_' . $id . '_read_more_shadow_active', $preset ) ); + } + } + + return $css; + } +} + +if ( ! function_exists( 'kenta_show_article_feature_image' ) ) { + /** + * Show feature image + * + * @param string $preview_location + * @param $prefix + */ + function kenta_show_article_feature_image( $preview_location, $prefix ) { + + $thumb_attrs = [ + 'class' => $prefix . '_feature_image article-featured-image kenta-max-w-content mx-auto', + ]; + + if ( is_customize_preview() ) { + $thumb_attrs['data-shortcut'] = 'border'; + $thumb_attrs['data-shortcut-location'] = $preview_location . ':' . $prefix . '_featured_image'; + } + + do_action( 'kenta_before_render_featured_image', $prefix ); + if ( has_post_thumbnail() || CZ::hasImage( $prefix . '_featured_image_fallback' ) ) { + $width = CZ::get( $prefix . '_featured_image_width' ); + $size = CZ::get( $prefix . '_featured_image_size' ); + $attrs = array( + 'class' => Utils::clsx( [ + 'h-full object-center object-cover', + 'w-full' => $width === 'default', + 'alignwide' => $width === 'wide', + 'alignfull' => $width === 'full', + ] ) + ); + + echo '
'; + if ( has_post_thumbnail() ) { + the_post_thumbnail( $size, $attrs ); + } else { + // Show fallback image + $attrs = array_merge( CZ::imgAttrs( $prefix . '_featured_image_fallback' ), $attrs ); + echo ''; + } + echo '
'; + } + do_action( 'kenta_after_render_featured_image', $prefix ); + } +} + +if ( ! function_exists( 'kenta_show_article_header' ) ) { + /** + * Show article header + * + * @param $preview_location + * @param string $type + * @param bool $header + * @param bool $image + */ + function kenta_show_article_header( $preview_location, string $type = 'post', $header = true, $image = true ) { + + $prefix = 'kenta_' . $type; + $header_elements = CZ::layers( $prefix . '_header_elements' ); + $header_available = $header + && ! empty( $header_elements ) + && kenta_get_current_post_meta( 'disable-article-header' ) !== 'yes' + && CZ::checked( "{$prefix}_header" ); + + if ( is_front_page() && ! is_home() ) { + $header_available = CZ::checked( 'kenta_show_frontpage_header' ); + } + + $has_featured_image = $image && CZ::checked( "{$prefix}_featured_image" ); + $featured_image_pos = CZ::get( "{$prefix}_featured_image_position" ); + + $header_attrs = [ + 'class' => "kenta-{$type}-header" . ' kenta-article-header kenta-max-w-content has-global-padding mx-auto relative z-[1]', + ]; + + if ( is_customize_preview() ) { + $header_attrs['data-shortcut'] = 'border'; + $header_attrs['data-shortcut-location'] = "$preview_location:{$prefix}_header"; + } + + if ( $has_featured_image ) { + if ( $featured_image_pos === 'above' ) { + kenta_show_article_feature_image( $preview_location, $prefix ); + } + + if ( $featured_image_pos === 'behind' && $header_available ) { + + $background_attrs = [ + 'class' => 'kenta-article-header-background alignfull mb-gutter', + ]; + + if ( is_customize_preview() ) { + $background_attrs['data-shortcut'] = 'border'; + $background_attrs['data-shortcut-location'] = $preview_location . ':' . $prefix . '_featured_image'; + } + + echo '
'; + kenta_show_article_feature_image( $preview_location, $prefix ); + echo '
'; + } + } + ?> + + +
> + false, + 'title_tag' => CZ::get( "{$prefix}_title_tag" ), + ] ); + ?> +
+ + +
'; + } + + if ( $featured_image_pos === 'below' ) { + kenta_show_article_feature_image( $preview_location, $prefix ); + } + } + ?> + Utils::clsx( apply_filters( 'kenta_article_content_classes', array( + 'kenta-article-content', + 'is-layout-constrained', + 'kenta-entry-content entry-content', + 'has-global-padding', + 'clearfix', + 'mx-auto' + ), $type ) ), + ]; + + if ( is_customize_preview() ) { + $content_attrs['data-shortcut'] = 'border'; + $content_attrs['data-shortcut-location'] = 'kenta_content'; + } + + ?> +
> + + + + +
> + + '', + ) ); + ?> +
+
+ [ + $id . 'text_color' => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-primary-active)', + ], + $id . 'button_color' => [ + 'initial' => 'var(--kenta-transparent)', + 'hover' => 'var(--kenta-transparent)', + ], + $id . 'border' => [ + 'style' => 'none', + ], + $id . 'shadow' => [ + 'enable' => 'no' + ], + $id . 'shadow_active' => [ + 'enable' => 'no' + ], + $id . 'padding' => [ + 'top' => '0px', + 'right' => '0px', + 'bottom' => '0px', + 'left' => '0px', + ], + ], + 'solid' => [ + $id . 'shadow_active' => [ + 'enable' => 'yes', + 'color' => 'var(--kenta-accent-color)', + 'horizontal' => '0', + 'vertical' => '5px', + 'blur' => '10px', + 'spread' => '-5px', + ], + ], + 'outline' => [ + $id . 'text_color' => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-base-color)', + ], + $id . 'button_color' => [ + 'initial' => 'var(--kenta-transparent)', + 'hover' => 'var(--kenta-primary-color)', + ], + $id . 'border' => [ + 'style' => 'solid', + 'width' => 1, + 'color' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + ], + 'invert' => [ + $id . 'button_color' => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + $id . 'border' => [ + 'style' => 'solid', + 'width' => 1, + 'color' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + ], + 'primary' => [ + $id . 'button_color' => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-primary-active)', + ], + $id . 'border' => [ + 'style' => 'solid', + 'width' => 1, + 'color' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-primary-active)', + ], + ], + 'accent' => [ + $id . 'button_color' => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-accent-active)', + ], + $id . 'border' => [ + 'style' => 'solid', + 'width' => 1, + 'color' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-accent-active)', + ], + $id . 'shadow_active' => [ + 'enable' => 'yes', + 'color' => 'var(--kenta-accent-active)', + 'horizontal' => '0', + 'vertical' => '5px', + 'blur' => '10px', + 'spread' => '-5px', + ], + ], + ]; + + return apply_filters( $id . 'preset_args', $presets[ $preset ] ?? [], $id, $preset ); + } +} + +if ( ! function_exists( 'kenta_card_style_preset_options' ) ) { + /** + * Card style options + * + * @return array + */ + function kenta_card_style_preset_options() { + return array( + 'ghost' => __( 'Ghost', 'kenta' ), + 'plain' => __( 'Plain', 'kenta' ), + 'bordered' => __( 'Bordered', 'kenta' ), + 'shadowed' => __( 'Shadowed', 'kenta' ), + 'mixed' => __( 'Mixed', 'kenta' ), + 'inner-shadow' => __( 'Inner Shadow', 'kenta' ), + 'inner-shadow-bordered' => __( 'Inner Shadow Bordered', 'kenta' ), + 'solid-shadow' => __( 'Solid Shadow', 'kenta' ), + 'active' => __( 'Active', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ); + } +} + +if ( ! function_exists( 'kenta_card_preset_style' ) ) { + function kenta_card_preset_style( $preset ) { + switch ( $preset ) { + case 'ghost': + return [ + 'background' => 'none', + 'border' => 'none', + 'box-shadow' => 'none', + ]; + case 'plain': + return [ + 'background' => 'var(--kenta-base-color)', + 'border' => 'none', + 'box-shadow' => 'none', + ]; + case 'bordered': + return [ + 'background' => 'var(--kenta-base-color)', + 'border' => '1px solid var(--kenta-base-300)', + 'box-shadow' => 'none', + ]; + case 'shadowed': + return [ + 'border' => 'none', + 'background' => 'var(--kenta-base-color)', + 'box-shadow' => '0 0 14px rgba(70,71,73,0.1)' + ]; + case 'mixed': + return [ + 'background' => 'var(--kenta-base-color)', + 'border' => '1px solid var(--kenta-base-300)', + 'box-shadow' => '0 0 14px rgba(70,71,73,0.1)' + ]; + case 'inner-shadow': + return [ + 'border' => 'none', + 'background' => 'var(--kenta-base-color)', + 'box-shadow' => 'rgba(44,62,80,0.25) 0px 20px 16px -15px' + ]; + case 'inner-shadow-bordered': + return [ + 'border' => '1px solid var(--kenta-base-300)', + 'background' => 'var(--kenta-base-color)', + 'box-shadow' => 'rgba(44,62,80,0.25) 0px 20px 16px -15px' + ]; + case 'solid-shadow': + return [ + 'border' => '2px solid var(--kenta-base-300)', + 'background' => 'var(--kenta-base-color)', + 'box-shadow' => 'var(--kenta-base-200) 10px 10px 0px 0px' + ]; + case 'active': + return [ + 'border' => 'none', + 'border-top' => '3px solid var(--kenta-primary-color)', + 'background' => 'var(--kenta-base-color)', + 'box-shadow' => '0 1px 2px rgba(70,71,73,0.15)' + ]; + } + + return array(); + } +} + +if ( ! function_exists( 'kenta_form_style_presets' ) ) { + /** + * @return array + */ + function kenta_form_style_presets() { + return [ + '.kenta-form-classic' => [], + '.kenta-form-modern' => [ + '--kenta-form-border-top' => 'none', + '--kenta-form-border-right' => 'none', + '--kenta-form-border-left' => 'none', + '--kenta-form-border-bottom' => '2px solid var(--kenta-form-border-color)', + '--kenta-form-checkbox-border-top' => '2px solid var(--kenta-form-background-color)', + '--kenta-form-checkbox-border-right' => '2px solid var(--kenta-form-background-color)', + '--kenta-form-checkbox-border-left' => '2px solid var(--kenta-form-background-color)', + '--kenta-form-checkbox-border-bottom' => '2px solid var(--kenta-form-border-color)', + ], + ]; + } +} + +if ( ! function_exists( 'kenta_get_current_post_meta' ) ) { + /** + * Get post meta value + * + * @param $id + * @param bool $single + * + * @return mixed + */ + function kenta_get_current_post_meta( $id, $single = true ) { + + global $post; + + if ( ! $post ) { + return ''; + } + + $meta = get_post_meta( $post->ID, $id, $single ); + $query = get_query_var( $id ); + + return ! empty( $query ) && ( $meta === 'default' || $meta === '' ) ? $query : $meta; + } +} + +if ( ! function_exists( 'kenta_is_transparent_header' ) ) { + /** + * Is transparent header or not + * + * @return bool + */ + function kenta_is_transparent_header() { + + $transparent = kenta_get_current_post_meta( 'site-transparent-header' ); + if ( $transparent === 'default' ) { + $transparent = CZ::checked( 'kenta_enable_transparent_header' ); + + if ( $transparent ) { + if ( is_archive() || is_home() || is_search() ) { + $transparent = ! CZ::checked( 'kenta_disable_archive_transparent_header' ); + } + + if ( is_page() && CZ::checked( 'kenta_disable_pages_transparent_header' ) ) { + $transparent = false; + } + + if ( is_single() && CZ::checked( 'kenta_disable_posts_transparent_header' ) ) { + $transparent = false; + } + + if ( KENTA_WOOCOMMERCE_ACTIVE && is_product() ) { + $transparent = false; + } + } + } else { + $transparent = $transparent === 'enable'; + } + + return apply_filters( 'kenta_filter_is_transparent_header', $transparent ); + } +} + +if ( ! function_exists( 'kenta_color_presets' ) ) { + /** + * Get kenta color presets + * + * @return array + */ + function kenta_color_presets() { + $presets = [ + 'preset-1' => [ + 'kenta-primary-color' => '#0258c7', + 'kenta-primary-active' => '#0e80e8', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'preset-2' => [ + 'kenta-primary-color' => '#f8c240', + 'kenta-primary-active' => '#e8950e', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'preset-3' => [ + 'kenta-primary-color' => '#7678ed', + 'kenta-primary-active' => '#5253cd', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'preset-4' => [ + 'kenta-primary-color' => '#00a4db', + 'kenta-primary-active' => '#096dd9', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'preset-5' => [ + 'kenta-primary-color' => '#dc2626', + 'kenta-primary-active' => '#b91c1c', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'preset-6' => [ + 'kenta-primary-color' => '#0d9488', + 'kenta-primary-active' => '#10b981', + 'kenta-accent-color' => '#181f28', + 'kenta-accent-active' => '#334155', + 'kenta-base-300' => '#e2e8f0', + 'kenta-base-200' => '#f1f5f9', + 'kenta-base-100' => '#f8fafc', + 'kenta-base-color' => '#ffffff', + ], + 'high-contrast' => [ + 'kenta-primary-color' => '#000000', + 'kenta-primary-active' => '#000000', + 'kenta-accent-color' => '#000000', + 'kenta-accent-active' => '#000000', + 'kenta-base-300' => '#000000', + 'kenta-base-200' => '#000000', + 'kenta-base-100' => '#ffffff', + 'kenta-base-color' => '#ffffff', + ], + ]; + + return apply_filters( 'kenta_filter_color_presets', $presets ); + } +} + +if ( ! function_exists( 'kenta_dark_color_presets' ) ) { + function kenta_dark_color_presets() { + $presets = [ + 'preset-1' => [ + 'kenta-primary-color' => '#0258c7', + 'kenta-primary-active' => '#0e80e8', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'preset-2' => [ + 'kenta-primary-color' => '#f8c240', + 'kenta-primary-active' => '#e8950e', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'preset-3' => [ + 'kenta-primary-color' => '#7678ed', + 'kenta-primary-active' => '#5253cd', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'preset-4' => [ + 'kenta-primary-color' => '#00a4db', + 'kenta-primary-active' => '#096dd9', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'preset-5' => [ + 'kenta-primary-color' => '#dc2626', + 'kenta-primary-active' => '#b91c1c', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'preset-6' => [ + 'kenta-primary-color' => '#0d9488', + 'kenta-primary-active' => '#10b981', + 'kenta-accent-color' => '#f3f4f6', + 'kenta-accent-active' => '#a3a9a3', + 'kenta-base-300' => '#353f49', + 'kenta-base-200' => '#2a323b', + 'kenta-base-100' => '#212a33', + 'kenta-base-color' => '#17212a', + ], + 'high-contrast' => [ + 'kenta-primary-color' => '#ffffff', + 'kenta-primary-active' => '#ffffff', + 'kenta-accent-color' => '#ffffff', + 'kenta-accent-active' => '#ffffff', + 'kenta-base-300' => '#ffffff', + 'kenta-base-200' => '#ffffff', + 'kenta-base-100' => '#000000', + 'kenta-base-color' => '#000000', + ], + ]; + + return apply_filters( 'kenta_filter_dark_color_presets', $presets ); + } +} + +if ( ! function_exists( 'kenta_show_archive_header' ) ) { + /** + * Show archive header + */ + function kenta_show_archive_header() { + + $should_show_archive_header = + ! ( is_home() && CZ::checked( 'kenta_disable_blogs_archive_header' ) ) + && ! ( is_search() && ! have_posts() ) + && ! ( kenta_is_woo_shop() && CZ::checked( 'kenta_disable_shop_archive_header' ) ); + + if ( ! apply_filters( 'kenta_should_show_archive_header', $should_show_archive_header ) ) { + return; + } + + $attrs = [ + 'class' => Utils::clsx( array( + 'kenta-archive-header has-global-padding' => true, + 'kenta-archive-header-has-overlay' => CZ::checked( 'kenta_archive_header_has_overlay' ), + ) ) + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_archive:kenta_archive_title'; + } + + ?> +
> +
+ +

+ ' . get_search_query() . '' ); + ?> +

+ +

+
+ ', '' ); + the_archive_description( '
', '
' ); + } + ?> +
+
+ Utils::clsx( [ + 'kenta-socials', + 'kenta-' . $type . '-socials', + 'kenta-socials-' . $color, + 'kenta-socials-' . $shape, + 'kenta-socials-' . $fill => $shape !== 'none', + ] ) + ]; + + if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = $location; + } + + $link_attrs = [ + 'class' => 'kenta-social-link', + ]; + + if ( CZ::checked( 'kenta_' . $type . '_share_box_open_new_tab' ) ) { + $link_attrs['target'] = '_blank'; + } + + if ( CZ::checked( 'kenta_' . $type . '_share_box_no_follow' ) ) { + $link_attrs['rel'] = 'nofollow'; + } + + $socials = CZ::repeater( 'kenta_social_networks' ); + ?> + + absint( CZ::get( 'kenta_scroll_reveal_delay' ) ), + 'duration' => absint( CZ::get( 'kenta_scroll_reveal_duration' ) ), + 'interval' => absint( CZ::get( 'kenta_scroll_reveal_interval' ) ), + 'opacity' => floatval( CZ::get( 'kenta_scroll_reveal_opacity' ) ), + 'scale' => floatval( CZ::get( 'kenta_scroll_reveal_scale' ) ), + 'origin' => CZ::get( 'kenta_scroll_reveal_origin' ), + 'distance' => CZ::get( 'kenta_scroll_reveal_distance' ), + ]; + } +} + +if ( ! function_exists( 'kenta_get_preloader' ) ) { + /** + * Get preloader + * + * @param $id + * + * @return array + */ + function kenta_get_preloader( $id ) { + $presets = [ + 'preset-1' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-1' => [ + 'width' => '48px', + 'height' => '48px', + 'margin' => 'auto', + 'border' => '3px solid var(--kenta-preloader-accent)', + 'border-radius' => '50%', + 'display' => 'inline-block', + 'position' => 'relative', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 1s linear infinite', + ], + '.kenta-preloader-1::after' => [ + 'content' => "''", + 'box-sizing' => 'border-box', + 'position' => 'absolute', + 'left' => '50%', + 'top' => '50%', + 'transform' => 'translate(-50%, -50%)', + 'width' => '40px', + 'height' => '40px', + 'border-radius' => '50%', + 'border' => '3px solid transparent', + 'border-bottom-color' => 'var(--kenta-preloader-primary)', + ], + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'transform' => 'rotate(0deg)' ], + '100%' => [ 'transform' => 'rotate(360deg)' ], + ], + ], + ], + 'preset-2' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-2' => [ + 'width' => '48px', + 'height' => '48px', + 'margin' => 'auto', + 'border' => '5px solid var(--kenta-preloader-accent)', + 'border-bottom-color' => 'var(--kenta-preloader-primary)', + 'border-radius' => '50%', + 'display' => 'inline-block', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 1s linear infinite', + ] + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'transform' => 'rotate(0deg)' ], + '100%' => [ 'transform' => 'rotate(360deg)' ], + ], + ], + ], + 'preset-3' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-3' => [ + 'width' => '48px', + 'height' => '48px', + 'margin' => 'auto', + 'border-radius' => '50%', + 'display' => 'inline-block', + 'position' => 'relative', + 'border' => '3px solid', + 'border-color' => 'var(--kenta-preloader-accent) var(--kenta-preloader-accent) transparent transparent', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 1s linear infinite', + ], + '.kenta-preloader-3::after,.kenta-preloader-3::before' => [ + 'content' => "''", + 'box-sizing' => 'border-box', + 'position' => 'absolute', + 'left' => '0', + 'right' => '0', + 'top' => '0', + 'bottom' => '0', + 'margin' => 'auto', + 'border' => '3px solid', + 'border-color' => 'transparent transparent var(--kenta-preloader-primary ) var(--kenta-preloader-primary )', + 'width' => '40px', + 'height' => '40px', + 'border-radius' => '50%', + 'animation' => 'rotationBack 0.5s linear infinite', + 'transform-origin' => 'center center', + ], + '.kenta-preloader-3::before' => [ + 'width' => '32px', + 'height' => '32px', + 'border-color' => 'var(--kenta-preloader-accent ) var(--kenta-preloader-accent ) transparent transparent', + 'animation' => 'rotation 1.5s linear infinite', + ], + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'transform' => 'rotate(0deg)' ], + '100%' => [ 'transform' => 'rotate(360deg)' ], + ], + 'rotationBack' => [ + '0%' => [ 'transform' => 'rotate(0deg)' ], + '100%' => [ 'transform' => 'rotate(-360deg)' ], + ], + ], + ], + 'preset-4' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-4' => [ + 'transform' => 'rotateZ(45deg)', + 'perspective' => '1000px', + 'border-radius' => '50%', + 'width' => '48px', + 'height' => '48px', + 'margin' => 'auto', + 'color' => 'var(--kenta-preloader-accent)', + ], + '.kenta-preloader-4::before,.kenta-preloader-4::after' => [ + 'content' => "''", + 'display' => 'block', + 'position' => 'absolute', + 'top' => '0', + 'left' => '0', + 'width' => 'inherit', + 'height' => 'inherit', + 'border-radius' => '50%', + 'transform' => 'rotateX(70deg)', + 'animation' => '1s spin linear infinite', + ], + '.kenta-preloader-4::after' => [ + 'color' => 'var(--kenta-preloader-primary)', + 'transform' => 'rotateY(70deg)', + 'animation-delay' => '.4s', + ] + ], + 'keyframes' => [ + 'rotate' => [ + '0%' => [ + 'transform' => 'translate(-50%, -50%) rotateZ(0deg)', + ], + '100%' => [ + 'transform' => 'translate(-50%, -50%) rotateZ(360deg)', + ], + ], + 'rotateccw' => [ + '0%' => [ + 'transform' => 'translate(-50%, -50%) rotate(0deg)', + ], + '100%' => [ + 'transform' => 'translate(-50%, -50%) rotate(-360deg)', + ], + ], + 'spin' => [ + '0%,' => [], + '100%' => [ + 'box-shadow' => '.2em 0px 0 0px currentcolor', + ], + '12%' => [ + 'box-shadow' => '.2em .2em 0 0 currentcolor', + ], + '25%' => [ + 'box-shadow' => '0 .2em 0 0px currentcolor', + ], + '37%' => [ + 'box-shadow' => '-.2em .2em 0 0 currentcolor', + ], + '50%' => [ + 'box-shadow' => '-.2em 0 0 0 currentcolor', + ], + '62%' => [ + 'box-shadow' => '-.2em -.2em 0 0 currentcolor', + ], + '75%' => [ + 'box-shadow' => '0px -.2em 0 0 currentcolor', + ], + '87%' => [ + 'box-shadow' => '.2em -.2em 0 0 currentcolor', + ], + ], + ], + ], + 'preset-5' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-5' => [ + 'width' => '48px', + 'height' => '48px', + 'margin' => 'auto', + 'border-radius' => '50%', + 'display' => 'inline-block', + 'border-top' => '4px solid var(--kenta-preloader-accent)', + 'border-right' => '4px solid transparent', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 1s linear infinite', + ], + '.kenta-preloader-5::after' => [ + 'content' => "''", + 'box-sizing' => 'border-box', + 'position' => 'absolute', + 'left' => '0', + 'top' => '0', + 'width' => '48px', + 'height' => '48px', + 'border-radius' => '50%', + 'border-left' => '4px solid var(--kenta-preloader-primary)', + 'border-bottom' => '4px solid transparent', + 'animation' => 'preloaderAnim 0.5s linear infinite reverse', + ], + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'transform' => 'rotate(0deg)' ], + '100%' => [ 'transform' => 'rotate(360deg)' ], + ] + ], + ], + 'preset-6' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-6' => [ + 'position' => 'relative', + 'margin' => 'auto', + 'border' => '24px solid var(--kenta-preloader-accent)', + 'border-radius' => '50%', + 'transform' => 'rotate(45deg)', + 'animation' => 'pieFill 3s linear infinite', + ] + ], + 'keyframes' => [ + 'pieFill' => [ + '0%, 19%' => [ 'border-color' => 'var(--kenta-preloader-accent) var(--kenta-preloader-accent) var(--kenta-preloader-accent) var(--kenta-preloader-accent)' ], + '20%, 39%' => [ 'border-color' => 'var(--kenta-preloader-primary) var(--kenta-preloader-accent) var(--kenta-preloader-accent) var(--kenta-preloader-accent)' ], + '40%, 59%' => [ 'border-color' => 'var(--kenta-preloader-primary) var(--kenta-preloader-primary) var(--kenta-preloader-accent) var(--kenta-preloader-accent)' ], + '60%, 79%' => [ 'border-color' => 'var(--kenta-preloader-primary) var(--kenta-preloader-primary) var(--kenta-preloader-primary) var(--kenta-preloader-accent)' ], + '80%, 100%' => [ 'border-color' => 'var(--kenta-preloader-primary) var(--kenta-preloader-primary) var(--kenta-preloader-primary) var(--kenta-preloader-primary)' ], + ], + ], + ], + 'preset-7' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-7' => [ + 'width' => '8px', + 'height' => '40px', + 'border-radius' => '4px', + 'display' => 'block', + 'margin' => '20px auto', + 'position' => 'relative', + 'background' => 'currentColor', + 'color' => 'var(--kenta-preloader-accent)', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 0.3s 0.3s linear infinite alternate', + ], + '.kenta-preloader-7::after, .kenta-preloader-7::before' => [ + 'content' => "''", + 'width' => '8px', + 'height' => '40px', + 'border-radius' => '4px', + 'background' => 'currentColor', + 'position' => 'absolute', + 'top' => '50%', + 'transform' => 'translateY(-50%)', + 'left' => '20px', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 0.3s 0.45s linear infinite alternate', + ], + '.kenta-preloader-7::before' => [ + 'left' => '-20px', + 'animation-delay' => '0s', + ], + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'height' => '48px' ], + '100%' => [ 'height' => '4px' ] + ], + ], + ], + 'preset-8' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-8' => [ + 'width' => '48px', + 'height' => '6px', + 'display' => 'block', + 'margin' => 'auto', + 'position' => 'relative', + 'border-radius' => '4px', + 'color' => 'var(--kenta-preloader-accent)', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 0.6s linear infinite', + ] + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'box-shadow' => '-10px 20px, 10px 35px, 0px 50px' ], + '25%' => [ 'box-shadow' => '0px 20px, 0px 35px, 10px 50px' ], + '50%' => [ 'box-shadow' => '10px 20px, -10px 35px, 0px 50px' ], + '75%' => [ 'box-shadow' => '0px 20px, 0px 35px, -10px 50px' ], + '100%' => [ 'box-shadow' => '-10px 20px, 10px 35px, 0px 50px' ], + ], + ], + ], + 'preset-9' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-9' => [ + 'width' => '8px', + 'height' => '48px', + 'margin' => 'auto', + 'display' => 'inline-block', + 'position' => 'relative', + 'border-radius' => '4px', + 'color' => 'var(--kenta-preloader-accent)', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 0.6s linear infinite', + ] + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'box-shadow' => '20px -10px, 40px 10px, 60px 0px' ], + '25%' => [ 'box-shadow' => '20px 0px, 40px 0px, 60px 10px' ], + '50%' => [ 'box-shadow' => '20px 10px, 40px -10px, 60px 0px' ], + '75%' => [ 'box-shadow' => '20px 0px, 40px 0px, 60px -10px' ], + '100%' => [ 'box-shadow' => '20px -10px, 40px 10px, 60px 0px' ], + ], + ], + ], + 'preset-10' => [ + 'html' => '
', + 'css' => [ + '.kenta-preloader-10' => [ + 'width' => '4.8px', + 'height' => '4.8px', + 'display' => 'block', + 'margin' => '20px auto', + 'position' => 'relative', + 'border-radius' => '4px', + 'color' => 'var(--kenta-preloader-accent)', + 'background' => 'currentColor', + 'box-sizing' => 'border-box', + 'animation' => 'preloaderAnim 0.3s 0.3s linear infinite alternate', + ], + '.kenta-preloader-10::after,.kenta-preloader-10::before' => [ + 'content' => "''", + 'box-sizing' => 'border-box', + 'width' => '4.8px', + 'height' => '4.8px', + 'border-radius' => '4px', + 'background' => 'currentColor', + 'position' => 'absolute', + 'left' => '50%', + 'transform' => 'translateX(-50%)', + 'top' => '15px', + 'animation' => 'preloaderAnim 0.3s 0.45s linear infinite alternate', + ], + '.kenta-preloader-10::after' => [ + 'top' => '-15px', + 'animation-delay' => '0s', + ], + ], + 'keyframes' => [ + 'preloaderAnim' => [ + '0%' => [ 'width' => '4.8px' ], + '100%' => [ 'width' => '48px' ] + ] + ], + ], + ]; + + return $presets[ $id ] ?? [ 'html' => '', 'css' => [] ]; + } +} diff --git a/wp-content/themes/kenta/inc/theme-setup.php b/wp-content/themes/kenta/inc/theme-setup.php new file mode 100644 index 0000000000..9654e70774 --- /dev/null +++ b/wp-content/themes/kenta/inc/theme-setup.php @@ -0,0 +1,511 @@ + tag in the document head, and expect WordPress to + * provide it for us. + */ + add_theme_support( 'title-tag' ); + + /* + * Enable support for Post Thumbnails on posts and pages. + * + * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ + */ + add_theme_support( 'post-thumbnails' ); + + // Support align wide + add_theme_support( 'align-wide' ); + + // Gutenberg custom stylesheet + add_theme_support( 'editor-styles' ); + add_editor_style( 'dist/css/editor-style' . ( defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min' ) . '.css' ); + + /* + * Switch default core markup for search form, comment form, and comments + * to output valid HTML5. + */ + add_theme_support( 'html5', array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + 'style', + 'script', + ) ); + + // Support responsive embeds + add_theme_support( "responsive-embeds" ); + + // Add theme support for selective refresh for widgets. + add_theme_support( 'customize-selective-refresh-widgets' ); + + // Starter Content + add_theme_support( 'starter-content', apply_filters( 'kenta_filter_starter_content', array( + 'widgets' => array( + 'primary-sidebar' => array( + 'search', + 'text_about', + 'text_business_info', + ), + 'kenta_footer_el_widgets_1' => array( + 'text_business_info', + ), + 'kenta_footer_el_widgets_2' => array( + 'text_about', + ), + 'kenta_footer_el_widgets_3' => array( + 'recent-posts', + 'categories', + ), + 'kenta_footer_el_widgets_4' => array( + 'search', + 'recent-comments', + ), + ), + 'posts' => array( + 'home' => array( + 'post_type' => 'page', + 'post_title' => __( 'Home', 'kenta' ), + 'post_content' => '', + ), + 'about', + 'contact', + 'blog', + ), + 'nav_menus' => array( + 'kenta_header_el_menu_1' => array( + 'name' => __( 'Header Menu #1', 'kenta' ), + 'items' => array( + 'link_home', + 'page_about', + 'page_contact', + 'page_blog', + 'post_news', + ), + ), + 'kenta_header_el_menu_2' => array( + 'name' => __( 'Header Menu #2', 'kenta' ), + 'items' => array( + 'link_home', + 'page_about', + 'page_contact', + 'page_blog', + 'post_news', + ), + ), + 'kenta_header_el_collapsable_menu' => array( + 'name' => __( 'Collapsable Menu', 'kenta' ), + 'items' => array( + 'link_home', + 'page_about', + 'page_contact', + 'page_blog', + 'post_news', + ), + ), + 'kenta_footer_el_menu' => array( + 'name' => __( 'Footer Menu', 'kenta' ), + 'items' => array( + 'page_about', + 'page_contact', + 'page_blog', + ), + ), + ), + ) ) ); + + // theme.json support + remove_theme_support( 'block-templates' ); +} + +add_action( 'after_setup_theme', 'kenta_setup' ); + +/** + * Register widget area. + * + * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar + */ +function kenta_widgets_init() { + $sidebar_class = 'kenta-widget clearfix %2$s'; + if ( CZ::checked( 'kenta_global_sidebar_scroll-reveal' ) ) { + $sidebar_class = 'kenta-scroll-reveal-widget ' . $sidebar_class; + } + + $title_class = 'widget-title mb-half-gutter heading-content'; + $tag = CZ::get( 'kenta_global_sidebar_title-tag' ) ?? 'h2'; + + register_sidebar( + array( + 'name' => esc_html__( 'Primary Sidebar', 'kenta' ), + 'id' => 'primary-sidebar', + 'description' => esc_html__( 'Add widgets here.', 'kenta' ), + 'before_widget' => '
', + 'after_widget' => '
', + 'before_title' => '<' . $tag . ' class="' . esc_attr( $title_class ) . '">', + 'after_title' => '', + ) + ); + + register_sidebar( + array( + 'name' => esc_html__( 'Store Sidebar', 'kenta' ), + 'id' => 'store-sidebar', + 'description' => esc_html__( 'Add widgets here.', 'kenta' ), + 'before_widget' => '
', + 'after_widget' => '
', + 'before_title' => '<' . $tag . ' class="' . esc_attr( $title_class ) . '">', + 'after_title' => '', + ) + ); +} + +add_action( 'widgets_init', 'kenta_widgets_init' ); + +/** + * Register post meta + * + * @return void + */ +function kenta_register_meta_settings() { + $object_subtype = apply_filters( 'kenta_filter_meta_object_subtype', '' ); + + register_post_meta( + $object_subtype, + 'site-container-style', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'site-container-layout', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'site-sidebar-layout', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'site-transparent-header', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'disable-article-header', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'disable-site-header', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'disable-site-footer', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); + + register_post_meta( + $object_subtype, + 'disable-content-area-spacing', + array( + 'show_in_rest' => true, + 'single' => true, + 'default' => 'default', + 'type' => 'string', + 'auth_callback' => '__return_true', + ) + ); +} + +add_action( 'init', 'kenta_register_meta_settings' ); + +/** + * Enqueue scripts and styles. + */ +function kenta_enqueue_scripts() { + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + $ver = defined( 'WP_DEBUG' ) && WP_DEBUG ? time() : KENTA_VERSION; + + // Vendors + wp_enqueue_style( 'lotta-fontawesome' ); + + wp_enqueue_style( + 'kenta-style', + get_template_directory_uri() . '/dist/css/style' . $suffix . '.css', + array(), + $ver + ); + + $asset_file = get_template_directory() . '/dist/js/app.asset.php'; + $asset = array(); + if ( file_exists( $asset_file ) ) { + $asset = require $asset_file; + } + + wp_enqueue_script( + 'kenta-script', + get_template_directory_uri() . '/dist/js/app' . $suffix . '.js', + $asset['dependencies'] ?? array(), + $asset['version'] ?? $ver, + true + ); + + kenta_enqueue_global_vars(); + kenta_enqueue_dynamic_css(); + kenta_enqueue_transparent_header_css(); + Fonts::enqueue_scripts( 'kenta_fonts', $ver ); + + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } +} + +add_action( 'wp_enqueue_scripts', 'kenta_enqueue_scripts', 20 ); + +/** + * Enqueue admin scripts & styles + * + * @return void + */ +function kenta_enqueue_admin_scripts() { + if ( is_customize_preview() ) { + return; + } + + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + $asset_file = get_template_directory() . '/dist/js/admin.asset.php'; + $asset = array(); + if ( file_exists( $asset_file ) ) { + $asset = require $asset_file; + } + + wp_register_script( + 'kenta-admin-script', + get_template_directory_uri() . '/dist/js/admin' . $suffix . '.js', + $asset['dependencies'] ?? array(), + $asset['version'] ?? KENTA_VERSION + ); + + // Theme admin scripts + wp_register_style( + 'kenta-admin-style', + get_template_directory_uri() . '/dist/css/admin' . $suffix . '.css', + [], + KENTA_VERSION + ); + + wp_enqueue_script( 'kenta-admin-script' ); + wp_enqueue_style( 'kenta-admin-style' ); + + // Admin script + wp_localize_script( 'kenta-admin-script', 'KentaAdmin', apply_filters( 'kenta_admin_localize_script', [ + 'install_cmp_url' => esc_url_raw( add_query_arg( array( + 'action' => 'kenta_install_companion', + '_wpnonce' => wp_create_nonce( 'kenta_install_companion' ) + ), admin_url( 'admin.php' ) ) ), + ] ) ); +} + +add_action( 'admin_enqueue_scripts', 'kenta_enqueue_admin_scripts', 9999 ); + +/** + * Add kenta theme settings panel & theme switch button in block editor + * + * @return void + */ +function kenta_enqueue_block_editor_assets() { + global $pagenow; + + if ( 'widgets.php' === $pagenow || is_customize_preview() ) { + return; + } + + kenta_enqueue_global_vars( [ + 'defaultScheme' => kenta_get_html_attributes( 'data-kenta-theme' ), + ] ); + + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + + $asset_file = get_template_directory() . '/dist/js/block-editor.asset.php'; + $asset = array(); + if ( file_exists( $asset_file ) ) { + $asset = require $asset_file; + } + + wp_register_script( + 'kenta-block-editor-scripts', + get_template_directory_uri() . '/dist/js/block-editor' . $suffix . '.js', + $asset['dependencies'] ?? array(), + $asset['version'] ?? KENTA_VERSION, + ); + + wp_enqueue_script( 'kenta-block-editor-scripts' ); +} + +add_action( 'enqueue_block_editor_assets', 'kenta_enqueue_block_editor_assets' ); + +/** + * Enqueue user-generated content (blocks) assets for all blocks, editor only. + * + * @return void + * @since 1.4.0 + */ +function kenta_block_editor_assets() { + Fonts::enqueue_scripts( 'kenta_fonts', KENTA_VERSION ); +} + +add_filter( 'enqueue_block_assets', 'kenta_block_editor_assets' ); + +/** + * Enqueue user-generated content (blocks) styles for all blocks, editor only. + * + * @param $settings + * + * @return array + * @since 1.4.0 + */ +function kenta_enqueue_block_editor_dynamic_css( $settings ) { + + $css = kenta_global_css_vars( ':root', '', kenta_get_html_attributes( 'data-kenta-theme' ) ); + $css .= kenta_block_editor_dynamic_css(); + + $settings['styles'][] = array( + 'css' => $css, + '__unstableType' => 'theme', + 'source' => 'kenta' + ); + + return $settings; +} + +if ( class_exists( 'WP_Block_Editor_Context' ) ) { + // WP 5.8+ + add_filter( 'block_editor_settings_all', 'kenta_enqueue_block_editor_dynamic_css' ); +} else { + add_filter( 'block_editor_settings', 'kenta_enqueue_block_editor_dynamic_css' ); +} + +/** + * Enqueue scripts and styles for customizer. + */ +function kenta_enqueue_customizer_scripts() { + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + + wp_enqueue_style( + 'kenta-customizer-style', + get_template_directory_uri() . '/dist/css/customizer' . $suffix . '.css', + array(), + KENTA_VERSION + ); + + wp_enqueue_script( + 'kenta-customizer-script', + get_template_directory_uri() . '/dist/js/customizer' . $suffix . '.js', + array( 'lotta-customizer-script', 'customize-controls', 'jquery' ), + KENTA_VERSION + ); + + // Customer script + wp_localize_script( 'kenta-customizer-script', 'KentaCustomizer', apply_filters( 'kenta_customizer_localize_script', [ + 'theme' => kenta_get_html_attributes( 'data-kenta-theme' ), + 'call_to_actions' => apply_filters( 'kenta_customizer_call_to_actions', [ + '#kenta_install_companion .button', + '#kenta_update_dynamic_css_cache .button', + ] ), + ] ) ); +} + +add_action( 'customize_controls_enqueue_scripts', 'kenta_enqueue_customizer_scripts', 10 ); + +function kenta_enqueue_customize_preview_scripts() { + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + + wp_enqueue_script( + 'kenta-customizer-preview-script', + get_template_directory_uri() . '/dist/js/customizer-preview' . $suffix . '.js', + array( 'customize-preview', 'customize-selective-refresh' ), + KENTA_VERSION + ); +} + +add_action( 'customize_preview_init', 'kenta_enqueue_customize_preview_scripts', 20 ); diff --git a/wp-content/themes/kenta/inc/traits.php b/wp-content/themes/kenta/inc/traits.php new file mode 100644 index 0000000000..fa00f7d253 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits.php @@ -0,0 +1,16 @@ + 'boxed', + 'layout' => 'normal', + 'preset' => 'ghost' + ] ); + + $article_type = $type === 'pages' ? 'page' : 'post'; + + $controls = [ + kenta_docs_control( __( '%sLearn how it works%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/article-content-options/article-container/' ), + ( new Radio( 'kenta_' . $type . '_container_style' ) ) + ->setLabel( __( 'Container Style', 'kenta' ) ) + ->setDefaultValue( $defaults['style'] ) + ->buttonsGroupView() + ->setChoices( [ + 'boxed' => __( 'Boxed', 'kenta' ), + 'fluid' => __( 'Fluid', 'kenta' ) + ] ) + , + ( new ImageRadio( 'kenta_' . $type . '_container_layout' ) ) + ->setLabel( __( 'Content Width', 'kenta' ) ) + ->setDefaultValue( $defaults['layout'] ) + ->asyncCss( '.kenta-site-wrap .kenta-container', [ + '--wp--style--global--content-size' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'normal' => 'var(--wp--style--global--wide-size)', + 'narrow' => '720px', + ] ) ) + ] ) + ->setChoices( [ + 'narrow' => [ + 'title' => __( 'Narrow', 'kenta' ), + 'src' => kenta_image_url( 'narrow.png' ), + ], + 'normal' => [ + 'title' => __( 'Normal', 'kenta' ), + 'src' => kenta_image_url( 'normal.png' ), + ], + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_' . $type . '_container_layout' => 'narrow' ] ) + ->setControls( [ + ( new Slider( 'kenta_' . $type . '_container_max_width' ) ) + ->setLabel( __( 'Content Max Width', 'kenta' ) ) + ->asyncCss( '.kenta-site-wrap .kenta-container', [ + '--wp--style--global--content-size' => 'value' + ] ) + ->setUnits( [ + [ 'unit' => 'px', 'min' => 500, 'max' => 1140 ], + [ 'unit' => '%', 'min' => 50, 'max' => 100 ], + ] ) + ->setDefaultValue( '720px' ) + ] ) + , + ( new Separator() ), + ( new Background( 'kenta_' . $type . '_site_background' ) ) + ->setLabel( __( 'Site Background', 'kenta' ) ) + ->asyncCss( ".kenta-{$type} .kenta-site-wrap", AsyncCss::background() ) + ->enableResponsive() + ->setDefaultValue( [ + 'type' => 'color', + 'color' => Css::INITIAL_VALUE, + ] ) + , + ( new Separator() ), + ( new Select( 'kenta_' . $article_type . '_content_style_preset' ) ) + ->setLabel( __( 'Container Style Preset', 'kenta' ) ) + ->setDefaultValue( $defaults['preset'] ) + ->bindSelectiveRefresh( 'kenta-global-selective-css' ) + ->setChoices( kenta_card_style_preset_options() ) + , + ]; + + return apply_filters( "kenta_{$article_type}_container_controls", $controls, $article_type, $defaults ); + } + + /** + * @return array + */ + protected function getHeaderControls( $type, $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'selective-refresh' => [ null ], + 'selector' => '', + 'elements' => [ + [ 'id' => 'categories', 'visible' => true ], + [ 'id' => 'title', 'visible' => true ], + [ 'id' => 'metas', 'visible' => true ], + [ 'id' => 'tags', 'visible' => false ], + ], + 'metas' => [], + ] ); + + return [ + kenta_docs_control( __( '%sLearn how it works%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/article-content-options/article-header/' ), + ( new Layers( 'kenta_' . $type . '_header_elements' ) ) + ->setLabel( __( 'Header Elements', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['elements'] ) + ->addLayer( 'title', __( 'Title', 'kenta' ), $this->getTitleLayerControls( $type, false, [ + 'selective-refresh' => $defaults['selective-refresh'], + 'selector' => $defaults['selector'], + 'tag' => 'h1', + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => [ 'desktop' => '3rem', 'tablet' => '2rem', 'mobile' => '1.875em' ], + 'variant' => '700', + 'lineHeight' => '1.25' + ] + ] ) ) + ->addLayer( 'metas', __( 'Metas', 'kenta' ), $this->getMetasControls( $type, array_merge( $defaults['metas'], [ + 'selective-refresh' => $defaults['selective-refresh'], + 'selector' => $defaults['selector'], + ] ) ) ) + ->addLayer( 'categories', __( 'Categories', 'kenta' ), $this->getTaxonomyControls( $type, '_cats', [ + 'selective-refresh' => $defaults['selective-refresh'], + 'selector' => $defaults['selector'], + 'style' => 'badge', + ] ) ) + ->addLayer( 'tags', __( 'Tags', 'kenta' ), $this->getTaxonomyControls( $type, '_tags', [ + 'selective-refresh' => $defaults['selective-refresh'], + 'selector' => $defaults['selector'], + ] ) ) + , + ( new ImageRadio( 'kenta_' . $type . '_header_alignment' ) ) + ->setLabel( __( 'Content Alignment', 'kenta' ) ) + ->asyncCss( $defaults['selector'], [ 'text-align' => 'value' ] ) + ->setDefaultValue( 'center' ) + ->inlineChoices() + ->setChoices( [ + 'left' => [ + 'src' => kenta_image( 'text-left' ), + 'title' => __( 'Left', 'kenta' ), + ], + 'center' => [ + 'src' => kenta_image( 'text-center' ), + 'title' => __( 'Center', 'kenta' ), + ], + 'right' => [ + 'src' => kenta_image( 'text-right' ), + 'title' => __( 'Right', 'kenta' ), + ] + ] ) + , + ( new Separator() ), + ( new Spacing( 'kenta_' . $type . '_header_spacing' ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->asyncCss( $defaults['selector'], AsyncCss::dimensions( 'padding' ) ) + ->setDisabled( [ 'left', 'right' ] ) + ->setDefaultValue( [ + 'top' => '48px', + 'right' => '0px', + 'bottom' => '48px', + 'left' => '0px', + 'linked' => true, + ] ) + , + ]; + } + + /** + * @return array + */ + protected function getFeaturedImageControls( $type, $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'selective-refresh' => [ null ], + 'selector' => '', + 'image-position' => 'below', + ] ); + + $behind_controls = [ + ( new ColorPicker( 'kenta_' . $type . '_featured_image_elements_override' ) ) + ->setLabel( __( 'Header Color Override', 'kenta' ) ) + ->asyncColors( '.kenta-article-header-background', [ + 'override' => '--kenta-article-header-override', + ] ) + ->addColor( 'override', __( 'Override', 'kenta' ), Css::INITIAL_VALUE ) + , + ( new Separator() ), + ( new Slider( 'kenta_' . $type . '_featured_image_background_overlay_opacity' ) ) + ->setLabel( __( 'Overlay Opacity', 'kenta' ) ) + ->asyncCss( '.kenta-article-header-background::after', [ 'opacity' => 'value' ] ) + ->setMin( 0 ) + ->setMax( 1 ) + ->setDecimals( 2 ) + ->setDefaultUnit( false ) + ->setDefaultValue( 0.6 ) + , + ( new Background( 'kenta_' . $type . '_featured_image_background_overlay' ) ) + ->setLabel( __( 'Header Overlay', 'kenta' ) ) + ->asyncCss( '.kenta-article-header-background::after', AsyncCss::background() ) + ->setDefaultValue( [ + 'type' => 'gradient', + 'gradient' => 'linear-gradient(-225deg, rgb(227, 253, 245) 0%, rgb(255, 230, 250) 100%)', + 'color' => 'rgba(24,31,41,0.45)', + ] ) + , + ( new Separator() ), + ( new Spacing( 'kenta_' . $type . '_featured_image_background_spacing' ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->asyncCss( '.kenta-article-header-background', AsyncCss::dimensions( 'padding' ) ) + ->enableResponsive() + ->setDefaultValue( [ + 'top' => '68px', + 'right' => '0px', + 'bottom' => '68px', + 'left' => '0px', + 'linked' => false, + ] ) + , + ]; + + $non_behind_controls = [ + ( new Radio( 'kenta_' . $type . '_featured_image_width' ) ) + ->setLabel( __( 'Image Width', 'kenta' ) ) + ->buttonsGroupView() + ->setDefaultValue( 'wide' ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setChoices( [ + 'default' => __( 'Default', 'kenta' ), + 'wide' => __( 'Wide', 'kenta' ), + 'full' => __( 'Full', 'kenta' ), + ] ) + , + ( new Slider( 'kenta_' . $type . '_featured_image_height' ) ) + ->setLabel( __( 'Image Height', 'kenta' ) ) + ->asyncCss( $defaults['selector'] . ' img', array( 'height' => 'value' ) ) + ->setUnits( [ + [ 'unit' => 'px', 'min' => 100, 'max' => 1000 ], + [ 'unit' => '%', 'min' => 10, 'max' => 100 ], + ] ) + ->setDefaultValue( '100%' ) + , + ( new Separator() ), + ( new Spacing( 'kenta_' . $type . '_featured_image_spacing' ) ) + ->setLabel( __( 'Spacing', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( $defaults['selector'], AsyncCss::dimensions( 'padding' ) ) + ->setDisabled( [ 'left', 'right' ] ) + ->setDefaultValue( [ + 'top' => '12px', + 'right' => '0px', + 'bottom' => '12px', + 'left' => '0px', + 'linked' => true, + ] ) + , + ]; + + $controls = [ + kenta_docs_control( __( '%sLearn how it works%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/article-content-options/article-header/' ), + ( new ImageUploader( 'kenta_' . $type . '_featured_image_fallback' ) ) + ->setLabel( __( 'Image Fallback', 'kenta' ) ) + ->setDescription( __( 'If the current post does not have a featured image, then this image will be displayed.', 'kenta' ) ) + ->setDefaultValue( '' ) + , + ( new Select( 'kenta_' . $type . '_featured_image_size' ) ) + ->setLabel( __( 'Image Size', 'kenta' ) ) + ->setDefaultValue( 'full' ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setChoices( kenta_image_size_options( false ) ) + , + ( new Separator() ), + ( new ImageRadio( 'kenta_' . $type . '_featured_image_position' ) ) + ->setLabel( __( 'Image Position', 'kenta' ) ) + ->setColumns( 3 ) + ->setDefaultValue( $defaults['image-position'] ) + ->setChoices( [ + 'above' => [ + 'src' => kenta_image_url( 'above-header.png' ), + ], + 'below' => [ + 'src' => kenta_image_url( 'below-header.png' ), + ], + 'behind' => [ + 'src' => kenta_image_url( 'behind-header.png' ), + ], + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_' . $type . '_featured_image_position' => 'behind' ] ) + ->setControls( apply_filters( "kenta_{$type}_behind_featured_image_controls", $behind_controls ) ) + ->setReverseControls( apply_filters( "kenta_{$type}_non_behind_featured_image_controls", $non_behind_controls ) ) + , + ( new Filters( 'kenta_' . $type . '_featured_image_filter' ) ) + ->setLabel( __( 'Css Filter', 'kenta' ) ) + ->asyncCss( [ + $defaults['selector'] . ' img', + '.kenta-article-header-background img' + ], AsyncCss::filters() ) + , + ]; + + return apply_filters( "kenta_{$type}_featured_image_controls", $controls ); + } + } + +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/traits/trait-button-controls.php b/wp-content/themes/kenta/inc/traits/trait-button-controls.php new file mode 100644 index 0000000000..3950c46cf5 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-button-controls.php @@ -0,0 +1,175 @@ + '', + 'button-selective' => [], + 'label' => __( 'Button', 'kenta' ), + 'show-arrow' => 'no', + 'arrow-dir' => 'left', + 'arrow' => [ + 'library' => 'fa-solid', + 'value' => 'fas fa-star', + ], + ] ); + + return [ + ( new Text( $id . 'text' ) ) + ->setLabel( __( 'Label', 'kenta' ) ) + ->asyncText( $defaults['button-selector'] . ' .kenta-button-text' ) + ->displayInline() + ->setDefaultValue( $defaults['label'] ) + , + ( new Toggle( $id . 'show_arrow' ) ) + ->setLabel( __( 'Show Icon', 'kenta' ) ) + ->selectiveRefresh( $defaults['button-selector'] . ' .kenta-button-icon', function () use ( $id ) { + if ( CZ::checked( $id . 'show_arrow' ) ) { + IconsManager::print( CZ::get( $id . 'arrow' ) ); + } + } ) + ->setDefaultValue( $defaults['show-arrow'] ) + , + ( new Condition() ) + ->setCondition( [ $id . 'show_arrow' => 'yes' ] ) + ->setControls( [ + ( new Icons( $id . 'arrow' ) ) + ->setLabel( __( 'Choose Icon', 'kenta' ) ) + ->selectiveRefresh( $defaults['button-selector'] . ' .kenta-button-icon', function () use ( $id ) { + IconsManager::print( CZ::get( $id . 'arrow' ) ); + } ) + ->setDefaultValue( $defaults['arrow'] ) + , + ( new Radio( $id . 'arrow_dir' ) ) + ->setLabel( __( 'Icon Direction', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['button-selective'] ) + ->setDefaultValue( $defaults['arrow-dir'] ) + ->buttonsGroupView() + ->setChoices( [ + 'left' => __( 'Left', 'kenta' ), + 'right' => __( 'Right', 'kenta' ) + ] ) + , + ] ) + , + ]; + } + + /** + * @param string $id + * @param array $defaults + * + * @return array + */ + protected function getButtonStyleControls( $id = '', $defaults = [] ) { + + $defaults = wp_parse_args( $defaults, [ + 'button-selector' => null, + 'button-css-selective' => '', + 'preset' => 'solid', + 'text-initial' => 'var(--kenta-base-color)', + 'text-hover' => 'var(--kenta-base-color)', + 'button-initial' => 'var(--kenta-primary-color)', + 'button-hover' => 'var(--kenta-accent-color)', + 'border-initial' => 'var(--kenta-primary-color)', + 'border-hover' => 'var(--kenta-accent-color)', + 'min-height' => '32px', + 'border' => [ 1, 'solid' ], + 'preset-options' => [ + 'ghost' => __( 'Ghost', 'kenta' ), + 'solid' => __( 'Solid', 'kenta' ), + 'outline' => __( 'Outline', 'kenta' ), + 'invert' => __( 'Invert', 'kenta' ), + 'primary' => __( 'Primary', 'kenta' ), + 'accent' => __( 'Accent', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ], + 'shadow' => [ + 'var(--kenta-primary-color)', + '0px', + '5px', + '10px', + '-5px', + false + ], + 'shadow-active' => [ + 'var(--kenta-primary-color)', + '0px', + '5px', + '10px', + '-5px', + true + ], + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => '0.75rem', + 'variant' => '500', + 'lineHeight' => '1', + 'textTransform' => 'capitalize' + ], + 'border-radius' => [ + 'linked' => true, + 'left' => '2px', + 'right' => '2px', + 'top' => '2px', + 'bottom' => '2px', + ], + 'padding' => [ + 'top' => '0.85em', + 'right' => '1.25em', + 'bottom' => '0.85em', + 'left' => '1.25em', + ], + ] ); + + $selector = $defaults['button-selector']; + + $controls = [ + ( new Slider( $id . 'min_height' ) ) + ->setLabel( __( 'Min Height', 'kenta' ) ) + ->asyncCss( $selector, [ '--kenta-button-height' => 'value' ] ) + ->enableResponsive() + ->setMin( 30 ) + ->setMax( 100 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['min-height'] ) + , + ( new Separator() ), + ( new Select( $id . 'preset' ) ) + ->setLabel( __( 'Button Style Presets', 'kenta' ) ) + ->bindSelectiveRefresh( $defaults['button-css-selective'] ) + ->setDefaultValue( $defaults['preset'] ) + ->setChoices( apply_filters( 'kenta_button_preset_options', $defaults['preset-options'] ) ) + , + ]; + + return apply_filters( 'kenta_button_style_controls', $controls, $id, $defaults ); + } + } +} diff --git a/wp-content/themes/kenta/inc/traits/trait-global-color-controls.php b/wp-content/themes/kenta/inc/traits/trait-global-color-controls.php new file mode 100644 index 0000000000..8bc8c93b6a --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-global-color-controls.php @@ -0,0 +1,79 @@ + Css::INITIAL_VALUE, + 'primary_active' => Css::INITIAL_VALUE, + 'accent_color' => Css::INITIAL_VALUE, + 'accent_active' => Css::INITIAL_VALUE, + 'base_color' => Css::INITIAL_VALUE, + 'base_50' => Css::INITIAL_VALUE, + 'base_100' => Css::INITIAL_VALUE, + 'base_200' => Css::INITIAL_VALUE, + 'base_300' => Css::INITIAL_VALUE, + ] ); + + return [ + kenta_docs_control( __( '%sRead Documentation%s', 'kenta' ), 'https://kentatheme.com/docs/kenta-theme/header-footer-builder/override-global-colors/' ), + + ( new ColorPicker( $id . 'primary_color' ) ) + ->setLabel( __( 'Primary Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->asyncColors( $selector, [ + 'default' => '--kenta-primary-color', + 'active' => '--kenta-primary-active', + ] ) + ->addColor( 'default', __( 'Default', 'kenta' ), $defaults['primary_color'] ) + ->addColor( 'active', __( 'Active', 'kenta' ), $defaults['primary_active'] ) + , + ( new ColorPicker( $id . 'accent_color' ) ) + ->setLabel( __( 'Accent Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->asyncColors( $selector, [ + 'default' => '--kenta-accent-color', + 'active' => '--kenta-accent-active', + ] ) + ->addColor( 'default', __( 'Default', 'kenta' ), $defaults['accent_color'] ) + ->addColor( 'active', __( 'Active', 'kenta' ), $defaults['accent_active'] ) + , + ( new ColorPicker( $id . 'base_color' ) ) + ->setLabel( __( 'Base Color', 'kenta' ) ) + ->enableAlpha() + ->computedValue() + ->asyncColors( $selector, [ + 'default' => '--kenta-base-color', + '100' => '--kenta-base-100', + '200' => '--kenta-base-200', + '300' => '--kenta-base-300', + ] ) + ->addColor( '300', __( 'Base 300', 'kenta' ), $defaults['base_300'] ) + ->addColor( '200', __( 'Base 200', 'kenta' ), $defaults['base_200'] ) + ->addColor( '100', __( 'Base 100', 'kenta' ), $defaults['base_100'] ) + ->addColor( 'default', __( 'Base Color', 'kenta' ), $defaults['base_color'] ) + , + ]; + } + + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/inc/traits/trait-icon-button-controls.php b/wp-content/themes/kenta/inc/traits/trait-icon-button-controls.php new file mode 100644 index 0000000000..a2544479b0 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-icon-button-controls.php @@ -0,0 +1,161 @@ + '14px', + 'selector' => '', + ] ); + + $controls = [ + ( new Slider( $this->getSlug( 'icon_button_size' ) ) ) + ->setLabel( __( 'Icon Size', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( $defaults['selector'], [ + '--kenta-icon-button-size' => 'value', + 'font-size' => 'value' + ] ) + ->setDefaultValue( $defaults['size'] ) + ->setMin( 5 ) + ->setMax( 50 ) + ->setDefaultUnit( 'px' ) + , + ]; + + return apply_filters( 'kenta_icon_button_controls', $controls, $this->getSlug(), $defaults ); + } + + protected function getIconStyleControls( $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'preset' => 'default', + 'render-callback' => [ null ], + 'css-selective-refresh' => '', + 'selector' => '', + 'shape' => 'none', + 'fill' => 'solid', + 'icon-initial' => 'var(--kenta-accent-color)', + 'icon-hover' => 'var(--kenta-primary-color)', + 'bg-initial' => 'var(--kenta-primary-color)', + 'bg-hover' => 'var(--kenta-accent-color)', + 'border-initial' => 'var(--kenta-accent-color)', + 'border-hover' => 'var(--kenta-primary-color)', + ] ); + + $controls = [ + ( new Select( $this->getSlug( 'icon_button_preset' ) ) ) + ->setLabel( __( 'Icon Style Preset', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['render-callback'] ) + ->bindSelectiveRefresh( $defaults['css-selective-refresh'] ) + ->setDefaultValue( $defaults['preset'] ) + ->setChoices( apply_filters( 'kenta_icon_button_preset_options', [ + 'ghost' => __( 'Ghost', 'kenta' ), + 'square-solid' => __( 'Square Solid', 'kenta' ), + 'square-outline' => __( 'Square Outline', 'kenta' ), + 'rounded-solid' => __( 'Rounded Solid', 'kenta' ), + 'rounded-outline' => __( 'Rounded Outline', 'kenta' ), + 'custom' => __( 'Custom (Premium)', 'kenta' ), + ] ) ) + , + ]; + + return apply_filters( 'kenta_icon_button_style_controls', $controls, $this->getSlug(), $defaults ); + } + + protected function getIconButtonPreset( $preset ) { + $solid = [ + $this->getSlug( 'icon_button_shape_fill_type' ) => 'solid', + $this->getSlug( 'icon_button_icon_color' ) => [ + 'initial' => 'var(--kenta-base-color)', + 'hover' => 'var(--kenta-base-color)', + ], + $this->getSlug( 'icon_button_bg_color' ) => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-accent-color)', + ], + $this->getSlug( 'icon_button_border_color' ) => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-accent-color)', + ], + ]; + + $outline = [ + $this->getSlug( 'icon_button_shape_fill_type' ) => 'outline', + $this->getSlug( 'icon_button_icon_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + $this->getSlug( 'icon_button_bg_color' ) => [ + 'initial' => 'var(--kenta-primary-color)', + 'hover' => 'var(--kenta-accent-color)', + ], + $this->getSlug( 'icon_button_border_color' ) => [ + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ], + ]; + + $presets = [ + 'ghost' => array_merge( $outline, [ + $this->getSlug( 'icon_button_icon_shape' ) => 'none', + ] ), + 'square-solid' => array_merge( $solid, [ + $this->getSlug( 'icon_button_icon_shape' ) => 'square', + ] ), + 'square-outline' => array_merge( $outline, [ + $this->getSlug( 'icon_button_icon_shape' ) => 'square', + ] ), + 'rounded-solid' => array_merge( $solid, [ + $this->getSlug( 'icon_button_icon_shape' ) => 'rounded', + ] ), + 'rounded-outline' => array_merge( $outline, [ + $this->getSlug( 'icon_button_icon_shape' ) => 'rounded', + ] ), + ]; + + return $presets[ $preset ] ?? []; + } + + public function getIconButtonCss() { + $preset = $this->getIconButtonPreset( CZ::get( $this->getSlug( 'icon_button_preset' ) ) ); + + return array_merge( + Css::colors( CZ::get( $this->getSlug( 'icon_button_icon_color' ), $preset ), [ + 'initial' => '--kenta-icon-button-icon-initial-color', + 'hover' => '--kenta-icon-button-icon-hover-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'icon_button_bg_color' ), $preset ), [ + 'initial' => '--kenta-icon-button-bg-initial-color', + 'hover' => '--kenta-icon-button-bg-hover-color', + ] ), + Css::colors( CZ::get( $this->getSlug( 'icon_button_border_color' ), $preset ), [ + 'initial' => '--kenta-icon-button-border-initial-color', + 'hover' => '--kenta-icon-button-border-hover-color', + ] ), + [ + '--kenta-icon-button-size' => CZ::get( $this->getSlug( 'icon_button_size' ) ), + 'font-size' => CZ::get( $this->getSlug( 'icon_button_size' ) ) + ] + ); + } + } +} diff --git a/wp-content/themes/kenta/inc/traits/trait-particles-effect.php b/wp-content/themes/kenta/inc/traits/trait-particles-effect.php new file mode 100644 index 0000000000..fb19f79713 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-particles-effect.php @@ -0,0 +1,217 @@ + apply_filters( 'kenta_particles_effect_css', [ + '--kenta-particles-canvas-z-index' => CZ::get( $prefix . 'particle_canvas_z_index' ), + ], $prefix ) + ]; + } + + /** + * Render particles canvas element + * + * @param $prefix + * @param string $id + */ + protected function renderParticlesCanvas( $prefix, $id = '' ) { + if ( ! Utils::str_ends_with( $prefix, '_' ) ) { + $prefix .= '_'; + } + if ( ! CZ::checked( $prefix . 'enable_particles' ) ) { + return; + } + + $options = apply_filters( + 'kenta_particles_effect_options', + $this->particles_presets[ CZ::get( $prefix . 'particle_preset' ) ] ?? '', + $prefix + ); + + if ( empty( $options ) ) { + return; + } + + wp_enqueue_script( 'particles.js' ); + + $attrs = apply_filters( 'kenta_particles_canvas_attrs', [ + 'class' => Utils::clsx( [ + 'kenta-particles-canvas' => true, + $prefix . 'particles_canvas' => true, + $id => $id !== '', + ] ), + 'id' => $id === '' ? $prefix . 'particles' : $id, + 'data-kenta-particles' => $options, + // override global options + 'data-kenta-particle-detect-on' => CZ::get( $prefix . 'particle_detect_on' ), + 'data-kenta-particle-color' => CZ::get( $prefix . 'particle_color' )['particle'], + 'data-kenta-particle-line-color' => CZ::get( $prefix . 'particle_color' )['line'] ?? '', + ], $prefix ); + + echo '
'; + } + + /** + * Particles effect related controls + * + * @param $prefix + * @param array $exclude + * + * @return array + */ + protected function getParticleEffectControls( $prefix, $exclude = [] ) { + + if ( ! Utils::str_ends_with( $prefix, '_' ) ) { + $prefix .= '_'; + } + + $controls = []; + if ( ! in_array( 'enable', $exclude ) ) { + $controls[] = ( new Toggle( $prefix . 'enable_particles' ) ) + ->setLabel( __( 'Enable Particles Effect', 'kenta' ) ) + ->closeByDefault(); + } + + // z-index & source + $controls[] = ( new Condition() ) + ->setCondition( [ $prefix . 'enable_particles' => 'yes' ] ) + ->setControls( [ + ( new Number( $prefix . 'particle_canvas_z_index' ) ) + ->setLabel( __( 'Z Index', 'kenta' ) ) + ->asyncCss( ".{$prefix}particles_canvas", [ '--kenta-particles-canvas-z-index' => 'value' ] ) + ->setMin( - 99999 ) + ->setMax( 99999 ) + ->setDefaultUnit( false ) + ->setDefaultValue( 1 ) + , + ( new Radio( $prefix . 'particle_source' ) ) + ->setLabel( __( 'Particle Source', 'kenta' ) ) + ->setDefaultValue( 'preset' ) + ->buttonsGroupView() + ->setChoices( [ + 'preset' => __( 'Preset', 'kenta' ), + 'custom' => __( 'Custom', 'kenta' ), + ] ) + , + ] ); + + // Particles preset + $controls[] = ( new Condition() ) + ->setCondition( [ + $prefix . 'enable_particles' => 'yes', + $prefix . 'particle_source' => 'preset', + ] ) + ->setControls( [ + ( new Select( $prefix . 'particle_preset' ) ) + ->setLabel( __( 'Choose Particle Preset', 'kenta' ) ) + ->setDefaultValue( 'default' ) + ->setChoices( apply_filters( 'kenta_particles_effect_presets_options', [ + 'default' => __( 'Default', 'kenta' ), + 'gather' => __( 'Gather', 'kenta' ), + 'parallax' => __( 'Parallax', 'kenta' ), + 'nasa' => __( 'NASA', 'kenta' ), + 'polygon-bubble' => __( 'Polygon Bubble', 'kenta' ), + 'circle-bubble' => __( 'Circle Bubble', 'kenta' ), + 'snow' => __( 'Snow', 'kenta' ), + 'fire-spark' => __( 'Fire Spark', 'kenta' ), + 'nyancat' => __( 'Nyan Cat', 'kenta' ), + ] ) ) + , + ] ); + + // Custom particles + $controls[] = ( new Condition() ) + ->setCondition( [ + $prefix . 'enable_particles' => 'yes', + $prefix . 'particle_source' => 'custom', + ] ) + ->setControls( apply_filters( 'kenta_particles_custom_json_controls', [ + kenta_upsell_info_control( + __( "You can customize your particles effect using the online editor in %sPro Version%s", 'kenta' ), + $prefix . 'particles_custom_json_upsell' + ), + ], $prefix ) ); + + // Particles override + $controls[] = ( new Condition() ) + ->setCondition( [ $prefix . 'enable_particles' => 'yes' ] ) + ->setControls( apply_filters( 'kenta_particles_override_controls', [ + ( new Radio( $prefix . 'particle_detect_on' ) ) + ->setLabel( __( 'Interactivity Detect On', 'kenta' ) ) + ->setDefaultValue( 'default' ) + ->buttonsGroupView() + ->setChoices( [ + 'default' => __( 'Default', 'kenta' ), + 'window' => __( 'Window', 'kenta' ), + 'canvas' => __( 'Canvas', 'kenta' ), + ] ) + , + ( new ColorPicker( $prefix . 'particle_color' ) ) + ->setLabel( __( 'Particle Color', 'kenta' ) ) + ->addColor( 'particle', __( 'Particle Color', 'kenta' ), 'var(--kenta-primary-color)' ) + ->addColor( 'line', __( 'Line Color', 'kenta' ), 'var(--kenta-primary-color)' ) + , + kenta_upsell_info_control( + __( "More particle options available in %sPro Version%s", 'kenta' ), + $prefix . 'particles_override_options_upsell' + ), + ], $prefix ) ); + + return apply_filters( 'kenta_particles_effect_controls', $controls, $prefix, $exclude ); + } + + } + +} diff --git a/wp-content/themes/kenta/inc/traits/trait-post-card.php b/wp-content/themes/kenta/inc/traits/trait-post-card.php new file mode 100644 index 0000000000..ed4193b5a1 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-post-card.php @@ -0,0 +1,103 @@ + '.card', + 'scroll-reveal' => 'yes', + 'content-spacing' => '24px', + 'thumbnail-spacing' => '0px', + 'text' => 'left', + 'vertical' => 'center', + 'thumb-motion' => 'yes', + ] ); + + return [ + ( new Toggle( $prefix . 'card_scroll_reveal' ) ) + ->setLabel( __( 'Enable Scroll Reveal', 'kenta' ) ) + ->setDefaultValue( $defaults['scroll-reveal'] ) + , + ( new Slider( $prefix . 'card_content_spacing' ) ) + ->setLabel( __( 'Content Spacing', 'kenta' ) ) + ->asyncCss( $defaults['selector'], [ '--card-content-spacing' => 'value' ] ) + ->enableResponsive() + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['content-spacing'] ) + , + ( new Slider( $prefix . 'card_thumbnail_spacing' ) ) + ->setLabel( __( 'Thumbnail Spacing', 'kenta' ) ) + ->asyncCss( $defaults['selector'], [ '--card-thumbnail-spacing' => 'value' ] ) + ->enableResponsive() + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['thumbnail-spacing'] ) + , + ( new Separator() ), + ( new ImageRadio( $prefix . 'card_content_alignment' ) ) + ->setLabel( __( 'Content Alignment', 'kenta' ) ) + ->asyncCss( $defaults['selector'], [ 'text-align' => 'value' ] ) + ->enableResponsive() + ->inlineChoices() + ->setDefaultValue( $defaults['text'] ) + ->setChoices( [ + 'left' => [ + 'src' => kenta_image( 'text-left' ), + 'title' => __( 'Left', 'kenta' ) + ], + 'center' => [ + 'src' => kenta_image( 'text-center' ), + 'title' => __( 'Center', 'kenta' ) + ], + 'right' => [ + 'src' => kenta_image( 'text-right' ), + 'title' => __( 'Right', 'kenta' ) + ], + ] ) + , + ]; + } + + protected function getCardStyleControls( $prefix = '', $defaults = [] ) { + + $defaults = wp_parse_args( $defaults, [ + 'preset' => 'plain', + 'selective' => '' + ] ); + + return [ + ( new Select( $prefix . 'card_style_preset' ) ) + ->setLabel( __( 'Card Style', 'kenta' ) ) + ->setDefaultValue( $defaults['preset'] ) + ->bindSelectiveRefresh( $defaults['selective'] ) + ->setChoices( kenta_card_style_preset_options() ) + , + ]; + } + } +} diff --git a/wp-content/themes/kenta/inc/traits/trait-post-structure.php b/wp-content/themes/kenta/inc/traits/trait-post-structure.php new file mode 100644 index 0000000000..0066c18bd1 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-post-structure.php @@ -0,0 +1,381 @@ + [], + 'selective-refresh' => [ null ], + 'selector' => '', + 'value' => [ + [ 'id' => 'categories', 'visible' => true ], + [ 'id' => 'title', 'visible' => true ], + [ 'id' => 'metas', 'visible' => true ], + [ 'id' => 'thumbnail', 'visible' => true ], + [ 'id' => 'excerpt', 'visible' => true ], + [ 'id' => 'read-more', 'visible' => true ], + ], + 'title' => [], + 'cats' => [], + 'tags' => [], + 'metas' => [], + 'thumbnail' => [], + 'read-more' => [], + 'divider' => [], + 'excerpt' => [ + 'length' => 20 + ], + ] ); + + $selective_refresh = $defaults['selective-refresh']; + $layer = ( new Layers( $id ) )->hideLabel()->setDefaultValue( $defaults['value'] ); + $layer->selectiveRefresh( ...$selective_refresh ); + + $exclude = $defaults['exclude']; + + $layer_defaults = [ 'selective-refresh' => $selective_refresh, 'selector' => $defaults['selector'] ]; + + if ( ! in_array( 'title', $exclude ) ) { + $layer->addLayer( 'title', __( 'Title', 'kenta' ), $this->getTitleLayerControls( $layer_id, true, array_merge( $layer_defaults, $defaults['title'] ) ) ); + } + if ( ! in_array( 'categories', $exclude ) ) { + $layer->addLayer( 'categories', __( 'Categories', 'kenta' ), $this->getTaxonomyControls( $layer_id, '_cats', array_merge( $layer_defaults, $defaults['cats'] ) ) ); + } + if ( ! in_array( 'tags', $exclude ) ) { + $layer->addLayer( 'tags', __( 'Tags', 'kenta' ), $this->getTaxonomyControls( $layer_id, '_tags', array_merge( $layer_defaults, $defaults['tags'] ) ) ); + } + if ( ! in_array( 'thumbnail', $exclude ) ) { + $layer->addLayer( 'thumbnail', __( 'Thumbnail', 'kenta' ), $this->getThumbnailControls( $layer_id, array_merge( $layer_defaults, $defaults['thumbnail'] ) ) ); + } + if ( ! in_array( 'excerpt', $exclude ) ) { + $layer->addLayer( 'excerpt', __( 'Excerpt', 'kenta' ), $this->getExcerptControls( $layer_id, array_merge( $layer_defaults, $defaults['excerpt'] ) ) ); + } + if ( ! in_array( 'read-more', $exclude ) ) { + $layer->addLayer( 'read-more', __( 'Read More', 'kenta' ), $this->getReadMoreControls( $layer_id, array_merge( $layer_defaults, $defaults['read-more'] ) ) ); + } + if ( ! in_array( 'metas', $exclude ) ) { + $layer->addLayer( 'metas', __( 'Metas', 'kenta' ), $this->getMetasControls( $layer_id, array_merge( $layer_defaults, $defaults['metas'] ) ) ); + } + if ( ! in_array( 'divider', $exclude ) ) { + $layer->addLayer( 'divider', __( 'Divider', 'kenta' ), $this->getDividerControls( $layer_id, array_merge( $layer_defaults, $defaults['divider'] ) ) ); + } + + return $layer; + } + + /** + * @return array + */ + protected function getTaxonomyControls( $id, $type = '', $defaults = [] ) { + + $defaults = wp_parse_args( $defaults, [ + 'style' => 'default', + 'text-initial' => 'var(--kenta-primary-color)', + 'text-hover' => 'var(--kenta-primary-active)', + 'badge-text-initial' => '#ffffff', + 'badge-text-hover' => '#ffffff', + 'badge-bg-initial' => 'var(--kenta-primary-color)', + 'badge-bg-hover' => 'var(--kenta-primary-active)', + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => '0.75rem', + 'variant' => '700', + 'lineHeight' => '1.5' + ], + ] ); + + $controls = [ + ( new Select( 'kenta_' . $id . '_tax_style' . $type ) ) + ->setLabel( __( 'Style', 'kenta' ) ) + ->displayInline() + ->setDefaultValue( $defaults['style'] ) + ->setChoices( [ + 'default' => __( 'Default', 'kenta' ), + 'badge' => __( 'Badge', 'kenta' ), + ] ) + , + ]; + + return apply_filters( 'kenta_taxonomy_element_controls', $controls, $id, $type, $defaults ); + } + + /** + * @return array + */ + protected function getTitleLayerControls( $id, $link = true, $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'tag' => 'h2', + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => [ 'desktop' => '1.25rem', 'tablet' => '1rem', 'mobile' => '1rem' ], + 'variant' => '700', + 'lineHeight' => '1.5' + ], + 'initial' => 'var(--kenta-accent-color)', + 'hover' => 'var(--kenta-primary-color)', + ] ); + + $controls = [ + ( new Select( 'kenta_' . $id . '_title_tag' ) ) + ->setLabel( __( 'Tag', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['tag'] ) + ->displayInline() + ->setChoices( [ + 'h1' => __( 'H1', 'kenta' ), + 'h2' => __( 'H2', 'kenta' ), + 'h3' => __( 'H3', 'kenta' ), + 'h4' => __( 'H4', 'kenta' ), + 'h5' => __( 'H5', 'kenta' ), + 'h6' => __( 'H6', 'kenta' ), + ] ) + , + ]; + + return apply_filters( 'kenta_title_element_controls', $controls, $id, $link, $defaults ); + } + + /** + * @return array + */ + protected function getThumbnailControls( $id, $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'full-width' => 'yes', + 'fallback' => 'yes', + 'height' => '180px', + 'border-radius' => [ + 'top' => '0px', + 'right' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'linked' => true + ], + 'shadow' => [ + 'rgba(54,63,70,0.35)', + '0px', + '18px', + '18px', + '-15px', + ], + 'shadow-enable' => false + ] ); + + $controls = [ + ( new Select( 'kenta_' . $id . '_thumbnail_size' ) ) + ->setLabel( __( 'Image Size', 'kenta' ) ) + ->setDefaultValue( 'large' ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setChoices( kenta_image_size_options( false ) ) + , + ( new Slider( 'kenta_' . $id . '_thumbnail_height' ) ) + ->setLabel( __( 'Height', 'kenta' ) ) + ->asyncCss( $defaults['selector'] . ' .entry-thumbnail', [ 'height' => 'value' ] ) + ->setUnits( [ + [ 'unit' => 'px', 'min' => 100, 'max' => 1000 ], + [ 'unit' => '%', 'min' => 10, 'max' => 100 ], + ] ) + ->setDefaultValue( $defaults['height'] ) + , + ( new Filters( 'kenta_' . $id . '_thumbnail_filter' ) ) + ->setLabel( __( 'Css Filter', 'kenta' ) ) + ->asyncCss( $defaults['selector'] . ' .entry-thumbnail', AsyncCss::filters() ) + , + ( new Toggle( 'kenta_' . $id . '_thumbnail_full_width' ) ) + ->setLabel( __( 'Full Width', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['full-width'] ) + , + ( new Toggle( 'kenta_' . $id . '_thumbnail_use_fallback' ) ) + ->setLabel( __( 'Use Fallback Image', 'kenta' ) ) + ->setDescription( __( 'If the current post does not have a featured image, then this image will be displayed.', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['fallback'] ) + , + ( new CallToAction() ) + ->setLabel( __( 'Edit Fallback Image', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( 'kenta_single_post:kenta_post_featured_image' ) + , + ]; + + return apply_filters( 'kenta_thumbnail_element_controls', $controls, $id, $defaults ); + } + + /** + * @return array + */ + protected function getExcerptControls( $id, $defaults = [] ) { + $controls = [ + ( new Radio( 'kenta_' . $id . '_excerpt_type' ) ) + ->setDefaultValue( 'excerpt' ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->hideLabel() + ->buttonsGroupView() + ->setChoices( [ + 'excerpt' => __( 'Excerpt', 'kenta' ), + 'full' => __( 'Full Post', 'kenta' ), + ] ) + , + ( new Condition() ) + ->setCondition( [ 'kenta_' . $id . '_excerpt_type' => 'excerpt' ] ) + ->setControls( [ + ( new Slider( 'kenta_' . $id . '_excerpt_length' ) ) + ->setLabel( __( 'Length', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setMin( 10 ) + ->setMax( 300 ) + ->setDefaultUnit( false ) + ->setDefaultValue( $defaults['length'] ) + , + ( new Separator() ), + ( new Text( 'kenta_' . $id . '_excerpt_more_text' ) ) + ->setLabel( __( 'More Text', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( '...' ) + , + ] ) + , + ]; + + return apply_filters( 'kenta_excerpt_element_controls', $controls, $id, $defaults ); + } + + /** + * @return array + */ + protected function getReadMoreControls( $id, $defaults ) { + $defaults = wp_parse_args( $defaults, [ + 'label' => __( 'Read More', 'kenta' ), + 'show-arrow' => 'yes', + 'arrow-dir' => 'right', + 'arrow' => [ + 'library' => 'fa-solid', + 'value' => 'fas fa-arrow-right', + ], + 'button-selector' => $defaults['selector'] . ' .entry-read-more', + 'button-selective' => $defaults['selective-refresh'], + 'button-css-selective' => 'kenta-global-selective-css', + ] ); + + return array_merge( + $this->getButtonContentControls( 'kenta_' . $id . '_read_more_', $defaults ), + [ new Separator() ], + $this->getButtonStyleControls( 'kenta_' . $id . '_read_more_', $defaults ) + ); + } + + /** + * @param $id + * @param array $defaults + * + * @return array + */ + protected function getMetasControls( $id, $defaults = [] ) { + + $defaults = wp_parse_args( $defaults, [ + 'elements' => [ + [ 'id' => 'byline', 'visible' => true ], + [ 'id' => 'published', 'visible' => true ], + [ 'id' => 'comments', 'visible' => true ], + ], + 'typography' => [ + 'family' => 'inherit', + 'fontSize' => [ 'desktop' => '0.75rem', 'tablet' => '0.75rem', 'mobile' => '0.75rem' ], + 'variant' => '400', + 'lineHeight' => '1.5', + 'textTransform' => 'capitalize', + ], + 'initial' => 'var(--kenta-accent-active)', + 'hover' => 'var(--kenta-primary-color)', + 'style' => 'default', + 'divider' => 'divider-1', + ] ); + + $controls = [ + ( new Layers( 'kenta_' . $id . '_metas' ) ) + ->hideLabel() + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['elements'] ) + ->addLayer( 'byline', __( 'Byline', 'kenta' ), apply_filters( 'kenta_byline_meta_controls', [], $id, $defaults ) ) + ->addLayer( 'published', __( 'Published Date', 'kenta' ), apply_filters( 'kenta_published_meta_controls', [ + ( new Toggle( 'kenta_' . $id . '_show_modified_date' ) ) + ->setLabel( __( 'Show modified date', 'kenta' ) ) + ->closeByDefault() + , + ( new Text( 'kenta_' . $id . '_published_format' ) ) + ->setLabel( __( 'Date Format', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDescription( sprintf( + // translators: placeholder here means the actual URL. + __( 'Date format %s instructions %s.', 'kenta' ), + '', + '' + ) ) + ->setDefaultValue( 'M j, Y' ) + , + ], $id, $defaults ) ) + ->addLayer( 'comments', __( 'Comments', 'kenta' ), apply_filters( 'kenta_comments_meta_controls', [], $id, $defaults ) ) + , + ]; + + return apply_filters( 'kenta_metas_element_controls', $controls, $id, $defaults ); + } + + /** + * @return array + */ + protected function getDividerControls( $id, $defaults = [] ) { + $defaults = wp_parse_args( $defaults, [ + 'full-width' => 'yes' + ] ); + + return [ + ( new Border( 'kenta_' . $id . '_divider' ) ) + ->setLabel( __( 'Style', 'kenta' ) ) + ->asyncCss( $defaults['selector'] . ' .entry-divider', AsyncCss::border( '--entry-divider' ) ) + ->setDefaultBorder( + 1, 'solid', 'var(--kenta-base-300)' + ) + , + ( new Toggle( 'kenta_' . $id . '_divider_full_width' ) ) + ->setLabel( __( 'Full Width', 'kenta' ) ) + ->selectiveRefresh( ...$defaults['selective-refresh'] ) + ->setDefaultValue( $defaults['full-width'] ) + , + ]; + } + } + +} diff --git a/wp-content/themes/kenta/inc/traits/trait-socials-controls.php b/wp-content/themes/kenta/inc/traits/trait-socials-controls.php new file mode 100644 index 0000000000..11956a65e9 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-socials-controls.php @@ -0,0 +1,160 @@ + [], + 'selector' => '', + 'new-tab' => 'yes', + 'no-follow' => 'yes', + 'icon-size' => '16px', + 'icon-spacing' => '16px', + 'icons-color-type' => 'custom', + 'icons-shape' => 'none', + 'icons-fill-type' => 'solid', + 'icons-color-initial' => 'var(--kenta-accent-color)', + 'icons-color-hover' => 'var(--kenta-primary-color)', + 'icons-bg-initial' => 'var(--kenta-base-200)', + 'icons-bg-hover' => 'var(--kenta-primary-color)', + 'icons-border-initial' => 'var(--kenta-base-200)', + 'icons-border-hover' => 'var(--kenta-primary-color)', + 'icons-box-spacing' => [ + 'top' => '0px', + 'right' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'linked' => true, + ], + ] ); + + return [ + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $this->getSocialContentControls( $defaults ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getSocialStyleControls( $defaults ) ) + ]; + } + + /** + * @param array $defaults + * + * @return array + */ + protected function getSocialContentControls( $defaults = [] ) { + + $render_callback = $defaults['render-callback']; + + $controls = [ + ( new CallToAction() ) + ->setLabel( __( 'Edit Social Network Accounts', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( 'kenta_global:kenta_global_socials' ) + , + ( new Separator() ), + ( new Toggle( $this->getSocialControlId( 'open_new_tab' ) ) ) + ->setLabel( __( 'Open In New Tab', 'kenta' ) ) + ->selectiveRefresh( ...$render_callback ) + ->setDefaultValue( $defaults['new-tab'] ) + , + ( new Toggle( $this->getSocialControlId( 'no_follow' ) ) ) + ->setLabel( __( 'No Follow', 'kenta' ) ) + ->selectiveRefresh( ...$render_callback ) + ->setDefaultValue( $defaults['no-follow'] ) + , + ( new Separator() ), + ( new Slider( $this->getSocialControlId( 'icons_size' ) ) ) + ->setLabel( __( 'Icons Size', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( $defaults['selector'], [ '--kenta-social-icons-size' => 'value' ] ) + ->setMin( 5 ) + ->setMax( 50 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['icon-size'] ) + , + ( new Slider( $this->getSocialControlId( 'icons_spacing' ) ) ) + ->setLabel( __( 'Icons Spacing', 'kenta' ) ) + ->enableResponsive() + ->asyncCss( $defaults['selector'], [ '--kenta-social-icons-spacing' => 'value' ] ) + ->setMin( 0 ) + ->setMax( 100 ) + ->setDefaultUnit( 'px' ) + ->setDefaultValue( $defaults['icon-spacing'] ) + , + ( new Separator() ), + ( new Radio( $this->getSocialControlId( 'icons_color_type' ) ) ) + ->setLabel( __( 'Icons Color', 'kenta' ) ) + ->buttonsGroupView() + ->selectiveRefresh( ...$render_callback ) + ->setDefaultValue( $defaults['icons-color-type'] ) + ->setChoices( [ + 'custom' => __( 'Custom', 'kenta' ), + 'official' => __( 'Official', 'kenta' ), + ] ) + , + ]; + + return apply_filters( 'kenta_socials_element_content_controls', $controls, $this->getSocialControlId( '' ), $defaults ); + } + + /** + * @param array $defaults + * + * @return array + */ + protected function getSocialStyleControls( $defaults = [] ) { + $controls = [ + ( new Condition() ) + ->setCondition( [ $this->getSocialControlId( 'icons_color_type' ) => 'custom' ] ) + ->setControls( [ + ( new ColorPicker( $this->getSocialControlId( 'icons_color' ) ) ) + ->setLabel( __( 'Icons Color', 'kenta' ) ) + ->addColor( 'initial', __( 'Initial', 'kenta' ), $defaults['icons-color-initial'] ) + ->addColor( 'hover', __( 'Hover', 'kenta' ), $defaults['icons-color-hover'] ) + ->asyncColors( $defaults['selector'] . ' .kenta-social-link', [ + 'initial' => '--kenta-social-icon-initial-color', + 'hover' => '--kenta-social-icon-hover-color', + ] ) + , + ( new Separator() ), + ] ) + , + ]; + + return apply_filters( 'kenta_socials_element_style_controls', $controls, $this->getSocialControlId( '' ), $defaults ); + } + } +} diff --git a/wp-content/themes/kenta/inc/traits/trait-widgets-controls.php b/wp-content/themes/kenta/inc/traits/trait-widgets-controls.php new file mode 100644 index 0000000000..17e5c2e511 --- /dev/null +++ b/wp-content/themes/kenta/inc/traits/trait-widgets-controls.php @@ -0,0 +1,285 @@ + '', + 'async-selector' => '', + 'scroll-reveal' => 'yes', + 'customize-location' => 'sidebar-widgets-' . $this->getSlug(), + 'sidebar-style' => 'style-1', + 'widgets-style' => 'plain', + 'widgets-spacing' => '24px', + 'title-tag' => 'h3', + 'title-style' => 'style-1', + 'content-align' => 'left', + 'list-icon' => 'yes', + 'link-underline' => 'no', + 'title-typography' => [ + 'family' => 'inherit', + 'fontSize' => '0.875rem', + 'variant' => '600', + 'lineHeight' => '1.5em', + 'textTransform' => 'uppercase', + ], + 'title-color' => 'var(--kenta-accent-active)', + 'title-indicator' => 'var(--kenta-primary-color)', + 'content-typography' => [ + 'family' => 'inherit', + 'fontSize' => '0.875rem', + 'variant' => '400', + 'lineHeight' => '1.5em' + ], + 'text-color' => 'var(--kenta-accent-color)', + 'link-initial' => 'var(--kenta-primary-color)', + 'link-hover' => 'var(--kenta-primary-active)', + 'widgets-background' => 'var(--kenta-base-color)', + 'widgets-border' => [ 1, 'none', 'var(--kenta-base-200)' ], + 'widgets-shadow' => [ + 'rgba(44, 62, 80, 0.15)', + '0px', + '15px', + '18px', + '-15px', + ], + 'widgets-shadow-enable' => false, + 'widgets-padding' => [ + 'top' => '24px', + 'right' => '24px', + 'bottom' => '24px', + 'left' => '24px', + 'linked' => true + ], + 'widgets-radius' => [ + 'top' => '0px', + 'bottom' => '0px', + 'left' => '0px', + 'right' => '0px', + 'linked' => true, + ], + ] ); + + return [ + ( new CallToAction() ) + ->setLabel( __( 'Edit Widgets', 'kenta' ) ) + ->displayAsButton() + ->expandCustomize( $defaults['customize-location'] ) + , + ( new Tabs() ) + ->setActiveTab( 'content' ) + ->addTab( 'content', __( 'Content', 'kenta' ), $this->getContentControls( $defaults ) ) + ->addTab( 'style', __( 'Style', 'kenta' ), $this->getStyleControls( $defaults ) ) + , + ]; + } + + protected function getContentControls( $defaults ) { + + $controls = [ + ( new ImageRadio( $this->getSlug( 'sidebar-style' ) ) ) + ->setLabel( __( 'Sidebar Style', 'kenta' ) ) + ->setDefaultValue( $defaults['sidebar-style'] ) + ->setColumns( 2 ) + ->setChoices( [ + 'style-1' => [ + 'title' => __( 'Style 1', 'kenta' ), + 'src' => kenta_image_url( 'sidebar-style-1.png' ), + ], + 'style-2' => [ + 'title' => __( 'Style 2', 'kenta' ), + 'src' => kenta_image_url( 'sidebar-style-2.png' ), + ] + ] ) + , + ( new Separator() ), + ( new Select( $this->getSlug( 'title-tag' ) ) ) + ->setLabel( __( 'Widget Title Tag', 'kenta' ) ) + ->setDefaultValue( $defaults['title-tag'] ) + ->setChoices( [ + 'h1' => 'H1', + 'h2' => 'H2', + 'h3' => 'H3', + 'h4' => 'H4', + 'h5' => 'H5', + 'h6' => 'H6', + 'span' => 'Span', + ] ) + , + ( new Select( $this->getSlug( 'title-style' ) ) ) + ->setLabel( __( 'Widget Title Style', 'kenta' ) ) + ->setDefaultValue( $defaults['title-style'] ) + ->setChoices( [ + 'plain' => __( 'Plain', 'kenta' ), + 'style-1' => __( 'Style 1', 'kenta' ), + 'style-2' => __( 'Style 2', 'kenta' ), + ] ) + , + ( new Separator() ), + ( new Slider( $this->getSlug( 'widgets-spacing' ) ) ) + ->setLabel( __( 'Widgets Spacing', 'kenta' ) ) + ->asyncCss( $defaults['async-selector'], [ + '--kenta-widgets-spacing' => 'value' + ] ) + ->enableResponsive() + ->setMin( 0 ) + ->setMax( 100 ) + ->setDefaultValue( $defaults['widgets-spacing'] ) + ->setDefaultUnit( 'px' ) + , + ( new Toggle( $this->getSlug( 'scroll-reveal' ) ) ) + ->setLabel( __( 'Enable Scroll Reveal', 'kenta' ) ) + ->setDefaultValue( $defaults['scroll-reveal'] ) + , + ]; + + return $controls; + } + + protected function getStyleControls( $defaults ) { + + $selector = $defaults['async-selector']; + + $controls = [ + ( new Toggle( $this->getSlug( 'list-icon' ) ) ) + ->setLabel( __( 'List Icon', 'kenta' ) ) + ->asyncCss( "$selector .kenta-widget ul li", [ + '--fa-display' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'inline-block', + 'no' => 'none' + ] ) ), + '--widget-list-pl' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => '1.4rem', + 'no' => '0' + ] ) ), + ] ) + ->setDefaultValue( $defaults['list-icon'] ) + , + ( new Toggle( $this->getSlug( 'link-underline' ) ) ) + ->setLabel( __( 'Link Underline', 'kenta' ) ) + ->asyncCss( "$selector a", [ + 'text-decoration' => AsyncCss::unescape( AsyncCss::valueMapper( [ + 'yes' => 'underline', + 'no' => 'none' + ] ) ) + ] ) + ->setDefaultValue( $defaults['link-underline'] ) + , + ( new Separator() ), + ( new Select( $this->getSlug( 'widgets-style' ) ) ) + ->setLabel( __( 'Widgets Card Style', 'kenta' ) ) + ->setDefaultValue( $defaults['widgets-style'] ) + ->bindSelectiveRefresh( $defaults['css-selective-refresh'] ) + ->setChoices( kenta_card_style_preset_options() ) + , + ]; + + return apply_filters( 'kenta_widgets_style_controls', $controls, $this->getSlug() . '_', $defaults ); + } + + /** + * {@inheritDoc} + */ + public function enqueue_frontend_scripts( $id = null, $data = [] ) { + $id = $id ?? $this->slug; + + $options = $this->getOptions(); + $settings = $data['settings'] ?? []; + + // Add widgets area dynamic css + add_filter( 'kenta_filter_dynamic_css', function ( $css ) use ( $id, $options, $settings ) { + + $sidebar_style = $options->get( $this->getSlug( 'sidebar-style' ), $settings ); + $widgets_style_preset = $options->get( $this->getSlug( 'widgets-style' ), $settings ); + + $widgets_css = $widgets_style_preset === 'custom' ? array_merge( + Css::background( $options->get( $this->getSlug( 'widgets-background' ), $settings ) ), + Css::border( $options->get( $this->getSlug( 'widgets-border' ), $settings ) ), + Css::shadow( $options->get( $this->getSlug( 'widgets-shadow' ), $settings ) ) + ) : kenta_card_preset_style( $widgets_style_preset ); + + $widgets_css = array_merge( + $widgets_css, + Css::dimensions( $options->get( $this->getSlug( 'widgets-padding' ), $settings ), 'padding' ), + Css::dimensions( $options->get( $this->getSlug( 'widgets-radius' ), $settings ), 'border-radius' ) + ); + + if ( $sidebar_style === 'style-1' ) { + $css[".$id .kenta-widget"] = $widgets_css; + } + + // list icon style + if ( ! $options->checked( $this->getSlug( 'list-icon' ), $settings ) ) { + $css[".$id .kenta-widget ul li"] = [ + '--fa-display' => 'none', + '--widget-list-pl' => '0', + ]; + } + + $css[".$id"] = array_merge( + $sidebar_style === 'style-2' ? $widgets_css : [], + Css::typography( $options->get( $this->getSlug( 'content-typography' ), $settings ) ), + Css::colors( $options->get( $this->getSlug( 'content-color' ), $settings ), [ + 'text' => '--kenta-widgets-text-color', + 'initial' => '--kenta-widgets-link-initial', + 'hover' => '--kenta-widgets-link-hover', + ] ), + [ + 'width' => '100%', + '--kenta-widgets-spacing' => $options->get( $this->getSlug( 'widgets-spacing' ), $settings ), + ] + ); + + $css[".$id .widget-title"] = array_merge( + Css::typography( $options->get( $this->getSlug( 'title-typography' ), $settings ) ), + Css::colors( $options->get( $this->getSlug( 'title-color' ), $settings ), [ + 'initial' => 'color', + 'indicator' => '--kenta-heading-indicator', + ] ) + ); + + return $css; + } ); + } + + /** + * {@inheritDoc} + */ + public function render( $attrs = [] ) { + $this->beforeRender( $attrs ); + ?> +
print_attribute_string( $this->getAttrId( $attrs ) ); ?>> + getSidebarId( $attrs ) ); ?> +
+ 'color', + 'dismiss-initial' => '--kenta-link-initial-color', + 'dismiss-hover' => '--kenta-link-hover-color', + ] ), + Css::background( CZ::get( 'kenta_store_notice_background' ) ) + ); + } + + if ( kenta_is_woo_shop() ) { + // product wrapper + $card_width = []; + foreach ( CZ::get( 'kenta_store_catalog_columns' ) as $device => $columns ) { + $card_width[ $device ] = sprintf( "%.2f", substr( sprintf( "%.3f", ( 100 / (int) $columns ) ), 0, - 1 ) ) . '%'; + } + $css['.kenta-products > .product'] = [ + 'width' => $card_width, + ]; + + // products list + $css['.kenta-products'] = [ + '--kenta-link-initial-color' => 'var(--kenta-primary-color)', + '--kenta-link-hover-color' => 'var(--kenta-primary-active)', + '--card-gap' => CZ::get( 'kenta_store_catalog_gap' ), + ]; + // product title + $css['.kenta-products .woocommerce-loop-product__title'] = [ + 'font-size' => '1rem', + 'font-weight' => 600 + ]; + + // product wrapper + $css['.woocommerce .kenta-products li.product .kenta-product-wrapper'] = array_merge( + $css['.woocommerce .kenta-products li.product .kenta-product-wrapper'] ?? [], + [ + 'text-align' => CZ::get( 'kenta_store_card_content_alignment' ), + '--card-thumbnail-spacing' => CZ::get( 'kenta_store_card_thumbnail_spacing' ), + '--card-content-spacing' => CZ::get( 'kenta_store_card_content_spacing' ) + ], + kenta_card_preset_style( CZ::get( 'kenta_store_card_style_preset' ) ) + ); + + // product button + $preset = kenta_button_preset( 'kenta_entry_read_more_', CZ::get( 'kenta_entry_read_more_preset' ) ); + + $css[".kenta-products .kenta-button"] = array_merge( + [ + '--kenta-button-height' => CZ::get( 'kenta_entry_read_more_min_height' ) + ], + Css::shadow( CZ::get( 'kenta_entry_read_more_shadow', $preset ) ), + Css::typography( CZ::get( 'kenta_entry_read_more_typography', $preset ) ), + Css::dimensions( CZ::get( 'kenta_entry_read_more_padding', $preset ), '--kenta-button-padding' ), + Css::dimensions( CZ::get( 'kenta_entry_read_more_radius', $preset ), '--kenta-button-radius' ), + Css::colors( CZ::get( 'kenta_entry_read_more_text_color', $preset ), [ + 'initial' => '--kenta-button-text-initial-color', + 'hover' => '--kenta-button-text-hover-color', + ] ), + Css::colors( CZ::get( 'kenta_entry_read_more_button_color', $preset ), [ + 'initial' => '--kenta-button-initial-color', + 'hover' => '--kenta-button-hover-color', + ] ), + Css::border( CZ::get( 'kenta_entry_read_more_border', $preset ), '--kenta-button-border' ) + ); + + $css[".kenta-products .kenta-button:hover"] = Css::shadow( CZ::get( 'kenta_entry_read_more_shadow_active', $preset ) ); + + // pagination + $css['.woocommerce-pagination'] = array_merge( + Css::border( CZ::get( 'kenta_pagination_button_border' ), '--kenta-pagination-button-border' ), + Css::colors( CZ::get( 'kenta_pagination_button_color' ), [ + 'initial' => '--kenta-pagination-initial-color', + 'active' => '--kenta-pagination-active-color', + 'accent' => '--kenta-pagination-accent-color', + ] ), + Css::typography( CZ::get( 'kenta_pagination_typography' ) ), + [ + '--kenta-pagination-button-radius' => CZ::get( 'kenta_pagination_button_radius' ), + 'justify-content' => CZ::get( 'kenta_pagination_alignment' ) + ] + ); + } + + return $css; + } +} +add_filter( 'kenta_filter_no_cache_dynamic_css', 'kenta_woo_dynamic_css' ); + +if ( ! function_exists( 'kenta_woo_before_content' ) ) { + /** + * Wrap woocommerce content - start + */ + function kenta_woo_before_content() { + $sidebar = kenta_get_sidebar_layout( 'store' ); + + ?> +
+
+ +
+ + + +
+ +
+ +
+
true, + 'kenta-scroll-reveal' => CZ::checked( 'kenta_store_card_scroll_reveal' ) + ] ) + + ?>
\n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"POT-Creation-Date: 2024-11-10T08:46:33+00:00\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"X-Generator: WP-CLI 2.11.0\n" +"X-Domain: kenta\n" + +#. Theme Name of the theme +#: style.css +msgid "Kenta" +msgstr "" + +#. Theme URI of the theme +#: style.css +msgid "https://kentatheme.com" +msgstr "" + +#. Description of the theme +#: style.css +msgid "The Powerful and Multipurpose Kenta Theme provides endless possibilities to create your site visually in minutes, without coding skills. We have tons of options for you to customize every part of your site. We also provide Starter Sites to help you create your sites with one click instead of starting from scratch. You can build any kind of websites, like blog, business, portfolio, WooCommerce storefronts etc. Whether you're bloggers, editors, online magazines, newspaper, news portals, content publishers, creative business, small businesses, startups and freelancers, we can help you build an amazing website." +msgstr "" + +#. Author of the theme +#: style.css +msgid "WP Moose" +msgstr "" + +#. Author URI of the theme +#: style.css +msgid "https://www.wpmoose.com" +msgstr "" + +#: comments.php:43 +msgid "One Comment" +msgstr "" + +#. translators: %s: The count of comments +#: comments.php:46 +msgid "%s Comments" +msgstr "" + +#: comments.php:66 +msgid "Comments are closed." +msgstr "" + +#: inc/admin-page.php:13 +msgid "Plover Kit" +msgstr "" + +#: inc/admin-page.php:14 +msgid "Plover kit have pluggable modules that enhance the Gutenberg core blocks and also provide extended features." +msgstr "" + +#: inc/admin-page.php:19 +#: inc/admin-page.php:152 +msgid "Kenta Blocks" +msgstr "" + +#: inc/admin-page.php:20 +msgid "Kenta Blocks is a set of responsive blocks with powerful options and pre-designed templates library. " +msgstr "" + +#: inc/admin-page.php:25 +#: inc/admin-page.php:151 +msgid "Kenta Companion" +msgstr "" + +#: inc/admin-page.php:26 +msgid "Kenta Companion is an extension to the Kenta theme. It provides a lot of features and one-click demo import for Kenta Theme." +msgstr "" + +#: inc/admin-page.php:40 +msgid "Install Recommend Plugin" +msgstr "" + +#: inc/admin-page.php:46 +#: inc/admin-page.php:139 +#: inc/admin-page.php:171 +msgid "You need a higher level of permission." +msgstr "" + +#: inc/admin-page.php:47 +#: inc/admin-page.php:140 +msgid "Sorry, you are not allowed to activate plugins on this site." +msgstr "" + +#: inc/admin-page.php:63 +msgid "You can not install this plugin." +msgstr "" + +#: inc/admin-page.php:64 +msgid "Sorry, you are not allowed to install this plugin." +msgstr "" + +#: inc/admin-page.php:172 +msgid "Sorry, you are not allowed to customize this site." +msgstr "" + +#: inc/admin-page.php:202 +#: inc/admin-page.php:203 +#: template-parts/admin-container.php:33 +msgid "Kenta Theme" +msgstr "" + +#: inc/builder/class-builder-column.php:121 +msgid "Width" +msgstr "" + +#: inc/builder/class-builder-column.php:130 +msgid "Elements Gap" +msgstr "" + +#: inc/builder/class-builder-column.php:139 +#: inc/customizer/class-archive-section.php:461 +#: inc/traits/trait-post-card.php:44 +#: inc/traits/trait-widgets-controls.php:158 +msgid "Enable Scroll Reveal" +msgstr "" + +#: inc/builder/class-builder-column.php:149 +#: inc/elements/class-menu-element.php:85 +msgid "Direction" +msgstr "" + +#: inc/builder/class-builder-column.php:154 +msgid "Row" +msgstr "" + +#: inc/builder/class-builder-column.php:155 +msgid "Column" +msgstr "" + +#: inc/builder/class-builder-column.php:163 +msgid "Justify Content" +msgstr "" + +#: inc/builder/class-builder-column.php:168 +#: inc/builder/class-builder-column.php:183 +msgid "Start" +msgstr "" + +#: inc/builder/class-builder-column.php:169 +#: inc/builder/class-builder-column.php:184 +#: inc/customizer/class-archive-section.php:184 +#: inc/customizer/class-single-post-section.php:212 +#: inc/elements/class-logo-element.php:114 +#: inc/traits/trait-article-controls.php:178 +#: inc/traits/trait-post-card.php:75 +msgid "Center" +msgstr "" + +#: inc/builder/class-builder-column.php:170 +#: inc/builder/class-builder-column.php:185 +msgid "End" +msgstr "" + +#: inc/builder/class-builder-column.php:178 +msgid "Align Items" +msgstr "" + +#: inc/builder/class-builder-column.php:193 +#: inc/customizer/class-archive-section.php:190 +#: inc/customizer/class-single-post-section.php:242 +msgid "Padding" +msgstr "" + +#: inc/builder/class-footer-builder.php:33 +msgid "Footer Elements" +msgstr "" + +#: inc/builder/class-footer-builder.php:40 +#: inc/builder/class-header-builder.php:41 +#: inc/customizer/class-header-section.php:108 +#: inc/elements/class-logo-element.php:40 +msgid "Logo" +msgstr "" + +#: inc/builder/class-footer-builder.php:41 +msgid "Copyright" +msgstr "" + +#: inc/builder/class-footer-builder.php:42 +#: inc/theme-setup.php:138 +msgid "Footer Menu" +msgstr "" + +#: inc/builder/class-footer-builder.php:49 +#: inc/builder/class-header-builder.php:63 +msgid "Breadcrumbs" +msgstr "" + +#: inc/builder/class-footer-builder.php:51 +msgid "Footer Widgets Area #1" +msgstr "" + +#: inc/builder/class-footer-builder.php:52 +msgid "Footer Widgets Area #2" +msgstr "" + +#: inc/builder/class-footer-builder.php:53 +msgid "Footer Widgets Area #3" +msgstr "" + +#: inc/builder/class-footer-builder.php:54 +msgid "Footer Widgets Area #4" +msgstr "" + +#: inc/builder/class-footer-builder.php:55 +#: inc/builder/class-header-builder.php:64 +#: inc/extensions/class-socials-extension.php:29 +msgid "Socials" +msgstr "" + +#: inc/builder/class-footer-builder.php:85 +msgid "Top Row" +msgstr "" + +#: inc/builder/class-footer-builder.php:130 +msgid "Middle Row" +msgstr "" + +#: inc/builder/class-footer-builder.php:173 +#: inc/builder/class-header-builder.php:232 +msgid "Bottom Row" +msgstr "" + +#: inc/builder/class-footer-row.php:118 +#: inc/builder/class-header-row.php:228 +#: inc/customizer/class-archive-section.php:327 +#: inc/customizer/class-header-section.php:63 +#: inc/elements/class-menu-element.php:201 +msgid "General" +msgstr "" + +#: inc/builder/class-footer-row.php:120 +msgid "Vertical Spacing" +msgstr "" + +#: inc/builder/class-footer-row.php:132 +#: inc/builder/class-header-row.php:126 +#: inc/traits/trait-particles-effect.php:132 +msgid "Z Index" +msgstr "" + +#: inc/builder/class-footer-row.php:139 +#: inc/builder/class-header-row.php:133 +msgid "Render Empty Row" +msgstr "" + +#: inc/builder/class-footer-row.php:144 +#: inc/builder/class-header-row.php:138 +msgid "Visibility" +msgstr "" + +#: inc/builder/class-footer-row.php:174 +#: inc/builder/class-header-row.php:231 +#: inc/builder/class-modal-row.php:112 +#: inc/customizer/class-archive-section.php:135 +#: inc/customizer/class-archive-section.php:311 +#: inc/customizer/class-archive-section.php:328 +#: inc/customizer/class-content-section.php:205 +#: inc/customizer/class-header-section.php:115 +#: inc/customizer/class-single-post-section.php:268 +#: inc/customizer/class-store-catalog-section.php:103 +#: inc/elements/class-breadcrumbs-element.php:36 +#: inc/elements/class-button-element.php:61 +#: inc/elements/class-cart-element.php:73 +#: inc/elements/class-collapsable-menu-element.php:103 +#: inc/elements/class-logo-element.php:119 +#: inc/elements/class-menu-element.php:202 +#: inc/elements/class-search-element.php:82 +#: inc/elements/class-trigger-element.php:48 +#: inc/extensions/class-related-posts-extension.php:164 +#: inc/extensions/class-scroll-top-extension.php:169 +#: inc/traits/trait-post-structure.php:121 +#: inc/traits/trait-post-structure.php:366 +#: inc/traits/trait-socials-controls.php:68 +#: inc/traits/trait-widgets-controls.php:99 +msgid "Style" +msgstr "" + +#: inc/builder/class-footer-row.php:175 +#: inc/builder/class-header-row.php:170 +#: inc/customizer/class-footer-section.php:34 +#: inc/customizer/class-header-section.php:45 +msgid "Override Global Colors" +msgstr "" + +#: inc/builder/class-footer-row.php:180 +#: inc/builder/class-header-row.php:175 +#: inc/customizer/class-header-section.php:172 +#: inc/elements/class-menu-element.php:53 +#: inc/extensions/class-sticky-extension.php:66 +msgid "Top Border" +msgstr "" + +#: inc/builder/class-footer-row.php:194 +#: inc/builder/class-header-row.php:215 +#: inc/customizer.php:207 +#: inc/customizer/class-archive-section.php:202 +#: inc/customizer/class-content-section.php:231 +#: inc/customizer/class-single-post-section.php:234 +#: inc/customizer/class-store-notice-section.php:40 +#: inc/extensions/class-preloader-extension.php:73 +msgid "Background" +msgstr "" + +#: inc/builder/class-header-builder.php:33 +#: inc/traits/trait-article-controls.php:138 +msgid "Header Elements" +msgstr "" + +#: inc/builder/class-header-builder.php:44 +#: searchform.php:10 +msgid "Search" +msgstr "" + +#: inc/builder/class-header-builder.php:46 +msgid "Button #1" +msgstr "" + +#: inc/builder/class-header-builder.php:47 +msgid "Button #2" +msgstr "" + +#: inc/builder/class-header-builder.php:49 +msgid "Menu #1" +msgstr "" + +#: inc/builder/class-header-builder.php:52 +msgid "Menu #2" +msgstr "" + +#: inc/builder/class-header-builder.php:58 +#: inc/theme-setup.php:128 +msgid "Collapsable Menu" +msgstr "" + +#: inc/builder/class-header-builder.php:61 +msgid "Trigger" +msgstr "" + +#: inc/builder/class-header-builder.php:65 +msgid "Theme Switch" +msgstr "" + +#: inc/builder/class-header-builder.php:69 +msgid "Cart" +msgstr "" + +#: inc/builder/class-header-builder.php:101 +msgid "Modal Area" +msgstr "" + +#: inc/builder/class-header-builder.php:139 +msgid "Top Bar" +msgstr "" + +#: inc/builder/class-header-builder.php:185 +msgid "Primary Navbar" +msgstr "" + +#: inc/builder/class-header-row.php:117 +#: inc/traits/trait-button-controls.php:155 +msgid "Min Height" +msgstr "" + +#: inc/builder/class-header-row.php:187 +#: inc/customizer/class-header-section.php:185 +#: inc/elements/class-menu-element.php:52 +#: inc/extensions/class-sticky-extension.php:73 +msgid "Bottom Border" +msgstr "" + +#: inc/builder/class-header-row.php:199 +#: inc/extensions/class-sticky-extension.php:80 +msgid "Box Shadow" +msgstr "" + +#: inc/builder/class-modal-row.php:111 +#: inc/customizer/class-archive-section.php:134 +#: inc/customizer/class-archive-section.php:307 +#: inc/customizer/class-content-section.php:142 +#: inc/customizer/class-single-post-section.php:267 +#: inc/customizer/class-store-catalog-section.php:100 +#: inc/elements/class-breadcrumbs-element.php:35 +#: inc/elements/class-button-element.php:42 +#: inc/elements/class-collapsable-menu-element.php:65 +#: inc/elements/class-logo-element.php:38 +#: inc/extensions/class-related-posts-extension.php:162 +#: inc/extensions/class-scroll-top-extension.php:113 +#: inc/traits/trait-socials-controls.php:67 +#: inc/traits/trait-widgets-controls.php:98 +msgid "Content" +msgstr "" + +#: inc/builder/class-modal-row.php:119 +msgid "Close Button Color" +msgstr "" + +#: inc/builder/class-modal-row.php:120 +#: inc/customizer/class-archive-section.php:248 +#: inc/customizer/class-archive-section.php:255 +#: inc/customizer/class-header-section.php:119 +#: inc/customizer/class-header-section.php:134 +#: inc/customizer/class-header-section.php:141 +#: inc/customizer/class-header-section.php:147 +#: inc/customizer/class-header-section.php:155 +#: inc/customizer/class-header-section.php:161 +#: inc/customizer/class-header-section.php:167 +#: inc/customizer/class-single-post-section.php:284 +#: inc/elements/class-collapsable-menu-element.php:117 +#: inc/elements/class-copyright-element.php:48 +#: inc/elements/class-logo-element.php:138 +#: inc/elements/class-logo-element.php:160 +#: inc/traits/trait-socials-controls.php:145 +msgid "Initial" +msgstr "" + +#: inc/builder/class-modal-row.php:121 +#: inc/customizer/class-header-section.php:120 +#: inc/customizer/class-header-section.php:135 +#: inc/customizer/class-header-section.php:148 +#: inc/customizer/class-header-section.php:156 +#: inc/customizer/class-header-section.php:162 +#: inc/customizer/class-header-section.php:168 +#: inc/customizer/class-single-post-section.php:285 +#: inc/elements/class-collapsable-menu-element.php:118 +#: inc/elements/class-copyright-element.php:49 +#: inc/elements/class-logo-element.php:140 +#: inc/traits/trait-socials-controls.php:146 +msgid "Hover" +msgstr "" + +#: inc/builder/class-modal-row.php:125 +msgid "Modal Background" +msgstr "" + +#: inc/builder/class-modal-row.php:135 +msgid "Modal Mask" +msgstr "" + +#: inc/builder/class-modal-row.php:142 +msgid "Modal Shadow" +msgstr "" + +#: inc/builder/class-modal-row.php:157 +msgid "Modal Type" +msgstr "" + +#: inc/builder/class-modal-row.php:161 +#: inc/elements/class-search-element.php:44 +msgid "Modal" +msgstr "" + +#: inc/builder/class-modal-row.php:162 +msgid "Drawer" +msgstr "" + +#: inc/builder/class-modal-row.php:169 +msgid "Drawer Placement" +msgstr "" + +#: inc/builder/class-modal-row.php:173 +#: inc/customizer/class-archive-section.php:183 +#: inc/customizer/class-single-post-section.php:211 +#: inc/elements/class-logo-element.php:65 +#: inc/elements/class-logo-element.php:113 +#: inc/elements/class-menu-element.php:90 +#: inc/extensions/class-scroll-top-extension.php:164 +#: inc/traits/trait-article-controls.php:174 +#: inc/traits/trait-button-controls.php:75 +#: inc/traits/trait-post-card.php:71 +msgid "Left" +msgstr "" + +#: inc/builder/class-modal-row.php:174 +#: inc/customizer/class-archive-section.php:185 +#: inc/customizer/class-single-post-section.php:213 +#: inc/elements/class-logo-element.php:66 +#: inc/elements/class-logo-element.php:115 +#: inc/elements/class-menu-element.php:91 +#: inc/extensions/class-scroll-top-extension.php:165 +#: inc/traits/trait-article-controls.php:182 +#: inc/traits/trait-button-controls.php:76 +#: inc/traits/trait-post-card.php:79 +msgid "Right" +msgstr "" + +#: inc/builder/class-modal-row.php:179 +msgid "Drawer Width" +msgstr "" + +#: inc/customizer.php:126 +msgid "Install Companion Plugin" +msgstr "" + +#: inc/customizer.php:139 +msgid "Upgrade To Pro" +msgstr "" + +#: inc/customizer.php:149 +#: template-parts/admin-start.php:97 +msgid "Visit Starter Sites" +msgstr "" + +#: inc/customizer.php:159 +msgid "Update Customizer Cache" +msgstr "" + +#: inc/customizer.php:160 +msgid "If the final style is not the same as the preview, please try to update the cache" +msgstr "" + +#: inc/customizer.php:178 +msgid "Store Notice" +msgstr "" + +#: inc/customizer.php:179 +msgid "Product Catalog" +msgstr "" + +#: inc/customizer.php:203 +#: template-parts/admin-customize.php:31 +msgid "Header Builder" +msgstr "" + +#: inc/customizer.php:204 +#: template-parts/admin-customize.php:36 +msgid "Footer Builder" +msgstr "" + +#: inc/customizer.php:205 +msgid "Homepage Settings" +msgstr "" + +#: inc/customizer.php:206 +#: inc/customizer/class-content-section.php:32 +#: inc/customizer/class-store-notice-section.php:29 +#: inc/extensions/class-preloader-extension.php:67 +msgid "Colors" +msgstr "" + +#: inc/customizer.php:208 +msgid "Global" +msgstr "" + +#: inc/customizer.php:209 +#: template-parts/admin-customize.php:56 +msgid "Archive Settings" +msgstr "" + +#: inc/customizer.php:210 +#: template-parts/admin-customize.php:41 +msgid "Content Settings" +msgstr "" + +#: inc/customizer.php:211 +#: template-parts/admin-customize.php:46 +msgid "Single Post Settings" +msgstr "" + +#: inc/customizer.php:212 +msgid "Pages Settings" +msgstr "" + +#: inc/customizer/class-archive-section.php:47 +msgid "Header" +msgstr "" + +#: inc/customizer/class-archive-section.php:52 +msgid "Post Card" +msgstr "" + +#: inc/customizer/class-archive-section.php:57 +msgid "Pagination" +msgstr "" + +#: inc/customizer/class-archive-section.php:63 +#: inc/customizer/class-global-section.php:44 +#: inc/customizer/class-pages-section.php:47 +#: inc/customizer/class-single-post-section.php:63 +#: inc/customizer/class-store-catalog-section.php:62 +msgid "Sidebar" +msgstr "" + +#: inc/customizer/class-archive-section.php:68 +#: inc/customizer/class-pages-section.php:51 +#: inc/customizer/class-single-post-section.php:67 +#: inc/customizer/class-store-catalog-section.php:66 +#: dist/js/block-editor.js:110 +msgid "Sidebar Layout" +msgstr "" + +#: inc/customizer/class-archive-section.php:72 +#: inc/customizer/class-pages-section.php:55 +#: inc/customizer/class-single-post-section.php:71 +#: inc/customizer/class-store-catalog-section.php:70 +#: dist/js/block-editor.js:119 +msgid "Left Sidebar" +msgstr "" + +#: inc/customizer/class-archive-section.php:76 +#: inc/customizer/class-pages-section.php:59 +#: inc/customizer/class-single-post-section.php:75 +#: inc/customizer/class-store-catalog-section.php:74 +#: dist/js/block-editor.js:122 +msgid "Right Sidebar" +msgstr "" + +#: inc/customizer/class-archive-section.php:82 +#: inc/customizer/class-pages-section.php:65 +#: inc/customizer/class-single-post-section.php:81 +msgid "Customize Sidebar" +msgstr "" + +#: inc/customizer/class-archive-section.php:89 +msgid "%sRead documentation for archive customize%s" +msgstr "" + +#: inc/customizer/class-archive-section.php:103 +msgid "Card Columns" +msgstr "" + +#: inc/customizer/class-archive-section.php:116 +msgid "Card Gap" +msgstr "" + +#: inc/customizer/class-archive-section.php:145 +msgid "Disable Header On Blogs Home" +msgstr "" + +#: inc/customizer/class-archive-section.php:155 +msgid "Disable Header On Shop" +msgstr "" + +#: inc/customizer/class-archive-section.php:165 +msgid "Blogs Page Title" +msgstr "" + +#: inc/customizer/class-archive-section.php:169 +msgid "Blogs" +msgstr "" + +#: inc/customizer/class-archive-section.php:178 +#: inc/customizer/class-archive-section.php:361 +#: inc/customizer/class-single-post-section.php:206 +msgid "Alignment" +msgstr "" + +#: inc/customizer/class-archive-section.php:211 +msgid "Enable Overlay" +msgstr "" + +#: inc/customizer/class-archive-section.php:221 +#: inc/traits/trait-article-controls.php:222 +msgid "Overlay Opacity" +msgstr "" + +#: inc/customizer/class-archive-section.php:230 +#: inc/traits/trait-article-controls.php:231 +msgid "Header Overlay" +msgstr "" + +#: inc/customizer/class-archive-section.php:244 +msgid "Title Color" +msgstr "" + +#: inc/customizer/class-archive-section.php:251 +msgid "Description Color" +msgstr "" + +#: inc/customizer/class-archive-section.php:302 +msgid "%sRead documentation for post card options%s" +msgstr "" + +#: inc/customizer/class-archive-section.php:324 +msgid "%sRead documentation for posts pagination%s" +msgstr "" + +#: inc/customizer/class-archive-section.php:339 +msgid "Numbered" +msgstr "" + +#: inc/customizer/class-archive-section.php:340 +msgid "Prev & Next" +msgstr "" + +#: inc/customizer/class-archive-section.php:341 +msgid "Load More" +msgstr "" + +#: inc/customizer/class-archive-section.php:342 +msgid "Infinite Scroll" +msgstr "" + +#: inc/customizer/class-archive-section.php:352 +msgid "Pagination Type" +msgstr "" + +#: inc/customizer/class-archive-section.php:382 +msgid "Previous & Next Buttons" +msgstr "" + +#: inc/customizer/class-archive-section.php:395 +msgid "Previous & Next Type" +msgstr "" + +#: inc/customizer/class-archive-section.php:402 +#: inc/customizer/class-header-section.php:126 +#: inc/customizer/class-store-notice-section.php:35 +msgid "Text" +msgstr "" + +#: inc/customizer/class-archive-section.php:403 +#: inc/elements/class-cart-element.php:58 +#: inc/elements/class-cart-element.php:60 +#: inc/elements/class-search-element.php:67 +#: inc/elements/class-search-element.php:69 +#: inc/elements/class-trigger-element.php:33 +#: inc/elements/class-trigger-element.php:35 +#: inc/extensions/class-scroll-top-extension.php:115 +#: inc/extensions/class-socials-extension.php:159 +msgid "Icon" +msgstr "" + +#: inc/customizer/class-archive-section.php:410 +msgid "Previous Icon" +msgstr "" + +#: inc/customizer/class-archive-section.php:420 +msgid "Next Icon" +msgstr "" + +#: inc/customizer/class-archive-section.php:435 +msgid "Previous Text" +msgstr "" + +#: inc/customizer/class-archive-section.php:440 +msgid "Prev" +msgstr "" + +#: inc/customizer/class-archive-section.php:443 +msgid "Next Text" +msgstr "" + +#: inc/customizer/class-archive-section.php:448 +msgid "Next" +msgstr "" + +#: inc/customizer/class-archive-section.php:454 +msgid "Show Disabled Buttons" +msgstr "" + +#: inc/customizer/class-archive-section.php:480 +#: inc/customizer/class-content-section.php:36 +#: inc/customizer/class-content-section.php:214 +#: inc/elements/class-collapsable-menu-element.php:105 +#: inc/elements/class-copyright-element.php:30 +msgid "Typography" +msgstr "" + +#: inc/customizer/class-archive-section.php:494 +#: inc/customizer/class-single-post-section.php:279 +msgid "Text Color" +msgstr "" + +#: inc/customizer/class-archive-section.php:500 +#: inc/elements/class-copyright-element.php:47 +msgid "Text Initial" +msgstr "" + +#: inc/customizer/class-archive-section.php:501 +msgid "Text Active" +msgstr "" + +#: inc/customizer/class-archive-section.php:502 +#: inc/customizer/class-content-section.php:55 +#: inc/extensions/class-preloader-extension.php:74 +#: inc/traits/trait-button-controls.php:110 +msgid "Accent" +msgstr "" + +#: inc/customizer/class-archive-section.php:505 +#: inc/customizer/class-content-section.php:232 +#: inc/customizer/class-single-post-section.php:219 +msgid "Border" +msgstr "" + +#: inc/customizer/class-archive-section.php:516 +msgid "Radius" +msgstr "" + +#: inc/customizer/class-background-section.php:33 +msgid "Site Wrap" +msgstr "" + +#: inc/customizer/class-background-section.php:34 +msgid "Enable boundaries for your site on large screens (>1600px)" +msgstr "" + +#: inc/customizer/class-background-section.php:48 +#: inc/traits/trait-article-controls.php:99 +msgid "Site Background" +msgstr "" + +#: inc/customizer/class-background-section.php:60 +msgid "Body Background" +msgstr "" + +#: inc/customizer/class-background-section.php:69 +msgid "Site Box Shadow" +msgstr "" + +#: inc/customizer/class-background-section.php:83 +msgid "%sLearn how to use site wrap & site background%s" +msgstr "" + +#: inc/customizer/class-background-section.php:88 +msgid "Site Css Filters" +msgstr "" + +#: inc/customizer/class-background-section.php:92 +msgid "%sLearn how to use site filters" +msgstr "" + +#: inc/customizer/class-colors-section.php:29 +#: inc/elements/class-search-element.php:104 +#: dist/js/block-editor.js:3257 +msgid "Light" +msgstr "" + +#: inc/customizer/class-colors-section.php:30 +#: inc/elements/class-search-element.php:105 +#: dist/js/block-editor.js:3263 +msgid "Dark" +msgstr "" + +#: inc/customizer/class-colors-section.php:35 +msgid "%sRead Colors Documentation%s" +msgstr "" + +#: inc/customizer/class-colors-section.php:41 +msgid "Use Dark Scheme As Default" +msgstr "" + +#: inc/customizer/class-colors-section.php:45 +msgid "Save User Color Scheme" +msgstr "" + +#: inc/customizer/class-colors-section.php:46 +msgid "Save the user's color scheme to the cookie and refresh the page without losing current color scheme." +msgstr "" + +#: inc/customizer/class-colors-section.php:67 +#: inc/customizer/class-colors-section.php:102 +#: inc/traits/trait-global-color-controls.php:39 +msgid "Primary Color" +msgstr "" + +#: inc/customizer/class-colors-section.php:68 +msgid "Primary Active" +msgstr "" + +#: inc/customizer/class-colors-section.php:69 +#: inc/customizer/class-colors-section.php:118 +#: inc/traits/trait-global-color-controls.php:50 +msgid "Accent Color" +msgstr "" + +#: inc/customizer/class-colors-section.php:70 +msgid "Accent Active" +msgstr "" + +#: inc/customizer/class-colors-section.php:71 +#: inc/customizer/class-colors-section.php:134 +#: inc/customizer/class-colors-section.php:153 +#: inc/traits/trait-global-color-controls.php:61 +#: inc/traits/trait-global-color-controls.php:73 +msgid "Base Color" +msgstr "" + +#: inc/customizer/class-colors-section.php:72 +msgid "Base 50" +msgstr "" + +#: inc/customizer/class-colors-section.php:73 +#: inc/customizer/class-colors-section.php:152 +#: inc/traits/trait-global-color-controls.php:72 +msgid "Base 100" +msgstr "" + +#: inc/customizer/class-colors-section.php:74 +#: inc/customizer/class-colors-section.php:151 +#: inc/traits/trait-global-color-controls.php:71 +msgid "Base 200" +msgstr "" + +#: inc/customizer/class-colors-section.php:75 +#: inc/customizer/class-colors-section.php:150 +#: inc/traits/trait-global-color-controls.php:70 +msgid "Base 300" +msgstr "" + +#: inc/customizer/class-colors-section.php:77 +msgid "Color Presets" +msgstr "" + +#: inc/customizer/class-colors-section.php:114 +#: inc/customizer/class-colors-section.php:130 +#: inc/extensions/class-related-posts-extension.php:64 +#: inc/traits/trait-article-controls.php:261 +#: inc/traits/trait-global-color-controls.php:46 +#: inc/traits/trait-global-color-controls.php:57 +#: inc/traits/trait-particles-effect.php:161 +#: inc/traits/trait-particles-effect.php:196 +#: inc/traits/trait-post-structure.php:125 +msgid "Default" +msgstr "" + +#: inc/customizer/class-colors-section.php:115 +#: inc/customizer/class-colors-section.php:131 +#: inc/customizer/class-content-section.php:233 +#: inc/customizer/class-header-section.php:136 +#: inc/customizer/class-header-section.php:142 +#: inc/customizer/class-header-section.php:149 +#: inc/elements/class-collapsable-menu-element.php:119 +#: inc/template-tags.php:1049 +#: inc/traits/trait-global-color-controls.php:47 +#: inc/traits/trait-global-color-controls.php:58 +msgid "Active" +msgstr "" + +#: inc/customizer/class-content-section.php:40 +msgid "Buttons" +msgstr "" + +#: inc/customizer/class-content-section.php:50 +#: inc/elements/class-menu-element.php:51 +#: inc/elements/class-menu-element.php:129 +#: inc/template-tags.php:1041 +#: inc/traits/trait-button-controls.php:105 +#: inc/traits/trait-icon-button-controls.php:71 +msgid "Ghost" +msgstr "" + +#: inc/customizer/class-content-section.php:51 +#: inc/traits/trait-button-controls.php:107 +msgid "Outline" +msgstr "" + +#: inc/customizer/class-content-section.php:52 +#: inc/elements/class-menu-element.php:131 +#: inc/traits/trait-button-controls.php:106 +msgid "Solid" +msgstr "" + +#: inc/customizer/class-content-section.php:53 +#: inc/traits/trait-button-controls.php:108 +msgid "Invert" +msgstr "" + +#: inc/customizer/class-content-section.php:54 +#: inc/extensions/class-preloader-extension.php:75 +#: inc/traits/trait-button-controls.php:109 +msgid "Primary" +msgstr "" + +#: inc/customizer/class-content-section.php:56 +#: inc/elements/class-menu-element.php:56 +#: inc/elements/class-menu-element.php:133 +#: inc/template-tags.php:1050 +#: inc/traits/trait-button-controls.php:111 +#: inc/traits/trait-icon-button-controls.php:76 +msgid "Custom (Premium)" +msgstr "" + +#: inc/customizer/class-content-section.php:61 +msgid "Forms" +msgstr "" + +#: inc/customizer/class-content-section.php:73 +msgid "Paragraph Color" +msgstr "" + +#: inc/customizer/class-content-section.php:82 +msgid "Drop Cap Color" +msgstr "" + +#: inc/customizer/class-content-section.php:91 +msgid "Links Color" +msgstr "" + +#: inc/customizer/class-content-section.php:102 +msgid "All Headings Color (H1 - H6)" +msgstr "" + +#: inc/customizer/class-content-section.php:128 +#: inc/customizer/class-content-section.php:190 +#: inc/customizer/class-placeholders.php:136 +#: inc/customizer/class-placeholders.php:157 +#: inc/customizer/class-placeholders.php:174 +#: inc/customizer/class-placeholders.php:193 +#: inc/customizer/class-placeholders.php:409 +msgid "More options in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-content-section.php:152 +msgid "Drop Cap" +msgstr "" + +#: inc/customizer/class-content-section.php:166 +#: inc/customizer/class-global-section.php:107 +#: inc/customizer/class-header-section.php:60 +#: inc/extensions/class-socials-extension.php:175 +#: inc/traits/trait-global-color-controls.php:36 +msgid "%sRead Documentation%s" +msgstr "" + +#: inc/customizer/class-content-section.php:169 +msgid "Global Typography" +msgstr "" + +#: inc/customizer/class-content-section.php:170 +msgid "This option will affects the entire site" +msgstr "" + +#: inc/customizer/class-content-section.php:209 +msgid "Classic" +msgstr "" + +#: inc/customizer/class-content-section.php:210 +msgid "Modern" +msgstr "" + +#: inc/customizer/class-content-section.php:224 +msgid "Controls Color" +msgstr "" + +#: inc/customizer/class-footer-section.php:27 +msgid "%sLearn how to use footer builder%s" +msgstr "" + +#: inc/customizer/class-global-section.php:34 +#: inc/extensions/class-related-posts-extension.php:163 +#: dist/js/block-editor.js:75 +msgid "Layout" +msgstr "" + +#: inc/customizer/class-global-section.php:39 +msgid "Performance" +msgstr "" + +#: inc/customizer/class-global-section.php:53 +msgid "%sLearn More%s" +msgstr "" + +#: inc/customizer/class-global-section.php:67 +msgid "Content Area Spacing" +msgstr "" + +#: inc/customizer/class-global-section.php:71 +msgid "Homepage" +msgstr "" + +#: inc/customizer/class-global-section.php:78 +msgid "Archive" +msgstr "" + +#: inc/customizer/class-global-section.php:85 +msgid "Single Post" +msgstr "" + +#: inc/customizer/class-global-section.php:92 +msgid "Pages" +msgstr "" + +#: inc/customizer/class-global-section.php:99 +msgid "Store" +msgstr "" + +#: inc/customizer/class-global-section.php:117 +msgid "Enable Customizer Cache" +msgstr "" + +#: inc/customizer/class-global-section.php:118 +msgid "Enable Customizer caching can improve page load speed." +msgstr "" + +#: inc/customizer/class-global-section.php:122 +msgid "Load Google Fonts Locally" +msgstr "" + +#: inc/customizer/class-global-section.php:123 +msgid "Complying with GDPR by using local google fonts." +msgstr "" + +#: inc/customizer/class-header-section.php:38 +msgid "%sLearn how to use header builder%s" +msgstr "" + +#: inc/customizer/class-header-section.php:50 +#: dist/js/block-editor.js:129 +msgid "Transparent Header" +msgstr "" + +#: inc/customizer/class-header-section.php:65 +msgid "Enable Transparent Header" +msgstr "" + +#: inc/customizer/class-header-section.php:72 +msgid "Disable on Search & Archives" +msgstr "" + +#: inc/customizer/class-header-section.php:76 +msgid "Disable on Posts" +msgstr "" + +#: inc/customizer/class-header-section.php:80 +msgid "Disable on Pages" +msgstr "" + +#: inc/customizer/class-header-section.php:87 +msgid "Enable Device" +msgstr "" + +#: inc/customizer/class-header-section.php:91 +msgid "All" +msgstr "" + +#: inc/customizer/class-header-section.php:92 +msgid "Desktop" +msgstr "" + +#: inc/customizer/class-header-section.php:93 +msgid "Mobile" +msgstr "" + +#: inc/customizer/class-header-section.php:98 +msgid "Logo for Transparent Header" +msgstr "" + +#: inc/customizer/class-header-section.php:117 +msgid "Site Title Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:124 +msgid "Raw Text Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:127 +msgid "Link Initial" +msgstr "" + +#: inc/customizer/class-header-section.php:128 +msgid "Link Hover" +msgstr "" + +#: inc/customizer/class-header-section.php:132 +msgid "Menu Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:139 +msgid "Menu Border Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:145 +msgid "Menu Background Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:153 +msgid "Button/Icon Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:159 +msgid "Button Border Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:165 +msgid "Button Background Colors" +msgstr "" + +#: inc/customizer/class-header-section.php:198 +msgid "Header Background" +msgstr "" + +#: inc/customizer/class-homepage-section.php:30 +msgid "Show Page Header" +msgstr "" + +#: inc/customizer/class-pages-section.php:43 +#: inc/customizer/class-single-post-section.php:57 +msgid "Container" +msgstr "" + +#: inc/customizer/class-pages-section.php:73 +msgid "Page Header" +msgstr "" + +#: inc/customizer/class-pages-section.php:96 +#: inc/customizer/class-single-post-section.php:104 +msgid "Featured Image" +msgstr "" + +#: inc/customizer/class-pages-section.php:111 +#: inc/customizer/class-single-post-section.php:119 +msgid "Share Box" +msgstr "" + +#: inc/customizer/class-placeholders.php:41 +#: inc/customizer/class-placeholders.php:47 +msgid "More builder elements in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:53 +msgid "Header row overlay is available in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:89 +msgid "Fully customize your button style in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:96 +msgid "Search Results for: " +msgstr "" + +#: inc/customizer/class-placeholders.php:123 +msgid "Fully customize your archive header in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:233 +msgid "Fully customize your sidebar in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:301 +msgid "Fully customize your menu's top level items in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:307 +msgid "Customize your copyright text in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:313 +msgid "More breadcrumb options in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:335 +msgid "More breadcrumb style options in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:349 +msgid "More social icon options in our %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:368 +msgid "Fully customize your social icons in our %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:376 +msgid "More layout available in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:382 +msgid "Fully customize your posts card style in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:391 +msgid "Load More & Infinite Scroll is available in our %sPro Version%s" +msgstr "" + +#: inc/customizer/class-placeholders.php:401 +msgid "Fully customize your product card style in %sPro Version%s" +msgstr "" + +#: inc/customizer/class-single-post-section.php:89 +msgid "Post Header" +msgstr "" + +#: inc/customizer/class-single-post-section.php:139 +msgid "Author Bio" +msgstr "" + +#: inc/customizer/class-single-post-section.php:145 +msgid "Posts Navigation" +msgstr "" + +#: inc/customizer/class-single-post-section.php:160 +msgid "Show Avatar" +msgstr "" + +#: inc/customizer/class-single-post-section.php:167 +msgid "Link Avatar To Author Page" +msgstr "" + +#: inc/customizer/class-single-post-section.php:171 +msgid "Avatar Size" +msgstr "" + +#: inc/customizer/class-single-post-section.php:178 +msgid "Avatar Radius" +msgstr "" + +#: inc/customizer/class-single-post-section.php:188 +msgid "Author Name Prefix" +msgstr "" + +#: inc/customizer/class-single-post-section.php:189 +msgid "Hi, I’m" +msgstr "" + +#: inc/customizer/class-single-post-section.php:193 +msgid "Show All Articles Link" +msgstr "" + +#: inc/customizer/class-single-post-section.php:200 +msgid "All Articles Text" +msgstr "" + +#: inc/customizer/class-single-post-section.php:201 +msgid "All My Articles" +msgstr "" + +#: inc/customizer/class-single-post-section.php:225 +msgid "Shadow" +msgstr "" + +#: inc/customizer/class-single-post-section.php:253 +#: inc/customizer/class-single-post-section.php:307 +#: inc/elements/class-breadcrumbs-element.php:73 +#: inc/traits/trait-article-controls.php:188 +#: inc/traits/trait-article-controls.php:241 +#: inc/traits/trait-article-controls.php:277 +msgid "Spacing" +msgstr "" + +#: inc/customizer/class-single-post-section.php:289 +#: inc/customizer/class-single-post-section.php:299 +msgid "Prev Icon" +msgstr "" + +#: inc/customizer/class-store-catalog-section.php:30 +msgid "Shop Columns" +msgstr "" + +#: inc/customizer/class-store-catalog-section.php:43 +msgid "Shop Gap" +msgstr "" + +#: inc/customizer/class-store-catalog-section.php:50 +msgid "Products Per Page" +msgstr "" + +#: inc/customizer/class-store-catalog-section.php:57 +msgid "Store Product Card" +msgstr "" + +#: inc/customizer/class-store-notice-section.php:36 +msgid "Dismiss Initial" +msgstr "" + +#: inc/customizer/class-store-notice-section.php:37 +msgid "Dismiss Hover" +msgstr "" + +#: inc/elements/class-breadcrumbs-element.php:43 +msgid "Separator" +msgstr "" + +#: inc/elements/class-breadcrumbs-element.php:50 +msgid "Type 1" +msgstr "" + +#: inc/elements/class-breadcrumbs-element.php:54 +msgid "Type 2" +msgstr "" + +#: inc/elements/class-breadcrumbs-element.php:58 +msgid "Type 3" +msgstr "" + +#: inc/elements/class-breadcrumbs-element.php:62 +msgid "Type 4" +msgstr "" + +#: inc/elements/class-button-element.php:44 +msgid "Button Link" +msgstr "" + +#: inc/elements/class-button-element.php:50 +#: inc/traits/trait-socials-controls.php:89 +msgid "Open In New Tab" +msgstr "" + +#: inc/elements/class-button-element.php:55 +#: inc/traits/trait-socials-controls.php:94 +msgid "No Follow" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:49 +#: inc/elements/class-menu-element.php:149 +msgid "Edit Menu Locations" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:54 +#: inc/elements/class-menu-element.php:154 +msgid "Menu Depth" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:55 +#: inc/elements/class-menu-element.php:155 +msgid "\"0\" meas no limit." +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:67 +msgid "Collapsable" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:68 +msgid "This option will collapse/expand the sub menu items on click/touch." +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:74 +#: inc/elements/class-menu-element.php:176 +msgid "Toggle Icon" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:83 +msgid "Toggle Style" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:88 +msgid "Simple" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:89 +#: inc/template-tags.php:1043 +msgid "Bordered" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:96 +msgid "Toggle Border" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:115 +#: inc/elements/class-copyright-element.php:40 +msgid "Color" +msgstr "" + +#: inc/elements/class-collapsable-menu-element.php:123 +msgid "Items Divider" +msgstr "" + +#: inc/elements/class-logo-element.php:45 +msgid "Logo For Dark Mode" +msgstr "" + +#: inc/elements/class-logo-element.php:53 +msgid "Dark Mode Logo" +msgstr "" + +#: inc/elements/class-logo-element.php:60 +msgid "Logo Position" +msgstr "" + +#: inc/elements/class-logo-element.php:67 +msgid "Top" +msgstr "" + +#: inc/elements/class-logo-element.php:71 +msgid "Logo Width" +msgstr "" + +#: inc/elements/class-logo-element.php:82 +msgid "Logo Spacing" +msgstr "" + +#: inc/elements/class-logo-element.php:92 +msgid "Site Title" +msgstr "" + +#: inc/elements/class-logo-element.php:97 +msgid "Site Tagline" +msgstr "" + +#: inc/elements/class-logo-element.php:102 +msgid "Click here to edit the site title and tagline." +msgstr "" + +#: inc/elements/class-logo-element.php:109 +#: inc/traits/trait-article-controls.php:167 +#: inc/traits/trait-post-card.php:63 +msgid "Content Alignment" +msgstr "" + +#: inc/elements/class-logo-element.php:121 +msgid "Site Title Typography" +msgstr "" + +#: inc/elements/class-logo-element.php:132 +msgid "Site Title Color" +msgstr "" + +#: inc/elements/class-logo-element.php:145 +msgid "Site Tagline Typography" +msgstr "" + +#: inc/elements/class-logo-element.php:155 +msgid "Site Tagline Color" +msgstr "" + +#: inc/elements/class-menu-element.php:47 +msgid "Top Level Preset" +msgstr "" + +#: inc/elements/class-menu-element.php:54 +msgid "Both Border" +msgstr "" + +#: inc/elements/class-menu-element.php:55 +msgid "Pill" +msgstr "" + +#: inc/elements/class-menu-element.php:60 +msgid "Items Height" +msgstr "" + +#: inc/elements/class-menu-element.php:78 +msgid "Min Width" +msgstr "" + +#: inc/elements/class-menu-element.php:96 +msgid "Items Padding" +msgstr "" + +#: inc/elements/class-menu-element.php:107 +msgid "Dropdown Border Radius" +msgstr "" + +#: inc/elements/class-menu-element.php:125 +msgid "Dropdown Preset" +msgstr "" + +#: inc/elements/class-menu-element.php:130 +msgid "Ghost Dark" +msgstr "" + +#: inc/elements/class-menu-element.php:132 +msgid "Solid Dark" +msgstr "" + +#: inc/elements/class-menu-element.php:168 +msgid "Sub Menu Toggle Icon" +msgstr "" + +#: inc/elements/class-menu-element.php:188 +msgid "Top Level Options" +msgstr "" + +#: inc/elements/class-menu-element.php:197 +msgid "Dropdown Options" +msgstr "" + +#: inc/elements/class-search-element.php:37 +msgid "Search Style" +msgstr "" + +#: inc/elements/class-search-element.php:43 +msgid "Popup" +msgstr "" + +#: inc/elements/class-search-element.php:45 +msgid "Inline" +msgstr "" + +#: inc/elements/class-search-element.php:52 +msgid "Search Input Width" +msgstr "" + +#: inc/elements/class-search-element.php:64 +msgid "Search Icon" +msgstr "" + +#: inc/elements/class-search-element.php:91 +msgid "Search Placeholder Text" +msgstr "" + +#: inc/elements/class-search-element.php:93 +msgid "Type & Hit Enter" +msgstr "" + +#: inc/elements/class-search-element.php:99 +msgid "Modal Style" +msgstr "" + +#: inc/elements/class-theme-switch-element.php:33 +msgid "Light Icon" +msgstr "" + +#: inc/elements/class-theme-switch-element.php:41 +msgid "Dark Icon" +msgstr "" + +#: inc/extensions/class-particles-extension.php:148 +msgid "Background Particles Effect" +msgstr "" + +#: inc/extensions/class-particles-extension.php:159 +msgid "Scope" +msgstr "" + +#: inc/extensions/class-particles-extension.php:162 +msgid "Site Body" +msgstr "" + +#: inc/extensions/class-particles-extension.php:163 +msgid "Site Content" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:31 +msgid "Preloader" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:46 +msgid "Preloader Preset" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:53 +msgid "Preset 1" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:54 +msgid "Preset 2" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:55 +msgid "Preset 3" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:56 +msgid "Preset 4" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:57 +msgid "Preset 5" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:58 +msgid "Preset 6" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:59 +msgid "Preset 7" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:60 +msgid "Preset 8" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:61 +msgid "Preset 9" +msgstr "" + +#: inc/extensions/class-preloader-extension.php:62 +msgid "Preset 10" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:50 +msgid "Related Criteria" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:54 +msgid "Category" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:55 +#: inc/traits/trait-post-structure.php:152 +msgid "Tag" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:56 +msgid "Author" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:60 +msgid "Sort By" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:65 +msgid "Recent" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:66 +msgid "Random" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:67 +msgid "Comment Count" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:71 +msgid "Posts Count" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:80 +msgid "Section Title" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:82 +#: inc/extensions/class-related-posts-extension.php:157 +msgid "Related Posts" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:120 +msgid "Grid Columns" +msgstr "" + +#: inc/extensions/class-related-posts-extension.php:132 +msgid "Items Gap" +msgstr "" + +#: inc/extensions/class-scroll-reveal-extension.php:41 +msgid "Scroll Reveal" +msgstr "" + +#: inc/extensions/class-scroll-reveal-extension.php:51 +msgid "Enable On Customize Preview" +msgstr "" + +#: inc/extensions/class-scroll-reveal-extension.php:56 +msgid "Delay" +msgstr "" + +#: inc/extensions/class-scroll-reveal-extension.php:62 +msgid "Duration" +msgstr "" + +#: inc/extensions/class-scroll-reveal-extension.php:86 +msgid "More scroll reveal options in %sPro Version%s" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:40 +msgid "Scroll Top" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:127 +#: inc/traits/trait-icon-button-controls.php:32 +msgid "Icon Size" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:137 +msgid "Bottom Offset" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:146 +msgid "Side Offset" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:156 +msgid "Position" +msgstr "" + +#: inc/extensions/class-scroll-top-extension.php:231 +msgid "Fully customize to top button in %sPro Version%s" +msgstr "" + +#: inc/extensions/class-socials-extension.php:40 +msgid "Social Networks" +msgstr "" + +#: inc/extensions/class-socials-extension.php:75 +#: inc/traits/trait-button-controls.php:45 +msgid "Label" +msgstr "" + +#: inc/extensions/class-socials-extension.php:80 +msgid "URL" +msgstr "" + +#: inc/extensions/class-socials-extension.php:85 +msgid "Share Link" +msgstr "" + +#. translators: placeholder here means the actual URL. +#: inc/extensions/class-socials-extension.php:90 +msgid "Social media sharing link formats, you can use {url} instead of the url of the current post and {text} instead of the title of the current post. %s Learn more %s" +msgstr "" + +#: inc/extensions/class-socials-extension.php:99 +msgid "Official Color" +msgstr "" + +#: inc/extensions/class-socials-extension.php:100 +#: inc/traits/trait-socials-controls.php:125 +msgid "Official" +msgstr "" + +#: inc/extensions/class-socials-extension.php:169 +msgid "Add more social networks in %sPro Version%s" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:48 +msgid "Sticky Header" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:53 +msgid "Sticky Rows" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:56 +msgid "All Rows" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:57 +msgid "Top Row Only" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:58 +msgid "Primary Row Only" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:59 +msgid "Bottom Row Only" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:60 +msgid "Top & Primary Row" +msgstr "" + +#: inc/extensions/class-sticky-extension.php:61 +msgid "Primary & Bottom Row" +msgstr "" + +#: inc/helpers.php:163 +msgid "The installation process is starting. This process may take a while on some hosts, so please be patient." +msgstr "" + +#: inc/helpers.php:173 +msgid "Upgrading %s ..." +msgstr "" + +#: inc/helpers.php:179 +msgid "Installing %s ..." +msgstr "" + +#: inc/helpers.php:186 +msgid "Activating %s ..." +msgstr "" + +#: inc/helpers.php:190 +msgid "%s installed successfully" +msgstr "" + +#: inc/helpers.php:194 +msgid "Could not install the %s plugin." +msgstr "" + +#: inc/helpers.php:202 +msgid "All Done!" +msgstr "" + +#: inc/helpers.php:204 +msgid "Return To Theme Page" +msgstr "" + +#: inc/helpers.php:210 +msgid "Access our starter sites and more extensions" +msgstr "" + +#: inc/helpers.php:217 +msgid "Learn More" +msgstr "" + +#: inc/template-functions.php:584 +msgid "Previous Post" +msgstr "" + +#: inc/template-functions.php:585 +msgid "Next Post" +msgstr "" + +#: inc/template-functions.php:586 +msgid "Page" +msgstr "" + +#: inc/template-tags.php:538 +msgid "Edit" +msgstr "" + +#: inc/template-tags.php:911 +msgid "Pages:" +msgstr "" + +#: inc/template-tags.php:1042 +#: inc/traits/trait-widgets-controls.php:140 +msgid "Plain" +msgstr "" + +#: inc/template-tags.php:1044 +msgid "Shadowed" +msgstr "" + +#: inc/template-tags.php:1045 +msgid "Mixed" +msgstr "" + +#: inc/template-tags.php:1046 +msgid "Inner Shadow" +msgstr "" + +#: inc/template-tags.php:1047 +msgid "Inner Shadow Bordered" +msgstr "" + +#: inc/template-tags.php:1048 +msgid "Solid Shadow" +msgstr "" + +#: inc/theme-setup.php:99 +msgid "Home" +msgstr "" + +#: inc/theme-setup.php:108 +msgid "Header Menu #1" +msgstr "" + +#: inc/theme-setup.php:118 +msgid "Header Menu #2" +msgstr "" + +#: inc/theme-setup.php:170 +msgid "Primary Sidebar" +msgstr "" + +#: inc/theme-setup.php:172 +#: inc/theme-setup.php:184 +msgid "Add widgets here." +msgstr "" + +#: inc/theme-setup.php:182 +msgid "Store Sidebar" +msgstr "" + +#: inc/traits/trait-article-controls.php:52 +#: inc/traits/trait-article-controls.php:136 +#: inc/traits/trait-article-controls.php:292 +msgid "%sLearn how it works%s" +msgstr "" + +#: inc/traits/trait-article-controls.php:54 +#: dist/js/block-editor.js:78 +msgid "Container Style" +msgstr "" + +#: inc/traits/trait-article-controls.php:58 +#: dist/js/block-editor.js:84 +msgid "Boxed" +msgstr "" + +#: inc/traits/trait-article-controls.php:59 +#: dist/js/block-editor.js:87 +msgid "Fluid" +msgstr "" + +#: inc/traits/trait-article-controls.php:63 +#: dist/js/block-editor.js:94 +msgid "Content Width" +msgstr "" + +#: inc/traits/trait-article-controls.php:73 +#: dist/js/block-editor.js:100 +msgid "Narrow" +msgstr "" + +#: inc/traits/trait-article-controls.php:77 +#: dist/js/block-editor.js:103 +msgid "Normal" +msgstr "" + +#: inc/traits/trait-article-controls.php:86 +msgid "Content Max Width" +msgstr "" + +#: inc/traits/trait-article-controls.php:109 +msgid "Container Style Preset" +msgstr "" + +#: inc/traits/trait-article-controls.php:141 +#: inc/traits/trait-post-structure.php:71 +msgid "Title" +msgstr "" + +#: inc/traits/trait-article-controls.php:152 +#: inc/traits/trait-post-structure.php:89 +msgid "Metas" +msgstr "" + +#: inc/traits/trait-article-controls.php:156 +#: inc/traits/trait-post-structure.php:74 +msgid "Categories" +msgstr "" + +#: inc/traits/trait-article-controls.php:161 +#: inc/traits/trait-post-structure.php:77 +msgid "Tags" +msgstr "" + +#: inc/traits/trait-article-controls.php:214 +msgid "Header Color Override" +msgstr "" + +#: inc/traits/trait-article-controls.php:218 +msgid "Override" +msgstr "" + +#: inc/traits/trait-article-controls.php:256 +msgid "Image Width" +msgstr "" + +#: inc/traits/trait-article-controls.php:262 +msgid "Wide" +msgstr "" + +#: inc/traits/trait-article-controls.php:263 +msgid "Full" +msgstr "" + +#: inc/traits/trait-article-controls.php:267 +msgid "Image Height" +msgstr "" + +#: inc/traits/trait-article-controls.php:294 +msgid "Image Fallback" +msgstr "" + +#: inc/traits/trait-article-controls.php:295 +#: inc/traits/trait-post-structure.php:222 +msgid "If the current post does not have a featured image, then this image will be displayed." +msgstr "" + +#: inc/traits/trait-article-controls.php:299 +#: inc/traits/trait-post-structure.php:197 +msgid "Image Size" +msgstr "" + +#: inc/traits/trait-article-controls.php:306 +msgid "Image Position" +msgstr "" + +#: inc/traits/trait-article-controls.php:327 +#: inc/traits/trait-post-structure.php:212 +msgid "Css Filter" +msgstr "" + +#: inc/traits/trait-button-controls.php:34 +msgid "Button" +msgstr "" + +#: inc/traits/trait-button-controls.php:51 +msgid "Show Icon" +msgstr "" + +#: inc/traits/trait-button-controls.php:63 +msgid "Choose Icon" +msgstr "" + +#: inc/traits/trait-button-controls.php:70 +msgid "Icon Direction" +msgstr "" + +#: inc/traits/trait-button-controls.php:165 +msgid "Button Style Presets" +msgstr "" + +#: inc/traits/trait-icon-button-controls.php:66 +msgid "Icon Style Preset" +msgstr "" + +#: inc/traits/trait-icon-button-controls.php:72 +msgid "Square Solid" +msgstr "" + +#: inc/traits/trait-icon-button-controls.php:73 +msgid "Square Outline" +msgstr "" + +#: inc/traits/trait-icon-button-controls.php:74 +msgid "Rounded Solid" +msgstr "" + +#: inc/traits/trait-icon-button-controls.php:75 +msgid "Rounded Outline" +msgstr "" + +#: inc/traits/trait-particles-effect.php:123 +msgid "Enable Particles Effect" +msgstr "" + +#: inc/traits/trait-particles-effect.php:140 +msgid "Particle Source" +msgstr "" + +#: inc/traits/trait-particles-effect.php:144 +msgid "Preset" +msgstr "" + +#: inc/traits/trait-particles-effect.php:145 +#: inc/traits/trait-socials-controls.php:124 +msgid "Custom" +msgstr "" + +#: inc/traits/trait-particles-effect.php:158 +msgid "Choose Particle Preset" +msgstr "" + +#: inc/traits/trait-particles-effect.php:162 +msgid "Gather" +msgstr "" + +#: inc/traits/trait-particles-effect.php:163 +msgid "Parallax" +msgstr "" + +#: inc/traits/trait-particles-effect.php:164 +msgid "NASA" +msgstr "" + +#: inc/traits/trait-particles-effect.php:165 +msgid "Polygon Bubble" +msgstr "" + +#: inc/traits/trait-particles-effect.php:166 +msgid "Circle Bubble" +msgstr "" + +#: inc/traits/trait-particles-effect.php:167 +msgid "Snow" +msgstr "" + +#: inc/traits/trait-particles-effect.php:168 +msgid "Fire Spark" +msgstr "" + +#: inc/traits/trait-particles-effect.php:169 +msgid "Nyan Cat" +msgstr "" + +#: inc/traits/trait-particles-effect.php:182 +msgid "You can customize your particles effect using the online editor in %sPro Version%s" +msgstr "" + +#: inc/traits/trait-particles-effect.php:192 +msgid "Interactivity Detect On" +msgstr "" + +#: inc/traits/trait-particles-effect.php:197 +msgid "Window" +msgstr "" + +#: inc/traits/trait-particles-effect.php:198 +msgid "Canvas" +msgstr "" + +#: inc/traits/trait-particles-effect.php:202 +#: inc/traits/trait-particles-effect.php:203 +msgid "Particle Color" +msgstr "" + +#: inc/traits/trait-particles-effect.php:204 +msgid "Line Color" +msgstr "" + +#: inc/traits/trait-particles-effect.php:207 +msgid "More particle options available in %sPro Version%s" +msgstr "" + +#: inc/traits/trait-post-card.php:48 +#: dist/js/block-editor.js:202 +msgid "Content Spacing" +msgstr "" + +#: inc/traits/trait-post-card.php:55 +msgid "Thumbnail Spacing" +msgstr "" + +#: inc/traits/trait-post-card.php:95 +msgid "Card Style" +msgstr "" + +#: inc/traits/trait-post-structure.php:80 +msgid "Thumbnail" +msgstr "" + +#: inc/traits/trait-post-structure.php:83 +#: inc/traits/trait-post-structure.php:247 +msgid "Excerpt" +msgstr "" + +#: inc/traits/trait-post-structure.php:86 +#: inc/traits/trait-post-structure.php:280 +msgid "Read More" +msgstr "" + +#: inc/traits/trait-post-structure.php:92 +msgid "Divider" +msgstr "" + +#: inc/traits/trait-post-structure.php:126 +msgid "Badge" +msgstr "" + +#: inc/traits/trait-post-structure.php:157 +msgid "H1" +msgstr "" + +#: inc/traits/trait-post-structure.php:158 +msgid "H2" +msgstr "" + +#: inc/traits/trait-post-structure.php:159 +msgid "H3" +msgstr "" + +#: inc/traits/trait-post-structure.php:160 +msgid "H4" +msgstr "" + +#: inc/traits/trait-post-structure.php:161 +msgid "H5" +msgstr "" + +#: inc/traits/trait-post-structure.php:162 +msgid "H6" +msgstr "" + +#: inc/traits/trait-post-structure.php:203 +msgid "Height" +msgstr "" + +#: inc/traits/trait-post-structure.php:216 +#: inc/traits/trait-post-structure.php:373 +msgid "Full Width" +msgstr "" + +#: inc/traits/trait-post-structure.php:221 +msgid "Use Fallback Image" +msgstr "" + +#: inc/traits/trait-post-structure.php:227 +msgid "Edit Fallback Image" +msgstr "" + +#: inc/traits/trait-post-structure.php:248 +msgid "Full Post" +msgstr "" + +#: inc/traits/trait-post-structure.php:255 +msgid "Length" +msgstr "" + +#: inc/traits/trait-post-structure.php:264 +msgid "More Text" +msgstr "" + +#: inc/traits/trait-post-structure.php:331 +msgid "Byline" +msgstr "" + +#: inc/traits/trait-post-structure.php:332 +msgid "Published Date" +msgstr "" + +#: inc/traits/trait-post-structure.php:334 +msgid "Show modified date" +msgstr "" + +#: inc/traits/trait-post-structure.php:338 +msgid "Date Format" +msgstr "" + +#. translators: placeholder here means the actual URL. +#: inc/traits/trait-post-structure.php:342 +msgid "Date format %s instructions %s." +msgstr "" + +#: inc/traits/trait-post-structure.php:349 +msgid "Comments" +msgstr "" + +#: inc/traits/trait-socials-controls.php:83 +msgid "Edit Social Network Accounts" +msgstr "" + +#: inc/traits/trait-socials-controls.php:100 +msgid "Icons Size" +msgstr "" + +#: inc/traits/trait-socials-controls.php:109 +msgid "Icons Spacing" +msgstr "" + +#: inc/traits/trait-socials-controls.php:119 +#: inc/traits/trait-socials-controls.php:144 +msgid "Icons Color" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:92 +msgid "Edit Widgets" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:108 +msgid "Sidebar Style" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:113 +#: inc/traits/trait-widgets-controls.php:141 +msgid "Style 1" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:117 +#: inc/traits/trait-widgets-controls.php:142 +msgid "Style 2" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:124 +msgid "Widget Title Tag" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:137 +msgid "Widget Title Style" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:147 +msgid "Widgets Spacing" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:172 +msgid "List Icon" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:186 +msgid "Link Underline" +msgstr "" + +#: inc/traits/trait-widgets-controls.php:197 +msgid "Widgets Card Style" +msgstr "" + +#: searchform.php:23 +msgid "Search for:" +msgstr "" + +#: template-parts/admin-cmp-upgrade.php:39 +msgid "Your Kenta Companion Plugin is outdated!" +msgstr "" + +#: template-parts/admin-cmp-upgrade.php:42 +msgid "The Kenta Companion Plugin you are using is not compatible with the current Kenta theme version, please update it to the latest version or some features will be broken." +msgstr "" + +#: template-parts/admin-cmp-upgrade.php:49 +msgid "You can update it on the %s." +msgstr "" + +#: template-parts/admin-cmp-upgrade.php:52 +msgid "Plugins Page" +msgstr "" + +#: template-parts/admin-container.php:16 +msgid "Customize" +msgstr "" + +#: template-parts/admin-container.php:19 +#: template-parts/admin-start.php:67 +msgid "Starter Sites" +msgstr "" + +#: template-parts/admin-container.php:35 +msgid "Fast, Customizable & SEO Optimized Free WordPress Theme." +msgstr "" + +#: template-parts/admin-customize.php:11 +msgid "Site Logo" +msgstr "" + +#: template-parts/admin-customize.php:16 +msgid "Colors Settings" +msgstr "" + +#: template-parts/admin-customize.php:21 +msgid "Typography Settings" +msgstr "" + +#: template-parts/admin-customize.php:26 +msgid "Menu Settings" +msgstr "" + +#: template-parts/admin-customize.php:51 +msgid "Page Settings" +msgstr "" + +#: template-parts/admin-customize.php:61 +msgid "Sidebar Settings" +msgstr "" + +#: template-parts/admin-customize.php:66 +msgid "Copyright Settings" +msgstr "" + +#: template-parts/admin-customize.php:71 +msgid "Social Settings" +msgstr "" + +#: template-parts/admin-customize.php:76 +msgid "Scroll Top Settings" +msgstr "" + +#: template-parts/admin-recommend-plugins.php:10 +msgid "Recommend Plugins" +msgstr "" + +#: template-parts/admin-recommend-plugins.php:40 +msgid "Install Plugin" +msgstr "" + +#: template-parts/admin-recommend-plugins.php:49 +msgid "Plugin Page" +msgstr "" + +#: template-parts/admin-sidebar.php:18 +msgid "Upgrade to Premium" +msgstr "" + +#: template-parts/admin-sidebar.php:19 +msgid "Upgrade to Premium Edition to support our development and get more features and functionality to help you create powerful and feature-rich websites." +msgstr "" + +#: template-parts/admin-sidebar.php:22 +msgid "Upgrade" +msgstr "" + +#: template-parts/admin-sidebar.php:27 +#: template-parts/admin-start.php:130 +msgid "Support Forum" +msgstr "" + +#: template-parts/admin-sidebar.php:28 +#: template-parts/admin-start.php:133 +msgid "If you have any question about using this theme, feel free to create a new topic in the support forum." +msgstr "" + +#: template-parts/admin-sidebar.php:32 +#: template-parts/admin-start.php:138 +msgid "Create a Topic" +msgstr "" + +#: template-parts/admin-sidebar.php:46 +msgid "Kenta Theme Homepage" +msgstr "" + +#: template-parts/admin-sidebar.php:51 +msgid "Kenta Documention" +msgstr "" + +#: template-parts/admin-sidebar.php:56 +msgid "Kenta Support Forum" +msgstr "" + +#: template-parts/admin-sidebar.php:61 +msgid "Rate Us 5 Stars" +msgstr "" + +#: template-parts/admin-sidebar.php:71 +msgid "Helpful Links" +msgstr "" + +#: template-parts/admin-start.php:39 +msgid "Congratulations!" +msgstr "" + +#: template-parts/admin-start.php:41 +msgid "Kenta is now installed and ready to use. We have some links to help you get started." +msgstr "" + +#: template-parts/admin-start.php:50 +msgid "Demo Preview" +msgstr "" + +#: template-parts/admin-start.php:57 +msgid "Dismiss" +msgstr "" + +#: template-parts/admin-start.php:70 +msgid "Kenta comes with many starter sites with various designs to choose from." +msgstr "" + +#: template-parts/admin-start.php:74 +msgid "Would you like to import pre-designed demo like the screenshot?" +msgstr "" + +#: template-parts/admin-start.php:85 +msgid "Import Demo Now" +msgstr "" + +#: template-parts/admin-start.php:91 +msgid "Visit More Demos" +msgstr "" + +#: template-parts/admin-start.php:101 +msgid "Kenta Companion & Kenta Blocks plugin will be installed" +msgstr "" + +#: template-parts/admin-start.php:111 +msgid "Documentation" +msgstr "" + +#: template-parts/admin-start.php:114 +msgid "Want more details, take a look at our documentation, which will teach you how to use Kenta." +msgstr "" + +#: template-parts/admin-start.php:119 +msgid "Read Documentation" +msgstr "" + +#: template-parts/admin-starter-sites.php:10 +msgid "Kenta comes with many starter sites with various designs to choose from. Install the Companion plugin to access our starter sites." +msgstr "" + +#: template-parts/admin-starter-sites.php:19 +msgid "Get Started" +msgstr "" + +#: template-parts/content-none.php:15 +msgid "Oops! That page can’t be found." +msgstr "" + +#: template-parts/content-none.php:17 +msgid "Nothing Found" +msgstr "" + +#. translators: %1$s: the url of 'post-new.php' +#: template-parts/content-none.php:30 +msgid "Ready to publish your first post? Get started here." +msgstr "" + +#: template-parts/content-none.php:39 +msgid "Sorry, but nothing matched your search terms. Please try again with some different keywords." +msgstr "" + +#: template-parts/content-none.php:47 +msgid "It seems we can’t find what you’re looking for. Perhaps searching can help." +msgstr "" + +#: template-parts/document-open.php:25 +msgid "Skip to content" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Boxed Page Builder Template" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Template with Narrow Content" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Boxed Page Builder Template With Transparent Header" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Template with Transparent Header and Narrow Content" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Fluid Page Builder Template" +msgstr "" + +#. Template Name of the theme +msgid "Kenta: Fluid Page Builder Template With Transparent Header" +msgstr "" + +#: dist/js/block-editor.js:66 +#: dist/js/block-editor.js:71 +msgid "Kenta Settings" +msgstr "" + +#: dist/js/block-editor.js:81 +#: dist/js/block-editor.js:97 +#: dist/js/block-editor.js:113 +#: dist/js/block-editor.js:137 +#: dist/js/block-editor.js:157 +#: dist/js/block-editor.js:173 +#: dist/js/block-editor.js:189 +#: dist/js/block-editor.js:206 +msgid "Inherit" +msgstr "" + +#: dist/js/block-editor.js:116 +msgid "No Sidebar" +msgstr "" + +#: dist/js/block-editor.js:133 +msgid "Lean More About Transparent Header." +msgstr "" + +#: dist/js/block-editor.js:140 +#: dist/js/block-editor.js:160 +#: dist/js/block-editor.js:176 +#: dist/js/block-editor.js:192 +#: dist/js/block-editor.js:209 +msgid "Enable" +msgstr "" + +#: dist/js/block-editor.js:143 +#: dist/js/block-editor.js:163 +#: dist/js/block-editor.js:179 +#: dist/js/block-editor.js:195 +#: dist/js/block-editor.js:212 +msgid "Disable" +msgstr "" + +#: dist/js/block-editor.js:151 +msgid "Elements" +msgstr "" + +#: dist/js/block-editor.js:154 +msgid "Site Header" +msgstr "" + +#: dist/js/block-editor.js:170 +msgid "Site Footer" +msgstr "" + +#: dist/js/block-editor.js:186 +msgid "Article Header" +msgstr "" + +#: dist/js/block-editor.js:204 +msgid "There is a gap between the page content and the header or footer, if you don't want it you can disable it here." +msgstr "" + +#: dist/js/block-editor.js:225 +msgid "You can override the global customize settings for individual pages or posts here." +msgstr "" + +#: dist/js/block-editor.js:3241 +msgid "Select theme scheme" +msgstr "" + +#: dist/js/block-editor.js:3251 +msgid "Theme" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Inherit" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Extra Small" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Small" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Base" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "Extra Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "2X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "3X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "4X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "5X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "6X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "7X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "8X Large" +msgstr "" + +#: theme.json +msgctxt "Font size name" +msgid "9X Large" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "2X Small" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "Extra Small" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "Small" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "Medium" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "Large" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "Extra Large" +msgstr "" + +#: theme.json +msgctxt "Space size name" +msgid "2X Large" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Primary Color" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Primary Active" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Accent Color" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Accent Active" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Base Color" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Base 100" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Base 200" +msgstr "" + +#: theme.json +msgctxt "Color name" +msgid "Base 300" +msgstr "" diff --git a/wp-content/themes/kenta/lotta-framework/LICENSE b/wp-content/themes/kenta/lotta-framework/LICENSE new file mode 100644 index 0000000000..d159169d10 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/wp-content/themes/kenta/lotta-framework/README.md b/wp-content/themes/kenta/lotta-framework/README.md new file mode 100644 index 0000000000..edf7cd811e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/README.md @@ -0,0 +1,98 @@ +# Lotta Framework + +## Changelog + +## v2.0.21 + +* Ref: Update google-fonts list + +## v2.0.20 + +* Ref: Update fontawesome icons to the latest version +* Fix: Theme live preview error + +## v2.0.19 + +* Ref: Avoiding Invalid Typography values + +## v2.0.18 + +* Ref: Remove deprecated defaultProps + +## v2.0.17 + +* Ref: Remove illuminate/contracts & psr/container + +## v2.0.16 + +* Ref: Typography cache + +## v2.0.15 + +* Ref: Update placeholder control +* Ref: Update color control preview +* Ref: Update color preset control + +## v2.0.14 + +* Ref: Customizer cache support +* Ref: PHP v8.2 compatible + +## v2.0.13 + +* Ref: Update Fontawesome v6.4.2 + +## v2.0.12 + +* Fix: Color async error + +## v2.0.11 + +* Add: File uploader control +* Add: Custom fonts support + +## v2.0.10 + +* Add: Customizer reset api + +## v2.0.9 + +* Ref: WP v6.2 & React v18 support + +## v2.0.8 + +* Ref: PHP v8.1 support + +### v2.0.7 + +* Fix: Homepage builder error in edge case + +### v2.0.6 + +* Fix: Editor control update error + +### v2.0.5 + +* Add: WPML & Polylang translate utils + +### v2.0.4 + +* Fix: Builder off canvas area can not edit after empty + +### v2.0.3 + +* Ref: PHP v8.0 support + +### v2.0.2 + +* Add: Homepage Builder reset + +### v2.0.1 + +* Ref: PHP v7.2 support + +### v2.0.0 - Stable ready + +* Add: Async css support +* Ref: Improve performance +* Fix: All know bugs diff --git a/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.css b/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.css new file mode 100644 index 0000000000..b95bfebef9 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.css @@ -0,0 +1,130 @@ +/** + Wordpress vars + */ +.customize-partial-edit-shortcut { + display: none; +} + +[data-shortcut-location] { + position: relative; +} +[data-shortcut-location] > .lotta-customizer-shortcut { + position: absolute !important; + z-index: 2; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + color: #fff !important; + margin: 0 !important; + opacity: 0; + visibility: hidden; + transition: all 0.15s ease; +} +[data-shortcut-location] > .lotta-customizer-shortcut > svg { + width: 18px; + fill: #ffffff; +} +[data-shortcut-location] > .lotta-customizer-shortcut:hover { + color: rgba(255, 255, 255, 0.75); +} +[data-shortcut-location]:hover > .lotta-customizer-shortcut { + opacity: 1; + visibility: visible; +} +[data-shortcut-location][data-shortcut*=border]::before { + content: ""; + display: block; + position: absolute; + top: -1px; + left: -1px; + width: calc(100% + 2px); + height: calc(100% + 2px); + border: 2px solid var(--lotta-primary-color, #096dd9); + opacity: 0; + visibility: hidden; + z-index: 99999; + pointer-events: none; + transition: opacity 0.15s ease; +} +[data-shortcut-location][data-shortcut*=border] > .lotta-customizer-shortcut { + top: 0; + left: 0; + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + font-size: 6px; + font-weight: 600; + letter-spacing: 0.03em; + text-transform: uppercase; + background: var(--lotta-primary-color, #096dd9); +} +[data-shortcut-location][data-shortcut*=border]:hover::before { + opacity: 1; + visibility: visible; +} +[data-shortcut-location][data-shortcut=dashed-border]::before { + border-style: dashed; +} +[data-shortcut-location][data-shortcut=section-border] > .lotta-customizer-shortcut { + width: 36px; + top: -24px; +} +[data-shortcut-location][data-shortcut=drop] > .lotta-customizer-shortcut { + display: flex; + align-items: center; + justify-content: center; + height: 30px; + padding: 0 6px; + background-color: var(--lotta-primary-color, #096dd9); + top: 36px; + right: 36px; + border-radius: 99999px; +} +[data-shortcut-location][data-shortcut=drop] > .lotta-customizer-shortcut::after { + content: ""; + width: 0; + height: 0; + display: block; + position: absolute; + border: 0; + border-right: 6px solid transparent; + border-left: 6px solid transparent; + margin-left: -6px; + left: 50%; + border-top: 6px solid var(--lotta-primary-color, #096dd9); + bottom: -5px; +} +[data-shortcut-location][data-shortcut=drop]:hover > .lotta-customizer-shortcut { + top: 24px; +} +[data-shortcut-location][data-shortcut=arrow] > .lotta-customizer-shortcut { + display: flex; + align-items: center; + justify-content: center; + height: 30px; + padding: 0 6px; + top: calc(50% - 15px); + right: -3px; + transform: translateX(90%); + background-color: var(--lotta-primary-color, #096dd9); +} +[data-shortcut-location][data-shortcut=arrow] > .lotta-customizer-shortcut::after { + content: ""; + width: 0; + height: 0; + display: block; + position: absolute; + border: 0; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + margin-top: -6px; + top: 50%; + border-right: 6px solid var(--lotta-primary-color, #096dd9); + left: -6px; +} +[data-shortcut-location][data-shortcut=arrow]:hover > .lotta-customizer-shortcut { + transform: translateX(100%); +} diff --git a/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.min.css b/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.min.css new file mode 100644 index 0000000000..e12c193ffd --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/css/customizer-preview.min.css @@ -0,0 +1 @@ +.customize-partial-edit-shortcut{display:none}[data-shortcut-location]{position:relative}[data-shortcut-location]>.lotta-customizer-shortcut{align-items:center;color:#fff!important;cursor:pointer;display:flex;justify-content:center;margin:0!important;opacity:0;position:absolute!important;transition:all .15s ease;visibility:hidden;z-index:2}[data-shortcut-location]>.lotta-customizer-shortcut>svg{fill:#fff;width:18px}[data-shortcut-location]>.lotta-customizer-shortcut:hover{color:hsla(0,0%,100%,.75)}[data-shortcut-location]:hover>.lotta-customizer-shortcut{opacity:1;visibility:visible}[data-shortcut-location][data-shortcut*=border]:before{border:2px solid var(--lotta-primary-color,#096dd9);content:"";display:block;height:calc(100% + 2px);left:-1px;opacity:0;pointer-events:none;position:absolute;top:-1px;transition:opacity .15s ease;visibility:hidden;width:calc(100% + 2px);z-index:99999}[data-shortcut-location][data-shortcut*=border]>.lotta-customizer-shortcut{align-items:center;background:var(--lotta-primary-color,#096dd9);display:flex;font-size:6px;font-weight:600;height:24px;justify-content:center;left:0;letter-spacing:.03em;text-transform:uppercase;top:0;width:24px}[data-shortcut-location][data-shortcut*=border]:hover:before{opacity:1;visibility:visible}[data-shortcut-location][data-shortcut=dashed-border]:before{border-style:dashed}[data-shortcut-location][data-shortcut=section-border]>.lotta-customizer-shortcut{top:-24px;width:36px}[data-shortcut-location][data-shortcut=drop]>.lotta-customizer-shortcut{align-items:center;background-color:var(--lotta-primary-color,#096dd9);border-radius:99999px;display:flex;height:30px;justify-content:center;padding:0 6px;right:36px;top:36px}[data-shortcut-location][data-shortcut=drop]>.lotta-customizer-shortcut:after{border:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--lotta-primary-color,#096dd9);bottom:-5px;content:"";display:block;height:0;left:50%;margin-left:-6px;position:absolute;width:0}[data-shortcut-location][data-shortcut=drop]:hover>.lotta-customizer-shortcut{top:24px}[data-shortcut-location][data-shortcut=arrow]>.lotta-customizer-shortcut{align-items:center;background-color:var(--lotta-primary-color,#096dd9);display:flex;height:30px;justify-content:center;padding:0 6px;right:-3px;top:calc(50% - 15px);transform:translateX(90%)}[data-shortcut-location][data-shortcut=arrow]>.lotta-customizer-shortcut:after{border:0;border-bottom:6px solid transparent;border-right:6px solid var(--lotta-primary-color,#096dd9);border-top:6px solid transparent;content:"";display:block;height:0;left:-6px;margin-top:-6px;position:absolute;top:50%;width:0}[data-shortcut-location][data-shortcut=arrow]:hover>.lotta-customizer-shortcut{transform:translateX(100%)} diff --git a/wp-content/themes/kenta/lotta-framework/dist/css/customizer.css b/wp-content/themes/kenta/lotta-framework/dist/css/customizer.css new file mode 100644 index 0000000000..6e220f2fb4 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/css/customizer.css @@ -0,0 +1,2972 @@ +@charset "UTF-8";:root{--tagify-dd-color-primary:rgb(53,149,246);--tagify-dd-bg-color:white}.tagify{--tags-disabled-bg:#F1F1F1;--tags-border-color:#DDD;--tags-hover-border-color:#CCC;--tags-focus-border-color:#3595f6;--tag-bg:#E5E5E5;--tag-hover:#D3E2E2;--tag-text-color:black;--tag-text-color--edit:black;--tag-pad:0.3em 0.5em;--tag-inset-shadow-size:1.1em;--tag-invalid-color:#D39494;--tag-invalid-bg:rgba(211, 148, 148, 0.5);--tag-remove-bg:rgba(211, 148, 148, 0.3);--tag-remove-btn-color:black;--tag-remove-btn-bg:none;--tag-remove-btn-bg--hover:#c77777;--input-color:inherit;--tag--min-width:1ch;--tag--max-width:auto;--tag-hide-transition:0.3s;--placeholder-color:rgba(0, 0, 0, 0.4);--placeholder-color-focus:rgba(0, 0, 0, 0.25);--loader-size:.8em;--readonly-striped:1;display:flex;align-items:flex-start;flex-wrap:wrap;border:1px solid #ddd;border:1px solid var(--tags-border-color);padding:0;line-height:0;cursor:text;outline:0;position:relative;box-sizing:border-box;transition:.1s}@keyframes tags--bump{30%{transform:scale(1.2)}}@keyframes rotateLoader{to{transform:rotate(1turn)}}.tagify:hover{border-color:#ccc;border-color:var(--tags-hover-border-color)}.tagify.tagify--focus{transition:0s;border-color:#3595f6;border-color:var(--tags-focus-border-color)}.tagify[disabled]{background:var(--tags-disabled-bg);filter:saturate(0);opacity:.5;pointer-events:none}.tagify[disabled].tagify--select,.tagify[readonly].tagify--select{pointer-events:none}.tagify[disabled]:not(.tagify--mix):not(.tagify--select),.tagify[readonly]:not(.tagify--mix):not(.tagify--select){cursor:default}.tagify[disabled]:not(.tagify--mix):not(.tagify--select)>.tagify__input,.tagify[readonly]:not(.tagify--mix):not(.tagify--select)>.tagify__input{visibility:hidden;width:0;margin:5px 0}.tagify[disabled]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div,.tagify[readonly]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div{padding:.3em .5em;padding:var(--tag-pad)}.tagify[disabled]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div::before,.tagify[readonly]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div::before{animation:readonlyStyles 1s calc(-1s * (var(--readonly-striped) - 1)) paused}@keyframes readonlyStyles{0%{background:linear-gradient(45deg,var(--tag-bg) 25%,transparent 25%,transparent 50%,var(--tag-bg) 50%,var(--tag-bg) 75%,transparent 75%,transparent) 0/5px 5px;box-shadow:none;filter:brightness(.95)}}.tagify[disabled] .tagify__tag__removeBtn,.tagify[readonly] .tagify__tag__removeBtn{display:none}.tagify--loading .tagify__input>br:last-child{display:none}.tagify--loading .tagify__input::before{content:none}.tagify--loading .tagify__input::after{content:"";vertical-align:middle;opacity:1;width:.7em;height:.7em;width:var(--loader-size);height:var(--loader-size);border:3px solid;border-color:#eee #bbb #888 transparent;border-radius:50%;animation:rotateLoader .4s infinite linear;content:""!important;margin:-2px 0 -2px .5em}.tagify--loading .tagify__input:empty::after{margin-left:0}.tagify+input,.tagify+textarea{position:absolute!important;left:-9999em!important;transform:scale(0)!important}.tagify__tag{display:inline-flex;align-items:center;margin:5px 0 5px 5px;position:relative;z-index:1;outline:0;line-height:normal;cursor:default;transition:.13s ease-out}.tagify__tag>div{vertical-align:top;box-sizing:border-box;max-width:100%;padding:.3em .5em;padding:var(--tag-pad,.3em .5em);color:#000;color:var(--tag-text-color,#000);line-height:inherit;border-radius:3px;white-space:nowrap;transition:.13s ease-out}.tagify__tag>div>*{white-space:pre-wrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:top;min-width:1ch;max-width:auto;min-width:var(--tag--min-width,1ch);max-width:var(--tag--max-width,auto);transition:.8s ease,.1s color}.tagify__tag>div>[contenteditable]{outline:0;-webkit-user-select:text;user-select:text;cursor:text;margin:-2px;padding:2px;max-width:350px}.tagify__tag>div::before{content:"";position:absolute;border-radius:inherit;left:0;top:0;right:0;bottom:0;z-index:-1;pointer-events:none;transition:120ms ease;animation:tags--bump .3s ease-out 1;box-shadow:0 0 0 1.1em #e5e5e5 inset;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-bg,#e5e5e5) inset}.tagify__tag:focus div::before,.tagify__tag:hover:not([readonly]) div::before{top:-2px;right:-2px;bottom:-2px;left:-2px;box-shadow:0 0 0 1.1em #d3e2e2 inset;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-hover,#d3e2e2) inset}.tagify__tag--loading{pointer-events:none}.tagify__tag--loading .tagify__tag__removeBtn{display:none}.tagify__tag--loading::after{--loader-size:.4em;content:"";vertical-align:middle;opacity:1;width:.7em;height:.7em;width:var(--loader-size);height:var(--loader-size);border:3px solid;border-color:#eee #bbb #888 transparent;border-radius:50%;animation:rotateLoader .4s infinite linear;margin:0 .5em 0 -.1em}.tagify__tag--flash div::before{animation:none}.tagify__tag--hide{width:0!important;padding-left:0;padding-right:0;margin-left:0;margin-right:0;opacity:0;transform:scale(0);transition:.3s;transition:var(--tag-hide-transition,.3s);pointer-events:none}.tagify__tag--hide>div>*{white-space:nowrap}.tagify__tag.tagify--noAnim>div::before{animation:none}.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div>span{opacity:.5}.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div::before{box-shadow:0 0 0 1.1em rgba(211,148,148,.5) inset!important;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-invalid-bg,rgba(211,148,148,.5)) inset!important;transition:.2s}.tagify__tag[readonly] .tagify__tag__removeBtn{display:none}.tagify__tag[readonly]>div::before{animation:readonlyStyles 1s calc(-1s * (var(--readonly-striped) - 1)) paused}@keyframes readonlyStyles{0%{background:linear-gradient(45deg,var(--tag-bg) 25%,transparent 25%,transparent 50%,var(--tag-bg) 50%,var(--tag-bg) 75%,transparent 75%,transparent) 0/5px 5px;box-shadow:none;filter:brightness(.95)}}.tagify__tag--editable>div{color:#000;color:var(--tag-text-color--edit,#000)}.tagify__tag--editable>div::before{box-shadow:0 0 0 2px #d3e2e2 inset!important;box-shadow:0 0 0 2px var(--tag-hover,#d3e2e2) inset!important}.tagify__tag--editable>.tagify__tag__removeBtn{pointer-events:none}.tagify__tag--editable>.tagify__tag__removeBtn::after{opacity:0;transform:translateX(100%) translateX(5px)}.tagify__tag--editable.tagify--invalid>div::before{box-shadow:0 0 0 2px #d39494 inset!important;box-shadow:0 0 0 2px var(--tag-invalid-color,#d39494) inset!important}.tagify__tag__removeBtn{order:5;display:inline-flex;align-items:center;justify-content:center;border-radius:50px;cursor:pointer;font:14px/1 Arial;background:0 0;background:var(--tag-remove-btn-bg,none);color:#000;color:var(--tag-remove-btn-color,#000);width:14px;height:14px;margin-right:4.6666666667px;margin-left:auto;overflow:hidden;transition:.2s ease-out}.tagify__tag__removeBtn::after{content:"×";transition:.3s,color 0s}.tagify__tag__removeBtn:hover{color:#fff;background:#c77777;background:var(--tag-remove-btn-bg--hover,#c77777)}.tagify__tag__removeBtn:hover+div>span{opacity:.5}.tagify__tag__removeBtn:hover+div::before{box-shadow:0 0 0 1.1em rgba(211,148,148,.3) inset!important;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-remove-bg,rgba(211,148,148,.3)) inset!important;transition:box-shadow .2s}.tagify:not(.tagify--mix) .tagify__input br{display:none}.tagify:not(.tagify--mix) .tagify__input *{display:inline;white-space:nowrap}.tagify__input{flex-grow:1;display:inline-block;min-width:110px;margin:5px;padding:.3em .5em;padding:var(--tag-pad,.3em .5em);line-height:normal;position:relative;white-space:pre-wrap;color:inherit;color:var(--input-color,inherit);box-sizing:inherit}.tagify__input:focus{outline:0}.tagify__input:focus::before{transition:.2s ease-out;opacity:0;transform:translatex(6px)}@supports (-ms-ime-align:auto){.tagify__input:focus::before{display:none}}.tagify__input:focus:empty::before{transition:.2s ease-out;opacity:1;transform:none;color:rgba(0,0,0,.25);color:var(--placeholder-color-focus)}@-moz-document url-prefix(){.tagify__input:focus:empty::after{display:none}}.tagify__input::before{content:attr(data-placeholder);height:1em;line-height:1em;margin:auto 0;z-index:1;color:rgba(0,0,0,.4);color:var(--placeholder-color);white-space:nowrap;pointer-events:none;opacity:0;position:absolute}.tagify__input::after{content:attr(data-suggest);display:inline-block;white-space:pre;color:#000;opacity:.3;pointer-events:none;max-width:100px}.tagify__input .tagify__tag{margin:0 1px}.tagify--mix{display:block}.tagify--mix .tagify__input{padding:5px;margin:0;width:100%;height:100%;line-height:1.5;display:block}.tagify--mix .tagify__input::before{height:auto;display:none;line-height:inherit}.tagify--mix .tagify__input::after{content:none}.tagify--select::after{content:">";opacity:.5;position:absolute;top:50%;right:0;bottom:0;font:16px monospace;line-height:8px;height:8px;pointer-events:none;transform:translate(-150%,-50%) scaleX(1.2) rotate(90deg);transition:.2s ease-in-out}.tagify--select[aria-expanded=true]::after{transform:translate(-150%,-50%) rotate(270deg) scaleY(1.2)}.tagify--select .tagify__tag{position:absolute;top:0;right:1.8em;bottom:0}.tagify--select .tagify__tag div{display:none}.tagify--select .tagify__input{width:100%}.tagify--empty .tagify__input::before{transition:.2s ease-out;opacity:1;transform:none;display:inline-block;width:auto}.tagify--mix .tagify--empty .tagify__input::before{display:inline-block}.tagify--invalid{--tags-border-color:#D39494}.tagify__dropdown{position:absolute;z-index:9999;transform:translateY(1px);overflow:hidden}.tagify__dropdown[placement=top]{margin-top:0;transform:translateY(-100%)}.tagify__dropdown[placement=top] .tagify__dropdown__wrapper{border-top-width:1.1px;border-bottom-width:0}.tagify__dropdown[position=text]{box-shadow:0 0 0 3px rgba(var(--tagify-dd-color-primary),.1);font-size:.9em}.tagify__dropdown[position=text] .tagify__dropdown__wrapper{border-width:1px}.tagify__dropdown__wrapper{max-height:300px;overflow:auto;background:#fff;background:var(--tagify-dd-bg-color);border:1px solid #3595f6;border-color:var(--tagify-dd-color-primary);border-bottom-width:1.33px;border-top-width:0;box-shadow:0 2px 4px -2px rgba(0,0,0,.2);transition:.25s cubic-bezier(0,1,.5,1)}.tagify__dropdown__header:empty{display:none}.tagify__dropdown__footer{display:inline-block;margin-top:.5em;padding:.3em .5em;font-size:.7em;font-style:italic;opacity:.5}.tagify__dropdown__footer:empty{display:none}.tagify__dropdown--initial .tagify__dropdown__wrapper{max-height:20px;transform:translateY(-1em)}.tagify__dropdown--initial[placement=top] .tagify__dropdown__wrapper{transform:translateY(2em)}.tagify__dropdown__item{box-sizing:inherit;padding:.3em .5em;margin:1px;cursor:pointer;border-radius:2px;position:relative;outline:0}.tagify__dropdown__item--active{background:#3595f6;background:var(--tagify-dd-color-primary);color:#fff}.tagify__dropdown__item:active{filter:brightness(105%)} +/** + Wordpress vars + */ /** + Override customizer width + */ +@media screen and (max-width: 1666px) { + .control-panel-themes .customize-themes-full-container, +.wp-full-overlay.expanded { + margin-left: 335px; + } +} +@media screen and (min-width: 1667px) { + .control-panel-themes .customize-themes-full-container, +.wp-full-overlay.expanded { + margin-left: 335px; + } +} + +.wp-full-overlay-sidebar { + width: 335px; +} + +.expanded .wp-full-overlay-footer, +#customize-footer-actions { + width: 334px; +} + +.wp-full-overlay.collapsed .wp-full-overlay-sidebar { + margin-left: -335px; +} + +.wp-full-overlay-sidebar { + min-width: 335px; + box-shadow: none !important; +} + +/** + Change section height + */ +ul.accordion-section-content.open { + height: 100% !important; +} + +/** + Responsive preview + */ +.wp-full-overlay { + background: var(--lotta-background-color, #f0f0f1); +} + +#customize-preview { + height: initial; + box-sizing: border-box; + background-color: transparent; +} + +#customize-preview iframe { + box-shadow: 0 0 25px rgba(0, 0, 0, 0.11), 0 0 0 1px rgba(0, 0, 0, 0.03); +} + +.preview-desktop #customize-preview { + max-height: 100%; + margin-top: auto; + margin-bottom: auto; +} + +.preview-tablet #customize-preview { + width: 850px; + max-height: 1080px; + -webkit-margin-start: -425px; + margin-inline-start: -425px; +} + +.preview-mobile #customize-preview { + width: 390px; + max-height: 720px; + -webkit-margin-start: -195px; + margin-inline-start: -195px; +} + +/** + Section title + */ +#customize-theme-controls .accordion-section-title, +#customize-outer-theme-controls .accordion-section-title { + font-size: 14px; + font-weight: 500; +} +#customize-theme-controls .accordion-section-title::after, +#customize-outer-theme-controls .accordion-section-title::after { + font-size: 12px; + top: calc(50% - 6px); +} + +/** + Call To Action Control + */ +.lotta-cta-section { + display: block !important; +} +.lotta-cta-section .button { + text-align: center; + width: 100%; +} +.lotta-cta-section .desc { + display: inline-block; + width: 100%; + text-align: center; + margin-top: 12px; + font-size: 0.875em; +} + +/** + Lotta Control + */ +[class^="customize-control customize-control-lotta"] { + margin-bottom: 0; +} + +.lotta-control { + position: relative; + margin-bottom: 28px; +} +.lotta-control > header .lotta-revert { + font-size: 10px; + width: 28px; + color: var(--lotta-primary-color, #096dd9); + opacity: 0; + transform: translate3d(-15px, 0, 0); + transition: opacity 0.2s ease, transform 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + font-family: dashicons; + padding: 0; + border: none; + background: transparent; + cursor: pointer; +} +.lotta-control > header .lotta-revert:hover:before { + transform: rotate(-45deg); +} +.lotta-control > header .lotta-revert::before { + content: "\f531"; + transform: rotate(45deg); + transition: transform 0.3s ease; +} +.lotta-control:hover > header .lotta-revert:not([disabled]) { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.lotta-control > header { + display: flex; + justify-content: space-between; + position: relative; +} +.lotta-control > header label { + font-size: 14px; + font-weight: 500; + text-transform: capitalize; + cursor: default; + display: flex; + align-items: center; +} +.lotta-control[data-design=block] > header:not(:empty) { + margin-bottom: 14px; +} +.lotta-control[data-design=inline] { + display: flex; + flex-wrap: wrap; +} +.lotta-control[data-design=inline] > section { + flex-grow: 1; + flex-shrink: 0; + display: flex; + justify-content: flex-end; +} +.lotta-control .lotta-control-desc { + flex: 0 0 100%; + font-size: 12px; + line-height: 1.5; + font-style: italic; + opacity: 0.75; + color: var(--lotta-text-color, #555d66); + margin: 10px 0 0 0; + transition: opacity 0.1s ease; +} +.lotta-control .lotta-control-desc:hover { + opacity: 1; +} + +.lotta-dashicon { + font-family: dashicons; +} + +/** + Responsive controls + */ +.lotta-responsive-controls { + display: flex; + align-items: center; + margin: 0; +} +.lotta-responsive-controls li { + display: flex; + align-items: center; + justify-content: center; + margin: 0; + cursor: pointer; + font-family: dashicons; + font-size: 15px; + line-height: normal; + color: currentColor; + -webkit-font-smoothing: antialiased; + position: relative; +} +.lotta-responsive-controls li.active { + color: var(--lotta-primary-color, #096dd9); +} +.lotta-responsive-controls li:not(.active) { + opacity: 0.6; +} +.lotta-responsive-controls li:not(.active):hover { + opacity: 0.8; +} +.lotta-responsive-controls li.lotta-desktop { + margin-right: 18px; +} +.lotta-responsive-controls li.lotta-tablet { + margin-right: 17px; +} + +/** + Devices + */ +.lotta-devices li:before, .lotta-devices li:after { + content: ""; + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; +} +.lotta-devices li.lotta-desktop { + flex-direction: column; +} +.lotta-devices li.lotta-desktop:before { + margin-bottom: 1px; + width: 17px; + height: 11px; + border: 2px solid currentColor; +} +.lotta-devices li.lotta-desktop:after { + width: 9px; + height: 2px; + background: currentColor; +} +.lotta-devices li.lotta-tablet:before { + width: 13px; + height: 14px; + border: 2px solid currentColor; + border-bottom-width: 3px; +} +.lotta-devices li.lotta-mobile:before { + width: 10px; + height: 14px; + border: 2px solid currentColor; + border-bottom-width: 3px; +} + +.lotta-value-changer { + display: flex; + align-items: center; + min-width: 90px; + height: 30px; + padding: 1px; + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; + border: 1px solid var(--lotta-border-color, #ccc); + background: var(--lotta-background-focus, #f6f7f7); + transition: background 0.15s ease, border-color 0.15s ease; +} +.lotta-value-changer.lotta-disabled { + background-color: var(--lotta-background-focus, #ffffff); +} +.lotta-value-changer.lotta-disabled:hover { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-value-changer input[type=number] { + --width: 60px; + --padding: 0 0 1px 0; + --margin: -1px -1px -1px -2px; + --fontSize: 11px; + --borderColor: transparent; + --background: transparent; + position: relative; + z-index: 1; + text-align: center; +} +.lotta-value-changer input[type=number]:focus { + --background: #fff; +} +.lotta-value-changer.no-unit { + min-width: auto; + border: none; +} +.lotta-value-changer.no-unit .lotta-value-divider { + display: none; +} +.lotta-value-changer:not(.no-unit-list) .lotta-current-value { + cursor: pointer; +} +.lotta-value-changer:not(.no-unit-list) .lotta-current-value:hover { + color: var(--lotta-primary-color, #096dd9); +} + +.lotta-value-divider { + height: 100%; + border-left: 1px solid var(--lotta-border-color, #ccc); +} + +.lotta-current-value { + display: flex; + align-items: center; + justify-content: center; + width: 35px; + height: 100%; + font-size: 9px; + font-weight: 600; + line-height: normal; + letter-spacing: 1px; + text-transform: uppercase; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition: color 0.1s ease, font-weight 0.1s ease; +} + +.lotta-value-changer { + position: relative; +} +.lotta-value-changer ul { + position: absolute; + z-index: 3; + top: -1px; + left: -1px; + display: flex; + flex-direction: column; + width: calc(100% + 2px); + padding: 2px; + margin: 0; + background: #fff; + border: 1px solid var(--lotta-border-color, #ccc); + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; + box-shadow: 0 15px 15px rgba(0, 0, 0, 0.08); + opacity: 0; + visibility: hidden; + transform-origin: center top; + transform: scale3d(0.95, 0.95, 1); + transition: opacity 0.1s ease, visibility 0.1s ease, transform 0.1s ease-out; +} +.lotta-value-changer ul li { + display: flex; + justify-content: space-between; +} +.lotta-value-changer ul li:not(:last-child) { + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-value-changer ul li:last-child { + margin-bottom: 0; +} +.lotta-value-changer ul li span { + display: flex; + align-items: center; + justify-content: center; + height: 26px; + font-size: 10px; + font-weight: 700; + text-align: center; + letter-spacing: 0.06em; + text-transform: uppercase; + color: #555d66; + cursor: pointer; + border-radius: var(--lotta-border-radius, 2px); +} +.lotta-value-changer ul li span:first-child { + width: calc(50% - 3px); +} +.lotta-value-changer ul li span:last-child { + width: calc(50% - 2px); +} +.lotta-value-changer ul li span:hover { + color: #fff; + background: var(--lotta-primary-color, #096dd9); +} +.lotta-value-changer ul:after { + position: absolute; + content: ""; + top: 3px; + left: 0px; + right: 0; + margin: 0 auto; + width: 1px; + height: calc(100% - 6px); + border-left: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-value-changer.active { + background: transparent; +} +.lotta-value-changer.active ul { + opacity: 1; + visibility: visible; + transform: scale3d(1, 1, 1); +} + +[class*=lotta-control] select, +[class*=lotta-control] textarea, +[class*=lotta-control] input[type=text], +[class*=lotta-control] input[type=number] { + --fontSize: 12px; + width: var(--width, 100%) !important; + margin: var(--margin, 0) !important; + padding: var(--padding, 4px 8px) !important; + min-height: initial; + font-size: var(--fontSize) !important; + color: var(--lotta-text-color, #555d66); + line-height: normal; + background-color: var(--lotta-background-focus, #ffffff); + border: var(--borderWidth, 1px) solid var(--lotta-border-color, #ccc) !important; + border-radius: var(--borderRadius, var(--lotta-border-radius, 2px)) !important; + box-shadow: 0 0 0 0 transparent; + transition: box-shadow 0.1s linear, background 0.1s linear, border-radius 0.1s linear, border-color 0.1s linear; +} +[class*=lotta-control] select:hover, [class*=lotta-control] select:focus, +[class*=lotta-control] textarea:hover, +[class*=lotta-control] textarea:focus, +[class*=lotta-control] input[type=text]:hover, +[class*=lotta-control] input[type=text]:focus, +[class*=lotta-control] input[type=number]:hover, +[class*=lotta-control] input[type=number]:focus { + border-color: var(--lotta-primary-color, #096dd9) !important; +} +[class*=lotta-control] select:focus, +[class*=lotta-control] textarea:focus, +[class*=lotta-control] input[type=text]:focus, +[class*=lotta-control] input[type=number]:focus { + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)) !important; +} +[class*=lotta-control] select::-moz-placeholder, [class*=lotta-control] textarea::-moz-placeholder, [class*=lotta-control] input[type=text]::-moz-placeholder, [class*=lotta-control] input[type=number]::-moz-placeholder { + opacity: 0.5; +} +[class*=lotta-control] select:-ms-input-placeholder, [class*=lotta-control] textarea:-ms-input-placeholder, [class*=lotta-control] input[type=text]:-ms-input-placeholder, [class*=lotta-control] input[type=number]:-ms-input-placeholder { + opacity: 0.5; +} +[class*=lotta-control] select::placeholder, +[class*=lotta-control] textarea::placeholder, +[class*=lotta-control] input[type=text]::placeholder, +[class*=lotta-control] input[type=number]::placeholder { + opacity: 0.5; +} +[class*=lotta-control] select, +[class*=lotta-control] input[type=text], +[class*=lotta-control] input[type=number] { + height: var(--height, 30px) !important; +} +[class*=lotta-control][data-design=inline] select, +[class*=lotta-control][data-design=inline] input[type=text] { + min-width: var(--min-width, 120px) !important; +} + +.lotta-react-color-picker { + min-width: 314px; +} +.lotta-react-color-picker .category-title { + margin: 0; + padding: 12px 12px 0 12px; + text-transform: uppercase; + font-size: 11px; +} +.lotta-react-color-picker .swatches, +.lotta-react-color-picker .color-picker { + padding: 12px; +} +.lotta-react-color-picker .color-picker { + width: auto; + padding-bottom: 0; +} +.lotta-react-color-picker .swatches { + display: flex; + gap: 6px; + flex-wrap: wrap; + border-bottom: 1px solid #dedede; +} +.lotta-react-color-picker .swatches .swatch-wrap { + line-height: 0; + font-size: 0; +} +.lotta-react-color-picker .swatches .swatch { + display: inline-block; + width: 24px; + height: 24px; + border-radius: 9999px; + cursor: pointer; + border: 1px solid #dedede; + position: relative; + line-height: 1.5; + font-size: 0.85rem; + background-color: rgba(255, 255, 255, 0.8); + background-size: 10px 10px; + background-position: 0 0, 0 5px, 5px -5px, -5px 0; + background-image: linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ddd 75%), linear-gradient(-45deg, transparent 75%, #ddd 75%); +} +.lotta-react-color-picker .swatches .swatch .swatch-inner { + display: block; + width: 100%; + height: 100%; + z-index: 1; + position: absolute; + left: 0; + top: 0; + border-radius: 9999px; + background: currentColor; +} +.lotta-react-color-picker .swatches .swatch.active { + box-shadow: 0 0 0 1px currentColor; +} +.lotta-react-color-picker .swatches .swatch.active::after { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + top: 1px; + left: -1px; + right: 0; + bottom: 0; + content: "\f147"; + font-family: dashicons; + font-size: 15px; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + z-index: 2; +} +.lotta-react-color-picker .swatches .swatch.initial-swatch::after { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + right: 0; + bottom: 0; + content: ""; + top: 10px; + left: 6px; + height: 2px; + width: 10px; + background-color: var(--lotta-primary-color, #096dd9); + transform: rotate(45deg); + z-index: 2; +} +.lotta-react-color-picker .swatches .swatch.initial-swatch > .swatch-inner { + background: transparent; +} +.lotta-react-color-picker .color-picker-value { + border-top: 1px solid #dedede; + padding: 12px; +} +.lotta-react-color-picker .color-picker-value input[type=text] { + width: 100%; + border-color: #dddddd; + transition: box-shadow 0.1s linear, background 0.1s linear, border-radius 0.1s linear, border-color 0.1s linear; +} +.lotta-react-color-picker .color-picker-value input[type=text]:focus { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-react-color-picker .react-colorful { + width: 100% !important; +} +.lotta-react-color-picker .react-colorful .react-colorful__saturation { + height: 147px !important; + border-radius: var(--lotta-border-radius-lg, 4px); + margin-bottom: 20px; +} +.lotta-react-color-picker .react-colorful .react-colorful__alpha, +.lotta-react-color-picker .react-colorful .react-colorful__hue { + width: 100%; +} +.lotta-react-color-picker .react-colorful + div { + display: none; +} + +.lotta-tooltip, +.lotta-popup { + z-index: 999999; + position: relative; +} +.lotta-tooltip .lotta-popup-arrow, .lotta-tooltip .lotta-popup-arrow::before, +.lotta-popup .lotta-popup-arrow, +.lotta-popup .lotta-popup-arrow::before { + position: absolute; + background: inherit; + z-index: -1; +} +.lotta-tooltip .lotta-popup-arrow, +.lotta-popup .lotta-popup-arrow { + visibility: hidden; +} +.lotta-tooltip .lotta-popup-arrow::before, +.lotta-popup .lotta-popup-arrow::before { + visibility: visible; + content: ""; + transform: rotate(45deg); +} + +.lotta-modal-value { + display: flex; + align-items: center; + justify-content: center; + width: 75px; + height: 30px; + cursor: pointer; + margin-left: 5px; + line-height: 1; + font-weight: 600; + background: var(--lotta-background-focus, #ffffff); + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; + border: 1px solid var(--lotta-border-color, #ccc); + transition: all 0.1s linear; + font-size: 9px; + text-transform: uppercase; +} +.lotta-modal-value:hover { + border-color: var(--lotta-primary-color, #096dd9); + color: var(--lotta-primary-color, #096dd9); +} +.lotta-modal-value.lotta-modal-value-active { + border-color: var(--lotta-primary-color, #096dd9); + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)); +} + +.lotta-tooltip { + background: #3b3b3b; + color: #ffffff; + padding: 4px 8px; + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; + min-width: -webkit-max-content; + min-width: -moz-max-content; + min-width: max-content; + font-size: 11px; +} +.lotta-tooltip .lotta-popup-arrow, .lotta-tooltip .lotta-popup-arrow::before { + width: 8px; + height: 8px; +} +.lotta-tooltip[data-popper-placement^=top] > .lotta-popup-arrow { + bottom: -4px; +} +.lotta-tooltip[data-popper-placement^=bottom] > .lotta-popup-arrow { + top: -4px; +} +.lotta-tooltip[data-popper-placement^=left] > .lotta-popup-arrow { + right: -4px; +} +.lotta-tooltip[data-popper-placement^=right] > .lotta-popup-arrow { + left: -4px; +} + +.lotta-popup { + background: #ffffff; + box-shadow: rgba(0, 0, 0, 0.08) 0 15px 15px 0; + border-radius: var(--lotta-border-radius, 2px); + border: 1px solid var(--lotta-border-lighter, #dcdcdc); +} +.lotta-popup .lotta-popup-arrow, .lotta-popup .lotta-popup-arrow::before { + width: 12px; + height: 12px; +} +.lotta-popup[data-popper-placement^=top] > .lotta-popup-arrow { + bottom: -7px; +} +.lotta-popup[data-popper-placement^=top] > .lotta-popup-arrow::before { + border-bottom: 1px solid var(--lotta-border-color, #ccc); + border-right: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-popup[data-popper-placement^=bottom] > .lotta-popup-arrow { + top: -7px; +} +.lotta-popup[data-popper-placement^=bottom] > .lotta-popup-arrow::before { + border-top: 1px solid var(--lotta-border-color, #ccc); + border-left: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-popup[data-popper-placement^=left] > .lotta-popup-arrow { + right: -6px; +} +.lotta-popup[data-popper-placement^=right] > .lotta-popup-arrow { + left: -6px; +} + +.lotta-buttons-group { + display: flex; + margin: 0; +} +.lotta-buttons-group li { + flex: 1 1 auto; + display: flex; + align-items: center; + justify-content: center; + position: relative; + font-size: 13px; + cursor: pointer; + height: 30px; + min-width: 40px; + margin: 0; + background: var(--lotta-background-focus, #f6f7f7); + line-height: 1; + box-shadow: inset 0 0 0 1px var(--lotta-border-color, #ccc); + transition: all 0.15s ease; +} +.lotta-buttons-group li:hover { + color: var(--lotta-primary-color, #096dd9); + background: var(--lotta-background-focus, #ffffff); +} +.lotta-buttons-group li.active { + z-index: 1; + color: var(--lotta-primary-color, #096dd9); + fill: var(--lotta-primary-color, #096dd9); + background: var(--lotta-background-focus, #ffffff); + box-shadow: inset 0 0 0 1px var(--lotta-primary-color, #096dd9); +} +.lotta-buttons-group li:not(:first-child) { + margin-left: -1px; +} +.lotta-buttons-group li:first-child { + border-radius: var(--lotta-border-radius, 2px) 0 0 var(--lotta-border-radius, 2px); +} +.lotta-buttons-group li:last-child { + border-radius: 0 var(--lotta-border-radius, 2px) var(--lotta-border-radius, 2px) 0; +} +.lotta-buttons-group.lotta-solid-buttons li.active { + color: #FFFFFF; + fill: #FFFFFF; + background: var(--lotta-primary-color, #096dd9); + box-shadow: inset 0 0 0 1px var(--lotta-primary-color, #2271b1); +} +.lotta-buttons-group[data-type=compact] li { + height: 26px; +} +.lotta-buttons-group[data-buttons=ratio] { + font-size: 11px; + font-weight: 500; + letter-spacing: 0.05em; +} + +.lotta-customizer-panel { + position: absolute; + z-index: 99; + background: var(--lotta-background-color, #f0f0f1); + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow-y: auto; + overflow-x: hidden; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + transition: transform 0.18s cubic-bezier(0.645, 0.045, 0.355, 1); + height: 100% !important; + box-sizing: border-box; +} + +.lotta-customizer-panel.lotta-panel-open, +.accordion-section-content.lotta-panel-open { + overflow-y: hidden !important; + transform: translateX(-100%) !important; +} + +.lotta-customizer-panel.lotta-panel-close, +.accordion-section-content.lotta-panel-close { + overflow-y: hidden !important; + transform: translateX(100%) !important; +} + +.customize-panel-actions { + display: flex; + background: #fff; + border-bottom: 1px solid #ddd; +} +.customize-panel-actions h3 { + font-size: 20px !important; + font-weight: 200; + line-height: 26px; + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: #555d66; + width: 100%; + margin: 0; + padding: 10px 10px 12px 14px; +} +.customize-panel-actions h3 span { + font-size: 13px; + display: block; + font-weight: 400; + overflow: hidden; +} + +.customizer-panel-content { + margin: 0; + padding: 0 12px 12px 12px; +} +.customizer-panel-content > li:first-child { + margin-top: 30px; +} + +.lotta-control.no-label > header { + display: none !important; +} + +.customize-control-lotta-condition, +.lotta-condition-control { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.lotta-react-select .select-input { + position: relative; + display: flex; + border-radius: var(--lotta-border-radius, 2px); + height: 30px; + padding: 0 12px; + align-items: center; + background: #FFFFFF; + border: 1px solid var(--lotta-border-color, #ccc); + transition: all ease 0.25s; + cursor: pointer; +} +.lotta-react-select .select-input:hover { + outline: 1px var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-react-select .select-input svg { + position: absolute; + width: 12px; + height: 12px; + right: 12px; + top: 50%; + margin-top: -6px; + fill: currentColor; +} +.lotta-react-select .dropdown-search-label { + display: block; + padding: 6px; + box-sizing: border-box; +} +.lotta-react-select .dropdown-search-label .dropdown-search { + max-width: 100%; +} +.lotta-react-select .select-list-item { + height: 36px; + box-sizing: border-box; + padding: 0 12px; + border-top: 1px dashed var(--lotta-border-color, #ccc); + display: flex; + align-items: center; + cursor: pointer; + background-color: var(--lotta-background-focus, #ffffff); + transition: background-color 0.15s; +} +.lotta-react-select .select-list-item:hover { + background-color: var(--lotta-primary-color, #096dd9); + color: #FFFFFF; +} + +.lotta-gradient-picker .wp-gradient-picker { + padding: 12px; +} +.lotta-gradient-picker .lotta-gradient-switches { + display: grid; + grid-template-columns: repeat(6, 1fr); + grid-column-gap: 16px; + grid-row-gap: 16px; + padding: 20px 12px; + margin: 0; + border-top: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-gradient-picker .lotta-gradient-switches li { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + margin: auto; + cursor: pointer; + border-radius: 100%; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); + background-image: var(--background-image); + transition: box-shadow 0.1s ease; +} +.lotta-gradient-picker .lotta-gradient-switches li.active { + position: relative; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 2px #fff, 0 0 0 4px #606a73; +} +.lotta-gradient-picker .lotta-gradient-switches li.active::before { + margin-top: 1px; + position: absolute; + content: "\f15e"; + font-family: "dashicons"; + font-size: 20px; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; +} + +.lotta-modal-tabs { + flex: 0 0 43px; + height: 43px; + display: flex; + margin: 0; + overflow-x: hidden; +} +.lotta-modal-tabs li { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + min-height: 100%; + margin: 0; + cursor: pointer; + font-size: 13px; + font-weight: 500; + box-sizing: border-box; + border-bottom: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-modal-tabs li:not(:last-child) { + border-right: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-modal-tabs li.active { + position: relative; +} +.lotta-modal-tabs li.active::after { + position: absolute; + content: ""; + left: -1px; + bottom: -1px; + width: calc(100% + 2px); + height: 2px; + background: var(--lotta-primary-color, #096dd9); +} + +.lotta-slider { + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 100%; + height: 18px; + cursor: pointer; + border-radius: var(--lotta-border-radius, 2px); + margin-right: 14px; +} +.lotta-slider:before { + position: absolute; + content: ""; + top: calc(50% - 2px); + left: 0; + width: calc(100% + 14px); + height: 4px; + border-radius: inherit; + background: #e1e1e1; + transition: background 0.1s; +} +.lotta-slider span { + position: absolute; + top: 0; + left: var(--position); + bottom: 0; + margin: auto 0; + width: 14px; + height: 14px; + border-radius: 100%; + background: #FFFFFF; + transition: box-shadow 0.1s ease, background 0.1s ease; + box-shadow: 0 0 2px var(--lotta-text-color, #555d66); + outline: none; +} +.lotta-slider span:hover, .lotta-slider span:focus, .lotta-slider span:active { + box-shadow: #ffffff 0 0 0 2px, var(--lotta-primary-color, #096dd9) 0 0 0 4px, rgba(0, 0, 0, 0.05) 0 1px 2px 0; +} +.lotta-slider span:active { + background: #fff; +} +.lotta-slider div { + position: absolute; + top: calc(50% - 1px); + left: 0; + height: 2px; + padding-right: calc(14px / 2); + background: var(--lotta-primary-color, #096dd9); + border-radius: inherit; +} + +.lotta-slider-control[data-design=inline] .lotta-slider-wrap { + min-width: 160px; +} + +.lotta-slider-wrap { + display: flex; + align-items: center; +} +.lotta-slider-wrap .lotta-slider { + flex: 1 1 auto; +} +.lotta-slider-wrap .lotta-slider-input { + margin-left: 7%; +} +.lotta-slider-wrap .lotta-slider-input input { + width: 45px; +} +.lotta-slider-wrap [class*=placement] { + flex: 0 0 15px; + display: flex; + margin-right: 5%; +} +.lotta-slider-wrap [class*=placement] .shape { + opacity: 0.15; + fill: #000000; +} +.lotta-slider-wrap [class*=placement] .shape-active { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-slider-wrap .placement-right svg { + transform: rotate(90deg); +} +.lotta-slider-wrap .placement-bottom svg { + transform: rotate(180deg); +} +.lotta-slider-wrap .placement-left svg { + transform: rotate(270deg); +} + +.lotta-slider-input { + position: relative; +} +.lotta-slider-input input { + position: relative; + z-index: 2; + width: 100%; + margin: 0; + text-align: center; +} + +[data-steps] div { + display: none; +} +[data-steps] section { + display: flex; + align-items: center; + justify-content: space-between; + position: absolute; + left: 0; + bottom: -7px; + height: 5px; + opacity: 0.5; + pointer-events: none; + width: calc(100% + 14px); +} +[data-steps] section i { + display: flex; + align-items: center; + justify-content: center; + position: relative; + width: 5px; + height: 5px; + font-style: normal; +} +[data-steps] section i:before { + position: absolute; + content: ""; + width: inherit; + height: 1px; + background: currentColor; +} +[data-steps] section i.zero:before { + transform: rotate(90deg); +} +[data-steps] section i.plus:after { + position: absolute; + content: ""; + width: 1px; + height: inherit; + background: currentColor; +} +[data-steps] section.positive .minus { + display: none; +} +[data-steps] section.positive .zero:before { + left: -2px; +} + +.lotta-toggle { + position: relative; + width: 40px; + height: 20px; + padding: 2px; + cursor: pointer; + border-radius: 100px; + box-sizing: border-box; + border: 2px solid var(--lotta-text-color, #555d66); + transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.15s cubic-bezier(0.4, 0, 0.2, 1); +} +.lotta-toggle:before, .lotta-toggle:after { + position: absolute; + content: ""; + display: block; + transition: opacity 0.05s cubic-bezier(0.4, 0, 0.2, 1); +} +.lotta-toggle > span { + display: flex; + width: 12px; + height: 12px; + background: var(--lotta-text-color, #555d66); + border-radius: inherit; + transform: translate3d(0, 0, 0); + transition: background 0.15s cubic-bezier(0.4, 0, 0.2, 1), transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); +} +.lotta-toggle.lotta-toggle-active { + background: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-toggle.lotta-toggle-active span { + background: #fff; + transform: translate3d(20px, 0, 0); +} + +.lotta-border { + display: flex; + align-items: center; + justify-content: flex-end; +} +.lotta-border > *:first-child { + order: 2; + margin-left: 10px; +} +.lotta-border .lotta-disabled { + justify-content: center; +} +.lotta-border .lotta-disabled input, .lotta-border .lotta-disabled .lotta-value-divider { + display: none; +} +.lotta-border .lotta-disabled ~ .lotta-color-picker-container { + display: none; +} +.lotta-border .lotta-color-picker-container:not(:last-child) { + margin-right: 10px; +} +.lotta-border [data-style]:before { + content: ""; + width: 22px; + border-bottom-width: 2px; + border-bottom-color: currentColor; +} +.lotta-border [data-style=dotted]:before { + border-bottom-style: dotted; +} +.lotta-border [data-style=solid]:before { + border-bottom-style: solid; +} +.lotta-border [data-style=dashed]:before { + border-bottom-style: dashed; +} +.lotta-border [data-style=none] { + font-size: 9px; +} +.lotta-border [data-style=none]:before { + display: none; +} + +.lotta-color-palettes-control .colors, +.lotta-color-picker .colors { + display: flex; + flex-wrap: wrap; + gap: 4px; +} +.lotta-color-palettes-control .colors > div:first-of-type, +.lotta-color-picker .colors > div:first-of-type { + margin-left: 0; +} +.lotta-color-palettes-control .preview, +.lotta-color-picker .preview { + width: 24px; + height: 24px; + flex-shrink: 0; + position: relative; + border-radius: 9999px; + cursor: pointer; + border: 1px solid var(--lotta-border-color, #ccc); + transition: box-shadow 0.2s ease-in; + background-color: rgba(255, 255, 255, 0.8); + background-size: 10px 10px; + background-position: 0 0, 0 5px, 5px -5px, -5px 0; + background-image: linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ddd 75%), linear-gradient(-45deg, transparent 75%, #ddd 75%); +} +.lotta-color-palettes-control .preview > .preview-inner, +.lotta-color-picker .preview > .preview-inner { + width: 100%; + height: 100%; + border-radius: 9999px; + background: currentColor; +} +.lotta-color-palettes-control .preview.global::after, +.lotta-color-picker .preview.global::after { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + top: 1px; + left: 1px; + right: 0; + bottom: 0; + content: "\f319"; + font-family: dashicons; + font-size: 13px; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + z-index: 2; + pointer-events: none; +} +.lotta-color-palettes-control .preview.initial-preview::after, +.lotta-color-picker .preview.initial-preview::after { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + right: 0; + bottom: 0; + content: ""; + top: 10px; + left: 6px; + height: 2px; + width: 10px; + background-color: var(--lotta-primary-color, #096dd9); + transform: rotate(45deg); + z-index: 2; +} +.lotta-color-palettes-control .preview.initial-preview > .preview-inner, +.lotta-color-picker .preview.initial-preview > .preview-inner { + background: transparent; +} +.lotta-color-palettes-control .preview:hover, +.lotta-color-picker .preview:hover { + box-shadow: 0 0 0 1px currentColor; +} + +.lotta-color-palettes-control .palette-preview { + cursor: pointer; + display: flex; + align-items: center; + justify-content: space-between; +} +.lotta-color-palettes-control .palette-preview > .dashicons { + font-size: 12px; + line-height: inherit; +} +.lotta-color-palettes-control .palette-list { + max-height: 450px; + min-width: 314px; + overflow-y: auto; +} +.lotta-color-palettes-control .palette-list .palette-item { + padding: 12px; + cursor: pointer; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-color-palettes-control .palette-list .palette-item .palette-title { + display: flex; + justify-content: space-between; + padding-bottom: 12px; + opacity: 0.75; +} +.lotta-color-palettes-control .palette-list .palette-item:hover, .lotta-color-palettes-control .palette-list .palette-item.active { + background: var(--lotta-background-focus, #f6f7f7); +} +.lotta-color-palettes-control .palette-list .palette-item:hover .palette-title, .lotta-color-palettes-control .palette-list .palette-item.active .palette-title { + opacity: 1; +} +.lotta-color-palettes-control .palette-list .palette-item:last-of-type { + border-bottom: none; +} + +.lotta-spacing { + display: flex; + align-items: flex-start; +} +.lotta-spacing > span:not(:last-of-type) { + margin-right: 4px; +} +.lotta-spacing > span input { + text-align: center; + position: relative; +} +.lotta-spacing > span input.inactive { + color: rgba(50, 55, 60, 0.5); + pointer-events: none; + background: rgba(255, 255, 255, 0.8); +} +.lotta-spacing > span input:focus + small { + color: rgba(85, 93, 102, 0.8); +} +.lotta-spacing > span .auto-num-toggle { + background: var(--lotta-background-focus, #f6f7f7); + border: 1px solid var(--lotta-border-color, #ccc); + border-radius: 2px; + font-size: 10px; + margin-top: 5px; + cursor: pointer; + text-transform: uppercase; + padding: 2px; + width: 100%; +} +.lotta-spacing > span .auto-num-toggle span { + display: block; + transform: scale(0.75); +} +.lotta-spacing > span .auto-num-toggle:focus, .lotta-spacing > span .auto-num-toggle:hover { + color: var(--lotta-primary-color, #096dd9); +} +.lotta-spacing > span small { + display: block; + margin-top: 5px; + font-size: 9px; + font-weight: 500; + line-height: normal; + text-align: center; + text-transform: uppercase; + color: rgba(85, 93, 102, 0.5); + overflow-wrap: anywhere; + transform: scale(0.85); +} +.lotta-spacing .lotta-spacing-controls { + margin-left: 4px; + min-width: 75px; +} +.lotta-spacing .lotta-spacing-controls a { + display: flex; + align-items: center; + justify-content: center; + width: 35px; + height: 100%; + cursor: pointer; + color: var(--lotta-text-color, #555d66); +} +.lotta-spacing .lotta-spacing-controls a:hover { + color: var(--lotta-primary-color, #096dd9); +} +.lotta-spacing .lotta-spacing-controls a svg { + fill: currentColor; +} + +.lotta-multi-select input[type=checkbox], +.lotta-radio-input input[type=radio] { + flex: 0 0 16px; + width: 16px; + height: 16px; + margin: 0 8px 0 0; + border: 2px solid #c3c7ca; + box-shadow: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.lotta-multi-select input[type=checkbox]:checked, +.lotta-radio-input input[type=radio]:checked { + border-color: var(--lotta-primary-color, #096dd9); + background: var(--lotta-primary-color, #096dd9); +} +.lotta-multi-select input[type=checkbox]:checked:before, +.lotta-radio-input input[type=radio]:checked:before { + content: ""; + width: 6px; + height: 6px; + margin: 3px; + background: #fff; +} + +.lotta-multi-select label:hover input[type=radio]:not(:checked), +.lotta-radio-input label:hover input[type=radio]:not(:checked) { + border-color: var(--lotta-primary-color, #096dd9); +} + +.lotta-multi-select, +.lotta-radio-input { + display: flex; + flex-wrap: wrap; + margin: 0; +} +.lotta-multi-select.lotta-buttons-group li > span, +.lotta-radio-input.lotta-buttons-group li > span { + line-height: 0; + font-size: 0; +} +.lotta-multi-select label, +.lotta-radio-input label { + display: flex; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lotta-multi-select:not([data-inline]):not([data-columns]) label, +.lotta-radio-input:not([data-inline]):not([data-columns]) label { + display: block; +} +.lotta-multi-select:not([data-inline]):not([data-columns]) label:not(:last-child), +.lotta-radio-input:not([data-inline]):not([data-columns]) label:not(:last-child) { + margin-bottom: 10px; +} +.lotta-multi-select[data-inline], +.lotta-radio-input[data-inline] { + display: flex; + flex-wrap: wrap; + margin-top: -10px; +} +.lotta-multi-select[data-inline] label, +.lotta-radio-input[data-inline] label { + padding-top: 10px; +} +.lotta-multi-select[data-inline] label:not(:last-child), +.lotta-radio-input[data-inline] label:not(:last-child) { + margin-right: 15px; +} +.lotta-multi-select[data-columns="2"], +.lotta-radio-input[data-columns="2"] { + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-column-gap: 15px; + grid-row-gap: 15px; +} +.lotta-multi-select[data-columns="3"], +.lotta-radio-input[data-columns="3"] { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-column-gap: 15px; + grid-row-gap: 15px; +} +.lotta-multi-select[data-radio-text=small] li, +.lotta-radio-input[data-radio-text=small] li { + font-size: 12px; +} + +.lotta-image-radio { + display: grid; + grid-template-columns: var(--grid-columns, repeat(2, 1fr)); + grid-column-gap: var(--column-gap, 24px); + grid-row-gap: var(--row-gap, 12px); +} +.lotta-image-radio[data-columns="3"] { + --grid-columns: repeat(3, 1fr); + --column-gap: 16px; + --row-gap: 16px; +} +.lotta-image-radio[data-columns="4"] { + --grid-columns: repeat(4, 1fr); + --column-gap: 12px; +} +.lotta-image-radio[data-columns="5"] { + --grid-columns: repeat(5, 1fr); + --column-gap: 15px; +} +.lotta-image-radio li { + display: flex; + flex-direction: column; + align-items: center; + border-radius: var(--lotta-border-radius, 2px); + cursor: pointer; + margin: 0; + position: relative; + box-sizing: border-box; + background: var(--lotta-background-focus, #f6f7f7); + transition: background, border 0.15s ease, box-shadow 0.15s ease; + border: 2px solid var(--lotta-border-color, #ccc); +} +.lotta-image-radio li svg { + width: 24px; + height: 24px; +} +.lotta-image-radio li img { + width: 100%; +} +.lotta-image-radio li > .mask { + position: absolute; + width: 100%; + height: 100%; + background-color: rgba(255, 255, 255, 0.6); + display: flex; + align-items: center; + justify-content: center; + font-size: 15px; + font-weight: bold; + color: var(--lotta-primary-color, #096dd9); +} +.lotta-image-radio li span { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: inherit; +} +.lotta-image-radio li span svg { + fill: var(--lotta-text-color, #555d66); +} +.lotta-image-radio li:not(.disabled, .active):hover { + border-color: var(--lotta-primary-color, #096dd9); + background: var(--lotta-background-focus, #ffffff); +} +.lotta-image-radio li:not(.disabled, .active):hover span svg { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-image-radio li.active { + background: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); + box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.05); +} +.lotta-image-radio li.active span svg { + fill: #fff; +} +.lotta-image-radio li > *:first-child { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.lotta-image-radio li:before { + content: ""; + width: 100%; + height: 0; + padding-bottom: var(--ratio, 69.67%); +} + +.lotta-separator > div { + border-bottom: 1px solid var(--lotta-border-color, #ccc); +} + +.lotta-section-control, +.customize-control-lotta-section { + margin-top: 0; + margin-bottom: 0; +} +.lotta-section-control > header label, +.customize-control-lotta-section > header label { + font-size: 13px; + font-weight: 500; +} + +.lotta-section-margin-top { + margin-top: 24px; +} + +.lotta-section-margin-bottom { + margin-bottom: 24px; +} + +.lotta-section-control { + position: relative; + min-height: 20px; + height: 42px; + display: flex; + align-items: center; + padding-right: 12px; +} +.lotta-section-control header { + font-weight: bold; +} +.lotta-section-control:before { + position: absolute; + content: ""; + left: -12px; + width: calc(100% + 24px); + height: 100%; + border-top: 1px solid var(--lotta-border-color, #ccc); + border-bottom: 1px solid var(--lotta-border-color, #ccc); + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAIAAABvrngfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpi+PTp038kAOQyAikGGPj8+TOQZEHj8/LyQlXB+UASJITMBwkBzUPmAwFAgAEAKZ0pdnGxpD4AAAAASUVORK5CYII=) repeat !important; +} +.lotta-section-control .lotta-section-container { + position: relative; +} +.lotta-section-control .lotta-section-option button { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + width: 25px; + height: 20px; + top: calc(50% - 10px); + right: -24px; + padding: 0; + cursor: pointer; + border: none; + opacity: 0; + pointer-events: none; + background: transparent; +} +.lotta-section-control .lotta-section-option button:after { + font-family: dashicons; + content: "\f345"; + font-size: 12px; + color: inherit; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.lotta-section-control .lotta-section-option button:focus { + outline: none; +} +.lotta-section-control .lotta-section-option .lotta-switch + button { + transform: translate3d(-7px, 0, 0); + transition: opacity 0s ease 0s, transform 0s ease 0s; +} +.lotta-section-control.lotta-activated { + cursor: pointer; + position: relative; +} +.lotta-section-control.lotta-activated header { + transition: 0.15s color ease-in-out; +} +.lotta-section-control.lotta-activated:before { + transition: 0.15s background-color ease-in-out, 0.15s border-color ease-in-out; + background: #ffffff !important; + border-left: 4px solid transparent; +} +.lotta-section-control.lotta-activated:hover .lotta-section-option button, +.lotta-section-control.lotta-activated:hover header { + color: var(--lotta-primary-color, #096dd9); +} +.lotta-section-control.lotta-activated:hover:before { + background: #f6f7f7 !important; + border-left-color: var(--lotta-primary-color, #096dd9); +} +.lotta-section-control.lotta-activated .lotta-section-option button { + opacity: 0.7; + pointer-events: auto; + transform: translate3d(0, 0, 0); + transition: opacity 0.2s ease 0.2s, transform 0.2s ease 0.2s; +} + +.lotta-tabs > ul { + display: flex; + margin: 0; +} +.lotta-tabs > ul > li { + flex: 1 1 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 12px; + font-weight: 500; + height: 38px; + margin: 0; + padding: 0 10px 0 10px; + cursor: pointer; + border: 1px solid var(--lotta-border-color, #ccc); + box-sizing: border-box; + color: var(--lotta-text-color, #555d66); + border-bottom: none; + background: var(--lotta-background-focus, #f6f7f7); +} +.lotta-tabs > ul > li:not(:first-child) { + margin-left: 6px; +} +.lotta-tabs > ul > li.active { + position: relative; + background: #ffffff; +} +.lotta-tabs > ul > li.active::before { + position: absolute; + content: ""; + top: -2px; + left: -1px; + right: -1px; + height: 2px; + background: var(--lotta-primary-color, #096dd9); +} +.lotta-tabs.lotta-tabs-solid .lotta-tab-content { + background: #ffffff; + padding: 24px 12px 0 12px; + border: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-tabs.lotta-tabs-ghost .lotta-tab-content { + padding-top: 24px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-tabs.lotta-tabs-ghost > ul { + margin: 0 -12px; + padding: 0 12px; + border-bottom: 1px solid var(--lotta-border-color, #ccc); +} + +.lotta-collapse .lotta-collapse-content { + padding-top: 24px; +} +.lotta-collapse.lotta-collapse-solid .lotta-collapse-content { + background: #ffffff; + padding: 24px 12px 0 12px; + margin: 0 -12px; + border-bottom: 1px solid var(--lotta-border-color, #ccc); +} + +.lotta-collapse-header { + background: #ffffff; + margin: 0 -12px; + border-top: 1px solid var(--lotta-border-color, #ccc); + border-bottom: 1px solid var(--lotta-border-color, #ccc); + padding: 12px; + display: flex; + align-items: center; + font-weight: bold; + cursor: pointer; +} +.lotta-collapse-header svg { + margin-right: 12px; +} + +.lotta-layers-dynamic-select { + display: flex; + align-items: center; + margin-bottom: 12px; +} +.lotta-layers-dynamic-select .lotta-react-select { + flex-grow: 1; +} +.lotta-layers-dynamic-select button { + outline: none; + border: none; + background: var(--lotta-primary-color, #096dd9); + height: 30px; + width: 45px; + display: flex; + align-items: center; + justify-content: center; + margin-left: 6px; + flex-shrink: 0; + border-radius: var(--lotta-border-radius, 2px); + cursor: pointer; + transition: background-color 0.15s; +} +.lotta-layers-dynamic-select button svg { + width: 14px; + height: 14px; + fill: #FFFFFF; +} +.lotta-layers-dynamic-select button:hover { + background: var(--lotta-primary-color, #40a9ff); +} + +.lotta-layers .layer-wrapper { + background: #ffffff; + margin-bottom: 10px; +} +.lotta-layers .layer { + display: flex; + border: 1px solid var(--lotta-border-color, #ccc); + box-sizing: border-box; + height: 32px; +} +.lotta-layers .layer.layer-invisible { + opacity: 0.7; +} +.lotta-layers .layer > *:not(:last-child) { + -webkit-border-end: 1px solid var(--lotta-border-color, #ccc); + border-inline-end: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-layers .layer .layer-label { + display: flex; + align-items: center; + flex-grow: 1; + cursor: move; + padding: 0 12px; +} +.lotta-layers .layer button { + display: flex; + align-items: center; + justify-content: center; + border: none; + background: transparent; + outline: none; + width: 32px; + flex-shrink: 0; +} +.lotta-layers .layer button:not([disabled]) { + cursor: pointer; +} +.lotta-layers .layer button svg { + width: 13px; + height: 13px; + fill: currentColor; +} +.lotta-layers .layer button:not([disabled]):hover svg { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-layers .layer-controls { + border: 1px solid var(--lotta-border-color, #ccc); + border-top-color: transparent; + padding: 24px 12px 0 12px; +} + +.lotta-info { + margin: 0 -12px; + padding: 0 12px; + line-height: 1.5; + font-style: italic; + color: var(--lotta-text-color, #555d66); +} +.lotta-info a { + color: var(--lotta-primary-color, #096dd9); + text-decoration: underline; +} +.lotta-info a:hover { + color: var(--lotta-primary-color, #1890ff); +} +.lotta-info.lotta-info-align-left { + text-align: left; +} +.lotta-info.lotta-info-align-center { + text-align: center; +} +.lotta-info.lotta-info-align-right { + text-align: right; +} +.lotta-info.lotta-info-has-background { + padding: 12px; + border-top: 1px solid var(--lotta-border-color, #ccc); + border-bottom: 1px solid var(--lotta-border-color, #ccc); + background-color: var(--lotta-background-focus, #ffffff); +} + +.lotta-cta-link, +.lotta-cta-button { + display: block; + width: 100%; + box-sizing: border-box; + transition: all ease 0.25s; + color: var(--lotta-primary-color, #096dd9); + text-align: center; + cursor: pointer; +} + +.lotta-cta-button { + background-color: var(--lotta-background-focus, #f6f7f7); + border-radius: var(--lotta-border-radius, 2px); + border: 1px solid var(--lotta-border-color, #ccc); + text-decoration: none; + padding: 12px 18px; +} +.lotta-cta-button:hover { + background-color: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); + color: #ffffff; +} + +.lotta-cta-link { + padding: 4px; + text-decoration: underline; + background-color: transparent; + border: 1px solid transparent; + outline: none; +} +.lotta-cta-link:focus, .lotta-cta-link:hover { + outline: none; + color: var(--lotta-primary-color, #40a9ff); +} +.lotta-cta-link:focus { + border-color: var(--lotta-primary-color, #096dd9); + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)); +} + +.lotta-tags { + --tag-remove-bg: #ffc7c7; + --tags-border-color: var(--lotta-border-color, #ccc); + --tags-hover-border-color: var(--lotta-border-color, #ccc); + --tags-focus-border-color: var(--lotta-primary-color, #096dd9); + border-radius: var(--lotta-border-radius, 2px); + background: var(--lotta-background-focus, #ffffff); + border: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-tags:focus, .lotta-tags.tagify--focus { + border-color: var(--lotta-primary-color, #096dd9); + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)); +} +.lotta-tags .tagify__tag div::before { + border: 1px solid var(--lotta-border-color, #ccc); + --tag-bg: var(--lotta-background-color, #f0f0f1); +} +.lotta-tags .tagify__tag:focus div::before, .lotta-tags .tagify__tag:hover:not([readonly]) div::before { + border: 1px solid var(--lotta-primary-color, #096dd9); + --tag-hover: var(--lotta-primary-color, #e6f7ff); +} +.lotta-tags .tagify__tag__removeBtn { + flex-shrink: 0; +} +.lotta-tags .tagify__tag__removeBtn:hover + div::before { + transition: all 0.2s; + background-color: var(--tag-remove-bg); +} + +.tagify__dropdown { + z-index: 9999999; + border-radius: 3px; + --tagify-dd-color-primary: var(--lotta-primary-color, #096dd9); +} + +.lotta-image-uploader { + --wp-admin-theme-color: var(--lotta-primary-color, #096dd9); +} +.lotta-image-uploader .components-number-control .components-input-control__input { + z-index: 1; +} +.lotta-image-uploader .components-number-control .components-input-control__backdrop { + box-shadow: none !important; + border-color: var(--lotta-border-color, #ccc) !important; +} +.lotta-image-uploader .thumbnail { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + cursor: pointer; +} +.lotta-image-uploader .thumbnail img { + border-radius: 3px; + max-width: 100%; +} +.lotta-image-uploader .thumbnail:hover .actions { + opacity: 1; +} +.lotta-image-uploader .thumbnail .actions { + position: absolute; + top: 18px; + right: 18px; + border-radius: var(--lotta-border-radius, 2px); + background: var(--lotta-background-focus, #ffffff); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.02); + overflow: hidden; + transition: opacity 0.15s; + opacity: 0; +} +.lotta-image-uploader .thumbnail .actions button { + width: 34px; + height: 29px; + line-height: 29px; + min-height: initial; + padding: 0; + border: none; + border-radius: 0; + background: transparent; + margin-top: 0; + color: var(--lotta-primary-color, #096dd9); + transition: background-color 0.15s; +} +.lotta-image-uploader .thumbnail .actions button:hover { + color: #fff; + background: var(--lotta-primary-color, #096dd9); +} +.lotta-image-uploader .thumbnail .actions button:last-child { + border-left: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-image-uploader .thumbnail .actions button:before { + font-family: "dashicons"; + font-size: 15px; +} +.lotta-image-uploader .thumbnail .actions .edit-button:before { + content: "\f464"; +} +.lotta-image-uploader .thumbnail .actions .remove-button:before { + content: "\f182"; +} +.lotta-image-uploader:not([data-type=no-frame]) .thumbnail { + padding: 8px; + border-radius: var(--lotta-border-radius, 2px); + border: 1px solid var(--lotta-border-color, #ccc); + background-color: var(--lotta-background-color, #f0f0f1); +} +.lotta-image-uploader .lotta-upload-button { + width: 100%; + padding: 5px 0; + border-radius: var(--lotta-border-radius, 2px); + box-shadow: none; + background: var(--lotta-background-focus, #f6f7f7); + border: 1px dashed var(--lotta-border-color, #ccc); + transition: all 0.15s; +} +.lotta-image-uploader .lotta-upload-button.active, .lotta-image-uploader .lotta-upload-button:hover { + color: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); + background: var(--lotta-background-focus, #ffffff); + box-shadow: none; +} +.lotta-image-uploader .lotta-upload-button:active { + transform: none; +} + +.lotta-background-control .lotta-background-preview-box { + height: 48px; + cursor: pointer; + border-radius: 4px; + background-color: rgba(255, 255, 255, 0.8); + background-size: 10px 10px; + background-position: 0 0, 0 5px, 5px -5px, -5px 0; + background-image: linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ddd 75%), linear-gradient(-45deg, transparent 75%, #ddd 75%); +} +.lotta-background-control .lotta-background-preview-box .lotta-background-preview { + display: flex; + align-items: center; + justify-content: center; + position: relative; + width: inherit; + height: inherit; + cursor: pointer; + border-radius: var(--lotta-border-radius-lg, 4px); + box-sizing: border-box; + box-shadow: inset 0 0 0 1px var(--lotta-border-color, #ccc); +} +.lotta-background-control .lotta-background-modal { + width: 300px; +} +.lotta-background-control .lotta-background-modal .lotta-react-color-picker { + min-width: 100%; +} +.lotta-background-control .lotta-background-modal .modal-content { + max-height: 420px; + overflow-y: auto; + overflow-x: hidden; +} +.lotta-background-control .lotta-background-modal .modal-content, .lotta-background-control .lotta-background-modal .modal-content div { + box-sizing: border-box; +} + +.lotta-background-image > div { + padding: 24px 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-background-image > div > .lotta-control:last-of-type { + margin-bottom: 0; +} +.lotta-background-image > div:last-of-type { + border-bottom: none; +} +.lotta-background-image .lotta-control { + margin-top: 0; +} + +.lotta-box-shadow { + display: flex; + align-items: center; + justify-content: flex-end; + font-size: 9px; + text-transform: uppercase; +} +.lotta-box-shadow .box-shadow-modal { + min-width: 300px; + padding-bottom: 24px; +} +.lotta-box-shadow .box-shadow-modal .box-shadow-section { + padding: 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-box-shadow .box-shadow-modal .box-shadow-section > .lotta-control:last-of-type { + margin-bottom: 0; +} +.lotta-box-shadow .box-shadow-value { + display: flex; + align-items: center; + justify-content: center; + width: 75px; + height: 30px; + cursor: pointer; + margin-left: 5px; + line-height: 1; + font-weight: 600; + background: var(--lotta-background-focus, #ffffff); + border-radius: var(--lotta-border-radius, 2px); + box-sizing: border-box; + border: 1px solid var(--lotta-border-color, #ccc); + transition: all 0.1s linear; +} +.lotta-box-shadow .box-shadow-value:hover { + border-color: var(--lotta-primary-color, #096dd9); + color: var(--lotta-primary-color, #096dd9); +} +.lotta-box-shadow .box-shadow-value.box-shadow-value-active { + border-color: var(--lotta-primary-color, #096dd9); + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)); +} + +/** + Typography Modal + */ +.lotta-typography-modal { + min-width: 300px; + overflow-x: hidden; +} +.lotta-typography-modal .typography-header { + padding: 12px; +} +.lotta-typography-modal .typography-panels { + position: relative; + min-height: 412px; + overflow: hidden; +} +.lotta-typography-modal .typography-panels > * { + width: 100%; + height: 100%; + top: 0; + left: 0; +} +.lotta-typography-modal .typography-section { + padding: 24px 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-typography-modal .typography-section > .lotta-control:last-of-type { + margin-bottom: 0; +} +.lotta-typography-modal .typography-section:last-of-type { + border-bottom: none; +} + +/** + Fonts List + */ +.lotta-fonts-list-wrapper { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} +.lotta-fonts-list-wrapper .lotta-fonts-search { + padding: 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); + flex-shrink: 0; +} +.lotta-fonts-list-wrapper .lotta-fonts-search input[type=text] { + width: 100%; + border: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-fonts-list-wrapper .lotta-fonts-search input[type=text]:hover, .lotta-fonts-list-wrapper .lotta-fonts-search input[type=text]:focus { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-fonts-list-wrapper .lotta-fonts-list { + flex-grow: 1; +} +.lotta-fonts-list-wrapper .font-item:last-of-type { + border-bottom: none; +} +.lotta-fonts-list-wrapper .font-item .font-label { + display: flex; + justify-content: space-between; + opacity: 0.75; +} +.lotta-fonts-list-wrapper .font-item .font-preview { + margin: 0; + padding-top: 6px; + font-size: 1.2em; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} + +/** + Variants List + */ +.lotta-variants-list-wrapper { + width: 100%; + height: 100%; + overflow-y: auto; +} +.lotta-variants-list-wrapper .variant-item .variant-label { + padding: 12px 0; +} + +.lotta-fonts-list-wrapper .font-item, +.lotta-variants-list-wrapper .variant-item { + padding: 6px 12px; + box-sizing: border-box; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); + cursor: pointer; + display: flex; + flex-direction: column; + justify-content: center; +} +.lotta-fonts-list-wrapper .font-item:hover, .lotta-fonts-list-wrapper .font-item.active, +.lotta-variants-list-wrapper .variant-item:hover, +.lotta-variants-list-wrapper .variant-item.active { + background: var(--lotta-primary-color, #096dd9); + color: #ffffff; +} + +/** + Text Transform & Text Decoration + */ +.lotta-text-variants { + display: flex; +} +.lotta-text-variants .text-transform { + padding-right: 6px; +} +.lotta-text-variants .text-decoration { + padding-left: 6px; +} +.lotta-text-variants .text-decoration, +.lotta-text-variants .text-transform { + flex-grow: 1; +} +.lotta-text-variants .text-decoration li, +.lotta-text-variants .text-transform li { + font-size: 13px; + font-weight: 700; + letter-spacing: 0.04em; +} +.lotta-text-variants .text-decoration li[data-variant=capitalize]:before, +.lotta-text-variants .text-transform li[data-variant=capitalize]:before { + content: "Aa"; +} +.lotta-text-variants .text-decoration li[data-variant=uppercase]:before, +.lotta-text-variants .text-transform li[data-variant=uppercase]:before { + content: "AA"; +} +.lotta-text-variants .text-decoration li[data-variant=lowercase]:before, +.lotta-text-variants .text-transform li[data-variant=lowercase]:before { + content: "aa"; +} +.lotta-text-variants .text-decoration li[data-variant=underline]:before, +.lotta-text-variants .text-decoration li[data-variant=line-through]:before, +.lotta-text-variants .text-transform li[data-variant=underline]:before, +.lotta-text-variants .text-transform li[data-variant=line-through]:before { + content: "Aa"; +} +.lotta-text-variants .text-decoration li[data-variant=underline]:after, +.lotta-text-variants .text-decoration li[data-variant=line-through]:after, +.lotta-text-variants .text-transform li[data-variant=underline]:after, +.lotta-text-variants .text-transform li[data-variant=line-through]:after { + position: absolute; + content: ""; + left: 0; + right: 0; + width: 38px; + height: 1px; + opacity: 0.6; + background: currentColor; + margin: auto; + border-radius: 2px; +} +.lotta-text-variants .text-decoration li[data-variant=underline]:after, +.lotta-text-variants .text-transform li[data-variant=underline]:after { + bottom: 6px; +} +.lotta-text-variants .text-decoration li[data-variant=line-through]:after, +.lotta-text-variants .text-transform li[data-variant=line-through]:after { + top: 3px; + bottom: 0; +} + +.lotta-page-builder .sortable-chosen, .lotta-page-builder .sortable-chosen .page-builder-column, +.lotta-page-builder .sortable-chosen .page-builder-element, +.lotta-page-builder .sortable-chosen .page-builder-row { + background-color: #f9eed9 !important; +} +.lotta-page-builder .sortable-ghost, .lotta-page-builder .sortable-ghost .page-builder-column, +.lotta-page-builder .sortable-ghost .page-builder-element, +.lotta-page-builder .sortable-ghost .page-builder-row { + background-color: #d9eaf9 !important; +} +.lotta-page-builder .page-builder-add-row, +.lotta-page-builder .page-builder-reset, +.lotta-page-builder .page-builder-row-controls button { + display: flex; + border: none; + background: none; + outline: none; + align-items: center; + cursor: pointer; +} +.lotta-page-builder .page-builder-add-row, +.lotta-page-builder .page-builder-reset { + transition: all ease 0.25s; + padding: 6px 12px; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + border-radius: 2px; + border: 1px solid var(--lotta-primary-color, #096dd9); + text-transform: uppercase; + font-size: 12px; + margin-bottom: 6px; +} +.lotta-page-builder .page-builder-add-row svg, +.lotta-page-builder .page-builder-reset svg { + margin-right: 8px; + fill: currentColor; +} +.lotta-page-builder .page-builder-add-row { + background: var(--lotta-primary-color, #096dd9); + color: #fff; +} +.lotta-page-builder .page-builder-add-row:hover { + background: var(--lotta-primary-color, #1890ff); + border-color: var(--lotta-primary-color, #1890ff); +} +.lotta-page-builder .page-builder-reset { + border-color: var(--lotta-primary-color, #096dd9); + color: var(--lotta-primary-color, #096dd9); +} +.lotta-page-builder .page-builder-reset:hover { + color: #fff; + background: var(--lotta-primary-color, #1890ff); + border-color: var(--lotta-primary-color, #1890ff); +} +.lotta-page-builder .page-builder-rows { + margin: 12px 0; + box-shadow: #ddd 0 0 4px; + background: #ffffff; +} +.lotta-page-builder .page-builder-rows .page-builder-column, +.lotta-page-builder .page-builder-rows .page-builder-element, +.lotta-page-builder .page-builder-rows .page-builder-row { + padding: 10px; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--lotta-border-color, #ccc); + cursor: -webkit-grab; + cursor: grab; +} +.lotta-page-builder .page-builder-rows .page-builder-column:hover, +.lotta-page-builder .page-builder-rows .page-builder-element:hover, +.lotta-page-builder .page-builder-rows .page-builder-row:hover { + background: var(--lotta-background-focus, #f6f7f7); +} +.lotta-page-builder .page-builder-rows .page-builder-column *, +.lotta-page-builder .page-builder-rows .page-builder-element *, +.lotta-page-builder .page-builder-rows .page-builder-row * { + transition: all ease 0.2s; +} +.lotta-page-builder .page-builder-rows .page-builder-column > div, +.lotta-page-builder .page-builder-rows .page-builder-element > div, +.lotta-page-builder .page-builder-rows .page-builder-row > div { + display: flex; + align-items: center; +} +.lotta-page-builder .page-builder-rows .page-builder-column:hover .page-builder-actions, +.lotta-page-builder .page-builder-rows .page-builder-element:hover .page-builder-actions, +.lotta-page-builder .page-builder-rows .page-builder-row:hover .page-builder-actions { + opacity: 1; +} +.lotta-page-builder .page-builder-rows .page-builder-column svg, .lotta-page-builder .page-builder-rows .page-builder-column span, +.lotta-page-builder .page-builder-rows .page-builder-element svg, +.lotta-page-builder .page-builder-rows .page-builder-element span, +.lotta-page-builder .page-builder-rows .page-builder-row svg, +.lotta-page-builder .page-builder-rows .page-builder-row span { + fill: currentColor; + padding: 0 6px; +} +.lotta-page-builder .page-builder-rows .page-builder-column button, +.lotta-page-builder .page-builder-rows .page-builder-element button, +.lotta-page-builder .page-builder-rows .page-builder-row button { + display: flex; + align-items: center; + cursor: pointer; + background: none; + border: none; + outline: none; + padding: 0; +} +.lotta-page-builder .page-builder-rows .page-builder-column button svg, +.lotta-page-builder .page-builder-rows .page-builder-element button svg, +.lotta-page-builder .page-builder-rows .page-builder-row button svg { + fill: #4b5866; +} +.lotta-page-builder .page-builder-rows .page-builder-column button:hover svg, +.lotta-page-builder .page-builder-rows .page-builder-element button:hover svg, +.lotta-page-builder .page-builder-rows .page-builder-row button:hover svg { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-page-builder .page-builder-rows .page-builder-column button.remove:hover svg, +.lotta-page-builder .page-builder-rows .page-builder-element button.remove:hover svg, +.lotta-page-builder .page-builder-rows .page-builder-row button.remove:hover svg { + fill: #dc2626; +} +.lotta-page-builder .page-builder-rows .page-builder-column button.move-handle, +.lotta-page-builder .page-builder-rows .page-builder-element button.move-handle, +.lotta-page-builder .page-builder-rows .page-builder-row button.move-handle { + cursor: move; +} +.lotta-page-builder .page-builder-rows .page-builder-column { + padding-left: 20px; +} +.lotta-page-builder .page-builder-rows .page-builder-element { + padding-left: 45px; +} +.lotta-page-builder .page-builder-rows .page-builder-element .page-builder-element-icon { + display: flex; + align-items: center; +} +.lotta-page-builder .page-builder-rows .page-builder-element .page-builder-element-icon svg { + width: 14px; + height: 14px; +} + +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar { + position: absolute; + left: 0; + top: 0; + width: 300px; + height: 100%; + background: var(--lotta-background-color, #f0f0f1); + border-right: 1px solid var(--lotta-border-color, #ccc); + transition: transform 0.12s ease-in; + box-shadow: #c7c7c7 0 0 15px 0; + overflow-y: auto; + padding: 12px; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar, .lotta-page-builder-sidebar-wrapper .page-builder-sidebar div { + box-sizing: border-box; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header { + display: flex; + font-weight: bold; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--lotta-border-color, #ccc); + background-color: #ffffff; + padding: 12px 24px; + margin: 0 -12px; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button { + border: none; + background: none; + outline: none; + cursor: pointer; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button, .lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button svg { + transition: all ease 0.25s; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button svg { + fill: currentColor; +} +.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button:hover svg { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-page-builder-sidebar-wrapper .row-structure-list { + display: flex; + flex-wrap: wrap; +} +.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item { + width: 50%; + flex-shrink: 0; + padding: 12px; + cursor: pointer; + display: flex; +} +.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item .row-structure-column { + height: 60px; + background: var(--lotta-border-color, #ccc); + margin-right: 4px; + transition: all ease 0.25s; +} +.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item .row-structure-column:last-child { + margin-right: 0; +} +.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item:hover .row-structure-column { + background: var(--lotta-primary-color, #096dd9); +} +.lotta-page-builder-sidebar-wrapper .builder-elements { + display: flex; + flex-wrap: wrap; + padding: 6px 0; +} +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper { + width: 50%; + flex-shrink: 0; + padding: 6px; + cursor: pointer; +} +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element { + padding: 6px; + height: 100%; + background: #ffffff; + border: 1px solid var(--lotta-border-color, #ccc); + transition: all ease 0.25s; + border-radius: 3px; +} +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element img, +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element svg { + fill: #d2d2d8; + display: block; + height: 60px; + width: 100%; +} +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element .element-label { + font-size: 10px; + font-weight: bold; + display: block; + text-align: center; + border-top: 1px solid var(--lotta-border-color, #ccc); + margin: 0 -6px; + padding-top: 4px; + margin-top: 6px; +} +.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper:hover .builder-element { + border-color: var(--lotta-primary-color, #096dd9); +} + +.lotta-builder-element { + margin-bottom: 12px; + padding: 8px 12px; + background: #ffffff; + border: 1px solid var(--lotta-border-color, #ccc); + border-radius: 2px; + cursor: move; + display: flex; + justify-content: space-between; + align-items: center; + transition: border-color 0.2s ease; +} +.lotta-builder-element .lotta-dashicon { + font-size: 12px; +} +.lotta-builder-element:last-of-type { + margin-bottom: 0; +} +.lotta-builder-element:hover { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-builder-element.inactive { + cursor: pointer; + background: var(--lotta-background-focus, #f6f7f7); +} + +.lotta-builder-placements-wrapper.leave .lotta-builder-placements { + transform: translateY(100%) !important; +} + +.lotta-builder-placements { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background: var(--lotta-background-color, #f0f0f1); + box-sizing: border-box; + transition: transform 0.12s ease-in; +} +.lotta-builder-placements .builder-placements-wrapper { + padding: 24px; + border-top: 1px solid var(--lotta-border-color, #ccc); + display: flex; +} +.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area { + width: 200px; + flex-shrink: 0; + margin-right: 24px; +} +.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-row, .lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-columns { + height: 100%; +} +.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-sortable-items { + flex-direction: column; + padding-bottom: 28px; +} +.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-sortable-items .builder-item { + min-width: 100%; + max-width: 100%; + box-sizing: border-box; + margin-bottom: 12px; +} +.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-column .builder-column-actions { + justify-content: center; + height: 28px; + width: 100%; + bottom: 0; + top: auto; +} +.lotta-builder-placements .builder-placements-wrapper .builder-rows-area { + flex-grow: 1; +} +.lotta-builder-placements .builder-row { + position: relative; + margin-bottom: 24px; +} +.lotta-builder-placements .builder-row:last-of-type { + margin-bottom: 0; +} +.lotta-builder-placements .builder-row .builder-row-actions { + position: absolute; + font-size: 0.75rem; + height: 22px; + top: -22px; + left: 0px; + background: var(--lotta-primary-color, #096dd9); + display: flex; + align-items: center; + opacity: 0; + visibility: hidden; + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} +.lotta-builder-placements .builder-row .builder-row-actions .mr-4 { + margin-right: 4px; +} +.lotta-builder-placements .builder-row .builder-row-actions > div { + height: 100%; +} +.lotta-builder-placements .builder-row .builder-row-actions button { + display: flex; + align-items: center; + border: none; + background: transparent; + outline: none; + line-height: 1; + height: 100%; + padding: 0 12px; + border-right: 1px dashed var(--lotta-border-color, #ccc); + cursor: pointer; + color: rgba(255, 255, 255, 0.75); +} +.lotta-builder-placements .builder-row .builder-row-actions button:disabled { + opacity: 0.5; +} +.lotta-builder-placements .builder-row .builder-row-actions button:last-of-type { + border-right: none; +} +.lotta-builder-placements .builder-row .builder-row-actions button:not([disabled]):hover { + color: #ffffff; +} +.lotta-builder-placements .builder-row:hover .builder-columns { + border-color: var(--lotta-primary-color, #096dd9); + border-style: solid; + border-top-left-radius: 0; +} +.lotta-builder-placements .builder-row:hover .builder-row-actions { + opacity: 1; + visibility: visible; +} +.lotta-builder-placements .builder-columns { + border: 1px solid var(--lotta-border-color, #ccc); + display: flex; + border-radius: 2px; + min-height: 60px; + background: var(--lotta-background-focus, #f6f7f7); +} +.lotta-builder-placements .builder-columns .builder-sortable-items { + display: flex; + flex-wrap: wrap; + height: 100%; + align-items: flex-start; +} +.lotta-builder-placements .builder-columns .builder-column { + display: flex; + flex-grow: 1; + padding: 6px 12px; + position: relative; + min-height: 32px; + border-right: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-builder-placements .builder-columns .builder-column:last-of-type { + border-right: none; +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns { + position: absolute; + cursor: pointer; + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; + width: 18px; + top: 0; + right: -9px; + z-index: 1; +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button { + opacity: 0; + outline: none; + border: none; + cursor: pointer; + fill: var(--lotta-primary-color, #096dd9); + border-radius: 9999px; + padding: 0; + font-size: 0; + line-height: 0; + margin-bottom: 4px; +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button:last-of-type { + margin-bottom: 0; +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button svg { + width: 14px; + height: 14px; +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns .builder-add-column { + fill: var(--lotta-primary-color, #096dd9); +} +.lotta-builder-placements .builder-columns .builder-column .builder-change-columns .builder-remove-column { + fill: #cb0909; +} +.lotta-builder-placements .builder-columns .builder-column .builder-column-actions { + position: absolute; + right: 0; + top: 0; + height: 100%; + display: flex; +} +.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button { + background: transparent; + outline: none; + display: flex; + align-items: center; + font-size: 12px; + line-height: 1; + height: 100%; + padding: 0 6px; + cursor: pointer; + transition: background, color 0.2s ease; + border: none; +} +.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button .lotta-dashicon { + font-size: 14px; +} +.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button:hover { + background: #ffffff; + color: var(--lotta-primary-color, #096dd9); +} +.lotta-builder-placements .builder-columns .builder-column .builder-column-content { + padding: 4px; + position: relative; + flex-grow: 1; +} +.lotta-builder-placements .builder-columns .builder-column .builder-item { + border: #ffffff; + background-color: #ffffff; + border-radius: 2px; + border: 1px solid var(--lotta-border-color, #ccc); + margin: 3px; + display: flex; + justify-content: space-between; + align-items: center; + min-width: 80px; + padding: 6px 12px; + cursor: -webkit-grab; + cursor: grab; +} +.lotta-builder-placements .builder-columns .builder-column .builder-item:hover { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-builder-placements .builder-columns .builder-column .builder-item:last-of-type { + margin-right: 0; +} +.lotta-builder-placements .builder-columns .builder-column .builder-item .lotta-dashicon:hover { + color: var(--lotta-danger-color, #b12222); +} +.lotta-builder-placements .builder-columns .builder-column:hover .builder-change-columns button { + opacity: 1; +} +.lotta-builder-placements .builder-footer { + height: 45px; + border-top: 1px solid var(--lotta-border-color, #ccc); + display: flex; + justify-content: flex-end; + align-items: center; + padding: 0 24px; +} +.lotta-builder-placements .builder-footer .builder-responsive-controls { + display: flex; + margin: 0; + height: 100%; + flex-grow: 1; +} +.lotta-builder-placements .builder-footer .builder-responsive-controls li { + cursor: pointer; + margin-bottom: 0; + position: relative; + padding: 0 12px; + display: flex; + align-items: center; + border-right: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-builder-placements .builder-footer .builder-responsive-controls li:first-child { + border-left: 1px solid var(--lotta-border-color, #ccc); +} +.lotta-builder-placements .builder-footer .builder-responsive-controls li.active::after { + display: block; + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 4px; + background-color: #1d2327; +} +.lotta-builder-placements .builder-footer .builder-responsive-controls li:hover { + color: var(--lotta-primary-color, #096dd9); + background-color: var(--lotta-background-focus, #f6f7f7); +} +.lotta-builder-placements .builder-footer .builder-responsive-controls li.active { + background-color: #ffffff; +} +.lotta-builder-placements .builder-footer .toggle { + outline: none; + height: 100%; + display: flex; + align-items: center; + background: transparent; + border: 1px solid var(--lotta-border-color, #ccc); + border-top: none; + border-bottom: none; + padding: 6px 12px; + cursor: pointer; +} +.lotta-builder-placements .builder-footer .toggle .lotta-dashicon { + margin-right: 4px; +} +.lotta-builder-placements .builder-footer .toggle:hover { + background: var(--lotta-background-focus, #f6f7f7); + color: var(--lotta-primary-color, #096dd9); +} + +.builder-element-list .builder-element { + padding: 8px 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); + cursor: -webkit-grab; + cursor: grab; + min-width: 120px; +} +.builder-element-list .builder-element:hover { + background: var(--lotta-background-focus, #f6f7f7); +} +.builder-element-list .builder-element:last-of-type { + border-bottom: none; +} + +.lotta-repeater .repeater-add-element { + display: flex; + outline: none; + cursor: pointer; + background: var(--lotta-background-color, #aaaeb2); + transition: all ease 0.25s; + padding: 6px 12px; + width: 100%; + justify-content: center; + align-items: center; + border-radius: 2px; + border: 1px solid var(--lotta-background-color, #aaaeb2); + color: #fff; + text-transform: uppercase; + font-size: 12px; +} +.lotta-repeater .repeater-add-element svg { + fill: #FFFFFF; + margin-right: 8px; +} +.lotta-repeater .repeater-add-element:hover { + background: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); +} + +.lotta-icons-modal { + width: 320px; +} +.lotta-icons-modal .lotta-icons-modal-content { + max-height: 360px; + overflow-y: auto; + overflow-x: hidden; + padding: 12px; + display: grid; + grid-template-columns: repeat(6, 1fr); + justify-items: center; + grid-column-gap: 12px; + grid-row-gap: 12px; +} +.lotta-icons-modal .lotta-icons-modal-content .lotta-icon-preview.active, .lotta-icons-modal .lotta-icons-modal-content .lotta-icon-preview:hover { + box-shadow: none; + color: #FFFFFF; + background: var(--lotta-primary-color, #096dd9); +} +.lotta-icons-modal .icons-filter { + padding: 12px; + border-bottom: 1px solid var(--lotta-border-color, #ccc); +} + +.lotta-icons .lotta-icon-preview { + display: inline-flex; + width: 32px; + height: 32px; + justify-content: center; + align-items: center; + font-size: 16px; + cursor: pointer; + background: var(--lotta-background-focus, #ffffff); + border-radius: var(--lotta-border-radius, 2px); + border: 1px solid var(--lotta-border-color, #ccc); + transition: ease 0.2s; +} +.lotta-icons .lotta-icon-preview.active, .lotta-icons .lotta-icon-preview:hover { + border-color: var(--lotta-primary-color, #096dd9); +} +.lotta-icons .lotta-icon-preview.active { + box-shadow: 0 0 0 2px var(--lotta-primary-outline, rgba(24, 144, 255, 0.2)); +} + +.lotta-css-filter .css-filter-modal { + min-width: 260px; + padding-bottom: 24px; +} +.lotta-css-filter .css-filter-modal .css-filter-section { + padding: 12px; + border-bottom: 1px dashed var(--lotta-border-color, #ccc); +} +.lotta-css-filter .css-filter-modal .css-filter-section:last-of-type { + border-bottom: 0; +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control { + padding: 0; +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.brightness .lotta-slider div, .lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.saturate .lotta-slider div, .lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.hue .lotta-slider div { + background: none; +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.brightness .lotta-slider::before { + background-image: linear-gradient(to right, black, white); +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.saturate .lotta-slider::before { + background-image: linear-gradient(to right, gray, red); +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control.hue .lotta-slider::before { + background-image: linear-gradient(to right, red, orange, yellow, greenyellow, limegreen, deepskyblue, blue, darkviolet 95%); +} +.lotta-css-filter .css-filter-modal .css-filter-section > .lotta-control:last-of-type { + margin-bottom: 0; +} + +.lotta-file-uploader { + --wp-admin-theme-color: var(--lotta-primary-color, #096dd9); +} +.lotta-file-uploader .lotta-upload-button { + width: 100%; + padding: 5px 0; + border-radius: var(--lotta-border-radius, 2px); + box-shadow: none; + background: var(--lotta-background-focus, #f6f7f7); + border: 1px dashed var(--lotta-border-color, #ccc); + transition: all 0.15s; +} +.lotta-file-uploader .lotta-upload-button.active, .lotta-file-uploader .lotta-upload-button:hover { + color: var(--lotta-primary-color, #096dd9); + border-color: var(--lotta-primary-color, #096dd9); + background: var(--lotta-background-focus, #ffffff); + box-shadow: none; +} +.lotta-file-uploader .lotta-upload-button:active { + transform: none; +} +.lotta-file-uploader .lotta-file-list { + margin: 10px 0 10px 18px; + padding: 0; + list-style: circle; + opacity: 0.85; +} +.lotta-file-uploader .lotta-file-list li { + margin: 0; +} diff --git a/wp-content/themes/kenta/lotta-framework/dist/css/customizer.min.css b/wp-content/themes/kenta/lotta-framework/dist/css/customizer.min.css new file mode 100644 index 0000000000..7827d06385 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/css/customizer.min.css @@ -0,0 +1,2 @@ +@charset "UTF-8";:root{--tagify-dd-color-primary:#3595f6;--tagify-dd-bg-color:#fff}.tagify{--tags-disabled-bg:#f1f1f1;--tags-border-color:#ddd;--tags-hover-border-color:#ccc;--tags-focus-border-color:#3595f6;--tag-bg:#e5e5e5;--tag-hover:#d3e2e2;--tag-text-color:#000;--tag-text-color--edit:#000;--tag-pad:0.3em 0.5em;--tag-inset-shadow-size:1.1em;--tag-invalid-color:#d39494;--tag-invalid-bg:hsla(0,42%,70%,.5);--tag-remove-bg:hsla(0,42%,70%,.3);--tag-remove-btn-color:#000;--tag-remove-btn-bg:none;--tag-remove-btn-bg--hover:#c77777;--input-color:inherit;--tag--min-width:1ch;--tag--max-width:auto;--tag-hide-transition:0.3s;--placeholder-color:rgba(0,0,0,.4);--placeholder-color-focus:rgba(0,0,0,.25);--loader-size:.8em;--readonly-striped:1;align-items:flex-start;border:1px solid #ddd;border:1px solid var(--tags-border-color);box-sizing:border-box;cursor:text;display:flex;flex-wrap:wrap;line-height:0;outline:0;padding:0;position:relative;transition:.1s}@keyframes tags--bump{30%{transform:scale(1.2)}}@keyframes rotateLoader{to{transform:rotate(1turn)}}.tagify:hover{border-color:#ccc;border-color:var(--tags-hover-border-color)}.tagify.tagify--focus{border-color:#3595f6;border-color:var(--tags-focus-border-color);transition:0s}.tagify[disabled]{background:var(--tags-disabled-bg);filter:saturate(0);opacity:.5}.tagify[disabled],.tagify[disabled].tagify--select,.tagify[readonly].tagify--select{pointer-events:none}.tagify[disabled]:not(.tagify--mix):not(.tagify--select),.tagify[readonly]:not(.tagify--mix):not(.tagify--select){cursor:default}.tagify[disabled]:not(.tagify--mix):not(.tagify--select)>.tagify__input,.tagify[readonly]:not(.tagify--mix):not(.tagify--select)>.tagify__input{margin:5px 0;visibility:hidden;width:0}.tagify[disabled]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div,.tagify[readonly]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div{padding:.3em .5em;padding:var(--tag-pad)}.tagify[disabled]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div:before,.tagify[readonly]:not(.tagify--mix):not(.tagify--select) .tagify__tag>div:before{animation:readonlyStyles 1s calc(-1s*(var(--readonly-striped) - 1)) paused}.tagify--loading .tagify__input>br:last-child,.tagify[disabled] .tagify__tag__removeBtn,.tagify[readonly] .tagify__tag__removeBtn{display:none}.tagify--loading .tagify__input:before{content:none}.tagify--loading .tagify__input:after{animation:rotateLoader .4s linear infinite;border-color:#eee #bbb #888 transparent;border-radius:50%;border-style:solid;border-width:3px;content:"";content:""!important;height:.7em;height:var(--loader-size);margin:-2px 0 -2px .5em;opacity:1;vertical-align:middle;width:.7em;width:var(--loader-size)}.tagify--loading .tagify__input:empty:after{margin-left:0}.tagify+input,.tagify+textarea{left:-9999em!important;position:absolute!important;transform:scale(0)!important}.tagify__tag{align-items:center;cursor:default;display:inline-flex;line-height:normal;margin:5px 0 5px 5px;outline:0;position:relative;transition:.13s ease-out;z-index:1}.tagify__tag>div{border-radius:3px;box-sizing:border-box;color:#000;color:var(--tag-text-color,#000);line-height:inherit;max-width:100%;padding:.3em .5em;padding:var(--tag-pad,.3em .5em);transition:.13s ease-out;vertical-align:top;white-space:nowrap}.tagify__tag>div>*{display:inline-block;max-width:auto;max-width:var(--tag--max-width,auto);min-width:1ch;min-width:var(--tag--min-width,1ch);overflow:hidden;text-overflow:ellipsis;transition:.8s ease,color .1s;vertical-align:top;white-space:pre-wrap}.tagify__tag>div>[contenteditable]{cursor:text;margin:-2px;max-width:350px;outline:0;padding:2px;-webkit-user-select:text;user-select:text}.tagify__tag>div:before{animation:tags--bump .3s ease-out 1;border-radius:inherit;bottom:0;box-shadow:inset 0 0 0 1.1em #e5e5e5;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-bg,#e5e5e5) inset;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;transition:.12s ease;z-index:-1}.tagify__tag:focus div:before,.tagify__tag:hover:not([readonly]) div:before{bottom:-2px;box-shadow:inset 0 0 0 1.1em #d3e2e2;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-hover,#d3e2e2) inset;left:-2px;right:-2px;top:-2px}.tagify__tag--loading{pointer-events:none}.tagify__tag--loading .tagify__tag__removeBtn{display:none}.tagify__tag--loading:after{--loader-size:.4em;animation:rotateLoader .4s linear infinite;border-color:#eee #bbb #888 transparent;border-radius:50%;border-style:solid;border-width:3px;content:"";height:.7em;height:var(--loader-size);margin:0 .5em 0 -.1em;opacity:1;vertical-align:middle;width:.7em;width:var(--loader-size)}.tagify__tag--flash div:before{animation:none}.tagify__tag--hide{margin-left:0;margin-right:0;opacity:0;padding-left:0;padding-right:0;pointer-events:none;transform:scale(0);transition:.3s;transition:var(--tag-hide-transition,.3s);width:0!important}.tagify__tag--hide>div>*{white-space:nowrap}.tagify__tag.tagify--noAnim>div:before{animation:none}.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div>span{opacity:.5}.tagify__tag.tagify--notAllowed:not(.tagify__tag--editable) div:before{box-shadow:inset 0 0 0 1.1em hsla(0,42%,70%,.5)!important;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-invalid-bg,hsla(0,42%,70%,.5)) inset!important;transition:.2s}.tagify__tag[readonly] .tagify__tag__removeBtn{display:none}.tagify__tag[readonly]>div:before{animation:readonlyStyles 1s calc(-1s*(var(--readonly-striped) - 1)) paused}@keyframes readonlyStyles{0%{background:linear-gradient(45deg,var(--tag-bg) 25%,transparent 25%,transparent 50%,var(--tag-bg) 50%,var(--tag-bg) 75%,transparent 75%,transparent) 0/5px 5px;box-shadow:none;filter:brightness(.95)}}.tagify__tag--editable>div{color:#000;color:var(--tag-text-color--edit,#000)}.tagify__tag--editable>div:before{box-shadow:inset 0 0 0 2px #d3e2e2!important;box-shadow:0 0 0 2px var(--tag-hover,#d3e2e2) inset!important}.tagify__tag--editable>.tagify__tag__removeBtn{pointer-events:none}.tagify__tag--editable>.tagify__tag__removeBtn:after{opacity:0;transform:translateX(100%) translateX(5px)}.tagify__tag--editable.tagify--invalid>div:before{box-shadow:inset 0 0 0 2px #d39494!important;box-shadow:0 0 0 2px var(--tag-invalid-color,#d39494) inset!important}.tagify__tag__removeBtn{align-items:center;background:0 0;background:var(--tag-remove-btn-bg,none);border-radius:50px;color:#000;color:var(--tag-remove-btn-color,#000);cursor:pointer;display:inline-flex;font:14px/1 Arial;height:14px;justify-content:center;margin-left:auto;margin-right:4.6666666667px;order:5;overflow:hidden;transition:.2s ease-out;width:14px}.tagify__tag__removeBtn:after{content:"×";transition:.3s,color 0s}.tagify__tag__removeBtn:hover{background:#c77777;background:var(--tag-remove-btn-bg--hover,#c77777);color:#fff}.tagify__tag__removeBtn:hover+div>span{opacity:.5}.tagify__tag__removeBtn:hover+div:before{box-shadow:inset 0 0 0 1.1em hsla(0,42%,70%,.3)!important;box-shadow:0 0 0 var(--tag-inset-shadow-size,1.1em) var(--tag-remove-bg,hsla(0,42%,70%,.3)) inset!important;transition:box-shadow .2s}.tagify:not(.tagify--mix) .tagify__input br{display:none}.tagify:not(.tagify--mix) .tagify__input *{display:inline;white-space:nowrap}.tagify__input{box-sizing:inherit;color:inherit;color:var(--input-color,inherit);display:inline-block;flex-grow:1;line-height:normal;margin:5px;min-width:110px;padding:.3em .5em;padding:var(--tag-pad,.3em .5em);position:relative;white-space:pre-wrap}.tagify__input:focus{outline:0}.tagify__input:focus:before{opacity:0;transform:translatex(6px);transition:.2s ease-out}@supports (-ms-ime-align:auto){.tagify__input:focus:before{display:none}}.tagify__input:focus:empty:before{color:rgba(0,0,0,.25);color:var(--placeholder-color-focus);opacity:1;transform:none;transition:.2s ease-out}@-moz-document url-prefix(){.tagify__input:focus:empty:after{display:none}}.tagify__input:before{color:rgba(0,0,0,.4);color:var(--placeholder-color);content:attr(data-placeholder);height:1em;line-height:1em;margin:auto 0;opacity:0;pointer-events:none;position:absolute;white-space:nowrap;z-index:1}.tagify__input:after{color:#000;content:attr(data-suggest);display:inline-block;max-width:100px;opacity:.3;pointer-events:none;white-space:pre}.tagify__input .tagify__tag{margin:0 1px}.tagify--mix{display:block}.tagify--mix .tagify__input{display:block;height:100%;line-height:1.5;margin:0;padding:5px;width:100%}.tagify--mix .tagify__input:before{display:none;height:auto;line-height:inherit}.tagify--mix .tagify__input:after{content:none}.tagify--select:after{bottom:0;content:">";font:16px monospace;height:8px;line-height:8px;opacity:.5;pointer-events:none;position:absolute;right:0;top:50%;transform:translate(-150%,-50%) scaleX(1.2) rotate(90deg);transition:.2s ease-in-out}.tagify--select[aria-expanded=true]:after{transform:translate(-150%,-50%) rotate(270deg) scaleY(1.2)}.tagify--select .tagify__tag{bottom:0;position:absolute;right:1.8em;top:0}.tagify--select .tagify__tag div{display:none}.tagify--select .tagify__input{width:100%}.tagify--empty .tagify__input:before{display:inline-block;opacity:1;transform:none;transition:.2s ease-out;width:auto}.tagify--mix .tagify--empty .tagify__input:before{display:inline-block}.tagify--invalid{--tags-border-color:#d39494}.tagify__dropdown{overflow:hidden;position:absolute;transform:translateY(1px);z-index:9999}.tagify__dropdown[placement=top]{margin-top:0;transform:translateY(-100%)}.tagify__dropdown[placement=top] .tagify__dropdown__wrapper{border-bottom-width:0;border-top-width:1.1px}.tagify__dropdown[position=text]{box-shadow:0 0 0 3px rgba(var(--tagify-dd-color-primary),.1);font-size:.9em}.tagify__dropdown[position=text] .tagify__dropdown__wrapper{border-width:1px}.tagify__dropdown__wrapper{background:#fff;background:var(--tagify-dd-bg-color);border:1px solid #3595f6;border-bottom-width:1.33px;border-color:var(--tagify-dd-color-primary);border-top-width:0;box-shadow:0 2px 4px -2px rgba(0,0,0,.2);max-height:300px;overflow:auto;transition:.25s cubic-bezier(0,1,.5,1)}.tagify__dropdown__header:empty{display:none}.tagify__dropdown__footer{display:inline-block;font-size:.7em;font-style:italic;margin-top:.5em;opacity:.5;padding:.3em .5em}.tagify__dropdown__footer:empty{display:none}.tagify__dropdown--initial .tagify__dropdown__wrapper{max-height:20px;transform:translateY(-1em)}.tagify__dropdown--initial[placement=top] .tagify__dropdown__wrapper{transform:translateY(2em)}.tagify__dropdown__item{border-radius:2px;box-sizing:inherit;cursor:pointer;margin:1px;outline:0;padding:.3em .5em;position:relative}.tagify__dropdown__item--active{background:#3595f6;background:var(--tagify-dd-color-primary);color:#fff}.tagify__dropdown__item:active{filter:brightness(105%)} +@media screen and (max-width:1666px){.control-panel-themes .customize-themes-full-container,.wp-full-overlay.expanded{margin-left:335px}}@media screen and (min-width:1667px){.control-panel-themes .customize-themes-full-container,.wp-full-overlay.expanded{margin-left:335px}}.wp-full-overlay-sidebar{width:335px}#customize-footer-actions,.expanded .wp-full-overlay-footer{width:334px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-335px}.wp-full-overlay-sidebar{box-shadow:none!important;min-width:335px}ul.accordion-section-content.open{height:100%!important}.wp-full-overlay{background:var(--lotta-background-color,#f0f0f1)}#customize-preview{background-color:transparent;box-sizing:border-box;height:auto}#customize-preview iframe{box-shadow:0 0 25px rgba(0,0,0,.11),0 0 0 1px rgba(0,0,0,.03)}.preview-desktop #customize-preview{margin-bottom:auto;margin-top:auto;max-height:100%}.preview-tablet #customize-preview{-webkit-margin-start:-425px;margin-inline-start:-425px;max-height:1080px;width:850px}.preview-mobile #customize-preview{-webkit-margin-start:-195px;margin-inline-start:-195px;max-height:720px;width:390px}#customize-outer-theme-controls .accordion-section-title,#customize-theme-controls .accordion-section-title{font-size:14px;font-weight:500}#customize-outer-theme-controls .accordion-section-title:after,#customize-theme-controls .accordion-section-title:after{font-size:12px;top:calc(50% - 6px)}.lotta-cta-section{display:block!important}.lotta-cta-section .button,.lotta-cta-section .desc{text-align:center;width:100%}.lotta-cta-section .desc{display:inline-block;font-size:.875em;margin-top:12px}[class^="customize-control customize-control-lotta"]{margin-bottom:0}.lotta-control{margin-bottom:28px;position:relative}.lotta-control>header .lotta-revert{align-items:center;background:transparent;border:none;color:var(--lotta-primary-color,#096dd9);cursor:pointer;display:flex;font-family:dashicons;font-size:10px;justify-content:center;opacity:0;padding:0;transform:translate3d(-15px,0,0);transition:opacity .2s ease,transform .2s ease;width:28px}.lotta-control>header .lotta-revert:hover:before{transform:rotate(-45deg)}.lotta-control>header .lotta-revert:before{content:"\f531";transform:rotate(45deg);transition:transform .3s ease}.lotta-control:hover>header .lotta-revert:not([disabled]){opacity:1;transform:translateZ(0)}.lotta-control>header{display:flex;justify-content:space-between;position:relative}.lotta-control>header label{align-items:center;cursor:default;display:flex;font-size:14px;font-weight:500;text-transform:capitalize}.lotta-control[data-design=block]>header:not(:empty){margin-bottom:14px}.lotta-control[data-design=inline]{display:flex;flex-wrap:wrap}.lotta-control[data-design=inline]>section{display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-end}.lotta-control .lotta-control-desc{color:var(--lotta-text-color,#555d66);flex:0 0 100%;font-size:12px;font-style:italic;line-height:1.5;margin:10px 0 0;opacity:.75;transition:opacity .1s ease}.lotta-control .lotta-control-desc:hover{opacity:1}.lotta-dashicon{font-family:dashicons}.lotta-responsive-controls,.lotta-responsive-controls li{align-items:center;display:flex;margin:0}.lotta-responsive-controls li{-webkit-font-smoothing:antialiased;color:currentColor;cursor:pointer;font-family:dashicons;font-size:15px;justify-content:center;line-height:normal;position:relative}.lotta-responsive-controls li.active{color:var(--lotta-primary-color,#096dd9)}.lotta-responsive-controls li:not(.active){opacity:.6}.lotta-responsive-controls li:not(.active):hover{opacity:.8}.lotta-responsive-controls li.lotta-desktop{margin-right:18px}.lotta-responsive-controls li.lotta-tablet{margin-right:17px}.lotta-devices li:after,.lotta-devices li:before{border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;content:""}.lotta-devices li.lotta-desktop{flex-direction:column}.lotta-devices li.lotta-desktop:before{border:2px solid;height:11px;margin-bottom:1px;width:17px}.lotta-devices li.lotta-desktop:after{background:currentColor;height:2px;width:9px}.lotta-devices li.lotta-tablet:before{border:solid;border-width:2px 2px 3px;height:14px;width:13px}.lotta-devices li.lotta-mobile:before{border:solid;border-width:2px 2px 3px;height:14px;width:10px}.lotta-value-changer{align-items:center;background:var(--lotta-background-focus,#f6f7f7);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;display:flex;height:30px;min-width:90px;padding:1px;transition:background .15s ease,border-color .15s ease}.lotta-value-changer.lotta-disabled{background-color:var(--lotta-background-focus,#fff)}.lotta-value-changer.lotta-disabled:hover{border-color:var(--lotta-primary-color,#096dd9)}.lotta-value-changer input[type=number]{--width:60px;--padding:0 0 1px 0;--margin:-1px -1px -1px -2px;--fontSize:11px;--borderColor:transparent;--background:transparent;position:relative;text-align:center;z-index:1}.lotta-value-changer input[type=number]:focus{--background:#fff}.lotta-value-changer.no-unit{border:none;min-width:auto}.lotta-value-changer.no-unit .lotta-value-divider{display:none}.lotta-value-changer:not(.no-unit-list) .lotta-current-value{cursor:pointer}.lotta-value-changer:not(.no-unit-list) .lotta-current-value:hover{color:var(--lotta-primary-color,#096dd9)}.lotta-value-divider{border-left:1px solid var(--lotta-border-color,#ccc);height:100%}.lotta-current-value{align-items:center;display:flex;font-size:9px;font-weight:600;height:100%;justify-content:center;letter-spacing:1px;line-height:normal;text-transform:uppercase;transition:color .1s ease,font-weight .1s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:35px}.lotta-value-changer{position:relative}.lotta-value-changer ul{background:#fff;border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-shadow:0 15px 15px rgba(0,0,0,.08);box-sizing:border-box;display:flex;flex-direction:column;left:-1px;margin:0;opacity:0;padding:2px;position:absolute;top:-1px;transform:scale3d(.95,.95,1);transform-origin:center top;transition:opacity .1s ease,visibility .1s ease,transform .1s ease-out;visibility:hidden;width:calc(100% + 2px);z-index:3}.lotta-value-changer ul li{display:flex;justify-content:space-between}.lotta-value-changer ul li:not(:last-child){border-bottom:1px dashed var(--lotta-border-color,#ccc);margin-bottom:2px;padding-bottom:2px}.lotta-value-changer ul li:last-child{margin-bottom:0}.lotta-value-changer ul li span{align-items:center;border-radius:var(--lotta-border-radius,2px);color:#555d66;cursor:pointer;display:flex;font-size:10px;font-weight:700;height:26px;justify-content:center;letter-spacing:.06em;text-align:center;text-transform:uppercase}.lotta-value-changer ul li span:first-child{width:calc(50% - 3px)}.lotta-value-changer ul li span:last-child{width:calc(50% - 2px)}.lotta-value-changer ul li span:hover{background:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-value-changer ul:after{border-left:1px dashed var(--lotta-border-color,#ccc);content:"";height:calc(100% - 6px);left:0;margin:0 auto;position:absolute;right:0;top:3px;width:1px}.lotta-value-changer.active{background:transparent}.lotta-value-changer.active ul{opacity:1;transform:scaleX(1);visibility:visible}[class*=lotta-control] input[type=number],[class*=lotta-control] input[type=text],[class*=lotta-control] select,[class*=lotta-control] textarea{--fontSize:12px;background-color:var(--lotta-background-focus,#fff);border:var(--borderWidth,1px) solid var(--lotta-border-color,#ccc)!important;border-radius:var(--borderRadius,var(--lotta-border-radius,2px))!important;box-shadow:0 0 0 0 transparent;color:var(--lotta-text-color,#555d66);font-size:var(--fontSize)!important;line-height:normal;margin:var(--margin,0)!important;min-height:auto;padding:var(--padding,4px 8px)!important;transition:box-shadow .1s linear,background .1s linear,border-radius .1s linear,border-color .1s linear;width:var(--width,100%)!important}[class*=lotta-control] input[type=number]:focus,[class*=lotta-control] input[type=number]:hover,[class*=lotta-control] input[type=text]:focus,[class*=lotta-control] input[type=text]:hover,[class*=lotta-control] select:focus,[class*=lotta-control] select:hover,[class*=lotta-control] textarea:focus,[class*=lotta-control] textarea:hover{border-color:var(--lotta-primary-color,#096dd9)!important}[class*=lotta-control] input[type=number]:focus,[class*=lotta-control] input[type=text]:focus,[class*=lotta-control] select:focus,[class*=lotta-control] textarea:focus{box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))!important}[class*=lotta-control] input[type=number]::-moz-placeholder,[class*=lotta-control] input[type=text]::-moz-placeholder,[class*=lotta-control] select::-moz-placeholder,[class*=lotta-control] textarea::-moz-placeholder{opacity:.5}[class*=lotta-control] input[type=number]:-ms-input-placeholder,[class*=lotta-control] input[type=text]:-ms-input-placeholder,[class*=lotta-control] select:-ms-input-placeholder,[class*=lotta-control] textarea:-ms-input-placeholder{opacity:.5}[class*=lotta-control] input[type=number]::placeholder,[class*=lotta-control] input[type=text]::placeholder,[class*=lotta-control] select::placeholder,[class*=lotta-control] textarea::placeholder{opacity:.5}[class*=lotta-control] input[type=number],[class*=lotta-control] input[type=text],[class*=lotta-control] select{height:var(--height,30px)!important}[class*=lotta-control][data-design=inline] input[type=text],[class*=lotta-control][data-design=inline] select{min-width:var(--min-width,120px)!important}.lotta-react-color-picker{min-width:314px}.lotta-react-color-picker .category-title{font-size:11px;margin:0;padding:12px 12px 0;text-transform:uppercase}.lotta-react-color-picker .color-picker,.lotta-react-color-picker .swatches{padding:12px}.lotta-react-color-picker .color-picker{padding-bottom:0;width:auto}.lotta-react-color-picker .swatches{border-bottom:1px solid #dedede;display:flex;flex-wrap:wrap;gap:6px}.lotta-react-color-picker .swatches .swatch-wrap{font-size:0;line-height:0}.lotta-react-color-picker .swatches .swatch{background-color:hsla(0,0%,100%,.8);background-image:linear-gradient(45deg,#ddd 25%,transparent 0),linear-gradient(-45deg,#ddd 25%,transparent 0),linear-gradient(45deg,transparent 75%,#ddd 0),linear-gradient(-45deg,transparent 75%,#ddd 0);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border:1px solid #dedede;border-radius:9999px;cursor:pointer;display:inline-block;font-size:.85rem;height:24px;line-height:1.5;position:relative;width:24px}.lotta-react-color-picker .swatches .swatch .swatch-inner{background:currentColor;border-radius:9999px;display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.lotta-react-color-picker .swatches .swatch.active{box-shadow:0 0 0 1px currentColor}.lotta-react-color-picker .swatches .swatch.active:after{align-items:center;bottom:0;color:#fff;content:"\f147";display:flex;font-family:dashicons;font-size:15px;justify-content:center;left:-1px;position:absolute;right:0;text-shadow:0 1px 2px rgba(0,0,0,.2);top:1px;z-index:2}.lotta-react-color-picker .swatches .swatch.initial-swatch:after{align-items:center;background-color:var(--lotta-primary-color,#096dd9);bottom:0;content:"";display:flex;height:2px;justify-content:center;left:6px;position:absolute;right:0;top:10px;transform:rotate(45deg);width:10px;z-index:2}.lotta-react-color-picker .swatches .swatch.initial-swatch>.swatch-inner{background:transparent}.lotta-react-color-picker .color-picker-value{border-top:1px solid #dedede;padding:12px}.lotta-react-color-picker .color-picker-value input[type=text]{border-color:#ddd;transition:box-shadow .1s linear,background .1s linear,border-radius .1s linear,border-color .1s linear;width:100%}.lotta-react-color-picker .color-picker-value input[type=text]:focus{border-color:var(--lotta-primary-color,#096dd9)}.lotta-react-color-picker .react-colorful{width:100%!important}.lotta-react-color-picker .react-colorful .react-colorful__saturation{border-radius:var(--lotta-border-radius-lg,4px);height:147px!important;margin-bottom:20px}.lotta-react-color-picker .react-colorful .react-colorful__alpha,.lotta-react-color-picker .react-colorful .react-colorful__hue{width:100%}.lotta-react-color-picker .react-colorful+div{display:none}.lotta-popup,.lotta-tooltip{position:relative;z-index:999999}.lotta-popup .lotta-popup-arrow,.lotta-popup .lotta-popup-arrow:before,.lotta-tooltip .lotta-popup-arrow,.lotta-tooltip .lotta-popup-arrow:before{background:inherit;position:absolute;z-index:-1}.lotta-popup .lotta-popup-arrow,.lotta-tooltip .lotta-popup-arrow{visibility:hidden}.lotta-popup .lotta-popup-arrow:before,.lotta-tooltip .lotta-popup-arrow:before{content:"";transform:rotate(45deg);visibility:visible}.lotta-modal-value{align-items:center;background:var(--lotta-background-focus,#fff);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;cursor:pointer;display:flex;font-size:9px;font-weight:600;height:30px;justify-content:center;line-height:1;margin-left:5px;text-transform:uppercase;transition:all .1s linear;width:75px}.lotta-modal-value:hover{border-color:var(--lotta-primary-color,#096dd9);color:var(--lotta-primary-color,#096dd9)}.lotta-modal-value.lotta-modal-value-active{border-color:var(--lotta-primary-color,#096dd9);box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))}.lotta-tooltip{background:#3b3b3b;border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;color:#fff;font-size:11px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:4px 8px}.lotta-tooltip .lotta-popup-arrow,.lotta-tooltip .lotta-popup-arrow:before{height:8px;width:8px}.lotta-tooltip[data-popper-placement^=top]>.lotta-popup-arrow{bottom:-4px}.lotta-tooltip[data-popper-placement^=bottom]>.lotta-popup-arrow{top:-4px}.lotta-tooltip[data-popper-placement^=left]>.lotta-popup-arrow{right:-4px}.lotta-tooltip[data-popper-placement^=right]>.lotta-popup-arrow{left:-4px}.lotta-popup{background:#fff;border:1px solid var(--lotta-border-lighter,#dcdcdc);border-radius:var(--lotta-border-radius,2px);box-shadow:0 15px 15px 0 rgba(0,0,0,.08)}.lotta-popup .lotta-popup-arrow,.lotta-popup .lotta-popup-arrow:before{height:12px;width:12px}.lotta-popup[data-popper-placement^=top]>.lotta-popup-arrow{bottom:-7px}.lotta-popup[data-popper-placement^=top]>.lotta-popup-arrow:before{border-bottom:1px solid var(--lotta-border-color,#ccc);border-right:1px solid var(--lotta-border-color,#ccc)}.lotta-popup[data-popper-placement^=bottom]>.lotta-popup-arrow{top:-7px}.lotta-popup[data-popper-placement^=bottom]>.lotta-popup-arrow:before{border-left:1px solid var(--lotta-border-color,#ccc);border-top:1px solid var(--lotta-border-color,#ccc)}.lotta-popup[data-popper-placement^=left]>.lotta-popup-arrow{right:-6px}.lotta-popup[data-popper-placement^=right]>.lotta-popup-arrow{left:-6px}.lotta-buttons-group{display:flex;margin:0}.lotta-buttons-group li{align-items:center;background:var(--lotta-background-focus,#f6f7f7);box-shadow:inset 0 0 0 1px var(--lotta-border-color,#ccc);cursor:pointer;display:flex;flex:1 1 auto;font-size:13px;height:30px;justify-content:center;line-height:1;margin:0;min-width:40px;position:relative;transition:all .15s ease}.lotta-buttons-group li.active,.lotta-buttons-group li:hover{background:var(--lotta-background-focus,#fff);color:var(--lotta-primary-color,#096dd9)}.lotta-buttons-group li.active{fill:var(--lotta-primary-color,#096dd9);box-shadow:inset 0 0 0 1px var(--lotta-primary-color,#096dd9);z-index:1}.lotta-buttons-group li:not(:first-child){margin-left:-1px}.lotta-buttons-group li:first-child{border-radius:var(--lotta-border-radius,2px) 0 0 var(--lotta-border-radius,2px)}.lotta-buttons-group li:last-child{border-radius:0 var(--lotta-border-radius,2px) var(--lotta-border-radius,2px) 0}.lotta-buttons-group.lotta-solid-buttons li.active{fill:#fff;background:var(--lotta-primary-color,#096dd9);box-shadow:inset 0 0 0 1px var(--lotta-primary-color,#2271b1);color:#fff}.lotta-buttons-group[data-type=compact] li{height:26px}.lotta-buttons-group[data-buttons=ratio]{font-size:11px;font-weight:500;letter-spacing:.05em}.lotta-customizer-panel{background:var(--lotta-background-color,#f0f0f1);border-bottom:1px solid #ddd;border-top:1px solid #ddd;bottom:0;box-sizing:border-box;height:100%!important;left:0;overflow-x:hidden;overflow-y:auto;position:absolute;right:0;top:0;transition:transform .18s cubic-bezier(.645,.045,.355,1);z-index:99}.accordion-section-content.lotta-panel-open,.lotta-customizer-panel.lotta-panel-open{overflow-y:hidden!important;transform:translateX(-100%)!important}.accordion-section-content.lotta-panel-close,.lotta-customizer-panel.lotta-panel-close{overflow-y:hidden!important;transform:translateX(100%)!important}.customize-panel-actions{background:#fff;border-bottom:1px solid #ddd;display:flex}.customize-panel-actions h3{color:#555d66;display:block;font-size:20px!important;font-weight:200;line-height:26px;margin:0;overflow:hidden;padding:10px 10px 12px 14px;text-overflow:ellipsis;white-space:nowrap;width:100%}.customize-panel-actions h3 span{display:block;font-size:13px;font-weight:400;overflow:hidden}.customizer-panel-content{margin:0;padding:0 12px 12px}.customizer-panel-content>li:first-child{margin-top:30px}.lotta-control.no-label>header{display:none!important}.customize-control-lotta-condition,.lotta-condition-control{margin-bottom:0!important;margin-top:0!important}.lotta-react-select .select-input{align-items:center;background:#fff;border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);cursor:pointer;display:flex;height:30px;padding:0 12px;position:relative;transition:all .25s ease}.lotta-react-select .select-input:hover{border-color:var(--lotta-primary-color,#096dd9);outline:1px var(--lotta-primary-color,#096dd9)}.lotta-react-select .select-input svg{fill:currentColor;height:12px;margin-top:-6px;position:absolute;right:12px;top:50%;width:12px}.lotta-react-select .dropdown-search-label{box-sizing:border-box;display:block;padding:6px}.lotta-react-select .dropdown-search-label .dropdown-search{max-width:100%}.lotta-react-select .select-list-item{align-items:center;background-color:var(--lotta-background-focus,#fff);border-top:1px dashed var(--lotta-border-color,#ccc);box-sizing:border-box;cursor:pointer;display:flex;height:36px;padding:0 12px;transition:background-color .15s}.lotta-react-select .select-list-item:hover{background-color:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-gradient-picker .wp-gradient-picker{padding:12px}.lotta-gradient-picker .lotta-gradient-switches{grid-column-gap:16px;grid-row-gap:16px;border-top:1px dashed var(--lotta-border-color,#ccc);display:grid;grid-template-columns:repeat(6,1fr);margin:0;padding:20px 12px}.lotta-gradient-picker .lotta-gradient-switches li{align-items:center;background-image:var(--background-image);border-radius:100%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);cursor:pointer;display:flex;height:28px;justify-content:center;margin:auto;transition:box-shadow .1s ease;width:28px}.lotta-gradient-picker .lotta-gradient-switches li.active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1),0 0 0 2px #fff,0 0 0 4px #606a73;position:relative}.lotta-gradient-picker .lotta-gradient-switches li.active:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#fff;content:"\f15e";font-family:dashicons;font-size:20px;margin-top:1px;position:absolute;text-shadow:0 1px 2px rgba(0,0,0,.2)}.lotta-modal-tabs{display:flex;flex:0 0 43px;height:43px;margin:0;overflow-x:hidden}.lotta-modal-tabs li{align-items:center;border-bottom:1px solid var(--lotta-border-color,#ccc);box-sizing:border-box;cursor:pointer;display:flex;flex:1;font-size:13px;font-weight:500;justify-content:center;margin:0;min-height:100%}.lotta-modal-tabs li:not(:last-child){border-right:1px solid var(--lotta-border-color,#ccc)}.lotta-modal-tabs li.active{position:relative}.lotta-modal-tabs li.active:after{background:var(--lotta-primary-color,#096dd9);bottom:-1px;content:"";height:2px;left:-1px;position:absolute;width:calc(100% + 2px)}.lotta-slider{border-radius:var(--lotta-border-radius,2px);cursor:pointer;height:18px;margin-right:14px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%}.lotta-slider:before{background:#e1e1e1;border-radius:inherit;content:"";height:4px;left:0;position:absolute;top:calc(50% - 2px);transition:background .1s;width:calc(100% + 14px)}.lotta-slider span{background:#fff;border-radius:100%;bottom:0;box-shadow:0 0 2px var(--lotta-text-color,#555d66);height:14px;left:var(--position);margin:auto 0;outline:none;position:absolute;top:0;transition:box-shadow .1s ease,background .1s ease;width:14px}.lotta-slider span:active,.lotta-slider span:focus,.lotta-slider span:hover{box-shadow:#fff 0 0 0 2px,var(--lotta-primary-color,#096dd9) 0 0 0 4px,rgba(0,0,0,.05) 0 1px 2px 0}.lotta-slider span:active{background:#fff}.lotta-slider div{background:var(--lotta-primary-color,#096dd9);border-radius:inherit;height:2px;left:0;padding-right:7px;position:absolute;top:calc(50% - 1px)}.lotta-slider-control[data-design=inline] .lotta-slider-wrap{min-width:160px}.lotta-slider-wrap{align-items:center;display:flex}.lotta-slider-wrap .lotta-slider{flex:1 1 auto}.lotta-slider-wrap .lotta-slider-input{margin-left:7%}.lotta-slider-wrap .lotta-slider-input input{width:45px}.lotta-slider-wrap [class*=placement]{display:flex;flex:0 0 15px;margin-right:5%}.lotta-slider-wrap [class*=placement] .shape{fill:#000;opacity:.15}.lotta-slider-wrap [class*=placement] .shape-active{fill:var(--lotta-primary-color,#096dd9)}.lotta-slider-wrap .placement-right svg{transform:rotate(90deg)}.lotta-slider-wrap .placement-bottom svg{transform:rotate(180deg)}.lotta-slider-wrap .placement-left svg{transform:rotate(270deg)}.lotta-slider-input{position:relative}.lotta-slider-input input{margin:0;position:relative;text-align:center;width:100%;z-index:2}[data-steps] div{display:none}[data-steps] section{align-items:center;bottom:-7px;display:flex;height:5px;justify-content:space-between;left:0;opacity:.5;pointer-events:none;position:absolute;width:calc(100% + 14px)}[data-steps] section i{align-items:center;display:flex;font-style:normal;height:5px;justify-content:center;position:relative;width:5px}[data-steps] section i:before{background:currentColor;content:"";height:1px;position:absolute;width:inherit}[data-steps] section i.zero:before{transform:rotate(90deg)}[data-steps] section i.plus:after{background:currentColor;content:"";height:inherit;position:absolute;width:1px}[data-steps] section.positive .minus{display:none}[data-steps] section.positive .zero:before{left:-2px}.lotta-toggle{border:2px solid var(--lotta-text-color,#555d66);border-radius:100px;box-sizing:border-box;cursor:pointer;height:20px;padding:2px;position:relative;transition:background .15s cubic-bezier(.4,0,.2,1),border-color .15s cubic-bezier(.4,0,.2,1);width:40px}.lotta-toggle:after,.lotta-toggle:before{content:"";display:block;position:absolute;transition:opacity .05s cubic-bezier(.4,0,.2,1)}.lotta-toggle>span{background:var(--lotta-text-color,#555d66);border-radius:inherit;display:flex;height:12px;transform:translateZ(0);transition:background .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1);width:12px}.lotta-toggle.lotta-toggle-active{background:var(--lotta-primary-color,#096dd9);border-color:var(--lotta-primary-color,#096dd9)}.lotta-toggle.lotta-toggle-active span{background:#fff;transform:translate3d(20px,0,0)}.lotta-border{align-items:center;display:flex;justify-content:flex-end}.lotta-border>:first-child{margin-left:10px;order:2}.lotta-border .lotta-disabled{justify-content:center}.lotta-border .lotta-disabled .lotta-value-divider,.lotta-border .lotta-disabled input,.lotta-border .lotta-disabled~.lotta-color-picker-container{display:none}.lotta-border .lotta-color-picker-container:not(:last-child){margin-right:10px}.lotta-border [data-style]:before{border-bottom-color:currentColor;border-bottom-width:2px;content:"";width:22px}.lotta-border [data-style=dotted]:before{border-bottom-style:dotted}.lotta-border [data-style=solid]:before{border-bottom-style:solid}.lotta-border [data-style=dashed]:before{border-bottom-style:dashed}.lotta-border [data-style=none]{font-size:9px}.lotta-border [data-style=none]:before{display:none}.lotta-color-palettes-control .colors,.lotta-color-picker .colors{display:flex;flex-wrap:wrap;gap:4px}.lotta-color-palettes-control .colors>div:first-of-type,.lotta-color-picker .colors>div:first-of-type{margin-left:0}.lotta-color-palettes-control .preview,.lotta-color-picker .preview{background-color:hsla(0,0%,100%,.8);background-image:linear-gradient(45deg,#ddd 25%,transparent 0),linear-gradient(-45deg,#ddd 25%,transparent 0),linear-gradient(45deg,transparent 75%,#ddd 0),linear-gradient(-45deg,transparent 75%,#ddd 0);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border:1px solid var(--lotta-border-color,#ccc);border-radius:9999px;cursor:pointer;flex-shrink:0;height:24px;position:relative;transition:box-shadow .2s ease-in;width:24px}.lotta-color-palettes-control .preview>.preview-inner,.lotta-color-picker .preview>.preview-inner{background:currentColor;border-radius:9999px;height:100%;width:100%}.lotta-color-palettes-control .preview.global:after,.lotta-color-picker .preview.global:after{align-items:center;bottom:0;color:#fff;content:"\f319";display:flex;font-family:dashicons;font-size:13px;justify-content:center;left:1px;pointer-events:none;position:absolute;right:0;text-shadow:0 1px 2px rgba(0,0,0,.2);top:1px;z-index:2}.lotta-color-palettes-control .preview.initial-preview:after,.lotta-color-picker .preview.initial-preview:after{align-items:center;background-color:var(--lotta-primary-color,#096dd9);bottom:0;content:"";display:flex;height:2px;justify-content:center;left:6px;position:absolute;right:0;top:10px;transform:rotate(45deg);width:10px;z-index:2}.lotta-color-palettes-control .preview.initial-preview>.preview-inner,.lotta-color-picker .preview.initial-preview>.preview-inner{background:transparent}.lotta-color-palettes-control .preview:hover,.lotta-color-picker .preview:hover{box-shadow:0 0 0 1px currentColor}.lotta-color-palettes-control .palette-preview{align-items:center;cursor:pointer;display:flex;justify-content:space-between}.lotta-color-palettes-control .palette-preview>.dashicons{font-size:12px;line-height:inherit}.lotta-color-palettes-control .palette-list{max-height:450px;min-width:314px;overflow-y:auto}.lotta-color-palettes-control .palette-list .palette-item{border-bottom:1px dashed var(--lotta-border-color,#ccc);cursor:pointer;padding:12px}.lotta-color-palettes-control .palette-list .palette-item .palette-title{display:flex;justify-content:space-between;opacity:.75;padding-bottom:12px}.lotta-color-palettes-control .palette-list .palette-item.active,.lotta-color-palettes-control .palette-list .palette-item:hover{background:var(--lotta-background-focus,#f6f7f7)}.lotta-color-palettes-control .palette-list .palette-item.active .palette-title,.lotta-color-palettes-control .palette-list .palette-item:hover .palette-title{opacity:1}.lotta-color-palettes-control .palette-list .palette-item:last-of-type{border-bottom:none}.lotta-spacing{align-items:flex-start;display:flex}.lotta-spacing>span:not(:last-of-type){margin-right:4px}.lotta-spacing>span input{position:relative;text-align:center}.lotta-spacing>span input.inactive{background:hsla(0,0%,100%,.8);color:rgba(50,55,60,.5);pointer-events:none}.lotta-spacing>span input:focus+small{color:rgba(85,93,102,.8)}.lotta-spacing>span .auto-num-toggle{background:var(--lotta-background-focus,#f6f7f7);border:1px solid var(--lotta-border-color,#ccc);border-radius:2px;cursor:pointer;font-size:10px;margin-top:5px;padding:2px;text-transform:uppercase;width:100%}.lotta-spacing>span .auto-num-toggle span{display:block;transform:scale(.75)}.lotta-spacing>span .auto-num-toggle:focus,.lotta-spacing>span .auto-num-toggle:hover{color:var(--lotta-primary-color,#096dd9)}.lotta-spacing>span small{color:rgba(85,93,102,.5);display:block;font-size:9px;font-weight:500;line-height:normal;margin-top:5px;overflow-wrap:anywhere;text-align:center;text-transform:uppercase;transform:scale(.85)}.lotta-spacing .lotta-spacing-controls{margin-left:4px;min-width:75px}.lotta-spacing .lotta-spacing-controls a{align-items:center;color:var(--lotta-text-color,#555d66);cursor:pointer;display:flex;height:100%;justify-content:center;width:35px}.lotta-spacing .lotta-spacing-controls a:hover{color:var(--lotta-primary-color,#096dd9)}.lotta-spacing .lotta-spacing-controls a svg{fill:currentColor}.lotta-multi-select input[type=checkbox],.lotta-radio-input input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid #c3c7ca;box-shadow:none;flex:0 0 16px;height:16px;margin:0 8px 0 0;width:16px}.lotta-multi-select input[type=checkbox]:checked,.lotta-radio-input input[type=radio]:checked{background:var(--lotta-primary-color,#096dd9);border-color:var(--lotta-primary-color,#096dd9)}.lotta-multi-select input[type=checkbox]:checked:before,.lotta-radio-input input[type=radio]:checked:before{background:#fff;content:"";height:6px;margin:3px;width:6px}.lotta-multi-select label:hover input[type=radio]:not(:checked),.lotta-radio-input label:hover input[type=radio]:not(:checked){border-color:var(--lotta-primary-color,#096dd9)}.lotta-multi-select,.lotta-radio-input{display:flex;flex-wrap:wrap;margin:0}.lotta-multi-select.lotta-buttons-group li>span,.lotta-radio-input.lotta-buttons-group li>span{font-size:0;line-height:0}.lotta-multi-select label,.lotta-radio-input label{align-items:center;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lotta-multi-select:not([data-inline]):not([data-columns]) label,.lotta-radio-input:not([data-inline]):not([data-columns]) label{display:block}.lotta-multi-select:not([data-inline]):not([data-columns]) label:not(:last-child),.lotta-radio-input:not([data-inline]):not([data-columns]) label:not(:last-child){margin-bottom:10px}.lotta-multi-select[data-inline],.lotta-radio-input[data-inline]{display:flex;flex-wrap:wrap;margin-top:-10px}.lotta-multi-select[data-inline] label,.lotta-radio-input[data-inline] label{padding-top:10px}.lotta-multi-select[data-inline] label:not(:last-child),.lotta-radio-input[data-inline] label:not(:last-child){margin-right:15px}.lotta-multi-select[data-columns="2"],.lotta-radio-input[data-columns="2"]{grid-column-gap:15px;grid-row-gap:15px;display:grid;grid-template-columns:repeat(2,1fr)}.lotta-multi-select[data-columns="3"],.lotta-radio-input[data-columns="3"]{grid-column-gap:15px;grid-row-gap:15px;display:grid;grid-template-columns:repeat(3,1fr)}.lotta-multi-select[data-radio-text=small] li,.lotta-radio-input[data-radio-text=small] li{font-size:12px}.lotta-image-radio{grid-column-gap:var(--column-gap,24px);grid-row-gap:var(--row-gap,12px);display:grid;grid-template-columns:var(--grid-columns,repeat(2,1fr))}.lotta-image-radio[data-columns="3"]{--grid-columns:repeat(3,1fr);--column-gap:16px;--row-gap:16px}.lotta-image-radio[data-columns="4"]{--grid-columns:repeat(4,1fr);--column-gap:12px}.lotta-image-radio[data-columns="5"]{--grid-columns:repeat(5,1fr);--column-gap:15px}.lotta-image-radio li{align-items:center;background:var(--lotta-background-focus,#f6f7f7);border:2px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;margin:0;position:relative;transition:background,border .15s ease,box-shadow .15s ease}.lotta-image-radio li svg{height:24px;width:24px}.lotta-image-radio li img{width:100%}.lotta-image-radio li>.mask{align-items:center;background-color:hsla(0,0%,100%,.6);color:var(--lotta-primary-color,#096dd9);display:flex;font-size:15px;font-weight:700;height:100%;justify-content:center;position:absolute;width:100%}.lotta-image-radio li span{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:inherit}.lotta-image-radio li span svg{fill:var(--lotta-text-color,#555d66)}.lotta-image-radio li:not(.disabled,.active):hover{background:var(--lotta-background-focus,#fff);border-color:var(--lotta-primary-color,#096dd9)}.lotta-image-radio li:not(.disabled,.active):hover span svg{fill:var(--lotta-primary-color,#096dd9)}.lotta-image-radio li.active{background:var(--lotta-primary-color,#096dd9);border-color:var(--lotta-primary-color,#096dd9);box-shadow:0 5px 15px 0 rgba(0,0,0,.05)}.lotta-image-radio li.active span svg{fill:#fff}.lotta-image-radio li>:first-child{height:100%;left:0;position:absolute;top:0;width:100%}.lotta-image-radio li:before{content:"";height:0;padding-bottom:var(--ratio,69.67%);width:100%}.lotta-separator>div{border-bottom:1px solid var(--lotta-border-color,#ccc)}.customize-control-lotta-section,.lotta-section-control{margin-bottom:0;margin-top:0}.customize-control-lotta-section>header label,.lotta-section-control>header label{font-size:13px;font-weight:500}.lotta-section-margin-top{margin-top:24px}.lotta-section-margin-bottom{margin-bottom:24px}.lotta-section-control{align-items:center;display:flex;height:42px;min-height:20px;padding-right:12px;position:relative}.lotta-section-control header{font-weight:700}.lotta-section-control:before{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAIAAABvrngfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpi+PTp038kAOQyAikGGPj8+TOQZEHj8/LyQlXB+UASJITMBwkBzUPmAwFAgAEAKZ0pdnGxpD4AAAAASUVORK5CYII=) repeat!important;border-bottom:1px solid var(--lotta-border-color,#ccc);border-top:1px solid var(--lotta-border-color,#ccc);content:"";height:100%;left:-12px;position:absolute;width:calc(100% + 24px)}.lotta-section-control .lotta-section-container{position:relative}.lotta-section-control .lotta-section-option button{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;height:20px;justify-content:center;opacity:0;padding:0;pointer-events:none;position:absolute;right:-24px;top:calc(50% - 10px);width:25px}.lotta-section-control .lotta-section-option button:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:inherit;content:"\f345";font-family:dashicons;font-size:12px}.lotta-section-control .lotta-section-option button:focus{outline:none}.lotta-section-control .lotta-section-option .lotta-switch+button{transform:translate3d(-7px,0,0);transition:opacity 0s ease 0s,transform 0s ease 0s}.lotta-section-control.lotta-activated{cursor:pointer;position:relative}.lotta-section-control.lotta-activated header{transition:color .15s ease-in-out}.lotta-section-control.lotta-activated:before{background:#fff!important;border-left:4px solid transparent;transition:background-color .15s ease-in-out,border-color .15s ease-in-out}.lotta-section-control.lotta-activated:hover .lotta-section-option button,.lotta-section-control.lotta-activated:hover header{color:var(--lotta-primary-color,#096dd9)}.lotta-section-control.lotta-activated:hover:before{background:#f6f7f7!important;border-left-color:var(--lotta-primary-color,#096dd9)}.lotta-section-control.lotta-activated .lotta-section-option button{opacity:.7;pointer-events:auto;transform:translateZ(0);transition:opacity .2s ease .2s,transform .2s ease .2s}.lotta-tabs>ul,.lotta-tabs>ul>li{display:flex;margin:0}.lotta-tabs>ul>li{align-items:center;background:var(--lotta-background-focus,#f6f7f7);border:1px solid var(--lotta-border-color,#ccc);border-bottom:none;box-sizing:border-box;color:var(--lotta-text-color,#555d66);cursor:pointer;flex:1 1 0;font-size:12px;font-weight:500;height:38px;justify-content:center;padding:0 10px}.lotta-tabs>ul>li:not(:first-child){margin-left:6px}.lotta-tabs>ul>li.active{background:#fff;position:relative}.lotta-tabs>ul>li.active:before{background:var(--lotta-primary-color,#096dd9);content:"";height:2px;left:-1px;position:absolute;right:-1px;top:-2px}.lotta-tabs.lotta-tabs-solid .lotta-tab-content{background:#fff;border:1px solid var(--lotta-border-color,#ccc);padding:24px 12px 0}.lotta-tabs.lotta-tabs-ghost .lotta-tab-content{border-bottom:1px dashed var(--lotta-border-color,#ccc);padding-top:24px}.lotta-tabs.lotta-tabs-ghost>ul{border-bottom:1px solid var(--lotta-border-color,#ccc);margin:0 -12px;padding:0 12px}.lotta-collapse .lotta-collapse-content{padding-top:24px}.lotta-collapse.lotta-collapse-solid .lotta-collapse-content{padding:24px 12px 0}.lotta-collapse-header,.lotta-collapse.lotta-collapse-solid .lotta-collapse-content{background:#fff;border-bottom:1px solid var(--lotta-border-color,#ccc);margin:0 -12px}.lotta-collapse-header{align-items:center;border-top:1px solid var(--lotta-border-color,#ccc);cursor:pointer;display:flex;font-weight:700;padding:12px}.lotta-collapse-header svg{margin-right:12px}.lotta-layers-dynamic-select{align-items:center;display:flex;margin-bottom:12px}.lotta-layers-dynamic-select .lotta-react-select{flex-grow:1}.lotta-layers-dynamic-select button{align-items:center;background:var(--lotta-primary-color,#096dd9);border:none;border-radius:var(--lotta-border-radius,2px);cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;margin-left:6px;outline:none;transition:background-color .15s;width:45px}.lotta-layers-dynamic-select button svg{fill:#fff;height:14px;width:14px}.lotta-layers-dynamic-select button:hover{background:var(--lotta-primary-color,#40a9ff)}.lotta-layers .layer-wrapper{background:#fff;margin-bottom:10px}.lotta-layers .layer{border:1px solid var(--lotta-border-color,#ccc);box-sizing:border-box;display:flex;height:32px}.lotta-layers .layer.layer-invisible{opacity:.7}.lotta-layers .layer>:not(:last-child){-webkit-border-end:1px solid var(--lotta-border-color,#ccc);border-inline-end:1px solid var(--lotta-border-color,#ccc)}.lotta-layers .layer .layer-label{align-items:center;cursor:move;display:flex;flex-grow:1;padding:0 12px}.lotta-layers .layer button{align-items:center;background:transparent;border:none;display:flex;flex-shrink:0;justify-content:center;outline:none;width:32px}.lotta-layers .layer button:not([disabled]){cursor:pointer}.lotta-layers .layer button svg{fill:currentColor;height:13px;width:13px}.lotta-layers .layer button:not([disabled]):hover svg{fill:var(--lotta-primary-color,#096dd9)}.lotta-layers .layer-controls{border:1px solid var(--lotta-border-color,#ccc);border-top:1px solid transparent;padding:24px 12px 0}.lotta-info{color:var(--lotta-text-color,#555d66);font-style:italic;line-height:1.5;margin:0 -12px;padding:0 12px}.lotta-info a{color:var(--lotta-primary-color,#096dd9);text-decoration:underline}.lotta-info a:hover{color:var(--lotta-primary-color,#1890ff)}.lotta-info.lotta-info-align-left{text-align:left}.lotta-info.lotta-info-align-center{text-align:center}.lotta-info.lotta-info-align-right{text-align:right}.lotta-info.lotta-info-has-background{background-color:var(--lotta-background-focus,#fff);border-bottom:1px solid var(--lotta-border-color,#ccc);border-top:1px solid var(--lotta-border-color,#ccc);padding:12px}.lotta-cta-button,.lotta-cta-link{box-sizing:border-box;color:var(--lotta-primary-color,#096dd9);cursor:pointer;display:block;text-align:center;transition:all .25s ease;width:100%}.lotta-cta-button{background-color:var(--lotta-background-focus,#f6f7f7);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);padding:12px 18px;text-decoration:none}.lotta-cta-button:hover{background-color:var(--lotta-primary-color,#096dd9);border-color:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-cta-link{background-color:transparent;border:1px solid transparent;outline:none;padding:4px;text-decoration:underline}.lotta-cta-link:focus,.lotta-cta-link:hover{color:var(--lotta-primary-color,#40a9ff);outline:none}.lotta-cta-link:focus{border-color:var(--lotta-primary-color,#096dd9);box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))}.lotta-tags{--tag-remove-bg:#ffc7c7;--tags-border-color:var(--lotta-border-color,#ccc);--tags-hover-border-color:var(--lotta-border-color,#ccc);--tags-focus-border-color:var(--lotta-primary-color,#096dd9);background:var(--lotta-background-focus,#fff);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px)}.lotta-tags.tagify--focus,.lotta-tags:focus{border-color:var(--lotta-primary-color,#096dd9);box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))}.lotta-tags .tagify__tag div:before{--tag-bg:var(--lotta-background-color,#f0f0f1);border:1px solid var(--lotta-border-color,#ccc)}.lotta-tags .tagify__tag:focus div:before,.lotta-tags .tagify__tag:hover:not([readonly]) div:before{--tag-hover:var(--lotta-primary-color,#e6f7ff);border:1px solid var(--lotta-primary-color,#096dd9)}.lotta-tags .tagify__tag__removeBtn{flex-shrink:0}.lotta-tags .tagify__tag__removeBtn:hover+div:before{background-color:var(--tag-remove-bg);transition:all .2s}.tagify__dropdown{--tagify-dd-color-primary:var(--lotta-primary-color,#096dd9);border-radius:3px;z-index:9999999}.lotta-image-uploader{--wp-admin-theme-color:var(--lotta-primary-color,#096dd9)}.lotta-image-uploader .components-number-control .components-input-control__input{z-index:1}.lotta-image-uploader .components-number-control .components-input-control__backdrop{border-color:var(--lotta-border-color,#ccc)!important;box-shadow:none!important}.lotta-image-uploader .thumbnail{align-items:center;cursor:pointer;display:flex;flex-direction:column;position:relative}.lotta-image-uploader .thumbnail img{border-radius:3px;max-width:100%}.lotta-image-uploader .thumbnail:hover .actions{opacity:1}.lotta-image-uploader .thumbnail .actions{background:var(--lotta-background-focus,#fff);border-radius:var(--lotta-border-radius,2px);box-shadow:0 2px 5px rgba(0,0,0,.02);opacity:0;overflow:hidden;position:absolute;right:18px;top:18px;transition:opacity .15s}.lotta-image-uploader .thumbnail .actions button{background:transparent;border:none;border-radius:0;color:var(--lotta-primary-color,#096dd9);height:29px;line-height:29px;margin-top:0;min-height:auto;padding:0;transition:background-color .15s;width:34px}.lotta-image-uploader .thumbnail .actions button:hover{background:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-image-uploader .thumbnail .actions button:last-child{border-left:1px solid var(--lotta-border-color,#ccc)}.lotta-image-uploader .thumbnail .actions button:before{font-family:dashicons;font-size:15px}.lotta-image-uploader .thumbnail .actions .edit-button:before{content:"\f464"}.lotta-image-uploader .thumbnail .actions .remove-button:before{content:"\f182"}.lotta-image-uploader:not([data-type=no-frame]) .thumbnail{background-color:var(--lotta-background-color,#f0f0f1);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);padding:8px}.lotta-image-uploader .lotta-upload-button{background:var(--lotta-background-focus,#f6f7f7);border:1px dashed var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-shadow:none;padding:5px 0;transition:all .15s;width:100%}.lotta-image-uploader .lotta-upload-button.active,.lotta-image-uploader .lotta-upload-button:hover{background:var(--lotta-background-focus,#fff);border-color:var(--lotta-primary-color,#096dd9);box-shadow:none;color:var(--lotta-primary-color,#096dd9)}.lotta-image-uploader .lotta-upload-button:active{transform:none}.lotta-background-control .lotta-background-preview-box{background-color:hsla(0,0%,100%,.8);background-image:linear-gradient(45deg,#ddd 25%,transparent 0),linear-gradient(-45deg,#ddd 25%,transparent 0),linear-gradient(45deg,transparent 75%,#ddd 0),linear-gradient(-45deg,transparent 75%,#ddd 0);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border-radius:4px;cursor:pointer;height:48px}.lotta-background-control .lotta-background-preview-box .lotta-background-preview{align-items:center;border-radius:var(--lotta-border-radius-lg,4px);box-shadow:inset 0 0 0 1px var(--lotta-border-color,#ccc);box-sizing:border-box;cursor:pointer;display:flex;height:inherit;justify-content:center;position:relative;width:inherit}.lotta-background-control .lotta-background-modal{width:300px}.lotta-background-control .lotta-background-modal .lotta-react-color-picker{min-width:100%}.lotta-background-control .lotta-background-modal .modal-content{max-height:420px;overflow-x:hidden;overflow-y:auto}.lotta-background-control .lotta-background-modal .modal-content,.lotta-background-control .lotta-background-modal .modal-content div{box-sizing:border-box}.lotta-background-image>div{border-bottom:1px dashed var(--lotta-border-color,#ccc);padding:24px 12px}.lotta-background-image>div>.lotta-control:last-of-type{margin-bottom:0}.lotta-background-image>div:last-of-type{border-bottom:none}.lotta-background-image .lotta-control{margin-top:0}.lotta-box-shadow{align-items:center;display:flex;font-size:9px;justify-content:flex-end;text-transform:uppercase}.lotta-box-shadow .box-shadow-modal{min-width:300px;padding-bottom:24px}.lotta-box-shadow .box-shadow-modal .box-shadow-section{border-bottom:1px dashed var(--lotta-border-color,#ccc);padding:12px}.lotta-box-shadow .box-shadow-modal .box-shadow-section>.lotta-control:last-of-type{margin-bottom:0}.lotta-box-shadow .box-shadow-value{align-items:center;background:var(--lotta-background-focus,#fff);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-sizing:border-box;cursor:pointer;display:flex;font-weight:600;height:30px;justify-content:center;line-height:1;margin-left:5px;transition:all .1s linear;width:75px}.lotta-box-shadow .box-shadow-value:hover{border-color:var(--lotta-primary-color,#096dd9);color:var(--lotta-primary-color,#096dd9)}.lotta-box-shadow .box-shadow-value.box-shadow-value-active{border-color:var(--lotta-primary-color,#096dd9);box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))}.lotta-typography-modal{min-width:300px;overflow-x:hidden}.lotta-typography-modal .typography-header{padding:12px}.lotta-typography-modal .typography-panels{min-height:412px;overflow:hidden;position:relative}.lotta-typography-modal .typography-panels>*{height:100%;left:0;top:0;width:100%}.lotta-typography-modal .typography-section{border-bottom:1px dashed var(--lotta-border-color,#ccc);padding:24px 12px}.lotta-typography-modal .typography-section>.lotta-control:last-of-type{margin-bottom:0}.lotta-typography-modal .typography-section:last-of-type{border-bottom:none}.lotta-fonts-list-wrapper{display:flex;flex-direction:column;height:100%;width:100%}.lotta-fonts-list-wrapper .lotta-fonts-search{border-bottom:1px dashed var(--lotta-border-color,#ccc);flex-shrink:0;padding:12px}.lotta-fonts-list-wrapper .lotta-fonts-search input[type=text]{border:1px solid var(--lotta-border-color,#ccc);width:100%}.lotta-fonts-list-wrapper .lotta-fonts-search input[type=text]:focus,.lotta-fonts-list-wrapper .lotta-fonts-search input[type=text]:hover{border-color:var(--lotta-primary-color,#096dd9)}.lotta-fonts-list-wrapper .lotta-fonts-list{flex-grow:1}.lotta-fonts-list-wrapper .font-item:last-of-type{border-bottom:none}.lotta-fonts-list-wrapper .font-item .font-label{display:flex;justify-content:space-between;opacity:.75}.lotta-fonts-list-wrapper .font-item .font-preview{font-size:1.2em;margin:0;overflow:hidden;padding-top:6px;text-overflow:ellipsis;-o-text-overflow:ellipsis;white-space:nowrap}.lotta-variants-list-wrapper{height:100%;overflow-y:auto;width:100%}.lotta-variants-list-wrapper .variant-item .variant-label{padding:12px 0}.lotta-fonts-list-wrapper .font-item,.lotta-variants-list-wrapper .variant-item{border-bottom:1px dashed var(--lotta-border-color,#ccc);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:6px 12px}.lotta-fonts-list-wrapper .font-item.active,.lotta-fonts-list-wrapper .font-item:hover,.lotta-variants-list-wrapper .variant-item.active,.lotta-variants-list-wrapper .variant-item:hover{background:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-text-variants{display:flex}.lotta-text-variants .text-transform{padding-right:6px}.lotta-text-variants .text-decoration{padding-left:6px}.lotta-text-variants .text-decoration,.lotta-text-variants .text-transform{flex-grow:1}.lotta-text-variants .text-decoration li,.lotta-text-variants .text-transform li{font-size:13px;font-weight:700;letter-spacing:.04em}.lotta-text-variants .text-decoration li[data-variant=capitalize]:before,.lotta-text-variants .text-transform li[data-variant=capitalize]:before{content:"Aa"}.lotta-text-variants .text-decoration li[data-variant=uppercase]:before,.lotta-text-variants .text-transform li[data-variant=uppercase]:before{content:"AA"}.lotta-text-variants .text-decoration li[data-variant=lowercase]:before,.lotta-text-variants .text-transform li[data-variant=lowercase]:before{content:"aa"}.lotta-text-variants .text-decoration li[data-variant=line-through]:before,.lotta-text-variants .text-decoration li[data-variant=underline]:before,.lotta-text-variants .text-transform li[data-variant=line-through]:before,.lotta-text-variants .text-transform li[data-variant=underline]:before{content:"Aa"}.lotta-text-variants .text-decoration li[data-variant=line-through]:after,.lotta-text-variants .text-decoration li[data-variant=underline]:after,.lotta-text-variants .text-transform li[data-variant=line-through]:after,.lotta-text-variants .text-transform li[data-variant=underline]:after{background:currentColor;border-radius:2px;content:"";height:1px;left:0;margin:auto;opacity:.6;position:absolute;right:0;width:38px}.lotta-text-variants .text-decoration li[data-variant=underline]:after,.lotta-text-variants .text-transform li[data-variant=underline]:after{bottom:6px}.lotta-text-variants .text-decoration li[data-variant=line-through]:after,.lotta-text-variants .text-transform li[data-variant=line-through]:after{bottom:0;top:3px}.lotta-page-builder .sortable-chosen,.lotta-page-builder .sortable-chosen .page-builder-column,.lotta-page-builder .sortable-chosen .page-builder-element,.lotta-page-builder .sortable-chosen .page-builder-row{background-color:#f9eed9!important}.lotta-page-builder .sortable-ghost,.lotta-page-builder .sortable-ghost .page-builder-column,.lotta-page-builder .sortable-ghost .page-builder-element,.lotta-page-builder .sortable-ghost .page-builder-row{background-color:#d9eaf9!important}.lotta-page-builder .page-builder-add-row,.lotta-page-builder .page-builder-reset,.lotta-page-builder .page-builder-row-controls button{align-items:center;background:none;border:none;cursor:pointer;display:flex;outline:none}.lotta-page-builder .page-builder-add-row,.lotta-page-builder .page-builder-reset{align-items:center;border:1px solid var(--lotta-primary-color,#096dd9);border-radius:2px;display:flex;font-size:12px;justify-content:center;margin-bottom:6px;padding:6px 12px;text-transform:uppercase;transition:all .25s ease;width:100%}.lotta-page-builder .page-builder-add-row svg,.lotta-page-builder .page-builder-reset svg{fill:currentColor;margin-right:8px}.lotta-page-builder .page-builder-add-row{background:var(--lotta-primary-color,#096dd9);color:#fff}.lotta-page-builder .page-builder-add-row:hover{background:var(--lotta-primary-color,#1890ff);border-color:var(--lotta-primary-color,#1890ff)}.lotta-page-builder .page-builder-reset{border-color:var(--lotta-primary-color,#096dd9);color:var(--lotta-primary-color,#096dd9)}.lotta-page-builder .page-builder-reset:hover{background:var(--lotta-primary-color,#1890ff);border-color:var(--lotta-primary-color,#1890ff);color:#fff}.lotta-page-builder .page-builder-rows{background:#fff;box-shadow:0 0 4px #ddd;margin:12px 0}.lotta-page-builder .page-builder-rows .page-builder-column,.lotta-page-builder .page-builder-rows .page-builder-element,.lotta-page-builder .page-builder-rows .page-builder-row{align-items:center;border-bottom:1px solid var(--lotta-border-color,#ccc);cursor:-webkit-grab;cursor:grab;display:flex;justify-content:space-between;padding:10px}.lotta-page-builder .page-builder-rows .page-builder-column:hover,.lotta-page-builder .page-builder-rows .page-builder-element:hover,.lotta-page-builder .page-builder-rows .page-builder-row:hover{background:var(--lotta-background-focus,#f6f7f7)}.lotta-page-builder .page-builder-rows .page-builder-column *,.lotta-page-builder .page-builder-rows .page-builder-element *,.lotta-page-builder .page-builder-rows .page-builder-row *{transition:all .2s ease}.lotta-page-builder .page-builder-rows .page-builder-column>div,.lotta-page-builder .page-builder-rows .page-builder-element>div,.lotta-page-builder .page-builder-rows .page-builder-row>div{align-items:center;display:flex}.lotta-page-builder .page-builder-rows .page-builder-column:hover .page-builder-actions,.lotta-page-builder .page-builder-rows .page-builder-element:hover .page-builder-actions,.lotta-page-builder .page-builder-rows .page-builder-row:hover .page-builder-actions{opacity:1}.lotta-page-builder .page-builder-rows .page-builder-column span,.lotta-page-builder .page-builder-rows .page-builder-column svg,.lotta-page-builder .page-builder-rows .page-builder-element span,.lotta-page-builder .page-builder-rows .page-builder-element svg,.lotta-page-builder .page-builder-rows .page-builder-row span,.lotta-page-builder .page-builder-rows .page-builder-row svg{fill:currentColor;padding:0 6px}.lotta-page-builder .page-builder-rows .page-builder-column button,.lotta-page-builder .page-builder-rows .page-builder-element button,.lotta-page-builder .page-builder-rows .page-builder-row button{align-items:center;background:none;border:none;cursor:pointer;display:flex;outline:none;padding:0}.lotta-page-builder .page-builder-rows .page-builder-column button svg,.lotta-page-builder .page-builder-rows .page-builder-element button svg,.lotta-page-builder .page-builder-rows .page-builder-row button svg{fill:#4b5866}.lotta-page-builder .page-builder-rows .page-builder-column button:hover svg,.lotta-page-builder .page-builder-rows .page-builder-element button:hover svg,.lotta-page-builder .page-builder-rows .page-builder-row button:hover svg{fill:var(--lotta-primary-color,#096dd9)}.lotta-page-builder .page-builder-rows .page-builder-column button.remove:hover svg,.lotta-page-builder .page-builder-rows .page-builder-element button.remove:hover svg,.lotta-page-builder .page-builder-rows .page-builder-row button.remove:hover svg{fill:#dc2626}.lotta-page-builder .page-builder-rows .page-builder-column button.move-handle,.lotta-page-builder .page-builder-rows .page-builder-element button.move-handle,.lotta-page-builder .page-builder-rows .page-builder-row button.move-handle{cursor:move}.lotta-page-builder .page-builder-rows .page-builder-column{padding-left:20px}.lotta-page-builder .page-builder-rows .page-builder-element{padding-left:45px}.lotta-page-builder .page-builder-rows .page-builder-element .page-builder-element-icon{align-items:center;display:flex}.lotta-page-builder .page-builder-rows .page-builder-element .page-builder-element-icon svg{height:14px;width:14px}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar{background:var(--lotta-background-color,#f0f0f1);border-right:1px solid var(--lotta-border-color,#ccc);box-shadow:0 0 15px 0 #c7c7c7;height:100%;left:0;overflow-y:auto;padding:12px;position:absolute;top:0;transition:transform .12s ease-in;width:300px}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar,.lotta-page-builder-sidebar-wrapper .page-builder-sidebar div{box-sizing:border-box}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header{align-items:center;background-color:#fff;border-bottom:1px solid var(--lotta-border-color,#ccc);display:flex;font-weight:700;justify-content:space-between;margin:0 -12px;padding:12px 24px}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button{background:none;border:none;cursor:pointer;outline:none}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button,.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button svg{transition:all .25s ease}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button svg{fill:currentColor}.lotta-page-builder-sidebar-wrapper .page-builder-sidebar .page-builder-sidebar-header button:hover svg{fill:var(--lotta-primary-color,#096dd9)}.lotta-page-builder-sidebar-wrapper .row-structure-list{display:flex;flex-wrap:wrap}.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item{cursor:pointer;display:flex;flex-shrink:0;padding:12px;width:50%}.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item .row-structure-column{background:var(--lotta-border-color,#ccc);height:60px;margin-right:4px;transition:all .25s ease}.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item .row-structure-column:last-child{margin-right:0}.lotta-page-builder-sidebar-wrapper .row-structure-list .row-structure-item:hover .row-structure-column{background:var(--lotta-primary-color,#096dd9)}.lotta-page-builder-sidebar-wrapper .builder-elements{display:flex;flex-wrap:wrap;padding:6px 0}.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper{cursor:pointer;flex-shrink:0;padding:6px;width:50%}.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element{background:#fff;border:1px solid var(--lotta-border-color,#ccc);border-radius:3px;height:100%;padding:6px;transition:all .25s ease}.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element img,.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element svg{fill:#d2d2d8;display:block;height:60px;width:100%}.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper .builder-element .element-label{border-top:1px solid var(--lotta-border-color,#ccc);display:block;font-size:10px;font-weight:700;margin:6px -6px 0;padding-top:4px;text-align:center}.lotta-page-builder-sidebar-wrapper .builder-elements .builder-element-wrapper:hover .builder-element{border-color:var(--lotta-primary-color,#096dd9)}.lotta-builder-element{align-items:center;background:#fff;border:1px solid var(--lotta-border-color,#ccc);border-radius:2px;cursor:move;display:flex;justify-content:space-between;margin-bottom:12px;padding:8px 12px;transition:border-color .2s ease}.lotta-builder-element .lotta-dashicon{font-size:12px}.lotta-builder-element:last-of-type{margin-bottom:0}.lotta-builder-element:hover{border-color:var(--lotta-primary-color,#096dd9)}.lotta-builder-element.inactive{background:var(--lotta-background-focus,#f6f7f7);cursor:pointer}.lotta-builder-placements-wrapper.leave .lotta-builder-placements{transform:translateY(100%)!important}.lotta-builder-placements{background:var(--lotta-background-color,#f0f0f1);bottom:0;box-sizing:border-box;left:0;position:absolute;transition:transform .12s ease-in;width:100%}.lotta-builder-placements .builder-placements-wrapper{border-top:1px solid var(--lotta-border-color,#ccc);display:flex;padding:24px}.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area{flex-shrink:0;margin-right:24px;width:200px}.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-columns,.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-row{height:100%}.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-sortable-items{flex-direction:column;padding-bottom:28px}.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-sortable-items .builder-item{box-sizing:border-box;margin-bottom:12px;max-width:100%;min-width:100%}.lotta-builder-placements .builder-placements-wrapper .builder-off-canvas-area .builder-column .builder-column-actions{bottom:0;height:28px;justify-content:center;top:auto;width:100%}.lotta-builder-placements .builder-placements-wrapper .builder-rows-area{flex-grow:1}.lotta-builder-placements .builder-row{margin-bottom:24px;position:relative}.lotta-builder-placements .builder-row:last-of-type{margin-bottom:0}.lotta-builder-placements .builder-row .builder-row-actions{align-items:center;background:var(--lotta-primary-color,#096dd9);border-top-left-radius:4px;border-top-right-radius:4px;display:flex;font-size:.75rem;height:22px;left:0;opacity:0;position:absolute;top:-22px;visibility:hidden}.lotta-builder-placements .builder-row .builder-row-actions .mr-4{margin-right:4px}.lotta-builder-placements .builder-row .builder-row-actions>div{height:100%}.lotta-builder-placements .builder-row .builder-row-actions button{align-items:center;background:transparent;border:none;border-right:1px dashed var(--lotta-border-color,#ccc);color:hsla(0,0%,100%,.75);cursor:pointer;display:flex;height:100%;line-height:1;outline:none;padding:0 12px}.lotta-builder-placements .builder-row .builder-row-actions button:disabled{opacity:.5}.lotta-builder-placements .builder-row .builder-row-actions button:last-of-type{border-right:none}.lotta-builder-placements .builder-row .builder-row-actions button:not([disabled]):hover{color:#fff}.lotta-builder-placements .builder-row:hover .builder-columns{border-color:var(--lotta-primary-color,#096dd9);border-style:solid;border-top-left-radius:0}.lotta-builder-placements .builder-row:hover .builder-row-actions{opacity:1;visibility:visible}.lotta-builder-placements .builder-columns{background:var(--lotta-background-focus,#f6f7f7);border:1px solid var(--lotta-border-color,#ccc);border-radius:2px;display:flex;min-height:60px}.lotta-builder-placements .builder-columns .builder-sortable-items{align-items:flex-start;display:flex;flex-wrap:wrap;height:100%}.lotta-builder-placements .builder-columns .builder-column{border-right:1px dashed var(--lotta-border-color,#ccc);display:flex;flex-grow:1;min-height:32px;padding:6px 12px;position:relative}.lotta-builder-placements .builder-columns .builder-column:last-of-type{border-right:none}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns{cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;right:-9px;top:0;width:18px;z-index:1}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button{fill:var(--lotta-primary-color,#096dd9);border:none;border-radius:9999px;cursor:pointer;font-size:0;line-height:0;margin-bottom:4px;opacity:0;outline:none;padding:0}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button:last-of-type{margin-bottom:0}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns button svg{height:14px;width:14px}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns .builder-add-column{fill:var(--lotta-primary-color,#096dd9)}.lotta-builder-placements .builder-columns .builder-column .builder-change-columns .builder-remove-column{fill:#cb0909}.lotta-builder-placements .builder-columns .builder-column .builder-column-actions{display:flex;height:100%;position:absolute;right:0;top:0}.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button{align-items:center;background:transparent;border:none;cursor:pointer;display:flex;font-size:12px;height:100%;line-height:1;outline:none;padding:0 6px;transition:background,color .2s ease}.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button .lotta-dashicon{font-size:14px}.lotta-builder-placements .builder-columns .builder-column .builder-column-actions button:hover{background:#fff;color:var(--lotta-primary-color,#096dd9)}.lotta-builder-placements .builder-columns .builder-column .builder-column-content{flex-grow:1;padding:4px;position:relative}.lotta-builder-placements .builder-columns .builder-column .builder-item{align-items:center;background-color:#fff;border:#fff;border:1px solid var(--lotta-border-color,#ccc);border-radius:2px;cursor:-webkit-grab;cursor:grab;display:flex;justify-content:space-between;margin:3px;min-width:80px;padding:6px 12px}.lotta-builder-placements .builder-columns .builder-column .builder-item:hover{border-color:var(--lotta-primary-color,#096dd9)}.lotta-builder-placements .builder-columns .builder-column .builder-item:last-of-type{margin-right:0}.lotta-builder-placements .builder-columns .builder-column .builder-item .lotta-dashicon:hover{color:var(--lotta-danger-color,#b12222)}.lotta-builder-placements .builder-columns .builder-column:hover .builder-change-columns button{opacity:1}.lotta-builder-placements .builder-footer{align-items:center;border-top:1px solid var(--lotta-border-color,#ccc);display:flex;height:45px;justify-content:flex-end;padding:0 24px}.lotta-builder-placements .builder-footer .builder-responsive-controls{display:flex;flex-grow:1;height:100%;margin:0}.lotta-builder-placements .builder-footer .builder-responsive-controls li{align-items:center;border-right:1px solid var(--lotta-border-color,#ccc);cursor:pointer;display:flex;margin-bottom:0;padding:0 12px;position:relative}.lotta-builder-placements .builder-footer .builder-responsive-controls li:first-child{border-left:1px solid var(--lotta-border-color,#ccc)}.lotta-builder-placements .builder-footer .builder-responsive-controls li.active:after{background-color:#1d2327;bottom:0;content:"";display:block;height:4px;left:0;position:absolute;width:100%}.lotta-builder-placements .builder-footer .builder-responsive-controls li:hover{background-color:var(--lotta-background-focus,#f6f7f7);color:var(--lotta-primary-color,#096dd9)}.lotta-builder-placements .builder-footer .builder-responsive-controls li.active{background-color:#fff}.lotta-builder-placements .builder-footer .toggle{align-items:center;background:transparent;border:1px solid var(--lotta-border-color,#ccc);border-bottom:none;border-top:none;cursor:pointer;display:flex;height:100%;outline:none;padding:6px 12px}.lotta-builder-placements .builder-footer .toggle .lotta-dashicon{margin-right:4px}.lotta-builder-placements .builder-footer .toggle:hover{background:var(--lotta-background-focus,#f6f7f7);color:var(--lotta-primary-color,#096dd9)}.builder-element-list .builder-element{border-bottom:1px dashed var(--lotta-border-color,#ccc);cursor:-webkit-grab;cursor:grab;min-width:120px;padding:8px 12px}.builder-element-list .builder-element:hover{background:var(--lotta-background-focus,#f6f7f7)}.builder-element-list .builder-element:last-of-type{border-bottom:none}.lotta-repeater .repeater-add-element{align-items:center;background:var(--lotta-background-color,#aaaeb2);border:1px solid var(--lotta-background-color,#aaaeb2);border-radius:2px;color:#fff;cursor:pointer;display:flex;font-size:12px;justify-content:center;outline:none;padding:6px 12px;text-transform:uppercase;transition:all .25s ease;width:100%}.lotta-repeater .repeater-add-element svg{fill:#fff;margin-right:8px}.lotta-repeater .repeater-add-element:hover{background:var(--lotta-primary-color,#096dd9);border-color:var(--lotta-primary-color,#096dd9)}.lotta-icons-modal{width:320px}.lotta-icons-modal .lotta-icons-modal-content{grid-column-gap:12px;grid-row-gap:12px;display:grid;grid-template-columns:repeat(6,1fr);justify-items:center;max-height:360px;overflow-x:hidden;overflow-y:auto;padding:12px}.lotta-icons-modal .lotta-icons-modal-content .lotta-icon-preview.active,.lotta-icons-modal .lotta-icons-modal-content .lotta-icon-preview:hover{background:var(--lotta-primary-color,#096dd9);box-shadow:none;color:#fff}.lotta-icons-modal .icons-filter{border-bottom:1px solid var(--lotta-border-color,#ccc);padding:12px}.lotta-icons .lotta-icon-preview{align-items:center;background:var(--lotta-background-focus,#fff);border:1px solid var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);cursor:pointer;display:inline-flex;font-size:16px;height:32px;justify-content:center;transition:.2s ease;width:32px}.lotta-icons .lotta-icon-preview.active,.lotta-icons .lotta-icon-preview:hover{border-color:var(--lotta-primary-color,#096dd9)}.lotta-icons .lotta-icon-preview.active{box-shadow:0 0 0 2px var(--lotta-primary-outline,rgba(24,144,255,.2))}.lotta-css-filter .css-filter-modal{min-width:260px;padding-bottom:24px}.lotta-css-filter .css-filter-modal .css-filter-section{border-bottom:1px dashed var(--lotta-border-color,#ccc);padding:12px}.lotta-css-filter .css-filter-modal .css-filter-section:last-of-type{border-bottom:0}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control{padding:0}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.brightness .lotta-slider div,.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.hue .lotta-slider div,.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.saturate .lotta-slider div{background:none}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.brightness .lotta-slider:before{background-image:linear-gradient(90deg,#000,#fff)}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.saturate .lotta-slider:before{background-image:linear-gradient(90deg,gray,red)}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control.hue .lotta-slider:before{background-image:linear-gradient(90deg,red,orange,#ff0,#adff2f,#32cd32,#00bfff,blue,#9400d3 95%)}.lotta-css-filter .css-filter-modal .css-filter-section>.lotta-control:last-of-type{margin-bottom:0}.lotta-file-uploader{--wp-admin-theme-color:var(--lotta-primary-color,#096dd9)}.lotta-file-uploader .lotta-upload-button{background:var(--lotta-background-focus,#f6f7f7);border:1px dashed var(--lotta-border-color,#ccc);border-radius:var(--lotta-border-radius,2px);box-shadow:none;padding:5px 0;transition:all .15s;width:100%}.lotta-file-uploader .lotta-upload-button.active,.lotta-file-uploader .lotta-upload-button:hover{background:var(--lotta-background-focus,#fff);border-color:var(--lotta-primary-color,#096dd9);box-shadow:none;color:var(--lotta-primary-color,#096dd9)}.lotta-file-uploader .lotta-upload-button:active{transform:none}.lotta-file-uploader .lotta-file-list{list-style:circle;margin:10px 0 10px 18px;opacity:.85;padding:0}.lotta-file-uploader .lotta-file-list li{margin:0} diff --git a/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.js b/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.js new file mode 100644 index 0000000000..094e665d99 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.js @@ -0,0 +1,1078 @@ +(() => { + var __webpack_modules__ = { + 334: (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + var webfontloader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(308); + var webfontloader__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(webfontloader__WEBPACK_IMPORTED_MODULE_0__); + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + var CSS_INITIAL_VALUE = "__INITIAL_VALUE__"; + if (!window.Lotta) { + window.Lotta = {}; + } + window.LottaCss = { + breakpoints: Lotta.breakpoints, + parse: function parse(css_output) { + var beauty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var parse_css = ""; + var tablet_output = {}; + var mobile_output = {}; + var eol = beauty ? "\n" : ""; + if (_typeof(css_output) !== "object" || Object.keys(css_output).length <= 0) { + return parse_css; + } + Object.keys(css_output).forEach((function(selector) { + var properties = css_output[selector]; + if (!properties || Object.keys(properties).length <= 0) { + return; + } + var temp_parse_css = selector + "{" + eol; + var temp_tablet_output = {}; + var temp_mobile_output = {}; + var properties_added = 0; + Object.keys(properties).forEach((function(property) { + var value = properties[property]; + if (_typeof(value) === "object") { + temp_tablet_output[property] = value.tablet; + temp_mobile_output[property] = value.mobile; + value = value.desktop; + } + if (!value || CSS_INITIAL_VALUE === value) { + return; + } + properties_added++; + temp_parse_css += property + ":" + value + ";" + eol; + })); + temp_parse_css += "}"; + if (Object.keys(temp_tablet_output).length > 0) { + tablet_output[selector] = temp_tablet_output; + } + if (Object.keys(temp_mobile_output).length > 0) { + mobile_output[selector] = temp_mobile_output; + } + if (properties_added > 0) { + parse_css += temp_parse_css; + } + })); + var tablet_css = this.parse(tablet_output, beauty); + if (tablet_css !== "") { + tablet_css = "@media (max-width: " + this.breakpoints.tablet + ") {" + eol + tablet_css + eol + "}" + eol; + } + var mobile_css = this.parse(mobile_output, beauty); + if (mobile_css !== "") { + mobile_css = "@media (max-width: " + this.breakpoints.mobile + ") {" + eol + mobile_css + eol + "}" + eol; + } + return parse_css + tablet_css + mobile_css; + }, + valueMapper: function valueMapper(value, map) { + return map[value] || value; + }, + getResponsiveValue: function getResponsiveValue(value) { + var device = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var previous = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + if (!device || device === "null") { + return value; + } + value = _defineProperty({}, device, value); + return _typeof(previous) === "object" ? Object.assign({}, previous, value) : value; + }, + dimensions: function dimensions(value) { + var _this = this; + var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "margin"; + if (!value.desktop) { + value = { + null: value + }; + } + var spacingCss = {}; + Object.keys(value).forEach((function(device) { + var data = value[device]; + var top = data["top"] || "0"; + var right = data["right"] || "0"; + var bottom = data["bottom"] || "0"; + var left = data["left"] || "0"; + spacingCss[selector] = _this.getResponsiveValue("".concat(top, " ").concat(right, " ").concat(bottom, " ").concat(left), device, spacingCss[selector]); + })); + return spacingCss; + }, + background: function background(_background) { + var _this2 = this; + if (!_background.desktop) { + _background = { + null: _background + }; + } + var backgroundCss = {}; + Object.keys(_background).forEach((function(device) { + var data = _background[device]; + if (data["type"] === "color") { + if (!data["color"] || data["color"] === "inherit" || data["color"] === CSS_INITIAL_VALUE) { + return; + } + backgroundCss["background-color"] = _this2.getResponsiveValue(data["color"], device, backgroundCss["background-color"]); + backgroundCss["background-image"] = _this2.getResponsiveValue("none", device, backgroundCss["background-image"]); + } else if (data["type"] === "gradient") { + backgroundCss["background-image"] = _this2.getResponsiveValue(data["gradient"], device, backgroundCss["background-image"]); + } else if (data["type"] === "image") { + var image = data["image"] || {}; + if (image["color"]) { + backgroundCss["background-color"] = _this2.getResponsiveValue(image["color"], device, backgroundCss["background-color"]); + } + if (image["size"]) { + backgroundCss["background-size"] = _this2.getResponsiveValue(image["size"], device, backgroundCss["background-size"]); + } + if (image["repeat"]) { + backgroundCss["background-repeat"] = _this2.getResponsiveValue(image["repeat"], device, backgroundCss["background-repeat"]); + } + if (image["attachment"]) { + backgroundCss["background-attachment"] = _this2.getResponsiveValue(image["attachment"], device, backgroundCss["background-attachment"]); + } + if (image["source"] && image["source"]["url"]) { + backgroundCss["background-image"] = _this2.getResponsiveValue("url(" + image["source"]["url"] + ")", device, backgroundCss["background-image"]); + if (image["source"]["x"] && image["source"]["y"]) { + var x = image["source"]["x"] * 100; + var y = image["source"]["y"] * 100; + backgroundCss["background-position"] = _this2.getResponsiveValue("".concat(x, "% ").concat(y, "%"), device, backgroundCss["background-position"]); + } + } + } + })); + return backgroundCss; + }, + border: function border(_border) { + var _this3 = this; + var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "border"; + if (!_border.desktop) { + _border = { + null: _border + }; + } + var borderCss = {}; + Object.keys(_border).forEach((function(device) { + var data = _border[device]; + var value = "none"; + var style = data["style"] || ""; + var width = (data["width"] || "0") + "px"; + var color = data["color"] || ""; + var hover = data["hover"] || ""; + if (style !== "" && style !== CSS_INITIAL_VALUE) { + if (style !== "none") { + value = "".concat(width, " ").concat(style, " ").concat(color === CSS_INITIAL_VALUE ? "var(--lotta-border-initial-color)" : color); + } + borderCss[selector] = _this3.getResponsiveValue(value, device, borderCss[selector]); + } + if (color !== CSS_INITIAL_VALUE) { + borderCss["--lotta-border-initial-color"] = _this3.getResponsiveValue(color, device, borderCss["--lotta-border-initial-color"]); + borderCss["--lotta-border-".concat(selector, "-initial-color")] = _this3.getResponsiveValue(color, device, borderCss["--lotta-border-".concat(selector, "-initial-color")]); + } + if (hover !== CSS_INITIAL_VALUE) { + borderCss["--lotta-border-hover-color"] = _this3.getResponsiveValue(hover, device, borderCss["--lotta-border-hover-color"]); + borderCss["--lotta-border-".concat(selector, "-hover-color")] = _this3.getResponsiveValue(color, device, borderCss["--lotta-border-".concat(selector, "-hover-color")]); + } + })); + return borderCss; + }, + filters: function filters(filter) { + var _this4 = this; + if (filter === "__INITIAL_VALUE__" || filter === undefined || filter === null) { + return {}; + } + if (!filter.desktop) { + filter = { + null: filter + }; + } + var filterCss = {}; + Object.keys(filter).forEach((function(device) { + var data = filter[device]; + var value = "none"; + var enable = (data["enable"] || "") === "yes"; + var blur = data["blur"] || 0; + var contrast = data["contrast"] || 100; + var brightness = data["brightness"] || 100; + var saturate = data["saturate"] || 100; + var hue = data["hue"] || 0; + if (enable) { + value = "brightness( ".concat(brightness, "% ) contrast( ").concat(contrast, "% ) saturate( ").concat(saturate, "% ) blur( ").concat(blur, "px ) hue-rotate( ").concat(hue, "deg )"); + } + filterCss["filter"] = _this4.getResponsiveValue(value, device, filterCss["filter"]); + })); + return filterCss; + }, + shadow: function shadow(_shadow) { + var _this5 = this; + var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "box-shadow"; + if (!_shadow.desktop) { + _shadow = { + null: _shadow + }; + } + var shadowCss = {}; + Object.keys(_shadow).forEach((function(device) { + var data = _shadow[device]; + if (data === CSS_INITIAL_VALUE) { + return; + } + var value = "none"; + var enable = (data["enable"] || "") === "yes"; + var h = data["horizontal"] || "0"; + var v = data["vertical"] || "0"; + var blur = data["blur"] || "0"; + var spread = data["spread"] || "0"; + var color = data["color"] || ""; + if (enable) { + value = "".concat(color, " ").concat(h, " ").concat(v, " ").concat(blur, " ").concat(spread); + } + shadowCss[selector] = _this5.getResponsiveValue(value, device, shadowCss[selector]); + })); + return shadowCss; + }, + typography: function typography(_typography) { + var custom = Lotta.customizer.settings.custom_fonts; + var system = Lotta.customizer.settings.system_fonts; + var google = Lotta.customizer.settings.google_fonts; + var family = _typography["family"] || "inherit"; + var variant = _typography["variant"] || "400"; + if (system[family]) { + if (system[family]["s"] && system[family]["s"]) { + family = system[family]["s"]; + } + } + if (google[family]) { + var variants = google[family]["v"] || []; + family = google[family]["f"] || family; + variant = variants.indexOf(variant) !== -1 ? variant : variants[0] || "400"; + webfontloader__WEBPACK_IMPORTED_MODULE_0___default().load({ + google: { + families: [ family ] + } + }); + } + if (custom[family]) { + var _custom$family$v; + var font = custom[family]; + variant = (_custom$family$v = custom[family]["v"]) !== null && _custom$family$v !== void 0 ? _custom$family$v : "400"; + if (custom[family]["s"]) { + family = custom[family]["f"] + "," + custom[family]["s"]; + } else { + family = custom[family]["f"]; + } + this.addDynamicStyle("lotta-preview-dynamic-custom-fonts-loader", this.fontFacesCss([ font ])); + } + return { + "font-family": family, + "font-weight": variant, + "font-size": _typography["fontSize"] || "", + "line-height": _typography["lineHeight"] || "", + "letter-spacing": _typography["letterSpacing"] || "", + "text-transform": _typography["textTransform"] || "", + "text-decoration": _typography["textDecoration"] || "" + }; + }, + colors: function colors(_colors, maps) { + var _this6 = this; + var css = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + Object.keys(maps).forEach((function(color) { + if (_colors[color]) { + if (_colors[color] !== CSS_INITIAL_VALUE && _colors[color] !== "") { + var selectors = maps[color]; + if (!Array.isArray(selectors)) { + selectors = [ selectors ]; + } + selectors.forEach((function(selector) { + css[maps[color]] = _this6.getColorValue(_colors[color]); + })); + } + } + })); + return css; + }, + getColorValue: function getColorValue(color) { + if (!color || color === CSS_INITIAL_VALUE) { + return ""; + } + if (color.indexOf("var") > -1) { + var value = getComputedStyle(document.documentElement).getPropertyValue(color.replace(/var\(/, "").replace(/\)/, "")).trim().replace(/\s/g, ""); + if (value.indexOf("#") === -1 && value.indexOf("rgb") === -1) { + return "rgb(".concat(value, ")"); + } + return value; + } + return color; + }, + fontFacesCss: function fontFacesCss(fonts) { + var parse_css = ""; + fonts.forEach((function(font) { + parse_css += "@font-face {"; + parse_css += "font-family: '".concat(font["f"], "';"); + parse_css += "font-weight: '".concat(font["v"], "';"); + font["u"].forEach((function(src) { + if (src.indexOf(".otf") !== -1) { + parse_css += "src: url('".concat(src, '\') format("opentype");'); + } else if (src.indexOf(".ttf") !== -1) { + parse_css += "src: url('".concat(src, '\') format("truetype");'); + } else if (src.indexOf(".woff2") !== -1) { + parse_css += "src: url('".concat(src, '\') format("woff2");'); + } else if (src.indexOf(".woff") !== -1) { + parse_css += "src: url('".concat(src, '\') format("woff");'); + } + })); + parse_css += "}"; + })); + return parse_css; + }, + addDynamicStyle: function addDynamicStyle(id, style) { + jQuery("style#" + id).remove(); + jQuery("head").append('"); + } + }; + }, + 308: (module, exports, __webpack_require__) => { + var __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + function aa(a, b, c) { + return a.call.apply(a.bind, arguments); + } + function ba(a, b, c) { + if (!a) throw Error(); + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function() { + var c = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(c, d); + return a.apply(b, c); + }; + } + return function() { + return a.apply(b, arguments); + }; + } + function p(a, b, c) { + p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? aa : ba; + return p.apply(null, arguments); + } + var q = Date.now || function() { + return +new Date; + }; + function ca(a, b) { + this.a = a; + this.o = b || a; + this.c = this.o.document; + } + var da = !!window.FontFace; + function t(a, b, c, d) { + b = a.c.createElement(b); + if (c) for (var e in c) c.hasOwnProperty(e) && ("style" == e ? b.style.cssText = c[e] : b.setAttribute(e, c[e])); + d && b.appendChild(a.c.createTextNode(d)); + return b; + } + function u(a, b, c) { + a = a.c.getElementsByTagName(b)[0]; + a || (a = document.documentElement); + a.insertBefore(c, a.lastChild); + } + function v(a) { + a.parentNode && a.parentNode.removeChild(a); + } + function w(a, b, c) { + b = b || []; + c = c || []; + for (var d = a.className.split(/\s+/), e = 0; e < b.length; e += 1) { + for (var f = !1, g = 0; g < d.length; g += 1) if (b[e] === d[g]) { + f = !0; + break; + } + f || d.push(b[e]); + } + b = []; + for (e = 0; e < d.length; e += 1) { + f = !1; + for (g = 0; g < c.length; g += 1) if (d[e] === c[g]) { + f = !0; + break; + } + f || b.push(d[e]); + } + a.className = b.join(" ").replace(/\s+/g, " ").replace(/^\s+|\s+$/, ""); + } + function y(a, b) { + for (var c = a.className.split(/\s+/), d = 0, e = c.length; d < e; d++) if (c[d] == b) return !0; + return !1; + } + function ea(a) { + return a.o.location.hostname || a.a.location.hostname; + } + function z(a, b, c) { + function d() { + m && e && f && (m(g), m = null); + } + b = t(a, "link", { + rel: "stylesheet", + href: b, + media: "all" + }); + var e = !1, f = !0, g = null, m = c || null; + da ? (b.onload = function() { + e = !0; + d(); + }, b.onerror = function() { + e = !0; + g = Error("Stylesheet failed to load"); + d(); + }) : setTimeout((function() { + e = !0; + d(); + }), 0); + u(a, "head", b); + } + function A(a, b, c, d) { + var e = a.c.getElementsByTagName("head")[0]; + if (e) { + var f = t(a, "script", { + src: b + }), g = !1; + f.onload = f.onreadystatechange = function() { + g || this.readyState && "loaded" != this.readyState && "complete" != this.readyState || (g = !0, + c && c(null), f.onload = f.onreadystatechange = null, "HEAD" == f.parentNode.tagName && e.removeChild(f)); + }; + e.appendChild(f); + setTimeout((function() { + g || (g = !0, c && c(Error("Script load timeout"))); + }), d || 5e3); + return f; + } + return null; + } + function B() { + this.a = 0; + this.c = null; + } + function C(a) { + a.a++; + return function() { + a.a--; + D(a); + }; + } + function E(a, b) { + a.c = b; + D(a); + } + function D(a) { + 0 == a.a && a.c && (a.c(), a.c = null); + } + function F(a) { + this.a = a || "-"; + } + F.prototype.c = function(a) { + for (var b = [], c = 0; c < arguments.length; c++) b.push(arguments[c].replace(/[\W_]+/g, "").toLowerCase()); + return b.join(this.a); + }; + function G(a, b) { + this.c = a; + this.f = 4; + this.a = "n"; + var c = (b || "n4").match(/^([nio])([1-9])$/i); + c && (this.a = c[1], this.f = parseInt(c[2], 10)); + } + function fa(a) { + return H(a) + " " + (a.f + "00") + " 300px " + I(a.c); + } + function I(a) { + var b = []; + a = a.split(/,\s*/); + for (var c = 0; c < a.length; c++) { + var d = a[c].replace(/['"]/g, ""); + -1 != d.indexOf(" ") || /^\d/.test(d) ? b.push("'" + d + "'") : b.push(d); + } + return b.join(","); + } + function J(a) { + return a.a + a.f; + } + function H(a) { + var b = "normal"; + "o" === a.a ? b = "oblique" : "i" === a.a && (b = "italic"); + return b; + } + function ga(a) { + var b = 4, c = "n", d = null; + a && ((d = a.match(/(normal|oblique|italic)/i)) && d[1] && (c = d[1].substr(0, 1).toLowerCase()), + (d = a.match(/([1-9]00|normal|bold)/i)) && d[1] && (/bold/i.test(d[1]) ? b = 7 : /[1-9]00/.test(d[1]) && (b = parseInt(d[1].substr(0, 1), 10)))); + return c + b; + } + function ha(a, b) { + this.c = a; + this.f = a.o.document.documentElement; + this.h = b; + this.a = new F("-"); + this.j = !1 !== b.events; + this.g = !1 !== b.classes; + } + function ia(a) { + a.g && w(a.f, [ a.a.c("wf", "loading") ]); + K(a, "loading"); + } + function L(a) { + if (a.g) { + var b = y(a.f, a.a.c("wf", "active")), c = [], d = [ a.a.c("wf", "loading") ]; + b || c.push(a.a.c("wf", "inactive")); + w(a.f, c, d); + } + K(a, "inactive"); + } + function K(a, b, c) { + if (a.j && a.h[b]) if (c) a.h[b](c.c, J(c)); else a.h[b](); + } + function ja() { + this.c = {}; + } + function ka(a, b, c) { + var d = [], e; + for (e in b) if (b.hasOwnProperty(e)) { + var f = a.c[e]; + f && d.push(f(b[e], c)); + } + return d; + } + function M(a, b) { + this.c = a; + this.f = b; + this.a = t(this.c, "span", { + "aria-hidden": "true" + }, this.f); + } + function N(a) { + u(a.c, "body", a.a); + } + function O(a) { + return "display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:" + I(a.c) + ";" + ("font-style:" + H(a) + ";font-weight:" + (a.f + "00") + ";"); + } + function P(a, b, c, d, e, f) { + this.g = a; + this.j = b; + this.a = d; + this.c = c; + this.f = e || 3e3; + this.h = f || void 0; + } + P.prototype.start = function() { + var a = this.c.o.document, b = this, c = q(), d = new Promise((function(d, e) { + function f() { + q() - c >= b.f ? e() : a.fonts.load(fa(b.a), b.h).then((function(a) { + 1 <= a.length ? d() : setTimeout(f, 25); + }), (function() { + e(); + })); + } + f(); + })), e = null, f = new Promise((function(a, d) { + e = setTimeout(d, b.f); + })); + Promise.race([ f, d ]).then((function() { + e && (clearTimeout(e), e = null); + b.g(b.a); + }), (function() { + b.j(b.a); + })); + }; + function Q(a, b, c, d, e, f, g) { + this.v = a; + this.B = b; + this.c = c; + this.a = d; + this.s = g || "BESbswy"; + this.f = {}; + this.w = e || 3e3; + this.u = f || null; + this.m = this.j = this.h = this.g = null; + this.g = new M(this.c, this.s); + this.h = new M(this.c, this.s); + this.j = new M(this.c, this.s); + this.m = new M(this.c, this.s); + a = new G(this.a.c + ",serif", J(this.a)); + a = O(a); + this.g.a.style.cssText = a; + a = new G(this.a.c + ",sans-serif", J(this.a)); + a = O(a); + this.h.a.style.cssText = a; + a = new G("serif", J(this.a)); + a = O(a); + this.j.a.style.cssText = a; + a = new G("sans-serif", J(this.a)); + a = O(a); + this.m.a.style.cssText = a; + N(this.g); + N(this.h); + N(this.j); + N(this.m); + } + var R = { + D: "serif", + C: "sans-serif" + }, S = null; + function T() { + if (null === S) { + var a = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent); + S = !!a && (536 > parseInt(a[1], 10) || 536 === parseInt(a[1], 10) && 11 >= parseInt(a[2], 10)); + } + return S; + } + Q.prototype.start = function() { + this.f.serif = this.j.a.offsetWidth; + this.f["sans-serif"] = this.m.a.offsetWidth; + this.A = q(); + U(this); + }; + function la(a, b, c) { + for (var d in R) if (R.hasOwnProperty(d) && b === a.f[R[d]] && c === a.f[R[d]]) return !0; + return !1; + } + function U(a) { + var b = a.g.a.offsetWidth, c = a.h.a.offsetWidth, d; + (d = b === a.f.serif && c === a.f["sans-serif"]) || (d = T() && la(a, b, c)); + d ? q() - a.A >= a.w ? T() && la(a, b, c) && (null === a.u || a.u.hasOwnProperty(a.a.c)) ? V(a, a.v) : V(a, a.B) : ma(a) : V(a, a.v); + } + function ma(a) { + setTimeout(p((function() { + U(this); + }), a), 50); + } + function V(a, b) { + setTimeout(p((function() { + v(this.g.a); + v(this.h.a); + v(this.j.a); + v(this.m.a); + b(this.a); + }), a), 0); + } + function W(a, b, c) { + this.c = a; + this.a = b; + this.f = 0; + this.m = this.j = !1; + this.s = c; + } + var X = null; + W.prototype.g = function(a) { + var b = this.a; + b.g && w(b.f, [ b.a.c("wf", a.c, J(a).toString(), "active") ], [ b.a.c("wf", a.c, J(a).toString(), "loading"), b.a.c("wf", a.c, J(a).toString(), "inactive") ]); + K(b, "fontactive", a); + this.m = !0; + na(this); + }; + W.prototype.h = function(a) { + var b = this.a; + if (b.g) { + var c = y(b.f, b.a.c("wf", a.c, J(a).toString(), "active")), d = [], e = [ b.a.c("wf", a.c, J(a).toString(), "loading") ]; + c || d.push(b.a.c("wf", a.c, J(a).toString(), "inactive")); + w(b.f, d, e); + } + K(b, "fontinactive", a); + na(this); + }; + function na(a) { + 0 == --a.f && a.j && (a.m ? (a = a.a, a.g && w(a.f, [ a.a.c("wf", "active") ], [ a.a.c("wf", "loading"), a.a.c("wf", "inactive") ]), + K(a, "active")) : L(a.a)); + } + function oa(a) { + this.j = a; + this.a = new ja; + this.h = 0; + this.f = this.g = !0; + } + oa.prototype.load = function(a) { + this.c = new ca(this.j, a.context || this.j); + this.g = !1 !== a.events; + this.f = !1 !== a.classes; + pa(this, new ha(this.c, a), a); + }; + function qa(a, b, c, d, e) { + var f = 0 == --a.h; + (a.f || a.g) && setTimeout((function() { + var a = e || null, m = d || null || {}; + if (0 === c.length && f) L(b.a); else { + b.f += c.length; + f && (b.j = f); + var h, l = []; + for (h = 0; h < c.length; h++) { + var k = c[h], n = m[k.c], r = b.a, x = k; + r.g && w(r.f, [ r.a.c("wf", x.c, J(x).toString(), "loading") ]); + K(r, "fontloading", x); + r = null; + if (null === X) if (window.FontFace) { + var x = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent), xa = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); + X = x ? 42 < parseInt(x[1], 10) : xa ? !1 : !0; + } else X = !1; + X ? r = new P(p(b.g, b), p(b.h, b), b.c, k, b.s, n) : r = new Q(p(b.g, b), p(b.h, b), b.c, k, b.s, a, n); + l.push(r); + } + for (h = 0; h < l.length; h++) l[h].start(); + } + }), 0); + } + function pa(a, b, c) { + var d = [], e = c.timeout; + ia(b); + var d = ka(a.a, c, a.c), f = new W(a.c, b, e); + a.h = d.length; + b = 0; + for (c = d.length; b < c; b++) d[b].load((function(b, d, c) { + qa(a, f, b, d, c); + })); + } + function ra(a, b) { + this.c = a; + this.a = b; + } + ra.prototype.load = function(a) { + function b() { + if (f["__mti_fntLst" + d]) { + var c = f["__mti_fntLst" + d](), e = [], h; + if (c) for (var l = 0; l < c.length; l++) { + var k = c[l].fontfamily; + void 0 != c[l].fontStyle && void 0 != c[l].fontWeight ? (h = c[l].fontStyle + c[l].fontWeight, + e.push(new G(k, h))) : e.push(new G(k)); + } + a(e); + } else setTimeout((function() { + b(); + }), 50); + } + var c = this, d = c.a.projectId, e = c.a.version; + if (d) { + var f = c.c.o; + A(this.c, (c.a.api || "https://fast.fonts.net/jsapi") + "/" + d + ".js" + (e ? "?v=" + e : ""), (function(e) { + e ? a([]) : (f["__MonotypeConfiguration__" + d] = function() { + return c.a; + }, b()); + })).id = "__MonotypeAPIScript__" + d; + } else a([]); + }; + function sa(a, b) { + this.c = a; + this.a = b; + } + sa.prototype.load = function(a) { + var b, c, d = this.a.urls || [], e = this.a.families || [], f = this.a.testStrings || {}, g = new B; + b = 0; + for (c = d.length; b < c; b++) z(this.c, d[b], C(g)); + var m = []; + b = 0; + for (c = e.length; b < c; b++) if (d = e[b].split(":"), d[1]) for (var h = d[1].split(","), l = 0; l < h.length; l += 1) m.push(new G(d[0], h[l])); else m.push(new G(d[0])); + E(g, (function() { + a(m, f); + })); + }; + function ta(a, b) { + a ? this.c = a : this.c = ua; + this.a = []; + this.f = []; + this.g = b || ""; + } + var ua = "https://fonts.googleapis.com/css"; + function va(a, b) { + for (var c = b.length, d = 0; d < c; d++) { + var e = b[d].split(":"); + 3 == e.length && a.f.push(e.pop()); + var f = ""; + 2 == e.length && "" != e[1] && (f = ":"); + a.a.push(e.join(f)); + } + } + function wa(a) { + if (0 == a.a.length) throw Error("No fonts to load!"); + if (-1 != a.c.indexOf("kit=")) return a.c; + for (var b = a.a.length, c = [], d = 0; d < b; d++) c.push(a.a[d].replace(/ /g, "+")); + b = a.c + "?family=" + c.join("%7C"); + 0 < a.f.length && (b += "&subset=" + a.f.join(",")); + 0 < a.g.length && (b += "&text=" + encodeURIComponent(a.g)); + return b; + } + function ya(a) { + this.f = a; + this.a = []; + this.c = {}; + } + var za = { + latin: "BESbswy", + "latin-ext": "çöüğş", + cyrillic: "йяЖ", + greek: "αβΣ", + khmer: "កខគ", + Hanuman: "កខគ" + }, Aa = { + thin: "1", + extralight: "2", + "extra-light": "2", + ultralight: "2", + "ultra-light": "2", + light: "3", + regular: "4", + book: "4", + medium: "5", + "semi-bold": "6", + semibold: "6", + "demi-bold": "6", + demibold: "6", + bold: "7", + "extra-bold": "8", + extrabold: "8", + "ultra-bold": "8", + ultrabold: "8", + black: "9", + heavy: "9", + l: "3", + r: "4", + b: "7" + }, Ba = { + i: "i", + italic: "i", + n: "n", + normal: "n" + }, Ca = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/; + function Da(a) { + for (var b = a.f.length, c = 0; c < b; c++) { + var d = a.f[c].split(":"), e = d[0].replace(/\+/g, " "), f = [ "n4" ]; + if (2 <= d.length) { + var g; + var m = d[1]; + g = []; + if (m) for (var m = m.split(","), h = m.length, l = 0; l < h; l++) { + var k; + k = m[l]; + if (k.match(/^[\w-]+$/)) { + var n = Ca.exec(k.toLowerCase()); + if (null == n) k = ""; else { + k = n[2]; + k = null == k || "" == k ? "n" : Ba[k]; + n = n[1]; + if (null == n || "" == n) n = "4"; else var r = Aa[n], n = r ? r : isNaN(n) ? "4" : n.substr(0, 1); + k = [ k, n ].join(""); + } + } else k = ""; + k && g.push(k); + } + 0 < g.length && (f = g); + 3 == d.length && (d = d[2], g = [], d = d ? d.split(",") : g, 0 < d.length && (d = za[d[0]]) && (a.c[e] = d)); + } + a.c[e] || (d = za[e]) && (a.c[e] = d); + for (d = 0; d < f.length; d += 1) a.a.push(new G(e, f[d])); + } + } + function Ea(a, b) { + this.c = a; + this.a = b; + } + var Fa = { + Arimo: !0, + Cousine: !0, + Tinos: !0 + }; + Ea.prototype.load = function(a) { + var b = new B, c = this.c, d = new ta(this.a.api, this.a.text), e = this.a.families; + va(d, e); + var f = new ya(e); + Da(f); + z(c, wa(d), C(b)); + E(b, (function() { + a(f.a, f.c, Fa); + })); + }; + function Ga(a, b) { + this.c = a; + this.a = b; + } + Ga.prototype.load = function(a) { + var b = this.a.id, c = this.c.o; + b ? A(this.c, (this.a.api || "https://use.typekit.net") + "/" + b + ".js", (function(b) { + if (b) a([]); else if (c.Typekit && c.Typekit.config && c.Typekit.config.fn) { + b = c.Typekit.config.fn; + for (var e = [], f = 0; f < b.length; f += 2) for (var g = b[f], m = b[f + 1], h = 0; h < m.length; h++) e.push(new G(g, m[h])); + try { + c.Typekit.load({ + events: !1, + classes: !1, + async: !0 + }); + } catch (l) {} + a(e); + } + }), 2e3) : a([]); + }; + function Ha(a, b) { + this.c = a; + this.f = b; + this.a = []; + } + Ha.prototype.load = function(a) { + var b = this.f.id, c = this.c.o, d = this; + b ? (c.__webfontfontdeckmodule__ || (c.__webfontfontdeckmodule__ = {}), c.__webfontfontdeckmodule__[b] = function(b, c) { + for (var g = 0, m = c.fonts.length; g < m; ++g) { + var h = c.fonts[g]; + d.a.push(new G(h.name, ga("font-weight:" + h.weight + ";font-style:" + h.style))); + } + a(d.a); + }, A(this.c, (this.f.api || "https://f.fontdeck.com/s/css/js/") + ea(this.c) + "/" + b + ".js", (function(b) { + b && a([]); + }))) : a([]); + }; + var Y = new oa(window); + Y.a.c.custom = function(a, b) { + return new sa(b, a); + }; + Y.a.c.fontdeck = function(a, b) { + return new Ha(b, a); + }; + Y.a.c.monotype = function(a, b) { + return new ra(b, a); + }; + Y.a.c.typekit = function(a, b) { + return new Ga(b, a); + }; + Y.a.c.google = function(a, b) { + return new Ea(b, a); + }; + var Z = { + load: p(Y.load, Y) + }; + true ? !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return Z; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; + })(); + } + }; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId](module, module.exports, __webpack_require__); + return module.exports; + } + (() => { + __webpack_require__.n = module => { + var getter = module && module.__esModule ? () => module["default"] : () => module; + __webpack_require__.d(getter, { + a: getter + }); + return getter; + }; + })(); + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + var __webpack_exports__ = {}; + (() => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + var _preview_async_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(334); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + var makeShortcutFor = function makeShortcutFor(item) { + if (_toConsumableArray(item.children).find((function(e) { + return e.matches(".lotta-customizer-shortcut"); + }))) { + return; + } + var shortcut = document.createElement("a"); + shortcut.classList.add("lotta-customizer-shortcut"); + shortcut.innerHTML = ''; + shortcut.addEventListener("click", (function(e) { + e.preventDefault(); + e.stopPropagation(); + wp.customize.preview.send("lotta-initiate-deep-link", item.dataset.shortcutLocation); + })); + item.appendChild(shortcut); + }; + var makeAllShortcuts = function makeAllShortcuts() { + _toConsumableArray(document.querySelectorAll("[data-shortcut-location]")).map((function(el) { + return makeShortcutFor(el); + })); + }; + if (wp.customize) { + wp.customize.bind("preview-ready", (function() { + makeAllShortcuts(); + })); + if (wp.customize.selectiveRefresh) { + wp.customize.selectiveRefresh.bind("partial-content-rendered", (function() { + makeAllShortcuts(); + })); + } + } + })(); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.min.js b/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.min.js new file mode 100644 index 0000000000..f8532d4043 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/js/customizer-preview.min.js @@ -0,0 +1 @@ +(()=>{var t={5933:(t,e,n)=>{var o;!function(){function i(t,e,n){return t.call.apply(t.bind,arguments)}function r(t,e,n){if(!t)throw Error();if(2=e.f?i():t.fonts.load(function(t){return S(t)+" "+t.f+"00 300px "+j(t.c)}(e.a),e.h).then((function(t){1<=t.length?o():setTimeout(r,25)}),(function(){i()}))}()})),i=null,r=new Promise((function(t,n){i=setTimeout(n,e.f)}));Promise.race([r,o]).then((function(){i&&(clearTimeout(i),i=null),e.g(e.a)}),(function(){e.j(e.a)}))};var N={D:"serif",C:"sans-serif"},P=null;function F(){if(null===P){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);P=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10))}return P}function B(t,e,n){for(var o in N)if(N.hasOwnProperty(o)&&e===t.f[N[o]]&&n===t.f[N[o]])return!0;return!1}function D(t){var e,n=t.g.a.offsetWidth,o=t.h.a.offsetWidth;(e=n===t.f.serif&&o===t.f["sans-serif"])||(e=F()&&B(t,n,o)),e?s()-t.A>=t.w?F()&&B(t,n,o)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?W(t,t.v):W(t,t.B):function(t){setTimeout(a((function(){D(this)}),t),50)}(t):W(t,t.v)}function W(t,e){setTimeout(a((function(){h(this.g.a),h(this.h.a),h(this.j.a),h(this.m.a),e(this.a)}),t),0)}function M(t,e,n){this.c=t,this.a=e,this.f=0,this.m=this.j=!1,this.s=n}I.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=s(),D(this)};var $=null;function H(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&p(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),T(t,"active")):A(t.a))}function U(t){this.j=t,this.a=new V,this.h=0,this.f=this.g=!0}function q(t,e,n,o,i){var r=0==--t.h;(t.f||t.g)&&setTimeout((function(){var t=i||null,s=o||{};if(0===n.length&&r)A(e.a);else{e.f+=n.length,r&&(e.j=r);var c,l=[];for(c=0;c{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(5933),e=n.n(t);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var r="__INITIAL_VALUE__";function a(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return s(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n1&&void 0!==arguments[1]&&arguments[1],n="",o={},a={},s=e?"\n":"";if("object"!==i(t)||Object.keys(t).length<=0)return n;Object.keys(t).forEach((function(e){var c=t[e];if(c&&!(Object.keys(c).length<=0)){var l=e+"{"+s,u={},f={},h=0;Object.keys(c).forEach((function(t){var e=c[t];"object"===i(e)&&(u[t]=e.tablet,f[t]=e.mobile,e=e.desktop),e&&r!==e&&(h++,l+=t+":"+e+";"+s)})),l+="}",Object.keys(u).length>0&&(o[e]=u),Object.keys(f).length>0&&(a[e]=f),h>0&&(n+=l)}}));var c=this.parse(o,e);""!==c&&(c="@media (max-width: "+this.breakpoints.tablet+") {"+s+c+s+"}"+s);var l=this.parse(a,e);return""!==l&&(l="@media (max-width: "+this.breakpoints.mobile+") {"+s+l+s+"}"+s),n+c+l},valueMapper:function(t,e){return e[t]||t},getResponsiveValue:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return e&&"null"!==e?(t=o({},e,t),"object"===i(n)?Object.assign({},n,t):t):t},dimensions:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"margin";t.desktop||(t={null:t});var o={};return Object.keys(t).forEach((function(i){var r=t[i],a=r.top||"0",s=r.right||"0",c=r.bottom||"0",l=r.left||"0";o[n]=e.getResponsiveValue("".concat(a," ").concat(s," ").concat(c," ").concat(l),i,o[n])})),o},background:function(t){var e=this;t.desktop||(t={null:t});var n={};return Object.keys(t).forEach((function(o){var i=t[o];if("color"===i.type){if(!i.color||"inherit"===i.color||i.color===r)return;n["background-color"]=e.getResponsiveValue(i.color,o,n["background-color"]),n["background-image"]=e.getResponsiveValue("none",o,n["background-image"])}else if("gradient"===i.type)n["background-image"]=e.getResponsiveValue(i.gradient,o,n["background-image"]);else if("image"===i.type){var a=i.image||{};if(a.color&&(n["background-color"]=e.getResponsiveValue(a.color,o,n["background-color"])),a.size&&(n["background-size"]=e.getResponsiveValue(a.size,o,n["background-size"])),a.repeat&&(n["background-repeat"]=e.getResponsiveValue(a.repeat,o,n["background-repeat"])),a.attachment&&(n["background-attachment"]=e.getResponsiveValue(a.attachment,o,n["background-attachment"])),a.source&&a.source.url&&(n["background-image"]=e.getResponsiveValue("url("+a.source.url+")",o,n["background-image"]),a.source.x&&a.source.y)){var s=100*a.source.x,c=100*a.source.y;n["background-position"]=e.getResponsiveValue("".concat(s,"% ").concat(c,"%"),o,n["background-position"])}}})),n},border:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"border";t.desktop||(t={null:t});var o={};return Object.keys(t).forEach((function(i){var a=t[i],s="none",c=a.style||"",l=(a.width||"0")+"px",u=a.color||"",f=a.hover||"";""!==c&&c!==r&&("none"!==c&&(s="".concat(l," ").concat(c," ").concat(u===r?"var(--lotta-border-initial-color)":u)),o[n]=e.getResponsiveValue(s,i,o[n])),u!==r&&(o["--lotta-border-initial-color"]=e.getResponsiveValue(u,i,o["--lotta-border-initial-color"]),o["--lotta-border-".concat(n,"-initial-color")]=e.getResponsiveValue(u,i,o["--lotta-border-".concat(n,"-initial-color")])),f!==r&&(o["--lotta-border-hover-color"]=e.getResponsiveValue(f,i,o["--lotta-border-hover-color"]),o["--lotta-border-".concat(n,"-hover-color")]=e.getResponsiveValue(u,i,o["--lotta-border-".concat(n,"-hover-color")]))})),o},filters:function(t){var e=this;if("__INITIAL_VALUE__"===t||null==t)return{};t.desktop||(t={null:t});var n={};return Object.keys(t).forEach((function(o){var i=t[o],r="none",a="yes"===(i.enable||""),s=i.blur||0,c=i.contrast||100,l=i.brightness||100,u=i.saturate||100,f=i.hue||0;a&&(r="brightness( ".concat(l,"% ) contrast( ").concat(c,"% ) saturate( ").concat(u,"% ) blur( ").concat(s,"px ) hue-rotate( ").concat(f,"deg )")),n.filter=e.getResponsiveValue(r,o,n.filter)})),n},shadow:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"box-shadow";t.desktop||(t={null:t});var o={};return Object.keys(t).forEach((function(i){var a=t[i];if(a!==r){var s="none",c="yes"===(a.enable||""),l=a.horizontal||"0",u=a.vertical||"0",f=a.blur||"0",h=a.spread||"0",p=a.color||"";c&&(s="".concat(p," ").concat(l," ").concat(u," ").concat(f," ").concat(h)),o[n]=e.getResponsiveValue(s,i,o[n])}})),o},typography:function(t){var n=Lotta.customizer.settings.custom_fonts,o=Lotta.customizer.settings.system_fonts,i=Lotta.customizer.settings.google_fonts,r=t.family||"inherit",a=t.variant||"400";if(o[r]&&o[r].s&&o[r].s&&(r=o[r].s),i[r]){var s=i[r].v||[];r=i[r].f||r,a=-1!==s.indexOf(a)?a:s[0]||"400",e().load({google:{families:[r]}})}if(n[r]){var c,l=n[r];a=null!==(c=n[r].v)&&void 0!==c?c:"400",r=n[r].s?n[r].f+","+n[r].s:n[r].f,this.addDynamicStyle("lotta-preview-dynamic-custom-fonts-loader",this.fontFacesCss([l]))}return{"font-family":r,"font-weight":a,"font-size":t.fontSize||"","line-height":t.lineHeight||"","letter-spacing":t.letterSpacing||"","text-transform":t.textTransform||"","text-decoration":t.textDecoration||""}},colors:function(t,e){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(e).forEach((function(i){if(t[i]&&t[i]!==r&&""!==t[i]){var a=e[i];Array.isArray(a)||(a=[a]),a.forEach((function(r){o[e[i]]=n.getColorValue(t[i])}))}})),o},getColorValue:function(t){if(!t||t===r)return"";if(t.indexOf("var")>-1){var e=getComputedStyle(document.documentElement).getPropertyValue(t.replace(/var\(/,"").replace(/\)/,"")).trim().replace(/\s/g,"");return-1===e.indexOf("#")&&-1===e.indexOf("rgb")?"rgb(".concat(e,")"):e}return t},fontFacesCss:function(t){var e="";return t.forEach((function(t){e+="@font-face {",e+="font-family: '".concat(t.f,"';"),e+="font-weight: '".concat(t.v,"';"),t.u.forEach((function(t){-1!==t.indexOf(".otf")?e+="src: url('".concat(t,'\') format("opentype");'):-1!==t.indexOf(".ttf")?e+="src: url('".concat(t,'\') format("truetype");'):-1!==t.indexOf(".woff2")?e+="src: url('".concat(t,'\') format("woff2");'):-1!==t.indexOf(".woff")&&(e+="src: url('".concat(t,'\') format("woff");'))})),e+="}"})),e},addDynamicStyle:function(t,e){jQuery("style#"+t).remove(),jQuery("head").append('")}};var c=function(){a(document.querySelectorAll("[data-shortcut-location]")).map((function(t){return function(t){if(!a(t.children).find((function(t){return t.matches(".lotta-customizer-shortcut")}))){var e=document.createElement("a");e.classList.add("lotta-customizer-shortcut"),e.innerHTML='',e.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),wp.customize.preview.send("lotta-initiate-deep-link",t.dataset.shortcutLocation)})),t.appendChild(e)}}(t)}))};wp.customize&&(wp.customize.bind("preview-ready",(function(){c()})),wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(){c()})))})()})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/dist/js/customizer.js b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.js new file mode 100644 index 0000000000..61f8ecbb8e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.js @@ -0,0 +1,35604 @@ +(() => { + var __webpack_modules__ = [ (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + var _customizer_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + var _customizer_polyfill__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_customizer_polyfill__WEBPACK_IMPORTED_MODULE_0__); + var _customizer_events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); + var _customizer_preview_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3); + var _customizer_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); + var _customizer_controls__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(73); + Object.keys(_customizer_controls__WEBPACK_IMPORTED_MODULE_4__["default"]).forEach((function(id) { + (0, _customizer_index__WEBPACK_IMPORTED_MODULE_3__.defineCustomizerControl)(id, _customizer_controls__WEBPACK_IMPORTED_MODULE_4__["default"][id]); + })); + }, () => { + if (Array.prototype.findIndex === undefined) { + Array.prototype.findIndex = function(cb) { + for (var i = 0; i < this.length; i++) { + if (cb(this[i]) === true) { + return i; + } + } + return -1; + }; + } + if (String.prototype.startsWith === undefined) { + String.prototype.startsWith = function(needle, pos) { + pos = pos || 0; + return this.indexOf(needle, pos) === pos; + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Events = function() { + function Events() { + _classCallCheck(this, Events); + _defineProperty(this, "hooks", {}); + } + _createClass(Events, [ { + key: "trigger", + value: function trigger(name) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + (this.hooks[name] || []).forEach((function(cb) { + cb.apply(void 0, args); + })); + } + }, { + key: "bind", + value: function bind(name, callback) { + var _this = this; + if (!this.hooks[name]) { + this.hooks[name] = []; + } + this.hooks[name].push(callback); + return function() { + _this.hooks[name].splice(_this.hooks[name].indexOf(callback), 1); + }; + } + } ]); + return Events; + }(); + if (!window.LottaEvents) { + window.LottaEvents = new Events; + } + const __WEBPACK_DEFAULT_EXPORT__ = window.LottaEvents; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); + if (!window.Lotta) { + window.Lotta = {}; + } + window.Lotta.expand = function(location) { + setTimeout((function() { + var path = location.split(":"); + var section = path.shift(); + var expanded = Object.values(wp.customize.section._value).find((function(e) { + return e.expanded(); + })); + LottaEvents.trigger("lotta-before-expand-panel", path); + var timeout = 0; + if (!expanded || expanded.id !== section) { + var s = wp.customize.section(section); + s && s.expand(); + timeout = 180; + } + if (path.length > 0) { + setTimeout((function() { + return LottaEvents.trigger("lotta-expand-panel", path); + }), timeout); + } + })); + }; + if (wp.customize) { + wp.customize.bind("ready", (function() { + wp.customize.previewer.bind("lotta-initiate-deep-link", (function(location) { + Lotta.expand(location); + })); + var params = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.getQueryParams)(window.location.search); + if (params.lotta_auto_focus) { + window.Lotta.expand(params.lotta_auto_focus); + } + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + array_flat: () => array_flat, + array_unique: () => array_unique, + capitalize: () => capitalize, + clamp: () => clamp, + clampMax: () => clampMax, + composeEventHandlers: () => composeEventHandlers, + generateFontFacesCss: () => generateFontFacesCss, + getColorValue: () => getColorValue, + getQueryParams: () => getQueryParams, + in_array: () => in_array, + loadCustomFonts: () => loadCustomFonts, + round: () => round, + roundWholeNumbers: () => roundWholeNumbers, + sanitize_array_value: () => sanitize_array_value + }); + var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, didErr = false, err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; + } + function _toArray(arr) { + return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var getQueryParams = function getQueryParams(url) { + if (!url) { + return {}; + } + var query = url.split("?")[1]; + if (!query) { + return {}; + } + var params = {}; + var paramsArr = query.split("&"); + for (var i = 0, len = paramsArr.length; i < len; i++) { + var param = paramsArr[i].split("="); + params[param[0]] = param[1]; + } + return params; + }; + var clamp = function clamp(min, max, value) { + return Math.max(min, Math.min(max, value)); + }; + var clampMax = function clampMax(max, value) { + return Math.min(max, value); + }; + var round = function round(value) { + var decimalPlaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var multiplier = Math.pow(10, decimalPlaces); + return Math.round(value * multiplier + Number.EPSILON) / multiplier; + }; + var roundWholeNumbers = function roundWholeNumbers(num, precision) { + num = parseFloat(num); + if (!precision) return num; + return Math.round(num / precision) * precision; + }; + var composeEventHandlers = function composeEventHandlers() { + for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) { + fns[_key] = arguments[_key]; + } + return function(event) { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + return fns.every((function(fn) { + return fn && fn.apply(void 0, [ event ].concat(args)); + })); + }; + }; + var getColorValue = function getColorValue(color) { + if (!color || color === _index__WEBPACK_IMPORTED_MODULE_0__.CSS_INITIAL_VALUE) { + return "#ffffff"; + } + if (color.indexOf("var") > -1) { + var value = getComputedStyle(document.documentElement).getPropertyValue(color.replace(/var\(/, "").replace(/\)/, "")).trim().replace(/\s/g, ""); + if (value.indexOf("#") === -1 && value.indexOf("rgb") === -1) { + return "rgb(".concat(value, ")"); + } + return value; + } + return color; + }; + var capitalize = function capitalize(_ref) { + var _ref2 = _toArray(_ref), first = _ref2[0], rest = _ref2.slice(1); + var lowerRest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + return first.toUpperCase() + (lowerRest ? rest.join("").toLowerCase() : rest.join("")); + }; + function in_array(needle, haystack) { + return haystack.indexOf(needle) !== -1; + } + function array_unique(arr) { + return Array.from(new Set(arr)); + } + function array_flat(arr) { + var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var _iterator = _createForOfIteratorHelper(arr), _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var key = _step.value; + if (Array.isArray(key)) { + array_flat(key, target); + } else if (_typeof(key) === "object") { + if (key !== null && key !== undefined) { + array_flat(Object.values(key), target); + } + } else { + target.push(key); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return target; + } + function sanitize_array_value(v) { + return Array.isArray(v) ? v : []; + } + function generateFontFacesCss(fonts) { + var parse_css = ""; + fonts.forEach((function(font) { + parse_css += "@font-face {"; + parse_css += "font-family: '".concat(font["f"], "';"); + parse_css += "font-weight: '".concat(font["v"], "';"); + font["u"].forEach((function(src) { + if (src.indexOf(".otf") !== -1) { + parse_css += "src: url('".concat(src, '\') format("opentype");'); + } else if (src.indexOf(".ttf") !== -1) { + parse_css += "src: url('".concat(src, '\') format("truetype");'); + } else if (src.indexOf(".woff2") !== -1) { + parse_css += "src: url('".concat(src, '\') format("woff2");'); + } else if (src.indexOf(".woff") !== -1) { + parse_css += "src: url('".concat(src, '\') format("woff");'); + } + })); + parse_css += "}"; + })); + return parse_css; + } + var loadCustomFonts = function loadCustomFonts(fonts) { + if (fonts.length <= 0 || !window.Lotta || !window.Lotta.customizer.settings) { + return; + } + var custom_fonts = window.Lotta.customizer.settings.custom_fonts; + var parse_css = generateFontFacesCss(fonts.map((function(f) { + return custom_fonts[f]; + }))); + jQuery("style#lotta-dynamic-custom-fonts-loader").remove(); + jQuery("head").append('"); + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + CONTAINER_CONTROL: () => CONTAINER_CONTROL, + CSS_INITIAL_VALUE: () => CSS_INITIAL_VALUE, + CZ_VALUES: () => CZ_VALUES, + buildControl: () => buildControl, + buildNestedControls: () => buildNestedControls, + defineCustomizerControl: () => defineCustomizerControl + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _control_wrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7); + var _nested_controls__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + var _excluded = [ "wrapperAttr" ]; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + return target; + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + var CZ_VALUES = "__CZ_VALUES__"; + var CONTAINER_CONTROL = "__LOTTA_CONTAINER_CONTROL__"; + var CSS_INITIAL_VALUE = "__INITIAL_VALUE__"; + var buildNestedControls = function buildNestedControls(_ref) { + var controls = _ref.controls, _onChange = _ref.onChange, settings = _ref.settings; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_nested_controls__WEBPACK_IMPORTED_MODULE_2__["default"], { + onChange: function onChange(val, id, self) { + _onChange(val, id, self); + }, + controls, + value: settings ? settings : CZ_VALUES + }); + }; + var buildControl = function buildControl(_ref2) { + var options = _ref2.options, value = _ref2.value, settings = _ref2.settings, id = _ref2.id, onChange = _ref2.onChange, Component = _ref2.Component; + var design = "block"; + var ControlMetaWrapper = null; + var wrapperAttr = {}; + if (Component.MetaWrapper) { + ControlMetaWrapper = Component.MetaWrapper; + } + if (Component.wrapperAttr) { + wrapperAttr = Component.wrapperAttr; + } + if (Component.renderingConfig) { + design = Component.renderingConfig.design || design; + } + if (options.design) { + design = options.design; + } + var _getActualControl = function getActualControl() { + var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var _ref3$wrapperAttr = _ref3.wrapperAttr, additionalWrapperAttr = _ref3$wrapperAttr === void 0 ? {} : _ref3$wrapperAttr, props = _objectWithoutProperties(_ref3, _excluded); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_control_wrapper__WEBPACK_IMPORTED_MODULE_1__["default"], { + design, + id, + wrapperAttr: _objectSpread(_objectSpread(_objectSpread({}, wrapperAttr), options.wrapperAttr), additionalWrapperAttr), + settings, + options, + value, + onChange, + Control: Component + }); + }; + return ControlMetaWrapper ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ControlMetaWrapper, { + id, + options, + settings, + onChange, + value, + getActualControl: function getActualControl(props) { + return _getActualControl(props); + } + }) : _getActualControl(); + }; + var defineCustomizerControl = function defineCustomizerControl(type, Component) { + wp.customize.controlConstructor[type] = wp.customize.Control.extend({ + initialize: function initialize(id, params) { + var control = this; + wp.customize.Control.prototype.initialize.call(control, id, params); + function onRemoved(removedControl) { + if (control === removedControl) { + control.destroy(); + control.container.remove(); + wp.customize.control.unbind("removed", onRemoved); + } + } + wp.customize.control.bind("removed", onRemoved); + }, + renderContent: function renderContent() { + var _this = this; + var options = Object.assign({}, this.params, this.params.options || {}); + var controlEl = buildControl({ + id: this.id, + options, + value: this.setting.get(), + onChange: function onChange(v, id) { + id = id || _this.id; + if (wp.customize(id)) { + wp.customize(id).set(v); + } + LottaEvents.trigger("lotta-setting-change", id, v); + }, + Component + }); + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot) { + if (!this.reactDOMRoot) { + this.reactDOMRoot = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot)(this.container[0]); + } + this.reactDOMRoot.render(controlEl); + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(controlEl, this.container[0]); + } + }, + ready: function ready() { + var _this2 = this; + this.setting.bind((function() { + return _this2.renderContent(); + })); + }, + destroy: function destroy() { + if (this.reactDOMRoot) { + this.reactDOMRoot.unmount(); + this.reactDOMRoot = null; + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.unmountComponentAtNode)(this.container[0]); + } + if (wp.customize.Control.prototype.destroy) { + wp.customize.Control.prototype.destroy.call(this); + } + } + }); + }; + }, module => { + "use strict"; + module.exports = window.wp.element; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => ControlWrapper, + promoteScalarValueIntoResponsive: () => promoteScalarValueIntoResponsive + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _responsive_controls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var deep_equal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_3__); + var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5); + var underscore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70); + var underscore__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(underscore__WEBPACK_IMPORTED_MODULE_5__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10); + var _excluded = [ "className" ]; + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + return target; + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + var promoteScalarValueIntoResponsive = function promoteScalarValueIntoResponsive(value) { + var fill = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var valueWithResponsive = _typeof(value) === "object" && Object.keys(value).indexOf("desktop") > -1 ? underscore__WEBPACK_IMPORTED_MODULE_5___default().clone(value) : { + desktop: underscore__WEBPACK_IMPORTED_MODULE_5___default().clone(value), + tablet: _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE, + mobile: _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE + }; + if (fill) { + if (valueWithResponsive["tablet"] === _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE) { + valueWithResponsive["tablet"] = underscore__WEBPACK_IMPORTED_MODULE_5___default().clone(valueWithResponsive["desktop"]); + } + if (valueWithResponsive["mobile"] === _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE) { + valueWithResponsive["mobile"] = underscore__WEBPACK_IMPORTED_MODULE_5___default().clone(valueWithResponsive["tablet"]); + } + } + return valueWithResponsive; + }; + var ControlWrapper = function(_Component) { + _inherits(ControlWrapper, _Component); + var _super = _createSuper(ControlWrapper); + function ControlWrapper() { + var _this; + _classCallCheck(this, ControlWrapper); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + device: wp.customize && wp.customize.previewedDevice ? wp.customize.previewedDevice() : "desktop" + }); + _defineProperty(_assertThisInitialized(_this), "listener", (function() { + return _this.setState({ + device: wp.customize && wp.customize.previewedDevice ? wp.customize.previewedDevice() : "desktop" + }); + })); + return _this; + } + _createClass(ControlWrapper, [ { + key: "componentDidMount", + value: function componentDidMount() { + var _this2 = this; + if (!this.props.options.responsive) return; + if (!wp.customize) return; + setTimeout((function() { + return wp.customize.previewedDevice.bind(_this2.listener); + }), 1e3); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + if (!this.props.options.responsive) return; + if (!wp.customize) return; + wp.customize.previewedDevice.unbind(this.listener); + } + }, { + key: "setDevice", + value: function setDevice(device) { + this.setState({ + device + }); + wp.customize && wp.customize.previewedDevice.set(device); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + var _this$props = this.props, id = _this$props.id, options = _this$props.options, design = _this$props.design, value = _this$props.value, settings = _this$props.settings, Control = _this$props.Control, onChange = _this$props.onChange, _this$props$wrapperAt = _this$props.wrapperAttr, className = _this$props$wrapperAt.className, wrapperAttr = _objectWithoutProperties(_this$props$wrapperAt, _excluded); + if (design === "none") { + return null; + } + var valueWithResponsive = options.responsive ? promoteScalarValueIntoResponsive(value, true)[this.state.device] : value; + var onChangeWithMobileBridge = function onChangeWithMobileBridge(v) { + if (options.switchDeviceOnChange && wp.customize && wp.customize.previewedDevice() !== option.switchDeviceOnChange) { + wp.customize.previewedDevice.set(option.switchDeviceOnChange); + } + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + onChange.apply(void 0, [ v ].concat(args)); + }; + var onChangeWithResponsiveBridge = function onChangeWithResponsiveBridge(scalarValue) { + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { + args[_key3 - 1] = arguments[_key3]; + } + onChangeWithMobileBridge.apply(void 0, [ options.responsive ? _objectSpread(_objectSpread({}, promoteScalarValueIntoResponsive(value)), {}, _defineProperty({}, _this3.state.device, scalarValue)) : scalarValue ].concat(args)); + }; + if (design === "raw") { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Control, { + id, + onChange: onChangeWithResponsiveBridge, + value: valueWithResponsive, + options, + settings + }); + } + var label = Object.keys(options).indexOf("label") === -1 ? (id || "").replace(/./, (function(s) { + return s.toUpperCase(); + })).replace(/\_|\-/g, " ") : options.label; + var desc = Object.keys(options).indexOf("description") === -1 ? false : options.description; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", _objectSpread(_objectSpread({ + "data-design": design, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])("lotta-control", "".concat(options.type, "-control"), className, { + "no-label": !!options.hideLabel + }) + }, wrapperAttr), {}, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("header", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("label", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + children: label + }), !(options.disableRevert || Control.disableRevert) && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", { + type: "button", + disabled: options["default"] === undefined || deep_equal__WEBPACK_IMPORTED_MODULE_3___default()(options["default"], value), + className: "lotta-revert", + onClick: function onClick() { + onChange(options["default"]); + } + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: options.responsive && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_responsive_controls__WEBPACK_IMPORTED_MODULE_1__["default"], { + device: this.state.device, + responsiveDescriptor: options.responsive, + setDevice: function setDevice(device) { + return _this3.setDevice(device); + } + }) + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("section", { + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Control, { + id, + onChange: onChangeWithResponsiveBridge, + value: valueWithResponsive, + options, + settings + }) + }), desc && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "lotta-control-desc", + dangerouslySetInnerHTML: { + __html: desc + } + }) ] + })); + } + } ]); + return ControlWrapper; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => ResponsiveControls + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var ResponsiveControls = function(_Component) { + _inherits(ResponsiveControls, _Component); + var _super = _createSuper(ResponsiveControls); + function ResponsiveControls() { + _classCallCheck(this, ResponsiveControls); + return _super.apply(this, arguments); + } + _createClass(ResponsiveControls, [ { + key: "render", + value: function render() { + var _this$props = this.props, device = _this$props.device, setDevice = _this$props.setDevice, responsiveDescriptor = _this$props.responsiveDescriptor; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "lotta-control-devices", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("ul", { + className: "lotta-responsive-controls lotta-devices", + children: [ "desktop", "tablet", "mobile" ].map((function(d) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("li", { + onClick: function onClick() { + return setDevice(d); + }, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + active: d === device, + responsiveDescriptor + }, "lotta-".concat(d)) + }, d); + })) + }) + }); + } + } ]); + return ResponsiveControls; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function toVal(mix) { + var k, y, str = ""; + if (typeof mix === "string" || typeof mix === "number") { + str += mix; + } else if (typeof mix === "object") { + if (Array.isArray(mix)) { + for (k = 0; k < mix.length; k++) { + if (mix[k]) { + if (y = toVal(mix[k])) { + str && (str += " "); + str += y; + } + } + } + } else { + for (k in mix) { + if (mix[k]) { + str && (str += " "); + str += k; + } + } + } + } + return str; + } + function __WEBPACK_DEFAULT_EXPORT__() { + var i = 0, tmp, x, str = ""; + while (i < arguments.length) { + if (tmp = arguments[i++]) { + if (x = toVal(tmp)) { + str && (str += " "); + str += x; + } + } + } + return str; + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + if (false) {} else { + module.exports = __webpack_require__(11); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + /** @license React v17.0.2 + * react-jsx-runtime.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ if (true) { + (function() { + "use strict"; + var React = __webpack_require__(12); + var _assign = __webpack_require__(13); + var REACT_ELEMENT_TYPE = 60103; + var REACT_PORTAL_TYPE = 60106; + exports.Fragment = 60107; + var REACT_STRICT_MODE_TYPE = 60108; + var REACT_PROFILER_TYPE = 60114; + var REACT_PROVIDER_TYPE = 60109; + var REACT_CONTEXT_TYPE = 60110; + var REACT_FORWARD_REF_TYPE = 60112; + var REACT_SUSPENSE_TYPE = 60113; + var REACT_SUSPENSE_LIST_TYPE = 60120; + var REACT_MEMO_TYPE = 60115; + var REACT_LAZY_TYPE = 60116; + var REACT_BLOCK_TYPE = 60121; + var REACT_SERVER_BLOCK_TYPE = 60122; + var REACT_FUNDAMENTAL_TYPE = 60117; + var REACT_SCOPE_TYPE = 60119; + var REACT_OPAQUE_ID_TYPE = 60128; + var REACT_DEBUG_TRACING_MODE_TYPE = 60129; + var REACT_OFFSCREEN_TYPE = 60130; + var REACT_LEGACY_HIDDEN_TYPE = 60131; + if (typeof Symbol === "function" && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor("react.element"); + REACT_PORTAL_TYPE = symbolFor("react.portal"); + exports.Fragment = symbolFor("react.fragment"); + REACT_STRICT_MODE_TYPE = symbolFor("react.strict_mode"); + REACT_PROFILER_TYPE = symbolFor("react.profiler"); + REACT_PROVIDER_TYPE = symbolFor("react.provider"); + REACT_CONTEXT_TYPE = symbolFor("react.context"); + REACT_FORWARD_REF_TYPE = symbolFor("react.forward_ref"); + REACT_SUSPENSE_TYPE = symbolFor("react.suspense"); + REACT_SUSPENSE_LIST_TYPE = symbolFor("react.suspense_list"); + REACT_MEMO_TYPE = symbolFor("react.memo"); + REACT_LAZY_TYPE = symbolFor("react.lazy"); + REACT_BLOCK_TYPE = symbolFor("react.block"); + REACT_SERVER_BLOCK_TYPE = symbolFor("react.server.block"); + REACT_FUNDAMENTAL_TYPE = symbolFor("react.fundamental"); + REACT_SCOPE_TYPE = symbolFor("react.scope"); + REACT_OPAQUE_ID_TYPE = symbolFor("react.opaque.id"); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor("react.debug_trace_mode"); + REACT_OFFSCREEN_TYPE = symbolFor("react.offscreen"); + REACT_LEGACY_HIDDEN_TYPE = symbolFor("react.legacy_hidden"); + } + var MAYBE_ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + if (maybeIterable === null || typeof maybeIterable !== "object") { + return null; + } + var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; + if (typeof maybeIterator === "function") { + return maybeIterator; + } + return null; + } + var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + function error(format) { + { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + printWarning("error", format, args); + } + } + function printWarning(level, format, args) { + { + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + var stack = ReactDebugCurrentFrame.getStackAddendum(); + if (stack !== "") { + format += "%s"; + args = args.concat([ stack ]); + } + var argsWithFormat = args.map((function(item) { + return "" + item; + })); + argsWithFormat.unshift("Warning: " + format); + Function.prototype.apply.call(console[level], console, argsWithFormat); + } + } + var enableScopeAPI = false; + function isValidElementType(type) { + if (typeof type === "string" || typeof type === "function") { + return true; + } + if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) { + return true; + } + if (typeof type === "object" && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + return false; + } + function getWrappedName(outerType, innerType, wrapperName) { + var functionName = innerType.displayName || innerType.name || ""; + return outerType.displayName || (functionName !== "" ? wrapperName + "(" + functionName + ")" : wrapperName); + } + function getContextName(type) { + return type.displayName || "Context"; + } + function getComponentName(type) { + if (type == null) { + return null; + } + { + if (typeof type.tag === "number") { + error("Received an unexpected object in getComponentName(). " + "This is likely a bug in React. Please file an issue."); + } + } + if (typeof type === "function") { + return type.displayName || type.name || null; + } + if (typeof type === "string") { + return type; + } + switch (type) { + case exports.Fragment: + return "Fragment"; + + case REACT_PORTAL_TYPE: + return "Portal"; + + case REACT_PROFILER_TYPE: + return "Profiler"; + + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + + case REACT_SUSPENSE_TYPE: + return "Suspense"; + + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_CONTEXT_TYPE: + var context = type; + return getContextName(context) + ".Consumer"; + + case REACT_PROVIDER_TYPE: + var provider = type; + return getContextName(provider._context) + ".Provider"; + + case REACT_FORWARD_REF_TYPE: + return getWrappedName(type, type.render, "ForwardRef"); + + case REACT_MEMO_TYPE: + return getComponentName(type.type); + + case REACT_BLOCK_TYPE: + return getComponentName(type._render); + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return getComponentName(init(payload)); + } catch (x) { + return null; + } + } + } + } + return null; + } + var disabledDepth = 0; + var prevLog; + var prevInfo; + var prevWarn; + var prevError; + var prevGroup; + var prevGroupCollapsed; + var prevGroupEnd; + function disabledLog() {} + disabledLog.__reactDisabledLog = true; + function disableLogs() { + { + if (disabledDepth === 0) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + } + function reenableLogs() { + { + disabledDepth--; + if (disabledDepth === 0) { + var props = { + configurable: true, + enumerable: true, + writable: true + }; + Object.defineProperties(console, { + log: _assign({}, props, { + value: prevLog + }), + info: _assign({}, props, { + value: prevInfo + }), + warn: _assign({}, props, { + value: prevWarn + }), + error: _assign({}, props, { + value: prevError + }), + group: _assign({}, props, { + value: prevGroup + }), + groupCollapsed: _assign({}, props, { + value: prevGroupCollapsed + }), + groupEnd: _assign({}, props, { + value: prevGroupEnd + }) + }); + } + if (disabledDepth < 0) { + error("disabledDepth fell below zero. " + "This is a bug in React. Please file an issue."); + } + } + } + var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, source, ownerFn) { + { + if (prefix === undefined) { + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + } + } + return "\n" + prefix + name; + } + } + var reentry = false; + var componentFrameCache; + { + var PossiblyWeakMap = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap; + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) { + return ""; + } + { + var frame = componentFrameCache.get(fn); + if (frame !== undefined) { + return frame; + } + } + var control; + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = undefined; + var previousDispatcher; + { + previousDispatcher = ReactCurrentDispatcher.current; + ReactCurrentDispatcher.current = null; + disableLogs(); + } + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if (typeof Reflect === "object" && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } + fn(); + } + } catch (sample) { + if (sample && control && typeof sample.stack === "string") { + var sampleLines = sample.stack.split("\n"); + var controlLines = control.stack.split("\n"); + var s = sampleLines.length - 1; + var c = controlLines.length - 1; + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + c--; + } + for (;s >= 1 && c >= 0; s--, c--) { + if (sampleLines[s] !== controlLines[c]) { + if (s !== 1 || c !== 1) { + do { + s--; + c--; + if (c < 0 || sampleLines[s] !== controlLines[c]) { + var _frame = "\n" + sampleLines[s].replace(" at new ", " at "); + { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } + return _frame; + } + } while (s >= 1 && c >= 0); + } + break; + } + } + } + } finally { + reentry = false; + { + ReactCurrentDispatcher.current = previousDispatcher; + reenableLogs(); + } + Error.prepareStackTrace = previousPrepareStackTrace; + } + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + return syntheticFrame; + } + function describeFunctionComponentFrame(fn, source, ownerFn) { + { + return describeNativeComponentFrame(fn, false); + } + } + function shouldConstruct(Component) { + var prototype = Component.prototype; + return !!(prototype && prototype.isReactComponent); + } + function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) { + if (type == null) { + return ""; + } + if (typeof type === "function") { + { + return describeNativeComponentFrame(type, shouldConstruct(type)); + } + } + if (typeof type === "string") { + return describeBuiltInComponentFrame(type); + } + switch (type) { + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + } + if (typeof type === "object") { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeFunctionComponentFrame(type.render); + + case REACT_MEMO_TYPE: + return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn); + + case REACT_BLOCK_TYPE: + return describeFunctionComponentFrame(type._render); + + case REACT_LAZY_TYPE: + { + var lazyComponent = type; + var payload = lazyComponent._payload; + var init = lazyComponent._init; + try { + return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn); + } catch (x) {} + } + } + } + return ""; + } + var loggedTypeFailures = {}; + var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame.setExtraStackFrame(null); + } + } + } + function checkPropTypes(typeSpecs, values, location, componentName, element) { + { + var has = Function.call.bind(Object.prototype.hasOwnProperty); + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error$1 = void 0; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; " + "it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`." + "This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + err.name = "Invariant Violation"; + throw err; + } + error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"); + } catch (ex) { + error$1 = ex; + } + if (error$1 && !(error$1 instanceof Error)) { + setCurrentlyValidatingElement(element); + error("%s: type specification of %s" + " `%s` is invalid; the type checker " + "function must return `null` or an `Error` but returned a %s. " + "You may have forgotten to pass an argument to the type checker " + "creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and " + "shape all require an argument).", componentName || "React class", location, typeSpecName, typeof error$1); + setCurrentlyValidatingElement(null); + } + if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) { + loggedTypeFailures[error$1.message] = true; + setCurrentlyValidatingElement(element); + error("Failed %s type: %s", location, error$1.message); + setCurrentlyValidatingElement(null); + } + } + } + } + } + var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var RESERVED_PROPS = { + key: true, + ref: true, + __self: true, + __source: true + }; + var specialPropKeyWarningShown; + var specialPropRefWarningShown; + var didWarnAboutStringRefs; + { + didWarnAboutStringRefs = {}; + } + function hasValidRef(config) { + { + if (hasOwnProperty.call(config, "ref")) { + var getter = Object.getOwnPropertyDescriptor(config, "ref").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.ref !== undefined; + } + function hasValidKey(config) { + { + if (hasOwnProperty.call(config, "key")) { + var getter = Object.getOwnPropertyDescriptor(config, "key").get; + if (getter && getter.isReactWarning) { + return false; + } + } + } + return config.key !== undefined; + } + function warnIfStringRefCannotBeAutoConverted(config, self) { + { + if (typeof config.ref === "string" && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) { + var componentName = getComponentName(ReactCurrentOwner.current.type); + if (!didWarnAboutStringRefs[componentName]) { + error('Component "%s" contains the string ref "%s". ' + "Support for string refs will be removed in a future major release. " + "This case cannot be automatically converted to an arrow function. " + "We ask you to manually fix this case by using useRef() or createRef() instead. " + "Learn more about using refs safely here: " + "https://reactjs.org/link/strict-mode-string-ref", getComponentName(ReactCurrentOwner.current.type), config.ref); + didWarnAboutStringRefs[componentName] = true; + } + } + } + } + function defineKeyPropWarningGetter(props, displayName) { + { + var warnAboutAccessingKey = function() { + if (!specialPropKeyWarningShown) { + specialPropKeyWarningShown = true; + error("%s: `key` is not a prop. Trying to access it will result " + "in `undefined` being returned. If you need to access the same " + "value within the child component, you should pass it as a different " + "prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + } + function defineRefPropWarningGetter(props, displayName) { + { + var warnAboutAccessingRef = function() { + if (!specialPropRefWarningShown) { + specialPropRefWarningShown = true; + error("%s: `ref` is not a prop. Trying to access it will result " + "in `undefined` being returned. If you need to access the same " + "value within the child component, you should pass it as a different " + "prop. (https://reactjs.org/link/special-props)", displayName); + } + }; + warnAboutAccessingRef.isReactWarning = true; + Object.defineProperty(props, "ref", { + get: warnAboutAccessingRef, + configurable: true + }); + } + } + var ReactElement = function(type, key, ref, self, source, owner, props) { + var element = { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + ref, + props, + _owner: owner + }; + { + element._store = {}; + Object.defineProperty(element._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: false + }); + Object.defineProperty(element, "_self", { + configurable: false, + enumerable: false, + writable: false, + value: self + }); + Object.defineProperty(element, "_source", { + configurable: false, + enumerable: false, + writable: false, + value: source + }); + if (Object.freeze) { + Object.freeze(element.props); + Object.freeze(element); + } + } + return element; + }; + function jsxDEV(type, config, maybeKey, source, self) { + { + var propName; + var props = {}; + var key = null; + var ref = null; + if (maybeKey !== undefined) { + key = "" + maybeKey; + } + if (hasValidKey(config)) { + key = "" + config.key; + } + if (hasValidRef(config)) { + ref = config.ref; + warnIfStringRefCannotBeAutoConverted(config, self); + } + for (propName in config) { + if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + props[propName] = config[propName]; + } + } + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + } + if (key || ref) { + var displayName = typeof type === "function" ? type.displayName || type.name || "Unknown" : type; + if (key) { + defineKeyPropWarningGetter(props, displayName); + } + if (ref) { + defineRefPropWarningGetter(props, displayName); + } + } + return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); + } + } + var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner; + var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; + function setCurrentlyValidatingElement$1(element) { + { + if (element) { + var owner = element._owner; + var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null); + ReactDebugCurrentFrame$1.setExtraStackFrame(stack); + } else { + ReactDebugCurrentFrame$1.setExtraStackFrame(null); + } + } + } + var propTypesMisspellWarningShown; + { + propTypesMisspellWarningShown = false; + } + function isValidElement(object) { + { + return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + } + function getDeclarationErrorAddendum() { + { + if (ReactCurrentOwner$1.current) { + var name = getComponentName(ReactCurrentOwner$1.current.type); + if (name) { + return "\n\nCheck the render method of `" + name + "`."; + } + } + return ""; + } + } + function getSourceInfoErrorAddendum(source) { + { + if (source !== undefined) { + var fileName = source.fileName.replace(/^.*[\\\/]/, ""); + var lineNumber = source.lineNumber; + return "\n\nCheck your code at " + fileName + ":" + lineNumber + "."; + } + return ""; + } + } + var ownerHasKeyUseWarning = {}; + function getCurrentComponentErrorInfo(parentType) { + { + var info = getDeclarationErrorAddendum(); + if (!info) { + var parentName = typeof parentType === "string" ? parentType : parentType.displayName || parentType.name; + if (parentName) { + info = "\n\nCheck the top-level render call using <" + parentName + ">."; + } + } + return info; + } + } + function validateExplicitKey(element, parentType) { + { + if (!element._store || element._store.validated || element.key != null) { + return; + } + element._store.validated = true; + var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); + if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { + return; + } + ownerHasKeyUseWarning[currentComponentErrorInfo] = true; + var childOwner = ""; + if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) { + childOwner = " It was passed a child from " + getComponentName(element._owner.type) + "."; + } + setCurrentlyValidatingElement$1(element); + error('Each child in a list should have a unique "key" prop.' + "%s%s See https://reactjs.org/link/warning-keys for more information.", currentComponentErrorInfo, childOwner); + setCurrentlyValidatingElement$1(null); + } + } + function validateChildKeys(node, parentType) { + { + if (typeof node !== "object") { + return; + } + if (Array.isArray(node)) { + for (var i = 0; i < node.length; i++) { + var child = node[i]; + if (isValidElement(child)) { + validateExplicitKey(child, parentType); + } + } + } else if (isValidElement(node)) { + if (node._store) { + node._store.validated = true; + } + } else if (node) { + var iteratorFn = getIteratorFn(node); + if (typeof iteratorFn === "function") { + if (iteratorFn !== node.entries) { + var iterator = iteratorFn.call(node); + var step; + while (!(step = iterator.next()).done) { + if (isValidElement(step.value)) { + validateExplicitKey(step.value, parentType); + } + } + } + } + } + } + } + function validatePropTypes(element) { + { + var type = element.type; + if (type === null || type === undefined || typeof type === "string") { + return; + } + var propTypes; + if (typeof type === "function") { + propTypes = type.propTypes; + } else if (typeof type === "object" && (type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_MEMO_TYPE)) { + propTypes = type.propTypes; + } else { + return; + } + if (propTypes) { + var name = getComponentName(type); + checkPropTypes(propTypes, element.props, "prop", name, element); + } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) { + propTypesMisspellWarningShown = true; + var _name = getComponentName(type); + error("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", _name || "Unknown"); + } + if (typeof type.getDefaultProps === "function" && !type.getDefaultProps.isReactClassApproved) { + error("getDefaultProps is only used on classic React.createClass " + "definitions. Use a static property named `defaultProps` instead."); + } + } + } + function validateFragmentProps(fragment) { + { + var keys = Object.keys(fragment.props); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (key !== "children" && key !== "key") { + setCurrentlyValidatingElement$1(fragment); + error("Invalid prop `%s` supplied to `React.Fragment`. " + "React.Fragment can only have `key` and `children` props.", key); + setCurrentlyValidatingElement$1(null); + break; + } + } + if (fragment.ref !== null) { + setCurrentlyValidatingElement$1(fragment); + error("Invalid attribute `ref` supplied to `React.Fragment`."); + setCurrentlyValidatingElement$1(null); + } + } + } + function jsxWithValidation(type, props, key, isStaticChildren, source, self) { + { + var validType = isValidElementType(type); + if (!validType) { + var info = ""; + if (type === undefined || typeof type === "object" && type !== null && Object.keys(type).length === 0) { + info += " You likely forgot to export your component from the file " + "it's defined in, or you might have mixed up default and named imports."; + } + var sourceInfo = getSourceInfoErrorAddendum(source); + if (sourceInfo) { + info += sourceInfo; + } else { + info += getDeclarationErrorAddendum(); + } + var typeString; + if (type === null) { + typeString = "null"; + } else if (Array.isArray(type)) { + typeString = "array"; + } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) { + typeString = "<" + (getComponentName(type.type) || "Unknown") + " />"; + info = " Did you accidentally export a JSX literal instead of a component?"; + } else { + typeString = typeof type; + } + error("React.jsx: type is invalid -- expected a string (for " + "built-in components) or a class/function (for composite " + "components) but got: %s.%s", typeString, info); + } + var element = jsxDEV(type, props, key, source, self); + if (element == null) { + return element; + } + if (validType) { + var children = props.children; + if (children !== undefined) { + if (isStaticChildren) { + if (Array.isArray(children)) { + for (var i = 0; i < children.length; i++) { + validateChildKeys(children[i], type); + } + if (Object.freeze) { + Object.freeze(children); + } + } else { + error("React.jsx: Static children should always be an array. " + "You are likely explicitly calling React.jsxs or React.jsxDEV. " + "Use the Babel transform instead."); + } + } else { + validateChildKeys(children, type); + } + } + } + if (type === exports.Fragment) { + validateFragmentProps(element); + } else { + validatePropTypes(element); + } + return element; + } + } + function jsxWithValidationStatic(type, props, key) { + { + return jsxWithValidation(type, props, key, true); + } + } + function jsxWithValidationDynamic(type, props, key) { + { + return jsxWithValidation(type, props, key, false); + } + } + var jsx = jsxWithValidationDynamic; + var jsxs = jsxWithValidationStatic; + exports.jsx = jsx; + exports.jsxs = jsxs; + })(); + } + }, module => { + "use strict"; + module.exports = React; + }, module => { + "use strict"; + /* +object-assign +(c) Sindre Sorhus +@license MIT +*/ var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError("Object.assign cannot be called with null or undefined"); + } + return Object(val); + } + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + var test1 = new String("abc"); + test1[5] = "de"; + if (Object.getOwnPropertyNames(test1)[0] === "5") { + return false; + } + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map((function(n) { + return test2[n]; + })); + if (order2.join("") !== "0123456789") { + return false; + } + var test3 = {}; + "abcdefghijklmnopqrst".split("").forEach((function(letter) { + test3[letter] = letter; + })); + if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") { + return false; + } + return true; + } catch (err) { + return false; + } + } + module.exports = shouldUseNative() ? Object.assign : function(target, source) { + var from; + var to = toObject(target); + var symbols; + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + return to; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var objectKeys = __webpack_require__(15); + var isArguments = __webpack_require__(18); + var is = __webpack_require__(28); + var isRegex = __webpack_require__(34); + var flags = __webpack_require__(35); + var isArray = __webpack_require__(40); + var isDate = __webpack_require__(41); + var whichBoxedPrimitive = __webpack_require__(42); + var GetIntrinsic = __webpack_require__(22); + var callBound = __webpack_require__(21); + var whichCollection = __webpack_require__(49); + var getIterator = __webpack_require__(54); + var getSideChannel = __webpack_require__(57); + var whichTypedArray = __webpack_require__(60); + var assign = __webpack_require__(66); + var $getTime = callBound("Date.prototype.getTime"); + var gPO = Object.getPrototypeOf; + var $objToString = callBound("Object.prototype.toString"); + var $Set = GetIntrinsic("%Set%", true); + var $mapHas = callBound("Map.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSize = callBound("Map.prototype.size", true); + var $setAdd = callBound("Set.prototype.add", true); + var $setDelete = callBound("Set.prototype.delete", true); + var $setHas = callBound("Set.prototype.has", true); + var $setSize = callBound("Set.prototype.size", true); + function setHasEqualElement(set, val1, opts, channel) { + var i = getIterator(set); + var result; + while ((result = i.next()) && !result.done) { + if (internalDeepEqual(val1, result.value, opts, channel)) { + $setDelete(set, result.value); + return true; + } + } + return false; + } + function findLooseMatchingPrimitives(prim) { + if (typeof prim === "undefined") { + return null; + } + if (typeof prim === "object") { + return void 0; + } + if (typeof prim === "symbol") { + return false; + } + if (typeof prim === "string" || typeof prim === "number") { + return +prim === +prim; + } + return true; + } + function mapMightHaveLoosePrim(a, b, prim, item, opts, channel) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + var curB = $mapGet(b, altValue); + var looseOpts = assign({}, opts, { + strict: false + }); + if (typeof curB === "undefined" && !$mapHas(b, altValue) || !internalDeepEqual(item, curB, looseOpts, channel)) { + return false; + } + return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel); + } + function setMightHaveLoosePrim(a, b, prim) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + return $setHas(b, altValue) && !$setHas(a, altValue); + } + function mapHasEqualEntry(set, map, key1, item1, opts, channel) { + var i = getIterator(set); + var result; + var key2; + while ((result = i.next()) && !result.done) { + key2 = result.value; + if (internalDeepEqual(key1, key2, opts, channel) && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)) { + $setDelete(set, key2); + return true; + } + } + return false; + } + function internalDeepEqual(actual, expected, options, channel) { + var opts = options || {}; + if (opts.strict ? is(actual, expected) : actual === expected) { + return true; + } + var actualBoxed = whichBoxedPrimitive(actual); + var expectedBoxed = whichBoxedPrimitive(expected); + if (actualBoxed !== expectedBoxed) { + return false; + } + if (!actual || !expected || typeof actual !== "object" && typeof expected !== "object") { + return opts.strict ? is(actual, expected) : actual == expected; + } + var hasActual = channel.has(actual); + var hasExpected = channel.has(expected); + var sentinel; + if (hasActual && hasExpected) { + if (channel.get(actual) === channel.get(expected)) { + return true; + } + } else { + sentinel = {}; + } + if (!hasActual) { + channel.set(actual, sentinel); + } + if (!hasExpected) { + channel.set(expected, sentinel); + } + return objEquiv(actual, expected, opts, channel); + } + function isBuffer(x) { + if (!x || typeof x !== "object" || typeof x.length !== "number") { + return false; + } + if (typeof x.copy !== "function" || typeof x.slice !== "function") { + return false; + } + if (x.length > 0 && typeof x[0] !== "number") { + return false; + } + return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x)); + } + function setEquiv(a, b, opts, channel) { + if ($setSize(a) !== $setSize(b)) { + return false; + } + var iA = getIterator(a); + var iB = getIterator(b); + var resultA; + var resultB; + var set; + while ((resultA = iA.next()) && !resultA.done) { + if (resultA.value && typeof resultA.value === "object") { + if (!set) { + set = new $Set; + } + $setAdd(set, resultA.value); + } else if (!$setHas(b, resultA.value)) { + if (opts.strict) { + return false; + } + if (!setMightHaveLoosePrim(a, b, resultA.value)) { + return false; + } + if (!set) { + set = new $Set; + } + $setAdd(set, resultA.value); + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + if (resultB.value && typeof resultB.value === "object") { + if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } else if (!opts.strict && !$setHas(a, resultB.value) && !setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function mapEquiv(a, b, opts, channel) { + if ($mapSize(a) !== $mapSize(b)) { + return false; + } + var iA = getIterator(a); + var iB = getIterator(b); + var resultA; + var resultB; + var set; + var key; + var item1; + var item2; + while ((resultA = iA.next()) && !resultA.done) { + key = resultA.value[0]; + item1 = resultA.value[1]; + if (key && typeof key === "object") { + if (!set) { + set = new $Set; + } + $setAdd(set, key); + } else { + item2 = $mapGet(b, key); + if (typeof item2 === "undefined" && !$mapHas(b, key) || !internalDeepEqual(item1, item2, opts, channel)) { + if (opts.strict) { + return false; + } + if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) { + return false; + } + if (!set) { + set = new $Set; + } + $setAdd(set, key); + } + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + key = resultB.value[0]; + item2 = resultB.value[1]; + if (key && typeof key === "object") { + if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) { + return false; + } + } else if (!opts.strict && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel)) && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { + strict: false + }), channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function objEquiv(a, b, opts, channel) { + var i, key; + if (typeof a !== typeof b) { + return false; + } + if (a == null || b == null) { + return false; + } + if ($objToString(a) !== $objToString(b)) { + return false; + } + if (isArguments(a) !== isArguments(b)) { + return false; + } + var aIsArray = isArray(a); + var bIsArray = isArray(b); + if (aIsArray !== bIsArray) { + return false; + } + var aIsError = a instanceof Error; + var bIsError = b instanceof Error; + if (aIsError !== bIsError) { + return false; + } + if (aIsError || bIsError) { + if (a.name !== b.name || a.message !== b.message) { + return false; + } + } + var aIsRegex = isRegex(a); + var bIsRegex = isRegex(b); + if (aIsRegex !== bIsRegex) { + return false; + } + if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) { + return false; + } + var aIsDate = isDate(a); + var bIsDate = isDate(b); + if (aIsDate !== bIsDate) { + return false; + } + if (aIsDate || bIsDate) { + if ($getTime(a) !== $getTime(b)) { + return false; + } + } + if (opts.strict && gPO && gPO(a) !== gPO(b)) { + return false; + } + if (whichTypedArray(a) !== whichTypedArray(b)) { + return false; + } + var aIsBuffer = isBuffer(a); + var bIsBuffer = isBuffer(b); + if (aIsBuffer !== bIsBuffer) { + return false; + } + if (aIsBuffer || bIsBuffer) { + if (a.length !== b.length) { + return false; + } + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; + } + if (typeof a !== typeof b) { + return false; + } + var ka = objectKeys(a); + var kb = objectKeys(b); + if (ka.length !== kb.length) { + return false; + } + ka.sort(); + kb.sort(); + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) { + return false; + } + } + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!internalDeepEqual(a[key], b[key], opts, channel)) { + return false; + } + } + var aCollection = whichCollection(a); + var bCollection = whichCollection(b); + if (aCollection !== bCollection) { + return false; + } + if (aCollection === "Set" || bCollection === "Set") { + return setEquiv(a, b, opts, channel); + } + if (aCollection === "Map") { + return mapEquiv(a, b, opts, channel); + } + return true; + } + module.exports = function deepEqual(a, b, opts) { + return internalDeepEqual(a, b, opts, getSideChannel()); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var slice = Array.prototype.slice; + var isArgs = __webpack_require__(16); + var origKeys = Object.keys; + var keysShim = origKeys ? function keys(o) { + return origKeys(o); + } : __webpack_require__(17); + var originalKeys = Object.keys; + keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = function() { + var args = Object.keys(arguments); + return args && args.length === arguments.length; + }(1, 2); + if (!keysWorksWithArguments) { + Object.keys = function keys(object) { + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } + return originalKeys(object); + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; + }; + module.exports = keysShim; + }, module => { + "use strict"; + var toStr = Object.prototype.toString; + module.exports = function isArguments(value) { + var str = toStr.call(value); + var isArgs = str === "[object Arguments]"; + if (!isArgs) { + isArgs = str !== "[object Array]" && value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && toStr.call(value.callee) === "[object Function]"; + } + return isArgs; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var keysShim; + if (!Object.keys) { + var has = Object.prototype.hasOwnProperty; + var toStr = Object.prototype.toString; + var isArgs = __webpack_require__(16); + var isEnumerable = Object.prototype.propertyIsEnumerable; + var hasDontEnumBug = !isEnumerable.call({ + toString: null + }, "toString"); + var hasProtoEnumBug = isEnumerable.call((function() {}), "prototype"); + var dontEnums = [ "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor" ]; + var equalsConstructorPrototype = function(o) { + var ctor = o.constructor; + return ctor && ctor.prototype === o; + }; + var excludedKeys = { + $applicationCache: true, + $console: true, + $external: true, + $frame: true, + $frameElement: true, + $frames: true, + $innerHeight: true, + $innerWidth: true, + $onmozfullscreenchange: true, + $onmozfullscreenerror: true, + $outerHeight: true, + $outerWidth: true, + $pageXOffset: true, + $pageYOffset: true, + $parent: true, + $scrollLeft: true, + $scrollTop: true, + $scrollX: true, + $scrollY: true, + $self: true, + $webkitIndexedDB: true, + $webkitStorageInfo: true, + $window: true + }; + var hasAutomationEqualityBug = function() { + if (typeof window === "undefined") { + return false; + } + for (var k in window) { + try { + if (!excludedKeys["$" + k] && has.call(window, k) && window[k] !== null && typeof window[k] === "object") { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } + } + } catch (e) { + return true; + } + } + return false; + }(); + var equalsConstructorPrototypeIfNotBuggy = function(o) { + if (typeof window === "undefined" || !hasAutomationEqualityBug) { + return equalsConstructorPrototype(o); + } + try { + return equalsConstructorPrototype(o); + } catch (e) { + return false; + } + }; + keysShim = function keys(object) { + var isObject = object !== null && typeof object === "object"; + var isFunction = toStr.call(object) === "[object Function]"; + var isArguments = isArgs(object); + var isString = isObject && toStr.call(object) === "[object String]"; + var theKeys = []; + if (!isObject && !isFunction && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + var skipProto = hasProtoEnumBug && isFunction; + if (isString && object.length > 0 && !has.call(object, 0)) { + for (var i = 0; i < object.length; ++i) { + theKeys.push(String(i)); + } + } + if (isArguments && object.length > 0) { + for (var j = 0; j < object.length; ++j) { + theKeys.push(String(j)); + } + } else { + for (var name in object) { + if (!(skipProto && name === "prototype") && has.call(object, name)) { + theKeys.push(String(name)); + } + } + } + if (hasDontEnumBug) { + var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); + for (var k = 0; k < dontEnums.length; ++k) { + if (!(skipConstructor && dontEnums[k] === "constructor") && has.call(object, dontEnums[k])) { + theKeys.push(dontEnums[k]); + } + } + } + return theKeys; + }; + } + module.exports = keysShim; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var hasToStringTag = __webpack_require__(19)(); + var callBound = __webpack_require__(21); + var $toString = callBound("Object.prototype.toString"); + var isStandardArguments = function isArguments(value) { + if (hasToStringTag && value && typeof value === "object" && Symbol.toStringTag in value) { + return false; + } + return $toString(value) === "[object Arguments]"; + }; + var isLegacyArguments = function isArguments(value) { + if (isStandardArguments(value)) { + return true; + } + return value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && $toString(value) !== "[object Array]" && $toString(value.callee) === "[object Function]"; + }; + var supportsStandardArguments = function() { + return isStandardArguments(arguments); + }(); + isStandardArguments.isLegacyArguments = isLegacyArguments; + module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var hasSymbols = __webpack_require__(20); + module.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; + }; + }, module => { + "use strict"; + module.exports = function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var callBind = __webpack_require__(27); + var $indexOf = callBind(GetIntrinsic("String.prototype.indexOf")); + module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) { + return callBind(intrinsic); + } + return intrinsic; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var undefined; + var $SyntaxError = SyntaxError; + var $Function = Function; + var $TypeError = TypeError; + var getEvalledConstructor = function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) {} + }; + var $gOPD = Object.getOwnPropertyDescriptor; + if ($gOPD) { + try { + $gOPD({}, ""); + } catch (e) { + $gOPD = null; + } + } + var throwTypeError = function() { + throw new $TypeError; + }; + var ThrowTypeError = $gOPD ? function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }() : throwTypeError; + var hasSymbols = __webpack_require__(23)(); + var getProto = Object.getPrototypeOf || function(x) { + return x.__proto__; + }; + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" ? undefined : getProto(Uint8Array); + var INTRINSICS = { + "%AggregateError%": typeof AggregateError === "undefined" ? undefined : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols ? getProto([][Symbol.iterator]()) : undefined, + "%AsyncFromSyncIteratorPrototype%": undefined, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined : BigInt, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": Error, + "%eval%": eval, + "%EvalError%": EvalError, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, + "%JSON%": typeof JSON === "object" ? JSON : undefined, + "%Map%": typeof Map === "undefined" ? undefined : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols ? undefined : getProto((new Map)[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": Object, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined : Proxy, + "%RangeError%": RangeError, + "%ReferenceError%": ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols ? undefined : getProto((new Set)[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols ? getProto(""[Symbol.iterator]()) : undefined, + "%Symbol%": hasSymbols ? Symbol : undefined, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined : Uint32Array, + "%URIError%": URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined : WeakSet + }; + var doEval = function doEval(name) { + var value; + if (name === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name === "%AsyncGenerator%") { + var fn = doEval("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name === "%AsyncIteratorPrototype%") { + var gen = doEval("%AsyncGenerator%"); + if (gen) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name] = value; + return value; + }; + var LEGACY_ALIASES = { + "%ArrayBufferPrototype%": [ "ArrayBuffer", "prototype" ], + "%ArrayPrototype%": [ "Array", "prototype" ], + "%ArrayProto_entries%": [ "Array", "prototype", "entries" ], + "%ArrayProto_forEach%": [ "Array", "prototype", "forEach" ], + "%ArrayProto_keys%": [ "Array", "prototype", "keys" ], + "%ArrayProto_values%": [ "Array", "prototype", "values" ], + "%AsyncFunctionPrototype%": [ "AsyncFunction", "prototype" ], + "%AsyncGenerator%": [ "AsyncGeneratorFunction", "prototype" ], + "%AsyncGeneratorPrototype%": [ "AsyncGeneratorFunction", "prototype", "prototype" ], + "%BooleanPrototype%": [ "Boolean", "prototype" ], + "%DataViewPrototype%": [ "DataView", "prototype" ], + "%DatePrototype%": [ "Date", "prototype" ], + "%ErrorPrototype%": [ "Error", "prototype" ], + "%EvalErrorPrototype%": [ "EvalError", "prototype" ], + "%Float32ArrayPrototype%": [ "Float32Array", "prototype" ], + "%Float64ArrayPrototype%": [ "Float64Array", "prototype" ], + "%FunctionPrototype%": [ "Function", "prototype" ], + "%Generator%": [ "GeneratorFunction", "prototype" ], + "%GeneratorPrototype%": [ "GeneratorFunction", "prototype", "prototype" ], + "%Int8ArrayPrototype%": [ "Int8Array", "prototype" ], + "%Int16ArrayPrototype%": [ "Int16Array", "prototype" ], + "%Int32ArrayPrototype%": [ "Int32Array", "prototype" ], + "%JSONParse%": [ "JSON", "parse" ], + "%JSONStringify%": [ "JSON", "stringify" ], + "%MapPrototype%": [ "Map", "prototype" ], + "%NumberPrototype%": [ "Number", "prototype" ], + "%ObjectPrototype%": [ "Object", "prototype" ], + "%ObjProto_toString%": [ "Object", "prototype", "toString" ], + "%ObjProto_valueOf%": [ "Object", "prototype", "valueOf" ], + "%PromisePrototype%": [ "Promise", "prototype" ], + "%PromiseProto_then%": [ "Promise", "prototype", "then" ], + "%Promise_all%": [ "Promise", "all" ], + "%Promise_reject%": [ "Promise", "reject" ], + "%Promise_resolve%": [ "Promise", "resolve" ], + "%RangeErrorPrototype%": [ "RangeError", "prototype" ], + "%ReferenceErrorPrototype%": [ "ReferenceError", "prototype" ], + "%RegExpPrototype%": [ "RegExp", "prototype" ], + "%SetPrototype%": [ "Set", "prototype" ], + "%SharedArrayBufferPrototype%": [ "SharedArrayBuffer", "prototype" ], + "%StringPrototype%": [ "String", "prototype" ], + "%SymbolPrototype%": [ "Symbol", "prototype" ], + "%SyntaxErrorPrototype%": [ "SyntaxError", "prototype" ], + "%TypedArrayPrototype%": [ "TypedArray", "prototype" ], + "%TypeErrorPrototype%": [ "TypeError", "prototype" ], + "%Uint8ArrayPrototype%": [ "Uint8Array", "prototype" ], + "%Uint8ClampedArrayPrototype%": [ "Uint8ClampedArray", "prototype" ], + "%Uint16ArrayPrototype%": [ "Uint16Array", "prototype" ], + "%Uint32ArrayPrototype%": [ "Uint32Array", "prototype" ], + "%URIErrorPrototype%": [ "URIError", "prototype" ], + "%WeakMapPrototype%": [ "WeakMap", "prototype" ], + "%WeakSetPrototype%": [ "WeakSet", "prototype" ] + }; + var bind = __webpack_require__(24); + var hasOwn = __webpack_require__(26); + var $concat = bind.call(Function.call, Array.prototype.concat); + var $spliceApply = bind.call(Function.apply, Array.prototype.splice); + var $replace = bind.call(Function.call, String.prototype.replace); + var $strSlice = bind.call(Function.call, String.prototype.slice); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === "%" && last !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last === "%" && first !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, (function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + })); + return result; + }; + var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name + " does not exist!"); + }; + module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== "string" || name.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([ 0, 1 ], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available."); + } + return void undefined; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = __webpack_require__(20); + module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(25); + module.exports = Function.prototype.bind || implementation; + }, module => { + "use strict"; + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var slice = Array.prototype.slice; + var toStr = Object.prototype.toString; + var funcType = "[object Function]"; + module.exports = function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + var bound; + var binder = function() { + if (this instanceof bound) { + var result = target.apply(this, args.concat(slice.call(arguments))); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply(that, args.concat(slice.call(arguments))); + } + }; + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push("$" + i); + } + bound = Function("binder", "return function (" + boundArgs.join(",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty; + Empty.prototype = null; + } + return bound; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var bind = __webpack_require__(24); + module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var bind = __webpack_require__(24); + var GetIntrinsic = __webpack_require__(22); + var $apply = GetIntrinsic("%Function.prototype.apply%"); + var $call = GetIntrinsic("%Function.prototype.call%"); + var $reflectApply = GetIntrinsic("%Reflect.apply%", true) || bind.call($call, $apply); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true); + var $max = GetIntrinsic("%Math.max%"); + if ($defineProperty) { + try { + $defineProperty({}, "a", { + value: 1 + }); + } catch (e) { + $defineProperty = null; + } + } + module.exports = function callBind(originalFunction) { + var func = $reflectApply(bind, $call, arguments); + if ($gOPD && $defineProperty) { + var desc = $gOPD(func, "length"); + if (desc.configurable) { + $defineProperty(func, "length", { + value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) + }); + } + } + return func; + }; + var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); + }; + if ($defineProperty) { + $defineProperty(module.exports, "apply", { + value: applyBind + }); + } else { + module.exports.apply = applyBind; + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(31); + var getPolyfill = __webpack_require__(32); + var shim = __webpack_require__(33); + var polyfill = callBind(getPolyfill(), Object); + define(polyfill, { + getPolyfill, + implementation, + shim + }); + module.exports = polyfill; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var keys = __webpack_require__(15); + var hasSymbols = typeof Symbol === "function" && typeof Symbol("foo") === "symbol"; + var toStr = Object.prototype.toString; + var concat = Array.prototype.concat; + var origDefineProperty = Object.defineProperty; + var isFunction = function(fn) { + return typeof fn === "function" && toStr.call(fn) === "[object Function]"; + }; + var hasPropertyDescriptors = __webpack_require__(30)(); + var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; + var defineProperty = function(object, name, value, predicate) { + if (name in object && (!isFunction(predicate) || !predicate())) { + return; + } + if (supportsDescriptors) { + origDefineProperty(object, name, { + configurable: true, + enumerable: false, + value, + writable: true + }); + } else { + object[name] = value; + } + }; + var defineProperties = function(object, map) { + var predicates = arguments.length > 2 ? arguments[2] : {}; + var props = keys(map); + if (hasSymbols) { + props = concat.call(props, Object.getOwnPropertySymbols(map)); + } + for (var i = 0; i < props.length; i += 1) { + defineProperty(object, props[i], map[props[i]], predicates[props[i]]); + } + }; + defineProperties.supportsDescriptors = !!supportsDescriptors; + module.exports = defineProperties; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true); + var hasPropertyDescriptors = function hasPropertyDescriptors() { + if ($defineProperty) { + try { + $defineProperty({}, "a", { + value: 1 + }); + return true; + } catch (e) { + return false; + } + } + return false; + }; + hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + if (!hasPropertyDescriptors()) { + return null; + } + try { + return $defineProperty([], "length", { + value: 1 + }).length !== 1; + } catch (e) { + return true; + } + }; + module.exports = hasPropertyDescriptors; + }, module => { + "use strict"; + var numberIsNaN = function(value) { + return value !== value; + }; + module.exports = function is(a, b) { + if (a === 0 && b === 0) { + return 1 / a === 1 / b; + } + if (a === b) { + return true; + } + if (numberIsNaN(a) && numberIsNaN(b)) { + return true; + } + return false; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(31); + module.exports = function getPolyfill() { + return typeof Object.is === "function" ? Object.is : implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var getPolyfill = __webpack_require__(32); + var define = __webpack_require__(29); + module.exports = function shimObjectIs() { + var polyfill = getPolyfill(); + define(Object, { + is: polyfill + }, { + is: function testObjectIs() { + return Object.is !== polyfill; + } + }); + return polyfill; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var callBound = __webpack_require__(21); + var hasToStringTag = __webpack_require__(19)(); + var has; + var $exec; + var isRegexMarker; + var badStringifier; + if (hasToStringTag) { + has = callBound("Object.prototype.hasOwnProperty"); + $exec = callBound("RegExp.prototype.exec"); + isRegexMarker = {}; + var throwRegexMarker = function() { + throw isRegexMarker; + }; + badStringifier = { + toString: throwRegexMarker, + valueOf: throwRegexMarker + }; + if (typeof Symbol.toPrimitive === "symbol") { + badStringifier[Symbol.toPrimitive] = throwRegexMarker; + } + } + var $toString = callBound("Object.prototype.toString"); + var gOPD = Object.getOwnPropertyDescriptor; + var regexClass = "[object RegExp]"; + module.exports = hasToStringTag ? function isRegex(value) { + if (!value || typeof value !== "object") { + return false; + } + var descriptor = gOPD(value, "lastIndex"); + var hasLastIndexDataProperty = descriptor && has(descriptor, "value"); + if (!hasLastIndexDataProperty) { + return false; + } + try { + $exec(value, badStringifier); + } catch (e) { + return e === isRegexMarker; + } + } : function isRegex(value) { + if (!value || typeof value !== "object" && typeof value !== "function") { + return false; + } + return $toString(value) === regexClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(36); + var getPolyfill = __webpack_require__(38); + var shim = __webpack_require__(39); + var flagsBound = callBind(getPolyfill()); + define(flagsBound, { + getPolyfill, + implementation, + shim + }); + module.exports = flagsBound; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var functionsHaveConfigurableNames = __webpack_require__(37).functionsHaveConfigurableNames(); + var $Object = Object; + var $TypeError = TypeError; + module.exports = function flags() { + if (this != null && this !== $Object(this)) { + throw new $TypeError("RegExp.prototype.flags getter called on non-object"); + } + var result = ""; + if (this.hasIndices) { + result += "d"; + } + if (this.global) { + result += "g"; + } + if (this.ignoreCase) { + result += "i"; + } + if (this.multiline) { + result += "m"; + } + if (this.dotAll) { + result += "s"; + } + if (this.unicode) { + result += "u"; + } + if (this.sticky) { + result += "y"; + } + return result; + }; + if (functionsHaveConfigurableNames && Object.defineProperty) { + Object.defineProperty(module.exports, "name", { + value: "get flags" + }); + } + }, module => { + "use strict"; + var functionsHaveNames = function functionsHaveNames() { + return typeof function f() {}.name === "string"; + }; + var gOPD = Object.getOwnPropertyDescriptor; + if (gOPD) { + try { + gOPD([], "length"); + } catch (e) { + gOPD = null; + } + } + functionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() { + if (!functionsHaveNames() || !gOPD) { + return false; + } + var desc = gOPD((function() {}), "name"); + return !!desc && !!desc.configurable; + }; + var $bind = Function.prototype.bind; + functionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() { + return functionsHaveNames() && typeof $bind === "function" && function f() {}.bind().name !== ""; + }; + module.exports = functionsHaveNames; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(36); + var supportsDescriptors = __webpack_require__(29).supportsDescriptors; + var $gOPD = Object.getOwnPropertyDescriptor; + module.exports = function getPolyfill() { + if (supportsDescriptors && /a/gim.flags === "gim") { + var descriptor = $gOPD(RegExp.prototype, "flags"); + if (descriptor && typeof descriptor.get === "function" && typeof RegExp.prototype.dotAll === "boolean" && typeof RegExp.prototype.hasIndices === "boolean") { + var calls = ""; + var o = {}; + Object.defineProperty(o, "hasIndices", { + get: function() { + calls += "d"; + } + }); + Object.defineProperty(o, "sticky", { + get: function() { + calls += "y"; + } + }); + if (calls === "dy") { + return descriptor.get; + } + } + } + return implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var supportsDescriptors = __webpack_require__(29).supportsDescriptors; + var getPolyfill = __webpack_require__(38); + var gOPD = Object.getOwnPropertyDescriptor; + var defineProperty = Object.defineProperty; + var TypeErr = TypeError; + var getProto = Object.getPrototypeOf; + var regex = /a/; + module.exports = function shimFlags() { + if (!supportsDescriptors || !getProto) { + throw new TypeErr("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors"); + } + var polyfill = getPolyfill(); + var proto = getProto(regex); + var descriptor = gOPD(proto, "flags"); + if (!descriptor || descriptor.get !== polyfill) { + defineProperty(proto, "flags", { + configurable: true, + enumerable: false, + get: polyfill + }); + } + return polyfill; + }; + }, module => { + var toString = {}.toString; + module.exports = Array.isArray || function(arr) { + return toString.call(arr) == "[object Array]"; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var getDay = Date.prototype.getDay; + var tryDateObject = function tryDateGetDayCall(value) { + try { + getDay.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var dateClass = "[object Date]"; + var hasToStringTag = __webpack_require__(19)(); + module.exports = function isDateObject(value) { + if (typeof value !== "object" || value === null) { + return false; + } + return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var isString = __webpack_require__(43); + var isNumber = __webpack_require__(44); + var isBoolean = __webpack_require__(45); + var isSymbol = __webpack_require__(46); + var isBigInt = __webpack_require__(47); + module.exports = function whichBoxedPrimitive(value) { + if (value == null || typeof value !== "object" && typeof value !== "function") { + return null; + } + if (isString(value)) { + return "String"; + } + if (isNumber(value)) { + return "Number"; + } + if (isBoolean(value)) { + return "Boolean"; + } + if (isSymbol(value)) { + return "Symbol"; + } + if (isBigInt(value)) { + return "BigInt"; + } + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var strValue = String.prototype.valueOf; + var tryStringObject = function tryStringObject(value) { + try { + strValue.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var strClass = "[object String]"; + var hasToStringTag = __webpack_require__(19)(); + module.exports = function isString(value) { + if (typeof value === "string") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var numToStr = Number.prototype.toString; + var tryNumberObject = function tryNumberObject(value) { + try { + numToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var numClass = "[object Number]"; + var hasToStringTag = __webpack_require__(19)(); + module.exports = function isNumberObject(value) { + if (typeof value === "number") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var callBound = __webpack_require__(21); + var $boolToStr = callBound("Boolean.prototype.toString"); + var $toString = callBound("Object.prototype.toString"); + var tryBooleanObject = function booleanBrandCheck(value) { + try { + $boolToStr(value); + return true; + } catch (e) { + return false; + } + }; + var boolClass = "[object Boolean]"; + var hasToStringTag = __webpack_require__(19)(); + module.exports = function isBoolean(value) { + if (typeof value === "boolean") { + return true; + } + if (value === null || typeof value !== "object") { + return false; + } + return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var toStr = Object.prototype.toString; + var hasSymbols = __webpack_require__(23)(); + if (hasSymbols) { + var symToStr = Symbol.prototype.toString; + var symStringRegex = /^Symbol\(.*\)$/; + var isSymbolObject = function isRealSymbolObject(value) { + if (typeof value.valueOf() !== "symbol") { + return false; + } + return symStringRegex.test(symToStr.call(value)); + }; + module.exports = function isSymbol(value) { + if (typeof value === "symbol") { + return true; + } + if (toStr.call(value) !== "[object Symbol]") { + return false; + } + try { + return isSymbolObject(value); + } catch (e) { + return false; + } + }; + } else { + module.exports = function isSymbol(value) { + return false && 0; + }; + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var hasBigInts = __webpack_require__(48)(); + if (hasBigInts) { + var bigIntValueOf = BigInt.prototype.valueOf; + var tryBigInt = function tryBigIntObject(value) { + try { + bigIntValueOf.call(value); + return true; + } catch (e) {} + return false; + }; + module.exports = function isBigInt(value) { + if (value === null || typeof value === "undefined" || typeof value === "boolean" || typeof value === "string" || typeof value === "number" || typeof value === "symbol" || typeof value === "function") { + return false; + } + if (typeof value === "bigint") { + return true; + } + return tryBigInt(value); + }; + } else { + module.exports = function isBigInt(value) { + return false && 0; + }; + } + }, module => { + "use strict"; + var $BigInt = typeof BigInt !== "undefined" && BigInt; + module.exports = function hasNativeBigInts() { + return typeof $BigInt === "function" && typeof BigInt === "function" && typeof $BigInt(42) === "bigint" && typeof BigInt(42) === "bigint"; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var isMap = __webpack_require__(50); + var isSet = __webpack_require__(51); + var isWeakMap = __webpack_require__(52); + var isWeakSet = __webpack_require__(53); + module.exports = function whichCollection(value) { + if (value && typeof value === "object") { + if (isMap(value)) { + return "Map"; + } + if (isSet(value)) { + return "Set"; + } + if (isWeakMap(value)) { + return "WeakMap"; + } + if (isWeakSet(value)) { + return "WeakSet"; + } + } + return false; + }; + }, module => { + "use strict"; + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Map) { + exported = function isMap(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isMap(x) { + return false; + }; + } + module.exports = exported || function isMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x); + if ($setHas) { + try { + $setHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Map; + } catch (e) {} + return false; + }; + }, module => { + "use strict"; + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Set) { + exported = function isSet(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$setHas) { + exported = function isSet(x) { + return false; + }; + } + module.exports = exported || function isSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas.call(x); + if ($mapHas) { + try { + $mapHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Set; + } catch (e) {} + return false; + }; + }, module => { + "use strict"; + var $WeakMap = typeof WeakMap === "function" && WeakMap.prototype ? WeakMap : null; + var $WeakSet = typeof WeakSet === "function" && WeakSet.prototype ? WeakSet : null; + var exported; + if (!$WeakMap) { + exported = function isWeakMap(x) { + return false; + }; + } + var $mapHas = $WeakMap ? $WeakMap.prototype.has : null; + var $setHas = $WeakSet ? $WeakSet.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isWeakMap(x) { + return false; + }; + } + module.exports = exported || function isWeakMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x, $mapHas); + if ($setHas) { + try { + $setHas.call(x, $setHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakMap; + } catch (e) {} + return false; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var callBound = __webpack_require__(21); + var $WeakSet = GetIntrinsic("%WeakSet%", true); + var $setHas = callBound("WeakSet.prototype.has", true); + if ($setHas) { + var $mapHas = callBound("WeakMap.prototype.has", true); + module.exports = function isWeakSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas(x, $setHas); + if ($mapHas) { + try { + $mapHas(x, $mapHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakSet; + } catch (e) {} + return false; + }; + } else { + module.exports = function isWeakSet(x) { + return false; + }; + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var process = __webpack_require__(56); + var isArguments = __webpack_require__(18); + if (__webpack_require__(23)() || __webpack_require__(20)()) { + var $iterator = Symbol.iterator; + module.exports = function getIterator(iterable) { + if (iterable != null && typeof iterable[$iterator] !== "undefined") { + return iterable[$iterator](); + } + if (isArguments(iterable)) { + return Array.prototype[$iterator].call(iterable); + } + }; + } else { + var isArray = __webpack_require__(55); + var isString = __webpack_require__(43); + var GetIntrinsic = __webpack_require__(22); + var $Map = GetIntrinsic("%Map%", true); + var $Set = GetIntrinsic("%Set%", true); + var callBound = __webpack_require__(21); + var $arrayPush = callBound("Array.prototype.push"); + var $charCodeAt = callBound("String.prototype.charCodeAt"); + var $stringSlice = callBound("String.prototype.slice"); + var advanceStringIndex = function advanceStringIndex(S, index) { + var length = S.length; + if (index + 1 >= length) { + return index + 1; + } + var first = $charCodeAt(S, index); + if (first < 55296 || first > 56319) { + return index + 1; + } + var second = $charCodeAt(S, index + 1); + if (second < 56320 || second > 57343) { + return index + 1; + } + return index + 2; + }; + var getArrayIterator = function getArrayIterator(arraylike) { + var i = 0; + return { + next: function next() { + var done = i >= arraylike.length; + var value; + if (!done) { + value = arraylike[i]; + i += 1; + } + return { + done, + value + }; + } + }; + }; + var getNonCollectionIterator = function getNonCollectionIterator(iterable, noPrimordialCollections) { + if (isArray(iterable) || isArguments(iterable)) { + return getArrayIterator(iterable); + } + if (isString(iterable)) { + var i = 0; + return { + next: function next() { + var nextIndex = advanceStringIndex(iterable, i); + var value = $stringSlice(iterable, i, nextIndex); + i = nextIndex; + return { + done: nextIndex > iterable.length, + value + }; + } + }; + } + if (noPrimordialCollections && typeof iterable["_es6-shim iterator_"] !== "undefined") { + return iterable["_es6-shim iterator_"](); + } + }; + if (!$Map && !$Set) { + module.exports = function getIterator(iterable) { + if (iterable != null) { + return getNonCollectionIterator(iterable, true); + } + }; + } else { + var isMap = __webpack_require__(50); + var isSet = __webpack_require__(51); + var $mapForEach = callBound("Map.prototype.forEach", true); + var $setForEach = callBound("Set.prototype.forEach", true); + if (typeof process === "undefined" || !process.versions || !process.versions.node) { + var $mapIterator = callBound("Map.prototype.iterator", true); + var $setIterator = callBound("Set.prototype.iterator", true); + var getStopIterationIterator = function(iterator) { + var done = false; + return { + next: function next() { + try { + return { + done, + value: done ? undefined : iterator.next() + }; + } catch (e) { + done = true; + return { + done: true, + value: undefined + }; + } + } + }; + }; + } + var $mapAtAtIterator = callBound("Map.prototype.@@iterator", true) || callBound("Map.prototype._es6-shim iterator_", true); + var $setAtAtIterator = callBound("Set.prototype.@@iterator", true) || callBound("Set.prototype._es6-shim iterator_", true); + var getCollectionIterator = function getCollectionIterator(iterable) { + if (isMap(iterable)) { + if ($mapIterator) { + return getStopIterationIterator($mapIterator(iterable)); + } + if ($mapAtAtIterator) { + return $mapAtAtIterator(iterable); + } + if ($mapForEach) { + var entries = []; + $mapForEach(iterable, (function(v, k) { + $arrayPush(entries, [ k, v ]); + })); + return getArrayIterator(entries); + } + } + if (isSet(iterable)) { + if ($setIterator) { + return getStopIterationIterator($setIterator(iterable)); + } + if ($setAtAtIterator) { + return $setAtAtIterator(iterable); + } + if ($setForEach) { + var values = []; + $setForEach(iterable, (function(v) { + $arrayPush(values, v); + })); + return getArrayIterator(values); + } + } + }; + module.exports = function getIterator(iterable) { + return getCollectionIterator(iterable) || getNonCollectionIterator(iterable); + }; + } + } + }, module => { + var toString = {}.toString; + module.exports = Array.isArray || function(arr) { + return toString.call(arr) == "[object Array]"; + }; + }, module => { + var process = module.exports = {}; + var cachedSetTimeout; + var cachedClearTimeout; + function defaultSetTimout() { + throw new Error("setTimeout has not been defined"); + } + function defaultClearTimeout() { + throw new Error("clearTimeout has not been defined"); + } + (function() { + try { + if (typeof setTimeout === "function") { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === "function") { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + })(); + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + return setTimeout(fun, 0); + } + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + return cachedSetTimeout(fun, 0); + } catch (e) { + try { + return cachedSetTimeout.call(null, fun, 0); + } catch (e) { + return cachedSetTimeout.call(this, fun, 0); + } + } + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + return clearTimeout(marker); + } + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + return cachedClearTimeout(marker); + } catch (e) { + try { + return cachedClearTimeout.call(null, marker); + } catch (e) { + return cachedClearTimeout.call(this, marker); + } + } + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + process.nextTick = function(fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function() { + this.fun.apply(null, this.array); + }; + process.title = "browser"; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ""; + process.versions = {}; + function noop() {} + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + process.listeners = function(name) { + return []; + }; + process.binding = function(name) { + throw new Error("process.binding is not supported"); + }; + process.cwd = function() { + return "/"; + }; + process.chdir = function(dir) { + throw new Error("process.chdir is not supported"); + }; + process.umask = function() { + return 0; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var callBound = __webpack_require__(21); + var inspect = __webpack_require__(58); + var $TypeError = GetIntrinsic("%TypeError%"); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $Map = GetIntrinsic("%Map%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var listGetNode = function(list, key) { + for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + curr.next = list.next; + list.next = curr; + return curr; + } + } + }; + var listGet = function(objects, key) { + var node = listGetNode(objects, key); + return node && node.value; + }; + var listSet = function(objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + objects.next = { + key, + next: objects.next, + value + }; + } + }; + var listHas = function(objects, key) { + return !!listGetNode(objects, key); + }; + module.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function(key) { + if (!channel.has(key)) { + throw new $TypeError("Side channel does not contain " + inspect(key)); + } + }, + get: function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapGet($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key); + } + } else { + if ($o) { + return listGet($o, key); + } + } + }, + has: function(key) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if ($wm) { + return $weakMapHas($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key); + } + } else { + if ($o) { + return listHas($o, key); + } + } + return false; + }, + set: function(key, value) { + if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) { + if (!$wm) { + $wm = new $WeakMap; + } + $weakMapSet($wm, key, value); + } else if ($Map) { + if (!$m) { + $m = new $Map; + } + $mapSet($m, key, value); + } else { + if (!$o) { + $o = { + key: {}, + next: null + }; + } + listSet($o, key, value); + } + } + }; + return channel; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num, str) { + if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === "number") { + var int = num < 0 ? -$floor(-num) : $floor(num); + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + var utilInspect = __webpack_require__(59); + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + module.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && (opts.quoteStyle !== "single" && opts.quoteStyle !== "double")) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== "\t" && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + if (typeof obj === "function" && !isRegExp(obj)) { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += ""; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { + depth: maxDepth - depth + }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + mapForEach.call(obj, (function(value, key) { + mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj)); + })); + return collectionOf("Map", mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + setForEach.call(obj, (function(value) { + setParts.push(inspect(value, obj)); + })); + return collectionOf("Set", setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag + "{}"; + } + if (indent) { + return tag + "{" + indentedJoin(ys, indent) + "}"; + } + return tag + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }; + function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === "double" ? '"' : "'"; + return quoteChar + s + quoteChar; + } + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + function isArray(obj) { + return toStr(obj) === "[object Array]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isDate(obj) { + return toStr(obj) === "[object Date]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isError(obj) { + return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isString(obj) { + return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isNumber(obj) { + return toStr(obj) === "[object Number]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; + } + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; + } + var hasOwn = Object.prototype.hasOwnProperty || function(key) { + return key in this; + }; + function has(obj, key) { + return hasOwn.call(obj, key); + } + function toStr(obj) { + return objectToString.call(obj); + } + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) {} + return false; + } + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) {} + return false; + } + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; + } + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) {} + return false; + } + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) {} + return false; + } + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var s = $replace.call($replace.call(str, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + function markBoxed(str) { + return "Object(" + str + ")"; + } + function weakCollectionOf(type) { + return type + " { ? }"; + } + function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === "\t") { + baseIndent = "\t"; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + function indentedJoin(xs, indent) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent.prev + indent.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev; + } + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key in obj) { + if (!has(obj, key)) { + continue; + } + if (isArr && String(Number(key)) === key && key < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj)); + } else { + xs.push(key + ": " + inspect(obj[key], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + }, () => {}, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var forEach = __webpack_require__(61); + var availableTypedArrays = __webpack_require__(63); + var callBound = __webpack_require__(21); + var $toString = callBound("Object.prototype.toString"); + var hasToStringTag = __webpack_require__(19)(); + var g = typeof globalThis === "undefined" ? __webpack_require__.g : globalThis; + var typedArrays = availableTypedArrays(); + var $slice = callBound("String.prototype.slice"); + var toStrTags = {}; + var gOPD = __webpack_require__(64); + var getPrototypeOf = Object.getPrototypeOf; + if (hasToStringTag && gOPD && getPrototypeOf) { + forEach(typedArrays, (function(typedArray) { + if (typeof g[typedArray] === "function") { + var arr = new g[typedArray]; + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + } + })); + } + var tryTypedArrays = function tryAllTypedArrays(value) { + var foundName = false; + forEach(toStrTags, (function(getter, typedArray) { + if (!foundName) { + try { + var name = getter.call(value); + if (name === typedArray) { + foundName = name; + } + } catch (e) {} + } + })); + return foundName; + }; + var isTypedArray = __webpack_require__(65); + module.exports = function whichTypedArray(value) { + if (!isTypedArray(value)) { + return false; + } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { + return $slice($toString(value), 8, -1); + } + return tryTypedArrays(value); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var isCallable = __webpack_require__(62); + var toStr = Object.prototype.toString; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var forEachArray = function forEachArray(array, iterator, receiver) { + for (var i = 0, len = array.length; i < len; i++) { + if (hasOwnProperty.call(array, i)) { + if (receiver == null) { + iterator(array[i], i, array); + } else { + iterator.call(receiver, array[i], i, array); + } + } + } + }; + var forEachString = function forEachString(string, iterator, receiver) { + for (var i = 0, len = string.length; i < len; i++) { + if (receiver == null) { + iterator(string.charAt(i), i, string); + } else { + iterator.call(receiver, string.charAt(i), i, string); + } + } + }; + var forEachObject = function forEachObject(object, iterator, receiver) { + for (var k in object) { + if (hasOwnProperty.call(object, k)) { + if (receiver == null) { + iterator(object[k], k, object); + } else { + iterator.call(receiver, object[k], k, object); + } + } + } + }; + var forEach = function forEach(list, iterator, thisArg) { + if (!isCallable(iterator)) { + throw new TypeError("iterator must be a function"); + } + var receiver; + if (arguments.length >= 3) { + receiver = thisArg; + } + if (toStr.call(list) === "[object Array]") { + forEachArray(list, iterator, receiver); + } else if (typeof list === "string") { + forEachString(list, iterator, receiver); + } else { + forEachObject(list, iterator, receiver); + } + }; + module.exports = forEach; + }, module => { + "use strict"; + var fnToStr = Function.prototype.toString; + var reflectApply = typeof Reflect === "object" && Reflect !== null && Reflect.apply; + var badArrayLike; + var isCallableMarker; + if (typeof reflectApply === "function" && typeof Object.defineProperty === "function") { + try { + badArrayLike = Object.defineProperty({}, "length", { + get: function() { + throw isCallableMarker; + } + }); + isCallableMarker = {}; + reflectApply((function() { + throw 42; + }), null, badArrayLike); + } catch (_) { + if (_ !== isCallableMarker) { + reflectApply = null; + } + } + } else { + reflectApply = null; + } + var constructorRegex = /^\s*class\b/; + var isES6ClassFn = function isES6ClassFunction(value) { + try { + var fnStr = fnToStr.call(value); + return constructorRegex.test(fnStr); + } catch (e) { + return false; + } + }; + var tryFunctionObject = function tryFunctionToStr(value) { + try { + if (isES6ClassFn(value)) { + return false; + } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var fnClass = "[object Function]"; + var genClass = "[object GeneratorFunction]"; + var hasToStringTag = typeof Symbol === "function" && !!Symbol.toStringTag; + var documentDotAll = typeof document === "object" && typeof document.all === "undefined" && document.all !== undefined ? document.all : {}; + module.exports = reflectApply ? function isCallable(value) { + if (value === documentDotAll) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + if (typeof value === "function" && !value.prototype) { + return true; + } + try { + reflectApply(value, null, badArrayLike); + } catch (e) { + if (e !== isCallableMarker) { + return false; + } + } + return !isES6ClassFn(value); + } : function isCallable(value) { + if (value === documentDotAll) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + if (typeof value === "function" && !value.prototype) { + return true; + } + if (hasToStringTag) { + return tryFunctionObject(value); + } + if (isES6ClassFn(value)) { + return false; + } + var strClass = toStr.call(value); + return strClass === fnClass || strClass === genClass; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var possibleNames = [ "BigInt64Array", "BigUint64Array", "Float32Array", "Float64Array", "Int16Array", "Int32Array", "Int8Array", "Uint16Array", "Uint32Array", "Uint8Array", "Uint8ClampedArray" ]; + var g = typeof globalThis === "undefined" ? __webpack_require__.g : globalThis; + module.exports = function availableTypedArrays() { + var out = []; + for (var i = 0; i < possibleNames.length; i++) { + if (typeof g[possibleNames[i]] === "function") { + out[out.length] = possibleNames[i]; + } + } + return out; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + module.exports = $gOPD; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var forEach = __webpack_require__(61); + var availableTypedArrays = __webpack_require__(63); + var callBound = __webpack_require__(21); + var $toString = callBound("Object.prototype.toString"); + var hasToStringTag = __webpack_require__(19)(); + var g = typeof globalThis === "undefined" ? __webpack_require__.g : globalThis; + var typedArrays = availableTypedArrays(); + var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array, value) { + for (var i = 0; i < array.length; i += 1) { + if (array[i] === value) { + return i; + } + } + return -1; + }; + var $slice = callBound("String.prototype.slice"); + var toStrTags = {}; + var gOPD = __webpack_require__(64); + var getPrototypeOf = Object.getPrototypeOf; + if (hasToStringTag && gOPD && getPrototypeOf) { + forEach(typedArrays, (function(typedArray) { + var arr = new g[typedArray]; + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + })); + } + var tryTypedArrays = function tryAllTypedArrays(value) { + var anyTrue = false; + forEach(toStrTags, (function(getter, typedArray) { + if (!anyTrue) { + try { + anyTrue = getter.call(value) === typedArray; + } catch (e) {} + } + })); + return anyTrue; + }; + module.exports = function isTypedArray(value) { + if (!value || typeof value !== "object") { + return false; + } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { + var tag = $slice($toString(value), 8, -1); + return $indexOf(typedArrays, tag) > -1; + } + if (!gOPD) { + return false; + } + return tryTypedArrays(value); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var defineProperties = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(67); + var getPolyfill = __webpack_require__(68); + var shim = __webpack_require__(69); + var polyfill = callBind.apply(getPolyfill()); + var bound = function assign(target, source1) { + return polyfill(Object, arguments); + }; + defineProperties(bound, { + getPolyfill, + implementation, + shim + }); + module.exports = bound; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var keys = __webpack_require__(15); + var canBeObject = function(obj) { + return typeof obj !== "undefined" && obj !== null; + }; + var hasSymbols = __webpack_require__(20)(); + var callBound = __webpack_require__(21); + var toObject = Object; + var $push = callBound("Array.prototype.push"); + var $propIsEnumerable = callBound("Object.prototype.propertyIsEnumerable"); + var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; + module.exports = function assign(target, source1) { + if (!canBeObject(target)) { + throw new TypeError("target must be an object"); + } + var objTarget = toObject(target); + var s, source, i, props, syms, value, key; + for (s = 1; s < arguments.length; ++s) { + source = toObject(arguments[s]); + props = keys(source); + var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); + if (getSymbols) { + syms = getSymbols(source); + for (i = 0; i < syms.length; ++i) { + key = syms[i]; + if ($propIsEnumerable(source, key)) { + $push(props, key); + } + } + } + for (i = 0; i < props.length; ++i) { + key = props[i]; + value = source[key]; + if ($propIsEnumerable(source, key)) { + objTarget[key] = value; + } + } + } + return objTarget; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(67); + var lacksProperEnumerationOrder = function() { + if (!Object.assign) { + return false; + } + var str = "abcdefghijklmnopqrst"; + var letters = str.split(""); + var map = {}; + for (var i = 0; i < letters.length; ++i) { + map[letters[i]] = letters[i]; + } + var obj = Object.assign({}, map); + var actual = ""; + for (var k in obj) { + actual += k; + } + return str !== actual; + }; + var assignHasPendingExceptions = function() { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + var thrower = Object.preventExtensions({ + 1: 2 + }); + try { + Object.assign(thrower, "xy"); + } catch (e) { + return thrower[1] === "y"; + } + return false; + }; + module.exports = function getPolyfill() { + if (!Object.assign) { + return implementation; + } + if (lacksProperEnumerationOrder()) { + return implementation; + } + if (assignHasPendingExceptions()) { + return implementation; + } + return Object.assign; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var getPolyfill = __webpack_require__(68); + module.exports = function shimAssign() { + var polyfill = getPolyfill(); + define(Object, { + assign: polyfill + }, { + assign: function() { + return Object.assign !== polyfill; + } + }); + return polyfill; + }; + }, module => { + "use strict"; + module.exports = window._; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + customizeValues: () => customizeValues, + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _generic_control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var customizeValues = function customizeValues() { + return Object.keys(wp.customize._value).reduce((function(finalValue, currentValue) { + return _objectSpread(_objectSpread({}, finalValue), {}, _defineProperty({}, currentValue, wp.customize._value[currentValue]())); + }), {}); + }; + var NestedControls = function(_Component) { + _inherits(NestedControls, _Component); + var _super = _createSuper(NestedControls); + function NestedControls() { + _classCallCheck(this, NestedControls); + return _super.apply(this, arguments); + } + _createClass(NestedControls, [ { + key: "render", + value: function render() { + var _this$props = this.props, value = _this$props.value, controls = _this$props.controls, _onChange = _this$props.onChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: controls.map((function(control) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_generic_control__WEBPACK_IMPORTED_MODULE_1__["default"], { + id: control.id, + settings: value, + options: Object.assign({}, control, control.options || {}), + onChange: function onChange(v, id) { + _onChange(v, id || control.id, id === control.id); + LottaEvents.trigger("lotta-setting-change", control.id, v); + } + }, control.id); + })) + }); + } + } ]); + return NestedControls; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = NestedControls; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => GenericControl, + getControlComponent: () => getControlComponent + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); + var _controls__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var getControlComponent = function getControlComponent(control) { + return _controls__WEBPACK_IMPORTED_MODULE_2__["default"][control.type] || null; + }; + var GenericControl = function(_Component) { + _inherits(GenericControl, _Component); + var _super = _createSuper(GenericControl); + function GenericControl() { + _classCallCheck(this, GenericControl); + return _super.apply(this, arguments); + } + _createClass(GenericControl, [ { + key: "render", + value: function render() { + var _this = this; + var _this$props = this.props, options = _this$props.options, settings = _this$props.settings, id = _this$props.id, _onChange = _this$props.onChange; + var Component = getControlComponent(options); + if (!Component) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + children: [ "Unimplemented option: ", options.type ] + }); + } + var value = undefined; + var controlSettings = settings; + if (typeof settings === "function") { + controlSettings = settings(); + } + if (controlSettings === _index__WEBPACK_IMPORTED_MODULE_1__.CZ_VALUES || controlSettings === undefined) { + value = wp.customize(id) ? wp.customize(id).get() : undefined; + } else { + value = (controlSettings || {})[id]; + } + return (0, _index__WEBPACK_IMPORTED_MODULE_1__.buildControl)({ + id, + options, + value, + settings, + Component, + onChange: function onChange(v, settingId) { + _onChange(v, settingId || id); + if (value === _index__WEBPACK_IMPORTED_MODULE_1__.CONTAINER_CONTROL || v === value) { + return; + } + _this.forceUpdate(); + } + }); + } + } ]); + return GenericControl; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _text__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74); + var _text_area__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76); + var _number__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77); + var _slider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(174); + var _toggle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(176); + var _section__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(177); + var _color_picker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(189); + var _border__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(266); + var _color_palettes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(267); + var _spacing__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(268); + var _select__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(270); + var _radio__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(271); + var _image_radio__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(273); + var _separator__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(274); + var _tabs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(275); + var _collapse__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(276); + var _layers__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(278); + var _placeholder__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(292); + var _editor__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(293); + var _info__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(298); + var _call_to_action__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(299); + var _tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(300); + var _image_uploader__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(302); + var _background__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(303); + var _box_shadow__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(305); + var _typography__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(306); + var _condition__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(311); + var _page_builder__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(312); + var _builder__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(321); + var _repeater__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(326); + var _icons__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(327); + var _multi_select__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(328); + var _filters__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(329); + var _file_uploader__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(330); + var controls = { + "lotta-text": _text__WEBPACK_IMPORTED_MODULE_0__["default"], + "lotta-text-area": _text_area__WEBPACK_IMPORTED_MODULE_1__["default"], + "lotta-number": _number__WEBPACK_IMPORTED_MODULE_2__["default"], + "lotta-slider": _slider__WEBPACK_IMPORTED_MODULE_3__["default"], + "lotta-toggle": _toggle__WEBPACK_IMPORTED_MODULE_4__["default"], + "lotta-border": _border__WEBPACK_IMPORTED_MODULE_7__["default"], + "lotta-color-picker": _color_picker__WEBPACK_IMPORTED_MODULE_6__["default"], + "lotta-color-palettes": _color_palettes__WEBPACK_IMPORTED_MODULE_8__["default"], + "lotta-spacing": _spacing__WEBPACK_IMPORTED_MODULE_9__["default"], + "lotta-select": _select__WEBPACK_IMPORTED_MODULE_10__["default"], + "lotta-radio": _radio__WEBPACK_IMPORTED_MODULE_11__["default"], + "lotta-image-radio": _image_radio__WEBPACK_IMPORTED_MODULE_12__["default"], + "lotta-separator": _separator__WEBPACK_IMPORTED_MODULE_13__["default"], + "lotta-section": _section__WEBPACK_IMPORTED_MODULE_5__["default"], + "lotta-tabs": _tabs__WEBPACK_IMPORTED_MODULE_14__["default"], + "lotta-collapse": _collapse__WEBPACK_IMPORTED_MODULE_15__["default"], + "lotta-layers": _layers__WEBPACK_IMPORTED_MODULE_16__["default"], + "lotta-placeholder": _placeholder__WEBPACK_IMPORTED_MODULE_17__["default"], + "lotta-editor": _editor__WEBPACK_IMPORTED_MODULE_18__["default"], + "lotta-info": _info__WEBPACK_IMPORTED_MODULE_19__["default"], + "lotta-cta": _call_to_action__WEBPACK_IMPORTED_MODULE_20__["default"], + "lotta-tags": _tags__WEBPACK_IMPORTED_MODULE_21__["default"], + "lotta-image-uploader": _image_uploader__WEBPACK_IMPORTED_MODULE_22__["default"], + "lotta-background": _background__WEBPACK_IMPORTED_MODULE_23__["default"], + "lotta-box-shadow": _box_shadow__WEBPACK_IMPORTED_MODULE_24__["default"], + "lotta-typography": _typography__WEBPACK_IMPORTED_MODULE_25__["default"], + "lotta-condition": _condition__WEBPACK_IMPORTED_MODULE_26__["default"], + "lotta-page-builder": _page_builder__WEBPACK_IMPORTED_MODULE_27__["default"], + "lotta-builder": _builder__WEBPACK_IMPORTED_MODULE_28__["default"], + "lotta-repeater": _repeater__WEBPACK_IMPORTED_MODULE_29__["default"], + "lotta-icons": _icons__WEBPACK_IMPORTED_MODULE_30__["default"], + "lotta-multi-select": _multi_select__WEBPACK_IMPORTED_MODULE_31__["default"], + "lotta-css-filters": _filters__WEBPACK_IMPORTED_MODULE_32__["default"], + "lotta-file-uploader": _file_uploader__WEBPACK_IMPORTED_MODULE_33__["default"] + }; + const __WEBPACK_DEFAULT_EXPORT__ = controls; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _throttler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Text = function(_Component) { + _inherits(Text, _Component); + var _super = _createSuper(Text); + function Text() { + var _this; + _classCallCheck(this, Text); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + value: _this.props.value + }); + return _this; + } + _createClass(Text, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, options = _this$props.options, _onChange = _this$props.onChange; + var value = this.state.value; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", _objectSpread(_objectSpread({ + type: "text", + defaultValue: value + }, _objectSpread(_objectSpread({}, options.field_attr ? options.field_attr : {}), options.attr && options.attr.placeholder ? { + placeholder: options.attr.placeholder + } : {})), {}, { + onChange: function onChange(_ref) { + var value = _ref.target.value; + if (!_this2.throttler) { + _this2.throttler = new _throttler__WEBPACK_IMPORTED_MODULE_0__["default"](300, (function(changes) { + var _changes = _slicedToArray(changes[changes.length - 1], 1), newValue = _changes[0]; + _onChange(newValue); + })); + } + _this2.setState({ + value + }); + _this2.throttler.buffer(value); + } + }, options.select_on_focus ? { + onFocus: function onFocus(_ref2) { + var target = _ref2.target; + return target.select(); + } + } : {})); + } + } ]); + return Text; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Text; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Throttler = function() { + function Throttler(timeout, callback) { + _classCallCheck(this, Throttler); + _defineProperty(this, "bufferedData", []); + _defineProperty(this, "timer", null); + _defineProperty(this, "callback", (function() { + return null; + })); + this.timeout = timeout; + this.callback = callback; + } + _createClass(Throttler, [ { + key: "buffer", + value: function buffer() { + var _this = this; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + this.bufferedData.push(args); + if (!this.timer) { + this.timer = setTimeout((function() { + var data = _this.bufferedData; + _this.bufferedData = []; + _this.timer = null; + if ("function" === typeof _this.callback) { + _this.callback(data); + } + }), this.timeout); + } + } + } ]); + return Throttler; + }(); + const __WEBPACK_DEFAULT_EXPORT__ = Throttler; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _throttler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var TextArea = function(_Component) { + _inherits(TextArea, _Component); + var _super = _createSuper(TextArea); + function TextArea() { + var _this; + _classCallCheck(this, TextArea); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + value: _this.props.value + }); + return _this; + } + _createClass(TextArea, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, options = _this$props.options, _onChange = _this$props.onChange; + var value = this.state.value; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("textarea", _objectSpread(_objectSpread({ + defaultValue: value + }, _objectSpread(_objectSpread({}, options.field_attr ? options.field_attr : {}), options.attr && options.attr.placeholder ? { + placeholder: options.attr.placeholder + } : {})), {}, { + onChange: function onChange(_ref) { + var value = _ref.target.value; + if (!_this2.throttler) { + _this2.throttler = new _throttler__WEBPACK_IMPORTED_MODULE_1__["default"](300, (function(changes) { + var _changes = _slicedToArray(changes[changes.length - 1], 1), newValue = _changes[0]; + _onChange(newValue); + })); + } + _this2.setState({ + value + }); + _this2.throttler.buffer(value); + } + }, options.select_on_focus ? { + onFocus: function onFocus(_ref2) { + var target = _ref2.target; + return target.select(); + } + } : {})); + } + } ]); + return TextArea; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = TextArea; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); + var _components_units_list__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78); + var _slider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(174); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Number = function(_Slider) { + _inherits(Number, _Slider); + var _super = _createSuper(Number); + function Number() { + _classCallCheck(this, Number); + return _super.apply(this, arguments); + } + _createClass(Number, [ { + key: "render", + value: function render() { + var _clsx, _this = this; + var options = this.props.options; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_0__["default"])("lotta-number", (_clsx = {}, + _defineProperty(_clsx, "lotta-value-changer", true), _defineProperty(_clsx, "no-unit-list", !this.hasUnitsList()), + _defineProperty(_clsx, "no-unit", !(this.hasUnitsList() || this.props.options.defaultUnit !== false)), + _defineProperty(_clsx, "active", this.state.isUnitsListOpen), _clsx)), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", _objectSpread(_objectSpread({ + type: "number" + }, this.props.options.ref ? { + ref: this.props.options.ref + } : {}), {}, { + step: 1 / Math.pow(10, this.getAllowedDecimalPlaces()), + value: this.getNumericValue(), + onBlur: function onBlur() { + return _this.handleBlur(); + }, + onChange: function onChange(_ref) { + var value = _ref.target.value; + return _this.handleChange(value); + } + }, options.select_on_focus ? { + onFocus: function onFocus(_ref2) { + var target = _ref2.target; + target.select(); + } + } : {})), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "lotta-value-divider" + }), !this.hasUnitsList() && this.props.options.defaultUnit !== false && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "lotta-current-value", + children: this.withDefault(this.getCurrentUnit(), this.props.options.defaultUnit || "px") + }), this.hasUnitsList() && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_components_units_list__WEBPACK_IMPORTED_MODULE_1__["default"], { + units: this.props.options.units, + onChange: this.props.onChange, + isOpen: this.state.isUnitsListOpen, + toggleOpen: function toggleOpen() { + return _this.setState({ + isUnitsListOpen: !_this.state.isUnitsListOpen + }); + }, + currentUnit: this.getCurrentUnit(), + getNumericValue: this.getNumericValue, + getAllowedDecimalPlaces: this.getAllowedDecimalPlaces + }) ] + }); + } + } ]); + return Number; + }(_slider__WEBPACK_IMPORTED_MODULE_2__["default"]); + _defineProperty(Number, "renderingConfig", { + design: "inline" + }); + const __WEBPACK_DEFAULT_EXPORT__ = Number; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); + var react_outside_click_handler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + var UnitsList = function UnitsList(props) { + var units = props.units, onChange = props.onChange, onPickUnit = props.onPickUnit, isOpen = props.isOpen, toggleOpen = props.toggleOpen, currentUnit = props.currentUnit, getNumericValue = props.getNumericValue, getAllowedDecimalPlaces = props.getAllowedDecimalPlaces; + var pickUnit = onPickUnit || function(unit) { + var numericValue = getNumericValue(); + onChange("".concat((0, _utils__WEBPACK_IMPORTED_MODULE_0__.round)((0, _utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(units.find((function(_ref) { + var u = _ref.unit; + return u === unit; + })).min, units.find((function(_ref2) { + var u = _ref2.unit; + return u === unit; + })).max, numericValue === "" ? -Infinity : numericValue), getAllowedDecimalPlaces(unit))).concat(unit)); + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + onClick: function onClick() { + return toggleOpen(); + }, + className: "lotta-current-value", + children: currentUnit || "―" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(react_outside_click_handler__WEBPACK_IMPORTED_MODULE_1__["default"], { + onOutsideClick: function onOutsideClick() { + if (!isOpen) { + return; + } + toggleOpen(); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("ul", { + className: "lotta-units-list", + children: units.filter((function(_ref3) { + var unit = _ref3.unit; + return unit !== currentUnit; + })).reduce((function(current, el, index) { + return [].concat(_toConsumableArray(current.slice(0, index % 2 === 0 ? undefined : -1)), _toConsumableArray(index % 2 === 0 ? [ [ el ] ] : [ [ current[current.length - 1][0], el ] ])); + }), []).map((function(group) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("li", { + children: group.map((function(_ref4) { + var unit = _ref4.unit; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + onClick: function onClick() { + pickUnit(unit); + toggleOpen(); + }, + children: unit || "―" + }, unit); + })) + }, group[0].unit); + })) + }) + }) ] + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = UnitsList; + }, (module, __unused_webpack_exports, __webpack_require__) => { + module.exports = __webpack_require__(80); + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _react = __webpack_require__(12); + var _react2 = _interopRequireDefault(_react); + var _propTypes = __webpack_require__(81); + var _propTypes2 = _interopRequireDefault(_propTypes); + var _airbnbPropTypes = __webpack_require__(88); + var _consolidatedEvents = __webpack_require__(165); + var _object = __webpack_require__(166); + var _object2 = _interopRequireDefault(_object); + var _document = __webpack_require__(170); + var _document2 = _interopRequireDefault(_document); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + var DISPLAY = { + BLOCK: "block", + FLEX: "flex", + INLINE: "inline", + INLINE_BLOCK: "inline-block", + CONTENTS: "contents" + }; + var propTypes = (0, _airbnbPropTypes.forbidExtraProps)({ + children: _propTypes2["default"].node.isRequired, + onOutsideClick: _propTypes2["default"].func.isRequired, + disabled: _propTypes2["default"].bool, + useCapture: _propTypes2["default"].bool, + display: _propTypes2["default"].oneOf((0, _object2["default"])(DISPLAY)) + }); + var defaultProps = { + disabled: false, + useCapture: true, + display: DISPLAY.BLOCK + }; + var OutsideClickHandler = function(_React$Component) { + _inherits(OutsideClickHandler, _React$Component); + function OutsideClickHandler() { + var _ref; + _classCallCheck(this, OutsideClickHandler); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [ this ].concat(args))); + _this.onMouseDown = _this.onMouseDown.bind(_this); + _this.onMouseUp = _this.onMouseUp.bind(_this); + _this.setChildNodeRef = _this.setChildNodeRef.bind(_this); + return _this; + } + _createClass(OutsideClickHandler, [ { + key: "componentDidMount", + value: function() { + function componentDidMount() { + var _props = this.props, disabled = _props.disabled, useCapture = _props.useCapture; + if (!disabled) this.addMouseDownEventListener(useCapture); + } + return componentDidMount; + }() + }, { + key: "componentDidUpdate", + value: function() { + function componentDidUpdate(_ref2) { + var prevDisabled = _ref2.disabled; + var _props2 = this.props, disabled = _props2.disabled, useCapture = _props2.useCapture; + if (prevDisabled !== disabled) { + if (disabled) { + this.removeEventListeners(); + } else { + this.addMouseDownEventListener(useCapture); + } + } + } + return componentDidUpdate; + }() + }, { + key: "componentWillUnmount", + value: function() { + function componentWillUnmount() { + this.removeEventListeners(); + } + return componentWillUnmount; + }() + }, { + key: "onMouseDown", + value: function() { + function onMouseDown(e) { + var useCapture = this.props.useCapture; + var isDescendantOfRoot = this.childNode && (0, _document2["default"])(this.childNode, e.target); + if (!isDescendantOfRoot) { + if (this.removeMouseUp) { + this.removeMouseUp(); + this.removeMouseUp = null; + } + this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, "mouseup", this.onMouseUp, { + capture: useCapture + }); + } + } + return onMouseDown; + }() + }, { + key: "onMouseUp", + value: function() { + function onMouseUp(e) { + var onOutsideClick = this.props.onOutsideClick; + var isDescendantOfRoot = this.childNode && (0, _document2["default"])(this.childNode, e.target); + if (this.removeMouseUp) { + this.removeMouseUp(); + this.removeMouseUp = null; + } + if (!isDescendantOfRoot) { + onOutsideClick(e); + } + } + return onMouseUp; + }() + }, { + key: "setChildNodeRef", + value: function() { + function setChildNodeRef(ref) { + this.childNode = ref; + } + return setChildNodeRef; + }() + }, { + key: "addMouseDownEventListener", + value: function() { + function addMouseDownEventListener(useCapture) { + this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, "mousedown", this.onMouseDown, { + capture: useCapture + }); + } + return addMouseDownEventListener; + }() + }, { + key: "removeEventListeners", + value: function() { + function removeEventListeners() { + if (this.removeMouseDown) this.removeMouseDown(); + if (this.removeMouseUp) this.removeMouseUp(); + } + return removeEventListeners; + }() + }, { + key: "render", + value: function() { + function render() { + var _props3 = this.props, children = _props3.children, display = _props3.display; + return _react2["default"].createElement("div", { + ref: this.setChildNodeRef, + style: display !== DISPLAY.BLOCK && (0, _object2["default"])(DISPLAY).includes(display) ? { + display + } : undefined + }, children); + } + return render; + }() + } ]); + return OutsideClickHandler; + }(_react2["default"].Component); + exports["default"] = OutsideClickHandler; + OutsideClickHandler.propTypes = propTypes; + OutsideClickHandler.defaultProps = defaultProps; + }, (module, __unused_webpack_exports, __webpack_require__) => { + if (true) { + var ReactIs = __webpack_require__(82); + var throwOnDirectAccess = true; + module.exports = __webpack_require__(84)(ReactIs.isElement, throwOnDirectAccess); + } else {} + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + if (false) {} else { + module.exports = __webpack_require__(83); + } + }, (__unused_webpack_module, exports) => { + "use strict"; + /** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ if (true) { + (function() { + "use strict"; + var hasSymbol = typeof Symbol === "function" && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110; + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for("react.block") : 60121; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119; + function isValidElementType(type) { + return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + } + function typeOf(object) { + if (typeof object === "object" && object !== null) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + return undefined; + } + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, " + "and will be removed in React 17+. Update your code to use " + "ReactIs.isConcurrentMode() instead. It has the exact same API."); + } + } + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + exports.isValidElementType = isValidElementType; + exports.typeOf = typeOf; + })(); + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var ReactIs = __webpack_require__(82); + var assign = __webpack_require__(13); + var ReactPropTypesSecret = __webpack_require__(85); + var has = __webpack_require__(86); + var checkPropTypes = __webpack_require__(87); + var printWarning = function() {}; + if (true) { + printWarning = function(text) { + var message = "Warning: " + text; + if (typeof console !== "undefined") { + console.error(message); + } + try { + throw new Error(message); + } catch (x) {} + }; + } + function emptyFunctionThatReturnsNull() { + return null; + } + module.exports = function(isValidElement, throwOnDirectAccess) { + var ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = "@@iterator"; + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === "function") { + return iteratorFn; + } + } + var ANONYMOUS = "<>"; + var ReactPropTypes = { + array: createPrimitiveTypeChecker("array"), + bigint: createPrimitiveTypeChecker("bigint"), + bool: createPrimitiveTypeChecker("boolean"), + func: createPrimitiveTypeChecker("function"), + number: createPrimitiveTypeChecker("number"), + object: createPrimitiveTypeChecker("object"), + string: createPrimitiveTypeChecker("string"), + symbol: createPrimitiveTypeChecker("symbol"), + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker + }; + function is(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + function PropTypeError(message, data) { + this.message = message; + this.data = data && typeof data === "object" ? data : {}; + this.stack = ""; + } + PropTypeError.prototype = Error.prototype; + function createChainableTypeChecker(validate) { + if (true) { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + var err = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. " + "Use `PropTypes.checkPropTypes()` to call them. " + "Read more at http://fb.me/use-check-prop-types"); + err.name = "Invariant Violation"; + throw err; + } else if (true && typeof console !== "undefined") { + var cacheKey = componentName + ":" + propName; + if (!manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3) { + printWarning("You are manually calling a React.PropTypes validation " + "function for the `" + propFullName + "` prop on `" + componentName + "`. This is deprecated " + "and will throw in the standalone `prop-types` package. " + "You may be seeing this warning due to a third-party PropTypes " + "library. See https://fb.me/react-warning-dont-call-proptypes " + "for details."); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required " + ("in `" + componentName + "`, but its value is `null`.")); + } + return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in " + ("`" + componentName + "`, but its value is `undefined`.")); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + return chainedCheckType; + } + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + var preciseType = getPreciseType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + preciseType + "` supplied to `" + componentName + "`, expected ") + ("`" + expectedType + "`."), { + expectedType + }); + } + return null; + } + return createChainableTypeChecker(validate); + } + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== "function") { + return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside arrayOf."); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an array.")); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + "[" + i + "]", ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement.")); + } + return null; + } + return createChainableTypeChecker(validate); + } + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement type.")); + } + return null; + } + return createChainableTypeChecker(validate); + } + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + actualClassName + "` supplied to `" + componentName + "`, expected ") + ("instance of `" + expectedClassName + "`.")); + } + return null; + } + return createChainableTypeChecker(validate); + } + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (true) { + if (arguments.length > 1) { + printWarning("Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. " + "A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."); + } else { + printWarning("Invalid argument supplied to oneOf, expected an array."); + } + } + return emptyFunctionThatReturnsNull; + } + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + var valuesString = JSON.stringify(expectedValues, (function replacer(key, value) { + var type = getPreciseType(value); + if (type === "symbol") { + return String(value); + } + return value; + })); + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of value `" + String(propValue) + "` " + ("supplied to `" + componentName + "`, expected one of " + valuesString + ".")); + } + return createChainableTypeChecker(validate); + } + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== "function") { + return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside objectOf."); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object.")); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + true ? printWarning("Invalid argument supplied to oneOfType, expected an instance of array.") : 0; + return emptyFunctionThatReturnsNull; + } + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== "function") { + printWarning("Invalid argument supplied to oneOfType. Expected an array of check functions, but " + "received " + getPostfixForTypeWarning(checker) + " at index " + i + "."); + return emptyFunctionThatReturnsNull; + } + } + function validate(props, propName, componentName, location, propFullName) { + var expectedTypes = []; + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret); + if (checkerResult == null) { + return null; + } + if (checkerResult.data && has(checkerResult.data, "expectedType")) { + expectedTypes.push(checkerResult.data.expectedType); + } + } + var expectedTypesMessage = expectedTypes.length > 0 ? ", expected one of type [" + expectedTypes.join(", ") + "]" : ""; + return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`" + expectedTypesMessage + ".")); + } + return createChainableTypeChecker(validate); + } + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`, expected a ReactNode.")); + } + return null; + } + return createChainableTypeChecker(validate); + } + function invalidValidatorError(componentName, location, propFullName, key, type) { + return new PropTypeError((componentName || "React class") + ": " + location + " type `" + propFullName + "." + key + "` is invalid; " + "it must be a function, usually from the `prop-types` package, but received `" + type + "`."); + } + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`.")); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (typeof checker !== "function") { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== "object") { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`.")); + } + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (has(shapeTypes, key) && typeof checker !== "function") { + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker)); + } + if (!checker) { + return new PropTypeError("Invalid " + location + " `" + propFullName + "` key `" + key + "` supplied to `" + componentName + "`." + "\nBad object: " + JSON.stringify(props[propName], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(shapeTypes), null, " ")); + } + var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + function isNode(propValue) { + switch (typeof propValue) { + case "number": + case "string": + case "undefined": + return true; + + case "boolean": + return !propValue; + + case "object": + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + return true; + + default: + return false; + } + } + function isSymbol(propType, propValue) { + if (propType === "symbol") { + return true; + } + if (!propValue) { + return false; + } + if (propValue["@@toStringTag"] === "Symbol") { + return true; + } + if (typeof Symbol === "function" && propValue instanceof Symbol) { + return true; + } + return false; + } + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return "array"; + } + if (propValue instanceof RegExp) { + return "object"; + } + if (isSymbol(propType, propValue)) { + return "symbol"; + } + return propType; + } + function getPreciseType(propValue) { + if (typeof propValue === "undefined" || propValue === null) { + return "" + propValue; + } + var propType = getPropType(propValue); + if (propType === "object") { + if (propValue instanceof Date) { + return "date"; + } else if (propValue instanceof RegExp) { + return "regexp"; + } + } + return propType; + } + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case "array": + case "object": + return "an " + type; + + case "boolean": + case "date": + case "regexp": + return "a " + type; + + default: + return type; + } + } + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + return ReactPropTypes; + }; + }, module => { + "use strict"; + var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"; + module.exports = ReactPropTypesSecret; + }, module => { + module.exports = Function.call.bind(Object.prototype.hasOwnProperty); + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var printWarning = function() {}; + if (true) { + var ReactPropTypesSecret = __webpack_require__(85); + var loggedTypeFailures = {}; + var has = __webpack_require__(86); + printWarning = function(text) { + var message = "Warning: " + text; + if (typeof console !== "undefined") { + console.error(message); + } + try { + throw new Error(message); + } catch (x) {} + }; + } + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (true) { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + try { + if (typeof typeSpecs[typeSpecName] !== "function") { + var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; " + "it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`." + "This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`."); + err.name = "Invariant Violation"; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning((componentName || "React class") + ": type specification of " + location + " `" + typeSpecName + "` is invalid; the type checker " + "function must return `null` or an `Error` but returned a " + typeof error + ". " + "You may have forgotten to pass an argument to the type checker " + "creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and " + "shape all require an argument)."); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + loggedTypeFailures[error.message] = true; + var stack = getStack ? getStack() : ""; + printWarning("Failed " + location + " type: " + error.message + (stack != null ? stack : "")); + } + } + } + } + } + checkPropTypes.resetWarningCache = function() { + if (true) { + loggedTypeFailures = {}; + } + }; + module.exports = checkPropTypes; + }, (module, __unused_webpack_exports, __webpack_require__) => { + module.exports = false ? 0 : __webpack_require__(89); + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var _propTypesExact = _interopRequireDefault(__webpack_require__(90)); + var _and = _interopRequireDefault(__webpack_require__(92)); + var _between = _interopRequireDefault(__webpack_require__(94)); + var _booleanSome = _interopRequireDefault(__webpack_require__(105)); + var _childrenHavePropXorChildren = _interopRequireDefault(__webpack_require__(106)); + var _childrenOf = _interopRequireDefault(__webpack_require__(107)); + var _childrenOfType = _interopRequireDefault(__webpack_require__(109)); + var _childrenSequenceOf = _interopRequireDefault(__webpack_require__(136)); + var _componentWithName = _interopRequireDefault(__webpack_require__(145)); + var _disallowedIf = _interopRequireDefault(__webpack_require__(146)); + var _elementType = _interopRequireDefault(__webpack_require__(147)); + var _empty = _interopRequireDefault(__webpack_require__(148)); + var _explicitNull = _interopRequireDefault(__webpack_require__(150)); + var _integer = _interopRequireDefault(__webpack_require__(139)); + var _keysOf = _interopRequireDefault(__webpack_require__(151)); + var _mutuallyExclusiveProps = _interopRequireDefault(__webpack_require__(152)); + var _mutuallyExclusiveTrueProps = _interopRequireDefault(__webpack_require__(153)); + var _nChildren = _interopRequireDefault(__webpack_require__(154)); + var _nonNegativeInteger = _interopRequireDefault(__webpack_require__(138)); + var _nonNegativeNumber = _interopRequireDefault(__webpack_require__(141)); + var _numericString = _interopRequireDefault(__webpack_require__(155)); + var _object = _interopRequireDefault(__webpack_require__(142)); + var _or = _interopRequireDefault(__webpack_require__(149)); + var _predicate = _interopRequireDefault(__webpack_require__(156)); + var _range = _interopRequireDefault(__webpack_require__(157)); + var _ref = _interopRequireDefault(__webpack_require__(158)); + var _requiredBy = _interopRequireDefault(__webpack_require__(159)); + var _restrictedProp = _interopRequireDefault(__webpack_require__(160)); + var _sequenceOf = _interopRequireDefault(__webpack_require__(137)); + var _shape = _interopRequireDefault(__webpack_require__(101)); + var _stringEndsWith = _interopRequireDefault(__webpack_require__(161)); + var _stringStartsWith = _interopRequireDefault(__webpack_require__(162)); + var _uniqueArray = _interopRequireDefault(__webpack_require__(163)); + var _uniqueArrayOf = _interopRequireDefault(__webpack_require__(164)); + var _valuesOf = _interopRequireDefault(__webpack_require__(103)); + var _withShape = _interopRequireDefault(__webpack_require__(144)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + module.exports = { + and: _and["default"], + between: _between["default"], + booleanSome: _booleanSome["default"], + childrenHavePropXorChildren: _childrenHavePropXorChildren["default"], + childrenOf: _childrenOf["default"], + childrenOfType: _childrenOfType["default"], + childrenSequenceOf: _childrenSequenceOf["default"], + componentWithName: _componentWithName["default"], + disallowedIf: _disallowedIf["default"], + elementType: _elementType["default"], + empty: _empty["default"], + explicitNull: _explicitNull["default"], + forbidExtraProps: _propTypesExact["default"], + integer: _integer["default"], + keysOf: _keysOf["default"], + mutuallyExclusiveProps: _mutuallyExclusiveProps["default"], + mutuallyExclusiveTrueProps: _mutuallyExclusiveTrueProps["default"], + nChildren: _nChildren["default"], + nonNegativeInteger: _nonNegativeInteger["default"], + nonNegativeNumber: _nonNegativeNumber["default"], + numericString: _numericString["default"], + object: _object["default"], + or: _or["default"], + predicate: _predicate["default"], + range: _range["default"], + ref: _ref["default"], + requiredBy: _requiredBy["default"], + restrictedProp: _restrictedProp["default"], + sequenceOf: _sequenceOf["default"], + shape: _shape["default"], + stringEndsWith: _stringEndsWith["default"], + stringStartsWith: _stringStartsWith["default"], + uniqueArray: _uniqueArray["default"], + uniqueArrayOf: _uniqueArrayOf["default"], + valuesOf: _valuesOf["default"], + withShape: _withShape["default"] + }; + }, (module, exports, __webpack_require__) => { + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = forbidExtraProps; + var _object = __webpack_require__(66); + var _object2 = _interopRequireDefault(_object); + var _has = __webpack_require__(26); + var _has2 = _interopRequireDefault(_has); + var _isPlainObject = __webpack_require__(91); + var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var zeroWidthSpace = "​"; + var specialProperty = "prop-types-exact: " + zeroWidthSpace; + var semaphore = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"](specialProperty) : specialProperty; + function brand(fn) { + return (0, _object2["default"])(fn, _defineProperty({}, specialProperty, semaphore)); + } + function isBranded(value) { + return value && value[specialProperty] === semaphore; + } + function forbidExtraProps(propTypes) { + if (!(0, _isPlainObject2["default"])(propTypes)) { + throw new TypeError("given propTypes must be an object"); + } + if ((0, _has2["default"])(propTypes, specialProperty) && !isBranded(propTypes[specialProperty])) { + throw new TypeError("Against all odds, you created a propType for a prop that uses both the zero-width space and our custom string - which, sadly, conflicts with `prop-types-exact`"); + } + return (0, _object2["default"])({}, propTypes, _defineProperty({}, specialProperty, brand(function() { + function forbidUnknownProps(props, _, componentName) { + var unknownProps = Object.keys(props).filter((function(prop) { + return !(0, _has2["default"])(propTypes, prop); + })); + if (unknownProps.length > 0) { + return new TypeError(String(componentName) + ": unknown props found: " + String(unknownProps.join(", "))); + } + return null; + } + return forbidUnknownProps; + }()))); + } + module.exports = exports["default"]; + }, (module, exports) => { + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + exports["default"] = isPlainObject; + function isPlainObject(x) { + return x && (typeof x === "undefined" ? "undefined" : _typeof(x)) === "object" && !Array.isArray(x); + } + module.exports = exports["default"]; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = andValidator; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function andValidator(validators) { + var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "and"; + if (!Array.isArray(validators)) { + throw new TypeError("and: 2 or more validators are required"); + } + if (validators.length <= 1) { + throw new RangeError("and: 2 or more validators are required"); + } + var validator = function and() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + var firstError = null; + validators.some((function(validatorFn) { + firstError = validatorFn.apply(void 0, args); + return firstError != null; + })); + return firstError == null ? null : firstError; + }; + validator.isRequired = function andIsRequired() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + var firstError = null; + validators.some((function(validatorFn) { + firstError = validatorFn.isRequired.apply(validatorFn, args); + return firstError != null; + })); + return firstError == null ? null : firstError; + }; + return (0, _wrapValidator["default"])(validator, name, validators); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = wrapValidator; + var _object = _interopRequireDefault(__webpack_require__(66)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function wrapValidator(validator, typeName) { + var typeChecker = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + return (0, _object["default"])(validator.bind(), { + typeName, + typeChecker, + isRequired: (0, _object["default"])(validator.isRequired.bind(), { + typeName, + typeChecker, + typeRequired: true + }) + }); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = betweenValidator; + var _object = _interopRequireDefault(__webpack_require__(95)); + var _shape = _interopRequireDefault(__webpack_require__(101)); + var _valuesOf = _interopRequireDefault(__webpack_require__(103)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function number(props, propName, componentName) { + var value = props[propName]; + if (typeof value === "number" && !isNaN(value)) { + return null; + } + return new TypeError("".concat(componentName, ": ").concat(propName, " must be a non-NaN number.")); + } + function numberOrPropsFunc(props, propName) { + var value = props[propName]; + if (typeof value === "function") { + return null; + } + if (typeof value === "number" && !isNaN(value)) { + return null; + } + return new TypeError("".concat(propName, ": a function, or a non-NaN number is required")); + } + function lowerCompare(value, _ref) { + var gt = _ref.gt, gte = _ref.gte; + if (typeof gt === "number") { + return value > gt; + } + if (typeof gte === "number") { + return value >= gte; + } + return true; + } + function upperCompare(value, _ref2) { + var lt = _ref2.lt, lte = _ref2.lte; + if (typeof lt === "number") { + return value < lt; + } + if (typeof lte === "number") { + return value <= lte; + } + return true; + } + function greaterThanError(_ref3) { + var gt = _ref3.gt, gte = _ref3.gte; + if (typeof gt === "number") { + return "greater than ".concat(gt); + } + if (typeof gte === "number") { + return "greater than or equal to ".concat(gte); + } + return ""; + } + function lessThanError(_ref4) { + var lt = _ref4.lt, lte = _ref4.lte; + if (typeof lt === "number") { + return "less than ".concat(lt); + } + if (typeof lte === "number") { + return "less than or equal to ".concat(lte); + } + return ""; + } + function errorMessage(componentName, propName, opts) { + var errors = [ greaterThanError(opts), lessThanError(opts) ].filter(Boolean).join(" and "); + return "".concat(componentName, ": ").concat(propName, " must be ").concat(errors); + } + function propsThunkify(opts) { + return (0, _object["default"])(opts).reduce((function(acc, _ref5) { + var _ref6 = _slicedToArray(_ref5, 2), key = _ref6[0], value = _ref6[1]; + var numberThunk = typeof value === "number" ? function() { + return value; + } : value; + return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, numberThunk)); + }), {}); + } + function invokeWithProps(optsThunks, props) { + return (0, _object["default"])(optsThunks).reduce((function(acc, _ref7) { + var _ref8 = _slicedToArray(_ref7, 2), key = _ref8[0], thunk = _ref8[1]; + var value = thunk(props); + return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value)); + }), {}); + } + var argValidators = [ (0, _shape["default"])({ + lt: numberOrPropsFunc, + gt: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + lte: numberOrPropsFunc, + gt: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + lt: numberOrPropsFunc, + gte: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + lte: numberOrPropsFunc, + gte: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + lt: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + lte: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + gt: numberOrPropsFunc + }).isRequired, (0, _shape["default"])({ + gte: numberOrPropsFunc + }).isRequired ]; + function argValidator(props, propName) { + return argValidators.every((function(validator) { + return !!validator(props, propName); + })); + } + var thunkValueValidator = (0, _valuesOf["default"])(number).isRequired; + function betweenValidator(options) { + var argError = argValidator({ + options + }, "options"); + if (argError) { + throw new TypeError("between: only one of the pairs of `lt`/`lte`, and `gt`/`gte`, may be supplied, and at least one pair must be provided."); + } + var optsThunks = propsThunkify(options); + var validator = function between(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + if (typeof propValue !== "number") { + return new RangeError("".concat(componentName, ": ").concat(propName, ' must be a number, got "').concat(_typeof(propValue), '"')); + } + var opts = invokeWithProps(optsThunks, props); + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var thunkValuesError = thunkValueValidator.apply(void 0, [ _defineProperty({}, propName, opts), propName, componentName ].concat(rest)); + if (thunkValuesError) { + return thunkValuesError; + } + if (!lowerCompare(propValue, opts) || !upperCompare(propValue, opts)) { + return new RangeError(errorMessage(componentName, propName, opts)); + } + return null; + }; + validator.isRequired = function betweenRequired(props, propName, componentName) { + var propValue = props[propName]; + if (typeof propValue !== "number") { + return new RangeError("".concat(componentName, ": ").concat(propName, ' must be a number, got "').concat(_typeof(propValue), '"')); + } + var opts = invokeWithProps(optsThunks, props); + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + var thunkValuesError = thunkValueValidator.apply(void 0, [ _defineProperty({}, propName, opts), propName, componentName ].concat(rest)); + if (thunkValuesError) { + return thunkValuesError; + } + if (!lowerCompare(propValue, opts) || !upperCompare(propValue, opts)) { + return new RangeError(errorMessage(componentName, propName, opts)); + } + return null; + }; + return (0, _wrapValidator["default"])(validator, "between", options); + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(96); + var getPolyfill = __webpack_require__(99); + var shim = __webpack_require__(100); + var polyfill = callBind(getPolyfill(), Object); + define(polyfill, { + getPolyfill, + implementation, + shim + }); + module.exports = polyfill; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var RequireObjectCoercible = __webpack_require__(97); + var callBound = __webpack_require__(21); + var $isEnumerable = callBound("Object.prototype.propertyIsEnumerable"); + var $push = callBound("Array.prototype.push"); + module.exports = function entries(O) { + var obj = RequireObjectCoercible(O); + var entrys = []; + for (var key in obj) { + if ($isEnumerable(obj, key)) { + $push(entrys, [ key, obj[key] ]); + } + } + return entrys; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + module.exports = __webpack_require__(98); + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $TypeError = GetIntrinsic("%TypeError%"); + module.exports = function CheckObjectCoercible(value, optMessage) { + if (value == null) { + throw new $TypeError(optMessage || "Cannot call method on " + value); + } + return value; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(96); + module.exports = function getPolyfill() { + return typeof Object.entries === "function" ? Object.entries : implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var getPolyfill = __webpack_require__(99); + var define = __webpack_require__(29); + module.exports = function shimEntries() { + var polyfill = getPolyfill(); + define(Object, { + entries: polyfill + }, { + entries: function testEntries() { + return Object.entries !== polyfill; + } + }); + return polyfill; + }; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = shapeValidator; + var _isPlainObject = _interopRequireDefault(__webpack_require__(102)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function shapeValidator(shapeTypes) { + if (!(0, _isPlainObject["default"])(shapeTypes)) { + throw new TypeError("shape must be a normal object"); + } + function shape(props, propName, componentName, location) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) { + rest[_key - 4] = arguments[_key]; + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (checker) { + var error = checker.apply(void 0, [ propValue, key, componentName, location ].concat(rest)); + if (error) { + return error; + } + } + } + return null; + } + shape.isRequired = function shapeRequired(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return new TypeError("".concat(componentName, ": ").concat(propName, " is required.")); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return shape.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(shape, "shape", shapeTypes); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _isPlainObject = _interopRequireDefault(__webpack_require__(91)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var _default = _isPlainObject["default"]; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = valuesOfValidator; + var _isPrimitive = _interopRequireDefault(__webpack_require__(104)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function valuesOfValidator(propType) { + if (typeof propType !== "function") { + throw new TypeError("objectOf: propType must be a function"); + } + var validator = function valuesOf(props, propName, componentName, location, propFullName) { + for (var _len = arguments.length, rest = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + rest[_key - 5] = arguments[_key]; + } + var propValue = props[propName]; + if (propValue == null || (0, _isPrimitive["default"])(propValue)) { + return null; + } + var firstError; + Object.keys(propValue).some((function(key) { + firstError = propType.apply(void 0, [ propValue, key, componentName, location, "".concat(propFullName, ".").concat(key) ].concat(rest)); + return firstError; + })); + return firstError || null; + }; + validator.isRequired = function valuesOfRequired(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return new TypeError("".concat(componentName, ": ").concat(propName, " is required.")); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return validator.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "valuesOf", propType); + } + }, (__unused_webpack_module, exports) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = isPrimitive; + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function isPrimitive(x) { + return !x || _typeof(x) !== "object" && typeof x !== "function"; + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = booleanSomeValidator; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function booleanSomeValidator() { + for (var _len = arguments.length, notAllPropsFalse = new Array(_len), _key = 0; _key < _len; _key++) { + notAllPropsFalse[_key] = arguments[_key]; + } + if (notAllPropsFalse.length < 1) { + throw new TypeError("at least one prop (one of which must be `true`) is required"); + } + if (!notAllPropsFalse.every((function(x) { + return typeof x === "string"; + }))) { + throw new TypeError("all booleanSome props must be strings"); + } + var propsList = notAllPropsFalse.join(", or "); + var validator = function booleanSome(props, propName, componentName) { + var countFalse = function countFalse(count, prop) { + return count + (props[prop] === false ? 1 : 0); + }; + var falsePropCount = notAllPropsFalse.reduce(countFalse, 0); + if (falsePropCount === notAllPropsFalse.length) { + return new Error("A ".concat(componentName, " must have at least one of these boolean props be `true`: ").concat(propsList)); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return _propTypes.bool.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + validator.isRequired = function booleanSomeRequired(props, propName, componentName) { + var countFalse = function countFalse(count, prop) { + return count + (props[prop] === false ? 1 : 0); + }; + var falsePropCount = notAllPropsFalse.reduce(countFalse, 0); + if (falsePropCount === notAllPropsFalse.length) { + return new Error("A ".concat(componentName, " must have at least one of these boolean props be `true`: ").concat(propsList)); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return _propTypes.bool.isRequired.apply(_propTypes.bool, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "booleanSome: ".concat(propsList), notAllPropsFalse); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = childrenHavePropXorChildren; + var _react = _interopRequireDefault(__webpack_require__(12)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function childrenHavePropXorChildren(prop) { + if (typeof prop !== "string" && _typeof(prop) !== "symbol") { + throw new TypeError("invalid prop: must be string or symbol"); + } + var validator = function childrenHavePropXorChildrenWithProp(_ref, _, componentName) { + var children = _ref.children; + var truthyChildrenCount = 0; + var propCount = 0; + var grandchildrenCount = 0; + _react["default"].Children.forEach(children, (function(child) { + if (!child) { + return; + } + truthyChildrenCount += 1; + if (child.props[prop]) { + propCount += 1; + } + if (_react["default"].Children.count(child.props.children)) { + grandchildrenCount += 1; + } + })); + if (propCount === truthyChildrenCount && grandchildrenCount === 0 || propCount === 0 && grandchildrenCount === truthyChildrenCount || propCount === 0 && grandchildrenCount === 0) { + return null; + } + return new TypeError("`".concat(componentName, "` requires children to all have prop “").concat(prop, "”, all have children, or all have neither.")); + }; + validator.isRequired = validator; + return (0, _wrapValidator["default"])(validator, "childrenHavePropXorChildrenWithProp:".concat(prop), prop); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = childrenOf; + var _renderableChildren = _interopRequireDefault(__webpack_require__(108)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function validateChildren(propType, children, props) { + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var error; + children.some((function(child) { + error = propType.apply(void 0, [ _objectSpread(_objectSpread({}, props), {}, { + children: child + }), "children" ].concat(rest)); + return error; + })); + return error || null; + } + function childrenOf(propType) { + function childrenOfPropType(props, propName, componentName) { + if (propName !== "children") { + return new TypeError("".concat(componentName, ' is using the childrenOf validator on non-children prop "').concat(propName, '"')); + } + var propValue = props[propName]; + if (propValue == null) { + return null; + } + var children = (0, _renderableChildren["default"])(propValue); + if (children.length === 0) { + return null; + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return validateChildren.apply(void 0, [ propType, children, props, componentName ].concat(rest)); + } + childrenOfPropType.isRequired = function(props, propName, componentName) { + if (propName !== "children") { + return new TypeError("".concat(componentName, ' is using the childrenOf validator on non-children prop "').concat(propName, '"')); + } + var children = (0, _renderableChildren["default"])(props[propName]); + if (children.length === 0) { + return new TypeError("`".concat(componentName, "` requires at least one node of type ").concat(propType.typeName || propType.name)); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return validateChildren.apply(void 0, [ propType, children, props, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(childrenOfPropType, "childrenOf", propType); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = renderableChildren; + var _react = _interopRequireDefault(__webpack_require__(12)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function renderableChildren(childrenProp) { + return _react["default"].Children.toArray(childrenProp).filter((function(child) { + return child === 0 || child; + })); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _arrayPrototype = _interopRequireDefault(__webpack_require__(110)); + var _getComponentName = _interopRequireDefault(__webpack_require__(131)); + var _renderableChildren = _interopRequireDefault(__webpack_require__(108)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function onlyTypes(types, children, componentName) { + if (!children.every((function(child) { + return child && (0, _arrayPrototype["default"])(types, (function(Type) { + return Type === "*" || child.type === Type; + })); + }))) { + var typeNames = types.map(_getComponentName["default"]).join(", or "); + return new TypeError("`".concat(componentName, "` only accepts children of type ").concat(typeNames)); + } + return null; + } + function isRequired(types, children, componentName) { + if (children.length === 0) { + var typeNames = types.map(_getComponentName["default"]).join(", or "); + return new TypeError("`".concat(componentName, "` requires at least one node of type ").concat(typeNames)); + } + return null; + } + function childrenOfType() { + for (var _len = arguments.length, types = new Array(_len), _key = 0; _key < _len; _key++) { + types[_key] = arguments[_key]; + } + if (types.length < 1) { + throw new TypeError("childrenOfType: at least 1 type is required"); + } + function validator(props, propName, componentName) { + return onlyTypes(types, (0, _renderableChildren["default"])(props[propName]), componentName); + } + validator.isRequired = function(props, propName, componentName) { + var children = (0, _renderableChildren["default"])(props[propName]); + return isRequired(types, children, componentName) || onlyTypes(types, children, componentName); + }; + return (0, _wrapValidator["default"])(validator, "childrenOfType", types); + } + var _default = childrenOfType; + exports["default"] = _default; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBound = __webpack_require__(21); + var RequireObjectCoercible = __webpack_require__(97); + var implementation = __webpack_require__(111); + var getPolyfill = __webpack_require__(128); + var shim = __webpack_require__(129); + var $slice = callBound("Array.prototype.slice"); + var polyfill = getPolyfill(); + var boundFindShim = function find(array, predicate) { + RequireObjectCoercible(array); + var args = $slice(arguments, 1); + return polyfill.apply(array, args); + }; + define(boundFindShim, { + getPolyfill, + implementation, + shim + }); + module.exports = boundFindShim; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var ToObject = __webpack_require__(112); + var ToLength = __webpack_require__(113); + var IsCallable = __webpack_require__(127); + module.exports = function find(predicate) { + var list = ToObject(this); + var length = ToLength(list.length); + if (!IsCallable(predicate)) { + throw new TypeError("Array#find: predicate must be a function"); + } + if (length === 0) { + return void 0; + } + var thisArg; + if (arguments.length > 0) { + thisArg = arguments[1]; + } + for (var i = 0, value; i < length; i++) { + value = list[i]; + if (predicate.apply(thisArg, [ value, i, list ])) { + return value; + } + } + return void 0; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $Object = GetIntrinsic("%Object%"); + var RequireObjectCoercible = __webpack_require__(97); + module.exports = function ToObject(value) { + RequireObjectCoercible(value); + return $Object(value); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var MAX_SAFE_INTEGER = __webpack_require__(114); + var ToIntegerOrInfinity = __webpack_require__(115); + module.exports = function ToLength(argument) { + var len = ToIntegerOrInfinity(argument); + if (len <= 0) { + return 0; + } + if (len > MAX_SAFE_INTEGER) { + return MAX_SAFE_INTEGER; + } + return len; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $Math = GetIntrinsic("%Math%"); + var $Number = GetIntrinsic("%Number%"); + module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var abs = __webpack_require__(116); + var floor = __webpack_require__(117); + var ToNumber = __webpack_require__(118); + var $isNaN = __webpack_require__(124); + var $isFinite = __webpack_require__(125); + var $sign = __webpack_require__(126); + module.exports = function ToIntegerOrInfinity(value) { + var number = ToNumber(value); + if ($isNaN(number) || number === 0) { + return 0; + } + if (!$isFinite(number)) { + return number; + } + return $sign(number) * floor(abs(number)); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $abs = GetIntrinsic("%Math.abs%"); + module.exports = function abs(x) { + return $abs(x); + }; + }, module => { + "use strict"; + var $floor = Math.floor; + module.exports = function floor(x) { + return $floor(x); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var GetIntrinsic = __webpack_require__(22); + var $TypeError = GetIntrinsic("%TypeError%"); + var $Number = GetIntrinsic("%Number%"); + var $RegExp = GetIntrinsic("%RegExp%"); + var $parseInteger = GetIntrinsic("%parseInt%"); + var callBound = __webpack_require__(21); + var regexTester = __webpack_require__(119); + var isPrimitive = __webpack_require__(120); + var $strSlice = callBound("String.prototype.slice"); + var isBinary = regexTester(/^0b[01]+$/i); + var isOctal = regexTester(/^0o[0-7]+$/i); + var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); + var nonWS = [ "…", "​", "￾" ].join(""); + var nonWSregex = new $RegExp("[" + nonWS + "]", "g"); + var hasNonWS = regexTester(nonWSregex); + var ws = [ "\t\n\v\f\r   ᠎    ", "          \u2028", "\u2029\ufeff" ].join(""); + var trimRegex = new RegExp("(^[" + ws + "]+)|([" + ws + "]+$)", "g"); + var $replace = callBound("String.prototype.replace"); + var $trim = function(value) { + return $replace(value, trimRegex, ""); + }; + var ToPrimitive = __webpack_require__(121); + module.exports = function ToNumber(argument) { + var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); + if (typeof value === "symbol") { + throw new $TypeError("Cannot convert a Symbol value to a number"); + } + if (typeof value === "bigint") { + throw new $TypeError("Conversion from 'BigInt' to 'number' is not allowed."); + } + if (typeof value === "string") { + if (isBinary(value)) { + return ToNumber($parseInteger($strSlice(value, 2), 2)); + } else if (isOctal(value)) { + return ToNumber($parseInteger($strSlice(value, 2), 8)); + } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { + return NaN; + } + var trimmed = $trim(value); + if (trimmed !== value) { + return ToNumber(trimmed); + } + } + return $Number(value); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var callBound = __webpack_require__(21); + var $exec = callBound("RegExp.prototype.exec"); + module.exports = function regexTester(regex) { + return function test(s) { + return $exec(regex, s) !== null; + }; + }; + }, module => { + "use strict"; + module.exports = function isPrimitive(value) { + return value === null || typeof value !== "function" && typeof value !== "object"; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var toPrimitive = __webpack_require__(122); + module.exports = function ToPrimitive(input) { + if (arguments.length > 1) { + return toPrimitive(input, arguments[1]); + } + return toPrimitive(input); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var hasSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "symbol"; + var isPrimitive = __webpack_require__(123); + var isCallable = __webpack_require__(62); + var isDate = __webpack_require__(41); + var isSymbol = __webpack_require__(46); + var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) { + if (typeof O === "undefined" || O === null) { + throw new TypeError("Cannot call method on " + O); + } + if (typeof hint !== "string" || hint !== "number" && hint !== "string") { + throw new TypeError('hint must be "string" or "number"'); + } + var methodNames = hint === "string" ? [ "toString", "valueOf" ] : [ "valueOf", "toString" ]; + var method, result, i; + for (i = 0; i < methodNames.length; ++i) { + method = O[methodNames[i]]; + if (isCallable(method)) { + result = method.call(O); + if (isPrimitive(result)) { + return result; + } + } + } + throw new TypeError("No default value"); + }; + var GetMethod = function GetMethod(O, P) { + var func = O[P]; + if (func !== null && typeof func !== "undefined") { + if (!isCallable(func)) { + throw new TypeError(func + " returned for property " + P + " of object " + O + " is not a function"); + } + return func; + } + return void 0; + }; + module.exports = function ToPrimitive(input) { + if (isPrimitive(input)) { + return input; + } + var hint = "default"; + if (arguments.length > 1) { + if (arguments[1] === String) { + hint = "string"; + } else if (arguments[1] === Number) { + hint = "number"; + } + } + var exoticToPrim; + if (hasSymbols) { + if (Symbol.toPrimitive) { + exoticToPrim = GetMethod(input, Symbol.toPrimitive); + } else if (isSymbol(input)) { + exoticToPrim = Symbol.prototype.valueOf; + } + } + if (typeof exoticToPrim !== "undefined") { + var result = exoticToPrim.call(input, hint); + if (isPrimitive(result)) { + return result; + } + throw new TypeError("unable to convert exotic object to primitive"); + } + if (hint === "default" && (isDate(input) || isSymbol(input))) { + hint = "string"; + } + return ordinaryToPrimitive(input, hint === "default" ? "number" : hint); + }; + }, module => { + "use strict"; + module.exports = function isPrimitive(value) { + return value === null || typeof value !== "function" && typeof value !== "object"; + }; + }, module => { + "use strict"; + module.exports = Number.isNaN || function isNaN(a) { + return a !== a; + }; + }, module => { + "use strict"; + var $isNaN = Number.isNaN || function(a) { + return a !== a; + }; + module.exports = Number.isFinite || function(x) { + return typeof x === "number" && !$isNaN(x) && x !== Infinity && x !== -Infinity; + }; + }, module => { + "use strict"; + module.exports = function sign(number) { + return number >= 0 ? 1 : -1; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + module.exports = __webpack_require__(62); + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + module.exports = function getPolyfill() { + var implemented = Array.prototype.find && [ , 1 ].find((function() { + return true; + })) !== 1; + return implemented ? Array.prototype.find : __webpack_require__(111); + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var shimUnscopables = __webpack_require__(130); + var getPolyfill = __webpack_require__(128); + module.exports = function shimArrayPrototypeFind() { + var polyfill = getPolyfill(); + define(Array.prototype, { + find: polyfill + }, { + find: function() { + return Array.prototype.find !== polyfill; + } + }); + shimUnscopables("find"); + return polyfill; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var has = __webpack_require__(26); + var hasUnscopables = typeof Symbol === "function" && typeof Symbol.unscopables === "symbol"; + var map = hasUnscopables && Array.prototype[Symbol.unscopables]; + var $TypeError = TypeError; + module.exports = function shimUnscopables(method) { + if (typeof method !== "string" || !method) { + throw new $TypeError("method must be a non-empty string"); + } + if (!has(Array.prototype, method)) { + throw new $TypeError("method must be on Array.prototype"); + } + if (hasUnscopables) { + map[method] = true; + } + }; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = getComponentName; + var _functionPrototype = _interopRequireDefault(__webpack_require__(132)); + var _reactIs = __webpack_require__(82); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function getComponentName(Component) { + if (typeof Component === "string") { + return Component; + } + if (typeof Component === "function") { + return Component.displayName || (0, _functionPrototype["default"])(Component); + } + if ((0, _reactIs.isForwardRef)({ + type: Component, + $$typeof: _reactIs.Element + })) { + return Component.displayName; + } + if ((0, _reactIs.isMemo)(Component)) { + return getComponentName(Component.type); + } + return null; + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(133); + var getPolyfill = __webpack_require__(134); + var shim = __webpack_require__(135); + var bound = callBind(implementation); + define(bound, { + getPolyfill, + implementation, + shim + }); + module.exports = bound; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var IsCallable = __webpack_require__(127); + var functionsHaveNames = __webpack_require__(37)(); + var callBound = __webpack_require__(21); + var $functionToString = callBound("Function.prototype.toString"); + var $stringMatch = callBound("String.prototype.match"); + var classRegex = /^class /; + var isClass = function isClassConstructor(fn) { + if (IsCallable(fn)) { + return false; + } + if (typeof fn !== "function") { + return false; + } + try { + var match = $stringMatch($functionToString(fn), classRegex); + return !!match; + } catch (e) {} + return false; + }; + var regex = /\s*function\s+([^(\s]*)\s*/; + var functionProto = Function.prototype; + module.exports = function getName() { + if (!isClass(this) && !IsCallable(this)) { + throw new TypeError("Function.prototype.name sham getter called on non-function"); + } + if (functionsHaveNames) { + return this.name; + } + if (this === functionProto) { + return ""; + } + var str = $functionToString(this); + var match = $stringMatch(str, regex); + var name = match && match[1]; + return name; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(133); + module.exports = function getPolyfill() { + return implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var supportsDescriptors = __webpack_require__(29).supportsDescriptors; + var functionsHaveNames = __webpack_require__(37)(); + var getPolyfill = __webpack_require__(134); + var defineProperty = Object.defineProperty; + var TypeErr = TypeError; + module.exports = function shimName() { + var polyfill = getPolyfill(); + if (functionsHaveNames) { + return polyfill; + } + if (!supportsDescriptors) { + throw new TypeErr("Shimming Function.prototype.name support requires ES5 property descriptor support."); + } + var functionProto = Function.prototype; + defineProperty(functionProto, "name", { + configurable: true, + enumerable: false, + get: function() { + var name = polyfill.call(this); + if (this !== functionProto) { + defineProperty(this, "name", { + configurable: true, + enumerable: false, + value: name, + writable: false + }); + } + return name; + } + }); + return polyfill; + }; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = childrenSequenceOfValidator; + var _sequenceOf = _interopRequireDefault(__webpack_require__(137)); + var _renderableChildren = _interopRequireDefault(__webpack_require__(108)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function childrenSequenceOfValidator() { + for (var _len = arguments.length, specifiers = new Array(_len), _key = 0; _key < _len; _key++) { + specifiers[_key] = arguments[_key]; + } + var seq = _sequenceOf["default"].apply(void 0, specifiers); + var validator = function childrenSequenceOf(props, propName, componentName) { + if (propName !== "children") { + return new TypeError("".concat(componentName, ' is using the childrenSequenceOf validator on non-children prop "').concat(propName, '"')); + } + var propValue = props[propName]; + var children = (0, _renderableChildren["default"])(propValue); + if (children.length === 0) { + return null; + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return seq.apply(void 0, [ _objectSpread(_objectSpread({}, props), {}, { + children + }), propName, componentName ].concat(rest)); + }; + validator.isRequired = function childrenSequenceOfRequired(props, propName, componentName) { + if (propName !== "children") { + return new TypeError("".concat(componentName, ' is using the childrenSequenceOf validator on non-children prop "').concat(propName, '"')); + } + var propValue = props[propName]; + var children = (0, _renderableChildren["default"])(propValue); + if (children.length === 0) { + return new TypeError("".concat(componentName, ": renderable children are required.")); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return seq.isRequired.apply(seq, [ _objectSpread(_objectSpread({}, props), {}, { + children + }), propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "childrenSequenceOf", specifiers); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = sequenceOfValidator; + var _propTypes = __webpack_require__(81); + var _and = _interopRequireDefault(__webpack_require__(92)); + var _between = _interopRequireDefault(__webpack_require__(94)); + var _nonNegativeInteger = _interopRequireDefault(__webpack_require__(138)); + var _object = _interopRequireDefault(__webpack_require__(142)); + var _withShape = _interopRequireDefault(__webpack_require__(144)); + var _typeOf = _interopRequireDefault(__webpack_require__(143)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var minValidator = _nonNegativeInteger["default"]; + var maxValidator = (0, _and["default"])([ _nonNegativeInteger["default"], (0, _between["default"])({ + gte: 1 + }) ]); + function validateRange(min, max) { + if (typeof max !== "number" || typeof min !== "number") { + return null; + } + if (min <= max) { + return null; + } + return new RangeError("min must be less than or equal to max"); + } + var specifierShape = { + validator: function validator(props, propName) { + var propValue = props[propName]; + if (typeof propValue !== "function") { + return new TypeError('"validator" must be a propType validator function'); + } + return null; + }, + min: function min(props, propName) { + return minValidator(props, propName) || validateRange(props.min, props.max); + }, + max: function max(props, propName) { + return maxValidator(props, propName) || validateRange(props.min, props.max); + } + }; + function getMinMax(_ref) { + var min = _ref.min, max = _ref.max; + var minimum; + var maximum; + if (typeof min !== "number" && typeof max !== "number") { + minimum = 1; + maximum = 1; + } else { + minimum = typeof min === "number" ? min : 1; + maximum = typeof max === "number" ? max : Infinity; + } + return { + minimum, + maximum + }; + } + function chunkByType(items) { + var chunk = []; + var lastType; + return items.reduce((function(chunks, item) { + var itemType = (0, _typeOf["default"])(item); + if (!lastType || itemType === lastType) { + chunk.push(item); + } else { + chunks.push(chunk); + chunk = [ item ]; + } + lastType = itemType; + return chunks; + }), []).concat(chunk.length > 0 ? [ chunk ] : []); + } + function validateChunks(specifiers, props, propName, componentName) { + var items = props[propName]; + var chunks = chunkByType(items); + for (var _len = arguments.length, rest = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) { + rest[_key - 4] = arguments[_key]; + } + for (var i = 0; i < specifiers.length; i += 1) { + var _specifiers$i = specifiers[i], validator = _specifiers$i.validator, min = _specifiers$i.min, max = _specifiers$i.max; + var _getMinMax = getMinMax({ + min, + max + }), minimum = _getMinMax.minimum, maximum = _getMinMax.maximum; + if (chunks.length === 0 && minimum === 0) { + continue; + } + var arrayOfValidator = (0, _propTypes.arrayOf)(validator).isRequired; + var chunk = chunks.shift(); + var chunkError = arrayOfValidator.apply(void 0, [ _objectSpread(_objectSpread({}, props), {}, _defineProperty({}, propName, chunk)), propName, componentName ].concat(rest)); + if (chunkError) { + if (minimum === 0) { + chunks.unshift(chunk); + continue; + } + return chunkError; + } + if (chunk.length < minimum) { + return new RangeError("".concat(componentName, ": specifier index ").concat(i, " requires a minimum of ").concat(min, " items, but only has ").concat(chunk.length, ".")); + } + if (chunk.length > maximum) { + return new RangeError("".concat(componentName, ": specifier index ").concat(i, " requires a maximum of ").concat(max, " items, but has ").concat(chunk.length, ".")); + } + } + if (chunks.length > 0) { + return new TypeError("".concat(componentName, ": after all ").concat(specifiers.length, " specifiers matched, ").concat(chunks.length, " types of items were remaining.")); + } + return null; + } + var specifierValidator = (0, _withShape["default"])((0, _object["default"])(), specifierShape).isRequired; + function sequenceOfValidator() { + for (var _len2 = arguments.length, specifiers = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + specifiers[_key2] = arguments[_key2]; + } + if (specifiers.length === 0) { + throw new RangeError("sequenceOf: at least one specifier is required"); + } + var errors = specifiers.map((function(specifier, i) { + return specifierValidator({ + specifier + }, "specifier", "sequenceOf specifier", "suequenceOf specifier, index ".concat(i), "specifier, index ".concat(i)); + })); + if (errors.some(Boolean)) { + throw new TypeError("\n sequenceOf: all specifiers must match the appropriate shape.\n\n Errors:\n ".concat(errors.map((function(e, i) { + return " - Argument index ".concat(i, ": ").concat(e.message); + })).join(",\n "), "\n ")); + } + var validator = function sequenceOf(props, propName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { + rest[_key3 - 2] = arguments[_key3]; + } + var error = _propTypes.array.apply(void 0, [ props, propName ].concat(rest)); + if (error) { + return error; + } + return validateChunks.apply(void 0, [ specifiers, props, propName ].concat(rest)); + }; + validator.isRequired = function sequenceOfRequired(props, propName, componentName) { + for (var _len4 = arguments.length, rest = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) { + rest[_key4 - 3] = arguments[_key4]; + } + var error = _propTypes.array.isRequired.apply(_propTypes.array, [ props, propName, componentName ].concat(rest)); + if (error) { + return error; + } + return validateChunks.apply(void 0, [ specifiers, props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "sequenceOf", specifiers); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _and = _interopRequireDefault(__webpack_require__(92)); + var _integer = _interopRequireDefault(__webpack_require__(139)); + var _nonNegativeNumber = _interopRequireDefault(__webpack_require__(141)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var _default = (0, _and["default"])([ (0, _integer["default"])(), (0, _nonNegativeNumber["default"])() ], "nonNegativeInteger"); + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _isInteger = _interopRequireDefault(__webpack_require__(140)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function requiredInteger(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null || !(0, _isInteger["default"])(propValue)) { + return new RangeError("".concat(propName, " in ").concat(componentName, " must be an integer")); + } + return null; + } + var validator = function integer(props, propName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + rest[_key - 2] = arguments[_key]; + } + return requiredInteger.apply(void 0, [ props, propName ].concat(rest)); + }; + validator.isRequired = requiredInteger; + var _default = function _default() { + return (0, _wrapValidator["default"])(validator, "integer"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var floor = Math.floor; + var finite = isFinite; + var _default = Number.isInteger || function(x) { + return typeof x === "number" && finite(x) && floor(x) === x; + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _objectIs = _interopRequireDefault(__webpack_require__(28)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function isNonNegative(x) { + return typeof x === "number" && isFinite(x) && x >= 0 && !(0, _objectIs["default"])(x, -0); + } + function nonNegativeNumber(props, propName, componentName) { + var value = props[propName]; + if (value == null || isNonNegative(value)) { + return null; + } + return new RangeError("".concat(propName, " in ").concat(componentName, " must be a non-negative number")); + } + function requiredNonNegativeNumber(props, propName, componentName) { + var value = props[propName]; + if (isNonNegative(value)) { + return null; + } + return new RangeError("".concat(propName, " in ").concat(componentName, " must be a non-negative number")); + } + nonNegativeNumber.isRequired = requiredNonNegativeNumber; + var _default = function _default() { + return (0, _wrapValidator["default"])(nonNegativeNumber, "nonNegativeNumber"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _isPlainObject = _interopRequireDefault(__webpack_require__(102)); + var _typeOf = _interopRequireDefault(__webpack_require__(143)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var ReactPropTypeLocationNames = { + prop: "prop", + context: "context", + childContext: "child context" + }; + function object(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + if ((0, _isPlainObject["default"])(propValue)) { + return null; + } + var locationName = ReactPropTypeLocationNames[location] || location; + return new TypeError("Invalid ".concat(locationName, " `").concat(propFullName, "` of type `").concat((0, + _typeOf["default"])(propValue), "` supplied to `").concat(componentName, "`, expected `object`.")); + } + object.isRequired = function objectRequired(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (propValue == null) { + var locationName = ReactPropTypeLocationNames[location] || location; + return new TypeError("The ".concat(locationName, " `").concat(propFullName, "` is marked as required in `").concat(componentName, "`, but its value is `").concat(propValue, "`.")); + } + for (var _len = arguments.length, rest = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + rest[_key - 5] = arguments[_key]; + } + return object.apply(void 0, [ props, propName, componentName, location, propFullName ].concat(rest)); + }; + var _default = function _default() { + return (0, _wrapValidator["default"])(object, "object"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = typeOf; + var _react = _interopRequireDefault(__webpack_require__(12)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function typeOf(child) { + if (child === null) { + return "null"; + } + if (Array.isArray(child)) { + return "array"; + } + if (_typeof(child) !== "object") { + return _typeof(child); + } + if (_react["default"].isValidElement(child)) { + return child.type; + } + return child; + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = withShape; + var _and = _interopRequireDefault(__webpack_require__(92)); + var _shape = _interopRequireDefault(__webpack_require__(101)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function withShape(type, shapeTypes) { + if (typeof type !== "function") { + throw new TypeError("type must be a valid PropType"); + } + var shapeValidator = (0, _shape["default"])(shapeTypes); + return (0, _and["default"])([ type, shapeValidator ], "withShape"); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = componentWithName; + var _react = _interopRequireDefault(__webpack_require__(12)); + var _isRegex = _interopRequireDefault(__webpack_require__(34)); + var _arrayPrototype = _interopRequireDefault(__webpack_require__(110)); + var _getComponentName = _interopRequireDefault(__webpack_require__(131)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function stripHOCs(fullName, namesOfHOCsToStrip) { + var innerName = fullName; + while (/\([^()]*\)/g.test(innerName)) { + var HOC = innerName; + var previousHOC = void 0; + do { + previousHOC = HOC; + HOC = previousHOC.replace(/\([^()]*\)/g, ""); + } while (previousHOC !== HOC); + if (namesOfHOCsToStrip.indexOf(HOC) === -1) { + return innerName; + } + innerName = innerName.replace(RegExp("^".concat(HOC, "\\(|\\)$"), "g"), ""); + } + return innerName; + } + function hasName(name, namesOfHOCsToStrip, propValue, propName, componentName) { + for (var _len = arguments.length, rest = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + rest[_key - 5] = arguments[_key]; + } + if (Array.isArray(propValue)) { + return (0, _arrayPrototype["default"])(propValue.map((function(item) { + return hasName.apply(void 0, [ name, namesOfHOCsToStrip, item, propName, componentName ].concat(rest)); + })), Boolean) || null; + } + if (!_react["default"].isValidElement(propValue)) { + return new TypeError("".concat(componentName, ".").concat(propName, " is not a valid React element")); + } + var type = propValue.type; + var componentNameFromType = (0, _getComponentName["default"])(type); + var innerComponentName = namesOfHOCsToStrip.length > 0 ? stripHOCs(componentNameFromType, namesOfHOCsToStrip) : componentNameFromType; + if ((0, _isRegex["default"])(name) && !name.test(innerComponentName)) { + return new TypeError("`".concat(componentName, ".").concat(propName, "` only accepts components matching the regular expression ").concat(name)); + } + if (!(0, _isRegex["default"])(name) && innerComponentName !== name) { + return new TypeError("`".concat(componentName, ".").concat(propName, "` only accepts components named ").concat(name, ", got ").concat(innerComponentName)); + } + return null; + } + function componentWithName(name) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + if (typeof name !== "string" && !(0, _isRegex["default"])(name)) { + throw new TypeError("name must be a string or a regex"); + } + var passedOptions = Object.keys(options); + if (passedOptions.length > 1 || passedOptions.length === 1 && passedOptions[0] !== "stripHOCs") { + throw new TypeError("The only options supported are: “stripHOCs”, got: “".concat(passedOptions.join("”, “"), "”")); + } + var _options$stripHOCs = options.stripHOCs, namesOfHOCsToStrip = _options$stripHOCs === void 0 ? [] : _options$stripHOCs; + var allHOCNamesAreValid = namesOfHOCsToStrip.every((function(x) { + if (typeof x !== "string" || /[()]/g.test(x)) { + return false; + } + return /^(?:[a-z][a-zA-Z0-9]+|[A-Z][a-z][a-zA-Z0-9]+)$/.test(x); + })); + if (!allHOCNamesAreValid) { + throw new TypeError("every provided HOC name must be a string with no parens, and in camelCase"); + } + function componentWithNameValidator(props, propName, componentName) { + var propValue = props[propName]; + if (props[propName] == null) { + return null; + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return hasName.apply(void 0, [ name, namesOfHOCsToStrip, propValue, propName, componentName ].concat(rest)); + } + componentWithNameValidator.isRequired = function componentWithNameRequired(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return new TypeError("`".concat(componentName, ".").concat(propName, "` requires at least one component named ").concat(name)); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return hasName.apply(void 0, [ name, namesOfHOCsToStrip, propValue, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(componentWithNameValidator, "componentWithName:".concat(name), name); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = disallowedIf; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function disallowedIf(propType, otherPropName, otherPropType) { + if (typeof propType !== "function" || typeof propType.isRequired !== "function") { + throw new TypeError("a propType validator is required; propType validators must also provide `.isRequired`"); + } + if (typeof otherPropName !== "string") { + throw new TypeError("other prop name must be a string"); + } + if (typeof otherPropType !== "function") { + throw new TypeError("other prop type validator is required"); + } + function disallowedIfRequired(props, propName, componentName) { + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var error = propType.isRequired.apply(propType, [ props, propName, componentName ].concat(rest)); + if (error) { + return error; + } + if (props[otherPropName] == null) { + return null; + } + var otherError = otherPropType.apply(void 0, [ props, otherPropName, componentName ].concat(rest)); + if (otherError) { + return null; + } + return new Error("prop “".concat(propName, "” is disallowed when “").concat(otherPropName, "” matches the provided validator")); + } + var validator = function disallowedIfPropType(props, propName) { + if (props[propName] == null) { + return null; + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + rest[_key2 - 2] = arguments[_key2]; + } + return disallowedIfRequired.apply(void 0, [ props, propName ].concat(rest)); + }; + validator.isRequired = disallowedIfRequired; + return (0, _wrapValidator["default"])(validator, "disallowedIf", { + propType, + otherPropName, + otherPropType + }); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = elementTypeValidator; + var _propTypes = __webpack_require__(81); + var _reactIs = __webpack_require__(82); + var _and = _interopRequireDefault(__webpack_require__(92)); + var _getComponentName = _interopRequireDefault(__webpack_require__(131)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function getTypeName(Type) { + if (typeof Type === "string") { + return Type; + } + var type = (0, _getComponentName["default"])(Type); + return type || "Anonymous Component"; + } + function validateElementType(Type, props, propName, componentName) { + var type = props[propName].type; + if (type === Type) { + return null; + } + return new TypeError("".concat(componentName, ".").concat(propName, " must be a React element of type ").concat(getTypeName(Type))); + } + function elementTypeValidator(Type) { + if (Type === "*") { + return (0, _wrapValidator["default"])(_propTypes.element, "elementType(*)", Type); + } + if (!(0, _reactIs.isValidElementType)(Type)) { + throw new TypeError('Type must be a React Component, an HTML element tag name, or "*". Got an '.concat(_typeof(Type))); + } + function elementType(props, propName, componentName) { + if (props[propName] == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + return validateElementType.apply(void 0, [ Type, props, propName, componentName ].concat(rest)); + } + elementType.isRequired = elementType; + var typeName = getTypeName(Type); + var validatorName = "elementType(".concat(typeName, ")"); + return (0, _wrapValidator["default"])((0, _and["default"])([ _propTypes.element, elementType ], validatorName), validatorName, Type); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _propTypes = __webpack_require__(81); + var _or = _interopRequireDefault(__webpack_require__(149)); + var _explicitNull = _interopRequireDefault(__webpack_require__(150)); + var _withShape = _interopRequireDefault(__webpack_require__(144)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var arrayOfValidator; + var validator = (0, _or["default"])([ _explicitNull["default"], (0, _propTypes.oneOf)([ false, "", NaN ]), (0, + _withShape["default"])(_propTypes.array, { + length: (0, _propTypes.oneOf)([ 0 ]).isRequired + }).isRequired, function() { + return arrayOfValidator.apply(void 0, arguments); + } ]); + arrayOfValidator = (0, _propTypes.arrayOf)(validator).isRequired; + var _default = function _default() { + return (0, _wrapValidator["default"])(validator, "empty"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = or; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function oneOfTypeValidator(validators) { + var validator = function oneOfType(props, propName, componentName) { + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var propValue = props[propName]; + if (typeof propValue === "undefined") { + return null; + } + var errors = validators.map((function(v) { + return v.apply(void 0, [ props, propName, componentName ].concat(rest)); + })).filter(Boolean); + if (errors.length < validators.length) { + return null; + } + return new TypeError("".concat(componentName, ": invalid value supplied to ").concat(propName, ".")); + }; + validator.isRequired = function oneOfTypeRequired(props, propName, componentName) { + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + var propValue = props[propName]; + if (typeof propValue === "undefined") { + return new TypeError("".concat(componentName, ": missing value for required ").concat(propName, ".")); + } + var errors = validators.map((function(v) { + return v.apply(void 0, [ props, propName, componentName ].concat(rest)); + })).filter(Boolean); + if (errors.length === validators.length) { + return new TypeError("".concat(componentName, ": invalid value ").concat(errors, " supplied to required ").concat(propName, ".")); + } + return null; + }; + return (0, _wrapValidator["default"])(validator, "oneOfType", validators); + } + function or(validators) { + var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "or"; + if (!Array.isArray(validators)) { + throw new TypeError("or: 2 or more validators are required"); + } + if (validators.length <= 1) { + throw new RangeError("or: 2 or more validators are required"); + } + var validator = oneOfTypeValidator([ (0, _propTypes.arrayOf)(oneOfTypeValidator(validators)) ].concat(_toConsumableArray(validators))); + return (0, _wrapValidator["default"])(validator, name, validators); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function explicitNull(props, propName, componentName) { + if (props[propName] == null) { + return null; + } + return new TypeError("".concat(componentName, ": prop “").concat(propName, "” must be null or undefined; received ").concat(_typeof(props[propName]))); + } + explicitNull.isRequired = function explicitNullRequired(props, propName, componentName) { + if (props[propName] === null) { + return null; + } + return new TypeError("".concat(componentName, ": prop “").concat(propName, "” must be null; received ").concat(_typeof(props[propName]))); + }; + var _default = function _default() { + return (0, _wrapValidator["default"])(explicitNull, "explicitNull"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = keysOfValidator; + var _isPrimitive = _interopRequireDefault(__webpack_require__(104)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function keysOfValidator(propType) { + var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "keysOf"; + if (typeof propType !== "function") { + throw new TypeError("argument to keysOf must be a valid PropType function"); + } + var validator = function keysOf(props, propName, componentName, location, propFullName) { + for (var _len = arguments.length, rest = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + rest[_key - 5] = arguments[_key]; + } + var propValue = props[propName]; + if (propValue == null || (0, _isPrimitive["default"])(propValue)) { + return null; + } + var firstError = null; + Object.keys(propValue).some((function(key) { + firstError = propType.apply(void 0, [ _defineProperty({}, key, key), key, componentName, location, "(".concat(propFullName, ").").concat(key) ].concat(rest)); + return firstError != null; + })); + return firstError || null; + }; + validator.isRequired = function keyedByRequired(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return new TypeError("".concat(componentName, ": ").concat(propName, " is required, but value is ").concat(propValue)); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return validator.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, name, propType); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = mutuallyExclusiveOfType; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function mutuallyExclusiveOfType(propType) { + if (typeof propType !== "function") { + throw new TypeError("a propType is required"); + } + for (var _len = arguments.length, exclusiveProps = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + exclusiveProps[_key - 1] = arguments[_key]; + } + if (exclusiveProps.length < 1) { + throw new TypeError("at least one prop that is mutually exclusive with this propType is required"); + } + var propList = exclusiveProps.join(", or "); + var map = exclusiveProps.reduce((function(acc, prop) { + return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, prop, true)); + }), {}); + var countProps = function countProps(count, prop) { + return count + (map[prop] ? 1 : 0); + }; + var validator = function mutuallyExclusiveProps(props, propName, componentName) { + var exclusivePropCount = Object.keys(props).filter((function(prop) { + return props[prop] != null; + })).reduce(countProps, 0); + if (exclusivePropCount > 1) { + return new Error("A ".concat(componentName, " cannot have more than one of these props: ").concat(propList)); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return propType.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + validator.isRequired = function mutuallyExclusivePropsRequired(props, propName, componentName) { + var exclusivePropCount = Object.keys(props).filter((function(prop) { + return prop === propName || props[prop] != null; + })).reduce(countProps, 0); + if (exclusivePropCount > 1) { + return new Error("A ".concat(componentName, " cannot have more than one of these props: ").concat(propList)); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return propType.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "mutuallyExclusiveProps:".concat(propList), exclusiveProps); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = mutuallyExclusiveTrue; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function mutuallyExclusiveTrue() { + for (var _len = arguments.length, exclusiveProps = new Array(_len), _key = 0; _key < _len; _key++) { + exclusiveProps[_key] = arguments[_key]; + } + if (exclusiveProps.length < 1) { + throw new TypeError("at least one prop that is mutually exclusive is required"); + } + if (!exclusiveProps.every((function(x) { + return typeof x === "string"; + }))) { + throw new TypeError("all exclusive true props must be strings"); + } + var propsList = exclusiveProps.join(", or "); + var validator = function mutuallyExclusiveTrueProps(props, propName, componentName) { + var countProps = function countProps(count, prop) { + return count + (props[prop] ? 1 : 0); + }; + var exclusivePropCount = exclusiveProps.reduce(countProps, 0); + if (exclusivePropCount > 1) { + return new Error("A ".concat(componentName, " cannot have more than one of these boolean props be true: ").concat(propsList)); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return _propTypes.bool.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + validator.isRequired = function mutuallyExclusiveTruePropsRequired(props, propName, componentName) { + var countProps = function countProps(count, prop) { + return count + (props[prop] ? 1 : 0); + }; + var exclusivePropCount = exclusiveProps.reduce(countProps, 0); + if (exclusivePropCount > 1) { + return new Error("A ".concat(componentName, " cannot have more than one of these boolean props be true: ").concat(propsList)); + } + for (var _len3 = arguments.length, rest = new Array(_len3 > 3 ? _len3 - 3 : 0), _key3 = 3; _key3 < _len3; _key3++) { + rest[_key3 - 3] = arguments[_key3]; + } + return _propTypes.bool.isRequired.apply(_propTypes.bool, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(validator, "mutuallyExclusiveTrueProps: ".concat(propsList), exclusiveProps); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = nChildren; + var _react = _interopRequireDefault(__webpack_require__(12)); + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function nChildren(n) { + var propType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _propTypes.node; + if (typeof n !== "number" || isNaN(n) || n < 0) { + throw new TypeError("a non-negative number is required"); + } + var validator = function nChildrenValidator(props, propName, componentName) { + if (propName !== "children") { + return new TypeError("".concat(componentName, " is using the nChildren validator on a non-children prop")); + } + var children = props.children; + var childrenCount = _react["default"].Children.count(children); + if (childrenCount !== n) { + return new RangeError("".concat(componentName, " expects to receive ").concat(n, " children, but received ").concat(childrenCount, " children.")); + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + return propType.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + validator.isRequired = validator; + return (0, _wrapValidator["default"])(validator, "nChildren:".concat(n), n); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var validNumericChars = /^[-+]?(?:[1-9][0-9]*(?:\.[0-9]+)?|0|0\.[0-9]+)$/; + var validator = function numericString(props, propName, componentName) { + if (props[propName] == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var stringError = _propTypes.string.apply(void 0, [ props, propName, componentName ].concat(rest)); + if (stringError) { + return stringError; + } + var value = props[propName]; + var passesRegex = validNumericChars.test(value); + if (passesRegex) { + return null; + } + return new TypeError("".concat(componentName, ': prop "').concat(propName, '" (value "').concat(value, '") must be a numeric string:\n - starting with an optional + or -\n - that does not have a leading zero\n - with an optional decimal part (that contains only one decimal point, if present)\n - that otherwise only contains digits (0-9)\n - not +-NaN, or +-Infinity\n ')); + }; + validator.isRequired = function numericStringRequired(props, propName, componentName) { + if (props[propName] == null) { + return new TypeError("".concat(componentName, ": ").concat(propName, " is required")); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return validator.apply(void 0, [ props, propName, componentName ].concat(rest)); + }; + var _default = function _default() { + return (0, _wrapValidator["default"])(validator, "numericString"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = predicate; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function predicate(fn) { + var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + if (typeof fn !== "function") { + throw new TypeError("`fn` must be a function"); + } + if (typeof message !== "string") { + throw new TypeError("`message`, if provided, must be a string"); + } + function requiredValidator(props, propName, componentName) { + var result = fn(props[propName]); + if (result) { + return null; + } + return new TypeError("`".concat(componentName, "` requires that `").concat(propName, "` pass a predicate function").concat(message ? ": ".concat(message) : "", ".")); + } + function validator(props, propName) { + if (props[propName] == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + rest[_key - 2] = arguments[_key]; + } + return requiredValidator.apply(void 0, [ props, propName ].concat(rest)); + } + validator.isRequired = requiredValidator; + return (0, _wrapValidator["default"])(validator, "predicate", fn); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = range; + var _and = _interopRequireDefault(__webpack_require__(92)); + var _between = _interopRequireDefault(__webpack_require__(94)); + var _integer = _interopRequireDefault(__webpack_require__(139)); + var _isInteger = _interopRequireDefault(__webpack_require__(140)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; + function isValidLength(x) { + return (0, _isInteger["default"])(x) && Math.abs(x) < MAX_SAFE_INTEGER; + } + function range(min, max) { + if (!isValidLength(min) || !isValidLength(max)) { + throw new RangeError('"range" requires two integers: '.concat(min, " and ").concat(max, " given")); + } + if (min === max) { + throw new RangeError("min and max must not be the same"); + } + return (0, _wrapValidator["default"])((0, _and["default"])([ (0, _integer["default"])(), (0, + _between["default"])({ + gte: min, + lt: max + }) ], "range"), "range", { + min, + max + }); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _react = __webpack_require__(12); + var _isPlainObject = _interopRequireDefault(__webpack_require__(102)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + var isPrototypeOf = Object.prototype.isPrototypeOf; + function isNewRef(prop) { + if (!(0, _isPlainObject["default"])(prop)) { + return false; + } + var ownProperties = Object.keys(prop); + return ownProperties.length === 1 && ownProperties[0] === "current"; + } + function isCallbackRef(prop) { + return typeof prop === "function" && !isPrototypeOf.call(_react.Component, prop) && (!_react.PureComponent || !isPrototypeOf.call(_react.PureComponent, prop)); + } + function requiredRef(props, propName, componentName) { + var propValue = props[propName]; + if (isCallbackRef(propValue) || isNewRef(propValue)) { + return null; + } + return new TypeError("".concat(propName, " in ").concat(componentName, " must be a ref")); + } + function ref(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + return requiredRef.apply(void 0, [ props, propName, componentName ].concat(rest)); + } + ref.isRequired = requiredRef; + var _default = function _default() { + return (0, _wrapValidator["default"])(ref, "ref"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = getRequiredBy; + var _objectIs = _interopRequireDefault(__webpack_require__(28)); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function getRequiredBy(requiredByPropName, propType) { + var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + function requiredBy(props, propName, componentName) { + if (props[requiredByPropName]) { + var propValue = props[propName]; + if ((0, _objectIs["default"])(propValue, defaultValue) || typeof propValue === "undefined") { + return new TypeError("".concat(componentName, ": when ").concat(requiredByPropName, " is true, prop “").concat(propName, "” must be present.")); + } + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + return propType.apply(void 0, [ props, propName, componentName ].concat(rest)); + } + requiredBy.isRequired = function requiredByRequired(props, propName, componentName) { + var propValue = props[propName]; + if ((0, _objectIs["default"])(propValue, defaultValue)) { + return new TypeError("".concat(componentName, ": prop “").concat(propName, "” must be present.")); + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) { + rest[_key2 - 3] = arguments[_key2]; + } + return propType.isRequired.apply(propType, [ props, propName, componentName ].concat(rest)); + }; + return (0, _wrapValidator["default"])(requiredBy, "requiredBy “".concat(requiredByPropName, "”"), [ requiredByPropName, defaultValue ]); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function customMessageWrapper(messsageFunction) { + function restrictedProp(props, propName, componentName, location) { + if (props[propName] == null) { + return null; + } + if (messsageFunction && typeof messsageFunction === "function") { + for (var _len = arguments.length, rest = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) { + rest[_key - 4] = arguments[_key]; + } + return new TypeError(messsageFunction.apply(void 0, [ props, propName, componentName, location ].concat(rest))); + } + return new TypeError("The ".concat(propName, " ").concat(location, " on ").concat(componentName, " is not allowed.")); + } + restrictedProp.isRequired = restrictedProp; + return restrictedProp; + } + var _default = function _default() { + var messsageFunction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + return (0, _wrapValidator["default"])(customMessageWrapper(messsageFunction), "restrictedProp"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = stringEndsWithValidator; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function stringEndsWithValidator(end) { + if (typeof end !== "string" || end.length === 0) { + throw new TypeError("a non-empty string is required"); + } + var validator = function stringEndsWith(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var stringError = _propTypes.string.apply(void 0, [ props, propName, componentName ].concat(rest)); + if (stringError) { + return stringError; + } + if (!propValue.endsWith(end) || propValue.length <= end.length) { + return new TypeError("".concat(componentName, ": ").concat(propName, ' does not end with "').concat(end, '"')); + } + return null; + }; + validator.isRequired = function requiredStringEndsWith() { + var stringError = _propTypes.string.isRequired.apply(_propTypes.string, arguments); + if (stringError) { + return stringError; + } + return validator.apply(void 0, arguments); + }; + return (0, _wrapValidator["default"])(validator, "stringEndsWith: ".concat(end)); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = stringStartsWithValidator; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function stringStartsWithValidator(start) { + if (typeof start !== "string" || start.length === 0) { + throw new TypeError("a non-empty string is required"); + } + var validator = function stringStartsWith(props, propName, componentName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var stringError = _propTypes.string.apply(void 0, [ props, propName, componentName ].concat(rest)); + if (stringError) { + return stringError; + } + if (!propValue.startsWith(start) || propValue.length <= start.length) { + return new TypeError("".concat(componentName, ": ").concat(propName, ' does not start with "').concat(start, '"')); + } + return null; + }; + validator.isRequired = function requiredStringStartsWith() { + var stringError = _propTypes.string.isRequired.apply(_propTypes.string, arguments); + if (stringError) { + return stringError; + } + return validator.apply(void 0, arguments); + }; + return (0, _wrapValidator["default"])(validator, "stringStartsWith: ".concat(start)); + } + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = void 0; + var _propTypes = __webpack_require__(81); + var _wrapValidator = _interopRequireDefault(__webpack_require__(93)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function uniqueCountWithSet(arr) { + return new Set(arr).size; + } + function uniqueCountLegacy(arr) { + var seen = []; + arr.forEach((function(item) { + if (seen.indexOf(item) === -1) { + seen.push(item); + } + })); + return seen.length; + } + var getUniqueCount = typeof Set === "function" ? uniqueCountWithSet : uniqueCountLegacy; + function requiredUniqueArray(props, propName, componentName) { + for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { + rest[_key - 3] = arguments[_key]; + } + var result = _propTypes.array.isRequired.apply(_propTypes.array, [ props, propName, componentName ].concat(rest)); + if (result != null) { + return result; + } + var propValue = props[propName]; + var uniqueCount = getUniqueCount(propValue); + if (uniqueCount !== propValue.length) { + return new RangeError("".concat(componentName, ": values must be unique. ").concat(propValue.length - uniqueCount, " duplicate values found.")); + } + return null; + } + function uniqueArray(props, propName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + for (var _len2 = arguments.length, rest = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + rest[_key2 - 2] = arguments[_key2]; + } + return requiredUniqueArray.apply(void 0, [ props, propName ].concat(rest)); + } + uniqueArray.isRequired = requiredUniqueArray; + var _default = function _default() { + return (0, _wrapValidator["default"])(uniqueArray, "uniqueArray"); + }; + exports["default"] = _default; + }, (__unused_webpack_module, exports, __webpack_require__) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = uniqueArrayOfTypeValidator; + var _propTypes = __webpack_require__(81); + var _and = _interopRequireDefault(__webpack_require__(92)); + var _uniqueArray = _interopRequireDefault(__webpack_require__(163)); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var unique = (0, _uniqueArray["default"])(); + function uniqueArrayOfTypeValidator(type) { + if (typeof type !== "function") { + throw new TypeError("type must be a validator function"); + } + var mapper = null; + var name = "uniqueArrayOfType"; + for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + rest[_key - 1] = arguments[_key]; + } + if (rest.length === 1) { + if (typeof rest[0] === "function") { + mapper = rest[0]; + } else if (typeof rest[0] === "string") { + name = rest[0]; + } else { + throw new TypeError("single input must either be string or function"); + } + } else if (rest.length === 2) { + if (typeof rest[0] === "function" && typeof rest[1] === "string") { + mapper = rest[0]; + name = rest[1]; + } else { + throw new TypeError("multiple inputs must be in [function, string] order"); + } + } else if (rest.length > 2) { + throw new TypeError("only [], [name], [mapper], and [mapper, name] are valid inputs"); + } + function uniqueArrayOfMapped(props, propName) { + var propValue = props[propName]; + if (propValue == null) { + return null; + } + var values = propValue.map(mapper); + for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + return unique.apply(void 0, [ _objectSpread(_objectSpread({}, props), {}, _defineProperty({}, propName, values)), propName ].concat(args)); + } + uniqueArrayOfMapped.isRequired = function isRequired(props, propName) { + var propValue = props[propName]; + for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { + args[_key3 - 2] = arguments[_key3]; + } + if (propValue == null) { + return _propTypes.array.isRequired.apply(_propTypes.array, [ props, propName ].concat(args)); + } + return uniqueArrayOfMapped.apply(void 0, [ props, propName ].concat(args)); + }; + var arrayValidator = (0, _propTypes.arrayOf)(type); + var uniqueValidator = mapper ? uniqueArrayOfMapped : unique; + var validator = (0, _and["default"])([ arrayValidator, uniqueValidator ], name); + validator.isRequired = (0, _and["default"])([ uniqueValidator.isRequired, arrayValidator.isRequired ], "".concat(name, ".isRequired")); + return validator; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + addEventListener: () => addEventListener + }); + var CAN_USE_DOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); + function testPassiveEventListeners() { + if (!CAN_USE_DOM) { + return false; + } + if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) { + return false; + } + var supportsPassiveOption = false; + try { + var opts = Object.defineProperty({}, "passive", { + get: function() { + function get() { + supportsPassiveOption = true; + } + return get; + }() + }); + var noop = function noop() {}; + window.addEventListener("testPassiveEventSupport", noop, opts); + window.removeEventListener("testPassiveEventSupport", noop, opts); + } catch (e) {} + return supportsPassiveOption; + } + var memoized = void 0; + function canUsePassiveEventListeners() { + if (memoized === undefined) { + memoized = testPassiveEventListeners(); + } + return memoized; + } + function normalizeEventOptions(eventOptions) { + if (!eventOptions) { + return undefined; + } + if (!canUsePassiveEventListeners()) { + return !!eventOptions.capture; + } + return eventOptions; + } + function eventOptionsKey(normalizedEventOptions) { + if (!normalizedEventOptions) { + return 0; + } + if (normalizedEventOptions === true) { + return 100; + } + var capture = normalizedEventOptions.capture << 0; + var passive = normalizedEventOptions.passive << 1; + var once = normalizedEventOptions.once << 2; + return capture + passive + once; + } + function ensureCanMutateNextEventHandlers(eventHandlers) { + if (eventHandlers.handlers === eventHandlers.nextHandlers) { + eventHandlers.nextHandlers = eventHandlers.handlers.slice(); + } + } + function TargetEventHandlers(target) { + this.target = target; + this.events = {}; + } + TargetEventHandlers.prototype.getEventHandlers = function() { + function getEventHandlers(eventName, options) { + var key = String(eventName) + " " + String(eventOptionsKey(options)); + if (!this.events[key]) { + this.events[key] = { + handlers: [], + handleEvent: undefined + }; + this.events[key].nextHandlers = this.events[key].handlers; + } + return this.events[key]; + } + return getEventHandlers; + }(); + TargetEventHandlers.prototype.handleEvent = function() { + function handleEvent(eventName, options, event) { + var eventHandlers = this.getEventHandlers(eventName, options); + eventHandlers.handlers = eventHandlers.nextHandlers; + eventHandlers.handlers.forEach((function(handler) { + if (handler) { + handler(event); + } + })); + } + return handleEvent; + }(); + TargetEventHandlers.prototype.add = function() { + function add(eventName, listener, options) { + var _this = this; + var eventHandlers = this.getEventHandlers(eventName, options); + ensureCanMutateNextEventHandlers(eventHandlers); + if (eventHandlers.nextHandlers.length === 0) { + eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options); + this.target.addEventListener(eventName, eventHandlers.handleEvent, options); + } + eventHandlers.nextHandlers.push(listener); + var isSubscribed = true; + var unsubscribe = function() { + function unsubscribe() { + if (!isSubscribed) { + return; + } + isSubscribed = false; + ensureCanMutateNextEventHandlers(eventHandlers); + var index = eventHandlers.nextHandlers.indexOf(listener); + eventHandlers.nextHandlers.splice(index, 1); + if (eventHandlers.nextHandlers.length === 0) { + if (_this.target) { + _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options); + } + eventHandlers.handleEvent = undefined; + } + } + return unsubscribe; + }(); + return unsubscribe; + } + return add; + }(); + var EVENT_HANDLERS_KEY = "__consolidated_events_handlers__"; + function addEventListener(target, eventName, listener, options) { + if (!target[EVENT_HANDLERS_KEY]) { + target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target); + } + var normalizedEventOptions = normalizeEventOptions(options); + return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions); + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var callBind = __webpack_require__(27); + var implementation = __webpack_require__(167); + var getPolyfill = __webpack_require__(168); + var shim = __webpack_require__(169); + var polyfill = callBind(getPolyfill(), Object); + define(polyfill, { + getPolyfill, + implementation, + shim + }); + module.exports = polyfill; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var RequireObjectCoercible = __webpack_require__(97); + var callBound = __webpack_require__(21); + var $isEnumerable = callBound("Object.prototype.propertyIsEnumerable"); + var $push = callBound("Array.prototype.push"); + module.exports = function values(O) { + var obj = RequireObjectCoercible(O); + var vals = []; + for (var key in obj) { + if ($isEnumerable(obj, key)) { + $push(vals, obj[key]); + } + } + return vals; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(167); + module.exports = function getPolyfill() { + return typeof Object.values === "function" ? Object.values : implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var getPolyfill = __webpack_require__(168); + var define = __webpack_require__(29); + module.exports = function shimValues() { + var polyfill = getPolyfill(); + define(Object, { + values: polyfill + }, { + values: function testValues() { + return Object.values !== polyfill; + } + }); + return polyfill; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var implementation = __webpack_require__(171); + var getPolyfill = __webpack_require__(172); + var polyfill = getPolyfill(); + var shim = __webpack_require__(173); + var boundContains = function contains(node, other) { + return polyfill.apply(node, [ other ]); + }; + define(boundContains, { + getPolyfill, + implementation, + shim + }); + module.exports = boundContains; + }, module => { + "use strict"; + module.exports = function contains(other) { + if (arguments.length < 1) { + throw new TypeError("1 argument is required"); + } + if (typeof other !== "object") { + throw new TypeError("Argument 1 (”other“) to Node.contains must be an instance of Node"); + } + var node = other; + do { + if (this === node) { + return true; + } + if (node) { + node = node.parentNode; + } + } while (node); + return false; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var implementation = __webpack_require__(171); + module.exports = function getPolyfill() { + if (typeof document !== "undefined") { + if (document.contains) { + return document.contains; + } + if (document.body && document.body.contains) { + try { + if (typeof document.body.contains.call(document, "") === "boolean") { + return document.body.contains; + } + } catch (e) {} + } + } + return implementation; + }; + }, (module, __unused_webpack_exports, __webpack_require__) => { + "use strict"; + var define = __webpack_require__(29); + var getPolyfill = __webpack_require__(172); + module.exports = function shimContains() { + var polyfill = getPolyfill(); + if (typeof document !== "undefined") { + define(document, { + contains: polyfill + }, { + contains: function() { + return document.contains !== polyfill; + } + }); + if (typeof Element !== "undefined") { + define(Element.prototype, { + contains: polyfill + }, { + contains: function() { + return Element.prototype.contains !== polyfill; + } + }); + } + } + return polyfill; + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var simple_linear_scale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(175); + var simple_linear_scale__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(simple_linear_scale__WEBPACK_IMPORTED_MODULE_1__); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); + var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); + var _components_units_list__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Slider = function(_Component) { + _inherits(Slider, _Component); + var _super = _createSuper(Slider); + function Slider() { + var _this; + _classCallCheck(this, Slider); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + isDragging: false, + isUnitsListOpen: false + }); + _defineProperty(_assertThisInitialized(_this), "el", (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRef)()); + _defineProperty(_assertThisInitialized(_this), "hasUnitsList", (function() { + return _this.props.options.units && _this.props.options.units.length > 1; + })); + _defineProperty(_assertThisInitialized(_this), "getAllowedDecimalPlaces", (function() { + var properUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var decimals = _this.props.options.decimals; + if (_this.props.options.units) { + var units = _this.props.options.units.find((function(_ref) { + var unit = _ref.unit; + return unit === (properUnit || _this.getCurrentUnit()); + })); + if (units) { + decimals = units.decimals; + } + } + return decimals !== 0 && !decimals ? 0 : decimals; + })); + _defineProperty(_assertThisInitialized(_this), "withDefault", (function(currentUnit, defaultUnit) { + return _this.props.options.units ? _this.props.options.units.find((function(_ref2) { + var unit = _ref2.unit; + return unit === currentUnit; + })) ? currentUnit : currentUnit || defaultUnit : currentUnit || defaultUnit; + })); + _defineProperty(_assertThisInitialized(_this), "getCurrentUnit", (function() { + var defaultUnit = _this.props.options.units ? _this.props.options.units[0].unit : _this.props.options.defaultUnit === false ? "" : _this.props.options.defaultUnit || "px"; + if (_this.props.value === "NaN" || _this.props.value === "" || _this.props.value === undefined) { + return defaultUnit; + } + return _this.props.options.units ? _this.withDefault(_this.props.value.toString().replace(/[0-9]/g, "").replace(/\-/g, "").replace(/\./g, ""), _this.props.options.units[0].unit) : defaultUnit; + })); + _defineProperty(_assertThisInitialized(_this), "getMax", (function() { + if (_this.props.options.units) { + var unit = _this.props.options.units.find((function(_ref3) { + var unit = _ref3.unit; + return unit === _this.getCurrentUnit(); + })); + return unit ? unit.max : 100; + } + return _this.props.options.max || 100; + })); + _defineProperty(_assertThisInitialized(_this), "getMin", (function() { + if (_this.props.options.units) { + var unit = _this.props.options.units.find((function(_ref4) { + var unit = _ref4.unit; + return unit === _this.getCurrentUnit(); + })); + return unit ? unit.min : 0; + } + return _this.props.options.min || 0; + })); + _defineProperty(_assertThisInitialized(_this), "getNumericValue", (function() { + var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref5$forPosition = _ref5.forPosition, forPosition = _ref5$forPosition === void 0 ? false : _ref5$forPosition; + var maybeValue = parseFloat(_this.props.value, 10); + if (maybeValue === 0) { + return maybeValue; + } + if (!maybeValue) { + if (_this.props.options.defaultPosition && _this.props.options.defaultPosition === "center" && forPosition) { + var min = parseFloat(_this.getMin(), 10); + var max = parseFloat(_this.getMax(), 10); + return (max - min) / 2 + min; + } + return ""; + } + return maybeValue; + })); + _defineProperty(_assertThisInitialized(_this), "handleBlur", (function() { + if (_this.props.options["default"] === "LOTTA_CSS_SKIP_RULE") { + if (_this.props.value === "LOTTA_CSS_SKIP_RULE") { + return; + } + if (_this.getNumericValue() === "") { + _this.props.onChange("LOTTA_CSS_SKIP_RULE"); + return; + } + } + if (_this.props.value.toString().trim() === "") { + _this.props.onChange(""); + return; + } + var newValue = "".concat((0, _utils__WEBPACK_IMPORTED_MODULE_2__.clamp)(parseFloat(_this.getMin(), 10), parseFloat(_this.getMax(), 10), parseFloat(_this.getNumericValue(), 10))).concat(_this.getCurrentUnit()); + if (String(_this.props.value) === newValue) { + return; + } + _this.props.onChange(newValue); + })); + _defineProperty(_assertThisInitialized(_this), "handleChange", (function(value) { + if (_this.props.options["default"] === "LOTTA_CSS_SKIP_RULE") { + if (value.toString().trim() === "") { + _this.props.onChange("LOTTA_CSS_SKIP_RULE"); + return; + } + } + if (value.toString().trim() === "") { + _this.props.onChange(""); + return; + } + _this.props.onChange("".concat((0, _utils__WEBPACK_IMPORTED_MODULE_2__.clampMax)(parseFloat(_this.getMax(), 10), parseFloat(value || _this.getMin()))).concat(_this.getCurrentUnit())); + })); + _defineProperty(_assertThisInitialized(_this), "handleMove", (function(event) { + if (!_this.state.isDragging) return; + _this.computeAndSendNewValue(event); + })); + _defineProperty(_assertThisInitialized(_this), "handleUp", (function() { + _this.setState({ + isDragging: false + }); + _this.detachEvents(); + })); + return _this; + } + _createClass(Slider, [ { + key: "computeAndSendNewValue", + value: function computeAndSendNewValue(_ref6) { + var pageX = _ref6.pageX, shiftKey = _ref6.shiftKey; + var _this$el$current$getB = this.el.current.getBoundingClientRect(), left = _this$el$current$getB.left, width = _this$el$current$getB.width; + var elLeftOffset = pageX - left - pageXOffset; + this.props.onChange("".concat((0, _utils__WEBPACK_IMPORTED_MODULE_2__.round)(simple_linear_scale__WEBPACK_IMPORTED_MODULE_1___default()([ 0, width ], [ parseFloat(this.getMin(), 10), parseFloat(this.getMax(), 10) ], true)(document.body.classList.contains("rtl") ? width - elLeftOffset : elLeftOffset), this.getAllowedDecimalPlaces())).concat(this.getCurrentUnit())); + } + }, { + key: "attachEvents", + value: function attachEvents() { + document.documentElement.addEventListener("mousemove", this.handleMove, true); + document.documentElement.addEventListener("mouseup", this.handleUp, true); + } + }, { + key: "detachEvents", + value: function detachEvents() { + document.documentElement.removeEventListener("mousemove", this.handleMove, true); + document.documentElement.removeEventListener("mouseup", this.handleUp, true); + } + }, { + key: "render", + value: function render() { + var _this2 = this, _clsx; + var leftValue = simple_linear_scale__WEBPACK_IMPORTED_MODULE_1___default()([ parseFloat(this.getMin(), 10), parseFloat(this.getMax(), 10) ], [ 0, 100 ], false)((0, + _utils__WEBPACK_IMPORTED_MODULE_2__.clamp)(parseFloat(this.getMin(), 10), parseFloat(this.getMax(), 10), parseFloat(this.getNumericValue({ + forPosition: true + }), 10) === 0 ? 0 : parseFloat(this.getNumericValue({ + forPosition: true + }), 10) ? parseFloat(this.getNumericValue({ + forPosition: true + }), 10) : parseFloat(this.getMin(), 10))); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "lotta-slider-wrap", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", _objectSpread(_objectSpread({ + className: "lotta-slider", + onMouseDown: function onMouseDown() { + _this2.attachEvents(); + _this2.setState({ + isDragging: true + }); + }, + onClick: function onClick(e) { + return _this2.computeAndSendNewValue(e); + }, + ref: this.el + }, this.props.options.steps ? _defineProperty({}, "data-steps", "") : {}), {}, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + style: { + width: "".concat(leftValue, "%") + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + tabIndex: "0", + onKeyDown: function onKeyDown(e) { + var valueForComputation = _this2.getNumericValue(); + var step = 1 / Math.pow(10, _this2.getAllowedDecimalPlaces()); + var actualStep = e.shiftKey ? step * 10 : step; + if (e.keyCode === 38 || e.keyCode === 39) { + e.preventDefault(); + _this2.props.onChange("".concat((0, _utils__WEBPACK_IMPORTED_MODULE_2__.clamp)(parseFloat(_this2.getMin(), 10), parseFloat(_this2.getMax(), 10), valueForComputation + actualStep)).concat(_this2.getCurrentUnit())); + } + if (e.keyCode === 40 || e.keyCode === 37) { + e.preventDefault(); + _this2.props.onChange("".concat((0, _utils__WEBPACK_IMPORTED_MODULE_2__.clamp)(parseFloat(_this2.getMin(), 10), parseFloat(_this2.getMax(), 10), valueForComputation - actualStep)).concat(_this2.getCurrentUnit())); + } + }, + style: { + "--position": "".concat(leftValue, "%") + } + }) ] + })), !this.props.options.hideInput && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])("lotta-slider-input", (_clsx = {}, + _defineProperty(_clsx, "lotta-value-changer", true), _defineProperty(_clsx, "no-unit-list", !this.hasUnitsList()), + _defineProperty(_clsx, "no-unit", !(this.hasUnitsList() || this.props.options.defaultUnit !== false)), + _defineProperty(_clsx, "active", this.state.isUnitsListOpen), _clsx)), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", _objectSpread(_objectSpread({ + type: "number" + }, this.props.options.ref ? { + ref: this.props.options.ref + } : {}), {}, { + step: 1 / Math.pow(10, this.getAllowedDecimalPlaces()), + value: this.getNumericValue(), + onBlur: function onBlur() { + return _this2.handleBlur(); + }, + onChange: function onChange(_ref8) { + var value = _ref8.target.value; + return _this2.handleChange(value); + } + })), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-value-divider" + }), !this.hasUnitsList() && this.props.options.defaultUnit !== false && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-current-value", + children: this.withDefault(this.getCurrentUnit(), this.props.options.defaultUnit || "px") + }), this.hasUnitsList() && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_components_units_list__WEBPACK_IMPORTED_MODULE_4__["default"], { + units: this.props.options.units, + onChange: this.props.onChange, + isOpen: this.state.isUnitsListOpen, + toggleOpen: function toggleOpen() { + return _this2.setState({ + isUnitsListOpen: !_this2.state.isUnitsListOpen + }); + }, + currentUnit: this.getCurrentUnit(), + getNumericValue: this.getNumericValue, + getAllowedDecimalPlaces: this.getAllowedDecimalPlaces + }) ] + }) ] + }); + } + } ]); + return Slider; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Slider; + }, module => { + function linearScale(domain, range, clamp) { + return function(value) { + if (domain[0] === domain[1] || range[0] === range[1]) { + return range[0]; + } + var ratio = (range[1] - range[0]) / (domain[1] - domain[0]), result = range[0] + ratio * (value - domain[0]); + return clamp ? Math.min(range[1], Math.max(range[0], result)) : result; + }; + } + module.exports = linearScale; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Toggle + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Toggle = function(_Component) { + _inherits(Toggle, _Component); + var _super = _createSuper(Toggle); + function Toggle() { + _classCallCheck(this, Toggle); + return _super.apply(this, arguments); + } + _createClass(Toggle, [ { + key: "triggerChange", + value: function triggerChange(value) { + this.props.onChange(value); + } + }, { + key: "render", + value: function render() { + var _this = this; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-toggle", { + "lotta-toggle-active": this.props.value === "yes" + }), + onClick: (0, _utils__WEBPACK_IMPORTED_MODULE_2__.composeEventHandlers)((function(e) { + e.stopPropagation(); + _this.triggerChange(_this.props.value === "yes" ? "no" : "yes"); + }), this.props.onClick), + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {}) + }); + } + } ]); + return Toggle; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + _defineProperty(Toggle, "renderingConfig", { + design: "inline" + }); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Section + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _toggle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(176); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var _panel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(178); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Section = function(_Component) { + _inherits(Section, _Component); + var _super = _createSuper(Section); + function Section() { + _classCallCheck(this, Section); + return _super.apply(this, arguments); + } + _createClass(Section, [ { + key: "render", + value: function render() { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { + className: "lotta-section-container", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: "lotta-section-option", + children: [ this.props.options["switch"] && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_toggle__WEBPACK_IMPORTED_MODULE_1__["default"], { + value: this.props.value, + onChange: this.props.onChange, + onClick: function onClick(e) { + return e.stopPropagation(); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("button", { + type: "button" + }) ] + }) + }); + } + } ]); + return Section; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + _defineProperty(Section, "disableRevert", true); + _defineProperty(Section, "renderingConfig", { + design: "inline" + }); + _defineProperty(Section, "MetaWrapper", (function(_ref) { + var getActualControl = _ref.getActualControl, id = _ref.id, value = _ref.value, options = _ref.options, settings = _ref.settings, _onChange = _ref.onChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_panel__WEBPACK_IMPORTED_MODULE_3__["default"], { + id, + listeners: _defineProperty({}, id, options), + onChange: function onChange(panelId, settingId, val) { + _onChange(val, settingId); + }, + getSettings: typeof settings === "function" ? settings : function() { + return settings; + }, + children: function children(_ref3) { + var container = _ref3.container, open = _ref3.open; + return getActualControl({ + wrapperAttr: { + ref: container, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])("lotta-section", { + "lotta-activated": options["switch"] ? value === "yes" : true, + "lotta-section-margin-top": options.marginTop, + "lotta-section-margin-bottom": options.marginBottom + }), + onClick: function onClick() { + if (options["switch"] && value !== "yes") { + return; + } + open(options); + } + } + }); + } + }); + })); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _panel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(179); + const __WEBPACK_DEFAULT_EXPORT__ = _panel__WEBPACK_IMPORTED_MODULE_0__["default"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Panel + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _customizer_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); + var _react_spring_web__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(180); + var bezier_easing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(188); + var bezier_easing__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(bezier_easing__WEBPACK_IMPORTED_MODULE_3__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var PanelContent = function(_Component) { + _inherits(PanelContent, _Component); + var _super = _createSuper(PanelContent); + function PanelContent() { + _classCallCheck(this, PanelContent); + return _super.apply(this, arguments); + } + _createClass(PanelContent, [ { + key: "render", + value: function render() { + var _this = this; + var _this$props = this.props, controls = _this$props.controls, getSettings = _this$props.getSettings, style = _this$props.style, titlePrefix = _this$props.titlePrefix, label = _this$props.label, onClose = _this$props.onClose, _onChange = _this$props.onChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_react_spring_web__WEBPACK_IMPORTED_MODULE_2__.animated.div, { + style, + className: "lotta-customizer-panel", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: "customize-panel-actions customize-section-description-container section-meta", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("button", { + onClick: function onClick(e) { + e.stopPropagation(); + onClose(); + }, + type: "button", + className: "customize-section-back" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("h3", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { + children: titlePrefix + }), label ] + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { + className: "customizer-panel-content", + children: (0, _customizer_index__WEBPACK_IMPORTED_MODULE_1__.buildNestedControls)({ + settings: getSettings, + controls, + onChange: function onChange(val, id, self) { + _onChange(val, id); + if (!self) { + _this.forceUpdate(); + } + } + }) + }) ] + }); + } + } ]); + return PanelContent; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var Panel = function(_Component2) { + _inherits(Panel, _Component2); + var _super2 = _createSuper(Panel); + function Panel() { + var _this2; + _classCallCheck(this, Panel); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this2 = _super2.call.apply(_super2, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this2), "container", (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRef)()); + _defineProperty(_assertThisInitialized(_this2), "wrapper", null); + _defineProperty(_assertThisInitialized(_this2), "unbind", []); + _defineProperty(_assertThisInitialized(_this2), "current", null); + _defineProperty(_assertThisInitialized(_this2), "reactDOMRoot", null); + _defineProperty(_assertThisInitialized(_this2), "open", (function(options) { + var controls = options.controls; + var label = options.label || (options.id || "").replace(/./, (function(s) { + return s.toUpperCase(); + })).replace(/\_|\-/g, " "); + _this2.current = options.id || null; + if (wp.customize && wp.customize.previewer && _this2.props.id) { + wp.customize.previewer.send("lotta-panel-open", _this2.props.id); + } + if (!_this2.wrapper) { + _this2.wrapper = document.createElement("div"); + _this2.wrapper.classList.add("lotta-panel-wrapper"); + } + var czControls = _this2.container.current.closest('[id="customize-theme-controls"]'); + if (!czControls) { + return; + } + czControls.appendChild(_this2.wrapper); + var section = _this2.container.current.closest(".accordion-section-content") || _this2.container.current.closest(".lotta-customizer-panel"); + if (!section) { + return; + } + section.classList.add("lotta-panel-open"); + var titlePrefix = ""; + var h3 = section.querySelector(".customize-section-description-container h3") || section.querySelector(".customize-panel-actions h3"); + h3 && (titlePrefix = "".concat(h3.querySelector("span").innerText, " ▸ ").concat(h3.innerText.split("\n")[h3.innerText.split("\n").length - 1])); + var panelContentEl = (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_react_spring_web__WEBPACK_IMPORTED_MODULE_2__.Transition, { + items: options, + from: { + transform: "translateX(100%)" + }, + enter: { + transform: "translateX(0)" + }, + leave: { + transform: "translateX(100%)" + }, + config: function config(item, type) { + return { + delay: 0, + duration: 18, + easing: bezier_easing__WEBPACK_IMPORTED_MODULE_3___default()(.645, .045, .355, 1) + }; + }, + children: function children(props) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(PanelContent, { + id: options.id, + style: props, + controls, + getSettings: function getSettings() { + if (_this2.props.getSettings) { + return _this2.props.getSettings(options.id); + } + return undefined; + }, + onChange: function onChange(val, id) { + if (_this2.props.onChange) { + _this2.props.onChange(options.id, id, val); + } + }, + titlePrefix, + label, + onClose: _this2.close + }); + } + }); + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot) { + if (!_this2.reactDOMRoot) { + _this2.reactDOMRoot = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot)(_this2.wrapper); + } + _this2.reactDOMRoot.render(panelContentEl); + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(panelContentEl, _this2.wrapper); + } + })); + _defineProperty(_assertThisInitialized(_this2), "close", (function() { + var section = _this2.container.current.closest(".accordion-section-content") || _this2.container.current.closest(".lotta-customizer-panel"); + section && section.classList.remove("lotta-panel-open"); + if (!_this2.wrapper) { + return; + } + var innerSection = _this2.wrapper.querySelector(".lotta-customizer-panel"); + innerSection && innerSection.classList.add("lotta-panel-close"); + setTimeout((function() { + if (wp.customize && wp.customize.previewer && _this2.props.id) { + wp.customize.previewer.send("lotta-panel-close", _this2.props.id); + } + if (_this2.reactDOMRoot) { + _this2.reactDOMRoot.unmount(); + _this2.reactDOMRoot = null; + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.unmountComponentAtNode)(_this2.wrapper); + } + _this2.wrapper.remove(); + _this2.wrapper = null; + }), 180); + })); + return _this2; + } + _createClass(Panel, [ { + key: "componentDidMount", + value: function componentDidMount() { + this.unbind.push(LottaEvents.bind("lotta-expand-panel", this.shouldExpand.bind(this))); + this.unbind.push(LottaEvents.bind("lotta-before-expand-panel", this.shouldClose.bind(this))); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.unbind.forEach((function(cb) { + return cb(); + })); + this.unbind = []; + } + }, { + key: "shouldClose", + value: function shouldClose(path) { + var listeners = Object.keys(this.props.listeners || {}); + if (listeners.filter((function(l) { + return path.indexOf(l) !== -1; + })).length > 0) { + return; + } + this.close(); + } + }, { + key: "shouldExpand", + value: function shouldExpand(path) { + if (!this.props.listeners || !this.props.listeners[path[0]]) { + return; + } + var active = path.shift(); + var timeout = 0; + if (this.current !== active) { + this.open(this.props.listeners[active]); + timeout = 180; + } + if (path.length > 0) { + setTimeout((function() { + LottaEvents.trigger("lotta-expand-panel", path); + }), timeout); + } + } + }, { + key: "render", + value: function render() { + var children = this.props.children; + return children({ + container: this.container, + open: this.open, + close: this.close + }); + } + } ]); + return Panel; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + a: () => animated, + animated: () => animated + }); + var _react_spring_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(181); + var __WEBPACK_REEXPORT_OBJECT__ = {}; + for (const __WEBPACK_IMPORT_KEY__ in _react_spring_core__WEBPACK_IMPORTED_MODULE_0__) if ([ "default", "a", "animated" ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _react_spring_core__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]; + __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); + var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); + var react_dom__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__); + var _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); + var _react_spring_animated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(184); + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + const _excluded$2 = [ "style", "children", "scrollTop", "scrollLeft" ]; + const isCustomPropRE = /^--/; + function dangerousStyleValue(name, value) { + if (value == null || typeof value === "boolean" || value === "") return ""; + if (typeof value === "number" && value !== 0 && !isCustomPropRE.test(name) && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + "px"; + return ("" + value).trim(); + } + const attributeCache = {}; + function applyAnimatedValues(instance, props) { + if (!instance.nodeType || !instance.setAttribute) { + return false; + } + const isFilterElement = instance.nodeName === "filter" || instance.parentNode && instance.parentNode.nodeName === "filter"; + const _ref = props, {style, children, scrollTop, scrollLeft} = _ref, attributes = _objectWithoutPropertiesLoose(_ref, _excluded$2); + const values = Object.values(attributes); + const names = Object.keys(attributes).map((name => isFilterElement || instance.hasAttribute(name) ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, (n => "-" + n.toLowerCase()))))); + if (children !== void 0) { + instance.textContent = children; + } + for (let name in style) { + if (style.hasOwnProperty(name)) { + const value = dangerousStyleValue(name, style[name]); + if (isCustomPropRE.test(name)) { + instance.style.setProperty(name, value); + } else { + instance.style[name] = value; + } + } + } + names.forEach(((name, i) => { + instance.setAttribute(name, values[i]); + })); + if (scrollTop !== void 0) { + instance.scrollTop = scrollTop; + } + if (scrollLeft !== void 0) { + instance.scrollLeft = scrollLeft; + } + } + let isUnitlessNumber = { + animationIterationCount: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + columns: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridRow: true, + gridRowEnd: true, + gridRowSpan: true, + gridRowStart: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnSpan: true, + gridColumnStart: true, + fontWeight: true, + lineClamp: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + fillOpacity: true, + floodOpacity: true, + stopOpacity: true, + strokeDasharray: true, + strokeDashoffset: true, + strokeMiterlimit: true, + strokeOpacity: true, + strokeWidth: true + }; + const prefixKey = (prefix, key) => prefix + key.charAt(0).toUpperCase() + key.substring(1); + const prefixes = [ "Webkit", "Ms", "Moz", "O" ]; + isUnitlessNumber = Object.keys(isUnitlessNumber).reduce(((acc, prop) => { + prefixes.forEach((prefix => acc[prefixKey(prefix, prop)] = acc[prop])); + return acc; + }), isUnitlessNumber); + const _excluded$1 = [ "x", "y", "z" ]; + const domTransforms = /^(matrix|translate|scale|rotate|skew)/; + const pxTransforms = /^(translate)/; + const degTransforms = /^(rotate|skew)/; + const addUnit = (value, unit) => _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.is.num(value) && value !== 0 ? value + unit : value; + const isValueIdentity = (value, id) => _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.is.arr(value) ? value.every((v => isValueIdentity(v, id))) : _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.is.num(value) ? value === id : parseFloat(value) === id; + class AnimatedStyle extends _react_spring_animated__WEBPACK_IMPORTED_MODULE_3__.AnimatedObject { + constructor(_ref) { + let {x, y, z} = _ref, style = _objectWithoutPropertiesLoose(_ref, _excluded$1); + const inputs = []; + const transforms = []; + if (x || y || z) { + inputs.push([ x || 0, y || 0, z || 0 ]); + transforms.push((xyz => [ `translate3d(${xyz.map((v => addUnit(v, "px"))).join(",")})`, isValueIdentity(xyz, 0) ])); + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.eachProp)(style, ((value, key) => { + if (key === "transform") { + inputs.push([ value || "" ]); + transforms.push((transform => [ transform, transform === "" ])); + } else if (domTransforms.test(key)) { + delete style[key]; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.is.und(value)) return; + const unit = pxTransforms.test(key) ? "px" : degTransforms.test(key) ? "deg" : ""; + inputs.push((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.toArray)(value)); + transforms.push(key === "rotate3d" ? ([x, y, z, deg]) => [ `rotate3d(${x},${y},${z},${addUnit(deg, unit)})`, isValueIdentity(deg, 0) ] : input => [ `${key}(${input.map((v => addUnit(v, unit))).join(",")})`, isValueIdentity(input, key.startsWith("scale") ? 1 : 0) ]); + } + })); + if (inputs.length) { + style.transform = new FluidTransform(inputs, transforms); + } + super(style); + } + } + class FluidTransform extends _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.FluidValue { + constructor(inputs, transforms) { + super(); + this._value = null; + this.inputs = inputs; + this.transforms = transforms; + } + get() { + return this._value || (this._value = this._get()); + } + _get() { + let transform = ""; + let identity = true; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.each)(this.inputs, ((input, i) => { + const arg1 = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.getFluidValue)(input[0]); + const [t, id] = this.transforms[i](_react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.is.arr(arg1) ? arg1 : input.map(_react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.getFluidValue)); + transform += " " + t; + identity = identity && id; + })); + return identity ? "none" : transform; + } + observerAdded(count) { + if (count == 1) (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.each)(this.inputs, (input => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.each)(input, (value => (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.hasFluidValue)(value) && (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.addFluidObserver)(value, this))))); + } + observerRemoved(count) { + if (count == 0) (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.each)(this.inputs, (input => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.each)(input, (value => (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.hasFluidValue)(value) && (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.removeFluidObserver)(value, this))))); + } + eventObserved(event) { + if (event.type == "change") { + this._value = null; + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.callFluidObservers)(this, event); + } + } + const primitives = [ "a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "foreignObject", "g", "image", "line", "linearGradient", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "tspan" ]; + const _excluded = [ "scrollTop", "scrollLeft" ]; + _react_spring_core__WEBPACK_IMPORTED_MODULE_0__.Globals.assign({ + batchedUpdates: react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates, + createStringInterpolator: _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.createStringInterpolator, + colors: _react_spring_shared__WEBPACK_IMPORTED_MODULE_2__.colors + }); + const host = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_3__.createHost)(primitives, { + applyAnimatedValues, + createAnimatedStyle: style => new AnimatedStyle(style), + getComponentProps: _ref => { + let props = _objectWithoutPropertiesLoose(_ref, _excluded); + return props; + } + }); + const animated = host.animated; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + BailSignal: () => BailSignal, + Controller: () => Controller, + FrameValue: () => FrameValue, + Globals: () => _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals, + Interpolation: () => Interpolation, + Spring: () => Spring, + SpringContext: () => SpringContext, + SpringRef: () => SpringRef, + SpringValue: () => SpringValue, + Trail: () => Trail, + Transition: () => Transition, + config: () => config, + createInterpolator: () => _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.createInterpolator, + easings: () => easings, + inferTo: () => inferTo, + interpolate: () => interpolate, + to: () => to, + update: () => update, + useChain: () => useChain, + useSpring: () => useSpring, + useSpringRef: () => useSpringRef, + useSprings: () => useSprings, + useTrail: () => useTrail, + useTransition: () => useTransition + }); + var _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(182); + var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); + var _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(184); + var _react_spring_types_animated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(185); + var _react_spring_types_animated__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(_react_spring_types_animated__WEBPACK_IMPORTED_MODULE_3__); + var __WEBPACK_REEXPORT_OBJECT__ = {}; + for (const __WEBPACK_IMPORT_KEY__ in _react_spring_types_animated__WEBPACK_IMPORTED_MODULE_3__) if ([ "default", "Globals", "createInterpolator", "BailSignal", "Controller", "FrameValue", "Interpolation", "Spring", "SpringContext", "SpringRef", "SpringValue", "Trail", "Transition", "config", "easings", "inferTo", "interpolate", "to", "update", "useChain", "useSpring", "useSpringRef", "useSprings", "useTrail", "useTransition" ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _react_spring_types_animated__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]; + __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); + var _react_spring_types_interpolation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(186); + var _react_spring_types_interpolation__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(_react_spring_types_interpolation__WEBPACK_IMPORTED_MODULE_4__); + var __WEBPACK_REEXPORT_OBJECT__ = {}; + for (const __WEBPACK_IMPORT_KEY__ in _react_spring_types_interpolation__WEBPACK_IMPORTED_MODULE_4__) if ([ "default", "Globals", "createInterpolator", "BailSignal", "Controller", "FrameValue", "Interpolation", "Spring", "SpringContext", "SpringRef", "SpringValue", "Trail", "Transition", "config", "easings", "inferTo", "interpolate", "to", "update", "useChain", "useSpring", "useSpringRef", "useSprings", "useTrail", "useTransition" ].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _react_spring_types_interpolation__WEBPACK_IMPORTED_MODULE_4__[__WEBPACK_IMPORT_KEY__]; + __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__); + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + function callProp(value, ...args) { + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(value) ? value(...args) : value; + } + const matchProp = (value, key) => value === true || !!(key && value && (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(value) ? value(key) : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(value).includes(key))); + const resolveProp = (prop, key) => _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(prop) ? key && prop[key] : prop; + const getDefaultProp = (props, key) => props.default === true ? props[key] : props.default ? props.default[key] : undefined; + const noopTransform = value => value; + const getDefaultProps = (props, transform = noopTransform) => { + let keys = DEFAULT_PROPS; + if (props.default && props.default !== true) { + props = props.default; + keys = Object.keys(props); + } + const defaults = {}; + for (const key of keys) { + const value = transform(props[key], key); + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(value)) { + defaults[key] = value; + } + } + return defaults; + }; + const DEFAULT_PROPS = [ "config", "onProps", "onStart", "onChange", "onPause", "onResume", "onRest" ]; + const RESERVED_PROPS = { + config: 1, + from: 1, + to: 1, + ref: 1, + loop: 1, + reset: 1, + pause: 1, + cancel: 1, + reverse: 1, + immediate: 1, + default: 1, + delay: 1, + onProps: 1, + onStart: 1, + onChange: 1, + onPause: 1, + onResume: 1, + onRest: 1, + onResolve: 1, + items: 1, + trail: 1, + sort: 1, + expires: 1, + initial: 1, + enter: 1, + update: 1, + leave: 1, + children: 1, + onDestroyed: 1, + keys: 1, + callId: 1, + parentId: 1 + }; + function getForwardProps(props) { + const forward = {}; + let count = 0; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(props, ((value, prop) => { + if (!RESERVED_PROPS[prop]) { + forward[prop] = value; + count++; + } + })); + if (count) { + return forward; + } + } + function inferTo(props) { + const to = getForwardProps(props); + if (to) { + const out = { + to + }; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(props, ((val, key) => key in to || (out[key] = val))); + return out; + } + return _extends({}, props); + } + function computeGoal(value) { + value = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(value); + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(value) ? value.map(computeGoal) : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isAnimatedString)(value) ? _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.createStringInterpolator({ + range: [ 0, 1 ], + output: [ value, value ] + })(1) : value; + } + function hasProps(props) { + for (const _ in props) return true; + return false; + } + function isAsyncTo(to) { + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(to) || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(to) && _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(to[0]); + } + function detachRefs(ctrl, ref) { + var _ctrl$ref; + (_ctrl$ref = ctrl.ref) == null ? void 0 : _ctrl$ref.delete(ctrl); + ref == null ? void 0 : ref.delete(ctrl); + } + function replaceRef(ctrl, ref) { + if (ref && ctrl.ref !== ref) { + var _ctrl$ref2; + (_ctrl$ref2 = ctrl.ref) == null ? void 0 : _ctrl$ref2.delete(ctrl); + ref.add(ctrl); + ctrl.ref = ref; + } + } + function useChain(refs, timeSteps, timeFrame = 1e3) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + if (timeSteps) { + let prevDelay = 0; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(refs, ((ref, i) => { + const controllers = ref.current; + if (controllers.length) { + let delay = timeFrame * timeSteps[i]; + if (isNaN(delay)) delay = prevDelay; else prevDelay = delay; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(controllers, (ctrl => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ctrl.queue, (props => { + const memoizedDelayProp = props.delay; + props.delay = key => delay + callProp(memoizedDelayProp || 0, key); + })); + })); + ref.start(); + } + })); + } else { + let p = Promise.resolve(); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(refs, (ref => { + const controllers = ref.current; + if (controllers.length) { + const queues = controllers.map((ctrl => { + const q = ctrl.queue; + ctrl.queue = []; + return q; + })); + p = p.then((() => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(controllers, ((ctrl, i) => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(queues[i] || [], (update => ctrl.queue.push(update))))); + return Promise.all(ref.start()); + })); + } + })); + } + })); + } + const config = { + default: { + tension: 170, + friction: 26 + }, + gentle: { + tension: 120, + friction: 14 + }, + wobbly: { + tension: 180, + friction: 12 + }, + stiff: { + tension: 210, + friction: 20 + }, + slow: { + tension: 280, + friction: 60 + }, + molasses: { + tension: 280, + friction: 120 + } + }; + const c1 = 1.70158; + const c2 = c1 * 1.525; + const c3 = c1 + 1; + const c4 = 2 * Math.PI / 3; + const c5 = 2 * Math.PI / 4.5; + const bounceOut = x => { + const n1 = 7.5625; + const d1 = 2.75; + if (x < 1 / d1) { + return n1 * x * x; + } else if (x < 2 / d1) { + return n1 * (x -= 1.5 / d1) * x + .75; + } else if (x < 2.5 / d1) { + return n1 * (x -= 2.25 / d1) * x + .9375; + } else { + return n1 * (x -= 2.625 / d1) * x + .984375; + } + }; + const easings = { + linear: x => x, + easeInQuad: x => x * x, + easeOutQuad: x => 1 - (1 - x) * (1 - x), + easeInOutQuad: x => x < .5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2, + easeInCubic: x => x * x * x, + easeOutCubic: x => 1 - Math.pow(1 - x, 3), + easeInOutCubic: x => x < .5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2, + easeInQuart: x => x * x * x * x, + easeOutQuart: x => 1 - Math.pow(1 - x, 4), + easeInOutQuart: x => x < .5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2, + easeInQuint: x => x * x * x * x * x, + easeOutQuint: x => 1 - Math.pow(1 - x, 5), + easeInOutQuint: x => x < .5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2, + easeInSine: x => 1 - Math.cos(x * Math.PI / 2), + easeOutSine: x => Math.sin(x * Math.PI / 2), + easeInOutSine: x => -(Math.cos(Math.PI * x) - 1) / 2, + easeInExpo: x => x === 0 ? 0 : Math.pow(2, 10 * x - 10), + easeOutExpo: x => x === 1 ? 1 : 1 - Math.pow(2, -10 * x), + easeInOutExpo: x => x === 0 ? 0 : x === 1 ? 1 : x < .5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2, + easeInCirc: x => 1 - Math.sqrt(1 - Math.pow(x, 2)), + easeOutCirc: x => Math.sqrt(1 - Math.pow(x - 1, 2)), + easeInOutCirc: x => x < .5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2, + easeInBack: x => c3 * x * x * x - c1 * x * x, + easeOutBack: x => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2), + easeInOutBack: x => x < .5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2, + easeInElastic: x => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4), + easeOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - .75) * c4) + 1, + easeInOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : x < .5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1, + easeInBounce: x => 1 - bounceOut(1 - x), + easeOutBounce: bounceOut, + easeInOutBounce: x => x < .5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2 + }; + const defaults = _extends({}, config.default, { + mass: 1, + damping: 1, + easing: easings.linear, + clamp: false + }); + class AnimationConfig { + constructor() { + this.tension = void 0; + this.friction = void 0; + this.frequency = void 0; + this.damping = void 0; + this.mass = void 0; + this.velocity = 0; + this.restVelocity = void 0; + this.precision = void 0; + this.progress = void 0; + this.duration = void 0; + this.easing = void 0; + this.clamp = void 0; + this.bounce = void 0; + this.decay = void 0; + this.round = void 0; + Object.assign(this, defaults); + } + } + function mergeConfig(config, newConfig, defaultConfig) { + if (defaultConfig) { + defaultConfig = _extends({}, defaultConfig); + sanitizeConfig(defaultConfig, newConfig); + newConfig = _extends({}, defaultConfig, newConfig); + } + sanitizeConfig(config, newConfig); + Object.assign(config, newConfig); + for (const key in defaults) { + if (config[key] == null) { + config[key] = defaults[key]; + } + } + let {mass, frequency, damping} = config; + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(frequency)) { + if (frequency < .01) frequency = .01; + if (damping < 0) damping = 0; + config.tension = Math.pow(2 * Math.PI / frequency, 2) * mass; + config.friction = 4 * Math.PI * damping * mass / frequency; + } + return config; + } + function sanitizeConfig(config, props) { + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.decay)) { + config.duration = undefined; + } else { + const isTensionConfig = !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.tension) || !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.friction); + if (isTensionConfig || !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.frequency) || !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.damping) || !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.mass)) { + config.duration = undefined; + config.decay = undefined; + } + if (isTensionConfig) { + config.frequency = undefined; + } + } + } + const emptyArray = []; + class Animation { + constructor() { + this.changed = false; + this.values = emptyArray; + this.toValues = null; + this.fromValues = emptyArray; + this.to = void 0; + this.from = void 0; + this.config = new AnimationConfig; + this.immediate = false; + } + } + function scheduleProps(callId, {key, props, defaultProps, state, actions}) { + return new Promise(((resolve, reject) => { + var _props$cancel; + let delay; + let timeout; + let cancel = matchProp((_props$cancel = props.cancel) != null ? _props$cancel : defaultProps == null ? void 0 : defaultProps.cancel, key); + if (cancel) { + onStart(); + } else { + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.pause)) { + state.paused = matchProp(props.pause, key); + } + let pause = defaultProps == null ? void 0 : defaultProps.pause; + if (pause !== true) { + pause = state.paused || matchProp(pause, key); + } + delay = callProp(props.delay || 0, key); + if (pause) { + state.resumeQueue.add(onResume); + actions.pause(); + } else { + actions.resume(); + onResume(); + } + } + function onPause() { + state.resumeQueue.add(onResume); + state.timeouts.delete(timeout); + timeout.cancel(); + delay = timeout.time - _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.now(); + } + function onResume() { + if (delay > 0 && !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.skipAnimation) { + state.delayed = true; + timeout = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.setTimeout(onStart, delay); + state.pauseQueue.add(onPause); + state.timeouts.add(timeout); + } else { + onStart(); + } + } + function onStart() { + if (state.delayed) { + state.delayed = false; + } + state.pauseQueue.delete(onPause); + state.timeouts.delete(timeout); + if (callId <= (state.cancelId || 0)) { + cancel = true; + } + try { + actions.start(_extends({}, props, { + callId, + cancel + }), resolve); + } catch (err) { + reject(err); + } + } + })); + } + const getCombinedResult = (target, results) => results.length == 1 ? results[0] : results.some((result => result.cancelled)) ? getCancelledResult(target.get()) : results.every((result => result.noop)) ? getNoopResult(target.get()) : getFinishedResult(target.get(), results.every((result => result.finished))); + const getNoopResult = value => ({ + value, + noop: true, + finished: true, + cancelled: false + }); + const getFinishedResult = (value, finished, cancelled = false) => ({ + value, + finished, + cancelled + }); + const getCancelledResult = value => ({ + value, + cancelled: true, + finished: false + }); + function runAsync(to, props, state, target) { + const {callId, parentId, onRest} = props; + const {asyncTo: prevTo, promise: prevPromise} = state; + if (!parentId && to === prevTo && !props.reset) { + return prevPromise; + } + return state.promise = (async () => { + state.asyncId = callId; + state.asyncTo = to; + const defaultProps = getDefaultProps(props, ((value, key) => key === "onRest" ? undefined : value)); + let preventBail; + let bail; + const bailPromise = new Promise(((resolve, reject) => (preventBail = resolve, bail = reject))); + const bailIfEnded = bailSignal => { + const bailResult = callId <= (state.cancelId || 0) && getCancelledResult(target) || callId !== state.asyncId && getFinishedResult(target, false); + if (bailResult) { + bailSignal.result = bailResult; + bail(bailSignal); + throw bailSignal; + } + }; + const animate = (arg1, arg2) => { + const bailSignal = new BailSignal; + const skipAnimationSignal = new SkipAniamtionSignal; + return (async () => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.skipAnimation) { + stopAsync(state); + skipAnimationSignal.result = getFinishedResult(target, false); + bail(skipAnimationSignal); + throw skipAnimationSignal; + } + bailIfEnded(bailSignal); + const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, { + to: arg1 + }); + props.parentId = callId; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(defaultProps, ((value, key) => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props[key])) { + props[key] = value; + } + })); + const result = await target.start(props); + bailIfEnded(bailSignal); + if (state.paused) { + await new Promise((resume => { + state.resumeQueue.add(resume); + })); + } + return result; + })(); + }; + let result; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.skipAnimation) { + stopAsync(state); + return getFinishedResult(target, false); + } + try { + let animating; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(to)) { + animating = (async queue => { + for (const props of queue) { + await animate(props); + } + })(to); + } else { + animating = Promise.resolve(to(animate, target.stop.bind(target))); + } + await Promise.all([ animating.then(preventBail), bailPromise ]); + result = getFinishedResult(target.get(), true, false); + } catch (err) { + if (err instanceof BailSignal) { + result = err.result; + } else if (err instanceof SkipAniamtionSignal) { + result = err.result; + } else { + throw err; + } + } finally { + if (callId == state.asyncId) { + state.asyncId = parentId; + state.asyncTo = parentId ? prevTo : undefined; + state.promise = parentId ? prevPromise : undefined; + } + } + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(onRest)) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => { + onRest(result, target, target.item); + })); + } + return result; + })(); + } + function stopAsync(state, cancelId) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flush)(state.timeouts, (t => t.cancel())); + state.pauseQueue.clear(); + state.resumeQueue.clear(); + state.asyncId = state.asyncTo = state.promise = undefined; + if (cancelId) state.cancelId = cancelId; + } + class BailSignal extends Error { + constructor() { + super("An async animation has been interrupted. You see this error because you " + "forgot to use `await` or `.catch(...)` on its returned promise."); + this.result = void 0; + } + } + class SkipAniamtionSignal extends Error { + constructor() { + super("SkipAnimationSignal"); + this.result = void 0; + } + } + const isFrameValue = value => value instanceof FrameValue; + let nextId$1 = 1; + class FrameValue extends _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.FluidValue { + constructor(...args) { + super(...args); + this.id = nextId$1++; + this.key = void 0; + this._priority = 0; + } + get priority() { + return this._priority; + } + set priority(priority) { + if (this._priority != priority) { + this._priority = priority; + this._onPriorityChange(priority); + } + } + get() { + const node = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + return node && node.getValue(); + } + to(...args) { + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.to(this, args); + } + interpolate(...args) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.deprecateInterpolate)(); + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.to(this, args); + } + toJSON() { + return this.get(); + } + observerAdded(count) { + if (count == 1) this._attach(); + } + observerRemoved(count) { + if (count == 0) this._detach(); + } + _attach() {} + _detach() {} + _onChange(value, idle = false) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.callFluidObservers)(this, { + type: "change", + parent: this, + value, + idle + }); + } + _onPriorityChange(priority) { + if (!this.idle) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.frameLoop.sort(this); + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.callFluidObservers)(this, { + type: "priority", + parent: this, + priority + }); + } + } + const $P = Symbol.for("SpringPhase"); + const HAS_ANIMATED = 1; + const IS_ANIMATING = 2; + const IS_PAUSED = 4; + const hasAnimated = target => (target[$P] & HAS_ANIMATED) > 0; + const isAnimating = target => (target[$P] & IS_ANIMATING) > 0; + const isPaused = target => (target[$P] & IS_PAUSED) > 0; + const setActiveBit = (target, active) => active ? target[$P] |= IS_ANIMATING | HAS_ANIMATED : target[$P] &= ~IS_ANIMATING; + const setPausedBit = (target, paused) => paused ? target[$P] |= IS_PAUSED : target[$P] &= ~IS_PAUSED; + class SpringValue extends FrameValue { + constructor(arg1, arg2) { + super(); + this.key = void 0; + this.animation = new Animation; + this.queue = void 0; + this.defaultProps = {}; + this._state = { + paused: false, + delayed: false, + pauseQueue: new Set, + resumeQueue: new Set, + timeouts: new Set + }; + this._pendingCalls = new Set; + this._lastCallId = 0; + this._lastToId = 0; + this._memoizedDuration = 0; + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(arg1) || !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(arg2)) { + const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(arg1) ? _extends({}, arg1) : _extends({}, arg2, { + from: arg1 + }); + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.default)) { + props.default = true; + } + this.start(props); + } + } + get idle() { + return !(isAnimating(this) || this._state.asyncTo) || isPaused(this); + } + get goal() { + return (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(this.animation.to); + } + get velocity() { + const node = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + return node instanceof _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.AnimatedValue ? node.lastVelocity || 0 : node.getPayload().map((node => node.lastVelocity || 0)); + } + get hasAnimated() { + return hasAnimated(this); + } + get isAnimating() { + return isAnimating(this); + } + get isPaused() { + return isPaused(this); + } + get isDelayed() { + return this._state.delayed; + } + advance(dt) { + let idle = true; + let changed = false; + const anim = this.animation; + let {config, toValues} = anim; + const payload = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getPayload)(anim.to); + if (!payload && (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(anim.to)) { + toValues = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(anim.to)); + } + anim.values.forEach(((node, i) => { + if (node.done) return; + const to = node.constructor == _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.AnimatedString ? 1 : payload ? payload[i].lastPosition : toValues[i]; + let finished = anim.immediate; + let position = to; + if (!finished) { + position = node.lastPosition; + if (config.tension <= 0) { + node.done = true; + return; + } + let elapsed = node.elapsedTime += dt; + const from = anim.fromValues[i]; + const v0 = node.v0 != null ? node.v0 : node.v0 = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(config.velocity) ? config.velocity[i] : config.velocity; + let velocity; + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(config.duration)) { + let p = 1; + if (config.duration > 0) { + if (this._memoizedDuration !== config.duration) { + this._memoizedDuration = config.duration; + if (node.durationProgress > 0) { + node.elapsedTime = config.duration * node.durationProgress; + elapsed = node.elapsedTime += dt; + } + } + p = (config.progress || 0) + elapsed / this._memoizedDuration; + p = p > 1 ? 1 : p < 0 ? 0 : p; + node.durationProgress = p; + } + position = from + config.easing(p) * (to - from); + velocity = (position - node.lastPosition) / dt; + finished = p == 1; + } else if (config.decay) { + const decay = config.decay === true ? .998 : config.decay; + const e = Math.exp(-(1 - decay) * elapsed); + position = from + v0 / (1 - decay) * (1 - e); + finished = Math.abs(node.lastPosition - position) < .1; + velocity = v0 * e; + } else { + velocity = node.lastVelocity == null ? v0 : node.lastVelocity; + const precision = config.precision || (from == to ? .005 : Math.min(1, Math.abs(to - from) * .001)); + const restVelocity = config.restVelocity || precision / 10; + const bounceFactor = config.clamp ? 0 : config.bounce; + const canBounce = !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(bounceFactor); + const isGrowing = from == to ? node.v0 > 0 : from < to; + let isMoving; + let isBouncing = false; + const step = 1; + const numSteps = Math.ceil(dt / step); + for (let n = 0; n < numSteps; ++n) { + isMoving = Math.abs(velocity) > restVelocity; + if (!isMoving) { + finished = Math.abs(to - position) <= precision; + if (finished) { + break; + } + } + if (canBounce) { + isBouncing = position == to || position > to == isGrowing; + if (isBouncing) { + velocity = -velocity * bounceFactor; + position = to; + } + } + const springForce = -config.tension * 1e-6 * (position - to); + const dampingForce = -config.friction * .001 * velocity; + const acceleration = (springForce + dampingForce) / config.mass; + velocity = velocity + acceleration * step; + position = position + velocity * step; + } + } + node.lastVelocity = velocity; + if (Number.isNaN(position)) { + console.warn(`Got NaN while animating:`, this); + finished = true; + } + } + if (payload && !payload[i].done) { + finished = false; + } + if (finished) { + node.done = true; + } else { + idle = false; + } + if (node.setValue(position, config.round)) { + changed = true; + } + })); + const node = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + const currVal = node.getValue(); + if (idle) { + const finalVal = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(anim.to); + if ((currVal !== finalVal || changed) && !config.decay) { + node.setValue(finalVal); + this._onChange(finalVal); + } else if (changed && config.decay) { + this._onChange(currVal); + } + this._stop(); + } else if (changed) { + this._onChange(currVal); + } + } + set(value) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => { + this._stop(); + this._focus(value); + this._set(value); + })); + return this; + } + pause() { + this._update({ + pause: true + }); + } + resume() { + this._update({ + pause: false + }); + } + finish() { + if (isAnimating(this)) { + const {to, config} = this.animation; + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => { + this._onStart(); + if (!config.decay) { + this._set(to, false); + } + this._stop(); + })); + } + return this; + } + update(props) { + const queue = this.queue || (this.queue = []); + queue.push(props); + return this; + } + start(to, arg2) { + let queue; + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(to)) { + queue = [ _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(to) ? to : _extends({}, arg2, { + to + }) ]; + } else { + queue = this.queue || []; + this.queue = []; + } + return Promise.all(queue.map((props => { + const up = this._update(props); + return up; + }))).then((results => getCombinedResult(this, results))); + } + stop(cancel) { + const {to} = this.animation; + this._focus(this.get()); + stopAsync(this._state, cancel && this._lastCallId); + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => this._stop(to, cancel))); + return this; + } + reset() { + this._update({ + reset: true + }); + } + eventObserved(event) { + if (event.type == "change") { + this._start(); + } else if (event.type == "priority") { + this.priority = event.priority + 1; + } + } + _prepareNode(props) { + const key = this.key || ""; + let {to, from} = props; + to = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(to) ? to[key] : to; + if (to == null || isAsyncTo(to)) { + to = undefined; + } + from = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(from) ? from[key] : from; + if (from == null) { + from = undefined; + } + const range = { + to, + from + }; + if (!hasAnimated(this)) { + if (props.reverse) [to, from] = [ from, to ]; + from = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(from); + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(from)) { + this._set(from); + } else if (!(0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this)) { + this._set(to); + } + } + return range; + } + _update(_ref, isLoop) { + let props = _extends({}, _ref); + const {key, defaultProps} = this; + if (props.default) Object.assign(defaultProps, getDefaultProps(props, ((value, prop) => /^on/.test(prop) ? resolveProp(value, key) : value))); + mergeActiveFn(this, props, "onProps"); + sendEvent(this, "onProps", props, this); + const range = this._prepareNode(props); + if (Object.isFrozen(this)) { + throw Error("Cannot animate a `SpringValue` object that is frozen. " + "Did you forget to pass your component to `animated(...)` before animating its props?"); + } + const state = this._state; + return scheduleProps(++this._lastCallId, { + key, + props, + defaultProps, + state, + actions: { + pause: () => { + if (!isPaused(this)) { + setPausedBit(this, true); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flushCalls)(state.pauseQueue); + sendEvent(this, "onPause", getFinishedResult(this, checkFinished(this, this.animation.to)), this); + } + }, + resume: () => { + if (isPaused(this)) { + setPausedBit(this, false); + if (isAnimating(this)) { + this._resume(); + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flushCalls)(state.resumeQueue); + sendEvent(this, "onResume", getFinishedResult(this, checkFinished(this, this.animation.to)), this); + } + }, + start: this._merge.bind(this, range) + } + }).then((result => { + if (props.loop && result.finished && !(isLoop && result.noop)) { + const nextProps = createLoopUpdate(props); + if (nextProps) { + return this._update(nextProps, true); + } + } + return result; + })); + } + _merge(range, props, resolve) { + if (props.cancel) { + this.stop(true); + return resolve(getCancelledResult(this)); + } + const hasToProp = !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(range.to); + const hasFromProp = !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(range.from); + if (hasToProp || hasFromProp) { + if (props.callId > this._lastToId) { + this._lastToId = props.callId; + } else { + return resolve(getCancelledResult(this)); + } + } + const {key, defaultProps, animation: anim} = this; + const {to: prevTo, from: prevFrom} = anim; + let {to = prevTo, from = prevFrom} = range; + if (hasFromProp && !hasToProp && (!props.default || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(to))) { + to = from; + } + if (props.reverse) [to, from] = [ from, to ]; + const hasFromChanged = !(0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(from, prevFrom); + if (hasFromChanged) { + anim.from = from; + } + from = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(from); + const hasToChanged = !(0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(to, prevTo); + if (hasToChanged) { + this._focus(to); + } + const hasAsyncTo = isAsyncTo(props.to); + const {config} = anim; + const {decay, velocity} = config; + if (hasToProp || hasFromProp) { + config.velocity = 0; + } + if (props.config && !hasAsyncTo) { + mergeConfig(config, callProp(props.config, key), props.config !== defaultProps.config ? callProp(defaultProps.config, key) : void 0); + } + let node = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + if (!node || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(to)) { + return resolve(getFinishedResult(this, true)); + } + const reset = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.reset) ? hasFromProp && !props.default : !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(from) && matchProp(props.reset, key); + const value = reset ? from : this.get(); + const goal = computeGoal(to); + const isAnimatable = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.num(goal) || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(goal) || (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isAnimatedString)(goal); + const immediate = !hasAsyncTo && (!isAnimatable || matchProp(defaultProps.immediate || props.immediate, key)); + if (hasToChanged) { + const nodeType = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimatedType)(to); + if (nodeType !== node.constructor) { + if (immediate) { + node = this._set(goal); + } else throw Error(`Cannot animate between ${node.constructor.name} and ${nodeType.name}, as the "to" prop suggests`); + } + } + const goalType = node.constructor; + let started = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(to); + let finished = false; + if (!started) { + const hasValueChanged = reset || !hasAnimated(this) && hasFromChanged; + if (hasToChanged || hasValueChanged) { + finished = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(computeGoal(value), goal); + started = !finished; + } + if (!(0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(anim.immediate, immediate) && !immediate || !(0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(config.decay, decay) || !(0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(config.velocity, velocity)) { + started = true; + } + } + if (finished && isAnimating(this)) { + if (anim.changed && !reset) { + started = true; + } else if (!started) { + this._stop(prevTo); + } + } + if (!hasAsyncTo) { + if (started || (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(prevTo)) { + anim.values = node.getPayload(); + anim.toValues = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(to) ? null : goalType == _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.AnimatedString ? [ 1 ] : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(goal); + } + if (anim.immediate != immediate) { + anim.immediate = immediate; + if (!immediate && !reset) { + this._set(prevTo); + } + } + if (started) { + const {onRest} = anim; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ACTIVE_EVENTS, (type => mergeActiveFn(this, props, type))); + const result = getFinishedResult(this, checkFinished(this, prevTo)); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flushCalls)(this._pendingCalls, result); + this._pendingCalls.add(resolve); + if (anim.changed) _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => { + anim.changed = !reset; + onRest == null ? void 0 : onRest(result, this); + if (reset) { + callProp(defaultProps.onRest, result); + } else { + anim.onStart == null ? void 0 : anim.onStart(result, this); + } + })); + } + } + if (reset) { + this._set(value); + } + if (hasAsyncTo) { + resolve(runAsync(props.to, props, this._state, this)); + } else if (started) { + this._start(); + } else if (isAnimating(this) && !hasToChanged) { + this._pendingCalls.add(resolve); + } else { + resolve(getNoopResult(value)); + } + } + _focus(value) { + const anim = this.animation; + if (value !== anim.to) { + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidObservers)(this)) { + this._detach(); + } + anim.to = value; + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidObservers)(this)) { + this._attach(); + } + } + } + _attach() { + let priority = 0; + const {to} = this.animation; + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(to)) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.addFluidObserver)(to, this); + if (isFrameValue(to)) { + priority = to.priority + 1; + } + } + this.priority = priority; + } + _detach() { + const {to} = this.animation; + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(to)) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.removeFluidObserver)(to, this); + } + } + _set(arg, idle = true) { + const value = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(arg); + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(value)) { + const oldNode = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + if (!oldNode || !(0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(value, oldNode.getValue())) { + const nodeType = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimatedType)(value); + if (!oldNode || oldNode.constructor != nodeType) { + (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.setAnimated)(this, nodeType.create(value)); + } else { + oldNode.setValue(value); + } + if (oldNode) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => { + this._onChange(value, idle); + })); + } + } + } + return (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this); + } + _onStart() { + const anim = this.animation; + if (!anim.changed) { + anim.changed = true; + sendEvent(this, "onStart", getFinishedResult(this, checkFinished(this, anim.to)), this); + } + } + _onChange(value, idle) { + if (!idle) { + this._onStart(); + callProp(this.animation.onChange, value, this); + } + callProp(this.defaultProps.onChange, value, this); + super._onChange(value, idle); + } + _start() { + const anim = this.animation; + (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this).reset((0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(anim.to)); + if (!anim.immediate) { + anim.fromValues = anim.values.map((node => node.lastPosition)); + } + if (!isAnimating(this)) { + setActiveBit(this, true); + if (!isPaused(this)) { + this._resume(); + } + } + } + _resume() { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.skipAnimation) { + this.finish(); + } else { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.frameLoop.start(this); + } + } + _stop(goal, cancel) { + if (isAnimating(this)) { + setActiveBit(this, false); + const anim = this.animation; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(anim.values, (node => { + node.done = true; + })); + if (anim.toValues) { + anim.onChange = anim.onPause = anim.onResume = undefined; + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.callFluidObservers)(this, { + type: "idle", + parent: this + }); + const result = cancel ? getCancelledResult(this.get()) : getFinishedResult(this.get(), checkFinished(this, goal != null ? goal : anim.to)); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flushCalls)(this._pendingCalls, result); + if (anim.changed) { + anim.changed = false; + sendEvent(this, "onRest", result, this); + } + } + } + } + function checkFinished(target, to) { + const goal = computeGoal(to); + const value = computeGoal(target.get()); + return (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(value, goal); + } + function createLoopUpdate(props, loop = props.loop, to = props.to) { + let loopRet = callProp(loop); + if (loopRet) { + const overrides = loopRet !== true && inferTo(loopRet); + const reverse = (overrides || props).reverse; + const reset = !overrides || overrides.reset; + return createUpdate(_extends({}, props, { + loop, + default: false, + pause: undefined, + to: !reverse || isAsyncTo(to) ? to : undefined, + from: reset ? props.from : undefined, + reset + }, overrides)); + } + } + function createUpdate(props) { + const {to, from} = props = inferTo(props); + const keys = new Set; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(to)) findDefined(to, keys); + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(from)) findDefined(from, keys); + props.keys = keys.size ? Array.from(keys) : null; + return props; + } + function declareUpdate(props) { + const update = createUpdate(props); + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(update.default)) { + update.default = getDefaultProps(update); + } + return update; + } + function findDefined(values, keys) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(values, ((value, key) => value != null && keys.add(key))); + } + const ACTIVE_EVENTS = [ "onStart", "onRest", "onChange", "onPause", "onResume" ]; + function mergeActiveFn(target, props, type) { + target.animation[type] = props[type] !== getDefaultProp(props, type) ? resolveProp(props[type], target.key) : undefined; + } + function sendEvent(target, type, ...args) { + var _target$animation$typ, _target$animation, _target$defaultProps$, _target$defaultProps; + (_target$animation$typ = (_target$animation = target.animation)[type]) == null ? void 0 : _target$animation$typ.call(_target$animation, ...args); + (_target$defaultProps$ = (_target$defaultProps = target.defaultProps)[type]) == null ? void 0 : _target$defaultProps$.call(_target$defaultProps, ...args); + } + const BATCHED_EVENTS = [ "onStart", "onChange", "onRest" ]; + let nextId = 1; + class Controller { + constructor(props, flush) { + this.id = nextId++; + this.springs = {}; + this.queue = []; + this.ref = void 0; + this._flush = void 0; + this._initialProps = void 0; + this._lastAsyncId = 0; + this._active = new Set; + this._changed = new Set; + this._started = false; + this._item = void 0; + this._state = { + paused: false, + pauseQueue: new Set, + resumeQueue: new Set, + timeouts: new Set + }; + this._events = { + onStart: new Map, + onChange: new Map, + onRest: new Map + }; + this._onFrame = this._onFrame.bind(this); + if (flush) { + this._flush = flush; + } + if (props) { + this.start(_extends({ + default: true + }, props)); + } + } + get idle() { + return !this._state.asyncTo && Object.values(this.springs).every((spring => spring.idle && !spring.isDelayed && !spring.isPaused)); + } + get item() { + return this._item; + } + set item(item) { + this._item = item; + } + get() { + const values = {}; + this.each(((spring, key) => values[key] = spring.get())); + return values; + } + set(values) { + for (const key in values) { + const value = values[key]; + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(value)) { + this.springs[key].set(value); + } + } + } + update(props) { + if (props) { + this.queue.push(createUpdate(props)); + } + return this; + } + start(props) { + let {queue} = this; + if (props) { + queue = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(props).map(createUpdate); + } else { + this.queue = []; + } + if (this._flush) { + return this._flush(this, queue); + } + prepareKeys(this, queue); + return flushUpdateQueue(this, queue); + } + stop(arg, keys) { + if (arg !== !!arg) { + keys = arg; + } + if (keys) { + const springs = this.springs; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(keys), (key => springs[key].stop(!!arg))); + } else { + stopAsync(this._state, this._lastAsyncId); + this.each((spring => spring.stop(!!arg))); + } + return this; + } + pause(keys) { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(keys)) { + this.start({ + pause: true + }); + } else { + const springs = this.springs; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(keys), (key => springs[key].pause())); + } + return this; + } + resume(keys) { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(keys)) { + this.start({ + pause: false + }); + } else { + const springs = this.springs; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(keys), (key => springs[key].resume())); + } + return this; + } + each(iterator) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(this.springs, iterator); + } + _onFrame() { + const {onStart, onChange, onRest} = this._events; + const active = this._active.size > 0; + const changed = this._changed.size > 0; + if (active && !this._started || changed && !this._started) { + this._started = true; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flush)(onStart, (([onStart, result]) => { + result.value = this.get(); + onStart(result, this, this._item); + })); + } + const idle = !active && this._started; + const values = changed || idle && onRest.size ? this.get() : null; + if (changed && onChange.size) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flush)(onChange, (([onChange, result]) => { + result.value = values; + onChange(result, this, this._item); + })); + } + if (idle) { + this._started = false; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flush)(onRest, (([onRest, result]) => { + result.value = values; + onRest(result, this, this._item); + })); + } + } + eventObserved(event) { + if (event.type == "change") { + this._changed.add(event.parent); + if (!event.idle) { + this._active.add(event.parent); + } + } else if (event.type == "idle") { + this._active.delete(event.parent); + } else return; + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.onFrame(this._onFrame); + } + } + function flushUpdateQueue(ctrl, queue) { + return Promise.all(queue.map((props => flushUpdate(ctrl, props)))).then((results => getCombinedResult(ctrl, results))); + } + async function flushUpdate(ctrl, props, isLoop) { + const {keys, to, from, loop, onRest, onResolve} = props; + const defaults = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(props.default) && props.default; + if (loop) { + props.loop = false; + } + if (to === false) props.to = null; + if (from === false) props.from = null; + const asyncTo = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(to) || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(to) ? to : undefined; + if (asyncTo) { + props.to = undefined; + props.onRest = undefined; + if (defaults) { + defaults.onRest = undefined; + } + } else { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(BATCHED_EVENTS, (key => { + const handler = props[key]; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(handler)) { + const queue = ctrl["_events"][key]; + props[key] = ({finished, cancelled}) => { + const result = queue.get(handler); + if (result) { + if (!finished) result.finished = false; + if (cancelled) result.cancelled = true; + } else { + queue.set(handler, { + value: null, + finished: finished || false, + cancelled: cancelled || false + }); + } + }; + if (defaults) { + defaults[key] = props[key]; + } + } + })); + } + const state = ctrl["_state"]; + if (props.pause === !state.paused) { + state.paused = props.pause; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.flushCalls)(props.pause ? state.pauseQueue : state.resumeQueue); + } else if (state.paused) { + props.pause = true; + } + const promises = (keys || Object.keys(ctrl.springs)).map((key => ctrl.springs[key].start(props))); + const cancel = props.cancel === true || getDefaultProp(props, "cancel") === true; + if (asyncTo || cancel && state.asyncId) { + promises.push(scheduleProps(++ctrl["_lastAsyncId"], { + props, + state, + actions: { + pause: _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.noop, + resume: _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.noop, + start(props, resolve) { + if (cancel) { + stopAsync(state, ctrl["_lastAsyncId"]); + resolve(getCancelledResult(ctrl)); + } else { + props.onRest = onRest; + resolve(runAsync(asyncTo, props, state, ctrl)); + } + } + } + })); + } + if (state.paused) { + await new Promise((resume => { + state.resumeQueue.add(resume); + })); + } + const result = getCombinedResult(ctrl, await Promise.all(promises)); + if (loop && result.finished && !(isLoop && result.noop)) { + const nextProps = createLoopUpdate(props, loop, to); + if (nextProps) { + prepareKeys(ctrl, [ nextProps ]); + return flushUpdate(ctrl, nextProps, true); + } + } + if (onResolve) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => onResolve(result, ctrl, ctrl.item))); + } + return result; + } + function getSprings(ctrl, props) { + const springs = _extends({}, ctrl.springs); + if (props) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(props), (props => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props.keys)) { + props = createUpdate(props); + } + if (!_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(props.to)) { + props = _extends({}, props, { + to: undefined + }); + } + prepareSprings(springs, props, (key => createSpring(key))); + })); + } + setSprings(ctrl, springs); + return springs; + } + function setSprings(ctrl, springs) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(springs, ((spring, key) => { + if (!ctrl.springs[key]) { + ctrl.springs[key] = spring; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.addFluidObserver)(spring, ctrl); + } + })); + } + function createSpring(key, observer) { + const spring = new SpringValue; + spring.key = key; + if (observer) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.addFluidObserver)(spring, observer); + } + return spring; + } + function prepareSprings(springs, props, create) { + if (props.keys) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(props.keys, (key => { + const spring = springs[key] || (springs[key] = create(key)); + spring["_prepareNode"](props); + })); + } + } + function prepareKeys(ctrl, queue) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(queue, (props => { + prepareSprings(ctrl.springs, props, (key => createSpring(key, ctrl))); + })); + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + const _excluded$3 = [ "children" ]; + const SpringContext = _ref => { + let {children} = _ref, props = _objectWithoutPropertiesLoose(_ref, _excluded$3); + const inherited = (0, react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ctx); + const pause = props.pause || !!inherited.pause, immediate = props.immediate || !!inherited.immediate; + props = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useMemoOne)((() => ({ + pause, + immediate + })), [ pause, immediate ]); + const {Provider} = ctx; + return react__WEBPACK_IMPORTED_MODULE_1__.createElement(Provider, { + value: props + }, children); + }; + const ctx = makeContext(SpringContext, {}); + SpringContext.Provider = ctx.Provider; + SpringContext.Consumer = ctx.Consumer; + function makeContext(target, init) { + Object.assign(target, react__WEBPACK_IMPORTED_MODULE_1__.createContext(init)); + target.Provider._context = target; + target.Consumer._context = target; + return target; + } + const SpringRef = () => { + const current = []; + const SpringRef = function SpringRef(props) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.deprecateDirectCall)(); + const results = []; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, ((ctrl, i) => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props)) { + results.push(ctrl.start()); + } else { + const update = _getProps(props, ctrl, i); + if (update) { + results.push(ctrl.start(update)); + } + } + })); + return results; + }; + SpringRef.current = current; + SpringRef.add = function(ctrl) { + if (!current.includes(ctrl)) { + current.push(ctrl); + } + }; + SpringRef.delete = function(ctrl) { + const i = current.indexOf(ctrl); + if (~i) current.splice(i, 1); + }; + SpringRef.pause = function() { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, (ctrl => ctrl.pause(...arguments))); + return this; + }; + SpringRef.resume = function() { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, (ctrl => ctrl.resume(...arguments))); + return this; + }; + SpringRef.set = function(values) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, (ctrl => ctrl.set(values))); + }; + SpringRef.start = function(props) { + const results = []; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, ((ctrl, i) => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(props)) { + results.push(ctrl.start()); + } else { + const update = this._getProps(props, ctrl, i); + if (update) { + results.push(ctrl.start(update)); + } + } + })); + return results; + }; + SpringRef.stop = function() { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, (ctrl => ctrl.stop(...arguments))); + return this; + }; + SpringRef.update = function(props) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(current, ((ctrl, i) => ctrl.update(this._getProps(props, ctrl, i)))); + return this; + }; + const _getProps = function _getProps(arg, ctrl, index) { + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(arg) ? arg(index, ctrl) : arg; + }; + SpringRef._getProps = _getProps; + return SpringRef; + }; + function useSprings(length, props, deps) { + const propsFn = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(props) && props; + if (propsFn && !deps) deps = []; + const ref = (0, react__WEBPACK_IMPORTED_MODULE_1__.useMemo)((() => propsFn || arguments.length == 3 ? SpringRef() : void 0), []); + const layoutId = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(0); + const forceUpdate = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useForceUpdate)(); + const state = (0, react__WEBPACK_IMPORTED_MODULE_1__.useMemo)((() => ({ + ctrls: [], + queue: [], + flush(ctrl, updates) { + const springs = getSprings(ctrl, updates); + const canFlushSync = layoutId.current > 0 && !state.queue.length && !Object.keys(springs).some((key => !ctrl.springs[key])); + return canFlushSync ? flushUpdateQueue(ctrl, updates) : new Promise((resolve => { + setSprings(ctrl, springs); + state.queue.push((() => { + resolve(flushUpdateQueue(ctrl, updates)); + })); + forceUpdate(); + })); + } + })), []); + const ctrls = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)([ ...state.ctrls ]); + const updates = []; + const prevLength = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.usePrev)(length) || 0; + (0, react__WEBPACK_IMPORTED_MODULE_1__.useMemo)((() => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ctrls.current.slice(length, prevLength), (ctrl => { + detachRefs(ctrl, ref); + ctrl.stop(true); + })); + ctrls.current.length = length; + declareUpdates(prevLength, length); + }), [ length ]); + (0, react__WEBPACK_IMPORTED_MODULE_1__.useMemo)((() => { + declareUpdates(0, Math.min(prevLength, length)); + }), deps); + function declareUpdates(startIndex, endIndex) { + for (let i = startIndex; i < endIndex; i++) { + const ctrl = ctrls.current[i] || (ctrls.current[i] = new Controller(null, state.flush)); + const update = propsFn ? propsFn(i, ctrl) : props[i]; + if (update) { + updates[i] = declareUpdate(update); + } + } + } + const springs = ctrls.current.map(((ctrl, i) => getSprings(ctrl, updates[i]))); + const context = (0, react__WEBPACK_IMPORTED_MODULE_1__.useContext)(SpringContext); + const prevContext = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.usePrev)(context); + const hasContext = context !== prevContext && hasProps(context); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + layoutId.current++; + state.ctrls = ctrls.current; + const {queue} = state; + if (queue.length) { + state.queue = []; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(queue, (cb => cb())); + } + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ctrls.current, ((ctrl, i) => { + ref == null ? void 0 : ref.add(ctrl); + if (hasContext) { + ctrl.start({ + default: context + }); + } + const update = updates[i]; + if (update) { + replaceRef(ctrl, update.ref); + if (ctrl.ref) { + ctrl.queue.push(update); + } else { + ctrl.start(update); + } + } + })); + })); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useOnce)((() => () => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(state.ctrls, (ctrl => ctrl.stop(true))); + })); + const values = springs.map((x => _extends({}, x))); + return ref ? [ values, ref ] : values; + } + function useSpring(props, deps) { + const isFn = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(props); + const [[values], ref] = useSprings(1, isFn ? props : [ props ], isFn ? deps || [] : deps); + return isFn || arguments.length == 2 ? [ values, ref ] : values; + } + const initSpringRef = () => SpringRef(); + const useSpringRef = () => (0, react__WEBPACK_IMPORTED_MODULE_1__.useState)(initSpringRef)[0]; + function useTrail(length, propsArg, deps) { + var _passedRef; + const propsFn = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(propsArg) && propsArg; + if (propsFn && !deps) deps = []; + let reverse = true; + let passedRef = undefined; + const result = useSprings(length, ((i, ctrl) => { + const props = propsFn ? propsFn(i, ctrl) : propsArg; + passedRef = props.ref; + reverse = reverse && props.reverse; + return props; + }), deps || [ {} ]); + const ref = (_passedRef = passedRef) != null ? _passedRef : result[1]; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ref.current, ((ctrl, i) => { + const parent = ref.current[i + (reverse ? 1 : -1)]; + if (parent) { + ctrl.start({ + to: parent.springs + }); + } else { + ctrl.start(); + } + })); + }), deps); + if (propsFn || arguments.length == 3) { + ref["_getProps"] = (propsArg, ctrl, i) => { + const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(propsArg) ? propsArg(i, ctrl) : propsArg; + if (props) { + const parent = ref.current[i + (props.reverse ? 1 : -1)]; + if (parent) props.to = parent.springs; + return props; + } + }; + return result; + } + ref["start"] = propsArg => { + const results = []; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(ref.current, ((ctrl, i) => { + const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(propsArg) ? propsArg(i, ctrl) : propsArg; + const parent = ref.current[i + (reverse ? 1 : -1)]; + if (parent) { + results.push(ctrl.start(_extends({}, props, { + to: parent.springs + }))); + } else { + results.push(ctrl.start(_extends({}, props))); + } + })); + return results; + }; + return result[0]; + } + let TransitionPhase; + (function(TransitionPhase) { + TransitionPhase["MOUNT"] = "mount"; + TransitionPhase["ENTER"] = "enter"; + TransitionPhase["UPDATE"] = "update"; + TransitionPhase["LEAVE"] = "leave"; + })(TransitionPhase || (TransitionPhase = {})); + function useTransition(data, props, deps) { + const propsFn = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(props) && props; + const {reset, sort, trail = 0, expires = true, exitBeforeEnter = false, onDestroyed, ref: propsRef, config: propsConfig} = propsFn ? propsFn() : props; + const ref = (0, react__WEBPACK_IMPORTED_MODULE_1__.useMemo)((() => propsFn || arguments.length == 3 ? SpringRef() : void 0), []); + const items = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(data); + const transitions = []; + const usedTransitions = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + const prevTransitions = reset ? null : usedTransitions.current; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + usedTransitions.current = transitions; + })); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useOnce)((() => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(usedTransitions.current, (t => { + var _t$ctrl$ref; + (_t$ctrl$ref = t.ctrl.ref) == null ? void 0 : _t$ctrl$ref.add(t.ctrl); + const change = changes.get(t); + if (change) { + t.ctrl.start(change.payload); + } + })); + return () => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(usedTransitions.current, (t => { + if (t.expired) { + clearTimeout(t.expirationId); + } + detachRefs(t.ctrl, ref); + t.ctrl.stop(true); + })); + }; + })); + const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions); + const expired = reset && usedTransitions.current || []; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(expired, (({ctrl, item, key}) => { + detachRefs(ctrl, ref); + callProp(onDestroyed, item, key); + })))); + const reused = []; + if (prevTransitions) (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(prevTransitions, ((t, i) => { + if (t.expired) { + clearTimeout(t.expirationId); + expired.push(t); + } else { + i = reused[i] = keys.indexOf(t.key); + if (~i) transitions[i] = t; + } + })); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(items, ((item, i) => { + if (!transitions[i]) { + transitions[i] = { + key: keys[i], + item, + phase: TransitionPhase.MOUNT, + ctrl: new Controller + }; + transitions[i].ctrl.item = item; + } + })); + if (reused.length) { + let i = -1; + const {leave} = propsFn ? propsFn() : props; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(reused, ((keyIndex, prevIndex) => { + const t = prevTransitions[prevIndex]; + if (~keyIndex) { + i = transitions.indexOf(t); + transitions[i] = _extends({}, t, { + item: items[keyIndex] + }); + } else if (leave) { + transitions.splice(++i, 0, t); + } + })); + } + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(sort)) { + transitions.sort(((a, b) => sort(a.item, b.item))); + } + let delay = -trail; + const forceUpdate = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useForceUpdate)(); + const defaultProps = getDefaultProps(props); + const changes = new Map; + const exitingTransitions = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(new Map); + const forceChange = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(transitions, ((t, i) => { + const key = t.key; + const prevPhase = t.phase; + const p = propsFn ? propsFn() : props; + let to; + let phase; + let propsDelay = callProp(p.delay || 0, key); + if (prevPhase == TransitionPhase.MOUNT) { + to = p.enter; + phase = TransitionPhase.ENTER; + } else { + const isLeave = keys.indexOf(key) < 0; + if (prevPhase != TransitionPhase.LEAVE) { + if (isLeave) { + to = p.leave; + phase = TransitionPhase.LEAVE; + } else if (to = p.update) { + phase = TransitionPhase.UPDATE; + } else return; + } else if (!isLeave) { + to = p.enter; + phase = TransitionPhase.ENTER; + } else return; + } + to = callProp(to, t.item, i); + to = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.obj(to) ? inferTo(to) : { + to + }; + if (!to.config) { + const config = propsConfig || defaultProps.config; + to.config = callProp(config, t.item, i, phase); + } + delay += trail; + const payload = _extends({}, defaultProps, { + delay: propsDelay + delay, + ref: propsRef, + immediate: p.immediate, + reset: false + }, to); + if (phase == TransitionPhase.ENTER && _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(payload.from)) { + const _p = propsFn ? propsFn() : props; + const from = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(_p.initial) || prevTransitions ? _p.from : _p.initial; + payload.from = callProp(from, t.item, i); + } + const {onResolve} = payload; + payload.onResolve = result => { + callProp(onResolve, result); + const transitions = usedTransitions.current; + const t = transitions.find((t => t.key === key)); + if (!t) return; + if (result.cancelled && t.phase != TransitionPhase.UPDATE) { + return; + } + if (t.ctrl.idle) { + const idle = transitions.every((t => t.ctrl.idle)); + if (t.phase == TransitionPhase.LEAVE) { + const expiry = callProp(expires, t.item); + if (expiry !== false) { + const expiryMs = expiry === true ? 0 : expiry; + t.expired = true; + if (!idle && expiryMs > 0) { + if (expiryMs <= 2147483647) t.expirationId = setTimeout(forceUpdate, expiryMs); + return; + } + } + } + if (idle && transitions.some((t => t.expired))) { + exitingTransitions.current.delete(t); + if (exitBeforeEnter) { + forceChange.current = true; + } + forceUpdate(); + } + } + }; + const springs = getSprings(t.ctrl, payload); + if (phase === TransitionPhase.LEAVE && exitBeforeEnter) { + exitingTransitions.current.set(t, { + phase, + springs, + payload + }); + } else { + changes.set(t, { + phase, + springs, + payload + }); + } + })); + const context = (0, react__WEBPACK_IMPORTED_MODULE_1__.useContext)(SpringContext); + const prevContext = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.usePrev)(context); + const hasContext = context !== prevContext && hasProps(context); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + if (hasContext) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(transitions, (t => { + t.ctrl.start({ + default: context + }); + })); + } + }), [ context ]); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(changes, ((_, t) => { + if (exitingTransitions.current.size) { + const ind = transitions.findIndex((state => state.key === t.key)); + transitions.splice(ind, 1); + } + })); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(exitingTransitions.current.size ? exitingTransitions.current : changes, (({phase, payload}, t) => { + const {ctrl} = t; + t.phase = phase; + ref == null ? void 0 : ref.add(ctrl); + if (hasContext && phase == TransitionPhase.ENTER) { + ctrl.start({ + default: context + }); + } + if (payload) { + replaceRef(ctrl, payload.ref); + if (ctrl.ref && !forceChange.current) { + ctrl.update(payload); + } else { + ctrl.start(payload); + if (forceChange.current) { + forceChange.current = false; + } + } + } + })); + }), reset ? void 0 : deps); + const renderTransitions = render => react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, transitions.map(((t, i) => { + const {springs} = changes.get(t) || t.ctrl; + const elem = render(_extends({}, springs), t.item, t, i); + return elem && elem.type ? react__WEBPACK_IMPORTED_MODULE_1__.createElement(elem.type, _extends({}, elem.props, { + key: _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.str(t.key) || _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.num(t.key) ? t.key : t.ctrl.id, + ref: elem.ref + })) : elem; + }))); + return ref ? [ renderTransitions, ref ] : renderTransitions; + } + let nextKey = 1; + function getKeys(items, {key, keys = key}, prevTransitions) { + if (keys === null) { + const reused = new Set; + return items.map((item => { + const t = prevTransitions && prevTransitions.find((t => t.item === item && t.phase !== TransitionPhase.LEAVE && !reused.has(t))); + if (t) { + reused.add(t); + return t.key; + } + return nextKey++; + })); + } + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.und(keys) ? items : _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(keys) ? items.map(keys) : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(keys); + } + const _excluded$2 = [ "children" ]; + function Spring(_ref) { + let {children} = _ref, props = _objectWithoutPropertiesLoose(_ref, _excluded$2); + return children(useSpring(props)); + } + const _excluded$1 = [ "items", "children" ]; + function Trail(_ref) { + let {items, children} = _ref, props = _objectWithoutPropertiesLoose(_ref, _excluded$1); + const trails = useTrail(items.length, props); + return items.map(((item, index) => { + const result = children(item, index); + return _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(result) ? result(trails[index]) : result; + })); + } + const _excluded = [ "items", "children" ]; + function Transition(_ref) { + let {items, children} = _ref, props = _objectWithoutPropertiesLoose(_ref, _excluded); + return useTransition(items, props)(children); + } + class Interpolation extends FrameValue { + constructor(source, args) { + super(); + this.key = void 0; + this.idle = true; + this.calc = void 0; + this._active = new Set; + this.source = source; + this.calc = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.createInterpolator)(...args); + const value = this._get(); + const nodeType = (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimatedType)(value); + (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.setAnimated)(this, nodeType.create(value)); + } + advance(_dt) { + const value = this._get(); + const oldValue = this.get(); + if (!(0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isEqual)(value, oldValue)) { + (0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getAnimated)(this).setValue(value); + this._onChange(value, this.idle); + } + if (!this.idle && checkIdle(this._active)) { + becomeIdle(this); + } + } + _get() { + const inputs = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(this.source) ? this.source.map(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue) : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(this.source)); + return this.calc(...inputs); + } + _start() { + if (this.idle && !checkIdle(this._active)) { + this.idle = false; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getPayload)(this), (node => { + node.done = false; + })); + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.skipAnimation) { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates((() => this.advance())); + becomeIdle(this); + } else { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.frameLoop.start(this); + } + } + } + _attach() { + let priority = 1; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(this.source), (source => { + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(source)) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.addFluidObserver)(source, this); + } + if (isFrameValue(source)) { + if (!source.idle) { + this._active.add(source); + } + priority = Math.max(priority, source.priority + 1); + } + })); + this.priority = priority; + this._start(); + } + _detach() { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(this.source), (source => { + if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(source)) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.removeFluidObserver)(source, this); + } + })); + this._active.clear(); + becomeIdle(this); + } + eventObserved(event) { + if (event.type == "change") { + if (event.idle) { + this.advance(); + } else { + this._active.add(event.parent); + this._start(); + } + } else if (event.type == "idle") { + this._active.delete(event.parent); + } else if (event.type == "priority") { + this.priority = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.toArray)(this.source).reduce(((highest, parent) => Math.max(highest, (isFrameValue(parent) ? parent.priority : 0) + 1)), 0); + } + } + } + function isIdle(source) { + return source.idle !== false; + } + function checkIdle(active) { + return !active.size || Array.from(active).every(isIdle); + } + function becomeIdle(self) { + if (!self.idle) { + self.idle = true; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)((0, _react_spring_animated__WEBPACK_IMPORTED_MODULE_2__.getPayload)(self), (node => { + node.done = true; + })); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.callFluidObservers)(self, { + type: "idle", + parent: self + }); + } + } + const to = (source, ...args) => new Interpolation(source, args); + const interpolate = (source, ...args) => ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.deprecateInterpolate)(), + new Interpolation(source, args)); + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.Globals.assign({ + createStringInterpolator: _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.createStringInterpolator, + to: (source, args) => new Interpolation(source, args) + }); + const update = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.frameLoop.advance; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + FluidValue: () => FluidValue, + Globals: () => globals, + addFluidObserver: () => addFluidObserver, + callFluidObserver: () => callFluidObserver, + callFluidObservers: () => callFluidObservers, + colorToRgba: () => colorToRgba, + colors: () => colors, + createInterpolator: () => createInterpolator, + createStringInterpolator: () => createStringInterpolator, + defineHidden: () => defineHidden, + deprecateDirectCall: () => deprecateDirectCall, + deprecateInterpolate: () => deprecateInterpolate, + each: () => each, + eachProp: () => eachProp, + flush: () => flush, + flushCalls: () => flushCalls, + frameLoop: () => frameLoop, + getFluidObservers: () => getFluidObservers, + getFluidValue: () => getFluidValue, + hasFluidValue: () => hasFluidValue, + hex3: () => hex3, + hex4: () => hex4, + hex6: () => hex6, + hex8: () => hex8, + hsl: () => hsl, + hsla: () => hsla, + is: () => is, + isAnimatedString: () => isAnimatedString, + isEqual: () => isEqual, + isSSR: () => isSSR, + noop: () => noop, + raf: () => _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf, + removeFluidObserver: () => removeFluidObserver, + rgb: () => rgb, + rgba: () => rgba, + setFluidGetter: () => setFluidGetter, + toArray: () => toArray, + useForceUpdate: () => useForceUpdate, + useLayoutEffect: () => useLayoutEffect, + useMemoOne: () => useMemoOne, + useOnce: () => useOnce, + usePrev: () => usePrev + }); + var _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); + var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); + function noop() {} + const defineHidden = (obj, key, value) => Object.defineProperty(obj, key, { + value, + writable: true, + configurable: true + }); + const is = { + arr: Array.isArray, + obj: a => !!a && a.constructor.name === "Object", + fun: a => typeof a === "function", + str: a => typeof a === "string", + num: a => typeof a === "number", + und: a => a === undefined + }; + function isEqual(a, b) { + if (is.arr(a)) { + if (!is.arr(b) || a.length !== b.length) return false; + for (let i = 0; i < a.length; i++) { + if (a[i] !== b[i]) return false; + } + return true; + } + return a === b; + } + const each = (obj, fn) => obj.forEach(fn); + function eachProp(obj, fn, ctx) { + if (is.arr(obj)) { + for (let i = 0; i < obj.length; i++) { + fn.call(ctx, obj[i], `${i}`); + } + return; + } + for (const key in obj) { + if (obj.hasOwnProperty(key)) { + fn.call(ctx, obj[key], key); + } + } + } + const toArray = a => is.und(a) ? [] : is.arr(a) ? a : [ a ]; + function flush(queue, iterator) { + if (queue.size) { + const items = Array.from(queue); + queue.clear(); + each(items, iterator); + } + } + const flushCalls = (queue, ...args) => flush(queue, (fn => fn(...args))); + const isSSR = () => typeof window === "undefined" || !window.navigator || /ServerSideRendering|^Deno\//.test(window.navigator.userAgent); + let createStringInterpolator$1; + let to; + let colors$1 = null; + let skipAnimation = false; + let willAdvance = noop; + const assign = globals => { + if (globals.to) to = globals.to; + if (globals.now) _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.now = globals.now; + if (globals.colors !== undefined) colors$1 = globals.colors; + if (globals.skipAnimation != null) skipAnimation = globals.skipAnimation; + if (globals.createStringInterpolator) createStringInterpolator$1 = globals.createStringInterpolator; + if (globals.requestAnimationFrame) _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.use(globals.requestAnimationFrame); + if (globals.batchedUpdates) _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.batchedUpdates = globals.batchedUpdates; + if (globals.willAdvance) willAdvance = globals.willAdvance; + if (globals.frameLoop) _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.frameLoop = globals.frameLoop; + }; + var globals = Object.freeze({ + __proto__: null, + get createStringInterpolator() { + return createStringInterpolator$1; + }, + get to() { + return to; + }, + get colors() { + return colors$1; + }, + get skipAnimation() { + return skipAnimation; + }, + get willAdvance() { + return willAdvance; + }, + assign + }); + const startQueue = new Set; + let currentFrame = []; + let prevFrame = []; + let priority = 0; + const frameLoop = { + get idle() { + return !startQueue.size && !currentFrame.length; + }, + start(animation) { + if (priority > animation.priority) { + startQueue.add(animation); + _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.onStart(flushStartQueue); + } else { + startSafely(animation); + (0, _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf)(advance); + } + }, + advance, + sort(animation) { + if (priority) { + _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf.onFrame((() => frameLoop.sort(animation))); + } else { + const prevIndex = currentFrame.indexOf(animation); + if (~prevIndex) { + currentFrame.splice(prevIndex, 1); + startUnsafely(animation); + } + } + }, + clear() { + currentFrame = []; + startQueue.clear(); + } + }; + function flushStartQueue() { + startQueue.forEach(startSafely); + startQueue.clear(); + (0, _react_spring_rafz__WEBPACK_IMPORTED_MODULE_0__.raf)(advance); + } + function startSafely(animation) { + if (!currentFrame.includes(animation)) startUnsafely(animation); + } + function startUnsafely(animation) { + currentFrame.splice(findIndex(currentFrame, (other => other.priority > animation.priority)), 0, animation); + } + function advance(dt) { + const nextFrame = prevFrame; + for (let i = 0; i < currentFrame.length; i++) { + const animation = currentFrame[i]; + priority = animation.priority; + if (!animation.idle) { + willAdvance(animation); + animation.advance(dt); + if (!animation.idle) { + nextFrame.push(animation); + } + } + } + priority = 0; + prevFrame = currentFrame; + prevFrame.length = 0; + currentFrame = nextFrame; + return currentFrame.length > 0; + } + function findIndex(arr, test) { + const index = arr.findIndex(test); + return index < 0 ? arr.length : index; + } + const colors = { + transparent: 0, + aliceblue: 4042850303, + antiquewhite: 4209760255, + aqua: 16777215, + aquamarine: 2147472639, + azure: 4043309055, + beige: 4126530815, + bisque: 4293182719, + black: 255, + blanchedalmond: 4293643775, + blue: 65535, + blueviolet: 2318131967, + brown: 2771004159, + burlywood: 3736635391, + burntsienna: 3934150143, + cadetblue: 1604231423, + chartreuse: 2147418367, + chocolate: 3530104575, + coral: 4286533887, + cornflowerblue: 1687547391, + cornsilk: 4294499583, + crimson: 3692313855, + cyan: 16777215, + darkblue: 35839, + darkcyan: 9145343, + darkgoldenrod: 3095792639, + darkgray: 2846468607, + darkgreen: 6553855, + darkgrey: 2846468607, + darkkhaki: 3182914559, + darkmagenta: 2332068863, + darkolivegreen: 1433087999, + darkorange: 4287365375, + darkorchid: 2570243327, + darkred: 2332033279, + darksalmon: 3918953215, + darkseagreen: 2411499519, + darkslateblue: 1211993087, + darkslategray: 793726975, + darkslategrey: 793726975, + darkturquoise: 13554175, + darkviolet: 2483082239, + deeppink: 4279538687, + deepskyblue: 12582911, + dimgray: 1768516095, + dimgrey: 1768516095, + dodgerblue: 512819199, + firebrick: 2988581631, + floralwhite: 4294635775, + forestgreen: 579543807, + fuchsia: 4278255615, + gainsboro: 3705462015, + ghostwhite: 4177068031, + gold: 4292280575, + goldenrod: 3668254975, + gray: 2155905279, + green: 8388863, + greenyellow: 2919182335, + grey: 2155905279, + honeydew: 4043305215, + hotpink: 4285117695, + indianred: 3445382399, + indigo: 1258324735, + ivory: 4294963455, + khaki: 4041641215, + lavender: 3873897215, + lavenderblush: 4293981695, + lawngreen: 2096890111, + lemonchiffon: 4294626815, + lightblue: 2916673279, + lightcoral: 4034953471, + lightcyan: 3774873599, + lightgoldenrodyellow: 4210742015, + lightgray: 3553874943, + lightgreen: 2431553791, + lightgrey: 3553874943, + lightpink: 4290167295, + lightsalmon: 4288707327, + lightseagreen: 548580095, + lightskyblue: 2278488831, + lightslategray: 2005441023, + lightslategrey: 2005441023, + lightsteelblue: 2965692159, + lightyellow: 4294959359, + lime: 16711935, + limegreen: 852308735, + linen: 4210091775, + magenta: 4278255615, + maroon: 2147483903, + mediumaquamarine: 1724754687, + mediumblue: 52735, + mediumorchid: 3126187007, + mediumpurple: 2473647103, + mediumseagreen: 1018393087, + mediumslateblue: 2070474495, + mediumspringgreen: 16423679, + mediumturquoise: 1221709055, + mediumvioletred: 3340076543, + midnightblue: 421097727, + mintcream: 4127193855, + mistyrose: 4293190143, + moccasin: 4293178879, + navajowhite: 4292783615, + navy: 33023, + oldlace: 4260751103, + olive: 2155872511, + olivedrab: 1804477439, + orange: 4289003775, + orangered: 4282712319, + orchid: 3664828159, + palegoldenrod: 4008225535, + palegreen: 2566625535, + paleturquoise: 2951671551, + palevioletred: 3681588223, + papayawhip: 4293907967, + peachpuff: 4292524543, + peru: 3448061951, + pink: 4290825215, + plum: 3718307327, + powderblue: 2967529215, + purple: 2147516671, + rebeccapurple: 1714657791, + red: 4278190335, + rosybrown: 3163525119, + royalblue: 1097458175, + saddlebrown: 2336560127, + salmon: 4202722047, + sandybrown: 4104413439, + seagreen: 780883967, + seashell: 4294307583, + sienna: 2689740287, + silver: 3233857791, + skyblue: 2278484991, + slateblue: 1784335871, + slategray: 1887473919, + slategrey: 1887473919, + snow: 4294638335, + springgreen: 16744447, + steelblue: 1182971135, + tan: 3535047935, + teal: 8421631, + thistle: 3636451583, + tomato: 4284696575, + turquoise: 1088475391, + violet: 4001558271, + wheat: 4125012991, + white: 4294967295, + whitesmoke: 4126537215, + yellow: 4294902015, + yellowgreen: 2597139199 + }; + const NUMBER = "[-+]?\\d*\\.?\\d+"; + const PERCENTAGE = NUMBER + "%"; + function call(...parts) { + return "\\(\\s*(" + parts.join(")\\s*,\\s*(") + ")\\s*\\)"; + } + const rgb = new RegExp("rgb" + call(NUMBER, NUMBER, NUMBER)); + const rgba = new RegExp("rgba" + call(NUMBER, NUMBER, NUMBER, NUMBER)); + const hsl = new RegExp("hsl" + call(NUMBER, PERCENTAGE, PERCENTAGE)); + const hsla = new RegExp("hsla" + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)); + const hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; + const hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/; + const hex6 = /^#([0-9a-fA-F]{6})$/; + const hex8 = /^#([0-9a-fA-F]{8})$/; + function normalizeColor(color) { + let match; + if (typeof color === "number") { + return color >>> 0 === color && color >= 0 && color <= 4294967295 ? color : null; + } + if (match = hex6.exec(color)) return parseInt(match[1] + "ff", 16) >>> 0; + if (colors$1 && colors$1[color] !== undefined) { + return colors$1[color]; + } + if (match = rgb.exec(color)) { + return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | 255) >>> 0; + } + if (match = rgba.exec(color)) { + return (parse255(match[1]) << 24 | parse255(match[2]) << 16 | parse255(match[3]) << 8 | parse1(match[4])) >>> 0; + } + if (match = hex3.exec(color)) { + return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + "ff", 16) >>> 0; + } + if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0; + if (match = hex4.exec(color)) { + return parseInt(match[1] + match[1] + match[2] + match[2] + match[3] + match[3] + match[4] + match[4], 16) >>> 0; + } + if (match = hsl.exec(color)) { + return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | 255) >>> 0; + } + if (match = hsla.exec(color)) { + return (hslToRgb(parse360(match[1]), parsePercentage(match[2]), parsePercentage(match[3])) | parse1(match[4])) >>> 0; + } + return null; + } + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + function hslToRgb(h, s, l) { + const q = l < .5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + const r = hue2rgb(p, q, h + 1 / 3); + const g = hue2rgb(p, q, h); + const b = hue2rgb(p, q, h - 1 / 3); + return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8; + } + function parse255(str) { + const int = parseInt(str, 10); + if (int < 0) return 0; + if (int > 255) return 255; + return int; + } + function parse360(str) { + const int = parseFloat(str); + return (int % 360 + 360) % 360 / 360; + } + function parse1(str) { + const num = parseFloat(str); + if (num < 0) return 0; + if (num > 1) return 255; + return Math.round(num * 255); + } + function parsePercentage(str) { + const int = parseFloat(str); + if (int < 0) return 0; + if (int > 100) return 1; + return int / 100; + } + function colorToRgba(input) { + let int32Color = normalizeColor(input); + if (int32Color === null) return input; + int32Color = int32Color || 0; + let r = (int32Color & 4278190080) >>> 24; + let g = (int32Color & 16711680) >>> 16; + let b = (int32Color & 65280) >>> 8; + let a = (int32Color & 255) / 255; + return `rgba(${r}, ${g}, ${b}, ${a})`; + } + const createInterpolator = (range, output, extrapolate) => { + if (is.fun(range)) { + return range; + } + if (is.arr(range)) { + return createInterpolator({ + range, + output, + extrapolate + }); + } + if (is.str(range.output[0])) { + return createStringInterpolator$1(range); + } + const config = range; + const outputRange = config.output; + const inputRange = config.range || [ 0, 1 ]; + const extrapolateLeft = config.extrapolateLeft || config.extrapolate || "extend"; + const extrapolateRight = config.extrapolateRight || config.extrapolate || "extend"; + const easing = config.easing || (t => t); + return input => { + const range = findRange(input, inputRange); + return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map); + }; + }; + function interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) { + let result = map ? map(input) : input; + if (result < inputMin) { + if (extrapolateLeft === "identity") return result; else if (extrapolateLeft === "clamp") result = inputMin; + } + if (result > inputMax) { + if (extrapolateRight === "identity") return result; else if (extrapolateRight === "clamp") result = inputMax; + } + if (outputMin === outputMax) return outputMin; + if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; + if (inputMin === -Infinity) result = -result; else if (inputMax === Infinity) result = result - inputMin; else result = (result - inputMin) / (inputMax - inputMin); + result = easing(result); + if (outputMin === -Infinity) result = -result; else if (outputMax === Infinity) result = result + outputMin; else result = result * (outputMax - outputMin) + outputMin; + return result; + } + function findRange(input, inputRange) { + for (var i = 1; i < inputRange.length - 1; ++i) if (inputRange[i] >= input) break; + return i - 1; + } + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + const $get = Symbol.for("FluidValue.get"); + const $observers = Symbol.for("FluidValue.observers"); + const hasFluidValue = arg => Boolean(arg && arg[$get]); + const getFluidValue = arg => arg && arg[$get] ? arg[$get]() : arg; + const getFluidObservers = target => target[$observers] || null; + function callFluidObserver(observer, event) { + if (observer.eventObserved) { + observer.eventObserved(event); + } else { + observer(event); + } + } + function callFluidObservers(target, event) { + let observers = target[$observers]; + if (observers) { + observers.forEach((observer => { + callFluidObserver(observer, event); + })); + } + } + class FluidValue { + constructor(get) { + this[$get] = void 0; + this[$observers] = void 0; + if (!get && !(get = this.get)) { + throw Error("Unknown getter"); + } + setFluidGetter(this, get); + } + } + const setFluidGetter = (target, get) => setHidden(target, $get, get); + function addFluidObserver(target, observer) { + if (target[$get]) { + let observers = target[$observers]; + if (!observers) { + setHidden(target, $observers, observers = new Set); + } + if (!observers.has(observer)) { + observers.add(observer); + if (target.observerAdded) { + target.observerAdded(observers.size, observer); + } + } + } + return observer; + } + function removeFluidObserver(target, observer) { + let observers = target[$observers]; + if (observers && observers.has(observer)) { + const count = observers.size - 1; + if (count) { + observers.delete(observer); + } else { + target[$observers] = null; + } + if (target.observerRemoved) { + target.observerRemoved(count, observer); + } + } + } + const setHidden = (target, key, value) => Object.defineProperty(target, key, { + value, + writable: true, + configurable: true + }); + const numberRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g; + const colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi; + const unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, "i"); + const rgbaRegex = /rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi; + const cssVariableRegex = /var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/; + const variableToRgba = input => { + const [token, fallback] = parseCSSVariable(input); + if (!token || isSSR()) { + return input; + } + const value = window.getComputedStyle(document.documentElement).getPropertyValue(token); + if (value) { + return value.trim(); + } else if (fallback && fallback.startsWith("--")) { + const _value = window.getComputedStyle(document.documentElement).getPropertyValue(fallback); + if (_value) { + return _value; + } else { + return input; + } + } else if (fallback && cssVariableRegex.test(fallback)) { + return variableToRgba(fallback); + } else if (fallback) { + return fallback; + } + return input; + }; + const parseCSSVariable = current => { + const match = cssVariableRegex.exec(current); + if (!match) return [ , ]; + const [, token, fallback] = match; + return [ token, fallback ]; + }; + let namedColorRegex; + const rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`; + const createStringInterpolator = config => { + if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join("|")})(?!\\w)`, "g") : /^\b$/; + const output = config.output.map((value => getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba))); + const keyframes = output.map((value => value.match(numberRegex).map(Number))); + const outputRanges = keyframes[0].map(((_, i) => keyframes.map((values => { + if (!(i in values)) { + throw Error('The arity of each "output" value must be equal'); + } + return values[i]; + })))); + const interpolators = outputRanges.map((output => createInterpolator(_extends({}, config, { + output + })))); + return input => { + var _output$find; + const missingUnit = !unitRegex.test(output[0]) && ((_output$find = output.find((value => unitRegex.test(value)))) == null ? void 0 : _output$find.replace(numberRegex, "")); + let i = 0; + return output[0].replace(numberRegex, (() => `${interpolators[i++](input)}${missingUnit || ""}`)).replace(rgbaRegex, rgbaRound); + }; + }; + const prefix = "react-spring: "; + const once = fn => { + const func = fn; + let called = false; + if (typeof func != "function") { + throw new TypeError(`${prefix}once requires a function parameter`); + } + return (...args) => { + if (!called) { + func(...args); + called = true; + } + }; + }; + const warnInterpolate = once(console.warn); + function deprecateInterpolate() { + warnInterpolate(`${prefix}The "interpolate" function is deprecated in v9 (use "to" instead)`); + } + const warnDirectCall = once(console.warn); + function deprecateDirectCall() { + warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`); + } + function isAnimatedString(value) { + return is.str(value) && (value[0] == "#" || /\d/.test(value) || !isSSR() && cssVariableRegex.test(value) || value in (colors$1 || {})); + } + const useLayoutEffect = typeof window !== "undefined" && window.document && window.document.createElement ? react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_1__.useEffect; + const useIsMounted = () => { + const isMounted = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(false); + useLayoutEffect((() => { + isMounted.current = true; + return () => { + isMounted.current = false; + }; + }), []); + return isMounted; + }; + function useForceUpdate() { + const update = (0, react__WEBPACK_IMPORTED_MODULE_1__.useState)()[1]; + const isMounted = useIsMounted(); + return () => { + if (isMounted.current) { + update(Math.random()); + } + }; + } + function useMemoOne(getResult, inputs) { + const [initial] = (0, react__WEBPACK_IMPORTED_MODULE_1__.useState)((() => ({ + inputs, + result: getResult() + }))); + const committed = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(); + const prevCache = committed.current; + let cache = prevCache; + if (cache) { + const useCache = Boolean(inputs && cache.inputs && areInputsEqual(inputs, cache.inputs)); + if (!useCache) { + cache = { + inputs, + result: getResult() + }; + } + } else { + cache = initial; + } + (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => { + committed.current = cache; + if (prevCache == initial) { + initial.inputs = initial.result = undefined; + } + }), [ cache ]); + return cache.result; + } + function areInputsEqual(next, prev) { + if (next.length !== prev.length) { + return false; + } + for (let i = 0; i < next.length; i++) { + if (next[i] !== prev[i]) { + return false; + } + } + return true; + } + const useOnce = effect => (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(effect, emptyDeps); + const emptyDeps = []; + function usePrev(value) { + const prevRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(); + (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)((() => { + prevRef.current = value; + })); + return prevRef.current; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + __raf: () => __raf, + raf: () => raf + }); + let updateQueue = makeQueue(); + const raf = fn => schedule(fn, updateQueue); + let writeQueue = makeQueue(); + raf.write = fn => schedule(fn, writeQueue); + let onStartQueue = makeQueue(); + raf.onStart = fn => schedule(fn, onStartQueue); + let onFrameQueue = makeQueue(); + raf.onFrame = fn => schedule(fn, onFrameQueue); + let onFinishQueue = makeQueue(); + raf.onFinish = fn => schedule(fn, onFinishQueue); + let timeouts = []; + raf.setTimeout = (handler, ms) => { + let time = raf.now() + ms; + let cancel = () => { + let i = timeouts.findIndex((t => t.cancel == cancel)); + if (~i) timeouts.splice(i, 1); + pendingCount -= ~i ? 1 : 0; + }; + let timeout = { + time, + handler, + cancel + }; + timeouts.splice(findTimeout(time), 0, timeout); + pendingCount += 1; + start(); + return timeout; + }; + let findTimeout = time => ~(~timeouts.findIndex((t => t.time > time)) || ~timeouts.length); + raf.cancel = fn => { + onStartQueue.delete(fn); + onFrameQueue.delete(fn); + updateQueue.delete(fn); + writeQueue.delete(fn); + onFinishQueue.delete(fn); + }; + raf.sync = fn => { + sync = true; + raf.batchedUpdates(fn); + sync = false; + }; + raf.throttle = fn => { + let lastArgs; + function queuedFn() { + try { + fn(...lastArgs); + } finally { + lastArgs = null; + } + } + function throttled(...args) { + lastArgs = args; + raf.onStart(queuedFn); + } + throttled.handler = fn; + throttled.cancel = () => { + onStartQueue.delete(queuedFn); + lastArgs = null; + }; + return throttled; + }; + let nativeRaf = typeof window != "undefined" ? window.requestAnimationFrame : () => {}; + raf.use = impl => nativeRaf = impl; + raf.now = typeof performance != "undefined" ? () => performance.now() : Date.now; + raf.batchedUpdates = fn => fn(); + raf.catch = console.error; + raf.frameLoop = "always"; + raf.advance = () => { + if (raf.frameLoop !== "demand") { + console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"); + } else { + update(); + } + }; + let ts = -1; + let pendingCount = 0; + let sync = false; + function schedule(fn, queue) { + if (sync) { + queue.delete(fn); + fn(0); + } else { + queue.add(fn); + start(); + } + } + function start() { + if (ts < 0) { + ts = 0; + if (raf.frameLoop !== "demand") { + nativeRaf(loop); + } + } + } + function stop() { + ts = -1; + } + function loop() { + if (~ts) { + nativeRaf(loop); + raf.batchedUpdates(update); + } + } + function update() { + let prevTs = ts; + ts = raf.now(); + let count = findTimeout(ts); + if (count) { + eachSafely(timeouts.splice(0, count), (t => t.handler())); + pendingCount -= count; + } + onStartQueue.flush(); + updateQueue.flush(prevTs ? Math.min(64, ts - prevTs) : 16.667); + onFrameQueue.flush(); + writeQueue.flush(); + onFinishQueue.flush(); + if (!pendingCount) { + stop(); + } + } + function makeQueue() { + let next = new Set; + let current = next; + return { + add(fn) { + pendingCount += current == next && !next.has(fn) ? 1 : 0; + next.add(fn); + }, + delete(fn) { + pendingCount -= current == next && next.has(fn) ? 1 : 0; + return next.delete(fn); + }, + flush(arg) { + if (current.size) { + next = new Set; + pendingCount -= current.size; + eachSafely(current, (fn => fn(arg) && next.add(fn))); + pendingCount += next.size; + current = next; + } + } + }; + } + function eachSafely(values, each) { + values.forEach((value => { + try { + each(value); + } catch (e) { + raf.catch(e); + } + })); + } + const __raf = { + count() { + return pendingCount; + }, + isRunning() { + return ts >= 0; + }, + clear() { + ts = -1; + timeouts = []; + onStartQueue = makeQueue(); + updateQueue = makeQueue(); + onFrameQueue = makeQueue(); + writeQueue = makeQueue(); + onFinishQueue = makeQueue(); + pendingCount = 0; + } + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + Animated: () => Animated, + AnimatedArray: () => AnimatedArray, + AnimatedObject: () => AnimatedObject, + AnimatedString: () => AnimatedString, + AnimatedValue: () => AnimatedValue, + createHost: () => createHost, + getAnimated: () => getAnimated, + getAnimatedType: () => getAnimatedType, + getPayload: () => getPayload, + isAnimated: () => isAnimated, + setAnimated: () => setAnimated + }); + var _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(182); + var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__); + const $node = Symbol.for("Animated:node"); + const isAnimated = value => !!value && value[$node] === value; + const getAnimated = owner => owner && owner[$node]; + const setAnimated = (owner, node) => (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.defineHidden)(owner, $node, node); + const getPayload = owner => owner && owner[$node] && owner[$node].getPayload(); + class Animated { + constructor() { + this.payload = void 0; + setAnimated(this, this); + } + getPayload() { + return this.payload || []; + } + } + class AnimatedValue extends Animated { + constructor(_value) { + super(); + this.done = true; + this.elapsedTime = void 0; + this.lastPosition = void 0; + this.lastVelocity = void 0; + this.v0 = void 0; + this.durationProgress = 0; + this._value = _value; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.num(this._value)) { + this.lastPosition = this._value; + } + } + static create(value) { + return new AnimatedValue(value); + } + getPayload() { + return [ this ]; + } + getValue() { + return this._value; + } + setValue(value, step) { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.num(value)) { + this.lastPosition = value; + if (step) { + value = Math.round(value / step) * step; + if (this.done) { + this.lastPosition = value; + } + } + } + if (this._value === value) { + return false; + } + this._value = value; + return true; + } + reset() { + const {done} = this; + this.done = false; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.num(this._value)) { + this.elapsedTime = 0; + this.durationProgress = 0; + this.lastPosition = this._value; + if (done) this.lastVelocity = null; + this.v0 = null; + } + } + } + class AnimatedString extends AnimatedValue { + constructor(value) { + super(0); + this._string = null; + this._toString = void 0; + this._toString = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.createInterpolator)({ + output: [ value, value ] + }); + } + static create(value) { + return new AnimatedString(value); + } + getValue() { + let value = this._string; + return value == null ? this._string = this._toString(this._value) : value; + } + setValue(value) { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.str(value)) { + if (value == this._string) { + return false; + } + this._string = value; + this._value = 1; + } else if (super.setValue(value)) { + this._string = null; + } else { + return false; + } + return true; + } + reset(goal) { + if (goal) { + this._toString = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.createInterpolator)({ + output: [ this.getValue(), goal ] + }); + } + this._value = 0; + super.reset(); + } + } + const TreeContext = { + dependencies: null + }; + class AnimatedObject extends Animated { + constructor(source) { + super(); + this.source = source; + this.setValue(source); + } + getValue(animated) { + const values = {}; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(this.source, ((source, key) => { + if (isAnimated(source)) { + values[key] = source.getValue(animated); + } else if ((0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(source)) { + values[key] = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.getFluidValue)(source); + } else if (!animated) { + values[key] = source; + } + })); + return values; + } + setValue(source) { + this.source = source; + this.payload = this._makePayload(source); + } + reset() { + if (this.payload) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(this.payload, (node => node.reset())); + } + } + _makePayload(source) { + if (source) { + const payload = new Set; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(source, this._addToPayload, payload); + return Array.from(payload); + } + } + _addToPayload(source) { + if (TreeContext.dependencies && (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.hasFluidValue)(source)) { + TreeContext.dependencies.add(source); + } + const payload = getPayload(source); + if (payload) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(payload, (node => this.add(node))); + } + } + } + class AnimatedArray extends AnimatedObject { + constructor(source) { + super(source); + } + static create(source) { + return new AnimatedArray(source); + } + getValue() { + return this.source.map((node => node.getValue())); + } + setValue(source) { + const payload = this.getPayload(); + if (source.length == payload.length) { + return payload.map(((node, i) => node.setValue(source[i]))).some(Boolean); + } + super.setValue(source.map(makeAnimated)); + return true; + } + } + function makeAnimated(value) { + const nodeType = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isAnimatedString)(value) ? AnimatedString : AnimatedValue; + return nodeType.create(value); + } + function getAnimatedType(value) { + const parentNode = getAnimated(value); + return parentNode ? parentNode.constructor : _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(value) ? AnimatedArray : (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.isAnimatedString)(value) ? AnimatedString : AnimatedValue; + } + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + const withAnimated = (Component, host) => { + const hasInstance = !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(Component) || Component.prototype && Component.prototype.isReactComponent; + return (0, react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(((givenProps, givenRef) => { + const instanceRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + const ref = hasInstance && (0, react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((value => { + instanceRef.current = updateRef(givenRef, value); + }), [ givenRef ]); + const [props, deps] = getAnimatedState(givenProps, host); + const forceUpdate = (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useForceUpdate)(); + const callback = () => { + const instance = instanceRef.current; + if (hasInstance && !instance) { + return; + } + const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false; + if (didUpdate === false) { + forceUpdate(); + } + }; + const observer = new PropsObserver(callback, deps); + const observerRef = (0, react__WEBPACK_IMPORTED_MODULE_1__.useRef)(); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)((() => { + observerRef.current = observer; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(deps, (dep => (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.addFluidObserver)(dep, observer))); + return () => { + if (observerRef.current) { + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(observerRef.current.deps, (dep => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.removeFluidObserver)(dep, observerRef.current))); + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.cancel(observerRef.current.update); + } + }; + })); + (0, react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(callback, []); + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.useOnce)((() => () => { + const observer = observerRef.current; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.each)(observer.deps, (dep => (0, + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.removeFluidObserver)(dep, observer))); + })); + const usedProps = host.getComponentProps(props.getValue()); + return react__WEBPACK_IMPORTED_MODULE_1__.createElement(Component, _extends({}, usedProps, { + ref + })); + })); + }; + class PropsObserver { + constructor(update, deps) { + this.update = update; + this.deps = deps; + } + eventObserved(event) { + if (event.type == "change") { + _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.raf.write(this.update); + } + } + } + function getAnimatedState(props, host) { + const dependencies = new Set; + TreeContext.dependencies = dependencies; + if (props.style) props = _extends({}, props, { + style: host.createAnimatedStyle(props.style) + }); + props = new AnimatedObject(props); + TreeContext.dependencies = null; + return [ props, dependencies ]; + } + function updateRef(ref, value) { + if (ref) { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(ref)) ref(value); else ref.current = value; + } + return value; + } + const cacheKey = Symbol.for("AnimatedComponent"); + const createHost = (components, {applyAnimatedValues: _applyAnimatedValues = (() => false), createAnimatedStyle: _createAnimatedStyle = (style => new AnimatedObject(style)), getComponentProps: _getComponentProps = (props => props)} = {}) => { + const hostConfig = { + applyAnimatedValues: _applyAnimatedValues, + createAnimatedStyle: _createAnimatedStyle, + getComponentProps: _getComponentProps + }; + const animated = Component => { + const displayName = getDisplayName(Component) || "Anonymous"; + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.str(Component)) { + Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig)); + } else { + Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig)); + } + Component.displayName = `Animated(${displayName})`; + return Component; + }; + (0, _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.eachProp)(components, ((Component, key) => { + if (_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.arr(components)) { + key = getDisplayName(Component); + } + animated[key] = animated(Component); + })); + return { + animated + }; + }; + const getDisplayName = arg => _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.str(arg) ? arg : arg && _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.str(arg.displayName) ? arg.displayName : _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__.is.fun(arg) && arg.name || null; + }, () => {}, () => {}, module => { + "use strict"; + module.exports = ReactDOM; + }, module => { + var NEWTON_ITERATIONS = 4; + var NEWTON_MIN_SLOPE = .001; + var SUBDIVISION_PRECISION = 1e-7; + var SUBDIVISION_MAX_ITERATIONS = 10; + var kSplineTableSize = 11; + var kSampleStepSize = 1 / (kSplineTableSize - 1); + var float32ArraySupported = typeof Float32Array === "function"; + function A(aA1, aA2) { + return 1 - 3 * aA2 + 3 * aA1; + } + function B(aA1, aA2) { + return 3 * aA2 - 6 * aA1; + } + function C(aA1) { + return 3 * aA1; + } + function calcBezier(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + } + function getSlope(aT, aA1, aA2) { + return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1); + } + function binarySubdivide(aX, aA, aB, mX1, mX2) { + var currentX, currentT, i = 0; + do { + currentT = aA + (aB - aA) / 2; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + return currentT; + } + function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) { + for (var i = 0; i < NEWTON_ITERATIONS; ++i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + if (currentSlope === 0) { + return aGuessT; + } + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + } + function LinearEasing(x) { + return x; + } + module.exports = function bezier(mX1, mY1, mX2, mY2) { + if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { + throw new Error("bezier x values must be in [0, 1] range"); + } + if (mX1 === mY1 && mX2 === mY2) { + return LinearEasing; + } + var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + for (var i = 0; i < kSplineTableSize; ++i) { + sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + } + function getTForX(aX) { + var intervalStart = 0; + var currentSample = 1; + var lastSample = kSplineTableSize - 1; + for (;currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + --currentSample; + var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); + var guessForT = intervalStart + dist * kSampleStepSize; + var initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT, mX1, mX2); + } else if (initialSlope === 0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); + } + } + return function BezierEasing(x) { + if (x === 0) { + return 0; + } + if (x === 1) { + return 1; + } + return calcBezier(getTForX(x), mY1, mY2); + }; + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + ColorPickerHooks: () => ColorPickerHooks, + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); + var _components_tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); + var _components_react_color_picker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(252); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); + var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9); + var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function ColorPickerHooks(props) { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useEffect)((function() { + return LottaEvents.bind("lotta-setting-change", (function(id, colors) { + if (id === props.id) { + var options = props.options; + if (options.set_customizer_colors) { + var css = options.set_customizer_colors.selector + "{"; + var maps = options.set_customizer_colors.maps; + Object.keys(maps).forEach((function(color) { + if (colors[color]) { + if (colors[color] !== _index__WEBPACK_IMPORTED_MODULE_5__.CSS_INITIAL_VALUE && colors[color] !== "") { + var selectors = maps[color]; + if (!Array.isArray(selectors)) { + selectors = [ selectors ]; + } + selectors.forEach((function(selector) { + css += "".concat(maps[color], ": ").concat((0, _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(colors[color]), ";"); + })); + } + } + })); + css += "}"; + jQuery("style#" + id).remove(); + jQuery("head").append('"); + } + } + })); + }), []); + } + function ColorPicker(props) { + ColorPickerHooks(props); + var options = props.options, value = props.value, onChange = props.onChange; + if (!options.colors) { + return null; + } + var colorValues = {}; + options.colors.forEach((function(c) { + colorValues[c.id] = value[c.id] || _index__WEBPACK_IMPORTED_MODULE_5__.CSS_INITIAL_VALUE; + })); + var swatches = options.swatches; + if (!swatches && window.Lotta && window.Lotta.customizer && window.Lotta.customizer.colorPicker) { + swatches = window.Lotta.customizer.colorPicker.swatches; + } + var handleColorChange = function handleColorChange(colors) { + onChange(colors); + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { + className: "lotta-color-picker", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { + className: "colors", + children: options.colors.map((function(color) { + var previewColor = options.computed ? (0, _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(colorValues[color.id] || "") : colorValues[color.id] || ""; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_0__["default"], { + placement: "bottom", + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_components_react_color_picker__WEBPACK_IMPORTED_MODULE_2__["default"], { + swatches, + enableAlpha: options.alpha, + color: previewColor, + onChange: function onChange(v) { + handleColorChange(_objectSpread(_objectSpread({}, colorValues), {}, _defineProperty({}, color.id, v !== _index__WEBPACK_IMPORTED_MODULE_5__.CSS_INITIAL_VALUE && options.computed ? (0, + _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(v) : v))); + } + }), + children: function children(_ref) { + var props = _ref.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", _objectSpread(_objectSpread({}, props), {}, { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_4__["default"])({ + preview: true, + "initial-preview": (colorValues[color.id] || "") === _index__WEBPACK_IMPORTED_MODULE_5__.CSS_INITIAL_VALUE, + global: (Array.isArray(swatches) ? swatches : Object.keys(swatches)).indexOf(colorValues[color.id] || "") !== -1 + }), + style: { + color: previewColor + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_components_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"], { + content: color.title, + placement: "top", + children: function children(_ref2) { + var props = _ref2.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", _objectSpread({ + className: "preview-inner" + }, props)); + } + }) + })); + } + }, color.id); + })) + }) + }); + } + ColorPicker.renderingConfig = { + design: "inline" + }; + const __WEBPACK_DEFAULT_EXPORT__ = ColorPicker; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_popper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(191); + var react_outside_click_handler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var StatePopup = function StatePopup() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { + placement: "bottom", + toggleable: true, + arrow: true, + offset: [ 0, 12 ] + }, children = _ref.children, content = _ref.content, placement = _ref.placement, toggleable = _ref.toggleable, arrow = _ref.arrow, offset = _ref.offset, disableOutsideClick = _ref.disableOutsideClick; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setIsOpen = _useState2[1]; + var _useState3 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState4 = _slicedToArray(_useState3, 2), referenceElement = _useState4[0], setReferenceElement = _useState4[1]; + var _useState5 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState6 = _slicedToArray(_useState5, 2), popperElement = _useState6[0], setPopperElement = _useState6[1]; + var _useState7 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState8 = _slicedToArray(_useState7, 2), arrowElement = _useState8[0], setArrowElement = _useState8[1]; + var _usePopper = (0, react_popper__WEBPACK_IMPORTED_MODULE_3__.usePopper)(referenceElement, popperElement, { + placement, + modifiers: arrow ? [ { + name: "offset", + options: { + offset + } + }, { + name: "arrow", + options: { + element: arrowElement + } + } ] : [] + }), styles = _usePopper.styles, attributes = _usePopper.attributes; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_outside_click_handler__WEBPACK_IMPORTED_MODULE_1__["default"], { + disabled: !!disableOutsideClick, + onOutsideClick: function onOutsideClick() { + if (!isOpen) { + return; + } + setIsOpen(false); + }, + children: [ children({ + setIsOpen, + isOpen, + props: { + ref: setReferenceElement, + onClick: function onClick() { + if (isOpen && !toggleable) { + return; + } + setIsOpen(!isOpen); + } + } + }), isOpen && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", _objectSpread(_objectSpread({ + className: "lotta-popup", + ref: setPopperElement, + style: styles.popper + }, attributes.popper), {}, { + children: [ content, arrow && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + ref: setArrowElement, + style: styles.arrow, + className: "lotta-popup-arrow" + }) ] + })) ] + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = StatePopup; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + usePopper: () => usePopper + }); + var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); + var react_dom__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__); + var _popperjs_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(194); + var react_fast_compare__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(192); + var react_fast_compare__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(react_fast_compare__WEBPACK_IMPORTED_MODULE_2__); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(193); + var EMPTY_MODIFIERS = []; + var usePopper = function usePopper(referenceElement, popperElement, options) { + if (options === void 0) { + options = {}; + } + var prevOptions = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null); + var optionsWithDefaults = { + onFirstUpdate: options.onFirstUpdate, + placement: options.placement || "bottom", + strategy: options.strategy || "absolute", + modifiers: options.modifiers || EMPTY_MODIFIERS + }; + var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState({ + styles: { + popper: { + position: optionsWithDefaults.strategy, + left: "0", + top: "0" + }, + arrow: { + position: "absolute" + } + }, + attributes: {} + }), state = _React$useState[0], setState = _React$useState[1]; + var updateStateModifier = react__WEBPACK_IMPORTED_MODULE_0__.useMemo((function() { + return { + name: "updateState", + enabled: true, + phase: "write", + fn: function fn(_ref) { + var state = _ref.state; + var elements = Object.keys(state.elements); + react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync((function() { + setState({ + styles: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.fromEntries)(elements.map((function(element) { + return [ element, state.styles[element] || {} ]; + }))), + attributes: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.fromEntries)(elements.map((function(element) { + return [ element, state.attributes[element] ]; + }))) + }); + })); + }, + requires: [ "computeStyles" ] + }; + }), []); + var popperOptions = react__WEBPACK_IMPORTED_MODULE_0__.useMemo((function() { + var newOptions = { + onFirstUpdate: optionsWithDefaults.onFirstUpdate, + placement: optionsWithDefaults.placement, + strategy: optionsWithDefaults.strategy, + modifiers: [].concat(optionsWithDefaults.modifiers, [ updateStateModifier, { + name: "applyStyles", + enabled: false + } ]) + }; + if (react_fast_compare__WEBPACK_IMPORTED_MODULE_2___default()(prevOptions.current, newOptions)) { + return prevOptions.current || newOptions; + } else { + prevOptions.current = newOptions; + return newOptions; + } + }), [ optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier ]); + var popperInstanceRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); + (0, _utils__WEBPACK_IMPORTED_MODULE_3__.useIsomorphicLayoutEffect)((function() { + if (popperInstanceRef.current) { + popperInstanceRef.current.setOptions(popperOptions); + } + }), [ popperOptions ]); + (0, _utils__WEBPACK_IMPORTED_MODULE_3__.useIsomorphicLayoutEffect)((function() { + if (referenceElement == null || popperElement == null) { + return; + } + var createPopper = options.createPopper || _popperjs_core__WEBPACK_IMPORTED_MODULE_4__.createPopper; + var popperInstance = createPopper(referenceElement, popperElement, popperOptions); + popperInstanceRef.current = popperInstance; + return function() { + popperInstance.destroy(); + popperInstanceRef.current = null; + }; + }), [ referenceElement, popperElement, options.createPopper ]); + return { + state: popperInstanceRef.current ? popperInstanceRef.current.state : null, + styles: state.styles, + attributes: state.attributes, + update: popperInstanceRef.current ? popperInstanceRef.current.update : null, + forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null + }; + }; + }, module => { + var hasElementType = typeof Element !== "undefined"; + var hasMap = typeof Map === "function"; + var hasSet = typeof Set === "function"; + var hasArrayBuffer = typeof ArrayBuffer === "function" && !!ArrayBuffer.isView; + function equal(a, b) { + if (a === b) return true; + if (a && b && typeof a == "object" && typeof b == "object") { + if (a.constructor !== b.constructor) return false; + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0; ) if (!equal(a[i], b[i])) return false; + return true; + } + var it; + if (hasMap && a instanceof Map && b instanceof Map) { + if (a.size !== b.size) return false; + it = a.entries(); + while (!(i = it.next()).done) if (!b.has(i.value[0])) return false; + it = a.entries(); + while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false; + return true; + } + if (hasSet && a instanceof Set && b instanceof Set) { + if (a.size !== b.size) return false; + it = a.entries(); + while (!(i = it.next()).done) if (!b.has(i.value[0])) return false; + return true; + } + if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0; ) if (a[i] !== b[i]) return false; + return true; + } + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + if (hasElementType && a instanceof Element) return false; + for (i = length; i-- !== 0; ) { + if ((keys[i] === "_owner" || keys[i] === "__v" || keys[i] === "__o") && a.$$typeof) { + continue; + } + if (!equal(a[keys[i]], b[keys[i]])) return false; + } + return true; + } + return a !== a && b !== b; + } + module.exports = function isEqual(a, b) { + try { + return equal(a, b); + } catch (error) { + if ((error.message || "").match(/stack|recursion/i)) { + console.warn("react-fast-compare cannot handle circular refs"); + return false; + } + throw error; + } + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + fromEntries: () => fromEntries, + safeInvoke: () => safeInvoke, + setRef: () => setRef, + unwrapArray: () => unwrapArray, + useIsomorphicLayoutEffect: () => useIsomorphicLayoutEffect + }); + var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + var unwrapArray = function unwrapArray(arg) { + return Array.isArray(arg) ? arg[0] : arg; + }; + var safeInvoke = function safeInvoke(fn) { + if (typeof fn === "function") { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return fn.apply(void 0, args); + } + }; + var setRef = function setRef(ref, node) { + if (typeof ref === "function") { + return safeInvoke(ref, node); + } else if (ref != null) { + ref.current = node; + } + }; + var fromEntries = function fromEntries(entries) { + return entries.reduce((function(acc, _ref) { + var key = _ref[0], value = _ref[1]; + acc[key] = value; + return acc; + }), {}); + }; + var useIsomorphicLayoutEffect = typeof window !== "undefined" && window.document && window.document.createElement ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + applyStyles: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles, + arrow: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow, + computeStyles: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles, + createPopper: () => createPopper, + createPopperLite: () => _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper, + defaultModifiers: () => defaultModifiers, + detectOverflow: () => _createPopper_js__WEBPACK_IMPORTED_MODULE_10__["default"], + eventListeners: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners, + flip: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip, + hide: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide, + offset: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset, + popperGenerator: () => _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator, + popperOffsets: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets, + preventOverflow: () => _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow + }); + var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(239); + var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(218); + var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(195); + var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(197); + var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); + var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(212); + var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(213); + var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(214); + var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(233); + var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(237); + var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(238); + var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(249); + var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(250); + var defaultModifiers = [ _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__["default"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__["default"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__["default"] ]; + var createPopper = (0, _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({ + defaultModifiers + }); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + var passive = { + passive: true + }; + function effect(_ref) { + var state = _ref.state, instance = _ref.instance, options = _ref.options; + var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; + var window = (0, _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + if (scroll) { + scrollParents.forEach((function(scrollParent) { + scrollParent.addEventListener("scroll", instance.update, passive); + })); + } + if (resize) { + window.addEventListener("resize", instance.update, passive); + } + return function() { + if (scroll) { + scrollParents.forEach((function(scrollParent) { + scrollParent.removeEventListener("scroll", instance.update, passive); + })); + } + if (resize) { + window.removeEventListener("resize", instance.update, passive); + } + }; + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "eventListeners", + enabled: true, + phase: "write", + fn: function fn() {}, + effect, + data: {} + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getWindow + }); + function getWindow(node) { + if (node == null) { + return window; + } + if (node.toString() !== "[object Window]") { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + return node; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(198); + function popperOffsets(_ref) { + var state = _ref.state, name = _ref.name; + state.modifiersData[name] = (0, _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: "absolute", + placement: state.placement + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "popperOffsets", + enabled: true, + phase: "read", + fn: popperOffsets, + data: {} + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => computeOffsets + }); + var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); + var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); + var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(202); + var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(201); + function computeOffsets(_ref) { + var reference = _ref.reference, element = _ref.element, placement = _ref.placement; + var basePlacement = placement ? (0, _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) : null; + var variation = placement ? (0, _getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) : null; + var commonX = reference.x + reference.width / 2 - element.width / 2; + var commonY = reference.y + reference.height / 2 - element.height / 2; + var offsets; + switch (basePlacement) { + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top: + offsets = { + x: commonX, + y: reference.y - element.height + }; + break; + + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom: + offsets = { + x: commonX, + y: reference.y + reference.height + }; + break; + + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right: + offsets = { + x: reference.x + reference.width, + y: commonY + }; + break; + + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left: + offsets = { + x: reference.x - element.width, + y: commonY + }; + break; + + default: + offsets = { + x: reference.x, + y: reference.y + }; + } + var mainAxis = basePlacement ? (0, _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement) : null; + if (mainAxis != null) { + var len = mainAxis === "y" ? "height" : "width"; + switch (variation) { + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start: + offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); + break; + + case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end: + offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); + break; + + default: + } + } + return offsets; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getBasePlacement + }); + function getBasePlacement(placement) { + return placement.split("-")[0]; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getVariation + }); + function getVariation(placement) { + return placement.split("-")[1]; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + afterMain: () => afterMain, + afterRead: () => afterRead, + afterWrite: () => afterWrite, + auto: () => auto, + basePlacements: () => basePlacements, + beforeMain: () => beforeMain, + beforeRead: () => beforeRead, + beforeWrite: () => beforeWrite, + bottom: () => bottom, + clippingParents: () => clippingParents, + end: () => end, + left: () => left, + main: () => main, + modifierPhases: () => modifierPhases, + placements: () => placements, + popper: () => popper, + read: () => read, + reference: () => reference, + right: () => right, + start: () => start, + top: () => top, + variationPlacements: () => variationPlacements, + viewport: () => viewport, + write: () => write + }); + var top = "top"; + var bottom = "bottom"; + var right = "right"; + var left = "left"; + var auto = "auto"; + var basePlacements = [ top, bottom, right, left ]; + var start = "start"; + var end = "end"; + var clippingParents = "clippingParents"; + var viewport = "viewport"; + var popper = "popper"; + var reference = "reference"; + var variationPlacements = basePlacements.reduce((function(acc, placement) { + return acc.concat([ placement + "-" + start, placement + "-" + end ]); + }), []); + var placements = [].concat(basePlacements, [ auto ]).reduce((function(acc, placement) { + return acc.concat([ placement, placement + "-" + start, placement + "-" + end ]); + }), []); + var beforeRead = "beforeRead"; + var read = "read"; + var afterRead = "afterRead"; + var beforeMain = "beforeMain"; + var main = "main"; + var afterMain = "afterMain"; + var beforeWrite = "beforeWrite"; + var write = "write"; + var afterWrite = "afterWrite"; + var modifierPhases = [ beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite ]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getMainAxisFromPlacement + }); + function getMainAxisFromPlacement(placement) { + return [ "top", "bottom" ].indexOf(placement) >= 0 ? "x" : "y"; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__, + mapToStyles: () => mapToStyles + }); + var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); + var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(205); + var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(196); + var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(210); + var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(207); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(199); + var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(200); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); + var unsetSides = { + top: "auto", + right: "auto", + bottom: "auto", + left: "auto" + }; + function roundOffsetsByDPR(_ref) { + var x = _ref.x, y = _ref.y; + var win = window; + var dpr = win.devicePixelRatio || 1; + return { + x: (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr || 0, + y: (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr || 0 + }; + } + function mapToStyles(_ref2) { + var _Object$assign2; + var popper = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; + var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ + x, + y + }) : { + x, + y + }; + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty("x"); + var hasY = offsets.hasOwnProperty("y"); + var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left; + var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top; + var win = window; + if (adaptive) { + var offsetParent = (0, _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper); + var heightProp = "clientHeight"; + var widthProp = "clientWidth"; + if (offsetParent === (0, _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) { + offsetParent = (0, _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(popper); + if ((0, _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent).position !== "static" && position === "absolute") { + heightProp = "scrollHeight"; + widthProp = "scrollWidth"; + } + } + offsetParent = offsetParent; + if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) { + sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp]; + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) { + sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp]; + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + var commonStyles = Object.assign({ + position + }, adaptive && unsetSides); + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x, + y + }) : { + x, + y + }; + x = _ref4.x; + y = _ref4.y; + if (gpuAcceleration) { + var _Object$assign; + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", + _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", + _Object$assign)); + } + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", + _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); + } + function computeStyles(_ref5) { + var state = _ref5.state, options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + if (true) { + var transitionProperty = (0, _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.elements.popper).transitionProperty || ""; + if (adaptive && [ "transform", "top", "right", "bottom", "left" ].some((function(property) { + return transitionProperty.indexOf(property) >= 0; + }))) { + console.warn([ "Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations." ].join(" ")); + } + } + var commonStyles = { + placement: (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.placement), + variation: (0, _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__["default"])(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration, + isFixed: state.options.strategy === "fixed" + }; + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive, + roundOffsets + }))); + } + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: "absolute", + adaptive: false, + roundOffsets + }))); + } + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-placement": state.placement + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "computeStyles", + enabled: true, + phase: "beforeWrite", + fn: computeStyles, + data: {} + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + max: () => max, + min: () => min, + round: () => round + }); + var max = Math.max; + var min = Math.min; + var round = Math.round; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getOffsetParent + }); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(196); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(209); + var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(207); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + var _isTableElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(211); + var _getParentNode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(208); + function getTrueOffsetParent(element) { + if (!(0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || (0, + _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element).position === "fixed") { + return null; + } + return element.offsetParent; + } + function getContainingBlock(element) { + var isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1; + var isIE = navigator.userAgent.indexOf("Trident") !== -1; + if (isIE && (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) { + var elementCss = (0, _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + if (elementCss.position === "fixed") { + return null; + } + } + var currentNode = (0, _getParentNode_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element); + if ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(currentNode)) { + currentNode = currentNode.host; + } + while ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && [ "html", "body" ].indexOf((0, + _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__["default"])(currentNode)) < 0) { + var css = (0, _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(currentNode); + if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || [ "transform", "perspective" ].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + return null; + } + function getOffsetParent(element) { + var window = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_4__["default"])(element); + var offsetParent = getTrueOffsetParent(element); + while (offsetParent && (0, _isTableElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent) && (0, + _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === "static") { + offsetParent = getTrueOffsetParent(offsetParent); + } + if (offsetParent && ((0, _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent) === "html" || (0, + _getNodeName_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent) === "body" && (0, + _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === "static")) { + return window; + } + return offsetParent || getContainingBlock(element) || window; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + isElement: () => isElement, + isHTMLElement: () => isHTMLElement, + isShadowRoot: () => isShadowRoot + }); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + function isElement(node) { + var OwnElement = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).Element; + return node instanceof OwnElement || node instanceof Element; + } + function isHTMLElement(node) { + var OwnElement = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; + } + function isShadowRoot(node) { + if (typeof ShadowRoot === "undefined") { + return false; + } + var OwnElement = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getComputedStyle + }); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + function getComputedStyle(element) { + return (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element).getComputedStyle(element); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getParentNode + }); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(209); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(210); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); + function getParentNode(element) { + if ((0, _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === "html") { + return element; + } + return element.assignedSlot || element.parentNode || ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || (0, + _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getNodeName + }); + function getNodeName(element) { + return element ? (element.nodeName || "").toLowerCase() : null; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getDocumentElement + }); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + function getDocumentElement(element) { + return (((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : element.document) || window.document).documentElement; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => isTableElement + }); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(209); + function isTableElement(element) { + return [ "table", "td", "th" ].indexOf((0, _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) >= 0; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(209); + var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach((function(name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element = state.elements[name]; + if (!(0, _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0, + _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) { + return; + } + Object.assign(element.style, style); + Object.keys(attributes).forEach((function(name) { + var value = attributes[name]; + if (value === false) { + element.removeAttribute(name); + } else { + element.setAttribute(name, value === true ? "" : value); + } + })); + })); + } + function effect(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: "0", + top: "0", + margin: "0" + }, + arrow: { + position: "absolute" + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + return function() { + Object.keys(state.elements).forEach((function(name) { + var element = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); + var style = styleProperties.reduce((function(style, property) { + style[property] = ""; + return style; + }), {}); + if (!(0, _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0, + _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) { + return; + } + Object.assign(element.style, style); + Object.keys(attributes).forEach((function(attribute) { + element.removeAttribute(attribute); + })); + })); + }; + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "applyStyles", + enabled: true, + phase: "write", + fn: applyStyles, + effect, + requires: [ "computeStyles" ] + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__, + distanceAndSkiddingToXY: () => distanceAndSkiddingToXY + }); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); + var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); + function distanceAndSkiddingToXY(placement, rects, offset) { + var basePlacement = (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); + var invertDistance = [ _enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top ].indexOf(basePlacement) >= 0 ? -1 : 1; + var _ref = typeof offset === "function" ? offset(Object.assign({}, rects, { + placement + })) : offset, skidding = _ref[0], distance = _ref[1]; + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [ _enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right ].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; + } + function offset(_ref2) { + var state = _ref2.state, options = _ref2.options, name = _ref2.name; + var _options$offset = options.offset, offset = _options$offset === void 0 ? [ 0, 0 ] : _options$offset; + var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce((function(acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); + return acc; + }), {}); + var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + state.modifiersData[name] = data; + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "offset", + enabled: true, + phase: "main", + requires: [ "popperOffsets" ], + fn: offset + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); + var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(216); + var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(218); + var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(217); + var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); + var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(200); + function getExpandedFallbackPlacements(placement) { + if ((0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) { + return []; + } + var oppositePlacement = (0, _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(placement); + return [ (0, _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement), oppositePlacement, (0, + _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(oppositePlacement) ]; + } + function flip(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + if (state.modifiersData[name]._skip) { + return; + } + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [ (0, + _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(preferredPlacement) ] : getExpandedFallbackPlacements(preferredPlacement)); + var placements = [ preferredPlacement ].concat(fallbackPlacements).reduce((function(acc, placement) { + return acc.concat((0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0, + _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(state, { + placement, + boundary, + rootBoundary, + padding, + flipVariations, + allowedAutoPlacements + }) : placement); + }), []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = new Map; + var makeFallbackChecks = true; + var firstFittingPlacement = placements[0]; + for (var i = 0; i < placements.length; i++) { + var placement = placements[i]; + var _basePlacement = (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement); + var isStartVariation = (0, _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start; + var isVertical = [ _enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom ].indexOf(_basePlacement) >= 0; + var len = isVertical ? "width" : "height"; + var overflow = (0, _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state, { + placement, + boundary, + rootBoundary, + altBoundary, + padding + }); + var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top; + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = (0, _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide); + } + var altVariationSide = (0, _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide); + var checks = []; + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + if (checks.every((function(check) { + return check; + }))) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + checksMap.set(placement, checks); + } + if (makeFallbackChecks) { + var numberOfChecks = flipVariations ? 3 : 1; + var _loop = function _loop(_i) { + var fittingPlacement = placements.find((function(placement) { + var checks = checksMap.get(placement); + if (checks) { + return checks.slice(0, _i).every((function(check) { + return check; + })); + } + })); + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + if (_ret === "break") break; + } + } + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "flip", + enabled: true, + phase: "main", + fn: flip, + requiresIfExists: [ "offset" ], + data: { + _skip: false + } + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getOppositePlacement + }); + var hash = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (function(matched) { + return hash[matched]; + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getOppositeVariationPlacement + }); + var hash = { + start: "end", + end: "start" + }; + function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, (function(matched) { + return hash[matched]; + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => computeAutoPlacement + }); + var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); + var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); + var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(218); + var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); + function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP; + var variation = (0, _getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement); + var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter((function(placement) { + return (0, _getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === variation; + })) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements; + var allowedPlacements = placements.filter((function(placement) { + return allowedAutoPlacements.indexOf(placement) >= 0; + })); + if (allowedPlacements.length === 0) { + allowedPlacements = placements; + if (true) { + console.error([ "Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.' ].join(" ")); + } + } + var overflows = allowedPlacements.reduce((function(acc, placement) { + acc[placement] = (0, _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state, { + placement, + boundary, + rootBoundary, + padding + })[(0, _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement)]; + return acc; + }), {}); + return Object.keys(overflows).sort((function(a, b) { + return overflows[a] - overflows[b]; + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => detectOverflow + }); + var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); + var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(210); + var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(223); + var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(198); + var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(224); + var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); + var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(206); + var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(219); + var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(221); + function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = (0, _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(typeof padding !== "number" ? padding : (0, + _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements)); + var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper; + var popperRect = state.rects.popper; + var element = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = (0, _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0, + _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0, + _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.elements.popper), boundary, rootBoundary); + var referenceClientRect = (0, _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.elements.reference); + var popperOffsets = (0, _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"])({ + reference: referenceClientRect, + element: popperRect, + strategy: "absolute", + placement + }); + var popperClientRect = (0, _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__["default"])(Object.assign({}, popperRect, popperOffsets)); + var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; + if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) { + var offset = offsetData[placement]; + Object.keys(overflowOffsets).forEach((function(key) { + var multiply = [ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom ].indexOf(key) >= 0 ? 1 : -1; + var axis = [ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom ].indexOf(key) >= 0 ? "y" : "x"; + overflowOffsets[key] += offset[axis] * multiply; + })); + } + return overflowOffsets; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => mergePaddingObject + }); + var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(220); + function mergePaddingObject(paddingObject) { + return Object.assign({}, (0, _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), paddingObject); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getFreshSideObject + }); + function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => expandToHashMap + }); + function expandToHashMap(value, keys) { + return keys.reduce((function(hashMap, key) { + hashMap[key] = value; + return hashMap; + }), {}); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getClippingRect + }); + var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); + var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(225); + var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(228); + var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(229); + var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(205); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(210); + var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(207); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(206); + var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223); + var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(208); + var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(232); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(209); + var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(224); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(204); + function getInnerBoundingClientRect(element) { + var rect = (0, _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + rect.top = rect.top + element.clientTop; + rect.left = rect.left + element.clientLeft; + rect.bottom = rect.top + element.clientHeight; + rect.right = rect.left + element.clientWidth; + rect.width = element.clientWidth; + rect.height = element.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; + } + function getClientRectFromMixedType(element, clippingParent) { + return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0, + _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0, _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element)) : (0, + _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent) : (0, + _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0, _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])((0, + _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(element))); + } + function getClippingParents(element) { + var clippingParents = (0, _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__["default"])((0, + _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__["default"])(element)); + var canEscapeClipping = [ "absolute", "fixed" ].indexOf((0, _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__["default"])(element).position) >= 0; + var clipperElement = canEscapeClipping && (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0, + _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__["default"])(element) : element; + if (!(0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) { + return []; + } + return clippingParents.filter((function(clippingParent) { + return (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0, + _contains_js__WEBPACK_IMPORTED_MODULE_11__["default"])(clippingParent, clipperElement) && (0, + _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__["default"])(clippingParent) !== "body"; + })); + } + function getClippingRect(element, boundary, rootBoundary) { + var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary); + var clippingParents = [].concat(mainClippingParents, [ rootBoundary ]); + var firstClippingParent = clippingParents[0]; + var clippingRect = clippingParents.reduce((function(accRect, clippingParent) { + var rect = getClientRectFromMixedType(element, clippingParent); + accRect.top = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top); + accRect.right = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right); + accRect.bottom = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom); + accRect.left = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left); + return accRect; + }), getClientRectFromMixedType(element, firstClippingParent)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getBoundingClientRect + }); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(204); + function getBoundingClientRect(element, includeScale) { + if (includeScale === void 0) { + includeScale = false; + } + var rect = element.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + if ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) && includeScale) { + var offsetHeight = element.offsetHeight; + var offsetWidth = element.offsetWidth; + if (offsetWidth > 0) { + scaleX = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(rect.width) / offsetWidth || 1; + } + if (offsetHeight > 0) { + scaleY = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(rect.height) / offsetHeight || 1; + } + } + return { + width: rect.width / scaleX, + height: rect.height / scaleY, + top: rect.top / scaleY, + right: rect.right / scaleX, + bottom: rect.bottom / scaleY, + left: rect.left / scaleX, + x: rect.left / scaleX, + y: rect.top / scaleY + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => rectToClientRect + }); + function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getViewportRect + }); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210); + var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); + function getViewportRect(element) { + var win = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var html = (0, _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + return { + width, + height, + x: x + (0, _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element), + y + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getWindowScrollBarX + }); + var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210); + var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(227); + function getWindowScrollBarX(element) { + return (0, _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0, + _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)).left + (0, + _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).scrollLeft; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getWindowScroll + }); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + function getWindowScroll(node) { + var win = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft, + scrollTop + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getDocumentRect + }); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(210); + var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(207); + var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); + var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(227); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(204); + function getDocumentRect(element) { + var _element$ownerDocumen; + var html = (0, _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var winScroll = (0, _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element); + var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + (0, _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element); + var y = -winScroll.scrollTop; + if ((0, _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(body || html).direction === "rtl") { + x += (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width; + } + return { + width, + height, + x, + y + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => listScrollParents + }); + var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(230); + var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(208); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(196); + var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); + function listScrollParents(element, list) { + var _element$ownerDocumen; + if (list === void 0) { + list = []; + } + var scrollParent = (0, _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scrollParent); + var target = isBody ? [ win ].concat(win.visualViewport || [], (0, _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : updatedList.concat(listScrollParents((0, _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(target))); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getScrollParent + }); + var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(208); + var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(209); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); + function getScrollParent(node) { + if ([ "html", "body", "#document" ].indexOf((0, _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node)) >= 0) { + return node.ownerDocument.body; + } + if ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0, + _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node)) { + return node; + } + return getScrollParent((0, _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node)); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => isScrollParent + }); + var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(207); + function isScrollParent(element) { + var _getComputedStyle = (0, _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => contains + }); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); + if (parent.contains(child)) { + return true; + } else if (rootNode && (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) { + var next = child; + do { + if (next && parent.isSameNode(next)) { + return true; + } + next = next.parentNode || next.host; + } while (next); + } + return false; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(201); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); + var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(202); + var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(234); + var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(236); + var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(235); + var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(205); + var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(218); + var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(200); + var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(220); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(204); + function preventOverflow(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = (0, _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state, { + boundary, + rootBoundary, + padding, + altBoundary + }); + var basePlacement = (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.placement); + var variation = (0, _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.placement); + var isBasePlacement = !variation; + var mainAxis = (0, _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement); + var altAxis = (0, _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__["default"])(mainAxis); + var popperOffsets = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + if (!popperOffsets) { + return; + } + if (checkMainAxis) { + var _offsetModifierState$; + var mainSide = mainAxis === "y" ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left; + var altSide = mainAxis === "y" ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right; + var len = mainAxis === "y" ? "height" : "width"; + var offset = popperOffsets[mainAxis]; + var min = offset + overflow[mainSide]; + var max = offset - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? (0, _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : (0, + _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__["default"])(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; + var arrowLen = (0, _utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && (0, _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__["default"])(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset + maxOffset - offsetModifierValue; + var preventedOffset = (0, _utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? (0, + _utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0, + _utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max); + popperOffsets[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset; + } + if (checkAltAxis) { + var _offsetModifierState$2; + var _mainSide = mainAxis === "x" ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left; + var _altSide = mainAxis === "x" ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right; + var _offset = popperOffsets[altAxis]; + var _len = altAxis === "y" ? "height" : "width"; + var _min = _offset + overflow[_mainSide]; + var _max = _offset - overflow[_altSide]; + var isOriginSide = [ _enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.left ].indexOf(basePlacement) !== -1; + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + var _preventedOffset = tether && isOriginSide ? (0, _utils_within_js__WEBPACK_IMPORTED_MODULE_8__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0, + _utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + popperOffsets[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + state.modifiersData[name] = data; + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "preventOverflow", + enabled: true, + phase: "main", + fn: preventOverflow, + requiresIfExists: [ "offset" ] + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getAltAxis + }); + function getAltAxis(axis) { + return axis === "x" ? "y" : "x"; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getLayoutRect + }); + var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223); + function getLayoutRect(element) { + var clientRect = (0, _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); + var width = element.offsetWidth; + var height = element.offsetHeight; + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + return { + x: element.offsetLeft, + y: element.offsetTop, + width, + height + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + within: () => within, + withinMaxClamp: () => withinMaxClamp + }); + var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); + function within(min, value, max) { + return (0, _math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0, _math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max)); + } + function withinMaxClamp(min, value, max) { + var v = within(min, value, max); + return v > max ? max : v; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(199); + var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(235); + var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(232); + var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(205); + var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(202); + var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(236); + var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(219); + var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(221); + var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(201); + var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(206); + var toPaddingObject = function toPaddingObject(padding, state) { + padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return (0, _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(typeof padding !== "number" ? padding : (0, + _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements)); + }; + function arrow(_ref) { + var _state$modifiersData$; + var state = _ref.state, name = _ref.name, options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets = state.modifiersData.popperOffsets; + var basePlacement = (0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(state.placement); + var axis = (0, _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(basePlacement); + var isVertical = [ _enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right ].indexOf(basePlacement) >= 0; + var len = isVertical ? "height" : "width"; + if (!arrowElement || !popperOffsets) { + return; + } + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = (0, _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(arrowElement); + var minProp = axis === "y" ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left; + var maxProp = axis === "y" ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; + var startDiff = popperOffsets[axis] - state.rects.reference[axis]; + var arrowOffsetParent = (0, _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement); + var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; + var min = paddingObject[minProp]; + var max = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset = (0, _utils_within_js__WEBPACK_IMPORTED_MODULE_7__.within)(min, center, max); + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, + _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); + } + function effect(_ref2) { + var state = _ref2.state, options = _ref2.options; + var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; + if (arrowElement == null) { + return; + } + if (typeof arrowElement === "string") { + arrowElement = state.elements.popper.querySelector(arrowElement); + if (!arrowElement) { + return; + } + } + if (true) { + if (!(0, _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_8__.isHTMLElement)(arrowElement)) { + console.error([ 'Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow." ].join(" ")); + } + } + if (!(0, _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_9__["default"])(state.elements.popper, arrowElement)) { + if (true) { + console.error([ 'Popper: "arrow" modifier\'s `element` must be a child of the popper', "element." ].join(" ")); + } + return; + } + state.elements.arrow = arrowElement; + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "arrow", + enabled: true, + phase: "main", + fn: arrow, + effect, + requires: [ "popperOffsets" ], + requiresIfExists: [ "preventOverflow" ] + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); + var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); + function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; + } + function isAnySideFullyClipped(overflow) { + return [ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left ].some((function(side) { + return overflow[side] >= 0; + })); + } + function hide(_ref) { + var state = _ref.state, name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = (0, _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { + elementContext: "reference" + }); + var popperAltOverflow = (0, _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets, + popperEscapeOffsets, + isReferenceHidden, + hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-reference-hidden": isReferenceHidden, + "data-popper-escaped": hasPopperEscaped + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = { + name: "hide", + enabled: true, + phase: "main", + requiresIfExists: [ "preventOverflow" ], + fn: hide + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + createPopper: () => createPopper, + detectOverflow: () => _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_13__["default"], + popperGenerator: () => popperGenerator + }); + var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(245); + var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(235); + var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); + var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(205); + var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(207); + var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(240); + var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(248); + var _utils_validateModifiers_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(243); + var _utils_uniqueBy_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(242); + var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(199); + var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(241); + var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(218); + var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); + var _enums_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(201); + var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element."; + var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash."; + var DEFAULT_OPTIONS = { + placement: "bottom", + modifiers: [], + strategy: "absolute" + }; + function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return !args.some((function(element) { + return !(element && typeof element.getBoundingClientRect === "function"); + })); + } + function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper(reference, popper, options) { + if (options === void 0) { + options = defaultOptions; + } + var state = { + placement: "bottom", + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference, + popper + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state, + setOptions: function setOptions(setOptionsAction) { + var options = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options); + state.scrollParents = { + reference: (0, _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0, + _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference) : reference.contextElement ? (0, + _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference.contextElement) : [], + popper: (0, _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper) + }; + var orderedModifiers = (0, _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0, + _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__["default"])([].concat(defaultModifiers, state.options.modifiers))); + state.orderedModifiers = orderedModifiers.filter((function(m) { + return m.enabled; + })); + if (true) { + var modifiers = (0, _utils_uniqueBy_js__WEBPACK_IMPORTED_MODULE_4__["default"])([].concat(orderedModifiers, state.options.modifiers), (function(_ref) { + var name = _ref.name; + return name; + })); + (0, _utils_validateModifiers_js__WEBPACK_IMPORTED_MODULE_5__["default"])(modifiers); + if ((0, _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.options.placement) === _enums_js__WEBPACK_IMPORTED_MODULE_7__.auto) { + var flipModifier = state.orderedModifiers.find((function(_ref2) { + var name = _ref2.name; + return name === "flip"; + })); + if (!flipModifier) { + console.error([ 'Popper: "auto" placements require the "flip" modifier be', "present and enabled to work." ].join(" ")); + } + } + var _getComputedStyle = (0, _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_8__["default"])(popper), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft; + if ([ marginTop, marginRight, marginBottom, marginLeft ].some((function(margin) { + return parseFloat(margin); + }))) { + console.warn([ 'Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers." ].join(" ")); + } + } + runModifierEffects(); + return instance.update(); + }, + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + var _state$elements = state.elements, reference = _state$elements.reference, popper = _state$elements.popper; + if (!areValidElements(reference, popper)) { + if (true) { + console.error(INVALID_ELEMENT_ERROR); + } + return; + } + state.rects = { + reference: (0, _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_9__["default"])(reference, (0, + _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__["default"])(popper), state.options.strategy === "fixed"), + popper: (0, _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_11__["default"])(popper) + }; + state.reset = false; + state.placement = state.options.placement; + state.orderedModifiers.forEach((function(modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + })); + var __debug_loops__ = 0; + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (true) { + __debug_loops__ += 1; + if (__debug_loops__ > 100) { + console.error(INFINITE_LOOP_ERROR); + break; + } + } + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + var _state$orderedModifie = state.orderedModifiers[index], fn = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; + if (typeof fn === "function") { + state = fn({ + state, + options: _options, + name, + instance + }) || state; + } + } + }, + update: (0, _utils_debounce_js__WEBPACK_IMPORTED_MODULE_12__["default"])((function() { + return new Promise((function(resolve) { + instance.forceUpdate(); + resolve(state); + })); + })), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + if (!areValidElements(reference, popper)) { + if (true) { + console.error(INVALID_ELEMENT_ERROR); + } + return instance; + } + instance.setOptions(options).then((function(state) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state); + } + })); + function runModifierEffects() { + state.orderedModifiers.forEach((function(_ref3) { + var name = _ref3.name, _ref3$options = _ref3.options, options = _ref3$options === void 0 ? {} : _ref3$options, effect = _ref3.effect; + if (typeof effect === "function") { + var cleanupFn = effect({ + state, + name, + instance, + options + }); + var noopFn = function noopFn() {}; + effectCleanupFns.push(cleanupFn || noopFn); + } + })); + } + function cleanupModifierEffects() { + effectCleanupFns.forEach((function(fn) { + return fn(); + })); + effectCleanupFns = []; + } + return instance; + }; + } + var createPopper = popperGenerator(); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => orderModifiers + }); + var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); + function order(modifiers) { + var map = new Map; + var visited = new Set; + var result = []; + modifiers.forEach((function(modifier) { + map.set(modifier.name, modifier); + })); + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach((function(dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + if (depModifier) { + sort(depModifier); + } + } + })); + result.push(modifier); + } + modifiers.forEach((function(modifier) { + if (!visited.has(modifier.name)) { + sort(modifier); + } + })); + return result; + } + function orderModifiers(modifiers) { + var orderedModifiers = order(modifiers); + return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce((function(acc, phase) { + return acc.concat(orderedModifiers.filter((function(modifier) { + return modifier.phase === phase; + }))); + }), []); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => mergeByName + }); + function mergeByName(modifiers) { + var merged = modifiers.reduce((function(merged, current) { + var existing = merged[current.name]; + merged[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged; + }), {}); + return Object.keys(merged).map((function(key) { + return merged[key]; + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => uniqueBy + }); + function uniqueBy(arr, fn) { + var identifiers = new Set; + return arr.filter((function(item) { + var identifier = fn(item); + if (!identifiers.has(identifier)) { + identifiers.add(identifier); + return true; + } + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => validateModifiers + }); + var _format_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(244); + var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); + var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s'; + var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available'; + var VALID_PROPERTIES = [ "name", "enabled", "phase", "fn", "effect", "requires", "options" ]; + function validateModifiers(modifiers) { + modifiers.forEach((function(modifier) { + [].concat(Object.keys(modifier), VALID_PROPERTIES).filter((function(value, index, self) { + return self.indexOf(value) === index; + })).forEach((function(key) { + switch (key) { + case "name": + if (typeof modifier.name !== "string") { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"')); + } + break; + + case "enabled": + if (typeof modifier.enabled !== "boolean") { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"')); + } + break; + + case "phase": + if (_enums_js__WEBPACK_IMPORTED_MODULE_1__.modifierPhases.indexOf(modifier.phase) < 0) { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + _enums_js__WEBPACK_IMPORTED_MODULE_1__.modifierPhases.join(", "), '"' + String(modifier.phase) + '"')); + } + break; + + case "fn": + if (typeof modifier.fn !== "function") { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"')); + } + break; + + case "effect": + if (modifier.effect != null && typeof modifier.effect !== "function") { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"')); + } + break; + + case "requires": + if (modifier.requires != null && !Array.isArray(modifier.requires)) { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"')); + } + break; + + case "requiresIfExists": + if (!Array.isArray(modifier.requiresIfExists)) { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"')); + } + break; + + case "options": + case "data": + break; + + default: + console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map((function(s) { + return '"' + s + '"'; + })).join(", ") + '; but "' + key + '" was provided.'); + } + modifier.requires && modifier.requires.forEach((function(requirement) { + if (modifiers.find((function(mod) { + return mod.name === requirement; + })) == null) { + console.error((0, _format_js__WEBPACK_IMPORTED_MODULE_0__["default"])(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement)); + } + })); + })); + })); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => format + }); + function format(str) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return [].concat(args).reduce((function(p, c) { + return p.replace(/%s/, c); + }), str); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getCompositeRect + }); + var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(223); + var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(246); + var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(209); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); + var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(226); + var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(210); + var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(231); + var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); + function isElementScaled(element) { + var rect = element.getBoundingClientRect(); + var scaleX = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) / element.offsetWidth || 1; + var scaleY = (0, _utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) / element.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; + } + function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + var isOffsetParentAnElement = (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent); + var offsetParentIsScaled = (0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent); + var documentElement = (0, _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent); + var rect = (0, _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(elementOrVirtualElement, offsetParentIsScaled); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if ((0, _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) !== "body" || (0, + _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(documentElement)) { + scroll = (0, _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent); + } + if ((0, _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) { + offsets = (0, _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = (0, _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__["default"])(documentElement); + } + } + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getNodeScroll + }); + var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(227); + var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); + var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); + var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(247); + function getNodeScroll(node) { + if (node === (0, _getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node) || !(0, + _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) { + return (0, _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node); + } else { + return (0, _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node); + } + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => getHTMLElementScroll + }); + function getHTMLElementScroll(element) { + return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => debounce + }); + function debounce(fn) { + var pending; + return function() { + if (!pending) { + pending = new Promise((function(resolve) { + Promise.resolve().then((function() { + pending = undefined; + resolve(fn()); + })); + })); + } + return pending; + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + createPopper: () => createPopper, + defaultModifiers: () => defaultModifiers, + detectOverflow: () => _createPopper_js__WEBPACK_IMPORTED_MODULE_5__["default"], + popperGenerator: () => _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator + }); + var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(239); + var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(218); + var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(195); + var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(197); + var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); + var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(212); + var defaultModifiers = [ _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"] ]; + var createPopper = (0, _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({ + defaultModifiers + }); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + applyStyles: () => _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__["default"], + arrow: () => _arrow_js__WEBPACK_IMPORTED_MODULE_1__["default"], + computeStyles: () => _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], + eventListeners: () => _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__["default"], + flip: () => _flip_js__WEBPACK_IMPORTED_MODULE_4__["default"], + hide: () => _hide_js__WEBPACK_IMPORTED_MODULE_5__["default"], + offset: () => _offset_js__WEBPACK_IMPORTED_MODULE_6__["default"], + popperOffsets: () => _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"], + preventOverflow: () => _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"] + }); + var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(212); + var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(237); + var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); + var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(195); + var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(214); + var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(238); + var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(213); + var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(197); + var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(233); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_popper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(191); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function Tooltip() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { + placement: "top" + }, children = _ref.children, content = _ref.content, placement = _ref.placement; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setIsOpen = _useState2[1]; + var _useState3 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState4 = _slicedToArray(_useState3, 2), referenceElement = _useState4[0], setReferenceElement = _useState4[1]; + var _useState5 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState6 = _slicedToArray(_useState5, 2), popperElement = _useState6[0], setPopperElement = _useState6[1]; + var _useState7 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState8 = _slicedToArray(_useState7, 2), arrowElement = _useState8[0], setArrowElement = _useState8[1]; + var _usePopper = (0, react_popper__WEBPACK_IMPORTED_MODULE_2__.usePopper)(referenceElement, popperElement, { + placement, + modifiers: [ { + name: "offset", + options: { + offset: [ 0, 8 ] + } + }, { + name: "arrow", + options: { + element: arrowElement + } + } ] + }), styles = _usePopper.styles, attributes = _usePopper.attributes; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, { + children: [ children({ + props: { + ref: setReferenceElement, + onMouseEnter: function onMouseEnter() { + setIsOpen(true); + }, + onMouseLeave: function onMouseLeave() { + setIsOpen(false); + } + } + }), isOpen && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", _objectSpread(_objectSpread({ + className: "lotta-tooltip", + ref: setPopperElement, + style: styles.popper + }, attributes.popper), {}, { + children: [ content, (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + ref: setArrowElement, + style: styles.arrow, + className: "lotta-popup-arrow" + }) ] + })) ] + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = Tooltip; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => ReactColorPicker + }); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(253); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__); + var _tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); + var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(254); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function hex2rgba(hex) { + if (hex.length < 9 || hex[0] != "#") return hex; + var r = parseInt(hex.slice(1, 3), 16); + var g = parseInt(hex.slice(3, 5), 16); + var b = parseInt(hex.slice(5, 7), 16); + var a = (parseInt(hex.slice(7, 9), 16) / 255).toFixed(2); + return "rgba(" + r + "," + g + "," + b + "," + a + ")"; + } + function ReactColorPicker(props) { + var swatches = props.swatches; + var hasMeta = !Array.isArray(swatches) && _typeof(swatches) === "object"; + if (hasMeta) { + swatches = Object.keys(swatches); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "lotta-react-color-picker", + children: [ swatches && swatches.length > 0 && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.Fragment, { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", { + className: "category-title", + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Theme") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "swatches", + children: swatches.map((function(color, i) { + var label = hasMeta && props.swatches[color] ? props.swatches[color] : ""; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "swatch-wrap", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + swatch: true, + "initial-swatch": color === _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE, + active: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(color) === (0, _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(props.color) + }), + style: { + color + }, + onClick: function onClick() { + return props.onChange(color); + }, + children: label ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_tooltip__WEBPACK_IMPORTED_MODULE_1__["default"], { + content: label, + placement: "top", + children: function children(_ref) { + var props = _ref.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", _objectSpread({ + className: "swatch-inner" + }, props)); + } + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "swatch-inner" + }) + }) + }, i); + })) + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("h4", { + className: "category-title", + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Custom") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.ColorPicker, { + className: "color-picker", + color: props.color, + enableAlpha: props.enableAlpha, + defaultValue: props.defaultValue || props.color, + onChange: function onChange(value) { + return props.onChange(hex2rgba(value)); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "color-picker-value", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("input", { + type: "text", + value: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.getColorValue)(props.color), + onChange: function onChange(e) { + props.onChange(hex2rgba(e.target.value)); + } + }) + }) ] + }); + } + }, module => { + "use strict"; + module.exports = window.wp.components; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + __: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.__, + _n: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__._n, + _nx: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__._nx, + _x: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__._x, + createI18n: () => _create_i18n__WEBPACK_IMPORTED_MODULE_1__.createI18n, + defaultI18n: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__["default"], + getLocaleData: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.getLocaleData, + hasTranslation: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.hasTranslation, + isRTL: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.isRTL, + resetLocaleData: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.resetLocaleData, + setLocaleData: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.setLocaleData, + sprintf: () => _sprintf__WEBPACK_IMPORTED_MODULE_0__.sprintf, + subscribe: () => _default_i18n__WEBPACK_IMPORTED_MODULE_2__.subscribe + }); + var _sprintf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(255); + var _create_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(258); + var _default_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(264); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + sprintf: () => sprintf + }); + var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(256); + var memize__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__); + var sprintf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257); + var sprintf_js__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(sprintf_js__WEBPACK_IMPORTED_MODULE_1__); + const logErrorOnce = memize__WEBPACK_IMPORTED_MODULE_0___default()(console.error); + function sprintf(format) { + try { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return sprintf_js__WEBPACK_IMPORTED_MODULE_1___default().sprintf(format, ...args); + } catch (error) { + if (error instanceof Error) { + logErrorOnce("sprintf error: \n\n" + error.toString()); + } + return format; + } + } + }, module => { + function memize(fn, options) { + var size = 0; + var head; + var tail; + options = options || {}; + function memoized() { + var node = head, len = arguments.length, args, i; + searchCache: while (node) { + if (node.args.length !== arguments.length) { + node = node.next; + continue; + } + for (i = 0; i < len; i++) { + if (node.args[i] !== arguments[i]) { + node = node.next; + continue searchCache; + } + } + if (node !== head) { + if (node === tail) { + tail = node.prev; + } + node.prev.next = node.next; + if (node.next) { + node.next.prev = node.prev; + } + node.next = head; + node.prev = null; + head.prev = node; + head = node; + } + return node.val; + } + args = new Array(len); + for (i = 0; i < len; i++) { + args[i] = arguments[i]; + } + node = { + args, + val: fn.apply(null, args) + }; + if (head) { + head.prev = node; + node.next = head; + } else { + tail = node; + } + if (size === options.maxSize) { + tail = tail.prev; + tail.next = null; + } else { + size++; + } + head = node; + return node.val; + } + memoized.clear = function() { + head = null; + tail = null; + size = 0; + }; + if (false) {} + return memoized; + } + module.exports = memize; + }, (module, exports, __webpack_require__) => { + var __WEBPACK_AMD_DEFINE_RESULT__; + !function() { + "use strict"; + var re = { + not_string: /[^s]/, + not_bool: /[^t]/, + not_type: /[^T]/, + not_primitive: /[^v]/, + number: /[diefg]/, + numeric_arg: /[bcdiefguxX]/, + json: /[j]/, + not_json: /[^j]/, + text: /^[^\x25]+/, + modulo: /^\x25{2}/, + placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/, + key: /^([a-z_][a-z_\d]*)/i, + key_access: /^\.([a-z_][a-z_\d]*)/i, + index_access: /^\[(\d+)\]/, + sign: /^[+-]/ + }; + function sprintf(key) { + return sprintf_format(sprintf_parse(key), arguments); + } + function vsprintf(fmt, argv) { + return sprintf.apply(null, [ fmt ].concat(argv || [])); + } + function sprintf_format(parse_tree, argv) { + var cursor = 1, tree_length = parse_tree.length, arg, output = "", i, k, ph, pad, pad_character, pad_length, is_positive, sign; + for (i = 0; i < tree_length; i++) { + if (typeof parse_tree[i] === "string") { + output += parse_tree[i]; + } else if (typeof parse_tree[i] === "object") { + ph = parse_tree[i]; + if (ph.keys) { + arg = argv[cursor]; + for (k = 0; k < ph.keys.length; k++) { + if (arg == undefined) { + throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k - 1])); + } + arg = arg[ph.keys[k]]; + } + } else if (ph.param_no) { + arg = argv[ph.param_no]; + } else { + arg = argv[cursor++]; + } + if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) { + arg = arg(); + } + if (re.numeric_arg.test(ph.type) && (typeof arg !== "number" && isNaN(arg))) { + throw new TypeError(sprintf("[sprintf] expecting number but found %T", arg)); + } + if (re.number.test(ph.type)) { + is_positive = arg >= 0; + } + switch (ph.type) { + case "b": + arg = parseInt(arg, 10).toString(2); + break; + + case "c": + arg = String.fromCharCode(parseInt(arg, 10)); + break; + + case "d": + case "i": + arg = parseInt(arg, 10); + break; + + case "j": + arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0); + break; + + case "e": + arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential(); + break; + + case "f": + arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg); + break; + + case "g": + arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg); + break; + + case "o": + arg = (parseInt(arg, 10) >>> 0).toString(8); + break; + + case "s": + arg = String(arg); + arg = ph.precision ? arg.substring(0, ph.precision) : arg; + break; + + case "t": + arg = String(!!arg); + arg = ph.precision ? arg.substring(0, ph.precision) : arg; + break; + + case "T": + arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase(); + arg = ph.precision ? arg.substring(0, ph.precision) : arg; + break; + + case "u": + arg = parseInt(arg, 10) >>> 0; + break; + + case "v": + arg = arg.valueOf(); + arg = ph.precision ? arg.substring(0, ph.precision) : arg; + break; + + case "x": + arg = (parseInt(arg, 10) >>> 0).toString(16); + break; + + case "X": + arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase(); + break; + } + if (re.json.test(ph.type)) { + output += arg; + } else { + if (re.number.test(ph.type) && (!is_positive || ph.sign)) { + sign = is_positive ? "+" : "-"; + arg = arg.toString().replace(re.sign, ""); + } else { + sign = ""; + } + pad_character = ph.pad_char ? ph.pad_char === "0" ? "0" : ph.pad_char.charAt(1) : " "; + pad_length = ph.width - (sign + arg).length; + pad = ph.width ? pad_length > 0 ? pad_character.repeat(pad_length) : "" : ""; + output += ph.align ? sign + arg + pad : pad_character === "0" ? sign + pad + arg : pad + sign + arg; + } + } + } + return output; + } + var sprintf_cache = Object.create(null); + function sprintf_parse(fmt) { + if (sprintf_cache[fmt]) { + return sprintf_cache[fmt]; + } + var _fmt = fmt, match, parse_tree = [], arg_names = 0; + while (_fmt) { + if ((match = re.text.exec(_fmt)) !== null) { + parse_tree.push(match[0]); + } else if ((match = re.modulo.exec(_fmt)) !== null) { + parse_tree.push("%"); + } else if ((match = re.placeholder.exec(_fmt)) !== null) { + if (match[2]) { + arg_names |= 1; + var field_list = [], replacement_field = match[2], field_match = []; + if ((field_match = re.key.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") { + if ((field_match = re.key_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + } else if ((field_match = re.index_access.exec(replacement_field)) !== null) { + field_list.push(field_match[1]); + } else { + throw new SyntaxError("[sprintf] failed to parse named argument key"); + } + } + } else { + throw new SyntaxError("[sprintf] failed to parse named argument key"); + } + match[2] = field_list; + } else { + arg_names |= 2; + } + if (arg_names === 3) { + throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported"); + } + parse_tree.push({ + placeholder: match[0], + param_no: match[1], + keys: match[2], + sign: match[3], + pad_char: match[4], + align: match[5], + width: match[6], + precision: match[7], + type: match[8] + }); + } else { + throw new SyntaxError("[sprintf] unexpected placeholder"); + } + _fmt = _fmt.substring(match[0].length); + } + return sprintf_cache[fmt] = parse_tree; + } + if (true) { + exports.sprintf = sprintf; + exports.vsprintf = vsprintf; + } + if (typeof window !== "undefined") { + window["sprintf"] = sprintf; + window["vsprintf"] = vsprintf; + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return { + sprintf, + vsprintf + }; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + } + }(); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + createI18n: () => createI18n + }); + var tannin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(259); + const DEFAULT_LOCALE_DATA = { + "": { + plural_forms(n) { + return n === 1 ? 0 : 1; + } + } + }; + const I18N_HOOK_REGEXP = /^i18n\.(n?gettext|has_translation)(_|$)/; + const createI18n = (initialData, initialDomain, hooks) => { + const tannin = new tannin__WEBPACK_IMPORTED_MODULE_0__["default"]({}); + const listeners = new Set; + const notifyListeners = () => { + listeners.forEach((listener => listener())); + }; + const subscribe = callback => { + listeners.add(callback); + return () => listeners.delete(callback); + }; + const getLocaleData = function() { + let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "default"; + return tannin.data[domain]; + }; + const doSetLocaleData = function(data) { + var _tannin$data$domain; + let domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default"; + tannin.data[domain] = { + ...tannin.data[domain], + ...data + }; + tannin.data[domain][""] = { + ...DEFAULT_LOCALE_DATA[""], + ...(_tannin$data$domain = tannin.data[domain]) === null || _tannin$data$domain === void 0 ? void 0 : _tannin$data$domain[""] + }; + delete tannin.pluralForms[domain]; + }; + const setLocaleData = (data, domain) => { + doSetLocaleData(data, domain); + notifyListeners(); + }; + const addLocaleData = function(data) { + var _tannin$data$domain2; + let domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "default"; + tannin.data[domain] = { + ...tannin.data[domain], + ...data, + "": { + ...DEFAULT_LOCALE_DATA[""], + ...(_tannin$data$domain2 = tannin.data[domain]) === null || _tannin$data$domain2 === void 0 ? void 0 : _tannin$data$domain2[""], + ...data === null || data === void 0 ? void 0 : data[""] + } + }; + delete tannin.pluralForms[domain]; + notifyListeners(); + }; + const resetLocaleData = (data, domain) => { + tannin.data = {}; + tannin.pluralForms = {}; + setLocaleData(data, domain); + }; + const dcnpgettext = function() { + let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "default"; + let context = arguments.length > 1 ? arguments[1] : undefined; + let single = arguments.length > 2 ? arguments[2] : undefined; + let plural = arguments.length > 3 ? arguments[3] : undefined; + let number = arguments.length > 4 ? arguments[4] : undefined; + if (!tannin.data[domain]) { + doSetLocaleData(undefined, domain); + } + return tannin.dcnpgettext(domain, context, single, plural, number); + }; + const getFilterDomain = function() { + let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "default"; + return domain; + }; + const __ = (text, domain) => { + let translation = dcnpgettext(domain, undefined, text); + if (!hooks) { + return translation; + } + translation = hooks.applyFilters("i18n.gettext", translation, text, domain); + return hooks.applyFilters("i18n.gettext_" + getFilterDomain(domain), translation, text, domain); + }; + const _x = (text, context, domain) => { + let translation = dcnpgettext(domain, context, text); + if (!hooks) { + return translation; + } + translation = hooks.applyFilters("i18n.gettext_with_context", translation, text, context, domain); + return hooks.applyFilters("i18n.gettext_with_context_" + getFilterDomain(domain), translation, text, context, domain); + }; + const _n = (single, plural, number, domain) => { + let translation = dcnpgettext(domain, undefined, single, plural, number); + if (!hooks) { + return translation; + } + translation = hooks.applyFilters("i18n.ngettext", translation, single, plural, number, domain); + return hooks.applyFilters("i18n.ngettext_" + getFilterDomain(domain), translation, single, plural, number, domain); + }; + const _nx = (single, plural, number, context, domain) => { + let translation = dcnpgettext(domain, context, single, plural, number); + if (!hooks) { + return translation; + } + translation = hooks.applyFilters("i18n.ngettext_with_context", translation, single, plural, number, context, domain); + return hooks.applyFilters("i18n.ngettext_with_context_" + getFilterDomain(domain), translation, single, plural, number, context, domain); + }; + const isRTL = () => "rtl" === _x("ltr", "text direction"); + const hasTranslation = (single, context, domain) => { + var _tannin$data, _tannin$data2; + const key = context ? context + "" + single : single; + let result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : "default"]) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]); + if (hooks) { + result = hooks.applyFilters("i18n.has_translation", result, single, context, domain); + result = hooks.applyFilters("i18n.has_translation_" + getFilterDomain(domain), result, single, context, domain); + } + return result; + }; + if (initialData) { + setLocaleData(initialData, initialDomain); + } + if (hooks) { + const onHookAddedOrRemoved = hookName => { + if (I18N_HOOK_REGEXP.test(hookName)) { + notifyListeners(); + } + }; + hooks.addAction("hookAdded", "core/i18n", onHookAddedOrRemoved); + hooks.addAction("hookRemoved", "core/i18n", onHookAddedOrRemoved); + } + return { + getLocaleData, + setLocaleData, + addLocaleData, + resetLocaleData, + subscribe, + __, + _x, + _n, + _nx, + isRTL, + hasTranslation + }; + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Tannin + }); + var _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260); + var DEFAULT_OPTIONS = { + contextDelimiter: "", + onMissingKey: null + }; + function getPluralExpression(pf) { + var parts, i, part; + parts = pf.split(";"); + for (i = 0; i < parts.length; i++) { + part = parts[i].trim(); + if (part.indexOf("plural=") === 0) { + return part.substr(7); + } + } + } + function Tannin(data, options) { + var key; + this.data = data; + this.pluralForms = {}; + this.options = {}; + for (key in DEFAULT_OPTIONS) { + this.options[key] = options !== undefined && key in options ? options[key] : DEFAULT_OPTIONS[key]; + } + } + Tannin.prototype.getPluralForm = function(domain, n) { + var getPluralForm = this.pluralForms[domain], config, plural, pf; + if (!getPluralForm) { + config = this.data[domain][""]; + pf = config["Plural-Forms"] || config["plural-forms"] || config.plural_forms; + if (typeof pf !== "function") { + plural = getPluralExpression(config["Plural-Forms"] || config["plural-forms"] || config.plural_forms); + pf = (0, _tannin_plural_forms__WEBPACK_IMPORTED_MODULE_0__["default"])(plural); + } + getPluralForm = this.pluralForms[domain] = pf; + } + return getPluralForm(n); + }; + Tannin.prototype.dcnpgettext = function(domain, context, singular, plural, n) { + var index, key, entry; + if (n === undefined) { + index = 0; + } else { + index = this.getPluralForm(domain, n); + } + key = singular; + if (context) { + key = context + this.options.contextDelimiter + singular; + } + entry = this.data[domain][key]; + if (entry && entry[index]) { + return entry[index]; + } + if (this.options.onMissingKey) { + this.options.onMissingKey(singular, domain); + } + return index === 0 ? singular : plural; + }; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => pluralForms + }); + var _tannin_compile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(261); + function pluralForms(expression) { + var evaluate = (0, _tannin_compile__WEBPACK_IMPORTED_MODULE_0__["default"])(expression); + return function(n) { + return +evaluate({ + n + }); + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => compile + }); + var _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(262); + var _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(263); + function compile(expression) { + var terms = (0, _tannin_postfix__WEBPACK_IMPORTED_MODULE_0__["default"])(expression); + return function(variables) { + return (0, _tannin_evaluate__WEBPACK_IMPORTED_MODULE_1__["default"])(terms, variables); + }; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => postfix + }); + var PRECEDENCE, OPENERS, TERMINATORS, PATTERN; + PRECEDENCE = { + "(": 9, + "!": 8, + "*": 7, + "/": 7, + "%": 7, + "+": 6, + "-": 6, + "<": 5, + "<=": 5, + ">": 5, + ">=": 5, + "==": 4, + "!=": 4, + "&&": 3, + "||": 2, + "?": 1, + "?:": 1 + }; + OPENERS = [ "(", "?" ]; + TERMINATORS = { + ")": [ "(" ], + ":": [ "?", "?:" ] + }; + PATTERN = /<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/; + function postfix(expression) { + var terms = [], stack = [], match, operator, term, element; + while (match = expression.match(PATTERN)) { + operator = match[0]; + term = expression.substr(0, match.index).trim(); + if (term) { + terms.push(term); + } + while (element = stack.pop()) { + if (TERMINATORS[operator]) { + if (TERMINATORS[operator][0] === element) { + operator = TERMINATORS[operator][1] || operator; + break; + } + } else if (OPENERS.indexOf(element) >= 0 || PRECEDENCE[element] < PRECEDENCE[operator]) { + stack.push(element); + break; + } + terms.push(element); + } + if (!TERMINATORS[operator]) { + stack.push(operator); + } + expression = expression.substr(match.index + operator.length); + } + expression = expression.trim(); + if (expression) { + terms.push(expression); + } + return terms.concat(stack.reverse()); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => evaluate + }); + var OPERATORS = { + "!": function(a) { + return !a; + }, + "*": function(a, b) { + return a * b; + }, + "/": function(a, b) { + return a / b; + }, + "%": function(a, b) { + return a % b; + }, + "+": function(a, b) { + return a + b; + }, + "-": function(a, b) { + return a - b; + }, + "<": function(a, b) { + return a < b; + }, + "<=": function(a, b) { + return a <= b; + }, + ">": function(a, b) { + return a > b; + }, + ">=": function(a, b) { + return a >= b; + }, + "==": function(a, b) { + return a === b; + }, + "!=": function(a, b) { + return a !== b; + }, + "&&": function(a, b) { + return a && b; + }, + "||": function(a, b) { + return a || b; + }, + "?:": function(a, b, c) { + if (a) { + throw b; + } + return c; + } + }; + function evaluate(postfix, variables) { + var stack = [], i, j, args, getOperatorResult, term, value; + for (i = 0; i < postfix.length; i++) { + term = postfix[i]; + getOperatorResult = OPERATORS[term]; + if (getOperatorResult) { + j = getOperatorResult.length; + args = Array(j); + while (j--) { + args[j] = stack.pop(); + } + try { + value = getOperatorResult.apply(null, args); + } catch (earlyReturn) { + return earlyReturn; + } + } else if (variables.hasOwnProperty(term)) { + value = variables[term]; + } else { + value = +term; + } + stack.push(value); + } + return stack[0]; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + __: () => __, + _n: () => _n, + _nx: () => _nx, + _x: () => _x, + default: () => __WEBPACK_DEFAULT_EXPORT__, + getLocaleData: () => getLocaleData, + hasTranslation: () => hasTranslation, + isRTL: () => isRTL, + resetLocaleData: () => resetLocaleData, + setLocaleData: () => setLocaleData, + subscribe: () => subscribe + }); + var _create_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(258); + var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); + var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__); + const i18n = (0, _create_i18n__WEBPACK_IMPORTED_MODULE_0__.createI18n)(undefined, undefined, _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.defaultHooks); + const __WEBPACK_DEFAULT_EXPORT__ = i18n; + const getLocaleData = i18n.getLocaleData.bind(i18n); + const setLocaleData = i18n.setLocaleData.bind(i18n); + const resetLocaleData = i18n.resetLocaleData.bind(i18n); + const subscribe = i18n.subscribe.bind(i18n); + const __ = i18n.__.bind(i18n); + const _x = i18n._x.bind(i18n); + const _n = i18n._n.bind(i18n); + const _nx = i18n._nx.bind(i18n); + const isRTL = i18n.isRTL.bind(i18n); + const hasTranslation = i18n.hasTranslation.bind(i18n); + }, module => { + "use strict"; + module.exports = window.wp.hooks; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(254); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var react_outside_click_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79); + var _color_picker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(189); + var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4); + var _index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var Border = function Border(_ref) { + var _clsx; + var value = _ref.value, options = _ref.options, _onChange = _ref.onChange; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setIsOpen = _useState2[1]; + value = Object.assign({ + width: 1, + color: _index__WEBPACK_IMPORTED_MODULE_6__.CSS_INITIAL_VALUE + }, value); + var colors = [ { + id: "color", + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Initial") + } ]; + var colorValues = { + color: value.color || "" + }; + if (options.enableHover) { + colors.push({ + id: "hover", + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Hover") + }); + colorValues["hover"] = value.hover || ""; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", { + className: "lotta-border", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])("lotta-value-changer", (_clsx = {}, + _defineProperty(_clsx, "active", isOpen), _defineProperty(_clsx, "lotta-disabled", value.style === "none" || value.inherit), + _clsx)), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("input", { + type: "number", + value: value.width, + disabled: value.style === "none", + onChange: function onChange(_ref2) { + var width = _ref2.target.value; + return _onChange(_objectSpread(_objectSpread({}, value), {}, { + width: (0, _utils__WEBPACK_IMPORTED_MODULE_5__.clamp)(1, 100, parseInt(width, 10) || 1) + })); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", { + className: "lotta-value-divider" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", { + className: "lotta-current-value", + "data-style": value.inherit ? "none" : value.style, + onClick: function onClick() { + return setIsOpen(!isOpen); + }, + children: value.inherit ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Inherit") : value.style === "none" ? (0, + _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("none") : null + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(react_outside_click_handler__WEBPACK_IMPORTED_MODULE_3__["default"], { + disabled: !isOpen, + onOutsideClick: function onOutsideClick() { + if (!isOpen) return; + setIsOpen(false); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("ul", { + className: "lotta-styles-list", + children: [ "solid", "dashed", "dotted", "none" ].reduce((function(current, el, index) { + return [].concat(_toConsumableArray(current.slice(0, index % 2 === 0 ? undefined : -1)), _toConsumableArray(index % 2 === 0 ? [ [ el ] ] : [ [ current[current.length - 1][0], el ] ])); + }), []).map((function(group) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("li", { + children: group.map((function(style) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: style === value.style + }), + "data-style": style, + onClick: function onClick() { + _onChange(_objectSpread(_objectSpread({}, value), {}, { + inherit: false, + style + })); + setIsOpen(false); + }, + children: style === "none" ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("None") : null + }, style); + })) + }, group[0]); + })) + }) + }) ] + }), !value.inherit && value.style !== "none" && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_color_picker__WEBPACK_IMPORTED_MODULE_4__["default"], { + options: { + alpha: true, + colors + }, + value: colorValues, + onChange: function onChange(c) { + _onChange(_objectSpread(_objectSpread({}, value), c)); + } + }) ] + }); + }; + Border.renderingConfig = { + design: "inline" + }; + const __WEBPACK_DEFAULT_EXPORT__ = Border; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(190); + var _components_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(251); + var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); + var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Preview = function(_Component) { + _inherits(Preview, _Component); + var _super = _createSuper(Preview); + function Preview() { + _classCallCheck(this, Preview); + return _super.apply(this, arguments); + } + _createClass(Preview, [ { + key: "render", + value: function render() { + var _this$props = this.props, palette = _this$props.palette, labels = _this$props.labels, className = _this$props.className; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])("colors", className), + children: Object.keys(palette).map((function(color) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "preview", + style: { + color: palette[color] + }, + children: labels ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_components_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], { + content: labels[color], + placement: "top", + children: function children(_ref) { + var props = _ref.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", _objectSpread({ + className: "preview-inner" + }, props)); + } + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "preview-inner" + }) + }, color); + })) + }); + } + } ]); + return Preview; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var PaletteList = function(_Component2) { + _inherits(PaletteList, _Component2); + var _super2 = _createSuper(PaletteList); + function PaletteList() { + _classCallCheck(this, PaletteList); + return _super2.apply(this, arguments); + } + _createClass(PaletteList, [ { + key: "render", + value: function render() { + var _this$props2 = this.props, palettes = _this$props2.palettes, current = _this$props2.current, onChange = _this$props2.onChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "palette-list", + children: Object.keys(palettes).map((function(palette) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + onClick: function onClick() { + return onChange(palette); + }, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])("palette-item", { + active: current === palette + }), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "palette-title", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + children: (0, _utils__WEBPACK_IMPORTED_MODULE_4__.capitalize)(palette).replaceAll("-", " ") + }), current === palette && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + className: "dashicons dashicons-saved" + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Preview, { + palette: palettes[palette] + }) ] + }, palette); + })) + }); + } + } ]); + return PaletteList; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var ColorPalettes = function(_Component3) { + _inherits(ColorPalettes, _Component3); + var _super3 = _createSuper(ColorPalettes); + function ColorPalettes() { + _classCallCheck(this, ColorPalettes); + return _super3.apply(this, arguments); + } + _createClass(ColorPalettes, [ { + key: "render", + value: function render() { + var _this$props3 = this.props, options = _this$props3.options, value = _this$props3.value, _onChange = _this$props3.onChange; + var palettes = options.palettes, maps = options.maps, labels = options.labels; + var palette = palettes[value] || Object.values(palettes)[0]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_1__["default"], { + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(PaletteList, { + current: value, + palettes, + onChange: function onChange(value) { + if (maps) { + var _palette = palettes[value]; + Object.keys(maps).forEach((function(control) { + var colorMap = maps[control]; + var colorValue = {}; + Object.keys(colorMap).forEach((function(color) { + colorValue[color] = _palette[colorMap[color]] ? _palette[colorMap[color]] : _index__WEBPACK_IMPORTED_MODULE_5__.CSS_INITIAL_VALUE; + })); + _onChange(colorValue, control); + })); + } + _onChange(value); + } + }), + children: function children(_ref2) { + var props = _ref2.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", _objectSpread(_objectSpread({}, props), {}, { + className: "palette-preview", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Preview, { + palette, + labels + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + className: "dashicons dashicons-arrow-down-alt2" + }) ] + })); + } + }); + } + } ]); + return ColorPalettes; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = ColorPalettes; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _components_numeric_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(269); + var _components_units_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var Spacing = function Spacing(_ref) { + var value = _ref.value, options = _ref.options, onChange = _ref.onChange; + value = value || { + top: "0px", + right: "0px", + bottom: "0px", + left: "0px" + }; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), isOpen = _useState2[0], setIsOpen = _useState2[1]; + var units = [ { + unit: "px", + step: 1 + }, { + unit: "%", + step: 1 + }, { + unit: "em", + step: .1 + }, { + unit: "rem", + step: .1 + }, { + unit: "pt", + step: 1 + } ]; + var withDefault = function withDefault(currentUnit, defaultUnit) { + return units.find((function(_ref2) { + var unit = _ref2.unit; + return unit === currentUnit; + })) ? currentUnit : currentUnit || units[0].unit; + }; + var getLinkedLeader = function getLinkedLeader() { + return [ "top", "right", "bottom", "left" ].find((function(v) { + return value[v] !== "auto"; + })); + }; + var getCurrentUnit = function getCurrentUnit() { + return withDefault((value[getLinkedLeader()] || "").toString().replace(/[0-9]/g, "").replace("-", "").replace(/\./g, "")); + }; + var getCurrentStep = function getCurrentStep() { + var _units$find; + var currentUnit = getCurrentUnit(); + return (_units$find = units.find((function(_ref3) { + var unit = _ref3.unit; + return unit === currentUnit; + }))) === null || _units$find === void 0 ? void 0 : _units$find.step; + }; + var getNumericValue = function getNumericValue(value) { + var unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + if (value === "auto") { + return value; + } + var v = parseFloat(value) === 0 ? 0 : parseFloat(value).toFixed(getCurrentStep() === 1 ? 0 : 1) || ""; + return "".concat(isNaN(v) ? 0 : v).concat(unit); + }; + var handleChange = function handleChange(futureValue, position) { + if (value.linked) { + onChange(_objectSpread(_objectSpread({}, value), {}, { + top: options.disabled && options.disabled["top"] ? value.top : getNumericValue(futureValue, getCurrentUnit()), + left: options.disabled && options.disabled["left"] ? value.left : getNumericValue(futureValue, getCurrentUnit()), + right: options.disabled && options.disabled["right"] ? value.right : getNumericValue(futureValue, getCurrentUnit()), + bottom: options.disabled && options.disabled["bottom"] ? value.bottom : getNumericValue(futureValue, getCurrentUnit()) + })); + return; + } + onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, position, getNumericValue(futureValue, getCurrentUnit())))); + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-spacing", { + linked: value.linked + }), + children: [ [ "top", "right", "bottom", "left" ].map((function(side) { + var sideValue = getNumericValue(value[side]); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("span", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_numeric_input__WEBPACK_IMPORTED_MODULE_2__["default"], _objectSpread({ + placeholder: "", + step: getCurrentStep(), + inactive: options.disabled && options.disabled[side], + value: sideValue, + onChange: function onChange(v) { + return handleChange(v, side); + } + }, _objectSpread({ + placeholder: "" + }, options.inputAttr))), options.autoToggle && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("button", { + className: "auto-num-toggle", + type: "button", + onClick: function onClick() { + handleChange(sideValue === "auto" ? 0 : "auto", side); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { + children: sideValue === "auto" ? "num" : "auto" + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("small", { + children: { + top: "Top", + bottom: "Bottom", + left: "Left", + right: "Right" + }[side] + }) ] + }, side); + })), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-spacing-controls lotta-value-changer", { + active: isOpen + }), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("a", { + onClick: function onClick(e) { + e.preventDefault(); + if (value.linked) { + onChange(_objectSpread(_objectSpread({}, value), {}, { + linked: false + })); + return; + } + var futureValue = value[getLinkedLeader()]; + onChange(_objectSpread(_objectSpread({}, value), {}, { + top: value.top !== "auto" ? futureValue : value.top, + left: value.left !== "auto" ? futureValue : value.left, + bottom: value.bottom !== "auto" ? futureValue : value.bottom, + right: value.right !== "auto" ? futureValue : value.right, + linked: true + })); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("svg", { + width: "10", + height: "10", + viewBox: "0 0 15 15", + children: value.linked ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("path", { + d: "M12.2,5.5V4.7c0-2.6-2.1-4.7-4.7-4.7S2.8,2.1,2.8,4.7v0.8c-0.9,0-1.6,0.7-1.6,1.6v6.3c0,0.9,0.7,1.6,1.6,1.6h9.5c0.9,0,1.6-0.7,1.6-1.6V7.1C13.8,6.2,13.1,5.5,12.2,5.5z M10.7,5.5H4.3V4.7c0-1.8,1.4-3.2,3.2-3.2s3.2,1.4,3.2,3.2V5.5z" + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("path", { + d: "M12.2,5.5h-1.6H9.9h-5H4.7l0-0.2C4.4,3.5,5.5,1.9,7.3,1.5c1.1-0.2,2.2,0.1,2.8,0.9l1.3-0.9c-1-1.1-2.6-1.8-4.3-1.5C4.5,0.5,2.8,2.9,3.2,5.5H2.8c-0.9,0-1.6,0.7-1.6,1.6v6.3c0,0.9,0.7,1.6,1.6,1.6h9.5c0.9,0,1.6-0.7,1.6-1.6V7.1C13.8,6.2,13.1,5.5,12.2,5.5z" + }) + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { + className: "lotta-value-divider" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_units_list__WEBPACK_IMPORTED_MODULE_3__["default"], { + units, + isOpen, + toggleOpen: function toggleOpen() { + setIsOpen(!isOpen); + }, + currentUnit: getCurrentUnit(), + onPickUnit: function onPickUnit(unit) { + onChange(_objectSpread(_objectSpread({}, value), {}, { + top: getNumericValue(value.top, unit), + left: getNumericValue(value.left, unit), + right: getNumericValue(value.right, unit), + bottom: getNumericValue(value.bottom, unit) + })); + } + }) ] + }) ] + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = Spacing; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); + var NumericInput = function NumericInput(props) { + var value = props.value, _onBlur = props.onBlur, _onChange = props.onChange, inactive = props.inactive, _props$step = props.step, step = _props$step === void 0 ? 1 : _props$step, _props$placeholder = props.placeholder, placeholder = _props$placeholder === void 0 ? "Default" : _props$placeholder; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("input", { + type: "text", + value, + step, + onKeyDown: function onKeyDown(e) { + if ([ 46, 8, 9, 27, 13, 110, 190, 27 ].indexOf(e.keyCode) > -1 || e.keyCode == 65 && e.ctrlKey === true || e.keyCode == 109 || e.keyCode == 189 || e.keyCode == 173 || e.keyCode == 67 && e.ctrlKey === true || e.keyCode == 88 && e.ctrlKey === true || e.keyCode >= 35 && e.keyCode <= 39 && e.keyCode !== 38 && e.keyCode !== 40) { + return; + } + var valueForComputation = "__unset__"; + if (value.toString().trim().length === 0) { + valueForComputation = 0; + } else { + var maybeValue = parseFloat(value); + if (maybeValue || maybeValue === 0) { + valueForComputation = maybeValue; + } + } + var actualStep = e.shiftKey ? step * 10 : step; + if (e.keyCode === 38 && value !== "__unset__") { + _onChange(valueForComputation + actualStep, true); + } + if (e.keyCode === 40 && value !== "__unset__") { + _onChange(valueForComputation - actualStep, true); + } + if ((e.shiftKey || e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105)) { + e.preventDefault(); + } + }, + onChange: function onChange(_ref) { + var value = _ref.target.value; + return _onChange(value); + }, + placeholder, + onBlur: function onBlur() { + return _onBlur && _onBlur; + }, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_0__["default"])({ + inactive: value === "auto" || inactive + }) + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = NumericInput; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10); + var Select = function Select(_ref) { + var value = _ref.value, options = _ref.options, _onChange = _ref.onChange; + var _options$choices = options.choices, choices = _options$choices === void 0 ? {} : _options$choices; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("select", { + value, + onChange: function onChange(ev) { + _onChange(ev.target.value); + }, + children: Object.keys(choices).map((function(id) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("option", { + value: id, + children: choices[id] + }, id); + })) + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = Select; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _match_conditions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(272); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var RadioInput = function(_Component) { + _inherits(RadioInput, _Component); + var _super = _createSuper(RadioInput); + function RadioInput() { + _classCallCheck(this, RadioInput); + return _super.apply(this, arguments); + } + _createClass(RadioInput, [ { + key: "render", + value: function render() { + var _this$props = this.props, options = _this$props.options, value = _this$props.value, _onChange = _this$props.onChange; + var _options$inline = options.inline, inline = _options$inline === void 0 ? false : _options$inline; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", _objectSpread(_objectSpread(_objectSpread({ + className: "lotta-radio-input" + }, inline ? _defineProperty({}, "data-inline", "") : {}), options.attr || {}), {}, { + children: Object.keys(options.choices).map((function(choice) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("label", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", { + type: "radio", + checked: choice === value, + onChange: function onChange() { + return _onChange(choice); + } + }), options.choices[choice] ] + }, choice); + })) + })); + } + } ]); + return RadioInput; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var ButtonsGroupRadio = function(_Component2) { + _inherits(ButtonsGroupRadio, _Component2); + var _super2 = _createSuper(ButtonsGroupRadio); + function ButtonsGroupRadio() { + _classCallCheck(this, ButtonsGroupRadio); + return _super2.apply(this, arguments); + } + _createClass(ButtonsGroupRadio, [ { + key: "render", + value: function render() { + var _this$props2 = this.props, options = _this$props2.options, value = _this$props2.value, onChange = _this$props2.onChange; + var _options$inline2 = options.inline, inline = _options$inline2 === void 0 ? false : _options$inline2; + var matchingChoices = Object.keys(options.choices).filter((function(choice) { + if (!options.conditions) { + return true; + } + if (!options.conditions[choice]) { + return true; + } + return (0, _match_conditions__WEBPACK_IMPORTED_MODULE_1__.matchValuesWithCondition)((0, + _match_conditions__WEBPACK_IMPORTED_MODULE_1__.normalizeCondition)(options.conditions[choice]), value); + })); + var normalizedValue = matchingChoices.includes(value) ? value : options["default"]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("ul", _objectSpread(_objectSpread(_objectSpread({ + className: "lotta-radio-input lotta-buttons-group" + }, inline ? _defineProperty({}, "data-inline", "") : {}), options.attr || {}), {}, { + children: matchingChoices.map((function(choice, index) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: choice === normalizedValue + }), + onClick: function onClick() { + return onChange(choice); + }, + dangerouslySetInnerHTML: { + __html: options.choices[choice] + } + }, choice); + })) + })); + } + } ]); + return ButtonsGroupRadio; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var Radio = function Radio(props) { + var options = props.options; + if (options.view === "buttons") { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ButtonsGroupRadio, _objectSpread({}, props)); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(RadioInput, _objectSpread({}, props)); + }; + const __WEBPACK_DEFAULT_EXPORT__ = Radio; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + matchValuesWithCondition: () => matchValuesWithCondition, + normalizeCondition: () => normalizeCondition, + opg: () => opg + }); + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _toArray(arr) { + return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var opg = function opg(properties, obj, defaultValue) { + var delimiter = "/"; + if (typeof properties == "string") { + properties = properties.split(delimiter); + } else { + properties = [ properties ]; + } + var property = properties.shift(); + if (!obj || typeof obj[property] == "undefined") { + return defaultValue; + } + if (properties.length) { + properties = properties.join(delimiter); + return opg(properties, obj[property], defaultValue, delimiter); + } else { + return obj[property]; + } + }; + var propertiesWithoutLast = function propertiesWithoutLast(properties) { + var delimiter = "/"; + if (typeof properties == "string") { + properties = properties.split(delimiter); + } + if (properties.length > 1) { + properties.pop(); + } + return properties; + }; + var normalizeCondition = function normalizeCondition(conditionDescriptor) { + if (!conditionDescriptor.all) { + if (!conditionDescriptor.any) { + conditionDescriptor = { + all: conditionDescriptor + }; + } + } + return conditionDescriptor; + }; + var matchValuesWithCondition = function matchValuesWithCondition(conditionDescriptor, inferedValuesForContext) { + var conditionsObject = Object.values(conditionDescriptor)[0]; + var maybeGetMatcher = function maybeGetMatcher(matcher) { + if (matcher.length > 4) { + return false; + } + if (matcher.indexOf("any") === 0) { + return "any"; + } + if (matcher.indexOf("all") === 0) { + return "all"; + } + return false; + }; + var valuesToCheck = Object.keys(conditionsObject).map((function(singleOptionPath, index) { + var maybeThat = Object.values(conditionsObject)[index]; + if (maybeGetMatcher(singleOptionPath) === "all" || maybeGetMatcher(singleOptionPath) === "any") { + return matchValuesWithCondition(_defineProperty({}, singleOptionPath, maybeThat), inferedValuesForContext); + } + return tryToMatchValueWithOptionPath(maybeThat, singleOptionPath, inferedValuesForContext); + })); + if (maybeGetMatcher(Object.keys(conditionDescriptor)[0]) === "all") { + return valuesToCheck.every((function(v) { + return !!v; + })); + } + if (maybeGetMatcher(Object.keys(conditionDescriptor)[0]) === "any") { + return valuesToCheck.some((function(v) { + return !!v; + })); + } + }; + function extractScalarValueFor(singleOptionPath, inferedValuesForContext) { + var getAsInfered = function getAsInfered(path) { + var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : inferedValuesForContext; + return opg(path, values); + }; + if (singleOptionPath.indexOf(":") > -1) { + var value = null; + (function(thing, cb) { + return cb(thing); + })(singleOptionPath.split(":"), (function(_ref) { + var _ref2 = _toArray(_ref), singleOptionPath = _ref2[0], matcher = _ref2.slice(1); + matcher = matcher.join(":"); + if (matcher === "visibility") { + value = getAsInfered(singleOptionPath, _objectSpread(_objectSpread({}, inferedValuesForContext), {}, _defineProperty({}, propertiesWithoutLast(singleOptionPath), opg(propertiesWithoutLast(singleOptionPath), inferedValuesForContext)[inferedValuesForContext.wp_customizer_current_view] ? "yes" : "no"))); + } + if (matcher === "responsive") { + value = getAsInfered(singleOptionPath, _objectSpread(_objectSpread({}, inferedValuesForContext), {}, _defineProperty({}, propertiesWithoutLast(singleOptionPath), opg(propertiesWithoutLast(singleOptionPath), inferedValuesForContext)[inferedValuesForContext.wp_customizer_current_view] || opg(propertiesWithoutLast(singleOptionPath), inferedValuesForContext)))); + } + if (matcher === "truthy") { + value = !!getAsInfered(singleOptionPath) ? "yes" : "no"; + } + if (matcher.indexOf("array-ids:") > -1) { + var _matcher$split = matcher.split(":"), _matcher$split2 = _slicedToArray(_matcher$split, 3), _ = _matcher$split2[0], id = _matcher$split2[1], path = _matcher$split2[2]; + var _properValue = getAsInfered(singleOptionPath).find((function(v) { + return v.id === id; + })); + value = !_properValue ? "no" : opg(path, _properValue) || "no"; + } + if (matcher.indexOf("json:") > -1) { + value = getAsInfered("".concat(singleOptionPath, "/").concat(matcher.split(":")[1])).toString(); + } + if (matcher === "array_length") { + var _properValue2 = getAsInfered(singleOptionPath); + value = (_properValue2 || []).length.toString(); + } + if (!value) { + throw new Error("Unknown matcher received. Please verify for typos. The received matcher: ".concat(matcher, ".")); + } + })); + if (value) { + return value; + } else { + singleOptionPath = singleOptionPath.split(":")[0]; + } + } + var properValue = getAsInfered(singleOptionPath); + if (!properValue) return false; + if (properValue.desktop) { + return properValue; + } + return properValue.toString(); + } + function tryToMatchValueWithOptionPath(maybeThat, singleOptionPath, inferedValuesForContext) { + var properValue = extractScalarValueFor(singleOptionPath, inferedValuesForContext); + if (maybeThat && maybeThat.toString() && maybeThat.toString().indexOf("~") === 0) { + var toMatch = maybeThat.replace("~", ""); + if (properValue.desktop) { + return properValue.desktop === toMatch || properValue.tablet === toMatch || properValue.mobile === toMatch; + } + return properValue === toMatch; + } + properValue = properValue.toString(); + maybeThat = maybeThat.toString(); + if (!properValue) return false; + if (maybeThat.indexOf("|") > -1) { + if (maybeThat.indexOf("!") === 0) { + return maybeThat.substring(1).split("|").map((function(el) { + return el.trim(); + })).includes(properValue.trim()) === -1; + } else { + return maybeThat.split("|").map((function(el) { + return el.trim(); + })).indexOf(properValue.trim()) > -1; + } + } + if (maybeThat.indexOf("!") === 0) { + return properValue !== maybeThat.substring(1).trim(); + } + if (maybeThat.indexOf("*") === 0) { + return properValue.indexOf(maybeThat.trim().substring(1).trim()) > -1; + } + return properValue === maybeThat.trim(); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => ImageRadio + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _components_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(251); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _extends() { + _extends = Object.assign ? Object.assign.bind() : function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var ImageRadio = function(_Component) { + _inherits(ImageRadio, _Component); + var _super = _createSuper(ImageRadio); + function ImageRadio() { + _classCallCheck(this, ImageRadio); + return _super.apply(this, arguments); + } + _createClass(ImageRadio, [ { + key: "render", + value: function render() { + var _this$props = this.props, options = _this$props.options, value = _this$props.value, onChange = _this$props.onChange; + var _ref = _objectSpread({}, options.attr || {}), attr = _extends({}, _ref); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("ul", _objectSpread(_objectSpread({}, attr), {}, { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + "lotta-image-radio": !options.inline, + "lotta-radio-input lotta-buttons-group": options.inline + }), + children: Object.keys(options.choices).map((function(choice) { + return _objectSpread({ + key: choice + }, options.choices[choice]); + })).map((function(choice) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("li", { + onClick: function onClick() { + return !choice.disabled && onChange(choice.key); + }, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + disabled: !!choice.disabled, + active: choice.key === value + }), + children: [ choice.title ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_components_tooltip__WEBPACK_IMPORTED_MODULE_2__["default"], { + content: choice.title, + children: function children(_ref2) { + var props = _ref2.props; + return choice.src.indexOf(" { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10); + var Separator = function Separator(_ref) { + var options = _ref.options; + var spacing = options.spacing, style = options.style, size = options.size; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: "lotta-separator", + style: { + padding: spacing ? "".concat(spacing, " 0") : 0 + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + style: { + borderBottomStyle: style || "dashed", + borderBottomSize: size || "1px" + } + }) + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = Separator; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Tabs + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Tabs = function(_Component) { + _inherits(Tabs, _Component); + var _super = _createSuper(Tabs); + function Tabs() { + var _this; + _classCallCheck(this, Tabs); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + active: _this.props.options.active + }); + return _this; + } + _createClass(Tabs, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, options = _this$props.options, settings = _this$props.settings, _onChange = _this$props.onChange; + if (!options.tabs) { + return null; + } + var active = options.tabs.find((function(tab) { + return tab.id === _this2.state.active; + })); + if (!active || !active.controls) { + return null; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "lotta-tabs lotta-tabs-" + options.style, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("ul", { + children: options.tabs.map((function(tab) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + active: tab.id === _this2.state.active + }), + onClick: function onClick() { + _this2.setState({ + active: tab.id + }); + }, + children: tab.label + }, tab.id); + })) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "lotta-tab-content", + children: (0, _index__WEBPACK_IMPORTED_MODULE_2__.buildNestedControls)({ + controls: active.controls, + settings, + onChange: function onChange(val, id, self) { + _onChange(val, id); + if (!self) { + _this2.forceUpdate(); + } + } + }) + }) ] + }); + } + } ]); + return Tabs; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + _defineProperty(Tabs, "disableRevert", true); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(277); + var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Collapse = function(_Component) { + _inherits(Collapse, _Component); + var _super = _createSuper(Collapse); + function Collapse(props) { + var _this; + _classCallCheck(this, Collapse); + _this = _super.call(this, props); + _this.state = { + isOpen: props.options.open + }; + return _this; + } + _createClass(Collapse, [ { + key: "setIsOpen", + value: function setIsOpen(isOpen) { + this.setState({ + isOpen + }); + } + }, { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, options = _this$props.options, settings = _this$props.settings, _onChange = _this$props.onChange; + var isOpen = this.state.isOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "lotta-collapse lotta-collapse-" + options.style, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "lotta-collapse-header", + onClick: function onClick() { + return _this2.setIsOpen(!isOpen); + }, + children: [ !isOpen ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.RightCaret, {}) : (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.DownCaret, {}), (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + children: options.label + }) ] + }), isOpen && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "lotta-collapse-content", + children: (0, _index__WEBPACK_IMPORTED_MODULE_2__.buildNestedControls)({ + controls: options.controls, + settings, + onChange: function onChange(val, id, self) { + _onChange(val, id); + if (!self) { + _this2.forceUpdate(); + } + } + }) + }) ] + }); + } + } ]); + return Collapse; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Collapse; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + CircleXMark: () => CircleXMark, + Column: () => Column, + Cube: () => Cube, + DownAngle: () => DownAngle, + DownCaret: () => DownCaret, + Move: () => Move, + Plus: () => Plus, + PlusSolid: () => PlusSolid, + RightCaret: () => RightCaret, + RotateLeft: () => RotateLeft, + Row: () => Row + }); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10); + var Row = function Row(_ref) { + var w = _ref.w, h = _ref.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 32 32", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M1.856 2.144c-0.512 0.512-0.64 1.184-0.64 1.984v23.744c0 0.8 0.256 1.472 0.8 1.984s1.184 0.8 1.984 0.8h24c0.8 0 1.472-0.256 2.016-0.8 0.512-0.512 0.8-1.184 0.8-1.984v-23.744c0-0.8-0.288-1.472-0.8-1.984-0.672-0.544-1.344-0.8-2.016-0.8h-24c-0.928-0.16-1.6 0.256-2.144 0.8M4 7.072h23.456v8.8h-23.456v-8.8M27.616 18.784v8.832h-23.616v-8.832h23.616z" + }) + }); + }; + var Column = function Column(_ref2) { + var w = _ref2.w, h = _ref2.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 32 32", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M30.656 4.128c0-0.8-0.256-1.472-0.8-1.984-0.512-0.544-1.184-0.8-1.984-0.8h-23.872c-0.672 0-1.344 0.256-1.856 0.8-0.544 0.512-0.8 1.184-0.8 1.984v23.872c0 0.8 0.256 1.344 0.8 1.856 0.512 0.544 1.184 0.8 1.856 0.8h23.872c0.8 0 1.472-0.256 1.984-0.8 0.544-0.512 0.8-1.184 0.8-1.856v-23.872M4.256 7.2h10.272v20.544h-10.272v-20.544M17.472 27.744v-20.544h10.144v20.544h-10.144z" + }) + }); + }; + var DownCaret = function DownCaret(_ref3) { + var w = _ref3.w, h = _ref3.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 320 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z" + }) + }); + }; + var DownAngle = function DownAngle(_ref4) { + var w = _ref4.w, h = _ref4.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 384 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M192 384c-8.188 0-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L192 306.8l137.4-137.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-160 160C208.4 380.9 200.2 384 192 384z" + }) + }); + }; + var RightCaret = function RightCaret(_ref5) { + var w = _ref5.w, h = _ref5.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 256 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z" + }) + }); + }; + var Move = function Move(_ref6) { + var w = _ref6.w, h = _ref6.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 512 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M512 255.1c0 8.188-3.125 16.41-9.375 22.66l-72 72C424.4 356.9 416.2 360 408 360c-18.28 0-32-14.95-32-32c0-8.188 3.125-16.38 9.375-22.62L402.8 288H288v114.8l17.38-17.38C311.6 379.1 319.8 376 328 376c18.28 0 32 14.95 32 32c0 8.188-3.125 16.38-9.375 22.62l-72 72C272.4 508.9 264.2 512 256 512s-16.38-3.125-22.62-9.375l-72-72C155.1 424.4 152 416.2 152 408c0-17.05 13.73-32 32-32c8.188 0 16.38 3.125 22.62 9.375L224 402.8V288H109.3l17.38 17.38C132.9 311.6 136 319.8 136 328c0 17.05-13.73 32-32 32c-8.188 0-16.38-3.125-22.62-9.375l-72-72C3.125 272.4 0 264.2 0 255.1s3.125-16.34 9.375-22.59l72-72C87.63 155.1 95.81 152 104 152c18.28 0 32 14.95 32 32c0 8.188-3.125 16.38-9.375 22.62L109.3 224H224V109.3L206.6 126.6C200.4 132.9 192.2 136 184 136c-18.28 0-32-14.95-32-32c0-8.188 3.125-16.38 9.375-22.62l72-72C239.6 3.125 247.8 0 256 0s16.38 3.125 22.62 9.375l72 72C356.9 87.63 360 95.81 360 104c0 17.05-13.73 32-32 32c-8.188 0-16.38-3.125-22.62-9.375L288 109.3V224h114.8l-17.38-17.38C379.1 200.4 376 192.2 376 184c0-17.05 13.73-32 32-32c8.188 0 16.38 3.125 22.62 9.375l72 72C508.9 239.6 512 247.8 512 255.1z" + }) + }); + }; + var CircleXMark = function CircleXMark(_ref7) { + var w = _ref7.w, h = _ref7.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 512 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" + }) + }); + }; + var Cube = function Cube(_ref8) { + var w = _ref8.w, h = _ref8.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 512 512", + width: w, + height: h, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M234.5 5.709C248.4 .7377 263.6 .7377 277.5 5.709L469.5 74.28C494.1 83.38 512 107.5 512 134.6V377.4C512 404.5 494.1 428.6 469.5 437.7L277.5 506.3C263.6 511.3 248.4 511.3 234.5 506.3L42.47 437.7C17 428.6 0 404.5 0 377.4V134.6C0 107.5 17 83.38 42.47 74.28L234.5 5.709zM256 65.98L82.34 128L256 190L429.7 128L256 65.98zM288 434.6L448 377.4V189.4L288 246.6V434.6z" + }) + }); + }; + var PlusSolid = function PlusSolid(_ref9) { + var w = _ref9.w, h = _ref9.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: w, + height: h, + viewBox: "0 0 512 512", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 368C269.3 368 280 357.3 280 344V280H344C357.3 280 368 269.3 368 256C368 242.7 357.3 232 344 232H280V168C280 154.7 269.3 144 256 144C242.7 144 232 154.7 232 168V232H168C154.7 232 144 242.7 144 256C144 269.3 154.7 280 168 280H232V344C232 357.3 242.7 368 256 368z" + }) + }); + }; + var Plus = function Plus(_ref10) { + var w = _ref10.w, h = _ref10.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: w, + height: h, + viewBox: "0 0 32 32", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M16 30.816c-8.128 0-14.784-6.688-14.784-14.816s6.656-14.816 14.784-14.816 14.816 6.688 14.816 14.816-6.688 14.816-14.816 14.816zM16 27.872c6.528 0 11.872-5.344 11.872-11.872s-5.344-11.872-11.872-11.872-11.872 5.344-11.872 11.872 5.344 11.872 11.872 11.872zM14.528 14.528v-5.6c0-0.8 0.672-1.472 1.472-1.472s1.472 0.672 1.472 1.472v5.6h5.6c0.8 0 1.472 0.672 1.472 1.472s-0.672 1.472-1.472 1.472h-5.6v5.6c0 0.8-0.672 1.472-1.472 1.472s-1.472-0.672-1.472-1.472v-5.6h-5.6c-0.8 0-1.472-0.672-1.472-1.472s0.672-1.472 1.472-1.472h5.6z" + }) + }); + }; + var RotateLeft = function RotateLeft(_ref11) { + var w = _ref11.w, h = _ref11.h; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + width: w, + height: h, + viewBox: "0 0 512 512", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M125.7 160H176c17.7 0 32 14.3 32 32s-14.3 32-32 32H48c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32s32 14.3 32 32v51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z" + }) + }); + }; + [ Row, Column, DownAngle, DownCaret, RightCaret, Move, CircleXMark, Cube, PlusSolid, Plus, RotateLeft ].forEach((function(C) { + C.defaultProps = { + w: 14, + h: 14 + }; + })); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + Layer: () => Layer, + default: () => Layers + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var immutability_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(279); + var immutability_helper__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(immutability_helper__WEBPACK_IMPORTED_MODULE_1__); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_2__); + var _index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); + var deep_equal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_4__); + var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9); + var _components_react_select__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(284); + var _icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(277); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Layer = function(_Component) { + _inherits(Layer, _Component); + var _super = _createSuper(Layer); + function Layer() { + var _this; + _classCallCheck(this, Layer); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + showControls: false + }); + _defineProperty(_assertThisInitialized(_this), "toggleControls", (function() { + _this.setState({ + showControls: !_this.state.showControls + }); + })); + return _this; + } + _createClass(Layer, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, value = _this$props.value, layer = _this$props.layer, dynamic = _this$props.dynamic, onChange = _this$props.onChange, onNestedChange = _this$props.onNestedChange, onRemove = _this$props.onRemove, settings = _this$props.settings; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("li", { + className: "layer-wrapper", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_5__["default"])("layer", { + "layer-invisible": !value.visible + }), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", { + type: "button", + className: "layer-visibility", + onClick: function onClick() { + onChange(_objectSpread(_objectSpread({}, value), {}, { + visible: !value.visible + })); + }, + children: value.visible ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 576 512", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("path", { + d: "M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z" + }) + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 640 512", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("path", { + d: "M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z" + }) + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", { + className: "layer-label", + children: layer.label + }), dynamic && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", { + type: "button", + onClick: function onClick() { + return onRemove(value.id); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_7__.CircleXMark, {}) + }), (layer.controls || []).length > 0 && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", { + type: "button", + disabled: !value.visible, + className: "layer-toggle", + onClick: this.toggleControls, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 320 512", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("path", { + d: "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z" + }) + }) + }) ] + }), (layer.controls || []).length > 0 && this.state.showControls && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", { + className: "layer-controls", + children: (0, _index__WEBPACK_IMPORTED_MODULE_3__.buildNestedControls)({ + controls: layer.controls || [], + settings, + onChange: function onChange(val, id, self) { + onNestedChange(val, id); + if (!self) { + _this2.forceUpdate(); + } + } + }) + }) ] + }, value.id); + } + } ]); + return Layer; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var Layers = function(_Component2) { + _inherits(Layers, _Component2); + var _super2 = _createSuper(Layers); + function Layers() { + var _this3; + _classCallCheck(this, Layers); + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + _this3 = _super2.call.apply(_super2, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this3), "state", { + selected: "" + }); + return _this3; + } + _createClass(Layers, [ { + key: "render", + value: function render() { + var _this4 = this; + var _this$props2 = this.props, value = _this$props2.value, _onChange = _this$props2.onChange, settings = _this$props2.settings; + var _this$props$options = this.props.options, layers = _this$props$options.layers, dynamic = _this$props$options.dynamic; + var items = value; + if (!dynamic) { + Object.keys(layers).forEach((function(layer) { + if (items.findIndex((function(i) { + return i.id === layer; + })) === -1) { + items = immutability_helper__WEBPACK_IMPORTED_MODULE_1___default()(items, { + $push: [ { + id: layer, + visible: false + } ] + }); + } + })); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, { + children: [ dynamic && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", { + className: "lotta-layers-dynamic-select", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_components_react_select__WEBPACK_IMPORTED_MODULE_6__["default"], { + filters: value.map((function(i) { + return i.id; + })), + items: layers, + value: this.state.selected, + onSelect: function onSelect(current) { + _this4.setState({ + selected: current + }); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("button", { + type: "button", + onClick: function onClick() { + if (_this4.state.selected && value.findIndex((function(i) { + return i.id === _this4.state.selected; + })) === -1) { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_1___default()(value, { + $push: [ { + id: _this4.state.selected, + visible: true + } ] + })); + _this4.setState({ + selected: "" + }); + } + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_7__.PlusSolid, {}) + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_2__.ReactSortable, { + tag: "ul", + className: "lotta-layers", + handle: ".layer-label", + list: items, + setList: function setList(newItems) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_4___default()(newItems, items)) { + return; + } + _onChange(newItems); + }, + children: items.map((function(item, index) { + var layer = layers[item.id]; + if (!layer) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, {}, item.id); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Layer, { + value: item, + dynamic, + settings, + layer, + onNestedChange: function onNestedChange(val, id) { + _onChange(val, id); + }, + onRemove: function onRemove(id) { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_1___default()(value, { + $splice: [ [ index, 1 ] ] + })); + }, + onChange: function onChange(newItem) { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_1___default()(items, _defineProperty({}, index, { + $set: newItem + }))); + } + }, item.id); + })) + }) ] + }); + } + } ]); + return Layers; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (module, exports, __webpack_require__) => { + "use strict"; + var process = __webpack_require__(56); + Object.defineProperty(exports, "__esModule", { + value: true + }); + function stringifiable(obj) { + return typeof obj === "object" && !("toString" in obj) ? Object.prototype.toString.call(obj).slice(8, -1) : obj; + } + var isProduction = typeof process === "object" && "development" === "production"; + function invariant(condition, message) { + if (!condition) { + if (isProduction) { + throw new Error("Invariant failed"); + } + throw new Error(message()); + } + } + exports.invariant = invariant; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var splice = Array.prototype.splice; + var toString = Object.prototype.toString; + function type(obj) { + return toString.call(obj).slice(8, -1); + } + var assign = Object.assign || function(target, source) { + getAllKeys(source).forEach((function(key) { + if (hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + })); + return target; + }; + var getAllKeys = typeof Object.getOwnPropertySymbols === "function" ? function(obj) { + return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); + } : function(obj) { + return Object.keys(obj); + }; + function copy(object) { + return Array.isArray(object) ? assign(object.constructor(object.length), object) : type(object) === "Map" ? new Map(object) : type(object) === "Set" ? new Set(object) : object && typeof object === "object" ? assign(Object.create(Object.getPrototypeOf(object)), object) : object; + } + var Context = function() { + function Context() { + this.commands = assign({}, defaultCommands); + this.update = this.update.bind(this); + this.update.extend = this.extend = this.extend.bind(this); + this.update.isEquals = function(x, y) { + return x === y; + }; + this.update.newContext = function() { + return (new Context).update; + }; + } + Object.defineProperty(Context.prototype, "isEquals", { + get: function() { + return this.update.isEquals; + }, + set: function(value) { + this.update.isEquals = value; + }, + enumerable: true, + configurable: true + }); + Context.prototype.extend = function(directive, fn) { + this.commands[directive] = fn; + }; + Context.prototype.update = function(object, $spec) { + var _this = this; + var spec = typeof $spec === "function" ? { + $apply: $spec + } : $spec; + if (!(Array.isArray(object) && Array.isArray(spec))) { + invariant(!Array.isArray(spec), (function() { + return "update(): You provided an invalid spec to update(). The spec may " + "not contain an array except as the value of $set, $push, $unshift, " + "$splice or any custom command allowing an array value."; + })); + } + invariant(typeof spec === "object" && spec !== null, (function() { + return "update(): You provided an invalid spec to update(). The spec and " + "every included key path must be plain objects containing one of the " + ("following commands: " + Object.keys(_this.commands).join(", ") + "."); + })); + var nextObject = object; + getAllKeys(spec).forEach((function(key) { + if (hasOwnProperty.call(_this.commands, key)) { + var objectWasNextObject = object === nextObject; + nextObject = _this.commands[key](spec[key], nextObject, spec, object); + if (objectWasNextObject && _this.isEquals(nextObject, object)) { + nextObject = object; + } + } else { + var nextValueForKey = type(object) === "Map" ? _this.update(object.get(key), spec[key]) : _this.update(object[key], spec[key]); + var nextObjectValue = type(nextObject) === "Map" ? nextObject.get(key) : nextObject[key]; + if (!_this.isEquals(nextValueForKey, nextObjectValue) || typeof nextValueForKey === "undefined" && !hasOwnProperty.call(object, key)) { + if (nextObject === object) { + nextObject = copy(object); + } + if (type(nextObject) === "Map") { + nextObject.set(key, nextValueForKey); + } else { + nextObject[key] = nextValueForKey; + } + } + } + })); + return nextObject; + }; + return Context; + }(); + exports.Context = Context; + var defaultCommands = { + $push: function(value, nextObject, spec) { + invariantPushAndUnshift(nextObject, spec, "$push"); + return value.length ? nextObject.concat(value) : nextObject; + }, + $unshift: function(value, nextObject, spec) { + invariantPushAndUnshift(nextObject, spec, "$unshift"); + return value.length ? value.concat(nextObject) : nextObject; + }, + $splice: function(value, nextObject, spec, originalObject) { + invariantSplices(nextObject, spec); + value.forEach((function(args) { + invariantSplice(args); + if (nextObject === originalObject && args.length) { + nextObject = copy(originalObject); + } + splice.apply(nextObject, args); + })); + return nextObject; + }, + $set: function(value, _nextObject, spec) { + invariantSet(spec); + return value; + }, + $toggle: function(targets, nextObject) { + invariantSpecArray(targets, "$toggle"); + var nextObjectCopy = targets.length ? copy(nextObject) : nextObject; + targets.forEach((function(target) { + nextObjectCopy[target] = !nextObject[target]; + })); + return nextObjectCopy; + }, + $unset: function(value, nextObject, _spec, originalObject) { + invariantSpecArray(value, "$unset"); + value.forEach((function(key) { + if (Object.hasOwnProperty.call(nextObject, key)) { + if (nextObject === originalObject) { + nextObject = copy(originalObject); + } + delete nextObject[key]; + } + })); + return nextObject; + }, + $add: function(values, nextObject, _spec, originalObject) { + invariantMapOrSet(nextObject, "$add"); + invariantSpecArray(values, "$add"); + if (type(nextObject) === "Map") { + values.forEach((function(_a) { + var key = _a[0], value = _a[1]; + if (nextObject === originalObject && nextObject.get(key) !== value) { + nextObject = copy(originalObject); + } + nextObject.set(key, value); + })); + } else { + values.forEach((function(value) { + if (nextObject === originalObject && !nextObject.has(value)) { + nextObject = copy(originalObject); + } + nextObject.add(value); + })); + } + return nextObject; + }, + $remove: function(value, nextObject, _spec, originalObject) { + invariantMapOrSet(nextObject, "$remove"); + invariantSpecArray(value, "$remove"); + value.forEach((function(key) { + if (nextObject === originalObject && nextObject.has(key)) { + nextObject = copy(originalObject); + } + nextObject.delete(key); + })); + return nextObject; + }, + $merge: function(value, nextObject, _spec, originalObject) { + invariantMerge(nextObject, value); + getAllKeys(value).forEach((function(key) { + if (value[key] !== nextObject[key]) { + if (nextObject === originalObject) { + nextObject = copy(originalObject); + } + nextObject[key] = value[key]; + } + })); + return nextObject; + }, + $apply: function(value, original) { + invariantApply(value); + return value(original); + } + }; + var defaultContext = new Context; + exports.isEquals = defaultContext.update.isEquals; + exports.extend = defaultContext.extend; + exports["default"] = defaultContext.update; + exports["default"]["default"] = module.exports = assign(exports.default, exports); + function invariantPushAndUnshift(value, spec, command) { + invariant(Array.isArray(value), (function() { + return "update(): expected target of " + stringifiable(command) + " to be an array; got " + stringifiable(value) + "."; + })); + invariantSpecArray(spec[command], command); + } + function invariantSpecArray(spec, command) { + invariant(Array.isArray(spec), (function() { + return "update(): expected spec of " + stringifiable(command) + " to be an array; got " + stringifiable(spec) + ". " + "Did you forget to wrap your parameter in an array?"; + })); + } + function invariantSplices(value, spec) { + invariant(Array.isArray(value), (function() { + return "Expected $splice target to be an array; got " + stringifiable(value); + })); + invariantSplice(spec.$splice); + } + function invariantSplice(value) { + invariant(Array.isArray(value), (function() { + return "update(): expected spec of $splice to be an array of arrays; got " + stringifiable(value) + ". " + "Did you forget to wrap your parameters in an array?"; + })); + } + function invariantApply(fn) { + invariant(typeof fn === "function", (function() { + return "update(): expected spec of $apply to be a function; got " + stringifiable(fn) + "."; + })); + } + function invariantSet(spec) { + invariant(Object.keys(spec).length === 1, (function() { + return "Cannot have more than one key in an object with $set"; + })); + } + function invariantMerge(target, specValue) { + invariant(specValue && typeof specValue === "object", (function() { + return "update(): $merge expects a spec of type 'object'; got " + stringifiable(specValue); + })); + invariant(target && typeof target === "object", (function() { + return "update(): $merge expects a target of type 'object'; got " + stringifiable(target); + })); + } + function invariantMapOrSet(target, command) { + var typeOfTarget = type(target); + invariant(typeOfTarget === "Map" || typeOfTarget === "Set", (function() { + return "update(): " + stringifiable(command) + " expects a target of type Set or Map; got " + stringifiable(typeOfTarget); + })); + } + }, (module, __unused_webpack_exports, __webpack_require__) => { + var $8zHUo$sortablejs = __webpack_require__(281); + var $8zHUo$classnames = __webpack_require__(282); + var $8zHUo$react = __webpack_require__(12); + var $8zHUo$tinyinvariant = __webpack_require__(283); + function $parcel$interopDefault(a) { + return a && a.__esModule ? a.default : a; + } + function $parcel$export(e, n, v, s) { + Object.defineProperty(e, n, { + get: v, + set: s, + enumerable: true, + configurable: true + }); + } + function $parcel$exportWildcard(dest, source) { + Object.keys(source).forEach((function(key) { + if (key === "default" || key === "__esModule" || dest.hasOwnProperty(key)) { + return; + } + Object.defineProperty(dest, key, { + enumerable: true, + get: function get() { + return source[key]; + } + }); + })); + return dest; + } + $parcel$export(module.exports, "Sortable", (() => $882b6d93070905b3$re_export$Sortable)); + $parcel$export(module.exports, "Direction", (() => $882b6d93070905b3$re_export$Direction)); + $parcel$export(module.exports, "DOMRect", (() => $882b6d93070905b3$re_export$DOMRect)); + $parcel$export(module.exports, "GroupOptions", (() => $882b6d93070905b3$re_export$GroupOptions)); + $parcel$export(module.exports, "MoveEvent", (() => $882b6d93070905b3$re_export$MoveEvent)); + $parcel$export(module.exports, "Options", (() => $882b6d93070905b3$re_export$Options)); + $parcel$export(module.exports, "PullResult", (() => $882b6d93070905b3$re_export$PullResult)); + $parcel$export(module.exports, "PutResult", (() => $882b6d93070905b3$re_export$PutResult)); + $parcel$export(module.exports, "SortableEvent", (() => $882b6d93070905b3$re_export$SortableEvent)); + $parcel$export(module.exports, "SortableOptions", (() => $882b6d93070905b3$re_export$SortableOptions)); + $parcel$export(module.exports, "Utils", (() => $882b6d93070905b3$re_export$Utils)); + $parcel$export(module.exports, "ReactSortable", (() => $7fe8e3ea572bda7a$export$11bbed9ee0012c13)); + function $eb03e74f8f7db1f3$export$1d0aa160432dfea5(node) { + if (node.parentElement !== null) node.parentElement.removeChild(node); + } + function $eb03e74f8f7db1f3$export$6d240faa51aa562f(parent, newChild, index) { + const refChild = parent.children[index] || null; + parent.insertBefore(newChild, refChild); + } + function $eb03e74f8f7db1f3$export$d7d742816c28cf91(customs) { + $eb03e74f8f7db1f3$export$77f49a256021c8de(customs); + $eb03e74f8f7db1f3$export$a6177d5829f70ebc(customs); + } + function $eb03e74f8f7db1f3$export$77f49a256021c8de(customs) { + customs.forEach((curr => $eb03e74f8f7db1f3$export$1d0aa160432dfea5(curr.element))); + } + function $eb03e74f8f7db1f3$export$a6177d5829f70ebc(customs) { + customs.forEach((curr => { + $eb03e74f8f7db1f3$export$6d240faa51aa562f(curr.parentElement, curr.element, curr.oldIndex); + })); + } + function $eb03e74f8f7db1f3$export$4655efe700f887a(evt, list) { + const mode = $eb03e74f8f7db1f3$export$1fc0f6205829e19c(evt); + const parentElement = { + parentElement: evt.from + }; + let custom = []; + switch (mode) { + case "normal": + const item = { + element: evt.item, + newIndex: evt.newIndex, + oldIndex: evt.oldIndex, + parentElement: evt.from + }; + custom = [ item ]; + break; + + case "swap": + const drag = { + element: evt.item, + oldIndex: evt.oldIndex, + newIndex: evt.newIndex, + ...parentElement + }; + const swap = { + element: evt.swapItem, + oldIndex: evt.newIndex, + newIndex: evt.oldIndex, + ...parentElement + }; + custom = [ drag, swap ]; + break; + + case "multidrag": + custom = evt.oldIndicies.map(((curr, index) => ({ + element: curr.multiDragElement, + oldIndex: curr.index, + newIndex: evt.newIndicies[index].index, + ...parentElement + }))); + break; + } + const customs = $eb03e74f8f7db1f3$export$bc06a3af7dc65f53(custom, list); + return customs; + } + function $eb03e74f8f7db1f3$export$c25cf8080bd305ec(normalized, list) { + const a = $eb03e74f8f7db1f3$export$be2da95e6167b0bd(normalized, list); + const b = $eb03e74f8f7db1f3$export$eca851ee65ae17e4(normalized, a); + return b; + } + function $eb03e74f8f7db1f3$export$be2da95e6167b0bd(normalized, list) { + const newList = [ ...list ]; + normalized.concat().reverse().forEach((curr => newList.splice(curr.oldIndex, 1))); + return newList; + } + function $eb03e74f8f7db1f3$export$eca851ee65ae17e4(normalized, list, evt, clone) { + const newList = [ ...list ]; + normalized.forEach((curr => { + const newItem = clone && evt && clone(curr.item, evt); + newList.splice(curr.newIndex, 0, newItem || curr.item); + })); + return newList; + } + function $eb03e74f8f7db1f3$export$1fc0f6205829e19c(evt) { + if (evt.oldIndicies && evt.oldIndicies.length > 0) return "multidrag"; + if (evt.swapItem) return "swap"; + return "normal"; + } + function $eb03e74f8f7db1f3$export$bc06a3af7dc65f53(inputs, list) { + const normalized = inputs.map((curr => ({ + ...curr, + item: list[curr.oldIndex] + }))).sort(((a, b) => a.oldIndex - b.oldIndex)); + return normalized; + } + function $eb03e74f8f7db1f3$export$7553c81e62e31b7e(props) { + const {list, setList, children, tag, style, className, clone, onAdd, onChange, onChoose, onClone, onEnd, onFilter, onRemove, onSort, onStart, onUnchoose, onUpdate, onMove, onSpill, onSelect, onDeselect, ...options} = props; + return options; + } + const $7fe8e3ea572bda7a$var$store = { + dragging: null + }; + class $7fe8e3ea572bda7a$export$11bbed9ee0012c13 extends(0, $8zHUo$react.Component){ + static defaultProps={ + clone: item => item + }; + constructor(props) { + super(props); + this.ref = (0, $8zHUo$react.createRef)(); + const newList = [ ...props.list ].map((item => Object.assign(item, { + chosen: false, + selected: false + }))); + props.setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + (0, $parcel$interopDefault($8zHUo$tinyinvariant))(!props.plugins, `\nPlugins prop is no longer supported.\nInstead, mount it with "Sortable.mount(new MultiDrag())"\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\n `); + } + componentDidMount() { + if (this.ref.current === null) return; + const newOptions = this.makeOptions(); + (0, $parcel$interopDefault($8zHUo$sortablejs)).create(this.ref.current, newOptions); + } + componentDidUpdate(prevProps) { + if (prevProps.disabled !== this.props.disabled && this.sortable) this.sortable.option("disabled", this.props.disabled); + } + render() { + const {tag, style, className, id} = this.props; + const classicProps = { + style, + className, + id + }; + const newTag = !tag || tag === null ? "div" : tag; + return (0, $8zHUo$react.createElement)(newTag, { + ref: this.ref, + ...classicProps + }, this.getChildren()); + } + getChildren() { + const {children, dataIdAttr, selectedClass = "sortable-selected", chosenClass = "sortable-chosen", dragClass = "sortable-drag", fallbackClass = "sortable-falback", ghostClass = "sortable-ghost", swapClass = "sortable-swap-highlight", filter = "sortable-filter", list} = this.props; + if (!children || children == null) return null; + const dataid = dataIdAttr || "data-id"; + return (0, $8zHUo$react.Children).map(children, ((child, index) => { + if (child === undefined) return undefined; + const item = list[index] || {}; + const {className: prevClassName} = child.props; + const filtered = typeof filter === "string" && { + [filter.replace(".", "")]: !!item.filtered + }; + const className = (0, $parcel$interopDefault($8zHUo$classnames))(prevClassName, { + [selectedClass]: item.selected, + [chosenClass]: item.chosen, + ...filtered + }); + return (0, $8zHUo$react.cloneElement)(child, { + [dataid]: child.key, + className + }); + })); + } + get sortable() { + const el = this.ref.current; + if (el === null) return null; + const key = Object.keys(el).find((k => k.includes("Sortable"))); + if (!key) return null; + return el[key]; + } + makeOptions() { + const DOMHandlers = [ "onAdd", "onChoose", "onDeselect", "onEnd", "onRemove", "onSelect", "onSpill", "onStart", "onUnchoose", "onUpdate" ]; + const NonDOMHandlers = [ "onChange", "onClone", "onFilter", "onSort" ]; + const newOptions = (0, $eb03e74f8f7db1f3$export$7553c81e62e31b7e)(this.props); + DOMHandlers.forEach((name => newOptions[name] = this.prepareOnHandlerPropAndDOM(name))); + NonDOMHandlers.forEach((name => newOptions[name] = this.prepareOnHandlerProp(name))); + const onMove1 = (evt, originalEvt) => { + const {onMove} = this.props; + const defaultValue = evt.willInsertAfter || -1; + if (!onMove) return defaultValue; + const result = onMove(evt, originalEvt, this.sortable, $7fe8e3ea572bda7a$var$store); + if (typeof result === "undefined") return false; + return result; + }; + return { + ...newOptions, + onMove: onMove1 + }; + } + prepareOnHandlerPropAndDOM(evtName) { + return evt => { + this.callOnHandlerProp(evt, evtName); + this[evtName](evt); + }; + } + prepareOnHandlerProp(evtName) { + return evt => { + this.callOnHandlerProp(evt, evtName); + }; + } + callOnHandlerProp(evt, evtName) { + const propEvent = this.props[evtName]; + if (propEvent) propEvent(evt, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onAdd(evt) { + const {list, setList, clone} = this.props; + const otherList = [ ...$7fe8e3ea572bda7a$var$store.dragging.props.list ]; + const customs = (0, $eb03e74f8f7db1f3$export$4655efe700f887a)(evt, otherList); + (0, $eb03e74f8f7db1f3$export$77f49a256021c8de)(customs); + const newList = (0, $eb03e74f8f7db1f3$export$eca851ee65ae17e4)(customs, list, evt, clone).map((item => Object.assign(item, { + selected: false + }))); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onRemove(evt) { + const {list, setList} = this.props; + const mode = (0, $eb03e74f8f7db1f3$export$1fc0f6205829e19c)(evt); + const customs = (0, $eb03e74f8f7db1f3$export$4655efe700f887a)(evt, list); + (0, $eb03e74f8f7db1f3$export$a6177d5829f70ebc)(customs); + let newList = [ ...list ]; + if (evt.pullMode !== "clone") newList = (0, $eb03e74f8f7db1f3$export$be2da95e6167b0bd)(customs, newList); else { + let customClones = customs; + switch (mode) { + case "multidrag": + customClones = customs.map(((item, index) => ({ + ...item, + element: evt.clones[index] + }))); + break; + + case "normal": + customClones = customs.map((item => ({ + ...item, + element: evt.clone + }))); + break; + + case "swap": + default: + (0, $parcel$interopDefault($8zHUo$tinyinvariant))(true, `mode "${mode}" cannot clone. Please remove "props.clone" from when using the "${mode}" plugin`); + } + (0, $eb03e74f8f7db1f3$export$77f49a256021c8de)(customClones); + customs.forEach((curr => { + const index = curr.oldIndex; + const newItem = this.props.clone(curr.item, evt); + newList.splice(index, 1, newItem); + })); + } + newList = newList.map((item => Object.assign(item, { + selected: false + }))); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onUpdate(evt) { + const {list, setList} = this.props; + const customs = (0, $eb03e74f8f7db1f3$export$4655efe700f887a)(evt, list); + (0, $eb03e74f8f7db1f3$export$77f49a256021c8de)(customs); + (0, $eb03e74f8f7db1f3$export$a6177d5829f70ebc)(customs); + const newList = (0, $eb03e74f8f7db1f3$export$c25cf8080bd305ec)(customs, list); + return setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onStart() { + $7fe8e3ea572bda7a$var$store.dragging = this; + } + onEnd() { + $7fe8e3ea572bda7a$var$store.dragging = null; + } + onChoose(evt) { + const {list, setList} = this.props; + const newList = list.map(((item, index) => { + let newItem = item; + if (index === evt.oldIndex) newItem = Object.assign(item, { + chosen: true + }); + return newItem; + })); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onUnchoose(evt) { + const {list, setList} = this.props; + const newList = list.map(((item, index) => { + let newItem = item; + if (index === evt.oldIndex) newItem = Object.assign(newItem, { + chosen: false + }); + return newItem; + })); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onSpill(evt) { + const {removeOnSpill, revertOnSpill} = this.props; + if (removeOnSpill && !revertOnSpill) (0, $eb03e74f8f7db1f3$export$1d0aa160432dfea5)(evt.item); + } + onSelect(evt) { + const {list, setList} = this.props; + const newList = list.map((item => Object.assign(item, { + selected: false + }))); + evt.newIndicies.forEach((curr => { + const index = curr.index; + if (index === -1) { + console.log(`"${evt.type}" had indice of "${curr.index}", which is probably -1 and doesn't usually happen here.`); + console.log(evt); + return; + } + newList[index].selected = true; + })); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + onDeselect(evt) { + const {list, setList} = this.props; + const newList = list.map((item => Object.assign(item, { + selected: false + }))); + evt.newIndicies.forEach((curr => { + const index = curr.index; + if (index === -1) return; + newList[index].selected = true; + })); + setList(newList, this.sortable, $7fe8e3ea572bda7a$var$store); + } + } + var $faefaad95e5fcca0$exports = {}; + $parcel$exportWildcard(module.exports, $faefaad95e5fcca0$exports); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + MultiDrag: () => MultiDragPlugin, + Sortable: () => Sortable, + Swap: () => SwapPlugin, + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + /**! + * Sortable 1.15.0 + * @author RubaXa + * @author owenm + * @license MIT + */ function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) { + symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })); + } + keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + if (i % 2) { + ownKeys(Object(source), true).forEach((function(key) { + _defineProperty(target, key, source[key]); + })); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + } + return target; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj) { + return typeof obj; + }; + } else { + _typeof = function(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _extends() { + _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = _objectWithoutPropertiesLoose(source, excluded); + var key, i; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + return target; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var version = "1.15.0"; + function userAgent(pattern) { + if (typeof window !== "undefined" && window.navigator) { + return !!navigator.userAgent.match(pattern); + } + } + var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); + var Edge = userAgent(/Edge/i); + var FireFox = userAgent(/firefox/i); + var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); + var IOS = userAgent(/iP(ad|od|hone)/i); + var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); + var captureMode = { + capture: false, + passive: false + }; + function on(el, event, fn) { + el.addEventListener(event, fn, !IE11OrLess && captureMode); + } + function off(el, event, fn) { + el.removeEventListener(event, fn, !IE11OrLess && captureMode); + } + function matches(el, selector) { + if (!selector) return; + selector[0] === ">" && (selector = selector.substring(1)); + if (el) { + try { + if (el.matches) { + return el.matches(selector); + } else if (el.msMatchesSelector) { + return el.msMatchesSelector(selector); + } else if (el.webkitMatchesSelector) { + return el.webkitMatchesSelector(selector); + } + } catch (_) { + return false; + } + } + return false; + } + function getParentOrHost(el) { + return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; + } + function closest(el, selector, ctx, includeCTX) { + if (el) { + ctx = ctx || document; + do { + if (selector != null && (selector[0] === ">" ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { + return el; + } + if (el === ctx) break; + } while (el = getParentOrHost(el)); + } + return null; + } + var R_SPACE = /\s+/g; + function toggleClass(el, name, state) { + if (el && name) { + if (el.classList) { + el.classList[state ? "add" : "remove"](name); + } else { + var className = (" " + el.className + " ").replace(R_SPACE, " ").replace(" " + name + " ", " "); + el.className = (className + (state ? " " + name : "")).replace(R_SPACE, " "); + } + } + } + function css(el, prop, val) { + var style = el && el.style; + if (style) { + if (val === void 0) { + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(el, ""); + } else if (el.currentStyle) { + val = el.currentStyle; + } + return prop === void 0 ? val : val[prop]; + } else { + if (!(prop in style) && prop.indexOf("webkit") === -1) { + prop = "-webkit-" + prop; + } + style[prop] = val + (typeof val === "string" ? "" : "px"); + } + } + } + function matrix(el, selfOnly) { + var appliedTransforms = ""; + if (typeof el === "string") { + appliedTransforms = el; + } else { + do { + var transform = css(el, "transform"); + if (transform && transform !== "none") { + appliedTransforms = transform + " " + appliedTransforms; + } + } while (!selfOnly && (el = el.parentNode)); + } + var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + return matrixFn && new matrixFn(appliedTransforms); + } + function find(ctx, tagName, iterator) { + if (ctx) { + var list = ctx.getElementsByTagName(tagName), i = 0, n = list.length; + if (iterator) { + for (;i < n; i++) { + iterator(list[i], i); + } + } + return list; + } + return []; + } + function getWindowScrollingElement() { + var scrollingElement = document.scrollingElement; + if (scrollingElement) { + return scrollingElement; + } else { + return document.documentElement; + } + } + function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { + if (!el.getBoundingClientRect && el !== window) return; + var elRect, top, left, bottom, right, height, width; + if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { + elRect = el.getBoundingClientRect(); + top = elRect.top; + left = elRect.left; + bottom = elRect.bottom; + right = elRect.right; + height = elRect.height; + width = elRect.width; + } else { + top = 0; + left = 0; + bottom = window.innerHeight; + right = window.innerWidth; + height = window.innerHeight; + width = window.innerWidth; + } + if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { + container = container || el.parentNode; + if (!IE11OrLess) { + do { + if (container && container.getBoundingClientRect && (css(container, "transform") !== "none" || relativeToNonStaticParent && css(container, "position") !== "static")) { + var containerRect = container.getBoundingClientRect(); + top -= containerRect.top + parseInt(css(container, "border-top-width")); + left -= containerRect.left + parseInt(css(container, "border-left-width")); + bottom = top + elRect.height; + right = left + elRect.width; + break; + } + } while (container = container.parentNode); + } + } + if (undoScale && el !== window) { + var elMatrix = matrix(container || el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d; + if (elMatrix) { + top /= scaleY; + left /= scaleX; + width /= scaleX; + height /= scaleY; + bottom = top + height; + right = left + width; + } + } + return { + top, + left, + bottom, + right, + width, + height + }; + } + function isScrolledPast(el, elSide, parentSide) { + var parent = getParentAutoScrollElement(el, true), elSideVal = getRect(el)[elSide]; + while (parent) { + var parentSideVal = getRect(parent)[parentSide], visible = void 0; + if (parentSide === "top" || parentSide === "left") { + visible = elSideVal >= parentSideVal; + } else { + visible = elSideVal <= parentSideVal; + } + if (!visible) return parent; + if (parent === getWindowScrollingElement()) break; + parent = getParentAutoScrollElement(parent, false); + } + return false; + } + function getChild(el, childNum, options, includeDragEl) { + var currentChild = 0, i = 0, children = el.children; + while (i < children.length) { + if (children[i].style.display !== "none" && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) { + if (currentChild === childNum) { + return children[i]; + } + currentChild++; + } + i++; + } + return null; + } + function lastChild(el, selector) { + var last = el.lastElementChild; + while (last && (last === Sortable.ghost || css(last, "display") === "none" || selector && !matches(last, selector))) { + last = last.previousElementSibling; + } + return last || null; + } + function index(el, selector) { + var index = 0; + if (!el || !el.parentNode) { + return -1; + } + while (el = el.previousElementSibling) { + if (el.nodeName.toUpperCase() !== "TEMPLATE" && el !== Sortable.clone && (!selector || matches(el, selector))) { + index++; + } + } + return index; + } + function getRelativeScrollOffset(el) { + var offsetLeft = 0, offsetTop = 0, winScroller = getWindowScrollingElement(); + if (el) { + do { + var elMatrix = matrix(el), scaleX = elMatrix.a, scaleY = elMatrix.d; + offsetLeft += el.scrollLeft * scaleX; + offsetTop += el.scrollTop * scaleY; + } while (el !== winScroller && (el = el.parentNode)); + } + return [ offsetLeft, offsetTop ]; + } + function indexOfObject(arr, obj) { + for (var i in arr) { + if (!arr.hasOwnProperty(i)) continue; + for (var key in obj) { + if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); + } + } + return -1; + } + function getParentAutoScrollElement(el, includeSelf) { + if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); + var elem = el; + var gotSelf = false; + do { + if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { + var elemCSS = css(elem); + if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == "auto" || elemCSS.overflowX == "scroll") || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == "auto" || elemCSS.overflowY == "scroll")) { + if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); + if (gotSelf || includeSelf) return elem; + gotSelf = true; + } + } + } while (elem = elem.parentNode); + return getWindowScrollingElement(); + } + function extend(dst, src) { + if (dst && src) { + for (var key in src) { + if (src.hasOwnProperty(key)) { + dst[key] = src[key]; + } + } + } + return dst; + } + function isRectEqual(rect1, rect2) { + return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); + } + var _throttleTimeout; + function throttle(callback, ms) { + return function() { + if (!_throttleTimeout) { + var args = arguments, _this = this; + if (args.length === 1) { + callback.call(_this, args[0]); + } else { + callback.apply(_this, args); + } + _throttleTimeout = setTimeout((function() { + _throttleTimeout = void 0; + }), ms); + } + }; + } + function cancelThrottle() { + clearTimeout(_throttleTimeout); + _throttleTimeout = void 0; + } + function scrollBy(el, x, y) { + el.scrollLeft += x; + el.scrollTop += y; + } + function clone(el) { + var Polymer = window.Polymer; + var $ = window.jQuery || window.Zepto; + if (Polymer && Polymer.dom) { + return Polymer.dom(el).cloneNode(true); + } else if ($) { + return $(el).clone(true)[0]; + } else { + return el.cloneNode(true); + } + } + function setRect(el, rect) { + css(el, "position", "absolute"); + css(el, "top", rect.top); + css(el, "left", rect.left); + css(el, "width", rect.width); + css(el, "height", rect.height); + } + function unsetRect(el) { + css(el, "position", ""); + css(el, "top", ""); + css(el, "left", ""); + css(el, "width", ""); + css(el, "height", ""); + } + var expando = "Sortable" + (new Date).getTime(); + function AnimationStateManager() { + var animationStates = [], animationCallbackId; + return { + captureAnimationState: function captureAnimationState() { + animationStates = []; + if (!this.options.animation) return; + var children = [].slice.call(this.el.children); + children.forEach((function(child) { + if (css(child, "display") === "none" || child === Sortable.ghost) return; + animationStates.push({ + target: child, + rect: getRect(child) + }); + var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect); + if (child.thisAnimationDuration) { + var childMatrix = matrix(child, true); + if (childMatrix) { + fromRect.top -= childMatrix.f; + fromRect.left -= childMatrix.e; + } + } + child.fromRect = fromRect; + })); + }, + addAnimationState: function addAnimationState(state) { + animationStates.push(state); + }, + removeAnimationState: function removeAnimationState(target) { + animationStates.splice(indexOfObject(animationStates, { + target + }), 1); + }, + animateAll: function animateAll(callback) { + var _this = this; + if (!this.options.animation) { + clearTimeout(animationCallbackId); + if (typeof callback === "function") callback(); + return; + } + var animating = false, animationTime = 0; + animationStates.forEach((function(state) { + var time = 0, target = state.target, fromRect = target.fromRect, toRect = getRect(target), prevFromRect = target.prevFromRect, prevToRect = target.prevToRect, animatingRect = state.rect, targetMatrix = matrix(target, true); + if (targetMatrix) { + toRect.top -= targetMatrix.f; + toRect.left -= targetMatrix.e; + } + target.toRect = toRect; + if (target.thisAnimationDuration) { + if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { + time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); + } + } + if (!isRectEqual(toRect, fromRect)) { + target.prevFromRect = fromRect; + target.prevToRect = toRect; + if (!time) { + time = _this.options.animation; + } + _this.animate(target, animatingRect, toRect, time); + } + if (time) { + animating = true; + animationTime = Math.max(animationTime, time); + clearTimeout(target.animationResetTimer); + target.animationResetTimer = setTimeout((function() { + target.animationTime = 0; + target.prevFromRect = null; + target.fromRect = null; + target.prevToRect = null; + target.thisAnimationDuration = null; + }), time); + target.thisAnimationDuration = time; + } + })); + clearTimeout(animationCallbackId); + if (!animating) { + if (typeof callback === "function") callback(); + } else { + animationCallbackId = setTimeout((function() { + if (typeof callback === "function") callback(); + }), animationTime); + } + animationStates = []; + }, + animate: function animate(target, currentRect, toRect, duration) { + if (duration) { + css(target, "transition", ""); + css(target, "transform", ""); + var elMatrix = matrix(this.el), scaleX = elMatrix && elMatrix.a, scaleY = elMatrix && elMatrix.d, translateX = (currentRect.left - toRect.left) / (scaleX || 1), translateY = (currentRect.top - toRect.top) / (scaleY || 1); + target.animatingX = !!translateX; + target.animatingY = !!translateY; + css(target, "transform", "translate3d(" + translateX + "px," + translateY + "px,0)"); + this.forRepaintDummy = repaint(target); + css(target, "transition", "transform " + duration + "ms" + (this.options.easing ? " " + this.options.easing : "")); + css(target, "transform", "translate3d(0,0,0)"); + typeof target.animated === "number" && clearTimeout(target.animated); + target.animated = setTimeout((function() { + css(target, "transition", ""); + css(target, "transform", ""); + target.animated = false; + target.animatingX = false; + target.animatingY = false; + }), duration); + } + } + }; + } + function repaint(target) { + return target.offsetWidth; + } + function calculateRealTime(animatingRect, fromRect, toRect, options) { + return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; + } + var plugins = []; + var defaults = { + initializeByDefault: true + }; + var PluginManager = { + mount: function mount(plugin) { + for (var option in defaults) { + if (defaults.hasOwnProperty(option) && !(option in plugin)) { + plugin[option] = defaults[option]; + } + } + plugins.forEach((function(p) { + if (p.pluginName === plugin.pluginName) { + throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); + } + })); + plugins.push(plugin); + }, + pluginEvent: function pluginEvent(eventName, sortable, evt) { + var _this = this; + this.eventCanceled = false; + evt.cancel = function() { + _this.eventCanceled = true; + }; + var eventNameGlobal = eventName + "Global"; + plugins.forEach((function(plugin) { + if (!sortable[plugin.pluginName]) return; + if (sortable[plugin.pluginName][eventNameGlobal]) { + sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({ + sortable + }, evt)); + } + if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { + sortable[plugin.pluginName][eventName](_objectSpread2({ + sortable + }, evt)); + } + })); + }, + initializePlugins: function initializePlugins(sortable, el, defaults, options) { + plugins.forEach((function(plugin) { + var pluginName = plugin.pluginName; + if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; + var initialized = new plugin(sortable, el, sortable.options); + initialized.sortable = sortable; + initialized.options = sortable.options; + sortable[pluginName] = initialized; + _extends(defaults, initialized.defaults); + })); + for (var option in sortable.options) { + if (!sortable.options.hasOwnProperty(option)) continue; + var modified = this.modifyOption(sortable, option, sortable.options[option]); + if (typeof modified !== "undefined") { + sortable.options[option] = modified; + } + } + }, + getEventProperties: function getEventProperties(name, sortable) { + var eventProperties = {}; + plugins.forEach((function(plugin) { + if (typeof plugin.eventProperties !== "function") return; + _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); + })); + return eventProperties; + }, + modifyOption: function modifyOption(sortable, name, value) { + var modifiedValue; + plugins.forEach((function(plugin) { + if (!sortable[plugin.pluginName]) return; + if (plugin.optionListeners && typeof plugin.optionListeners[name] === "function") { + modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); + } + })); + return modifiedValue; + } + }; + function dispatchEvent(_ref) { + var sortable = _ref.sortable, rootEl = _ref.rootEl, name = _ref.name, targetEl = _ref.targetEl, cloneEl = _ref.cloneEl, toEl = _ref.toEl, fromEl = _ref.fromEl, oldIndex = _ref.oldIndex, newIndex = _ref.newIndex, oldDraggableIndex = _ref.oldDraggableIndex, newDraggableIndex = _ref.newDraggableIndex, originalEvent = _ref.originalEvent, putSortable = _ref.putSortable, extraEventProperties = _ref.extraEventProperties; + sortable = sortable || rootEl && rootEl[expando]; + if (!sortable) return; + var evt, options = sortable.options, onName = "on" + name.charAt(0).toUpperCase() + name.substr(1); + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent(name, { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent(name, true, true); + } + evt.to = toEl || rootEl; + evt.from = fromEl || rootEl; + evt.item = targetEl || rootEl; + evt.clone = cloneEl; + evt.oldIndex = oldIndex; + evt.newIndex = newIndex; + evt.oldDraggableIndex = oldDraggableIndex; + evt.newDraggableIndex = newDraggableIndex; + evt.originalEvent = originalEvent; + evt.pullMode = putSortable ? putSortable.lastPutMode : undefined; + var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable)); + for (var option in allEventProperties) { + evt[option] = allEventProperties[option]; + } + if (rootEl) { + rootEl.dispatchEvent(evt); + } + if (options[onName]) { + options[onName].call(sortable, evt); + } + } + var _excluded = [ "evt" ]; + var pluginEvent = function pluginEvent(eventName, sortable) { + var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, originalEvent = _ref.evt, data = _objectWithoutProperties(_ref, _excluded); + PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({ + dragEl, + parentEl, + ghostEl, + rootEl, + nextEl, + lastDownEl, + cloneEl, + cloneHidden, + dragStarted: moved, + putSortable, + activeSortable: Sortable.active, + originalEvent, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex, + hideGhostForTarget: _hideGhostForTarget, + unhideGhostForTarget: _unhideGhostForTarget, + cloneNowHidden: function cloneNowHidden() { + cloneHidden = true; + }, + cloneNowShown: function cloneNowShown() { + cloneHidden = false; + }, + dispatchSortableEvent: function dispatchSortableEvent(name) { + _dispatchEvent({ + sortable, + name, + originalEvent + }); + } + }, data)); + }; + function _dispatchEvent(info) { + dispatchEvent(_objectSpread2({ + putSortable, + cloneEl, + targetEl: dragEl, + rootEl, + oldIndex, + oldDraggableIndex, + newIndex, + newDraggableIndex + }, info)); + } + var dragEl, parentEl, ghostEl, rootEl, nextEl, lastDownEl, cloneEl, cloneHidden, oldIndex, newIndex, oldDraggableIndex, newDraggableIndex, activeGroup, putSortable, awaitingDragStarted = false, ignoreNextClick = false, sortables = [], tapEvt, touchEvt, lastDx, lastDy, tapDistanceLeft, tapDistanceTop, moved, lastTarget, lastDirection, pastFirstInvertThresh = false, isCircumstantialInvert = false, targetMoveDistance, ghostRelativeParent, ghostRelativeParentInitialScroll = [], _silent = false, savedInputChecked = []; + var documentExists = typeof document !== "undefined", PositionGhostAbsolutely = IOS, CSSFloatProperty = Edge || IE11OrLess ? "cssFloat" : "float", supportDraggable = documentExists && !ChromeForAndroid && !IOS && "draggable" in document.createElement("div"), supportCssPointerEvents = function() { + if (!documentExists) return; + if (IE11OrLess) { + return false; + } + var el = document.createElement("x"); + el.style.cssText = "pointer-events:auto"; + return el.style.pointerEvents === "auto"; + }(), _detectDirection = function _detectDirection(el, options) { + var elCSS = css(el), elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), child1 = getChild(el, 0, options), child2 = getChild(el, 1, options), firstChildCSS = child1 && css(child1), secondChildCSS = child2 && css(child2), firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + if (elCSS.display === "flex") { + return elCSS.flexDirection === "column" || elCSS.flexDirection === "column-reverse" ? "vertical" : "horizontal"; + } + if (elCSS.display === "grid") { + return elCSS.gridTemplateColumns.split(" ").length <= 1 ? "vertical" : "horizontal"; + } + if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== "none") { + var touchingSideChild2 = firstChildCSS["float"] === "left" ? "left" : "right"; + return child2 && (secondChildCSS.clear === "both" || secondChildCSS.clear === touchingSideChild2) ? "vertical" : "horizontal"; + } + return child1 && (firstChildCSS.display === "block" || firstChildCSS.display === "flex" || firstChildCSS.display === "table" || firstChildCSS.display === "grid" || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === "none" || child2 && elCSS[CSSFloatProperty] === "none" && firstChildWidth + secondChildWidth > elWidth) ? "vertical" : "horizontal"; + }, _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) { + var dragElS1Opp = vertical ? dragRect.left : dragRect.top, dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, dragElOppLength = vertical ? dragRect.width : dragRect.height, targetS1Opp = vertical ? targetRect.left : targetRect.top, targetS2Opp = vertical ? targetRect.right : targetRect.bottom, targetOppLength = vertical ? targetRect.width : targetRect.height; + return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; + }, _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) { + var ret; + sortables.some((function(sortable) { + var threshold = sortable[expando].options.emptyInsertThreshold; + if (!threshold || lastChild(sortable)) return; + var rect = getRect(sortable), insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + if (insideHorizontally && insideVertically) { + return ret = sortable; + } + })); + return ret; + }, _prepareGroup = function _prepareGroup(options) { + function toFn(value, pull) { + return function(to, from, dragEl, evt) { + var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + if (value == null && (pull || sameGroup)) { + return true; + } else if (value == null || value === false) { + return false; + } else if (pull && value === "clone") { + return value; + } else if (typeof value === "function") { + return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt); + } else { + var otherGroup = (pull ? to : from).options.group.name; + return value === true || typeof value === "string" && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; + } + }; + } + var group = {}; + var originalGroup = options.group; + if (!originalGroup || _typeof(originalGroup) != "object") { + originalGroup = { + name: originalGroup + }; + } + group.name = originalGroup.name; + group.checkPull = toFn(originalGroup.pull, true); + group.checkPut = toFn(originalGroup.put); + group.revertClone = originalGroup.revertClone; + options.group = group; + }, _hideGhostForTarget = function _hideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", "none"); + } + }, _unhideGhostForTarget = function _unhideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, "display", ""); + } + }; + if (documentExists && !ChromeForAndroid) { + document.addEventListener("click", (function(evt) { + if (ignoreNextClick) { + evt.preventDefault(); + evt.stopPropagation && evt.stopPropagation(); + evt.stopImmediatePropagation && evt.stopImmediatePropagation(); + ignoreNextClick = false; + return false; + } + }), true); + } + var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) { + if (dragEl) { + evt = evt.touches ? evt.touches[0] : evt; + var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + if (nearest) { + var event = {}; + for (var i in evt) { + if (evt.hasOwnProperty(i)) { + event[i] = evt[i]; + } + } + event.target = event.rootEl = nearest; + event.preventDefault = void 0; + event.stopPropagation = void 0; + nearest[expando]._onDragOver(event); + } + } + }; + var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) { + if (dragEl) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + } + }; + function Sortable(el, options) { + if (!(el && el.nodeType && el.nodeType === 1)) { + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); + } + this.el = el; + this.options = options = _extends({}, options); + el[expando] = this; + var defaults = { + group: null, + sort: true, + disabled: false, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(el.nodeName) ? ">li" : ">*", + swapThreshold: 1, + invertSwap: false, + invertedSwapThreshold: null, + removeCloneOnHide: true, + direction: function direction() { + return _detectDirection(el, this.options); + }, + ghostClass: "sortable-ghost", + chosenClass: "sortable-chosen", + dragClass: "sortable-drag", + ignore: "a, img", + filter: null, + preventOnFilter: true, + animation: 0, + easing: null, + setData: function setData(dataTransfer, dragEl) { + dataTransfer.setData("Text", dragEl.textContent); + }, + dropBubble: false, + dragoverBubble: false, + dataIdAttr: "data-id", + delay: 0, + delayOnTouchOnly: false, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: false, + fallbackClass: "sortable-fallback", + fallbackOnBody: false, + fallbackTolerance: 0, + fallbackOffset: { + x: 0, + y: 0 + }, + supportPointer: Sortable.supportPointer !== false && "PointerEvent" in window && !Safari, + emptyInsertThreshold: 5 + }; + PluginManager.initializePlugins(this, el, defaults); + for (var name in defaults) { + !(name in options) && (options[name] = defaults[name]); + } + _prepareGroup(options); + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + this.nativeDraggable = options.forceFallback ? false : supportDraggable; + if (this.nativeDraggable) { + this.options.touchStartThreshold = 1; + } + if (options.supportPointer) { + on(el, "pointerdown", this._onTapStart); + } else { + on(el, "mousedown", this._onTapStart); + on(el, "touchstart", this._onTapStart); + } + if (this.nativeDraggable) { + on(el, "dragover", this); + on(el, "dragenter", this); + } + sortables.push(this.el); + options.store && options.store.get && this.sort(options.store.get(this) || []); + _extends(this, AnimationStateManager()); + } + Sortable.prototype = { + constructor: Sortable, + _isOutsideThisEl: function _isOutsideThisEl(target) { + if (!this.el.contains(target) && target !== this.el) { + lastTarget = null; + } + }, + _getDirection: function _getDirection(evt, target) { + return typeof this.options.direction === "function" ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + }, + _onTapStart: function _onTapStart(evt) { + if (!evt.cancelable) return; + var _this = this, el = this.el, options = this.options, preventOnFilter = options.preventOnFilter, type = evt.type, touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === "touch" && evt, target = (touch || evt).target, originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, filter = options.filter; + _saveInputCheckedState(el); + if (dragEl) { + return; + } + if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { + return; + } + if (originalTarget.isContentEditable) { + return; + } + if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === "SELECT") { + return; + } + target = closest(target, options.draggable, el, false); + if (target && target.animated) { + return; + } + if (lastDownEl === target) { + return; + } + oldIndex = index(target); + oldDraggableIndex = index(target, options.draggable); + if (typeof filter === "function") { + if (filter.call(this, evt, target, this)) { + _dispatchEvent({ + sortable: _this, + rootEl: originalTarget, + name: "filter", + targetEl: target, + toEl: el, + fromEl: el + }); + pluginEvent("filter", _this, { + evt + }); + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; + } + } else if (filter) { + filter = filter.split(",").some((function(criteria) { + criteria = closest(originalTarget, criteria.trim(), el, false); + if (criteria) { + _dispatchEvent({ + sortable: _this, + rootEl: criteria, + name: "filter", + targetEl: target, + fromEl: el, + toEl: el + }); + pluginEvent("filter", _this, { + evt + }); + return true; + } + })); + if (filter) { + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; + } + } + if (options.handle && !closest(originalTarget, options.handle, el, false)) { + return; + } + this._prepareDragStart(evt, touch, target); + }, + _prepareDragStart: function _prepareDragStart(evt, touch, target) { + var _this = this, el = _this.el, options = _this.options, ownerDocument = el.ownerDocument, dragStartFn; + if (target && !dragEl && target.parentNode === el) { + var dragRect = getRect(target); + rootEl = el; + dragEl = target; + parentEl = dragEl.parentNode; + nextEl = dragEl.nextSibling; + lastDownEl = target; + activeGroup = options.group; + Sortable.dragged = dragEl; + tapEvt = { + target: dragEl, + clientX: (touch || evt).clientX, + clientY: (touch || evt).clientY + }; + tapDistanceLeft = tapEvt.clientX - dragRect.left; + tapDistanceTop = tapEvt.clientY - dragRect.top; + this._lastX = (touch || evt).clientX; + this._lastY = (touch || evt).clientY; + dragEl.style["will-change"] = "all"; + dragStartFn = function dragStartFn() { + pluginEvent("delayEnded", _this, { + evt + }); + if (Sortable.eventCanceled) { + _this._onDrop(); + return; + } + _this._disableDelayedDragEvents(); + if (!FireFox && _this.nativeDraggable) { + dragEl.draggable = true; + } + _this._triggerDragStart(evt, touch); + _dispatchEvent({ + sortable: _this, + name: "choose", + originalEvent: evt + }); + toggleClass(dragEl, options.chosenClass, true); + }; + options.ignore.split(",").forEach((function(criteria) { + find(dragEl, criteria.trim(), _disableDraggable); + })); + on(ownerDocument, "dragover", nearestEmptyInsertDetectEvent); + on(ownerDocument, "mousemove", nearestEmptyInsertDetectEvent); + on(ownerDocument, "touchmove", nearestEmptyInsertDetectEvent); + on(ownerDocument, "mouseup", _this._onDrop); + on(ownerDocument, "touchend", _this._onDrop); + on(ownerDocument, "touchcancel", _this._onDrop); + if (FireFox && this.nativeDraggable) { + this.options.touchStartThreshold = 4; + dragEl.draggable = true; + } + pluginEvent("delayStart", this, { + evt + }); + if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { + if (Sortable.eventCanceled) { + this._onDrop(); + return; + } + on(ownerDocument, "mouseup", _this._disableDelayedDrag); + on(ownerDocument, "touchend", _this._disableDelayedDrag); + on(ownerDocument, "touchcancel", _this._disableDelayedDrag); + on(ownerDocument, "mousemove", _this._delayedDragTouchMoveHandler); + on(ownerDocument, "touchmove", _this._delayedDragTouchMoveHandler); + options.supportPointer && on(ownerDocument, "pointermove", _this._delayedDragTouchMoveHandler); + _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + } else { + dragStartFn(); + } + } + }, + _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(e) { + var touch = e.touches ? e.touches[0] : e; + if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { + this._disableDelayedDrag(); + } + }, + _disableDelayedDrag: function _disableDelayedDrag() { + dragEl && _disableDraggable(dragEl); + clearTimeout(this._dragStartTimer); + this._disableDelayedDragEvents(); + }, + _disableDelayedDragEvents: function _disableDelayedDragEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._disableDelayedDrag); + off(ownerDocument, "touchend", this._disableDelayedDrag); + off(ownerDocument, "touchcancel", this._disableDelayedDrag); + off(ownerDocument, "mousemove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "touchmove", this._delayedDragTouchMoveHandler); + off(ownerDocument, "pointermove", this._delayedDragTouchMoveHandler); + }, + _triggerDragStart: function _triggerDragStart(evt, touch) { + touch = touch || evt.pointerType == "touch" && evt; + if (!this.nativeDraggable || touch) { + if (this.options.supportPointer) { + on(document, "pointermove", this._onTouchMove); + } else if (touch) { + on(document, "touchmove", this._onTouchMove); + } else { + on(document, "mousemove", this._onTouchMove); + } + } else { + on(dragEl, "dragend", this); + on(rootEl, "dragstart", this._onDragStart); + } + try { + if (document.selection) { + _nextTick((function() { + document.selection.empty(); + })); + } else { + window.getSelection().removeAllRanges(); + } + } catch (err) {} + }, + _dragStarted: function _dragStarted(fallback, evt) { + awaitingDragStarted = false; + if (rootEl && dragEl) { + pluginEvent("dragStarted", this, { + evt + }); + if (this.nativeDraggable) { + on(document, "dragover", _checkOutsideTargetEl); + } + var options = this.options; + !fallback && toggleClass(dragEl, options.dragClass, false); + toggleClass(dragEl, options.ghostClass, true); + Sortable.active = this; + fallback && this._appendGhost(); + _dispatchEvent({ + sortable: this, + name: "start", + originalEvent: evt + }); + } else { + this._nulling(); + } + }, + _emulateDragOver: function _emulateDragOver() { + if (touchEvt) { + this._lastX = touchEvt.clientX; + this._lastY = touchEvt.clientY; + _hideGhostForTarget(); + var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + var parent = target; + while (target && target.shadowRoot) { + target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + if (target === parent) break; + parent = target; + } + dragEl.parentNode[expando]._isOutsideThisEl(target); + if (parent) { + do { + if (parent[expando]) { + var inserted = void 0; + inserted = parent[expando]._onDragOver({ + clientX: touchEvt.clientX, + clientY: touchEvt.clientY, + target, + rootEl: parent + }); + if (inserted && !this.options.dragoverBubble) { + break; + } + } + target = parent; + } while (parent = parent.parentNode); + } + _unhideGhostForTarget(); + } + }, + _onTouchMove: function _onTouchMove(evt) { + if (tapEvt) { + var options = this.options, fallbackTolerance = options.fallbackTolerance, fallbackOffset = options.fallbackOffset, touch = evt.touches ? evt.touches[0] : evt, ghostMatrix = ghostEl && matrix(ghostEl, true), scaleX = ghostEl && ghostMatrix && ghostMatrix.a, scaleY = ghostEl && ghostMatrix && ghostMatrix.d, relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); + if (!Sortable.active && !awaitingDragStarted) { + if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { + return; + } + this._onDragStart(evt, true); + } + if (ghostEl) { + if (ghostMatrix) { + ghostMatrix.e += dx - (lastDx || 0); + ghostMatrix.f += dy - (lastDy || 0); + } else { + ghostMatrix = { + a: 1, + b: 0, + c: 0, + d: 1, + e: dx, + f: dy + }; + } + var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); + css(ghostEl, "webkitTransform", cssMatrix); + css(ghostEl, "mozTransform", cssMatrix); + css(ghostEl, "msTransform", cssMatrix); + css(ghostEl, "transform", cssMatrix); + lastDx = dx; + lastDy = dy; + touchEvt = touch; + } + evt.cancelable && evt.preventDefault(); + } + }, + _appendGhost: function _appendGhost() { + if (!ghostEl) { + var container = this.options.fallbackOnBody ? document.body : rootEl, rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), options = this.options; + if (PositionGhostAbsolutely) { + ghostRelativeParent = container; + while (css(ghostRelativeParent, "position") === "static" && css(ghostRelativeParent, "transform") === "none" && ghostRelativeParent !== document) { + ghostRelativeParent = ghostRelativeParent.parentNode; + } + if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { + if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); + rect.top += ghostRelativeParent.scrollTop; + rect.left += ghostRelativeParent.scrollLeft; + } else { + ghostRelativeParent = getWindowScrollingElement(); + } + ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); + } + ghostEl = dragEl.cloneNode(true); + toggleClass(ghostEl, options.ghostClass, false); + toggleClass(ghostEl, options.fallbackClass, true); + toggleClass(ghostEl, options.dragClass, true); + css(ghostEl, "transition", ""); + css(ghostEl, "transform", ""); + css(ghostEl, "box-sizing", "border-box"); + css(ghostEl, "margin", 0); + css(ghostEl, "top", rect.top); + css(ghostEl, "left", rect.left); + css(ghostEl, "width", rect.width); + css(ghostEl, "height", rect.height); + css(ghostEl, "opacity", "0.8"); + css(ghostEl, "position", PositionGhostAbsolutely ? "absolute" : "fixed"); + css(ghostEl, "zIndex", "100000"); + css(ghostEl, "pointerEvents", "none"); + Sortable.ghost = ghostEl; + container.appendChild(ghostEl); + css(ghostEl, "transform-origin", tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + "% " + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + "%"); + } + }, + _onDragStart: function _onDragStart(evt, fallback) { + var _this = this; + var dataTransfer = evt.dataTransfer; + var options = _this.options; + pluginEvent("dragStart", this, { + evt + }); + if (Sortable.eventCanceled) { + this._onDrop(); + return; + } + pluginEvent("setupClone", this); + if (!Sortable.eventCanceled) { + cloneEl = clone(dragEl); + cloneEl.removeAttribute("id"); + cloneEl.draggable = false; + cloneEl.style["will-change"] = ""; + this._hideClone(); + toggleClass(cloneEl, this.options.chosenClass, false); + Sortable.clone = cloneEl; + } + _this.cloneId = _nextTick((function() { + pluginEvent("clone", _this); + if (Sortable.eventCanceled) return; + if (!_this.options.removeCloneOnHide) { + rootEl.insertBefore(cloneEl, dragEl); + } + _this._hideClone(); + _dispatchEvent({ + sortable: _this, + name: "clone" + }); + })); + !fallback && toggleClass(dragEl, options.dragClass, true); + if (fallback) { + ignoreNextClick = true; + _this._loopId = setInterval(_this._emulateDragOver, 50); + } else { + off(document, "mouseup", _this._onDrop); + off(document, "touchend", _this._onDrop); + off(document, "touchcancel", _this._onDrop); + if (dataTransfer) { + dataTransfer.effectAllowed = "move"; + options.setData && options.setData.call(_this, dataTransfer, dragEl); + } + on(document, "drop", _this); + css(dragEl, "transform", "translateZ(0)"); + } + awaitingDragStarted = true; + _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); + on(document, "selectstart", _this); + moved = true; + if (Safari) { + css(document.body, "user-select", "none"); + } + }, + _onDragOver: function _onDragOver(evt) { + var el = this.el, target = evt.target, dragRect, targetRect, revert, options = this.options, group = options.group, activeSortable = Sortable.active, isOwner = activeGroup === group, canSort = options.sort, fromSortable = putSortable || activeSortable, vertical, _this = this, completedFired = false; + if (_silent) return; + function dragOverEvent(name, extra) { + pluginEvent(name, _this, _objectSpread2({ + evt, + isOwner, + axis: vertical ? "vertical" : "horizontal", + revert, + dragRect, + targetRect, + canSort, + fromSortable, + target, + completed, + onMove: function onMove(target, after) { + return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after); + }, + changed + }, extra)); + } + function capture() { + dragOverEvent("dragOverAnimationCapture"); + _this.captureAnimationState(); + if (_this !== fromSortable) { + fromSortable.captureAnimationState(); + } + } + function completed(insertion) { + dragOverEvent("dragOverCompleted", { + insertion + }); + if (insertion) { + if (isOwner) { + activeSortable._hideClone(); + } else { + activeSortable._showClone(_this); + } + if (_this !== fromSortable) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); + toggleClass(dragEl, options.ghostClass, true); + } + if (putSortable !== _this && _this !== Sortable.active) { + putSortable = _this; + } else if (_this === Sortable.active && putSortable) { + putSortable = null; + } + if (fromSortable === _this) { + _this._ignoreWhileAnimating = target; + } + _this.animateAll((function() { + dragOverEvent("dragOverAnimationComplete"); + _this._ignoreWhileAnimating = null; + })); + if (_this !== fromSortable) { + fromSortable.animateAll(); + fromSortable._ignoreWhileAnimating = null; + } + } + if (target === dragEl && !dragEl.animated || target === el && !target.animated) { + lastTarget = null; + } + if (!options.dragoverBubble && !evt.rootEl && target !== document) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + !insertion && nearestEmptyInsertDetectEvent(evt); + } + !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); + return completedFired = true; + } + function changed() { + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + _dispatchEvent({ + sortable: _this, + name: "change", + toEl: el, + newIndex, + newDraggableIndex, + originalEvent: evt + }); + } + if (evt.preventDefault !== void 0) { + evt.cancelable && evt.preventDefault(); + } + target = closest(target, options.draggable, el, true); + dragOverEvent("dragOver"); + if (Sortable.eventCanceled) return completedFired; + if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { + return completed(false); + } + ignoreNextClick = false; + if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { + vertical = this._getDirection(evt, target) === "vertical"; + dragRect = getRect(dragEl); + dragOverEvent("dragOverValid"); + if (Sortable.eventCanceled) return completedFired; + if (revert) { + parentEl = rootEl; + capture(); + this._hideClone(); + dragOverEvent("revert"); + if (!Sortable.eventCanceled) { + if (nextEl) { + rootEl.insertBefore(dragEl, nextEl); + } else { + rootEl.appendChild(dragEl); + } + } + return completed(true); + } + var elLastChild = lastChild(el, options.draggable); + if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { + if (elLastChild === dragEl) { + return completed(false); + } + if (elLastChild && el === evt.target) { + target = elLastChild; + } + if (target) { + targetRect = getRect(target); + } + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { + capture(); + if (elLastChild && elLastChild.nextSibling) { + el.insertBefore(dragEl, elLastChild.nextSibling); + } else { + el.appendChild(dragEl); + } + parentEl = el; + changed(); + return completed(true); + } + } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) { + var firstChild = getChild(el, 0, options, true); + if (firstChild === dragEl) { + return completed(false); + } + target = firstChild; + targetRect = getRect(target); + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) { + capture(); + el.insertBefore(dragEl, firstChild); + parentEl = el; + changed(); + return completed(true); + } + } else if (target.parentNode === el) { + targetRect = getRect(target); + var direction = 0, targetBeforeFirstSwap, differentLevel = dragEl.parentNode !== el, differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), side1 = vertical ? "top" : "left", scrolledPastTop = isScrolledPast(target, "top", "top") || isScrolledPast(dragEl, "top", "top"), scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; + if (lastTarget !== target) { + targetBeforeFirstSwap = targetRect[side1]; + pastFirstInvertThresh = false; + isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; + } + direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); + var sibling; + if (direction !== 0) { + var dragIndex = index(dragEl); + do { + dragIndex -= direction; + sibling = parentEl.children[dragIndex]; + } while (sibling && (css(sibling, "display") === "none" || sibling === ghostEl)); + } + if (direction === 0 || sibling === target) { + return completed(false); + } + lastTarget = target; + lastDirection = direction; + var nextSibling = target.nextElementSibling, after = false; + after = direction === 1; + var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); + if (moveVector !== false) { + if (moveVector === 1 || moveVector === -1) { + after = moveVector === 1; + } + _silent = true; + setTimeout(_unsilent, 30); + capture(); + if (after && !nextSibling) { + el.appendChild(dragEl); + } else { + target.parentNode.insertBefore(dragEl, after ? nextSibling : target); + } + if (scrolledPastTop) { + scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); + } + parentEl = dragEl.parentNode; + if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) { + targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); + } + changed(); + return completed(true); + } + } + if (el.contains(dragEl)) { + return completed(false); + } + } + return false; + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function _offMoveEvents() { + off(document, "mousemove", this._onTouchMove); + off(document, "touchmove", this._onTouchMove); + off(document, "pointermove", this._onTouchMove); + off(document, "dragover", nearestEmptyInsertDetectEvent); + off(document, "mousemove", nearestEmptyInsertDetectEvent); + off(document, "touchmove", nearestEmptyInsertDetectEvent); + }, + _offUpEvents: function _offUpEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, "mouseup", this._onDrop); + off(ownerDocument, "touchend", this._onDrop); + off(ownerDocument, "pointerup", this._onDrop); + off(ownerDocument, "touchcancel", this._onDrop); + off(document, "selectstart", this); + }, + _onDrop: function _onDrop(evt) { + var el = this.el, options = this.options; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + pluginEvent("drop", this, { + evt + }); + parentEl = dragEl && dragEl.parentNode; + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + if (Sortable.eventCanceled) { + this._nulling(); + return; + } + awaitingDragStarted = false; + isCircumstantialInvert = false; + pastFirstInvertThresh = false; + clearInterval(this._loopId); + clearTimeout(this._dragStartTimer); + _cancelNextTick(this.cloneId); + _cancelNextTick(this._dragStartId); + if (this.nativeDraggable) { + off(document, "drop", this); + off(el, "dragstart", this._onDragStart); + } + this._offMoveEvents(); + this._offUpEvents(); + if (Safari) { + css(document.body, "user-select", ""); + } + css(dragEl, "transform", ""); + if (evt) { + if (moved) { + evt.cancelable && evt.preventDefault(); + !options.dropBubble && evt.stopPropagation(); + } + ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== "clone") { + cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); + } + if (dragEl) { + if (this.nativeDraggable) { + off(dragEl, "dragend", this); + } + _disableDraggable(dragEl); + dragEl.style["will-change"] = ""; + if (moved && !awaitingDragStarted) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); + } + toggleClass(dragEl, this.options.chosenClass, false); + _dispatchEvent({ + sortable: this, + name: "unchoose", + toEl: parentEl, + newIndex: null, + newDraggableIndex: null, + originalEvent: evt + }); + if (rootEl !== parentEl) { + if (newIndex >= 0) { + _dispatchEvent({ + rootEl: parentEl, + name: "add", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "remove", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + rootEl: parentEl, + name: "sort", + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); + } + putSortable && putSortable.save(); + } else { + if (newIndex !== oldIndex) { + if (newIndex >= 0) { + _dispatchEvent({ + sortable: this, + name: "update", + toEl: parentEl, + originalEvent: evt + }); + _dispatchEvent({ + sortable: this, + name: "sort", + toEl: parentEl, + originalEvent: evt + }); + } + } + } + if (Sortable.active) { + if (newIndex == null || newIndex === -1) { + newIndex = oldIndex; + newDraggableIndex = oldDraggableIndex; + } + _dispatchEvent({ + sortable: this, + name: "end", + toEl: parentEl, + originalEvent: evt + }); + this.save(); + } + } + } + this._nulling(); + }, + _nulling: function _nulling() { + pluginEvent("nulling", this); + rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; + savedInputChecked.forEach((function(el) { + el.checked = true; + })); + savedInputChecked.length = lastDx = lastDy = 0; + }, + handleEvent: function handleEvent(evt) { + switch (evt.type) { + case "drop": + case "dragend": + this._onDrop(evt); + break; + + case "dragenter": + case "dragover": + if (dragEl) { + this._onDragOver(evt); + _globalDragOver(evt); + } + break; + + case "selectstart": + evt.preventDefault(); + break; + } + }, + toArray: function toArray() { + var order = [], el, children = this.el.children, i = 0, n = children.length, options = this.options; + for (;i < n; i++) { + el = children[i]; + if (closest(el, options.draggable, this.el, false)) { + order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); + } + } + return order; + }, + sort: function sort(order, useAnimation) { + var items = {}, rootEl = this.el; + this.toArray().forEach((function(id, i) { + var el = rootEl.children[i]; + if (closest(el, this.options.draggable, rootEl, false)) { + items[id] = el; + } + }), this); + useAnimation && this.captureAnimationState(); + order.forEach((function(id) { + if (items[id]) { + rootEl.removeChild(items[id]); + rootEl.appendChild(items[id]); + } + })); + useAnimation && this.animateAll(); + }, + save: function save() { + var store = this.options.store; + store && store.set && store.set(this); + }, + closest: function closest$1(el, selector) { + return closest(el, selector || this.options.draggable, this.el, false); + }, + option: function option(name, value) { + var options = this.options; + if (value === void 0) { + return options[name]; + } else { + var modifiedValue = PluginManager.modifyOption(this, name, value); + if (typeof modifiedValue !== "undefined") { + options[name] = modifiedValue; + } else { + options[name] = value; + } + if (name === "group") { + _prepareGroup(options); + } + } + }, + destroy: function destroy() { + pluginEvent("destroy", this); + var el = this.el; + el[expando] = null; + off(el, "mousedown", this._onTapStart); + off(el, "touchstart", this._onTapStart); + off(el, "pointerdown", this._onTapStart); + if (this.nativeDraggable) { + off(el, "dragover", this); + off(el, "dragenter", this); + } + Array.prototype.forEach.call(el.querySelectorAll("[draggable]"), (function(el) { + el.removeAttribute("draggable"); + })); + this._onDrop(); + this._disableDelayedDragEvents(); + sortables.splice(sortables.indexOf(this.el), 1); + this.el = el = null; + }, + _hideClone: function _hideClone() { + if (!cloneHidden) { + pluginEvent("hideClone", this); + if (Sortable.eventCanceled) return; + css(cloneEl, "display", "none"); + if (this.options.removeCloneOnHide && cloneEl.parentNode) { + cloneEl.parentNode.removeChild(cloneEl); + } + cloneHidden = true; + } + }, + _showClone: function _showClone(putSortable) { + if (putSortable.lastPutMode !== "clone") { + this._hideClone(); + return; + } + if (cloneHidden) { + pluginEvent("showClone", this); + if (Sortable.eventCanceled) return; + if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { + rootEl.insertBefore(cloneEl, dragEl); + } else if (nextEl) { + rootEl.insertBefore(cloneEl, nextEl); + } else { + rootEl.appendChild(cloneEl); + } + if (this.options.group.revertClone) { + this.animate(dragEl, cloneEl); + } + css(cloneEl, "display", ""); + cloneHidden = false; + } + } + }; + function _globalDragOver(evt) { + if (evt.dataTransfer) { + evt.dataTransfer.dropEffect = "move"; + } + evt.cancelable && evt.preventDefault(); + } + function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { + var evt, sortable = fromEl[expando], onMoveFn = sortable.options.onMove, retVal; + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent("move", { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent("Event"); + evt.initEvent("move", true, true); + } + evt.to = toEl; + evt.from = fromEl; + evt.dragged = dragEl; + evt.draggedRect = dragRect; + evt.related = targetEl || toEl; + evt.relatedRect = targetRect || getRect(toEl); + evt.willInsertAfter = willInsertAfter; + evt.originalEvent = originalEvent; + fromEl.dispatchEvent(evt); + if (onMoveFn) { + retVal = onMoveFn.call(sortable, evt, originalEvent); + } + return retVal; + } + function _disableDraggable(el) { + el.draggable = false; + } + function _unsilent() { + _silent = false; + } + function _ghostIsFirst(evt, vertical, sortable) { + var rect = getRect(getChild(sortable.el, 0, sortable.options, true)); + var spacer = 10; + return vertical ? evt.clientX < rect.left - spacer || evt.clientY < rect.top && evt.clientX < rect.right : evt.clientY < rect.top - spacer || evt.clientY < rect.bottom && evt.clientX < rect.left; + } + function _ghostIsLast(evt, vertical, sortable) { + var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); + var spacer = 10; + return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; + } + function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { + var mouseOnAxis = vertical ? evt.clientY : evt.clientX, targetLength = vertical ? targetRect.height : targetRect.width, targetS1 = vertical ? targetRect.top : targetRect.left, targetS2 = vertical ? targetRect.bottom : targetRect.right, invert = false; + if (!invertSwap) { + if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { + if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { + pastFirstInvertThresh = true; + } + if (!pastFirstInvertThresh) { + if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance : mouseOnAxis > targetS2 - targetMoveDistance) { + return -lastDirection; + } + } else { + invert = true; + } + } else { + if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { + return _getInsertDirection(target); + } + } + } + invert = invert || invertSwap; + if (invert) { + if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { + return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; + } + } + return 0; + } + function _getInsertDirection(target) { + if (index(dragEl) < index(target)) { + return 1; + } else { + return -1; + } + } + function _generateId(el) { + var str = el.tagName + el.className + el.src + el.href + el.textContent, i = str.length, sum = 0; + while (i--) { + sum += str.charCodeAt(i); + } + return sum.toString(36); + } + function _saveInputCheckedState(root) { + savedInputChecked.length = 0; + var inputs = root.getElementsByTagName("input"); + var idx = inputs.length; + while (idx--) { + var el = inputs[idx]; + el.checked && savedInputChecked.push(el); + } + } + function _nextTick(fn) { + return setTimeout(fn, 0); + } + function _cancelNextTick(id) { + return clearTimeout(id); + } + if (documentExists) { + on(document, "touchmove", (function(evt) { + if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { + evt.preventDefault(); + } + })); + } + Sortable.utils = { + on, + off, + css, + find, + is: function is(el, selector) { + return !!closest(el, selector, el, false); + }, + extend, + throttle, + closest, + toggleClass, + clone, + index, + nextTick: _nextTick, + cancelNextTick: _cancelNextTick, + detectDirection: _detectDirection, + getChild + }; + Sortable.get = function(element) { + return element[expando]; + }; + Sortable.mount = function() { + for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) { + plugins[_key] = arguments[_key]; + } + if (plugins[0].constructor === Array) plugins = plugins[0]; + plugins.forEach((function(plugin) { + if (!plugin.prototype || !plugin.prototype.constructor) { + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); + } + if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils); + PluginManager.mount(plugin); + })); + }; + Sortable.create = function(el, options) { + return new Sortable(el, options); + }; + Sortable.version = version; + var autoScrolls = [], scrollEl, scrollRootEl, scrolling = false, lastAutoScrollX, lastAutoScrollY, touchEvt$1, pointerElemChangedInterval; + function AutoScrollPlugin() { + function AutoScroll() { + this.defaults = { + scroll: true, + forceAutoScrollFallback: false, + scrollSensitivity: 30, + scrollSpeed: 10, + bubbleScroll: true + }; + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + } + AutoScroll.prototype = { + dragStarted: function dragStarted(_ref) { + var originalEvent = _ref.originalEvent; + if (this.sortable.nativeDraggable) { + on(document, "dragover", this._handleAutoScroll); + } else { + if (this.options.supportPointer) { + on(document, "pointermove", this._handleFallbackAutoScroll); + } else if (originalEvent.touches) { + on(document, "touchmove", this._handleFallbackAutoScroll); + } else { + on(document, "mousemove", this._handleFallbackAutoScroll); + } + } + }, + dragOverCompleted: function dragOverCompleted(_ref2) { + var originalEvent = _ref2.originalEvent; + if (!this.options.dragOverBubble && !originalEvent.rootEl) { + this._handleAutoScroll(originalEvent); + } + }, + drop: function drop() { + if (this.sortable.nativeDraggable) { + off(document, "dragover", this._handleAutoScroll); + } else { + off(document, "pointermove", this._handleFallbackAutoScroll); + off(document, "touchmove", this._handleFallbackAutoScroll); + off(document, "mousemove", this._handleFallbackAutoScroll); + } + clearPointerElemChangedInterval(); + clearAutoScrolls(); + cancelThrottle(); + }, + nulling: function nulling() { + touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; + autoScrolls.length = 0; + }, + _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { + this._handleAutoScroll(evt, true); + }, + _handleAutoScroll: function _handleAutoScroll(evt, fallback) { + var _this = this; + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, elem = document.elementFromPoint(x, y); + touchEvt$1 = evt; + if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) { + autoScroll(evt, this.options, elem, fallback); + var ogElemScroller = getParentAutoScrollElement(elem, true); + if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { + pointerElemChangedInterval && clearPointerElemChangedInterval(); + pointerElemChangedInterval = setInterval((function() { + var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); + if (newElem !== ogElemScroller) { + ogElemScroller = newElem; + clearAutoScrolls(); + } + autoScroll(evt, _this.options, newElem, fallback); + }), 10); + lastAutoScrollX = x; + lastAutoScrollY = y; + } + } else { + if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { + clearAutoScrolls(); + return; + } + autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); + } + } + }; + return _extends(AutoScroll, { + pluginName: "scroll", + initializeByDefault: true + }); + } + function clearAutoScrolls() { + autoScrolls.forEach((function(autoScroll) { + clearInterval(autoScroll.pid); + })); + autoScrolls = []; + } + function clearPointerElemChangedInterval() { + clearInterval(pointerElemChangedInterval); + } + var autoScroll = throttle((function(evt, options, rootEl, isFallback) { + if (!options.scroll) return; + var x = (evt.touches ? evt.touches[0] : evt).clientX, y = (evt.touches ? evt.touches[0] : evt).clientY, sens = options.scrollSensitivity, speed = options.scrollSpeed, winScroller = getWindowScrollingElement(); + var scrollThisInstance = false, scrollCustomFn; + if (scrollRootEl !== rootEl) { + scrollRootEl = rootEl; + clearAutoScrolls(); + scrollEl = options.scroll; + scrollCustomFn = options.scrollFn; + if (scrollEl === true) { + scrollEl = getParentAutoScrollElement(rootEl, true); + } + } + var layersOut = 0; + var currentParent = scrollEl; + do { + var el = currentParent, rect = getRect(el), top = rect.top, bottom = rect.bottom, left = rect.left, right = rect.right, width = rect.width, height = rect.height, canScrollX = void 0, canScrollY = void 0, scrollWidth = el.scrollWidth, scrollHeight = el.scrollHeight, elCSS = css(el), scrollPosX = el.scrollLeft, scrollPosY = el.scrollTop; + if (el === winScroller) { + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll" || elCSS.overflowX === "visible"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll" || elCSS.overflowY === "visible"); + } else { + canScrollX = width < scrollWidth && (elCSS.overflowX === "auto" || elCSS.overflowX === "scroll"); + canScrollY = height < scrollHeight && (elCSS.overflowY === "auto" || elCSS.overflowY === "scroll"); + } + var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); + var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); + if (!autoScrolls[layersOut]) { + for (var i = 0; i <= layersOut; i++) { + if (!autoScrolls[i]) { + autoScrolls[i] = {}; + } + } + } + if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { + autoScrolls[layersOut].el = el; + autoScrolls[layersOut].vx = vx; + autoScrolls[layersOut].vy = vy; + clearInterval(autoScrolls[layersOut].pid); + if (vx != 0 || vy != 0) { + scrollThisInstance = true; + autoScrolls[layersOut].pid = setInterval(function() { + if (isFallback && this.layer === 0) { + Sortable.active._onTouchMove(touchEvt$1); + } + var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; + var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; + if (typeof scrollCustomFn === "function") { + if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== "continue") { + return; + } + } + scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); + }.bind({ + layer: layersOut + }), 24); + } + } + layersOut++; + } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); + scrolling = scrollThisInstance; + }), 30); + var drop = function drop(_ref) { + var originalEvent = _ref.originalEvent, putSortable = _ref.putSortable, dragEl = _ref.dragEl, activeSortable = _ref.activeSortable, dispatchSortableEvent = _ref.dispatchSortableEvent, hideGhostForTarget = _ref.hideGhostForTarget, unhideGhostForTarget = _ref.unhideGhostForTarget; + if (!originalEvent) return; + var toSortable = putSortable || activeSortable; + hideGhostForTarget(); + var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; + var target = document.elementFromPoint(touch.clientX, touch.clientY); + unhideGhostForTarget(); + if (toSortable && !toSortable.el.contains(target)) { + dispatchSortableEvent("spill"); + this.onSpill({ + dragEl, + putSortable + }); + } + }; + function Revert() {} + Revert.prototype = { + startIndex: null, + dragStart: function dragStart(_ref2) { + var oldDraggableIndex = _ref2.oldDraggableIndex; + this.startIndex = oldDraggableIndex; + }, + onSpill: function onSpill(_ref3) { + var dragEl = _ref3.dragEl, putSortable = _ref3.putSortable; + this.sortable.captureAnimationState(); + if (putSortable) { + putSortable.captureAnimationState(); + } + var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); + if (nextSibling) { + this.sortable.el.insertBefore(dragEl, nextSibling); + } else { + this.sortable.el.appendChild(dragEl); + } + this.sortable.animateAll(); + if (putSortable) { + putSortable.animateAll(); + } + }, + drop + }; + _extends(Revert, { + pluginName: "revertOnSpill" + }); + function Remove() {} + Remove.prototype = { + onSpill: function onSpill(_ref4) { + var dragEl = _ref4.dragEl, putSortable = _ref4.putSortable; + var parentSortable = putSortable || this.sortable; + parentSortable.captureAnimationState(); + dragEl.parentNode && dragEl.parentNode.removeChild(dragEl); + parentSortable.animateAll(); + }, + drop + }; + _extends(Remove, { + pluginName: "removeOnSpill" + }); + var lastSwapEl; + function SwapPlugin() { + function Swap() { + this.defaults = { + swapClass: "sortable-swap-highlight" + }; + } + Swap.prototype = { + dragStart: function dragStart(_ref) { + var dragEl = _ref.dragEl; + lastSwapEl = dragEl; + }, + dragOverValid: function dragOverValid(_ref2) { + var completed = _ref2.completed, target = _ref2.target, onMove = _ref2.onMove, activeSortable = _ref2.activeSortable, changed = _ref2.changed, cancel = _ref2.cancel; + if (!activeSortable.options.swap) return; + var el = this.sortable.el, options = this.options; + if (target && target !== el) { + var prevSwapEl = lastSwapEl; + if (onMove(target) !== false) { + toggleClass(target, options.swapClass, true); + lastSwapEl = target; + } else { + lastSwapEl = null; + } + if (prevSwapEl && prevSwapEl !== lastSwapEl) { + toggleClass(prevSwapEl, options.swapClass, false); + } + } + changed(); + completed(true); + cancel(); + }, + drop: function drop(_ref3) { + var activeSortable = _ref3.activeSortable, putSortable = _ref3.putSortable, dragEl = _ref3.dragEl; + var toSortable = putSortable || this.sortable; + var options = this.options; + lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false); + if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) { + if (dragEl !== lastSwapEl) { + toSortable.captureAnimationState(); + if (toSortable !== activeSortable) activeSortable.captureAnimationState(); + swapNodes(dragEl, lastSwapEl); + toSortable.animateAll(); + if (toSortable !== activeSortable) activeSortable.animateAll(); + } + } + }, + nulling: function nulling() { + lastSwapEl = null; + } + }; + return _extends(Swap, { + pluginName: "swap", + eventProperties: function eventProperties() { + return { + swapItem: lastSwapEl + }; + } + }); + } + function swapNodes(n1, n2) { + var p1 = n1.parentNode, p2 = n2.parentNode, i1, i2; + if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return; + i1 = index(n1); + i2 = index(n2); + if (p1.isEqualNode(p2) && i1 < i2) { + i2++; + } + p1.insertBefore(n2, p1.children[i1]); + p2.insertBefore(n1, p2.children[i2]); + } + var multiDragElements = [], multiDragClones = [], lastMultiDragSelect, multiDragSortable, initialFolding = false, folding = false, dragStarted = false, dragEl$1, clonesFromRect, clonesHidden; + function MultiDragPlugin() { + function MultiDrag(sortable) { + for (var fn in this) { + if (fn.charAt(0) === "_" && typeof this[fn] === "function") { + this[fn] = this[fn].bind(this); + } + } + if (!sortable.options.avoidImplicitDeselect) { + if (sortable.options.supportPointer) { + on(document, "pointerup", this._deselectMultiDrag); + } else { + on(document, "mouseup", this._deselectMultiDrag); + on(document, "touchend", this._deselectMultiDrag); + } + } + on(document, "keydown", this._checkKeyDown); + on(document, "keyup", this._checkKeyUp); + this.defaults = { + selectedClass: "sortable-selected", + multiDragKey: null, + avoidImplicitDeselect: false, + setData: function setData(dataTransfer, dragEl) { + var data = ""; + if (multiDragElements.length && multiDragSortable === sortable) { + multiDragElements.forEach((function(multiDragElement, i) { + data += (!i ? "" : ", ") + multiDragElement.textContent; + })); + } else { + data = dragEl.textContent; + } + dataTransfer.setData("Text", data); + } + }; + } + MultiDrag.prototype = { + multiDragKeyDown: false, + isMultiDrag: false, + delayStartGlobal: function delayStartGlobal(_ref) { + var dragged = _ref.dragEl; + dragEl$1 = dragged; + }, + delayEnded: function delayEnded() { + this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1); + }, + setupClone: function setupClone(_ref2) { + var sortable = _ref2.sortable, cancel = _ref2.cancel; + if (!this.isMultiDrag) return; + for (var i = 0; i < multiDragElements.length; i++) { + multiDragClones.push(clone(multiDragElements[i])); + multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex; + multiDragClones[i].draggable = false; + multiDragClones[i].style["will-change"] = ""; + toggleClass(multiDragClones[i], this.options.selectedClass, false); + multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false); + } + sortable._hideClone(); + cancel(); + }, + clone: function clone(_ref3) { + var sortable = _ref3.sortable, rootEl = _ref3.rootEl, dispatchSortableEvent = _ref3.dispatchSortableEvent, cancel = _ref3.cancel; + if (!this.isMultiDrag) return; + if (!this.options.removeCloneOnHide) { + if (multiDragElements.length && multiDragSortable === sortable) { + insertMultiDragClones(true, rootEl); + dispatchSortableEvent("clone"); + cancel(); + } + } + }, + showClone: function showClone(_ref4) { + var cloneNowShown = _ref4.cloneNowShown, rootEl = _ref4.rootEl, cancel = _ref4.cancel; + if (!this.isMultiDrag) return; + insertMultiDragClones(false, rootEl); + multiDragClones.forEach((function(clone) { + css(clone, "display", ""); + })); + cloneNowShown(); + clonesHidden = false; + cancel(); + }, + hideClone: function hideClone(_ref5) { + var _this = this; + var sortable = _ref5.sortable, cloneNowHidden = _ref5.cloneNowHidden, cancel = _ref5.cancel; + if (!this.isMultiDrag) return; + multiDragClones.forEach((function(clone) { + css(clone, "display", "none"); + if (_this.options.removeCloneOnHide && clone.parentNode) { + clone.parentNode.removeChild(clone); + } + })); + cloneNowHidden(); + clonesHidden = true; + cancel(); + }, + dragStartGlobal: function dragStartGlobal(_ref6) { + var sortable = _ref6.sortable; + if (!this.isMultiDrag && multiDragSortable) { + multiDragSortable.multiDrag._deselectMultiDrag(); + } + multiDragElements.forEach((function(multiDragElement) { + multiDragElement.sortableIndex = index(multiDragElement); + })); + multiDragElements = multiDragElements.sort((function(a, b) { + return a.sortableIndex - b.sortableIndex; + })); + dragStarted = true; + }, + dragStarted: function dragStarted(_ref7) { + var _this2 = this; + var sortable = _ref7.sortable; + if (!this.isMultiDrag) return; + if (this.options.sort) { + sortable.captureAnimationState(); + if (this.options.animation) { + multiDragElements.forEach((function(multiDragElement) { + if (multiDragElement === dragEl$1) return; + css(multiDragElement, "position", "absolute"); + })); + var dragRect = getRect(dragEl$1, false, true, true); + multiDragElements.forEach((function(multiDragElement) { + if (multiDragElement === dragEl$1) return; + setRect(multiDragElement, dragRect); + })); + folding = true; + initialFolding = true; + } + } + sortable.animateAll((function() { + folding = false; + initialFolding = false; + if (_this2.options.animation) { + multiDragElements.forEach((function(multiDragElement) { + unsetRect(multiDragElement); + })); + } + if (_this2.options.sort) { + removeMultiDragElements(); + } + })); + }, + dragOver: function dragOver(_ref8) { + var target = _ref8.target, completed = _ref8.completed, cancel = _ref8.cancel; + if (folding && ~multiDragElements.indexOf(target)) { + completed(false); + cancel(); + } + }, + revert: function revert(_ref9) { + var fromSortable = _ref9.fromSortable, rootEl = _ref9.rootEl, sortable = _ref9.sortable, dragRect = _ref9.dragRect; + if (multiDragElements.length > 1) { + multiDragElements.forEach((function(multiDragElement) { + sortable.addAnimationState({ + target: multiDragElement, + rect: folding ? getRect(multiDragElement) : dragRect + }); + unsetRect(multiDragElement); + multiDragElement.fromRect = dragRect; + fromSortable.removeAnimationState(multiDragElement); + })); + folding = false; + insertMultiDragElements(!this.options.removeCloneOnHide, rootEl); + } + }, + dragOverCompleted: function dragOverCompleted(_ref10) { + var sortable = _ref10.sortable, isOwner = _ref10.isOwner, insertion = _ref10.insertion, activeSortable = _ref10.activeSortable, parentEl = _ref10.parentEl, putSortable = _ref10.putSortable; + var options = this.options; + if (insertion) { + if (isOwner) { + activeSortable._hideClone(); + } + initialFolding = false; + if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) { + var dragRectAbsolute = getRect(dragEl$1, false, true, true); + multiDragElements.forEach((function(multiDragElement) { + if (multiDragElement === dragEl$1) return; + setRect(multiDragElement, dragRectAbsolute); + parentEl.appendChild(multiDragElement); + })); + folding = true; + } + if (!isOwner) { + if (!folding) { + removeMultiDragElements(); + } + if (multiDragElements.length > 1) { + var clonesHiddenBefore = clonesHidden; + activeSortable._showClone(sortable); + if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) { + multiDragClones.forEach((function(clone) { + activeSortable.addAnimationState({ + target: clone, + rect: clonesFromRect + }); + clone.fromRect = clonesFromRect; + clone.thisAnimationDuration = null; + })); + } + } else { + activeSortable._showClone(sortable); + } + } + } + }, + dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) { + var dragRect = _ref11.dragRect, isOwner = _ref11.isOwner, activeSortable = _ref11.activeSortable; + multiDragElements.forEach((function(multiDragElement) { + multiDragElement.thisAnimationDuration = null; + })); + if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) { + clonesFromRect = _extends({}, dragRect); + var dragMatrix = matrix(dragEl$1, true); + clonesFromRect.top -= dragMatrix.f; + clonesFromRect.left -= dragMatrix.e; + } + }, + dragOverAnimationComplete: function dragOverAnimationComplete() { + if (folding) { + folding = false; + removeMultiDragElements(); + } + }, + drop: function drop(_ref12) { + var evt = _ref12.originalEvent, rootEl = _ref12.rootEl, parentEl = _ref12.parentEl, sortable = _ref12.sortable, dispatchSortableEvent = _ref12.dispatchSortableEvent, oldIndex = _ref12.oldIndex, putSortable = _ref12.putSortable; + var toSortable = putSortable || this.sortable; + if (!evt) return; + var options = this.options, children = parentEl.children; + if (!dragStarted) { + if (options.multiDragKey && !this.multiDragKeyDown) { + this._deselectMultiDrag(); + } + toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1)); + if (!~multiDragElements.indexOf(dragEl$1)) { + multiDragElements.push(dragEl$1); + dispatchEvent({ + sortable, + rootEl, + name: "select", + targetEl: dragEl$1, + originalEvent: evt + }); + if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) { + var lastIndex = index(lastMultiDragSelect), currentIndex = index(dragEl$1); + if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) { + var n, i; + if (currentIndex > lastIndex) { + i = lastIndex; + n = currentIndex; + } else { + i = currentIndex; + n = lastIndex + 1; + } + for (;i < n; i++) { + if (~multiDragElements.indexOf(children[i])) continue; + toggleClass(children[i], options.selectedClass, true); + multiDragElements.push(children[i]); + dispatchEvent({ + sortable, + rootEl, + name: "select", + targetEl: children[i], + originalEvent: evt + }); + } + } + } else { + lastMultiDragSelect = dragEl$1; + } + multiDragSortable = toSortable; + } else { + multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1); + lastMultiDragSelect = null; + dispatchEvent({ + sortable, + rootEl, + name: "deselect", + targetEl: dragEl$1, + originalEvent: evt + }); + } + } + if (dragStarted && this.isMultiDrag) { + folding = false; + if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) { + var dragRect = getRect(dragEl$1), multiDragIndex = index(dragEl$1, ":not(." + this.options.selectedClass + ")"); + if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null; + toSortable.captureAnimationState(); + if (!initialFolding) { + if (options.animation) { + dragEl$1.fromRect = dragRect; + multiDragElements.forEach((function(multiDragElement) { + multiDragElement.thisAnimationDuration = null; + if (multiDragElement !== dragEl$1) { + var rect = folding ? getRect(multiDragElement) : dragRect; + multiDragElement.fromRect = rect; + toSortable.addAnimationState({ + target: multiDragElement, + rect + }); + } + })); + } + removeMultiDragElements(); + multiDragElements.forEach((function(multiDragElement) { + if (children[multiDragIndex]) { + parentEl.insertBefore(multiDragElement, children[multiDragIndex]); + } else { + parentEl.appendChild(multiDragElement); + } + multiDragIndex++; + })); + if (oldIndex === index(dragEl$1)) { + var update = false; + multiDragElements.forEach((function(multiDragElement) { + if (multiDragElement.sortableIndex !== index(multiDragElement)) { + update = true; + return; + } + })); + if (update) { + dispatchSortableEvent("update"); + } + } + } + multiDragElements.forEach((function(multiDragElement) { + unsetRect(multiDragElement); + })); + toSortable.animateAll(); + } + multiDragSortable = toSortable; + } + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== "clone") { + multiDragClones.forEach((function(clone) { + clone.parentNode && clone.parentNode.removeChild(clone); + })); + } + }, + nullingGlobal: function nullingGlobal() { + this.isMultiDrag = dragStarted = false; + multiDragClones.length = 0; + }, + destroyGlobal: function destroyGlobal() { + this._deselectMultiDrag(); + off(document, "pointerup", this._deselectMultiDrag); + off(document, "mouseup", this._deselectMultiDrag); + off(document, "touchend", this._deselectMultiDrag); + off(document, "keydown", this._checkKeyDown); + off(document, "keyup", this._checkKeyUp); + }, + _deselectMultiDrag: function _deselectMultiDrag(evt) { + if (typeof dragStarted !== "undefined" && dragStarted) return; + if (multiDragSortable !== this.sortable) return; + if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; + if (evt && evt.button !== 0) return; + while (multiDragElements.length) { + var el = multiDragElements[0]; + toggleClass(el, this.options.selectedClass, false); + multiDragElements.shift(); + dispatchEvent({ + sortable: this.sortable, + rootEl: this.sortable.el, + name: "deselect", + targetEl: el, + originalEvent: evt + }); + } + }, + _checkKeyDown: function _checkKeyDown(evt) { + if (evt.key === this.options.multiDragKey) { + this.multiDragKeyDown = true; + } + }, + _checkKeyUp: function _checkKeyUp(evt) { + if (evt.key === this.options.multiDragKey) { + this.multiDragKeyDown = false; + } + } + }; + return _extends(MultiDrag, { + pluginName: "multiDrag", + utils: { + select: function select(el) { + var sortable = el.parentNode[expando]; + if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return; + if (multiDragSortable && multiDragSortable !== sortable) { + multiDragSortable.multiDrag._deselectMultiDrag(); + multiDragSortable = sortable; + } + toggleClass(el, sortable.options.selectedClass, true); + multiDragElements.push(el); + }, + deselect: function deselect(el) { + var sortable = el.parentNode[expando], index = multiDragElements.indexOf(el); + if (!sortable || !sortable.options.multiDrag || !~index) return; + toggleClass(el, sortable.options.selectedClass, false); + multiDragElements.splice(index, 1); + } + }, + eventProperties: function eventProperties() { + var _this3 = this; + var oldIndicies = [], newIndicies = []; + multiDragElements.forEach((function(multiDragElement) { + oldIndicies.push({ + multiDragElement, + index: multiDragElement.sortableIndex + }); + var newIndex; + if (folding && multiDragElement !== dragEl$1) { + newIndex = -1; + } else if (folding) { + newIndex = index(multiDragElement, ":not(." + _this3.options.selectedClass + ")"); + } else { + newIndex = index(multiDragElement); + } + newIndicies.push({ + multiDragElement, + index: newIndex + }); + })); + return { + items: _toConsumableArray(multiDragElements), + clones: [].concat(multiDragClones), + oldIndicies, + newIndicies + }; + }, + optionListeners: { + multiDragKey: function multiDragKey(key) { + key = key.toLowerCase(); + if (key === "ctrl") { + key = "Control"; + } else if (key.length > 1) { + key = key.charAt(0).toUpperCase() + key.substr(1); + } + return key; + } + } + }); + } + function insertMultiDragElements(clonesInserted, rootEl) { + multiDragElements.forEach((function(multiDragElement, i) { + var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)]; + if (target) { + rootEl.insertBefore(multiDragElement, target); + } else { + rootEl.appendChild(multiDragElement); + } + })); + } + function insertMultiDragClones(elementsInserted, rootEl) { + multiDragClones.forEach((function(clone, i) { + var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)]; + if (target) { + rootEl.insertBefore(clone, target); + } else { + rootEl.appendChild(clone); + } + })); + } + function removeMultiDragElements() { + multiDragElements.forEach((function(multiDragElement) { + if (multiDragElement === dragEl$1) return; + multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement); + })); + } + Sortable.mount(new AutoScrollPlugin); + Sortable.mount(Remove, Revert); + const __WEBPACK_DEFAULT_EXPORT__ = Sortable; + }, (module, exports) => { + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + /*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ (function() { + "use strict"; + var hasOwn = {}.hasOwnProperty; + function classNames() { + var classes = []; + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + var argType = typeof arg; + if (argType === "string" || argType === "number") { + classes.push(arg); + } else if (Array.isArray(arg)) { + if (arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } + } else if (argType === "object") { + if (arg.toString === Object.prototype.toString) { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } else { + classes.push(arg.toString()); + } + } + } + return classes.join(" "); + } + if (true && module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return classNames; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} + })(); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => invariant + }); + var isProduction = "development" === "production"; + var prefix = "Invariant failed"; + function invariant(condition, message) { + if (condition) { + return; + } + if (isProduction) { + throw new Error(prefix); + } + var provided = typeof message === "function" ? message() : message; + var value = provided ? prefix + ": " + provided : prefix; + throw new Error(value); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(285); + var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(277); + var _state_popup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(190); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var ListItem = function(_Component) { + _inherits(ListItem, _Component); + var _super = _createSuper(ListItem); + function ListItem() { + _classCallCheck(this, ListItem); + return _super.apply(this, arguments); + } + _createClass(ListItem, [ { + key: "render", + value: function render() { + var _this$props = this.props, style = _this$props.style, data = _this$props.data, index = _this$props.index, onSelect = _this$props.onSelect; + var item = data[index]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "select-list-item", + style, + onClick: function onClick() { + return onSelect(item.id); + }, + children: item.label + }); + } + } ]); + return ListItem; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var Dropdown = function(_Component2) { + _inherits(Dropdown, _Component2); + var _super2 = _createSuper(Dropdown); + function Dropdown() { + var _this; + _classCallCheck(this, Dropdown); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super2.call.apply(_super2, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + keyword: "" + }); + return _this; + } + _createClass(Dropdown, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props2 = this.props, items = _this$props2.items, width = _this$props2.width, onSelect = _this$props2.onSelect; + var keyword = this.state.keyword.toLowerCase(); + var filteredItems = items.filter((function(item) { + return item.label.toLowerCase().indexOf(keyword) !== -1; + })); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "dropdown-search-label", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", { + value: this.state.keyword, + className: "dropdown-search", + type: "text", + placeholder: "Type to search...", + onChange: function onChange(e) { + _this2.setState({ + keyword: e.target.value + }); + } + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(react_window__WEBPACK_IMPORTED_MODULE_4__.FixedSizeList, { + width, + height: 200, + itemCount: filteredItems.length, + itemSize: 36, + itemData: filteredItems, + children: function children(props) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ListItem, _objectSpread({ + onSelect + }, props)); + } + }) ] + }); + } + } ]); + return Dropdown; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var ReactSelect = function(_Component3) { + _inherits(ReactSelect, _Component3); + var _super3 = _createSuper(ReactSelect); + function ReactSelect() { + var _this3; + _classCallCheck(this, ReactSelect); + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + _this3 = _super3.call.apply(_super3, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this3), "changePopup", (function() { + return null; + })); + return _this3; + } + _createClass(ReactSelect, [ { + key: "render", + value: function render() { + var _this4 = this; + var _this$props3 = this.props, items = _this$props3.items, width = _this$props3.width, value = _this$props3.value, _onSelect = _this$props3.onSelect, filters = _this$props3.filters; + var $this = this; + var listItems = Object.keys(items).filter((function(item) { + if (filters) { + return filters.indexOf(item) === -1; + } + return true; + })).map((function(item) { + return { + id: item, + label: _typeof(items[item]) === "object" ? items[item].label : items[item] + }; + })); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "lotta-react-select", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_state_popup__WEBPACK_IMPORTED_MODULE_2__["default"], { + arrow: false, + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(Dropdown, { + width: width || 260, + items: listItems, + onSelect: function onSelect(id) { + _onSelect(id); + $this.changePopup(false); + } + }), + children: function children(_ref) { + var setIsOpen = _ref.setIsOpen, props = _ref.props; + _this4.changePopup = setIsOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", _objectSpread(_objectSpread({}, props), {}, { + className: "select-input", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + children: _typeof(items[value]) === "object" ? items[value].label : items[value] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.DownAngle, {}) ] + })); + } + }) + }); + } + } ]); + return ReactSelect; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = ReactSelect; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + FixedSizeGrid: () => FixedSizeGrid, + FixedSizeList: () => FixedSizeList, + VariableSizeGrid: () => VariableSizeGrid, + VariableSizeList: () => VariableSizeList, + areEqual: () => areEqual, + shouldComponentUpdate: () => shouldComponentUpdate + }); + var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(286); + var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(287); + var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(288); + var memoize_one__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(291); + var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__); + var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(290); + var hasNativePerformanceNow = typeof performance === "object" && typeof performance.now === "function"; + var now = hasNativePerformanceNow ? function() { + return performance.now(); + } : function() { + return Date.now(); + }; + function cancelTimeout(timeoutID) { + cancelAnimationFrame(timeoutID.id); + } + function requestTimeout(callback, delay) { + var start = now(); + function tick() { + if (now() - start >= delay) { + callback.call(null); + } else { + timeoutID.id = requestAnimationFrame(tick); + } + } + var timeoutID = { + id: requestAnimationFrame(tick) + }; + return timeoutID; + } + var size = -1; + function getScrollbarSize(recalculate) { + if (recalculate === void 0) { + recalculate = false; + } + if (size === -1 || recalculate) { + var div = document.createElement("div"); + var style = div.style; + style.width = "50px"; + style.height = "50px"; + style.overflow = "scroll"; + document.body.appendChild(div); + size = div.offsetWidth - div.clientWidth; + document.body.removeChild(div); + } + return size; + } + var cachedRTLResult = null; + function getRTLOffsetType(recalculate) { + if (recalculate === void 0) { + recalculate = false; + } + if (cachedRTLResult === null || recalculate) { + var outerDiv = document.createElement("div"); + var outerStyle = outerDiv.style; + outerStyle.width = "50px"; + outerStyle.height = "50px"; + outerStyle.overflow = "scroll"; + outerStyle.direction = "rtl"; + var innerDiv = document.createElement("div"); + var innerStyle = innerDiv.style; + innerStyle.width = "100px"; + innerStyle.height = "100px"; + outerDiv.appendChild(innerDiv); + document.body.appendChild(outerDiv); + if (outerDiv.scrollLeft > 0) { + cachedRTLResult = "positive-descending"; + } else { + outerDiv.scrollLeft = 1; + if (outerDiv.scrollLeft === 0) { + cachedRTLResult = "negative"; + } else { + cachedRTLResult = "positive-ascending"; + } + } + document.body.removeChild(outerDiv); + return cachedRTLResult; + } + return cachedRTLResult; + } + var IS_SCROLLING_DEBOUNCE_INTERVAL = 150; + var defaultItemKey = function defaultItemKey(_ref) { + var columnIndex = _ref.columnIndex, data = _ref.data, rowIndex = _ref.rowIndex; + return rowIndex + ":" + columnIndex; + }; + var devWarningsOverscanCount = null; + var devWarningsOverscanRowsColumnsCount = null; + var devWarningsTagName = null; + if (true) { + if (typeof window !== "undefined" && typeof window.WeakSet !== "undefined") { + devWarningsOverscanCount = new WeakSet; + devWarningsOverscanRowsColumnsCount = new WeakSet; + devWarningsTagName = new WeakSet; + } + } + function createGridComponent(_ref2) { + var _class; + var getColumnOffset = _ref2.getColumnOffset, getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset, getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex, getColumnWidth = _ref2.getColumnWidth, getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight, getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth, getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment, getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment, getRowHeight = _ref2.getRowHeight, getRowOffset = _ref2.getRowOffset, getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset, getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex, initInstanceProps = _ref2.initInstanceProps, shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange, validateProps = _ref2.validateProps; + return _class = function(_PureComponent) { + (0, _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__["default"])(Grid, _PureComponent); + function Grid(props) { + var _this; + _this = _PureComponent.call(this, props) || this; + _this._instanceProps = initInstanceProps(_this.props, (0, _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__["default"])(_this)); + _this._resetIsScrollingTimeoutId = null; + _this._outerRef = void 0; + _this.state = { + instance: (0, _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__["default"])(_this), + isScrolling: false, + horizontalScrollDirection: "forward", + scrollLeft: typeof _this.props.initialScrollLeft === "number" ? _this.props.initialScrollLeft : 0, + scrollTop: typeof _this.props.initialScrollTop === "number" ? _this.props.initialScrollTop : 0, + scrollUpdateWasRequested: false, + verticalScrollDirection: "forward" + }; + _this._callOnItemsRendered = void 0; + _this._callOnItemsRendered = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) { + return _this.props.onItemsRendered({ + overscanColumnStartIndex, + overscanColumnStopIndex, + overscanRowStartIndex, + overscanRowStopIndex, + visibleColumnStartIndex, + visibleColumnStopIndex, + visibleRowStartIndex, + visibleRowStopIndex + }); + })); + _this._callOnScroll = void 0; + _this._callOnScroll = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) { + return _this.props.onScroll({ + horizontalScrollDirection, + scrollLeft, + scrollTop, + verticalScrollDirection, + scrollUpdateWasRequested + }); + })); + _this._getItemStyle = void 0; + _this._getItemStyle = function(rowIndex, columnIndex) { + var _this$props = _this.props, columnWidth = _this$props.columnWidth, direction = _this$props.direction, rowHeight = _this$props.rowHeight; + var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight); + var key = rowIndex + ":" + columnIndex; + var style; + if (itemStyleCache.hasOwnProperty(key)) { + style = itemStyleCache[key]; + } else { + var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps); + var isRtl = direction === "rtl"; + itemStyleCache[key] = style = { + position: "absolute", + left: isRtl ? undefined : _offset, + right: isRtl ? _offset : undefined, + top: getRowOffset(_this.props, rowIndex, _this._instanceProps), + height: getRowHeight(_this.props, rowIndex, _this._instanceProps), + width: getColumnWidth(_this.props, columnIndex, _this._instanceProps) + }; + } + return style; + }; + _this._getItemStyleCache = void 0; + _this._getItemStyleCache = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(_, __, ___) { + return {}; + })); + _this._onScroll = function(event) { + var _event$currentTarget = event.currentTarget, clientHeight = _event$currentTarget.clientHeight, clientWidth = _event$currentTarget.clientWidth, scrollLeft = _event$currentTarget.scrollLeft, scrollTop = _event$currentTarget.scrollTop, scrollHeight = _event$currentTarget.scrollHeight, scrollWidth = _event$currentTarget.scrollWidth; + _this.setState((function(prevState) { + if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) { + return null; + } + var direction = _this.props.direction; + var calculatedScrollLeft = scrollLeft; + if (direction === "rtl") { + switch (getRTLOffsetType()) { + case "negative": + calculatedScrollLeft = -scrollLeft; + break; + + case "positive-descending": + calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + } + calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth)); + var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)); + return { + isScrolling: true, + horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? "forward" : "backward", + scrollLeft: calculatedScrollLeft, + scrollTop: calculatedScrollTop, + verticalScrollDirection: prevState.scrollTop < scrollTop ? "forward" : "backward", + scrollUpdateWasRequested: false + }; + }), _this._resetIsScrollingDebounced); + }; + _this._outerRefSetter = function(ref) { + var outerRef = _this.props.outerRef; + _this._outerRef = ref; + if (typeof outerRef === "function") { + outerRef(ref); + } else if (outerRef != null && typeof outerRef === "object" && outerRef.hasOwnProperty("current")) { + outerRef.current = ref; + } + }; + _this._resetIsScrollingDebounced = function() { + if (_this._resetIsScrollingTimeoutId !== null) { + cancelTimeout(_this._resetIsScrollingTimeoutId); + } + _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL); + }; + _this._resetIsScrolling = function() { + _this._resetIsScrollingTimeoutId = null; + _this.setState({ + isScrolling: false + }, (function() { + _this._getItemStyleCache(-1); + })); + }; + return _this; + } + Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) { + validateSharedProps(nextProps, prevState); + validateProps(nextProps); + return null; + }; + var _proto = Grid.prototype; + _proto.scrollTo = function scrollTo(_ref3) { + var scrollLeft = _ref3.scrollLeft, scrollTop = _ref3.scrollTop; + if (scrollLeft !== undefined) { + scrollLeft = Math.max(0, scrollLeft); + } + if (scrollTop !== undefined) { + scrollTop = Math.max(0, scrollTop); + } + this.setState((function(prevState) { + if (scrollLeft === undefined) { + scrollLeft = prevState.scrollLeft; + } + if (scrollTop === undefined) { + scrollTop = prevState.scrollTop; + } + if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) { + return null; + } + return { + horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? "forward" : "backward", + scrollLeft, + scrollTop, + scrollUpdateWasRequested: true, + verticalScrollDirection: prevState.scrollTop < scrollTop ? "forward" : "backward" + }; + }), this._resetIsScrollingDebounced); + }; + _proto.scrollToItem = function scrollToItem(_ref4) { + var _ref4$align = _ref4.align, align = _ref4$align === void 0 ? "auto" : _ref4$align, columnIndex = _ref4.columnIndex, rowIndex = _ref4.rowIndex; + var _this$props2 = this.props, columnCount = _this$props2.columnCount, height = _this$props2.height, rowCount = _this$props2.rowCount, width = _this$props2.width; + var _this$state = this.state, scrollLeft = _this$state.scrollLeft, scrollTop = _this$state.scrollTop; + var scrollbarSize = getScrollbarSize(); + if (columnIndex !== undefined) { + columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1)); + } + if (rowIndex !== undefined) { + rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1)); + } + var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps); + var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); + var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0; + var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0; + this.scrollTo({ + scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft, + scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop + }); + }; + _proto.componentDidMount = function componentDidMount() { + var _this$props3 = this.props, initialScrollLeft = _this$props3.initialScrollLeft, initialScrollTop = _this$props3.initialScrollTop; + if (this._outerRef != null) { + var outerRef = this._outerRef; + if (typeof initialScrollLeft === "number") { + outerRef.scrollLeft = initialScrollLeft; + } + if (typeof initialScrollTop === "number") { + outerRef.scrollTop = initialScrollTop; + } + } + this._callPropsCallbacks(); + }; + _proto.componentDidUpdate = function componentDidUpdate() { + var direction = this.props.direction; + var _this$state2 = this.state, scrollLeft = _this$state2.scrollLeft, scrollTop = _this$state2.scrollTop, scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested; + if (scrollUpdateWasRequested && this._outerRef != null) { + var outerRef = this._outerRef; + if (direction === "rtl") { + switch (getRTLOffsetType()) { + case "negative": + outerRef.scrollLeft = -scrollLeft; + break; + + case "positive-ascending": + outerRef.scrollLeft = scrollLeft; + break; + + default: + var clientWidth = outerRef.clientWidth, scrollWidth = outerRef.scrollWidth; + outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + } else { + outerRef.scrollLeft = Math.max(0, scrollLeft); + } + outerRef.scrollTop = Math.max(0, scrollTop); + } + this._callPropsCallbacks(); + }; + _proto.componentWillUnmount = function componentWillUnmount() { + if (this._resetIsScrollingTimeoutId !== null) { + cancelTimeout(this._resetIsScrollingTimeoutId); + } + }; + _proto.render = function render() { + var _this$props4 = this.props, children = _this$props4.children, className = _this$props4.className, columnCount = _this$props4.columnCount, direction = _this$props4.direction, height = _this$props4.height, innerRef = _this$props4.innerRef, innerElementType = _this$props4.innerElementType, innerTagName = _this$props4.innerTagName, itemData = _this$props4.itemData, _this$props4$itemKey = _this$props4.itemKey, itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey, outerElementType = _this$props4.outerElementType, outerTagName = _this$props4.outerTagName, rowCount = _this$props4.rowCount, style = _this$props4.style, useIsScrolling = _this$props4.useIsScrolling, width = _this$props4.width; + var isScrolling = this.state.isScrolling; + var _this$_getHorizontalR = this._getHorizontalRangeToRender(), columnStartIndex = _this$_getHorizontalR[0], columnStopIndex = _this$_getHorizontalR[1]; + var _this$_getVerticalRan = this._getVerticalRangeToRender(), rowStartIndex = _this$_getVerticalRan[0], rowStopIndex = _this$_getVerticalRan[1]; + var items = []; + if (columnCount > 0 && rowCount) { + for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) { + for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) { + items.push((0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(children, { + columnIndex: _columnIndex, + data: itemData, + isScrolling: useIsScrolling ? isScrolling : undefined, + key: itemKey({ + columnIndex: _columnIndex, + data: itemData, + rowIndex: _rowIndex + }), + rowIndex: _rowIndex, + style: this._getItemStyle(_rowIndex, _columnIndex) + })); + } + } + } + var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps); + var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); + return (0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(outerElementType || outerTagName || "div", { + className, + onScroll: this._onScroll, + ref: this._outerRefSetter, + style: (0, _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ + position: "relative", + height, + width, + overflow: "auto", + WebkitOverflowScrolling: "touch", + willChange: "transform", + direction + }, style) + }, (0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(innerElementType || innerTagName || "div", { + children: items, + ref: innerRef, + style: { + height: estimatedTotalHeight, + pointerEvents: isScrolling ? "none" : undefined, + width: estimatedTotalWidth + } + })); + }; + _proto._callPropsCallbacks = function _callPropsCallbacks() { + var _this$props5 = this.props, columnCount = _this$props5.columnCount, onItemsRendered = _this$props5.onItemsRendered, onScroll = _this$props5.onScroll, rowCount = _this$props5.rowCount; + if (typeof onItemsRendered === "function") { + if (columnCount > 0 && rowCount > 0) { + var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(), _overscanColumnStartIndex = _this$_getHorizontalR2[0], _overscanColumnStopIndex = _this$_getHorizontalR2[1], _visibleColumnStartIndex = _this$_getHorizontalR2[2], _visibleColumnStopIndex = _this$_getHorizontalR2[3]; + var _this$_getVerticalRan2 = this._getVerticalRangeToRender(), _overscanRowStartIndex = _this$_getVerticalRan2[0], _overscanRowStopIndex = _this$_getVerticalRan2[1], _visibleRowStartIndex = _this$_getVerticalRan2[2], _visibleRowStopIndex = _this$_getVerticalRan2[3]; + this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex); + } + } + if (typeof onScroll === "function") { + var _this$state3 = this.state, _horizontalScrollDirection = _this$state3.horizontalScrollDirection, _scrollLeft = _this$state3.scrollLeft, _scrollTop = _this$state3.scrollTop, _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested, _verticalScrollDirection = _this$state3.verticalScrollDirection; + this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested); + } + }; + _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() { + var _this$props6 = this.props, columnCount = _this$props6.columnCount, overscanColumnCount = _this$props6.overscanColumnCount, overscanColumnsCount = _this$props6.overscanColumnsCount, overscanCount = _this$props6.overscanCount, rowCount = _this$props6.rowCount; + var _this$state4 = this.state, horizontalScrollDirection = _this$state4.horizontalScrollDirection, isScrolling = _this$state4.isScrolling, scrollLeft = _this$state4.scrollLeft; + var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1; + if (columnCount === 0 || rowCount === 0) { + return [ 0, 0, 0, 0 ]; + } + var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps); + var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); + var overscanBackward = !isScrolling || horizontalScrollDirection === "backward" ? Math.max(1, overscanCountResolved) : 1; + var overscanForward = !isScrolling || horizontalScrollDirection === "forward" ? Math.max(1, overscanCountResolved) : 1; + return [ Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex ]; + }; + _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() { + var _this$props7 = this.props, columnCount = _this$props7.columnCount, overscanCount = _this$props7.overscanCount, overscanRowCount = _this$props7.overscanRowCount, overscanRowsCount = _this$props7.overscanRowsCount, rowCount = _this$props7.rowCount; + var _this$state5 = this.state, isScrolling = _this$state5.isScrolling, verticalScrollDirection = _this$state5.verticalScrollDirection, scrollTop = _this$state5.scrollTop; + var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1; + if (columnCount === 0 || rowCount === 0) { + return [ 0, 0, 0, 0 ]; + } + var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps); + var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); + var overscanBackward = !isScrolling || verticalScrollDirection === "backward" ? Math.max(1, overscanCountResolved) : 1; + var overscanForward = !isScrolling || verticalScrollDirection === "forward" ? Math.max(1, overscanCountResolved) : 1; + return [ Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex ]; + }; + return Grid; + }(react__WEBPACK_IMPORTED_MODULE_3__.PureComponent), _class.defaultProps = { + direction: "ltr", + itemData: undefined, + useIsScrolling: false + }, _class; + } + var validateSharedProps = function validateSharedProps(_ref5, _ref6) { + var children = _ref5.children, direction = _ref5.direction, height = _ref5.height, innerTagName = _ref5.innerTagName, outerTagName = _ref5.outerTagName, overscanColumnsCount = _ref5.overscanColumnsCount, overscanCount = _ref5.overscanCount, overscanRowsCount = _ref5.overscanRowsCount, width = _ref5.width; + var instance = _ref6.instance; + if (true) { + if (typeof overscanCount === "number") { + if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) { + devWarningsOverscanCount.add(instance); + console.warn("The overscanCount prop has been deprecated. " + "Please use the overscanColumnCount and overscanRowCount props instead."); + } + } + if (typeof overscanColumnsCount === "number" || typeof overscanRowsCount === "number") { + if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) { + devWarningsOverscanRowsColumnsCount.add(instance); + console.warn("The overscanColumnsCount and overscanRowsCount props have been deprecated. " + "Please use the overscanColumnCount and overscanRowCount props instead."); + } + } + if (innerTagName != null || outerTagName != null) { + if (devWarningsTagName && !devWarningsTagName.has(instance)) { + devWarningsTagName.add(instance); + console.warn("The innerTagName and outerTagName props have been deprecated. " + "Please use the innerElementType and outerElementType props instead."); + } + } + if (children == null) { + throw Error('An invalid "children" prop has been specified. ' + "Value should be a React component. " + ('"' + (children === null ? "null" : typeof children) + '" was specified.')); + } + switch (direction) { + case "ltr": + case "rtl": + break; + + default: + throw Error('An invalid "direction" prop has been specified. ' + 'Value should be either "ltr" or "rtl". ' + ('"' + direction + '" was specified.')); + } + if (typeof width !== "number") { + throw Error('An invalid "width" prop has been specified. ' + "Grids must specify a number for width. " + ('"' + (width === null ? "null" : typeof width) + '" was specified.')); + } + if (typeof height !== "number") { + throw Error('An invalid "height" prop has been specified. ' + "Grids must specify a number for height. " + ('"' + (height === null ? "null" : typeof height) + '" was specified.')); + } + } + }; + var DEFAULT_ESTIMATED_ITEM_SIZE = 50; + var getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) { + var rowCount = _ref.rowCount; + var rowMetadataMap = _ref2.rowMetadataMap, estimatedRowHeight = _ref2.estimatedRowHeight, lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex; + var totalSizeOfMeasuredRows = 0; + if (lastMeasuredRowIndex >= rowCount) { + lastMeasuredRowIndex = rowCount - 1; + } + if (lastMeasuredRowIndex >= 0) { + var itemMetadata = rowMetadataMap[lastMeasuredRowIndex]; + totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size; + } + var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1; + var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight; + return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems; + }; + var getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) { + var columnCount = _ref3.columnCount; + var columnMetadataMap = _ref4.columnMetadataMap, estimatedColumnWidth = _ref4.estimatedColumnWidth, lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex; + var totalSizeOfMeasuredRows = 0; + if (lastMeasuredColumnIndex >= columnCount) { + lastMeasuredColumnIndex = columnCount - 1; + } + if (lastMeasuredColumnIndex >= 0) { + var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex]; + totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size; + } + var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1; + var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth; + return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems; + }; + var getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) { + var itemMetadataMap, itemSize, lastMeasuredIndex; + if (itemType === "column") { + itemMetadataMap = instanceProps.columnMetadataMap; + itemSize = props.columnWidth; + lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex; + } else { + itemMetadataMap = instanceProps.rowMetadataMap; + itemSize = props.rowHeight; + lastMeasuredIndex = instanceProps.lastMeasuredRowIndex; + } + if (index > lastMeasuredIndex) { + var offset = 0; + if (lastMeasuredIndex >= 0) { + var itemMetadata = itemMetadataMap[lastMeasuredIndex]; + offset = itemMetadata.offset + itemMetadata.size; + } + for (var i = lastMeasuredIndex + 1; i <= index; i++) { + var size = itemSize(i); + itemMetadataMap[i] = { + offset, + size + }; + offset += size; + } + if (itemType === "column") { + instanceProps.lastMeasuredColumnIndex = index; + } else { + instanceProps.lastMeasuredRowIndex = index; + } + } + return itemMetadataMap[index]; + }; + var findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) { + var itemMetadataMap, lastMeasuredIndex; + if (itemType === "column") { + itemMetadataMap = instanceProps.columnMetadataMap; + lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex; + } else { + itemMetadataMap = instanceProps.rowMetadataMap; + lastMeasuredIndex = instanceProps.lastMeasuredRowIndex; + } + var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0; + if (lastMeasuredItemOffset >= offset) { + return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset); + } else { + return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset); + } + }; + var findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) { + while (low <= high) { + var middle = low + Math.floor((high - low) / 2); + var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset; + if (currentOffset === offset) { + return middle; + } else if (currentOffset < offset) { + low = middle + 1; + } else if (currentOffset > offset) { + high = middle - 1; + } + } + if (low > 0) { + return low - 1; + } else { + return 0; + } + }; + var findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) { + var itemCount = itemType === "column" ? props.columnCount : props.rowCount; + var interval = 1; + while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) { + index += interval; + interval *= 2; + } + return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset); + }; + var getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) { + var size = itemType === "column" ? props.width : props.height; + var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); + var estimatedTotalSize = itemType === "column" ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps); + var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset)); + var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size); + if (align === "smart") { + if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) { + align = "auto"; + } else { + align = "center"; + } + } + switch (align) { + case "start": + return maxOffset; + + case "end": + return minOffset; + + case "center": + return Math.round(minOffset + (maxOffset - minOffset) / 2); + + case "auto": + default: + if (scrollOffset >= minOffset && scrollOffset <= maxOffset) { + return scrollOffset; + } else if (minOffset > maxOffset) { + return minOffset; + } else if (scrollOffset < minOffset) { + return minOffset; + } else { + return maxOffset; + } + } + }; + var VariableSizeGrid = createGridComponent({ + getColumnOffset: function getColumnOffset(props, index, instanceProps) { + return getItemMetadata("column", props, index, instanceProps).offset; + }, + getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) { + return findNearestItem("column", props, instanceProps, scrollLeft); + }, + getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) { + var columnCount = props.columnCount, width = props.width; + var itemMetadata = getItemMetadata("column", props, startIndex, instanceProps); + var maxOffset = scrollLeft + width; + var offset = itemMetadata.offset + itemMetadata.size; + var stopIndex = startIndex; + while (stopIndex < columnCount - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemMetadata("column", props, stopIndex, instanceProps).size; + } + return stopIndex; + }, + getColumnWidth: function getColumnWidth(props, index, instanceProps) { + return instanceProps.columnMetadataMap[index].size; + }, + getEstimatedTotalHeight, + getEstimatedTotalWidth, + getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) { + return getOffsetForIndexAndAlignment("column", props, index, align, scrollOffset, instanceProps, scrollbarSize); + }, + getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) { + return getOffsetForIndexAndAlignment("row", props, index, align, scrollOffset, instanceProps, scrollbarSize); + }, + getRowOffset: function getRowOffset(props, index, instanceProps) { + return getItemMetadata("row", props, index, instanceProps).offset; + }, + getRowHeight: function getRowHeight(props, index, instanceProps) { + return instanceProps.rowMetadataMap[index].size; + }, + getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) { + return findNearestItem("row", props, instanceProps, scrollTop); + }, + getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) { + var rowCount = props.rowCount, height = props.height; + var itemMetadata = getItemMetadata("row", props, startIndex, instanceProps); + var maxOffset = scrollTop + height; + var offset = itemMetadata.offset + itemMetadata.size; + var stopIndex = startIndex; + while (stopIndex < rowCount - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemMetadata("row", props, stopIndex, instanceProps).size; + } + return stopIndex; + }, + initInstanceProps: function initInstanceProps(props, instance) { + var _ref5 = props, estimatedColumnWidth = _ref5.estimatedColumnWidth, estimatedRowHeight = _ref5.estimatedRowHeight; + var instanceProps = { + columnMetadataMap: {}, + estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE, + estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE, + lastMeasuredColumnIndex: -1, + lastMeasuredRowIndex: -1, + rowMetadataMap: {} + }; + instance.resetAfterColumnIndex = function(columnIndex, shouldForceUpdate) { + if (shouldForceUpdate === void 0) { + shouldForceUpdate = true; + } + instance.resetAfterIndices({ + columnIndex, + shouldForceUpdate + }); + }; + instance.resetAfterRowIndex = function(rowIndex, shouldForceUpdate) { + if (shouldForceUpdate === void 0) { + shouldForceUpdate = true; + } + instance.resetAfterIndices({ + rowIndex, + shouldForceUpdate + }); + }; + instance.resetAfterIndices = function(_ref6) { + var columnIndex = _ref6.columnIndex, rowIndex = _ref6.rowIndex, _ref6$shouldForceUpda = _ref6.shouldForceUpdate, shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda; + if (typeof columnIndex === "number") { + instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1); + } + if (typeof rowIndex === "number") { + instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1); + } + instance._getItemStyleCache(-1); + if (shouldForceUpdate) { + instance.forceUpdate(); + } + }; + return instanceProps; + }, + shouldResetStyleCacheOnItemSizeChange: false, + validateProps: function validateProps(_ref7) { + var columnWidth = _ref7.columnWidth, rowHeight = _ref7.rowHeight; + if (true) { + if (typeof columnWidth !== "function") { + throw Error('An invalid "columnWidth" prop has been specified. ' + "Value should be a function. " + ('"' + (columnWidth === null ? "null" : typeof columnWidth) + '" was specified.')); + } else if (typeof rowHeight !== "function") { + throw Error('An invalid "rowHeight" prop has been specified. ' + "Value should be a function. " + ('"' + (rowHeight === null ? "null" : typeof rowHeight) + '" was specified.')); + } + } + } + }); + var IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150; + var defaultItemKey$1 = function defaultItemKey(index, data) { + return index; + }; + var devWarningsDirection = null; + var devWarningsTagName$1 = null; + if (true) { + if (typeof window !== "undefined" && typeof window.WeakSet !== "undefined") { + devWarningsDirection = new WeakSet; + devWarningsTagName$1 = new WeakSet; + } + } + function createListComponent(_ref) { + var _class; + var getItemOffset = _ref.getItemOffset, getEstimatedTotalSize = _ref.getEstimatedTotalSize, getItemSize = _ref.getItemSize, getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment, getStartIndexForOffset = _ref.getStartIndexForOffset, getStopIndexForStartIndex = _ref.getStopIndexForStartIndex, initInstanceProps = _ref.initInstanceProps, shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange, validateProps = _ref.validateProps; + return _class = function(_PureComponent) { + (0, _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__["default"])(List, _PureComponent); + function List(props) { + var _this; + _this = _PureComponent.call(this, props) || this; + _this._instanceProps = initInstanceProps(_this.props, (0, _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__["default"])(_this)); + _this._outerRef = void 0; + _this._resetIsScrollingTimeoutId = null; + _this.state = { + instance: (0, _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__["default"])(_this), + isScrolling: false, + scrollDirection: "forward", + scrollOffset: typeof _this.props.initialScrollOffset === "number" ? _this.props.initialScrollOffset : 0, + scrollUpdateWasRequested: false + }; + _this._callOnItemsRendered = void 0; + _this._callOnItemsRendered = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) { + return _this.props.onItemsRendered({ + overscanStartIndex, + overscanStopIndex, + visibleStartIndex, + visibleStopIndex + }); + })); + _this._callOnScroll = void 0; + _this._callOnScroll = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(scrollDirection, scrollOffset, scrollUpdateWasRequested) { + return _this.props.onScroll({ + scrollDirection, + scrollOffset, + scrollUpdateWasRequested + }); + })); + _this._getItemStyle = void 0; + _this._getItemStyle = function(index) { + var _this$props = _this.props, direction = _this$props.direction, itemSize = _this$props.itemSize, layout = _this$props.layout; + var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction); + var style; + if (itemStyleCache.hasOwnProperty(index)) { + style = itemStyleCache[index]; + } else { + var _offset = getItemOffset(_this.props, index, _this._instanceProps); + var size = getItemSize(_this.props, index, _this._instanceProps); + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var isRtl = direction === "rtl"; + var offsetHorizontal = isHorizontal ? _offset : 0; + itemStyleCache[index] = style = { + position: "absolute", + left: isRtl ? undefined : offsetHorizontal, + right: isRtl ? offsetHorizontal : undefined, + top: !isHorizontal ? _offset : 0, + height: !isHorizontal ? size : "100%", + width: isHorizontal ? size : "100%" + }; + } + return style; + }; + _this._getItemStyleCache = void 0; + _this._getItemStyleCache = (0, memoize_one__WEBPACK_IMPORTED_MODULE_5__["default"])((function(_, __, ___) { + return {}; + })); + _this._onScrollHorizontal = function(event) { + var _event$currentTarget = event.currentTarget, clientWidth = _event$currentTarget.clientWidth, scrollLeft = _event$currentTarget.scrollLeft, scrollWidth = _event$currentTarget.scrollWidth; + _this.setState((function(prevState) { + if (prevState.scrollOffset === scrollLeft) { + return null; + } + var direction = _this.props.direction; + var scrollOffset = scrollLeft; + if (direction === "rtl") { + switch (getRTLOffsetType()) { + case "negative": + scrollOffset = -scrollLeft; + break; + + case "positive-descending": + scrollOffset = scrollWidth - clientWidth - scrollLeft; + break; + } + } + scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth)); + return { + isScrolling: true, + scrollDirection: prevState.scrollOffset < scrollLeft ? "forward" : "backward", + scrollOffset, + scrollUpdateWasRequested: false + }; + }), _this._resetIsScrollingDebounced); + }; + _this._onScrollVertical = function(event) { + var _event$currentTarget2 = event.currentTarget, clientHeight = _event$currentTarget2.clientHeight, scrollHeight = _event$currentTarget2.scrollHeight, scrollTop = _event$currentTarget2.scrollTop; + _this.setState((function(prevState) { + if (prevState.scrollOffset === scrollTop) { + return null; + } + var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)); + return { + isScrolling: true, + scrollDirection: prevState.scrollOffset < scrollOffset ? "forward" : "backward", + scrollOffset, + scrollUpdateWasRequested: false + }; + }), _this._resetIsScrollingDebounced); + }; + _this._outerRefSetter = function(ref) { + var outerRef = _this.props.outerRef; + _this._outerRef = ref; + if (typeof outerRef === "function") { + outerRef(ref); + } else if (outerRef != null && typeof outerRef === "object" && outerRef.hasOwnProperty("current")) { + outerRef.current = ref; + } + }; + _this._resetIsScrollingDebounced = function() { + if (_this._resetIsScrollingTimeoutId !== null) { + cancelTimeout(_this._resetIsScrollingTimeoutId); + } + _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1); + }; + _this._resetIsScrolling = function() { + _this._resetIsScrollingTimeoutId = null; + _this.setState({ + isScrolling: false + }, (function() { + _this._getItemStyleCache(-1, null); + })); + }; + return _this; + } + List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) { + validateSharedProps$1(nextProps, prevState); + validateProps(nextProps); + return null; + }; + var _proto = List.prototype; + _proto.scrollTo = function scrollTo(scrollOffset) { + scrollOffset = Math.max(0, scrollOffset); + this.setState((function(prevState) { + if (prevState.scrollOffset === scrollOffset) { + return null; + } + return { + scrollDirection: prevState.scrollOffset < scrollOffset ? "forward" : "backward", + scrollOffset, + scrollUpdateWasRequested: true + }; + }), this._resetIsScrollingDebounced); + }; + _proto.scrollToItem = function scrollToItem(index, align) { + if (align === void 0) { + align = "auto"; + } + var itemCount = this.props.itemCount; + var scrollOffset = this.state.scrollOffset; + index = Math.max(0, Math.min(index, itemCount - 1)); + this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps)); + }; + _proto.componentDidMount = function componentDidMount() { + var _this$props2 = this.props, direction = _this$props2.direction, initialScrollOffset = _this$props2.initialScrollOffset, layout = _this$props2.layout; + if (typeof initialScrollOffset === "number" && this._outerRef != null) { + var outerRef = this._outerRef; + if (direction === "horizontal" || layout === "horizontal") { + outerRef.scrollLeft = initialScrollOffset; + } else { + outerRef.scrollTop = initialScrollOffset; + } + } + this._callPropsCallbacks(); + }; + _proto.componentDidUpdate = function componentDidUpdate() { + var _this$props3 = this.props, direction = _this$props3.direction, layout = _this$props3.layout; + var _this$state = this.state, scrollOffset = _this$state.scrollOffset, scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested; + if (scrollUpdateWasRequested && this._outerRef != null) { + var outerRef = this._outerRef; + if (direction === "horizontal" || layout === "horizontal") { + if (direction === "rtl") { + switch (getRTLOffsetType()) { + case "negative": + outerRef.scrollLeft = -scrollOffset; + break; + + case "positive-ascending": + outerRef.scrollLeft = scrollOffset; + break; + + default: + var clientWidth = outerRef.clientWidth, scrollWidth = outerRef.scrollWidth; + outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset; + break; + } + } else { + outerRef.scrollLeft = scrollOffset; + } + } else { + outerRef.scrollTop = scrollOffset; + } + } + this._callPropsCallbacks(); + }; + _proto.componentWillUnmount = function componentWillUnmount() { + if (this._resetIsScrollingTimeoutId !== null) { + cancelTimeout(this._resetIsScrollingTimeoutId); + } + }; + _proto.render = function render() { + var _this$props4 = this.props, children = _this$props4.children, className = _this$props4.className, direction = _this$props4.direction, height = _this$props4.height, innerRef = _this$props4.innerRef, innerElementType = _this$props4.innerElementType, innerTagName = _this$props4.innerTagName, itemCount = _this$props4.itemCount, itemData = _this$props4.itemData, _this$props4$itemKey = _this$props4.itemKey, itemKey = _this$props4$itemKey === void 0 ? defaultItemKey$1 : _this$props4$itemKey, layout = _this$props4.layout, outerElementType = _this$props4.outerElementType, outerTagName = _this$props4.outerTagName, style = _this$props4.style, useIsScrolling = _this$props4.useIsScrolling, width = _this$props4.width; + var isScrolling = this.state.isScrolling; + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical; + var _this$_getRangeToRend = this._getRangeToRender(), startIndex = _this$_getRangeToRend[0], stopIndex = _this$_getRangeToRend[1]; + var items = []; + if (itemCount > 0) { + for (var _index = startIndex; _index <= stopIndex; _index++) { + items.push((0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(children, { + data: itemData, + key: itemKey(_index, itemData), + index: _index, + isScrolling: useIsScrolling ? isScrolling : undefined, + style: this._getItemStyle(_index) + })); + } + } + var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps); + return (0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(outerElementType || outerTagName || "div", { + className, + onScroll, + ref: this._outerRefSetter, + style: (0, _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({ + position: "relative", + height, + width, + overflow: "auto", + WebkitOverflowScrolling: "touch", + willChange: "transform", + direction + }, style) + }, (0, react__WEBPACK_IMPORTED_MODULE_3__.createElement)(innerElementType || innerTagName || "div", { + children: items, + ref: innerRef, + style: { + height: isHorizontal ? "100%" : estimatedTotalSize, + pointerEvents: isScrolling ? "none" : undefined, + width: isHorizontal ? estimatedTotalSize : "100%" + } + })); + }; + _proto._callPropsCallbacks = function _callPropsCallbacks() { + if (typeof this.props.onItemsRendered === "function") { + var itemCount = this.props.itemCount; + if (itemCount > 0) { + var _this$_getRangeToRend2 = this._getRangeToRender(), _overscanStartIndex = _this$_getRangeToRend2[0], _overscanStopIndex = _this$_getRangeToRend2[1], _visibleStartIndex = _this$_getRangeToRend2[2], _visibleStopIndex = _this$_getRangeToRend2[3]; + this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex); + } + } + if (typeof this.props.onScroll === "function") { + var _this$state2 = this.state, _scrollDirection = _this$state2.scrollDirection, _scrollOffset = _this$state2.scrollOffset, _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested; + this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested); + } + }; + _proto._getRangeToRender = function _getRangeToRender() { + var _this$props5 = this.props, itemCount = _this$props5.itemCount, overscanCount = _this$props5.overscanCount; + var _this$state3 = this.state, isScrolling = _this$state3.isScrolling, scrollDirection = _this$state3.scrollDirection, scrollOffset = _this$state3.scrollOffset; + if (itemCount === 0) { + return [ 0, 0, 0, 0 ]; + } + var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps); + var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); + var overscanBackward = !isScrolling || scrollDirection === "backward" ? Math.max(1, overscanCount) : 1; + var overscanForward = !isScrolling || scrollDirection === "forward" ? Math.max(1, overscanCount) : 1; + return [ Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex ]; + }; + return List; + }(react__WEBPACK_IMPORTED_MODULE_3__.PureComponent), _class.defaultProps = { + direction: "ltr", + itemData: undefined, + layout: "vertical", + overscanCount: 2, + useIsScrolling: false + }, _class; + } + var validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) { + var children = _ref2.children, direction = _ref2.direction, height = _ref2.height, layout = _ref2.layout, innerTagName = _ref2.innerTagName, outerTagName = _ref2.outerTagName, width = _ref2.width; + var instance = _ref3.instance; + if (true) { + if (innerTagName != null || outerTagName != null) { + if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) { + devWarningsTagName$1.add(instance); + console.warn("The innerTagName and outerTagName props have been deprecated. " + "Please use the innerElementType and outerElementType props instead."); + } + } + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + switch (direction) { + case "horizontal": + case "vertical": + if (devWarningsDirection && !devWarningsDirection.has(instance)) { + devWarningsDirection.add(instance); + console.warn('The direction prop should be either "ltr" (default) or "rtl". ' + 'Please use the layout prop to specify "vertical" (default) or "horizontal" orientation.'); + } + break; + + case "ltr": + case "rtl": + break; + + default: + throw Error('An invalid "direction" prop has been specified. ' + 'Value should be either "ltr" or "rtl". ' + ('"' + direction + '" was specified.')); + } + switch (layout) { + case "horizontal": + case "vertical": + break; + + default: + throw Error('An invalid "layout" prop has been specified. ' + 'Value should be either "horizontal" or "vertical". ' + ('"' + layout + '" was specified.')); + } + if (children == null) { + throw Error('An invalid "children" prop has been specified. ' + "Value should be a React component. " + ('"' + (children === null ? "null" : typeof children) + '" was specified.')); + } + if (isHorizontal && typeof width !== "number") { + throw Error('An invalid "width" prop has been specified. ' + "Horizontal lists must specify a number for width. " + ('"' + (width === null ? "null" : typeof width) + '" was specified.')); + } else if (!isHorizontal && typeof height !== "number") { + throw Error('An invalid "height" prop has been specified. ' + "Vertical lists must specify a number for height. " + ('"' + (height === null ? "null" : typeof height) + '" was specified.')); + } + } + }; + var DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50; + var getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) { + var _ref = props, itemSize = _ref.itemSize; + var itemMetadataMap = instanceProps.itemMetadataMap, lastMeasuredIndex = instanceProps.lastMeasuredIndex; + if (index > lastMeasuredIndex) { + var offset = 0; + if (lastMeasuredIndex >= 0) { + var itemMetadata = itemMetadataMap[lastMeasuredIndex]; + offset = itemMetadata.offset + itemMetadata.size; + } + for (var i = lastMeasuredIndex + 1; i <= index; i++) { + var size = itemSize(i); + itemMetadataMap[i] = { + offset, + size + }; + offset += size; + } + instanceProps.lastMeasuredIndex = index; + } + return itemMetadataMap[index]; + }; + var findNearestItem$1 = function findNearestItem(props, instanceProps, offset) { + var itemMetadataMap = instanceProps.itemMetadataMap, lastMeasuredIndex = instanceProps.lastMeasuredIndex; + var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0; + if (lastMeasuredItemOffset >= offset) { + return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset); + } else { + return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset); + } + }; + var findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) { + while (low <= high) { + var middle = low + Math.floor((high - low) / 2); + var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset; + if (currentOffset === offset) { + return middle; + } else if (currentOffset < offset) { + low = middle + 1; + } else if (currentOffset > offset) { + high = middle - 1; + } + } + if (low > 0) { + return low - 1; + } else { + return 0; + } + }; + var findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) { + var itemCount = props.itemCount; + var interval = 1; + while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) { + index += interval; + interval *= 2; + } + return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset); + }; + var getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) { + var itemCount = _ref2.itemCount; + var itemMetadataMap = _ref3.itemMetadataMap, estimatedItemSize = _ref3.estimatedItemSize, lastMeasuredIndex = _ref3.lastMeasuredIndex; + var totalSizeOfMeasuredItems = 0; + if (lastMeasuredIndex >= itemCount) { + lastMeasuredIndex = itemCount - 1; + } + if (lastMeasuredIndex >= 0) { + var itemMetadata = itemMetadataMap[lastMeasuredIndex]; + totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size; + } + var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1; + var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize; + return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems; + }; + var VariableSizeList = createListComponent({ + getItemOffset: function getItemOffset(props, index, instanceProps) { + return getItemMetadata$1(props, index, instanceProps).offset; + }, + getItemSize: function getItemSize(props, index, instanceProps) { + return instanceProps.itemMetadataMap[index].size; + }, + getEstimatedTotalSize, + getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps) { + var direction = props.direction, height = props.height, layout = props.layout, width = props.width; + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var size = isHorizontal ? width : height; + var itemMetadata = getItemMetadata$1(props, index, instanceProps); + var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps); + var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset)); + var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size); + if (align === "smart") { + if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) { + align = "auto"; + } else { + align = "center"; + } + } + switch (align) { + case "start": + return maxOffset; + + case "end": + return minOffset; + + case "center": + return Math.round(minOffset + (maxOffset - minOffset) / 2); + + case "auto": + default: + if (scrollOffset >= minOffset && scrollOffset <= maxOffset) { + return scrollOffset; + } else if (scrollOffset < minOffset) { + return minOffset; + } else { + return maxOffset; + } + } + }, + getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) { + return findNearestItem$1(props, instanceProps, offset); + }, + getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) { + var direction = props.direction, height = props.height, itemCount = props.itemCount, layout = props.layout, width = props.width; + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var size = isHorizontal ? width : height; + var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps); + var maxOffset = scrollOffset + size; + var offset = itemMetadata.offset + itemMetadata.size; + var stopIndex = startIndex; + while (stopIndex < itemCount - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemMetadata$1(props, stopIndex, instanceProps).size; + } + return stopIndex; + }, + initInstanceProps: function initInstanceProps(props, instance) { + var _ref4 = props, estimatedItemSize = _ref4.estimatedItemSize; + var instanceProps = { + itemMetadataMap: {}, + estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1, + lastMeasuredIndex: -1 + }; + instance.resetAfterIndex = function(index, shouldForceUpdate) { + if (shouldForceUpdate === void 0) { + shouldForceUpdate = true; + } + instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); + instance._getItemStyleCache(-1); + if (shouldForceUpdate) { + instance.forceUpdate(); + } + }; + return instanceProps; + }, + shouldResetStyleCacheOnItemSizeChange: false, + validateProps: function validateProps(_ref5) { + var itemSize = _ref5.itemSize; + if (true) { + if (typeof itemSize !== "function") { + throw Error('An invalid "itemSize" prop has been specified. ' + "Value should be a function. " + ('"' + (itemSize === null ? "null" : typeof itemSize) + '" was specified.')); + } + } + } + }); + var FixedSizeGrid = createGridComponent({ + getColumnOffset: function getColumnOffset(_ref, index) { + var columnWidth = _ref.columnWidth; + return index * columnWidth; + }, + getColumnWidth: function getColumnWidth(_ref2, index) { + var columnWidth = _ref2.columnWidth; + return columnWidth; + }, + getRowOffset: function getRowOffset(_ref3, index) { + var rowHeight = _ref3.rowHeight; + return index * rowHeight; + }, + getRowHeight: function getRowHeight(_ref4, index) { + var rowHeight = _ref4.rowHeight; + return rowHeight; + }, + getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) { + var rowCount = _ref5.rowCount, rowHeight = _ref5.rowHeight; + return rowHeight * rowCount; + }, + getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) { + var columnCount = _ref6.columnCount, columnWidth = _ref6.columnWidth; + return columnWidth * columnCount; + }, + getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) { + var columnCount = _ref7.columnCount, columnWidth = _ref7.columnWidth, width = _ref7.width; + var lastColumnOffset = Math.max(0, columnCount * columnWidth - width); + var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth); + var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth); + if (align === "smart") { + if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) { + align = "auto"; + } else { + align = "center"; + } + } + switch (align) { + case "start": + return maxOffset; + + case "end": + return minOffset; + + case "center": + var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(width / 2)) { + return 0; + } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) { + return lastColumnOffset; + } else { + return middleOffset; + } + + case "auto": + default: + if (scrollLeft >= minOffset && scrollLeft <= maxOffset) { + return scrollLeft; + } else if (minOffset > maxOffset) { + return minOffset; + } else if (scrollLeft < minOffset) { + return minOffset; + } else { + return maxOffset; + } + } + }, + getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) { + var rowHeight = _ref8.rowHeight, height = _ref8.height, rowCount = _ref8.rowCount; + var lastRowOffset = Math.max(0, rowCount * rowHeight - height); + var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight); + var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight); + if (align === "smart") { + if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) { + align = "auto"; + } else { + align = "center"; + } + } + switch (align) { + case "start": + return maxOffset; + + case "end": + return minOffset; + + case "center": + var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(height / 2)) { + return 0; + } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) { + return lastRowOffset; + } else { + return middleOffset; + } + + case "auto": + default: + if (scrollTop >= minOffset && scrollTop <= maxOffset) { + return scrollTop; + } else if (minOffset > maxOffset) { + return minOffset; + } else if (scrollTop < minOffset) { + return minOffset; + } else { + return maxOffset; + } + } + }, + getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) { + var columnWidth = _ref9.columnWidth, columnCount = _ref9.columnCount; + return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth))); + }, + getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) { + var columnWidth = _ref10.columnWidth, columnCount = _ref10.columnCount, width = _ref10.width; + var left = startIndex * columnWidth; + var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth); + return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1)); + }, + getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) { + var rowHeight = _ref11.rowHeight, rowCount = _ref11.rowCount; + return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight))); + }, + getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) { + var rowHeight = _ref12.rowHeight, rowCount = _ref12.rowCount, height = _ref12.height; + var top = startIndex * rowHeight; + var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight); + return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1)); + }, + initInstanceProps: function initInstanceProps(props) {}, + shouldResetStyleCacheOnItemSizeChange: true, + validateProps: function validateProps(_ref13) { + var columnWidth = _ref13.columnWidth, rowHeight = _ref13.rowHeight; + if (true) { + if (typeof columnWidth !== "number") { + throw Error('An invalid "columnWidth" prop has been specified. ' + "Value should be a number. " + ('"' + (columnWidth === null ? "null" : typeof columnWidth) + '" was specified.')); + } + if (typeof rowHeight !== "number") { + throw Error('An invalid "rowHeight" prop has been specified. ' + "Value should be a number. " + ('"' + (rowHeight === null ? "null" : typeof rowHeight) + '" was specified.')); + } + } + } + }); + var FixedSizeList = createListComponent({ + getItemOffset: function getItemOffset(_ref, index) { + var itemSize = _ref.itemSize; + return index * itemSize; + }, + getItemSize: function getItemSize(_ref2, index) { + var itemSize = _ref2.itemSize; + return itemSize; + }, + getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) { + var itemCount = _ref3.itemCount, itemSize = _ref3.itemSize; + return itemSize * itemCount; + }, + getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset) { + var direction = _ref4.direction, height = _ref4.height, itemCount = _ref4.itemCount, itemSize = _ref4.itemSize, layout = _ref4.layout, width = _ref4.width; + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var size = isHorizontal ? width : height; + var lastItemOffset = Math.max(0, itemCount * itemSize - size); + var maxOffset = Math.min(lastItemOffset, index * itemSize); + var minOffset = Math.max(0, index * itemSize - size + itemSize); + if (align === "smart") { + if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) { + align = "auto"; + } else { + align = "center"; + } + } + switch (align) { + case "start": + return maxOffset; + + case "end": + return minOffset; + + case "center": + { + var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(size / 2)) { + return 0; + } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) { + return lastItemOffset; + } else { + return middleOffset; + } + } + + case "auto": + default: + if (scrollOffset >= minOffset && scrollOffset <= maxOffset) { + return scrollOffset; + } else if (scrollOffset < minOffset) { + return minOffset; + } else { + return maxOffset; + } + } + }, + getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) { + var itemCount = _ref5.itemCount, itemSize = _ref5.itemSize; + return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize))); + }, + getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) { + var direction = _ref6.direction, height = _ref6.height, itemCount = _ref6.itemCount, itemSize = _ref6.itemSize, layout = _ref6.layout, width = _ref6.width; + var isHorizontal = direction === "horizontal" || layout === "horizontal"; + var offset = startIndex * itemSize; + var size = isHorizontal ? width : height; + var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize); + return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1)); + }, + initInstanceProps: function initInstanceProps(props) {}, + shouldResetStyleCacheOnItemSizeChange: true, + validateProps: function validateProps(_ref7) { + var itemSize = _ref7.itemSize; + if (true) { + if (typeof itemSize !== "number") { + throw Error('An invalid "itemSize" prop has been specified. ' + "Value should be a number. " + ('"' + (itemSize === null ? "null" : typeof itemSize) + '" was specified.')); + } + } + } + }); + function shallowDiffers(prev, next) { + for (var attribute in prev) { + if (!(attribute in next)) { + return true; + } + } + for (var _attribute in next) { + if (prev[_attribute] !== next[_attribute]) { + return true; + } + } + return false; + } + var _excluded = [ "style" ], _excluded2 = [ "style" ]; + function areEqual(prevProps, nextProps) { + var prevStyle = prevProps.style, prevRest = (0, _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_4__["default"])(prevProps, _excluded); + var nextStyle = nextProps.style, nextRest = (0, _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_4__["default"])(nextProps, _excluded2); + return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest); + } + function shouldComponentUpdate(nextProps, nextState) { + return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState); + } + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => _extends + }); + function _extends() { + _extends = Object.assign ? Object.assign.bind() : function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + return _extends.apply(this, arguments); + } + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => _assertThisInitialized + }); + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => _inheritsLoose + }); + var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(289); + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + (0, _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(subClass, superClass); + } + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => _setPrototypeOf + }); + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + }, (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => _objectWithoutPropertiesLoose + }); + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + return target; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var safeIsNaN = Number.isNaN || function ponyfill(value) { + return typeof value === "number" && value !== value; + }; + function isEqual(first, second) { + if (first === second) { + return true; + } + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + return false; + } + function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (!isEqual(newInputs[i], lastInputs[i])) { + return false; + } + } + return true; + } + function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { + isEqual = areInputsEqual; + } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; + } + const __WEBPACK_DEFAULT_EXPORT__ = memoizeOne; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Placeholder + }); + var _color_picker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(189); + function Placeholder(props) { + (0, _color_picker__WEBPACK_IMPORTED_MODULE_0__.ColorPickerHooks)(props); + return null; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var md5__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(294); + var md5__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(md5__WEBPACK_IMPORTED_MODULE_1__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function useRefCallback(fn, dependencies) { + var ref = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useRef)(fn); + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)((function() { + ref.current = fn; + }), [ fn ].concat(_toConsumableArray(dependencies))); + return (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useCallback)((function() { + var fn = ref.current; + return fn(); + }), [ ref ]); + } + function Editor(props) { + var id = props.id, value = props.value, options = props.options, _onChange = props.onChange; + var el = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useRef)(); + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)("".concat(id, "-").concat(md5__WEBPACK_IMPORTED_MODULE_1___default()(Math.random() + "-" + Math.random() + "-" + Math.random()))), _useState2 = _slicedToArray(_useState, 2), editorId = _useState2[0], _ = _useState2[1]; + var correctEditor = function correctEditor() { + return wp.oldEditor || wp.editor; + }; + var listener = useRefCallback((function() { + _onChange(correctEditor().getContent(editorId)); + }), [ editorId, _onChange ]); + var editorParams = _objectSpread(_objectSpread({ + quicktags: !!options.quicktags, + mediaButtons: !!options.mediaButtons + }, options), {}, { + tinymce: _objectSpread(_objectSpread({ + toolbar1: "formatselect,styleselect,bold,italic,bullist,numlist,link,alignleft,aligncenter,alignright,wp_adv", + toolbar2: "strikethrough,hr,forecolor,pastetext,removeformat,charmap,outdent,indent,undo,redo,wp_help" + }, _typeof(options.tinymce) === "object" ? options.tinymce : {}), {}, { + style_formats_merge: true, + style_formats: [] + }) + }); + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)((function() { + correctEditor().initialize(editorId, editorParams); + setTimeout((function() { + window.tinymce.editors[editorId] && window.tinymce.editors[editorId].on("change", listener); + })); + if (wp.oldEditor) { + setTimeout((function() { + setTimeout((function() { + window.tinymce.editors[editorId].off("change", listener); + correctEditor().remove(editorId); + correctEditor().initialize(editorId, editorParams); + setTimeout((function() { + window.tinymce.editors[editorId] && window.tinymce.editors[editorId].on("change", listener); + })); + }), 300); + }), 1e3); + } + return function() { + if (!window.tinymce.editors[editorId]) return; + setTimeout((function() { + window.tinymce.editors[editorId].off("change", listener); + correctEditor().remove(editorId); + }), 300); + }; + }), []); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", _objectSpread(_objectSpread({ + className: "lotta-editor" + }, options.attrs || {}), {}, { + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("textarea", _objectSpread(_objectSpread({ + style: { + opacity: 0 + }, + id: editorId, + ref: el, + value, + className: "wp-editor-area" + }, _objectSpread(_objectSpread({}, options.field_attr ? options.field_attr : {}), options.attr && options.attr.placeholder ? { + placeholder: options.attr.placeholder + } : {})), {}, { + onChange: function onChange(_ref) { + var value = _ref.target.value; + return _onChange(value); + } + })) + })); + } + const __WEBPACK_DEFAULT_EXPORT__ = Editor; + }, (module, __unused_webpack_exports, __webpack_require__) => { + (function() { + var crypt = __webpack_require__(295), utf8 = __webpack_require__(296).utf8, isBuffer = __webpack_require__(297), bin = __webpack_require__(296).bin, md5 = function(message, options) { + if (message.constructor == String) if (options && options.encoding === "binary") message = bin.stringToBytes(message); else message = utf8.stringToBytes(message); else if (isBuffer(message)) message = Array.prototype.slice.call(message, 0); else if (!Array.isArray(message) && message.constructor !== Uint8Array) message = message.toString(); + var m = crypt.bytesToWords(message), l = message.length * 8, a = 1732584193, b = -271733879, c = -1732584194, d = 271733878; + for (var i = 0; i < m.length; i++) { + m[i] = (m[i] << 8 | m[i] >>> 24) & 16711935 | (m[i] << 24 | m[i] >>> 8) & 4278255360; + } + m[l >>> 5] |= 128 << l % 32; + m[(l + 64 >>> 9 << 4) + 14] = l; + var FF = md5._ff, GG = md5._gg, HH = md5._hh, II = md5._ii; + for (var i = 0; i < m.length; i += 16) { + var aa = a, bb = b, cc = c, dd = d; + a = FF(a, b, c, d, m[i + 0], 7, -680876936); + d = FF(d, a, b, c, m[i + 1], 12, -389564586); + c = FF(c, d, a, b, m[i + 2], 17, 606105819); + b = FF(b, c, d, a, m[i + 3], 22, -1044525330); + a = FF(a, b, c, d, m[i + 4], 7, -176418897); + d = FF(d, a, b, c, m[i + 5], 12, 1200080426); + c = FF(c, d, a, b, m[i + 6], 17, -1473231341); + b = FF(b, c, d, a, m[i + 7], 22, -45705983); + a = FF(a, b, c, d, m[i + 8], 7, 1770035416); + d = FF(d, a, b, c, m[i + 9], 12, -1958414417); + c = FF(c, d, a, b, m[i + 10], 17, -42063); + b = FF(b, c, d, a, m[i + 11], 22, -1990404162); + a = FF(a, b, c, d, m[i + 12], 7, 1804603682); + d = FF(d, a, b, c, m[i + 13], 12, -40341101); + c = FF(c, d, a, b, m[i + 14], 17, -1502002290); + b = FF(b, c, d, a, m[i + 15], 22, 1236535329); + a = GG(a, b, c, d, m[i + 1], 5, -165796510); + d = GG(d, a, b, c, m[i + 6], 9, -1069501632); + c = GG(c, d, a, b, m[i + 11], 14, 643717713); + b = GG(b, c, d, a, m[i + 0], 20, -373897302); + a = GG(a, b, c, d, m[i + 5], 5, -701558691); + d = GG(d, a, b, c, m[i + 10], 9, 38016083); + c = GG(c, d, a, b, m[i + 15], 14, -660478335); + b = GG(b, c, d, a, m[i + 4], 20, -405537848); + a = GG(a, b, c, d, m[i + 9], 5, 568446438); + d = GG(d, a, b, c, m[i + 14], 9, -1019803690); + c = GG(c, d, a, b, m[i + 3], 14, -187363961); + b = GG(b, c, d, a, m[i + 8], 20, 1163531501); + a = GG(a, b, c, d, m[i + 13], 5, -1444681467); + d = GG(d, a, b, c, m[i + 2], 9, -51403784); + c = GG(c, d, a, b, m[i + 7], 14, 1735328473); + b = GG(b, c, d, a, m[i + 12], 20, -1926607734); + a = HH(a, b, c, d, m[i + 5], 4, -378558); + d = HH(d, a, b, c, m[i + 8], 11, -2022574463); + c = HH(c, d, a, b, m[i + 11], 16, 1839030562); + b = HH(b, c, d, a, m[i + 14], 23, -35309556); + a = HH(a, b, c, d, m[i + 1], 4, -1530992060); + d = HH(d, a, b, c, m[i + 4], 11, 1272893353); + c = HH(c, d, a, b, m[i + 7], 16, -155497632); + b = HH(b, c, d, a, m[i + 10], 23, -1094730640); + a = HH(a, b, c, d, m[i + 13], 4, 681279174); + d = HH(d, a, b, c, m[i + 0], 11, -358537222); + c = HH(c, d, a, b, m[i + 3], 16, -722521979); + b = HH(b, c, d, a, m[i + 6], 23, 76029189); + a = HH(a, b, c, d, m[i + 9], 4, -640364487); + d = HH(d, a, b, c, m[i + 12], 11, -421815835); + c = HH(c, d, a, b, m[i + 15], 16, 530742520); + b = HH(b, c, d, a, m[i + 2], 23, -995338651); + a = II(a, b, c, d, m[i + 0], 6, -198630844); + d = II(d, a, b, c, m[i + 7], 10, 1126891415); + c = II(c, d, a, b, m[i + 14], 15, -1416354905); + b = II(b, c, d, a, m[i + 5], 21, -57434055); + a = II(a, b, c, d, m[i + 12], 6, 1700485571); + d = II(d, a, b, c, m[i + 3], 10, -1894986606); + c = II(c, d, a, b, m[i + 10], 15, -1051523); + b = II(b, c, d, a, m[i + 1], 21, -2054922799); + a = II(a, b, c, d, m[i + 8], 6, 1873313359); + d = II(d, a, b, c, m[i + 15], 10, -30611744); + c = II(c, d, a, b, m[i + 6], 15, -1560198380); + b = II(b, c, d, a, m[i + 13], 21, 1309151649); + a = II(a, b, c, d, m[i + 4], 6, -145523070); + d = II(d, a, b, c, m[i + 11], 10, -1120210379); + c = II(c, d, a, b, m[i + 2], 15, 718787259); + b = II(b, c, d, a, m[i + 9], 21, -343485551); + a = a + aa >>> 0; + b = b + bb >>> 0; + c = c + cc >>> 0; + d = d + dd >>> 0; + } + return crypt.endian([ a, b, c, d ]); + }; + md5._ff = function(a, b, c, d, x, s, t) { + var n = a + (b & c | ~b & d) + (x >>> 0) + t; + return (n << s | n >>> 32 - s) + b; + }; + md5._gg = function(a, b, c, d, x, s, t) { + var n = a + (b & d | c & ~d) + (x >>> 0) + t; + return (n << s | n >>> 32 - s) + b; + }; + md5._hh = function(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + (x >>> 0) + t; + return (n << s | n >>> 32 - s) + b; + }; + md5._ii = function(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + (x >>> 0) + t; + return (n << s | n >>> 32 - s) + b; + }; + md5._blocksize = 16; + md5._digestsize = 16; + module.exports = function(message, options) { + if (message === undefined || message === null) throw new Error("Illegal argument " + message); + var digestbytes = crypt.wordsToBytes(md5(message, options)); + return options && options.asBytes ? digestbytes : options && options.asString ? bin.bytesToString(digestbytes) : crypt.bytesToHex(digestbytes); + }; + })(); + }, module => { + (function() { + var base64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", crypt = { + rotl: function(n, b) { + return n << b | n >>> 32 - b; + }, + rotr: function(n, b) { + return n << 32 - b | n >>> b; + }, + endian: function(n) { + if (n.constructor == Number) { + return crypt.rotl(n, 8) & 16711935 | crypt.rotl(n, 24) & 4278255360; + } + for (var i = 0; i < n.length; i++) n[i] = crypt.endian(n[i]); + return n; + }, + randomBytes: function(n) { + for (var bytes = []; n > 0; n--) bytes.push(Math.floor(Math.random() * 256)); + return bytes; + }, + bytesToWords: function(bytes) { + for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8) words[b >>> 5] |= bytes[i] << 24 - b % 32; + return words; + }, + wordsToBytes: function(words) { + for (var bytes = [], b = 0; b < words.length * 32; b += 8) bytes.push(words[b >>> 5] >>> 24 - b % 32 & 255); + return bytes; + }, + bytesToHex: function(bytes) { + for (var hex = [], i = 0; i < bytes.length; i++) { + hex.push((bytes[i] >>> 4).toString(16)); + hex.push((bytes[i] & 15).toString(16)); + } + return hex.join(""); + }, + hexToBytes: function(hex) { + for (var bytes = [], c = 0; c < hex.length; c += 2) bytes.push(parseInt(hex.substr(c, 2), 16)); + return bytes; + }, + bytesToBase64: function(bytes) { + for (var base64 = [], i = 0; i < bytes.length; i += 3) { + var triplet = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2]; + for (var j = 0; j < 4; j++) if (i * 8 + j * 6 <= bytes.length * 8) base64.push(base64map.charAt(triplet >>> 6 * (3 - j) & 63)); else base64.push("="); + } + return base64.join(""); + }, + base64ToBytes: function(base64) { + base64 = base64.replace(/[^A-Z0-9+\/]/gi, ""); + for (var bytes = [], i = 0, imod4 = 0; i < base64.length; imod4 = ++i % 4) { + if (imod4 == 0) continue; + bytes.push((base64map.indexOf(base64.charAt(i - 1)) & Math.pow(2, -2 * imod4 + 8) - 1) << imod4 * 2 | base64map.indexOf(base64.charAt(i)) >>> 6 - imod4 * 2); + } + return bytes; + } + }; + module.exports = crypt; + })(); + }, module => { + var charenc = { + utf8: { + stringToBytes: function(str) { + return charenc.bin.stringToBytes(unescape(encodeURIComponent(str))); + }, + bytesToString: function(bytes) { + return decodeURIComponent(escape(charenc.bin.bytesToString(bytes))); + } + }, + bin: { + stringToBytes: function(str) { + for (var bytes = [], i = 0; i < str.length; i++) bytes.push(str.charCodeAt(i) & 255); + return bytes; + }, + bytesToString: function(bytes) { + for (var str = [], i = 0; i < bytes.length; i++) str.push(String.fromCharCode(bytes[i])); + return str.join(""); + } + } + }; + module.exports = charenc; + }, module => { + /*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + module.exports = function(obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer); + }; + function isBuffer(obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj); + } + function isSlowBuffer(obj) { + return typeof obj.readFloatLE === "function" && typeof obj.slice === "function" && isBuffer(obj.slice(0, 0)); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); + function Info(_ref) { + var options = _ref.options; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_0__["default"])("lotta-info", "lotta-info-align-" + options.align, { + "lotta-info-has-background": options.background + }), + dangerouslySetInnerHTML: { + __html: options.info + } + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = Info; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); + function CallToAction(_ref) { + var options = _ref.options; + var cta = options.cta, target = options.target, style = options.style, label = options.label; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + children: cta === "customize" ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("button", { + type: "button", + className: (0, clsx__WEBPACK_IMPORTED_MODULE_0__["default"])({ + "lotta-cta-button": style === "button", + "lotta-cta-link": style !== "button" + }), + onClick: function onClick() { + if (window.Lotta && window.Lotta.expand) { + window.Lotta.expand(target); + } + }, + children: label + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("a", { + href: target, + target: "_blank", + className: (0, clsx__WEBPACK_IMPORTED_MODULE_0__["default"])({ + "lotta-cta-button": style === "button", + "lotta-cta-link": style !== "button" + }), + children: label + }) + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = CallToAction; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _yaireo_tagify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(301); + var _yaireo_tagify__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_yaireo_tagify__WEBPACK_IMPORTED_MODULE_1__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function tagTemplate(tagData) { + return "\n \n \n
\n ").concat(tagData.label, "\n
\n
\n "); + } + function suggestionItemTemplate(tagData) { + return "\n
\n ').concat(tagData.label, "\n
\n "); + } + var Tags = function(_Component) { + _inherits(Tags, _Component); + var _super = _createSuper(Tags); + function Tags() { + var _this; + _classCallCheck(this, Tags); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "tagifyRef", (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRef)()); + _defineProperty(_assertThisInitialized(_this), "tagify", null); + _defineProperty(_assertThisInitialized(_this), "onChange", (function(ev) { + var value = ev.target.value ? JSON.parse(ev.target.value).map((function(e) { + return e.value; + })) : []; + _this.props.onChange(value); + })); + return _this; + } + _createClass(Tags, [ { + key: "componentWillUnmount", + value: function componentWillUnmount() { + if (this.tagify) { + this.tagify.destroy(); + } + } + }, { + key: "componentDidMount", + value: function componentDidMount() { + if (this.tagifyRef.current) { + this.tagify = new (_yaireo_tagify__WEBPACK_IMPORTED_MODULE_1___default())(this.tagifyRef.current, { + tagTextProp: "label", + skipInvalid: !!this.props.options.enforceWhitelist, + enforceWhitelist: !!this.props.options.enforceWhitelist, + whitelist: this.props.options.whitelist || [], + templates: { + tag: tagTemplate, + dropdownItem: suggestionItemTemplate + }, + dropdown: { + closeOnSelect: false, + enabled: 0, + searchKeys: [ "value", "label" ] + } + }); + } + } + }, { + key: "render", + value: function render() { + var value = this.props.value; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", { + className: "lotta-tags", + ref: this.tagifyRef, + type: "text", + value, + onChange: this.onChange + }); + } + } ]); + return Tags; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Tags; + }, function(module) { + !function(t, e) { + true ? module.exports = e() : 0; + }(this, (function() { + "use strict"; + function t(t, e) { + var i = Object.keys(t); + if (Object.getOwnPropertySymbols) { + var s = Object.getOwnPropertySymbols(t); + e && (s = s.filter((function(e) { + return Object.getOwnPropertyDescriptor(t, e).enumerable; + }))), i.push.apply(i, s); + } + return i; + } + function e(e) { + for (var s = 1; s < arguments.length; s++) { + var a = null != arguments[s] ? arguments[s] : {}; + s % 2 ? t(Object(a), !0).forEach((function(t) { + i(e, t, a[t]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : t(Object(a)).forEach((function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t)); + })); + } + return e; + } + function i(t, e, i) { + return e in t ? Object.defineProperty(t, e, { + value: i, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = i, t; + } + const s = (t, e, i, s) => (t = "" + t, e = "" + e, s && (t = t.trim(), e = e.trim()), + i ? t == e : t.toLowerCase() == e.toLowerCase()), a = (t, e) => t && Array.isArray(t) && t.map((t => n(t, e))); + function n(t, e) { + var i, s = {}; + for (i in t) e.indexOf(i) < 0 && (s[i] = t[i]); + return s; + } + function o(t) { + var e = document.createElement("div"); + return t.replace(/\&#?[0-9a-z]+;/gi, (function(t) { + return e.innerHTML = t, e.innerText; + })); + } + function r(t) { + return (new DOMParser).parseFromString(t.trim(), "text/html").body.firstElementChild; + } + function l(t, e) { + for (e = e || "previous"; t = t[e + "Sibling"]; ) if (3 == t.nodeType) return t; + } + function d(t) { + return "string" == typeof t ? t.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/`|'/g, "'") : t; + } + function h(t) { + var e = Object.prototype.toString.call(t).split(" ")[1].slice(0, -1); + return t === Object(t) && "Array" != e && "Function" != e && "RegExp" != e && "HTMLUnknownElement" != e; + } + function g(t, e, i) { + function s(t, e) { + for (var i in e) if (e.hasOwnProperty(i)) { + if (h(e[i])) { + h(t[i]) ? s(t[i], e[i]) : t[i] = Object.assign({}, e[i]); + continue; + } + if (Array.isArray(e[i])) { + t[i] = Object.assign([], e[i]); + continue; + } + t[i] = e[i]; + } + } + return t instanceof Object || (t = {}), s(t, e), i && s(t, i), t; + } + function p() { + const t = [], e = {}; + for (let i of arguments) for (let s of i) h(s) ? e[s.value] || (t.push(s), e[s.value] = 1) : t.includes(s) || t.push(s); + return t; + } + function c(t) { + return String.prototype.normalize ? "string" == typeof t ? t.normalize("NFD").replace(/[\u0300-\u036f]/g, "") : void 0 : t; + } + var u = () => /(?=.*chrome)(?=.*android)/i.test(navigator.userAgent); + function m() { + return ([ 1e7 ] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (t => (t ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> t / 4).toString(16))); + } + function v(t) { + return t && t.classList && t.classList.contains(this.settings.classNames.tag); + } + var f = { + delimiters: ",", + pattern: null, + tagTextProp: "value", + maxTags: 1 / 0, + callbacks: {}, + addTagOnBlur: !0, + duplicates: !1, + whitelist: [], + blacklist: [], + enforceWhitelist: !1, + userInput: !0, + keepInvalidTags: !1, + mixTagsAllowedAfter: /,|\.|\:|\s/, + mixTagsInterpolator: [ "[[", "]]" ], + backspace: !0, + skipInvalid: !1, + pasteAsTags: !0, + editTags: { + clicks: 2, + keepInvalid: !0 + }, + transformTag: () => {}, + trim: !0, + a11y: { + focusableTags: !1 + }, + mixMode: { + insertAfterTag: " " + }, + autoComplete: { + enabled: !0, + rightKey: !1 + }, + classNames: { + namespace: "tagify", + mixMode: "tagify--mix", + selectMode: "tagify--select", + input: "tagify__input", + focus: "tagify--focus", + tagNoAnimation: "tagify--noAnim", + tagInvalid: "tagify--invalid", + tagNotAllowed: "tagify--notAllowed", + scopeLoading: "tagify--loading", + hasMaxTags: "tagify--hasMaxTags", + hasNoTags: "tagify--noTags", + empty: "tagify--empty", + inputInvalid: "tagify__input--invalid", + dropdown: "tagify__dropdown", + dropdownWrapper: "tagify__dropdown__wrapper", + dropdownHeader: "tagify__dropdown__header", + dropdownFooter: "tagify__dropdown__footer", + dropdownItem: "tagify__dropdown__item", + dropdownItemActive: "tagify__dropdown__item--active", + dropdownInital: "tagify__dropdown--initial", + tag: "tagify__tag", + tagText: "tagify__tag-text", + tagX: "tagify__tag__removeBtn", + tagLoading: "tagify__tag--loading", + tagEditing: "tagify__tag--editable", + tagFlash: "tagify__tag--flash", + tagHide: "tagify__tag--hide" + }, + dropdown: { + classname: "", + enabled: 2, + maxItems: 10, + searchKeys: [ "value", "searchBy" ], + fuzzySearch: !0, + caseSensitive: !1, + accentedSearch: !0, + highlightFirst: !1, + closeOnSelect: !0, + clearOnSelect: !0, + position: "all", + appendTarget: null + }, + hooks: { + beforeRemoveTag: () => Promise.resolve(), + beforePaste: () => Promise.resolve(), + suggestionClick: () => Promise.resolve() + } + }; + function T() { + this.dropdown = {}; + for (let t in this._dropdown) this.dropdown[t] = "function" == typeof this._dropdown[t] ? this._dropdown[t].bind(this) : this._dropdown[t]; + this.dropdown.refs(); + } + var w = { + refs() { + this.DOM.dropdown = this.parseTemplate("dropdown", [ this.settings ]), this.DOM.dropdown.content = this.DOM.dropdown.querySelector("[data-selector='tagify-dropdown-wrapper']"); + }, + show(t) { + var e, i, a, n = this.settings, o = "mix" == n.mode && !n.enforceWhitelist, r = !n.whitelist || !n.whitelist.length, l = "manual" == n.dropdown.position; + if (t = void 0 === t ? this.state.inputText : t, (!r || o || n.templates.dropdownItemNoMatch) && !1 !== n.dropdown.enable && !this.state.isLoading) { + if (clearTimeout(this.dropdownHide__bindEventsTimeout), this.suggestedListItems = this.dropdown.filterListItems(t), + t && !this.suggestedListItems.length && (this.trigger("dropdown:noMatch", t), n.templates.dropdownItemNoMatch && (a = n.templates.dropdownItemNoMatch.call(this, { + value: t + }))), !a) { + if (this.suggestedListItems.length) t && o && !this.state.editing.scope && !s(this.suggestedListItems[0].value, t) && this.suggestedListItems.unshift({ + value: t + }); else { + if (!t || !o || this.state.editing.scope) return this.input.autocomplete.suggest.call(this), + void this.dropdown.hide(); + this.suggestedListItems = [ { + value: t + } ]; + } + i = "" + (h(e = this.suggestedListItems[0]) ? e.value : e), n.autoComplete && i && 0 == i.indexOf(t) && this.input.autocomplete.suggest.call(this, e); + } + this.dropdown.fill(a), n.dropdown.highlightFirst && this.dropdown.highlightOption(this.DOM.dropdown.content.children[0]), + this.state.dropdown.visible || setTimeout(this.dropdown.events.binding.bind(this)), + this.state.dropdown.visible = t || !0, this.state.dropdown.query = t, this.setStateSelection(), + l || setTimeout((() => { + this.dropdown.position(), this.dropdown.render(); + })), setTimeout((() => { + this.trigger("dropdown:show", this.DOM.dropdown); + })); + } + }, + hide(t) { + var e = this.DOM, i = e.scope, s = e.dropdown, a = "manual" == this.settings.dropdown.position && !t; + if (s && document.body.contains(s) && !a) return window.removeEventListener("resize", this.dropdown.position), + this.dropdown.events.binding.call(this, !1), i.setAttribute("aria-expanded", !1), + s.parentNode.removeChild(s), setTimeout((() => { + this.state.dropdown.visible = !1; + }), 100), this.state.dropdown.query = this.state.ddItemData = this.state.ddItemElm = this.state.selection = null, + this.state.tag && this.state.tag.value.length && (this.state.flaggedTags[this.state.tag.baseOffset] = this.state.tag), + this.trigger("dropdown:hide", s), this; + }, + toggle(t) { + this.dropdown[this.state.dropdown.visible && !t ? "hide" : "show"](); + }, + render() { + var t, e, i, s = (t = this.DOM.dropdown, (i = t.cloneNode(!0)).style.cssText = "position:fixed; top:-9999px; opacity:0", + document.body.appendChild(i), e = i.clientHeight, i.parentNode.removeChild(i), e), a = this.settings; + return "number" == typeof a.dropdown.enabled && a.dropdown.enabled >= 0 ? (this.DOM.scope.setAttribute("aria-expanded", !0), + document.body.contains(this.DOM.dropdown) || (this.DOM.dropdown.classList.add(a.classNames.dropdownInital), + this.dropdown.position(s), a.dropdown.appendTarget.appendChild(this.DOM.dropdown), + setTimeout((() => this.DOM.dropdown.classList.remove(a.classNames.dropdownInital)))), + this) : this; + }, + fill(t) { + t = "string" == typeof t ? t : this.dropdown.createListHTML(t || this.suggestedListItems); + var e, i = this.settings.templates.dropdownContent.call(this, t); + this.DOM.dropdown.content.innerHTML = (e = i) ? e.replace(/\>[\r\n ]+\<").replace(/(<.*?>)|\s+/g, ((t, e) => e || " ")) : ""; + }, + refilter(t) { + t = t || this.state.dropdown.query || "", this.suggestedListItems = this.dropdown.filterListItems(t), + this.dropdown.fill(), this.suggestedListItems.length || this.dropdown.hide(), this.trigger("dropdown:updated", this.DOM.dropdown); + }, + position(t) { + var e = this.settings.dropdown; + if ("manual" != e.position) { + var i, s, a, n, o, r, l = this.DOM.dropdown, d = e.placeAbove, h = document.documentElement.clientHeight, g = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) > 480 ? e.position : "all", p = this.DOM["input" == g ? "input" : "scope"]; + t = t || l.clientHeight, this.state.dropdown.visible && ("text" == g ? (a = (i = this.getCaretGlobalPosition()).bottom, + s = i.top, n = i.left, o = "auto") : (r = function(t) { + for (var e = 0, i = 0; t; ) e += t.offsetLeft || 0, i += t.offsetTop || 0, t = t.parentNode; + return { + left: e, + top: i + }; + }(this.settings.dropdown.appendTarget), s = (i = p.getBoundingClientRect()).top - r.top, + a = i.bottom - 1 - r.top, n = i.left - r.left, o = i.width + "px"), s = Math.floor(s), + a = Math.ceil(a), d = void 0 === d ? h - i.bottom < t : d, l.style.cssText = "left:" + (n + window.pageXOffset) + "px; width:" + o + ";" + (d ? "top: " + (s + window.pageYOffset) + "px" : "top: " + (a + window.pageYOffset) + "px"), + l.setAttribute("placement", d ? "top" : "bottom"), l.setAttribute("position", g)); + } + }, + events: { + binding(t = !0) { + var e = this.dropdown.events.callbacks, i = this.listeners.dropdown = this.listeners.dropdown || { + position: this.dropdown.position.bind(this), + onKeyDown: e.onKeyDown.bind(this), + onMouseOver: e.onMouseOver.bind(this), + onMouseLeave: e.onMouseLeave.bind(this), + onClick: e.onClick.bind(this), + onScroll: e.onScroll.bind(this) + }, s = t ? "addEventListener" : "removeEventListener"; + "manual" != this.settings.dropdown.position && (window[s]("resize", i.position), + window[s]("keydown", i.onKeyDown)), this.DOM.dropdown[s]("mouseover", i.onMouseOver), + this.DOM.dropdown[s]("mouseleave", i.onMouseLeave), this.DOM.dropdown[s]("mousedown", i.onClick), + this.DOM.dropdown.content[s]("scroll", i.onScroll); + }, + callbacks: { + onKeyDown(t) { + var e = this.DOM.dropdown.querySelector(this.settings.classNames.dropdownItemActiveSelector), i = this.dropdown.getSuggestionDataByNode(e); + switch (t.key) { + case "ArrowDown": + case "ArrowUp": + case "Down": + case "Up": + var s; + t.preventDefault(), e && (e = e[("ArrowUp" == t.key || "Up" == t.key ? "previous" : "next") + "ElementSibling"]), + e || (s = this.DOM.dropdown.content.children, e = s["ArrowUp" == t.key || "Up" == t.key ? s.length - 1 : 0]), + i = this.dropdown.getSuggestionDataByNode(e), this.dropdown.highlightOption(e, !0); + break; + + case "Escape": + case "Esc": + this.dropdown.hide(); + break; + + case "ArrowRight": + if (this.state.actions.ArrowLeft) return; + + case "Tab": + if ("mix" != this.settings.mode && e && !this.settings.autoComplete.rightKey && !this.state.editing) { + t.preventDefault(); + var a = this.dropdown.getMappedValue(i); + return this.input.autocomplete.set.call(this, a), !1; + } + return !0; + + case "Enter": + t.preventDefault(), this.settings.hooks.suggestionClick(t, { + tagify: this, + tagData: i, + suggestionElm: e + }).then((() => { + if (e) return this.dropdown.selectOption(e); + this.dropdown.hide(), "mix" != this.settings.mode && this.addTags(this.state.inputText.trim(), !0); + })).catch((t => t)); + break; + + case "Backspace": + { + if ("mix" == this.settings.mode || this.state.editing.scope) return; + const t = this.input.raw.call(this); + "" != t && 8203 != t.charCodeAt(0) || (!0 === this.settings.backspace ? this.removeTags() : "edit" == this.settings.backspace && setTimeout(this.editTag.bind(this), 0)); + } + } + }, + onMouseOver(t) { + var e = t.target.closest(this.settings.classNames.dropdownItemSelector); + e && this.dropdown.highlightOption(e); + }, + onMouseLeave(t) { + this.dropdown.highlightOption(); + }, + onClick(t) { + if (0 == t.button && t.target != this.DOM.dropdown && t.target != this.DOM.dropdown.content) { + var e = t.target.closest(this.settings.classNames.dropdownItemSelector), i = this.dropdown.getSuggestionDataByNode(e); + this.state.actions.selectOption = !0, setTimeout((() => this.state.actions.selectOption = !1), 50), + this.settings.hooks.suggestionClick(t, { + tagify: this, + tagData: i, + suggestionElm: e + }).then((() => { + e ? this.dropdown.selectOption(e) : this.dropdown.hide(); + })).catch((t => console.warn(t))); + } + }, + onScroll(t) { + var e = t.target, i = e.scrollTop / (e.scrollHeight - e.parentNode.clientHeight) * 100; + this.trigger("dropdown:scroll", { + percentage: Math.round(i) + }); + } + } + }, + getSuggestionDataByNode(t) { + var e = t ? +t.getAttribute("tagifySuggestionIdx") : -1; + return this.suggestedListItems[e] || null; + }, + highlightOption(t, e) { + var i, s = this.settings.classNames.dropdownItemActive; + if (this.state.ddItemElm && (this.state.ddItemElm.classList.remove(s), this.state.ddItemElm.removeAttribute("aria-selected")), + !t) return this.state.ddItemData = null, this.state.ddItemElm = null, void this.input.autocomplete.suggest.call(this); + i = this.suggestedListItems[this.getNodeIndex(t)], this.state.ddItemData = i, this.state.ddItemElm = t, + t.classList.add(s), t.setAttribute("aria-selected", !0), e && (t.parentNode.scrollTop = t.clientHeight + t.offsetTop - t.parentNode.clientHeight), + this.settings.autoComplete && (this.input.autocomplete.suggest.call(this, i), this.dropdown.position()); + }, + selectOption(t) { + var e = this.settings.dropdown, i = e.clearOnSelect, s = e.closeOnSelect; + if (!t) return this.addTags(this.state.inputText, !0), void (s && this.dropdown.hide()); + var a = t.getAttribute("tagifySuggestionIdx"), n = this.suggestedListItems[+a]; + this.trigger("dropdown:select", { + data: n, + elm: t + }), a && n ? (this.state.editing ? this.onEditTagDone(null, g({ + __isValid: !0 + }, this.normalizeTags([ n ])[0])) : this["mix" == this.settings.mode ? "addMixTags" : "addTags"]([ n ], i), + this.DOM.input.parentNode && (setTimeout((() => { + this.DOM.input.focus(), this.toggleFocusClass(!0); + })), s ? setTimeout(this.dropdown.hide.bind(this)) : this.dropdown.refilter())) : this.dropdown.hide(); + }, + selectAll(t) { + this.suggestedListItems.length = 0, this.dropdown.hide(), this.dropdown.filterListItems(""); + var e = this.dropdown.filterListItems(""); + return t || (e = this.state.dropdown.suggestions), this.addTags(e, !0), this; + }, + filterListItems(t, e) { + var i, s, a, n, o, r = this.settings, l = r.dropdown, d = (e = e || {}, t = "select" == r.mode && this.value.length && this.value[0][r.tagTextProp] == t ? "" : t, + []), g = [], p = r.whitelist, u = l.maxItems >= 0 ? l.maxItems : 1 / 0, m = l.searchKeys, v = 0; + if (!t || !m.length) return d = r.duplicates ? p : p.filter((t => !this.isTagDuplicate(h(t) ? t.value : t))), + this.state.dropdown.suggestions = d, d.slice(0, u); + function f(t, e) { + return e.toLowerCase().split(" ").every((e => t.includes(e.toLowerCase()))); + } + for (o = l.caseSensitive ? "" + t : ("" + t).toLowerCase(); v < p.length; v++) { + let t, u; + i = p[v] instanceof Object ? p[v] : { + value: p[v] + }; + let T = !Object.keys(i).some((t => m.includes(t))) ? [ "value" ] : m; + l.fuzzySearch && !e.exact ? (a = T.reduce(((t, e) => t + " " + (i[e] || "")), "").toLowerCase().trim(), + l.accentedSearch && (a = c(a), o = c(o)), t = 0 == a.indexOf(o), u = a === o, s = f(a, o)) : (t = !0, + s = T.some((t => { + var s = "" + (i[t] || ""); + return l.accentedSearch && (s = c(s), o = c(o)), l.caseSensitive || (s = s.toLowerCase()), + u = s === o, e.exact ? s === o : 0 == s.indexOf(o); + }))), n = !r.duplicates && this.isTagDuplicate(h(i) ? i.value : i), s && !n && (u && t ? g.push(i) : "startsWith" == l.sortby && t ? d.unshift(i) : d.push(i)); + } + return this.state.dropdown.suggestions = g.concat(d), "function" == typeof l.sortby ? l.sortby(g.concat(d), o) : g.concat(d).slice(0, u); + }, + getMappedValue(t) { + var e = this.settings.dropdown.mapValueTo; + return e ? "function" == typeof e ? e(t) : t[e] || t.value : t.value; + }, + createListHTML(t) { + return g([], t).map(((t, e) => { + "string" != typeof t && "number" != typeof t || (t = { + value: t + }); + var i = this.dropdown.getMappedValue(t); + t.value = "string" == typeof i ? d(i) : i; + var s = this.settings.templates.dropdownItem.apply(this, [ t, this ]); + return s = s.replace(/\s*tagifySuggestionIdx=(["'])(.*?)\1/gim, "").replace(">", ` tagifySuggestionIdx="${e}">`); + })).join(""); + } + }; + const b = "@yaireo/tagify/"; + var y, x = { + empty: "empty", + exceed: "number of tags exceeded", + pattern: "pattern mismatch", + duplicate: "already exists", + notAllowed: "not allowed" + }, D = { + wrapper: (t, e) => `\n \n ​\n `, + tag(t, e) { + var i = this.settings; + return `\n \n
\n ${t[i.tagTextProp] || t.value}\n
\n
`; + }, + dropdown(t) { + var e = t.dropdown, i = "manual" == e.position, s = `${t.classNames.dropdown}`; + return `
\n
\n
`; + }, + dropdownContent(t) { + var e = this.settings, i = this.state.dropdown.suggestions; + return `\n ${e.templates.dropdownHeader.call(this, i)}\n ${t}\n ${e.templates.dropdownFooter.call(this, i)}\n `; + }, + dropdownItem(t, e) { + return `
${t.value}
`; + }, + dropdownHeader: t => "", + dropdownFooter(t) { + var e = t.length - this.settings.dropdown.maxItems; + return e > 0 ? `
\n ${e} more items. Refine your search.\n
` : ""; + }, + dropdownItemNoMatch: null + }; + var O = { + customBinding() { + this.customEventsList.forEach((t => { + this.on(t, this.settings.callbacks[t]); + })); + }, + binding(t = !0) { + var e, i = this.events.callbacks, s = t ? "addEventListener" : "removeEventListener"; + if (!this.state.mainEvents || !t) { + for (var a in this.state.mainEvents = t, t && !this.listeners.main && (this.events.bindGlobal.call(this), + this.settings.isJQueryPlugin && jQuery(this.DOM.originalInput).on("tagify.removeAllTags", this.removeAllTags.bind(this))), + e = this.listeners.main = this.listeners.main || { + focus: [ "input", i.onFocusBlur.bind(this) ], + keydown: [ "input", i.onKeydown.bind(this) ], + click: [ "scope", i.onClickScope.bind(this) ], + dblclick: [ "scope", i.onDoubleClickScope.bind(this) ], + paste: [ "input", i.onPaste.bind(this) ], + drop: [ "input", i.onDrop.bind(this) ] + }) this.DOM[e[a][0]][s](a, e[a][1]); + clearInterval(this.listeners.main.originalInputValueObserverInterval), this.listeners.main.originalInputValueObserverInterval = setInterval(i.observeOriginalInputValue.bind(this), 500); + var n = this.listeners.main.inputMutationObserver || new MutationObserver(i.onInputDOMChange.bind(this)); + n && n.disconnect(), "mix" == this.settings.mode && n.observe(this.DOM.input, { + childList: !0 + }); + } + }, + bindGlobal(t) { + var e, i = this.events.callbacks, s = t ? "removeEventListener" : "addEventListener"; + if (t || !this.listeners.global) for (e of (this.listeners.global = this.listeners && this.listeners.global || [ { + type: this.isIE ? "keydown" : "input", + target: this.DOM.input, + cb: i[this.isIE ? "onInputIE" : "onInput"].bind(this) + }, { + type: "keydown", + target: window, + cb: i.onWindowKeyDown.bind(this) + }, { + type: "blur", + target: this.DOM.input, + cb: i.onFocusBlur.bind(this) + } ], this.listeners.global)) e.target[s](e.type, e.cb); + }, + unbindGlobal() { + this.events.bindGlobal.call(this, !0); + }, + callbacks: { + onFocusBlur(t) { + var e = t.target ? this.trim(t.target.textContent) : "", i = this.settings, s = t.type, a = i.dropdown.enabled >= 0, n = { + relatedTarget: t.relatedTarget + }, o = this.state.actions.selectOption && (a || !i.dropdown.closeOnSelect), r = this.state.actions.addNew && a, l = t.relatedTarget && v.call(this, t.relatedTarget) && this.DOM.scope.contains(t.relatedTarget); + if ("blur" == s) { + if (t.relatedTarget === this.DOM.scope) return this.dropdown.hide(), void this.DOM.input.focus(); + this.postUpdate(), this.triggerChangeEvent(); + } + if (!o && !r) if (this.state.hasFocus = "focus" == s && +new Date, this.toggleFocusClass(this.state.hasFocus), + "mix" != i.mode) { + if ("focus" == s) return this.trigger("focus", n), void (0 !== i.dropdown.enabled && i.userInput || this.dropdown.show(this.value.length ? "" : void 0)); + if ("blur" == s) { + var d, h; + this.trigger("blur", n), this.loading(!1); + let t = i.enforceWhitelist ? !!this.getWhitelistItem(null === (d = this.value) || void 0 === d || null === (h = d[0]) || void 0 === h ? void 0 : h.value) : i.keepInvalidTags; + "select" == this.settings.mode && l && (e = ""), "select" !== this.settings.mode && e && !this.state.actions.selectOption && i.addTagOnBlur && this.addTags(e, !0), + "select" != this.settings.mode || e && t || this.removeTags(); + } + this.DOM.input.removeAttribute("style"), this.dropdown.hide(); + } else "focus" == s ? this.trigger("focus", n) : "blur" == t.type && (this.trigger("blur", n), + this.loading(!1), this.dropdown.hide(), this.state.dropdown.visible = void 0, this.setStateSelection()); + }, + onWindowKeyDown(t) { + var e, i = document.activeElement; + if (v.call(this, i) && this.DOM.scope.contains(document.activeElement)) switch (e = i.nextElementSibling, + t.key) { + case "Backspace": + this.settings.readonly || (this.removeTags(i), (e || this.DOM.input).focus()); + break; + + case "Enter": + setTimeout(this.editTag.bind(this), 0, i); + } + }, + onKeydown(t) { + var e = this.settings; + "select" == e.mode && e.enforceWhitelist && this.value.length && "Tab" != t.key && t.preventDefault(); + var i = this.trim(t.target.textContent); + if (this.trigger("keydown", { + originalEvent: this.cloneEvent(t) + }), "mix" == e.mode) { + switch (t.key) { + case "Left": + case "ArrowLeft": + this.state.actions.ArrowLeft = !0; + break; + + case "Delete": + case "Backspace": + if (this.state.editing) return; + var s, a, n, r = document.getSelection(), d = "Delete" == t.key && r.anchorOffset == (r.anchorNode.length || 0), h = r.anchorNode.previousSibling, g = 1 == r.anchorNode.nodeType || !r.anchorOffset && h && 1 == h.nodeType && r.anchorNode.previousSibling, p = o(this.DOM.input.innerHTML), c = this.getTagElms(); + if ("edit" == e.backspace && g) return s = 1 == r.anchorNode.nodeType ? null : r.anchorNode.previousElementSibling, + setTimeout(this.editTag.bind(this), 0, s), void t.preventDefault(); + if (u() && g) return n = l(g), g.hasAttribute("readonly") || g.remove(), this.DOM.input.focus(), + void setTimeout((() => { + this.placeCaretAfterNode(n), this.DOM.input.click(); + })); + if ("BR" == r.anchorNode.nodeName) return; + if ((d || g) && 1 == r.anchorNode.nodeType ? a = 0 == r.anchorOffset ? d ? c[0] : null : c[r.anchorOffset - 1] : d ? a = r.anchorNode.nextElementSibling : g && (a = g), + 3 == r.anchorNode.nodeType && !r.anchorNode.nodeValue && r.anchorNode.previousElementSibling && t.preventDefault(), + (g || d) && !e.backspace) return void t.preventDefault(); + if ("Range" != r.type && !r.anchorOffset && r.anchorNode == this.DOM.input && "Delete" != t.key) return void t.preventDefault(); + if ("Range" != r.type && a && a.hasAttribute("readonly")) return void this.placeCaretAfterNode(l(a)); + clearTimeout(y), y = setTimeout((() => { + var t = document.getSelection(), e = o(this.DOM.input.innerHTML), i = !d && t.anchorNode.previousSibling; + if (e.length >= p.length && i) if (v.call(this, i) && !i.hasAttribute("readonly")) { + if (this.removeTags(i), this.fixFirefoxLastTagNoCaret(), 2 == this.DOM.input.children.length && "BR" == this.DOM.input.children[1].tagName) return this.DOM.input.innerHTML = "", + this.value.length = 0, !0; + } else i.remove(); + this.value = [].map.call(c, ((t, e) => { + var i = this.tagData(t); + if (t.parentNode || i.readonly) return i; + this.trigger("remove", { + tag: t, + index: e, + data: i + }); + })).filter((t => t)); + }), 20); + } + return !0; + } + switch (t.key) { + case "Backspace": + "select" == e.mode && e.enforceWhitelist && this.value.length ? this.removeTags() : this.state.dropdown.visible && "manual" != e.dropdown.position || "" != t.target.textContent && 8203 != i.charCodeAt(0) || (!0 === e.backspace ? this.removeTags() : "edit" == e.backspace && setTimeout(this.editTag.bind(this), 0)); + break; + + case "Esc": + case "Escape": + if (this.state.dropdown.visible) return; + t.target.blur(); + break; + + case "Down": + case "ArrowDown": + this.state.dropdown.visible || this.dropdown.show(); + break; + + case "ArrowRight": + { + let t = this.state.inputSuggestion || this.state.ddItemData; + if (t && e.autoComplete.rightKey) return void this.addTags([ t ], !0); + break; + } + + case "Tab": + { + let s = "select" == e.mode; + if (!i || s) return !0; + t.preventDefault(); + } + + case "Enter": + if (this.state.dropdown.visible || 229 == t.keyCode) return; + t.preventDefault(), setTimeout((() => { + this.state.actions.selectOption || this.addTags(i, !0); + })); + } + }, + onInput(t) { + if (this.postUpdate(), "mix" == this.settings.mode) return this.events.callbacks.onMixTagsInput.call(this, t); + var e = this.input.normalize.call(this), i = e.length >= this.settings.dropdown.enabled, s = { + value: e, + inputElm: this.DOM.input + }; + s.isValid = this.validateTag({ + value: e + }), this.state.inputText != e && (this.input.set.call(this, e, !1), -1 != e.search(this.settings.delimiters) ? this.addTags(e) && this.input.set.call(this) : this.settings.dropdown.enabled >= 0 && this.dropdown[i ? "show" : "hide"](e), + this.trigger("input", s)); + }, + onMixTagsInput(t) { + var e, i, s, a, n, o, r, l, d = this.settings, h = this.value.length, p = this.getTagElms(), c = document.createDocumentFragment(), m = window.getSelection().getRangeAt(0), v = [].map.call(p, (t => this.tagData(t).value)); + if ("deleteContentBackward" == t.inputType && u() && this.events.callbacks.onKeydown.call(this, { + target: t.target, + key: "Backspace" + }), this.value.slice().forEach((t => { + t.readonly && !v.includes(t.value) && c.appendChild(this.createTagElem(t)); + })), c.childNodes.length && (m.insertNode(c), this.setRangeAtStartEnd(!1, c.lastChild)), + p.length != h) return this.value = [].map.call(this.getTagElms(), (t => this.tagData(t))), + void this.update({ + withoutChangeEvent: !0 + }); + if (this.hasMaxTags()) return !0; + if (window.getSelection && (o = window.getSelection()).rangeCount > 0 && 3 == o.anchorNode.nodeType) { + if ((m = o.getRangeAt(0).cloneRange()).collapse(!0), m.setStart(o.focusNode, 0), + s = (e = m.toString().slice(0, m.endOffset)).split(d.pattern).length - 1, (i = e.match(d.pattern)) && (a = e.slice(e.lastIndexOf(i[i.length - 1]))), + a) { + if (this.state.actions.ArrowLeft = !1, this.state.tag = { + prefix: a.match(d.pattern)[0], + value: a.replace(d.pattern, "") + }, this.state.tag.baseOffset = o.baseOffset - this.state.tag.value.length, l = this.state.tag.value.match(d.delimiters)) return this.state.tag.value = this.state.tag.value.replace(d.delimiters, ""), + this.state.tag.delimiters = l[0], this.addTags(this.state.tag.value, d.dropdown.clearOnSelect), + void this.dropdown.hide(); + n = this.state.tag.value.length >= d.dropdown.enabled; + try { + r = (r = this.state.flaggedTags[this.state.tag.baseOffset]).prefix == this.state.tag.prefix && r.value[0] == this.state.tag.value[0], + this.state.flaggedTags[this.state.tag.baseOffset] && !this.state.tag.value && delete this.state.flaggedTags[this.state.tag.baseOffset]; + } catch (t) {} + (r || s < this.state.mixMode.matchedPatternCount) && (n = !1); + } else this.state.flaggedTags = {}; + this.state.mixMode.matchedPatternCount = s; + } + setTimeout((() => { + this.update({ + withoutChangeEvent: !0 + }), this.trigger("input", g({}, this.state.tag, { + textContent: this.DOM.input.textContent + })), this.state.tag && this.dropdown[n ? "show" : "hide"](this.state.tag.value); + }), 10); + }, + onInputIE(t) { + var e = this; + setTimeout((function() { + e.events.callbacks.onInput.call(e, t); + })); + }, + observeOriginalInputValue() { + this.DOM.originalInput.value != this.DOM.originalInput.tagifyValue && this.loadOriginalValues(); + }, + onClickScope(t) { + var e = this.settings, i = t.target.closest("." + e.classNames.tag), s = +new Date - this.state.hasFocus; + if (t.target != this.DOM.scope) { + if (!t.target.classList.contains(e.classNames.tagX)) return i ? (this.trigger("click", { + tag: i, + index: this.getNodeIndex(i), + data: this.tagData(i), + originalEvent: this.cloneEvent(t) + }), void (1 !== e.editTags && 1 !== e.editTags.clicks || this.events.callbacks.onDoubleClickScope.call(this, t))) : void (t.target == this.DOM.input && ("mix" == e.mode && this.fixFirefoxLastTagNoCaret(), + s > 500) ? this.state.dropdown.visible ? this.dropdown.hide() : 0 === e.dropdown.enabled && "mix" != e.mode && this.dropdown.show(this.value.length ? "" : void 0) : "select" == e.mode && !this.state.dropdown.visible && this.dropdown.show()); + this.removeTags(t.target.parentNode); + } else this.state.hasFocus || this.DOM.input.focus(); + }, + onPaste(t) { + t.preventDefault(); + var e, i, s = this.settings; + if ("select" == s.mode && s.enforceWhitelist || !s.userInput) return !1; + s.readonly || (e = t.clipboardData || window.clipboardData, i = e.getData("Text"), + s.hooks.beforePaste(t, { + tagify: this, + pastedText: i, + clipboardData: e + }).then((e => { + void 0 === e && (e = i), e && (this.injectAtCaret(e, window.getSelection().getRangeAt(0)), + "mix" == this.settings.mode ? this.events.callbacks.onMixTagsInput.call(this, t) : this.settings.pasteAsTags ? this.addTags(this.state.inputText + e, !0) : this.state.inputText = e); + })).catch((t => t))); + }, + onDrop(t) { + t.preventDefault(); + }, + onEditTagInput(t, e) { + var i = t.closest("." + this.settings.classNames.tag), s = this.getNodeIndex(i), a = this.tagData(i), n = this.input.normalize.call(this, t), o = i.innerHTML != i.__tagifyTagData.__originalHTML, r = this.validateTag(g(i.__tagifyTagData, { + [this.settings.tagTextProp]: n + })); + o || !0 !== t.originalIsValid || (r = !0), i.classList.toggle(this.settings.classNames.tagInvalid, !0 !== r), + a.__isValid = r, i.title = !0 === r ? a.title || a.value : r, n.length >= this.settings.dropdown.enabled && (this.state.editing && (this.state.editing.value = n), + this.dropdown.show(n)), this.trigger("edit:input", { + tag: i, + index: s, + data: g({}, this.value[s], { + newValue: n + }), + originalEvent: this.cloneEvent(e) + }); + }, + onEditTagFocus(t) { + this.state.editing = { + scope: t, + input: t.querySelector("[contenteditable]") + }; + }, + onEditTagBlur(t) { + if (this.state.hasFocus || this.toggleFocusClass(), this.DOM.scope.contains(t)) { + var e, i, s = this.settings, a = t.closest("." + s.classNames.tag), n = this.input.normalize.call(this, t), o = this.tagData(a).__originalData, r = a.innerHTML != a.__tagifyTagData.__originalHTML, l = this.validateTag({ + [s.tagTextProp]: n + }); + if (n) if (r) { + if (e = this.hasMaxTags(), i = g({}, o, { + [s.tagTextProp]: this.trim(n), + value: n, + __isValid: l + }), s.transformTag.call(this, i, o), !0 !== (l = (!e || !0 === o.__isValid) && this.validateTag(i))) { + if (this.trigger("invalid", { + data: i, + tag: a, + message: l + }), s.editTags.keepInvalid) return; + s.keepInvalidTags ? i.__isValid = l : i = o; + } else s.keepInvalidTags && (delete i.title, delete i["aria-invalid"], delete i.class); + this.onEditTagDone(a, i); + } else this.onEditTagDone(a, o); else this.onEditTagDone(a); + } + }, + onEditTagkeydown(t, e) { + switch (this.trigger("edit:keydown", { + originalEvent: this.cloneEvent(t) + }), t.key) { + case "Esc": + case "Escape": + e.innerHTML = e.__tagifyTagData.__originalHTML; + + case "Enter": + case "Tab": + t.preventDefault(), t.target.blur(); + } + }, + onDoubleClickScope(t) { + var e, i, s = t.target.closest("." + this.settings.classNames.tag), a = this.settings; + s && a.userInput && (e = s.classList.contains(this.settings.classNames.tagEditing), + i = s.hasAttribute("readonly"), "select" == a.mode || a.readonly || e || i || !this.settings.editTags || this.editTag(s), + this.toggleFocusClass(!0), this.trigger("dblclick", { + tag: s, + index: this.getNodeIndex(s), + data: this.tagData(s) + })); + }, + onInputDOMChange(t) { + t.forEach((t => { + t.addedNodes.forEach((t => { + if (t) if ("

" == t.outerHTML) t.replaceWith(document.createElement("br")); else if (1 == t.nodeType && t.querySelector(this.settings.classNames.tagSelector)) { + let e = document.createTextNode(""); + 3 == t.childNodes[0].nodeType && "BR" != t.previousSibling.nodeName && (e = document.createTextNode("\n")), + t.replaceWith(e, ...[ ...t.childNodes ].slice(0, -1)), this.placeCaretAfterNode(e.previousSibling); + } else v.call(this, t) && t.previousSibling && "BR" == t.previousSibling.nodeName && (t.previousSibling.replaceWith("\n​"), + this.placeCaretAfterNode(t.previousSibling.previousSibling)); + })), t.removedNodes.forEach((t => { + t && "BR" == t.nodeName && v.call(this, e) && (this.removeTags(e), this.fixFirefoxLastTagNoCaret()); + })); + })); + var e = this.DOM.input.lastChild; + e && "" == e.nodeValue && e.remove(), e && "BR" == e.nodeName || this.DOM.input.appendChild(document.createElement("br")); + } + } + }; + function M(t, e) { + if (!t) { + console.warn("Tagify:", "input element not found", t); + const e = new Proxy(this, { + get: () => () => e + }); + return e; + } + if (t.previousElementSibling && t.previousElementSibling.classList.contains("tagify")) return console.warn("Tagify: ", "input element is already Tagified", t), + this; + var i; + g(this, function(t) { + var e = document.createTextNode(""); + function i(t, i, s) { + s && i.split(/\s+/g).forEach((i => e[t + "EventListener"].call(e, i, s))); + } + return { + off(t, e) { + return i("remove", t, e), this; + }, + on(t, e) { + return e && "function" == typeof e && i("add", t, e), this; + }, + trigger(i, s, a) { + var n; + if (a = a || { + cloneData: !0 + }, i) if (t.settings.isJQueryPlugin) "remove" == i && (i = "removeTag"), jQuery(t.DOM.originalInput).triggerHandler(i, [ s ]); else { + try { + var o = "object" == typeof s ? s : { + value: s + }; + if ((o = a.cloneData ? g({}, o) : o).tagify = this, s instanceof Object) for (var r in s) s[r] instanceof HTMLElement && (o[r] = s[r]); + n = new CustomEvent(i, { + detail: o + }); + } catch (t) { + console.warn(t); + } + e.dispatchEvent(n); + } + } + }; + }(this)), this.isFirefox = "undefined" != typeof InstallTrigger, this.isIE = window.document.documentMode, + e = e || {}, this.getPersistedData = (i = e.id, t => { + let e, s = "/" + t; + if (1 == localStorage.getItem(b + i + "/v", 1)) try { + e = JSON.parse(localStorage[b + i + s]); + } catch (t) {} + return e; + }), this.setPersistedData = (t => t ? (localStorage.setItem(b + t + "/v", 1), (e, i) => { + let s = "/" + i, a = JSON.stringify(e); + e && i && (localStorage.setItem(b + t + s, a), dispatchEvent(new Event("storage"))); + }) : () => {})(e.id), this.clearPersistedData = (t => e => { + const i = b + "/" + t + "/"; + if (e) localStorage.removeItem(i + e); else for (let t in localStorage) t.includes(i) && localStorage.removeItem(t); + })(e.id), this.applySettings(t, e), this.state = { + inputText: "", + editing: !1, + actions: {}, + mixMode: {}, + dropdown: {}, + flaggedTags: {} + }, this.value = [], this.listeners = {}, this.DOM = {}, this.build(t), T.call(this), + this.getCSSVars(), this.loadOriginalValues(), this.events.customBinding.call(this), + this.events.binding.call(this), t.autofocus && this.DOM.input.focus(); + } + return M.prototype = { + _dropdown: w, + helpers: { + sameStr: s, + removeCollectionProp: a, + omit: n, + isObject: h, + parseHTML: r, + escapeHTML: d, + extend: g, + concatWithoutDups: p, + getUID: m, + isNodeTag: v + }, + customEventsList: [ "change", "add", "remove", "invalid", "input", "click", "keydown", "focus", "blur", "edit:input", "edit:beforeUpdate", "edit:updated", "edit:start", "edit:keydown", "dropdown:show", "dropdown:hide", "dropdown:select", "dropdown:updated", "dropdown:noMatch", "dropdown:scroll" ], + dataProps: [ "__isValid", "__removed", "__originalData", "__originalHTML", "__tagId" ], + trim(t) { + return this.settings.trim && t && "string" == typeof t ? t.trim() : t; + }, + parseHTML: r, + templates: D, + parseTemplate(t, e) { + return t = this.settings.templates[t] || t, this.parseHTML(t.apply(this, e)); + }, + set whitelist(t) { + const e = t && Array.isArray(t); + this.settings.whitelist = e ? t : [], this.setPersistedData(e ? t : [], "whitelist"); + }, + get whitelist() { + return this.settings.whitelist; + }, + applySettings(t, i) { + f.templates = this.templates; + var s = this.settings = g({}, f, i); + s.disabled = t.hasAttribute("disabled"), s.readonly = s.readonly || t.hasAttribute("readonly"), + s.placeholder = d(t.getAttribute("placeholder") || s.placeholder || ""), s.required = t.hasAttribute("required"); + for (let t in s.classNames) Object.defineProperty(s.classNames, t + "Selector", { + get() { + return "." + this[t].split(" ")[0]; + } + }); + if (this.isIE && (s.autoComplete = !1), [ "whitelist", "blacklist" ].forEach((e => { + var i = t.getAttribute("data-" + e); + i && (i = i.split(s.delimiters)) instanceof Array && (s[e] = i); + })), "autoComplete" in i && !h(i.autoComplete) && (s.autoComplete = f.autoComplete, + s.autoComplete.enabled = i.autoComplete), "mix" == s.mode && (s.autoComplete.rightKey = !0, + s.delimiters = i.delimiters || null, s.tagTextProp && !s.dropdown.searchKeys.includes(s.tagTextProp) && s.dropdown.searchKeys.push(s.tagTextProp)), + t.pattern) try { + s.pattern = new RegExp(t.pattern); + } catch (t) {} + if (this.settings.delimiters) try { + s.delimiters = new RegExp(this.settings.delimiters, "g"); + } catch (t) {} + s.disabled && (s.userInput = !1), this.TEXTS = e(e({}, x), s.texts || {}), "select" != s.mode && s.userInput || (s.dropdown.enabled = 0), + s.dropdown.appendTarget = i.dropdown && i.dropdown.appendTarget ? i.dropdown.appendTarget : document.body; + let a = this.getPersistedData("whitelist"); + Array.isArray(a) && (this.whitelist = Array.isArray(s.whitelist) ? p(s.whitelist, a) : a); + }, + getAttributes(t) { + var e, i = this.getCustomAttributes(t), s = ""; + for (e in i) s += " " + e + (void 0 !== t[e] ? `="${i[e]}"` : ""); + return s; + }, + getCustomAttributes(t) { + if (!h(t)) return ""; + var e, i = {}; + for (e in t) "__" != e.slice(0, 2) && "class" != e && t.hasOwnProperty(e) && void 0 !== t[e] && (i[e] = d(t[e])); + return i; + }, + setStateSelection() { + var t = window.getSelection(), e = { + anchorOffset: t.anchorOffset, + anchorNode: t.anchorNode, + range: t.getRangeAt && t.rangeCount && t.getRangeAt(0) + }; + return this.state.selection = e, e; + }, + getCaretGlobalPosition() { + const t = document.getSelection(); + if (t.rangeCount) { + const e = t.getRangeAt(0), i = e.startContainer, s = e.startOffset; + let a, n; + if (s > 0) return n = document.createRange(), n.setStart(i, s - 1), n.setEnd(i, s), + a = n.getBoundingClientRect(), { + left: a.right, + top: a.top, + bottom: a.bottom + }; + if (i.getBoundingClientRect) return i.getBoundingClientRect(); + } + return { + left: -9999, + top: -9999 + }; + }, + getCSSVars() { + var t = getComputedStyle(this.DOM.scope, null); + var e; + this.CSSVars = { + tagHideTransition: (({value: t, unit: e}) => "s" == e ? 1e3 * t : t)(function(t) { + if (!t) return {}; + var e = (t = t.trim().split(" ")[0]).split(/\d+/g).filter((t => t)).pop().trim(); + return { + value: +t.split(e).filter((t => t))[0].trim(), + unit: e + }; + }((e = "tag-hide-transition", t.getPropertyValue("--" + e)))) + }; + }, + build(t) { + var e = this.DOM; + this.settings.mixMode.integrated ? (e.originalInput = null, e.scope = t, e.input = t) : (e.originalInput = t, + e.originalInput_tabIndex = t.tabIndex, e.scope = this.parseTemplate("wrapper", [ t, this.settings ]), + e.input = e.scope.querySelector(this.settings.classNames.inputSelector), t.parentNode.insertBefore(e.scope, t), + t.tabIndex = -1); + }, + destroy() { + this.events.unbindGlobal.call(this), this.DOM.scope.parentNode.removeChild(this.DOM.scope), + this.DOM.originalInput.tabIndex = this.DOM.originalInput_tabIndex, this.dropdown.hide(!0), + clearTimeout(this.dropdownHide__bindEventsTimeout); + }, + loadOriginalValues(t) { + var e, i = this.settings; + if (this.state.blockChangeEvent = !0, void 0 === t) { + const e = this.getPersistedData("value"); + t = e && !this.DOM.originalInput.value ? e : i.mixMode.integrated ? this.DOM.input.textContent : this.DOM.originalInput.value; + } + if (this.removeAllTags(), t) if ("mix" == i.mode) this.parseMixTags(this.trim(t)), + (e = this.DOM.input.lastChild) && "BR" == e.tagName || this.DOM.input.insertAdjacentHTML("beforeend", "
"); else { + try { + JSON.parse(t) instanceof Array && (t = JSON.parse(t)); + } catch (t) {} + this.addTags(t).forEach((t => t && t.classList.add(i.classNames.tagNoAnimation))); + } else this.postUpdate(); + this.state.lastOriginalValueReported = i.mixMode.integrated ? "" : this.DOM.originalInput.value, + this.state.blockChangeEvent = !1; + }, + cloneEvent(t) { + var e = {}; + for (var i in t) e[i] = t[i]; + return e; + }, + loading(t) { + return this.state.isLoading = t, this.DOM.scope.classList[t ? "add" : "remove"](this.settings.classNames.scopeLoading), + this; + }, + tagLoading(t, e) { + return t && t.classList[e ? "add" : "remove"](this.settings.classNames.tagLoading), + this; + }, + toggleClass(t, e) { + "string" == typeof t && this.DOM.scope.classList.toggle(t, e); + }, + toggleFocusClass(t) { + this.toggleClass(this.settings.classNames.focus, !!t); + }, + triggerChangeEvent: function() { + if (!this.settings.mixMode.integrated) { + var t = this.DOM.originalInput, e = this.state.lastOriginalValueReported !== t.value, i = new CustomEvent("change", { + bubbles: !0 + }); + e && (this.state.lastOriginalValueReported = t.value, i.simulated = !0, t._valueTracker && t._valueTracker.setValue(Math.random()), + t.dispatchEvent(i), this.trigger("change", this.state.lastOriginalValueReported), + t.value = this.state.lastOriginalValueReported); + } + }, + events: O, + fixFirefoxLastTagNoCaret() {}, + placeCaretAfterNode(t) { + if (t && t.parentNode) { + var e = t.nextSibling, i = window.getSelection(), s = i.getRangeAt(0); + i.rangeCount && (s.setStartAfter(e || t), s.collapse(!0), i.removeAllRanges(), i.addRange(s)); + } + }, + insertAfterTag(t, e) { + if (e = e || this.settings.mixMode.insertAfterTag, t && t.parentNode && e) return e = "string" == typeof e ? document.createTextNode(e) : e, + t.parentNode.insertBefore(e, t.nextSibling), e; + }, + editTag(t, e) { + t = t || this.getLastTag(), e = e || {}, this.dropdown.hide(); + var i = this.settings; + function s() { + return t.querySelector(i.classNames.tagTextSelector); + } + var a = s(), n = this.getNodeIndex(t), o = this.tagData(t), r = this.events.callbacks, l = this, d = !0; + if (a) { + if (!(o instanceof Object && "editable" in o) || o.editable) return a.setAttribute("contenteditable", !0), + t.classList.add(i.classNames.tagEditing), this.tagData(t, { + __originalData: g({}, o), + __originalHTML: t.innerHTML + }), a.addEventListener("focus", r.onEditTagFocus.bind(this, t)), a.addEventListener("blur", (function() { + setTimeout((() => r.onEditTagBlur.call(l, s()))); + })), a.addEventListener("input", r.onEditTagInput.bind(this, a)), a.addEventListener("keydown", (e => r.onEditTagkeydown.call(this, e, t))), + a.focus(), this.setRangeAtStartEnd(!1, a), e.skipValidation || (d = this.editTagToggleValidity(t)), + a.originalIsValid = d, this.trigger("edit:start", { + tag: t, + index: n, + data: o, + isValid: d + }), this; + } else console.warn("Cannot find element in Tag template: .", i.classNames.tagTextSelector); + }, + editTagToggleValidity(t, e) { + var i; + if (e = e || this.tagData(t)) return (i = !("__isValid" in e) || !0 === e.__isValid) || this.removeTagsFromValue(t), + this.update(), t.classList.toggle(this.settings.classNames.tagNotAllowed, !i), e.__isValid; + console.warn("tag has no data: ", t, e); + }, + onEditTagDone(t, e) { + e = e || {}; + var i = { + tag: t = t || this.state.editing.scope, + index: this.getNodeIndex(t), + previousData: this.tagData(t), + data: e + }; + this.trigger("edit:beforeUpdate", i, { + cloneData: !1 + }), this.state.editing = !1, delete e.__originalData, delete e.__originalHTML, t && e[this.settings.tagTextProp] ? (t = this.replaceTag(t, e), + this.editTagToggleValidity(t, e), this.settings.a11y.focusableTags ? t.focus() : this.placeCaretAfterNode(t.previousSibling)) : t && this.removeTags(t), + this.trigger("edit:updated", i), this.dropdown.hide(), this.settings.keepInvalidTags && this.reCheckInvalidTags(); + }, + replaceTag(t, e) { + e && e.value || (e = t.__tagifyTagData), e.__isValid && 1 != e.__isValid && g(e, this.getInvalidTagAttrs(e, e.__isValid)); + var i = this.createTagElem(e); + return t.parentNode.replaceChild(i, t), this.updateValueByDOMTags(), i; + }, + updateValueByDOMTags() { + this.value.length = 0, [].forEach.call(this.getTagElms(), (t => { + t.classList.contains(this.settings.classNames.tagNotAllowed.split(" ")[0]) || this.value.push(this.tagData(t)); + })), this.update(); + }, + setRangeAtStartEnd(t, e) { + t = "number" == typeof t ? t : !!t, e = (e = e || this.DOM.input).lastChild || e; + var i = document.getSelection(); + try { + i.rangeCount >= 1 && [ "Start", "End" ].forEach((s => i.getRangeAt(0)["set" + s](e, t || e.length))); + } catch (t) {} + }, + injectAtCaret(t, e) { + if (e = e || this.state.selection.range) return "string" == typeof t && (t = document.createTextNode(t)), + e.deleteContents(), e.insertNode(t), this.setRangeAtStartEnd(!1, t), this.updateValueByDOMTags(), + this.update(), this; + }, + input: { + set(t = "", e = !0) { + var i = this.settings.dropdown.closeOnSelect; + this.state.inputText = t, e && (this.DOM.input.innerHTML = d("" + t)), !t && i && this.dropdown.hide.bind(this), + this.input.autocomplete.suggest.call(this), this.input.validate.call(this); + }, + raw() { + return this.DOM.input.textContent; + }, + validate() { + var t = !this.state.inputText || !0 === this.validateTag({ + value: this.state.inputText + }); + return this.DOM.input.classList.toggle(this.settings.classNames.inputInvalid, !t), + t; + }, + normalize(t) { + var e = t || this.DOM.input, i = []; + e.childNodes.forEach((t => 3 == t.nodeType && i.push(t.nodeValue))), i = i.join("\n"); + try { + i = i.replace(/(?:\r\n|\r|\n)/g, this.settings.delimiters.source.charAt(0)); + } catch (t) {} + return i = i.replace(/\s/g, " "), this.settings.trim && (i = i.replace(/^\s+/, "")), + this.trim(i); + }, + autocomplete: { + suggest(t) { + if (this.settings.autoComplete.enabled) { + "string" == typeof (t = t || {}) && (t = { + value: t + }); + var e = t.value ? "" + t.value : "", i = e.substr(0, this.state.inputText.length).toLowerCase(), s = e.substring(this.state.inputText.length); + e && this.state.inputText && i == this.state.inputText.toLowerCase() ? (this.DOM.input.setAttribute("data-suggest", s), + this.state.inputSuggestion = t) : (this.DOM.input.removeAttribute("data-suggest"), + delete this.state.inputSuggestion); + } + }, + set(t) { + var e = this.DOM.input.getAttribute("data-suggest"), i = t || (e ? this.state.inputText + e : null); + return !!i && ("mix" == this.settings.mode ? this.replaceTextWithNode(document.createTextNode(this.state.tag.prefix + i)) : (this.input.set.call(this, i), + this.setRangeAtStartEnd()), this.input.autocomplete.suggest.call(this), this.dropdown.hide(), + !0); + } + } + }, + getTagIdx(t) { + return this.value.findIndex((e => e.__tagId == (t || {}).__tagId)); + }, + getNodeIndex(t) { + var e = 0; + if (t) for (;t = t.previousElementSibling; ) e++; + return e; + }, + getTagElms(...t) { + var e = "." + [ ...this.settings.classNames.tag.split(" "), ...t ].join("."); + return [].slice.call(this.DOM.scope.querySelectorAll(e)); + }, + getLastTag() { + var t = this.DOM.scope.querySelectorAll(`${this.settings.classNames.tagSelector}:not(.${this.settings.classNames.tagHide}):not([readonly])`); + return t[t.length - 1]; + }, + tagData: (t, e, i) => t ? (e && (t.__tagifyTagData = i ? e : g({}, t.__tagifyTagData || {}, e)), + t.__tagifyTagData) : (console.warn("tag element doesn't exist", t, e), e), + isTagDuplicate(t, e, i) { + var a = this.settings; + return "select" != a.mode && this.value.reduce(((n, o) => s(this.trim("" + t), o.value, e || a.dropdown.caseSensitive) && i != o.__tagId ? n + 1 : n), 0); + }, + getTagIndexByValue(t) { + var e = []; + return this.getTagElms().forEach(((i, a) => { + s(this.trim(i.textContent), t, this.settings.dropdown.caseSensitive) && e.push(a); + })), e; + }, + getTagElmByValue(t) { + var e = this.getTagIndexByValue(t)[0]; + return this.getTagElms()[e]; + }, + flashTag(t) { + t && (t.classList.add(this.settings.classNames.tagFlash), setTimeout((() => { + t.classList.remove(this.settings.classNames.tagFlash); + }), 100)); + }, + isTagBlacklisted(t) { + return t = this.trim(t.toLowerCase()), this.settings.blacklist.filter((e => ("" + e).toLowerCase() == t)).length; + }, + isTagWhitelisted(t) { + return !!this.getWhitelistItem(t); + }, + getWhitelistItem(t, e, i) { + e = e || "value"; + var a, n = this.settings; + return (i = i || n.whitelist).some((i => { + var o = "string" == typeof i ? i : i[e] || i.value; + if (s(o, t, n.dropdown.caseSensitive, n.trim)) return a = "string" == typeof i ? { + value: i + } : i, !0; + })), a || "value" != e || "value" == n.tagTextProp || (a = this.getWhitelistItem(t, n.tagTextProp, i)), + a; + }, + validateTag(t) { + var e = this.settings, i = "value" in t ? "value" : e.tagTextProp, s = this.trim(t[i] + ""); + return (t[i] + "").trim() ? e.pattern && e.pattern instanceof RegExp && !e.pattern.test(s) ? this.TEXTS.pattern : !e.duplicates && this.isTagDuplicate(s, this.state.editing, t.__tagId) ? this.TEXTS.duplicate : this.isTagBlacklisted(s) || e.enforceWhitelist && !this.isTagWhitelisted(s) ? this.TEXTS.notAllowed : !e.validate || e.validate(t) : this.TEXTS.empty; + }, + getInvalidTagAttrs(t, e) { + return { + "aria-invalid": !0, + class: `${t.class || ""} ${this.settings.classNames.tagNotAllowed}`.trim(), + title: e + }; + }, + hasMaxTags() { + return this.value.length >= this.settings.maxTags && this.TEXTS.exceed; + }, + setReadonly(t, e) { + var i = this.settings; + document.activeElement.blur(), i[e || "readonly"] = t, this.DOM.scope[(t ? "set" : "remove") + "Attribute"](e || "readonly", !0), + this.setContentEditable(!t); + }, + setContentEditable(t) { + !this.settings.readonly && this.settings.userInput && (this.DOM.input.contentEditable = t, + this.DOM.input.tabIndex = t ? 0 : -1); + }, + setDisabled(t) { + this.setReadonly(t, "disabled"); + }, + normalizeTags(t) { + var e = this.settings, i = e.whitelist, s = e.delimiters, a = e.mode, n = e.tagTextProp; + e.enforceWhitelist; + var o = [], r = !!i && i[0] instanceof Object, l = t instanceof Array, d = t => (t + "").split(s).filter((t => t)).map((t => ({ + [n]: this.trim(t), + value: this.trim(t) + }))); + if ("number" == typeof t && (t = t.toString()), "string" == typeof t) { + if (!t.trim()) return []; + t = d(t); + } else l && (t = [].concat(...t.map((t => t.value ? t : d(t))))); + return r && (t.forEach((t => { + var e = o.map((t => t.value)), i = this.dropdown.filterListItems.call(this, t[n], { + exact: !0 + }); + this.settings.duplicates || (i = i.filter((t => !e.includes(t.value)))); + var s = i.length > 1 ? this.getWhitelistItem(t[n], n, i) : i[0]; + s && s instanceof Object ? o.push(s) : "mix" != a && (null == t.value && (t.value = t[n]), + o.push(t)); + })), o.length && (t = o)), t; + }, + parseMixTags(t) { + var e = this.settings, i = e.mixTagsInterpolator, s = e.duplicates, a = e.transformTag, n = e.enforceWhitelist, o = e.maxTags, r = e.tagTextProp, l = []; + return t = t.split(i[0]).map(((t, e) => { + var d, h, g, p = t.split(i[1]), c = p[0], u = l.length == o; + try { + if (c == +c) throw Error; + h = JSON.parse(c); + } catch (t) { + h = this.normalizeTags(c)[0] || { + value: c + }; + } + if (a.call(this, h), u || !(p.length > 1) || n && !this.isTagWhitelisted(h.value) || !s && this.isTagDuplicate(h.value)) { + if (t) return e ? i[0] + t : t; + } else h[d = h[r] ? r : "value"] = this.trim(h[d]), g = this.createTagElem(h), l.push(h), + g.classList.add(this.settings.classNames.tagNoAnimation), p[0] = g.outerHTML, this.value.push(h); + return p.join(""); + })).join(""), this.DOM.input.innerHTML = t, this.DOM.input.appendChild(document.createTextNode("")), + this.DOM.input.normalize(), this.getTagElms().forEach(((t, e) => this.tagData(t, l[e]))), + this.update({ + withoutChangeEvent: !0 + }), t; + }, + replaceTextWithNode(t, e) { + if (this.state.tag || e) { + e = e || this.state.tag.prefix + this.state.tag.value; + var i, s, a = window.getSelection(), n = a.anchorNode, o = this.state.tag.delimiters ? this.state.tag.delimiters.length : 0; + return n.splitText(a.anchorOffset - o), -1 == (i = n.nodeValue.lastIndexOf(e)) ? !0 : (s = n.splitText(i), + t && n.parentNode.replaceChild(t, s), !0); + } + }, + selectTag(t, e) { + var i = this.settings; + if (!i.enforceWhitelist || this.isTagWhitelisted(e.value)) { + this.input.set.call(this, e[i.tagTextProp] || e.value, !0), this.state.actions.selectOption && setTimeout(this.setRangeAtStartEnd.bind(this)); + var s = this.getLastTag(); + return s ? this.replaceTag(s, e) : this.appendTag(t), this.value[0] = e, this.update(), + this.trigger("add", { + tag: t, + data: e + }), [ t ]; + } + }, + addEmptyTag(t) { + var e = g({ + value: "" + }, t || {}), i = this.createTagElem(e); + this.tagData(i, e), this.appendTag(i), this.editTag(i, { + skipValidation: !0 + }); + }, + addTags(t, e, i) { + var s = [], a = this.settings, n = document.createDocumentFragment(); + return i = i || a.skipInvalid, t && 0 != t.length ? (t = this.normalizeTags(t), + "mix" == a.mode ? this.addMixTags(t) : ("select" == a.mode && (e = !1), this.DOM.input.removeAttribute("style"), + t.forEach((t => { + var e, o = {}, r = Object.assign({}, t, { + value: t.value + "" + }); + if (t = Object.assign({}, r), a.transformTag.call(this, t), t.__isValid = this.hasMaxTags() || this.validateTag(t), + !0 !== t.__isValid) { + if (i) return; + g(o, this.getInvalidTagAttrs(t, t.__isValid), { + __preInvalidData: r + }), t.__isValid == this.TEXTS.duplicate && this.flashTag(this.getTagElmByValue(t.value)); + } + if ("readonly" in t && (t.readonly ? o["aria-readonly"] = !0 : delete t.readonly), + e = this.createTagElem(t, o), s.push(e), "select" == a.mode) return this.selectTag(e, t); + n.appendChild(e), t.__isValid && !0 === t.__isValid ? (this.value.push(t), this.trigger("add", { + tag: e, + index: this.value.length - 1, + data: t + })) : (this.trigger("invalid", { + data: t, + index: this.value.length, + tag: e, + message: t.__isValid + }), a.keepInvalidTags || setTimeout((() => this.removeTags(e, !0)), 1e3)), this.dropdown.position(); + })), this.appendTag(n), this.update(), t.length && e && this.input.set.call(this), + this.dropdown.refilter(), s)) : ("select" == a.mode && this.removeAllTags(), s); + }, + addMixTags(t) { + if ((t = this.normalizeTags(t))[0].prefix || this.state.tag) return this.prefixedTextToTag(t[0]); + "string" == typeof t && (t = [ { + value: t + } ]); + var e = !!this.state.selection, i = document.createDocumentFragment(); + return t.forEach((t => { + var e = this.createTagElem(t); + i.appendChild(e), this.insertAfterTag(e); + })), e ? this.injectAtCaret(i) : (this.DOM.input.focus(), (e = this.setStateSelection()).range.setStart(this.DOM.input, e.range.endOffset), + e.range.setEnd(this.DOM.input, e.range.endOffset), this.DOM.input.appendChild(i), + this.updateValueByDOMTags(), this.update()), i; + }, + prefixedTextToTag(t) { + var e, i = this.settings, s = this.state.tag.delimiters; + if (i.transformTag.call(this, t), t.prefix = t.prefix || this.state.tag ? this.state.tag.prefix : (i.pattern.source || i.pattern)[0], + e = this.createTagElem(t), this.replaceTextWithNode(e) || this.DOM.input.appendChild(e), + setTimeout((() => e.classList.add(this.settings.classNames.tagNoAnimation)), 300), + this.value.push(t), this.update(), !s) { + var a = this.insertAfterTag(e) || e; + this.placeCaretAfterNode(a); + } + return this.state.tag = null, this.trigger("add", g({}, { + tag: e + }, { + data: t + })), e; + }, + appendTag(t) { + var e = this.DOM, i = e.input; + i === e.input ? e.scope.insertBefore(t, i) : e.scope.appendChild(t); + }, + createTagElem(t, i) { + t.__tagId = m(); + var s, a = g({}, t, e({ + value: d(t.value + "") + }, i)); + return function(t) { + for (var e, i = document.createNodeIterator(t, NodeFilter.SHOW_TEXT, null, !1); e = i.nextNode(); ) e.textContent.trim() || e.parentNode.removeChild(e); + }(s = this.parseTemplate("tag", [ a ])), this.tagData(s, t), s; + }, + reCheckInvalidTags() { + var t = this.settings; + this.getTagElms(t.classNames.tagNotAllowed).forEach(((t, e) => { + var i = this.tagData(t), s = this.hasMaxTags(), a = this.validateTag(i); + if (!0 === a && !s) return i = i.__preInvalidData ? i.__preInvalidData : { + value: i.value + }, this.replaceTag(t, i); + t.title = s || a; + })); + }, + removeTags(t, e, i) { + var s; + if (t = t && t instanceof HTMLElement ? [ t ] : t instanceof Array ? t : t ? [ t ] : [ this.getLastTag() ], + s = t.reduce(((t, e) => { + e && "string" == typeof e && (e = this.getTagElmByValue(e)); + var i = this.tagData(e); + return e && i && !i.readonly && t.push({ + node: e, + idx: this.getTagIdx(i), + data: this.tagData(e, { + __removed: !0 + }) + }), t; + }), []), i = "number" == typeof i ? i : this.CSSVars.tagHideTransition, "select" == this.settings.mode && (i = 0, + this.input.set.call(this)), 1 == s.length && s[0].node.classList.contains(this.settings.classNames.tagNotAllowed) && (e = !0), + s.length) return this.settings.hooks.beforeRemoveTag(s, { + tagify: this + }).then((() => { + function t(t) { + t.node.parentNode && (t.node.parentNode.removeChild(t.node), e ? this.settings.keepInvalidTags && this.trigger("remove", { + tag: t.node, + index: t.idx + }) : (this.trigger("remove", { + tag: t.node, + index: t.idx, + data: t.data + }), this.dropdown.refilter(), this.dropdown.position(), this.DOM.input.normalize(), + this.settings.keepInvalidTags && this.reCheckInvalidTags())); + } + i && i > 10 && 1 == s.length ? function(e) { + e.node.style.width = parseFloat(window.getComputedStyle(e.node).width) + "px", document.body.clientTop, + e.node.classList.add(this.settings.classNames.tagHide), setTimeout(t.bind(this), i, e); + }.call(this, s[0]) : s.forEach(t.bind(this)), e || (this.removeTagsFromValue(s.map((t => t.node))), + this.update(), "select" == this.settings.mode && this.setContentEditable(!0)); + })).catch((t => {})); + }, + removeTagsFromDOM() { + [].slice.call(this.getTagElms()).forEach((t => t.parentNode.removeChild(t))); + }, + removeTagsFromValue(t) { + (t = Array.isArray(t) ? t : [ t ]).forEach((t => { + var e = this.tagData(t), i = this.getTagIdx(e); + i > -1 && this.value.splice(i, 1); + })); + }, + removeAllTags(t) { + t = t || {}, this.value = [], "mix" == this.settings.mode ? this.DOM.input.innerHTML = "" : this.removeTagsFromDOM(), + this.dropdown.position(), "select" == this.settings.mode && (this.input.set.call(this), + this.setContentEditable(!0)), this.update(t); + }, + postUpdate() { + var t = this.settings.classNames, e = "mix" == this.settings.mode ? this.settings.mixMode.integrated ? this.DOM.input.textContent : this.DOM.originalInput.value.trim() : this.value.length + this.input.raw.call(this).length; + this.toggleClass(t.hasMaxTags, this.value.length >= this.settings.maxTags), this.toggleClass(t.hasNoTags, !this.value.length), + this.toggleClass(t.empty, !e); + }, + setOriginalInputValue(t) { + var e = this.DOM.originalInput; + this.settings.mixMode.integrated || (e.value = t, e.tagifyValue = e.value, this.setPersistedData(t, "value")); + }, + update(t) { + var e = this.getInputValue(); + this.setOriginalInputValue(e), this.postUpdate(), (t || {}).withoutChangeEvent || this.state.blockChangeEvent || this.triggerChangeEvent(); + }, + getInputValue() { + var t = this.getCleanValue(); + return "mix" == this.settings.mode ? this.getMixedTagsAsString(t) : t.length ? this.settings.originalInputValueFormat ? this.settings.originalInputValueFormat(t) : JSON.stringify(t) : ""; + }, + getCleanValue(t) { + return a(t || this.value, this.dataProps); + }, + getMixedTagsAsString() { + var t = "", e = this, i = this.settings.mixTagsInterpolator; + return function s(a) { + a.childNodes.forEach((a => { + if (1 == a.nodeType) { + const o = e.tagData(a); + if ("BR" == a.tagName && (t += "\r\n"), a.getAttribute("style") || [ "B", "I", "U" ].includes(a.tagName)) t += a.textContent; else if ("DIV" == a.tagName || "P" == a.tagName) t += "\r\n", + s(a); else if (v.call(e, a) && o) { + if (o.__removed) return; + t += i[0] + JSON.stringify(n(o, e.dataProps)) + i[1]; + } + } else t += a.textContent; + })); + }(this.DOM.input), t; + } + }, M.prototype.removeTag = M.prototype.removeTags, M; + })); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(253); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var ImageUploader = function(_Component) { + _inherits(ImageUploader, _Component); + var _super = _createSuper(ImageUploader); + function ImageUploader() { + var _this; + _classCallCheck(this, ImageUploader); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "params", { + height: 250, + width: 250, + flex_width: true, + flex_height: true + }); + _defineProperty(_assertThisInitialized(_this), "state", { + attachment_info: null + }); + _defineProperty(_assertThisInitialized(_this), "onSelect", (function() { + var attachment = _this.frame.state().get("selection").first().toJSON(); + if ((_this.props.options.logo || {}).width === attachment.width && (_this.props.options.logo || {}).height === attachment.height && !(_this.props.options.logo || {}).flex_width && !(_this.props.options.logo || {}).flex_height || _this.props.options.skipCrop || true) { + _this.setImageFromAttachment(attachment); + _this.frame.close(); + } else {} + })); + _defineProperty(_assertThisInitialized(_this), "onCropped", (function(croppedImage) { + _this.setImageFromAttachment(croppedImage); + })); + _defineProperty(_assertThisInitialized(_this), "onSkippedCrop", (function() { + var attachment = _this.frame.state().get("selection").first().toJSON(); + _this.setImageFromAttachment(attachment); + })); + _defineProperty(_assertThisInitialized(_this), "onChange", (function(value) { + var attachment_info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + _this.props.onChange(_this.props.options.inlineValue ? value || "" : _objectSpread(_objectSpread({}, _this.props.value), {}, { + url: _this.getUrlFor(attachment_info), + attachment_id: value + })); + })); + _defineProperty(_assertThisInitialized(_this), "updateAttachmentInfo", (function() { + var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var id = _this.getAttachmentId(); + if (!id) { + if (_this.props.value.url) { + _this.setState({ + attachment_info: { + url: _this.props.value.url + } + }); + } + return; + } + if (!wp.media.attachment(id).get("url") || force) { + wp.media.attachment(id).fetch().then((function() { + _this.setState({ + attachment_info: JSON.parse(JSON.stringify(wp.media.attachment(id).toJSON())) + }); + })); + } else { + _this.setState({ + attachment_info: JSON.parse(JSON.stringify(wp.media.attachment(id).toJSON())) + }); + } + _this.detachListener(); + wp.media.attachment(id).on("change", _this.updateAttachmentInfo); + })); + _defineProperty(_assertThisInitialized(_this), "getAttachmentId", (function() { + var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props; + return props.options.inlineValue ? props.value : props.value.attachment_id; + })); + _defineProperty(_assertThisInitialized(_this), "getUrlFor", (function(attachmentInfo) { + return attachmentInfo ? attachmentInfo.sizes ? attachmentInfo.sizes.full.url || attachmentInfo.url : attachmentInfo.url : null; + })); + return _this; + } + _createClass(ImageUploader, [ { + key: "initFrame", + value: function initFrame() { + var _this2 = this; + this.frame = wp.media({ + button: { + text: "Select", + close: false + }, + states: [ new wp.media.controller.Library({ + title: "Select File", + library: wp.media.query({ + type: this.props.options.mediaType || "image" + }), + multiple: false, + date: false, + priority: 20, + suggestedWidth: (this.props.options.logo || {}).width, + suggestedHeight: (this.props.options.logo || {}).height + }) ].concat(_toConsumableArray(this.props.options.skipCrop || true ? [] : 0)) + }); + this.frame.on("select", this.onSelect, this); + this.frame.on("close", (function() { + _this2.props.options.onFrameClose && _this2.props.options.onFrameClose(); + })); + this.frame.on("cropped", this.onCropped, this); + this.frame.on("skippedcrop", this.onSkippedCrop, this); + } + }, { + key: "openFrame", + value: function openFrame() { + this.initFrame(); + this.frame.setState("library").open(); + this.props.options.onFrameOpen && this.props.options.onFrameOpen(); + } + }, { + key: "setImageFromAttachment", + value: function setImageFromAttachment(attachment) { + this.onChange(attachment.id, JSON.parse(JSON.stringify(wp.media.attachment(attachment.id).toJSON()))); + this.updateAttachmentInfo(); + } + }, { + key: "detachListener", + value: function detachListener() { + if (!this.getAttachmentId()) return; + wp.media.attachment(this.getAttachmentId()).off("change", this.updateAttachmentInfo); + } + }, { + key: "componentDidUpdate", + value: function componentDidUpdate(prevProps) { + if (this.getAttachmentId() !== this.getAttachmentId(prevProps)) { + wp.media.attachment(this.getAttachmentId(prevProps)).off("change", this.updateAttachmentInfo); + this.updateAttachmentInfo(); + } + } + }, { + key: "componentDidMount", + value: function componentDidMount() { + this.updateAttachmentInfo(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.detachListener(); + } + }, { + key: "render", + value: function render() { + var _clsx, _this3 = this; + var _this$props$options = this.props.options, positionPicker = _this$props$options.positionPicker, emptyLabel = _this$props$options.emptyLabel; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-image-uploader", (_clsx = {}, + _defineProperty(_clsx, "landscape", this.state.attachment_info), _defineProperty(_clsx, "attachment-media-view-image", this.state.attachment_info), + _clsx)), + children: this.state.attachment_info ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "thumbnail thumbnail-image", + onClick: function onClick() { + return !positionPicker && _this3.openFrame(); + }, + children: [ !positionPicker && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("img", { + className: "attachment-thumb", + src: this.getUrlFor(this.state.attachment_info), + draggable: "false", + alt: "" + }), positionPicker && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.FocalPointPicker, { + url: this.getUrlFor(this.state.attachment_info), + dimensions: { + width: 400, + height: 100 + }, + value: Object.assign({}, { + x: 0, + y: 0 + }, this.props.value), + onChange: function onChange(drag_position) { + _this3.props.onChange(_objectSpread(_objectSpread({}, _this3.props.value), drag_position)); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "actions", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("button", { + type: "button", + className: "button edit-button control-focus", + title: "Edit", + onClick: function onClick(e) { + e.stopPropagation(); + _this3.openFrame(); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("button", { + onClick: function onClick(e) { + e.stopPropagation(); + _this3.setState({ + attachment_info: null + }); + _this3.onChange(null); + }, + title: "Remove", + type: "button", + className: "button remove-button" + }) ] + }) ] + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("button", { + type: "button", + onClick: function onClick() { + return _this3.openFrame(); + }, + className: "button lotta-upload-button", + children: emptyLabel || "Select Image" + }) + }); + } + } ]); + return ImageUploader; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = ImageUploader; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(190); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var _components_react_color_picker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(252); + var _components_gradient_picker__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(304); + var _image_uploader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(302); + var _index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5); + var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(4); + var _image_radio__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(273); + var _radio__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(271); + var _color_picker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(189); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(254); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var BackgroundImage = function(_Component) { + _inherits(BackgroundImage, _Component); + var _super = _createSuper(BackgroundImage); + function BackgroundImage() { + _classCallCheck(this, BackgroundImage); + return _super.apply(this, arguments); + } + _createClass(BackgroundImage, [ { + key: "render", + value: function render() { + var _this$props = this.props, value = _this$props.value, _onChange = _this$props.onChange; + value = Object.assign({}, { + source: {}, + repeat: "no-repeat", + size: "cover", + attachment: "scroll", + color: "#ccc" + }, value); + var sections = [ { + id: "repeat", + value: value.repeat, + component: _image_radio__WEBPACK_IMPORTED_MODULE_8__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_11__.__)("Background Repeat"), + inline: true, + choices: { + repeat: { + src: '', + title: "Repeat" + }, + "repeat-y": { + src: '', + title: "Repeat Y" + }, + "repeat-x": { + src: '', + title: "Repeat X" + }, + "no-repeat": { + src: '', + title: "No Repeat" + } + } + } + }, { + id: "size", + value: value.size, + component: _radio__WEBPACK_IMPORTED_MODULE_9__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_11__.__)("Background Size"), + attr: { + "data-columns": 3 + }, + choices: { + auto: "Auto", + cover: "Cover", + contain: "Contain" + } + } + }, { + id: "attachment", + value: value.attachment, + component: _radio__WEBPACK_IMPORTED_MODULE_9__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_11__.__)("Background Attachment"), + attr: { + "data-columns": 3 + }, + choices: { + scroll: "Scroll", + fixed: "Fixed", + inherit: "Inherit" + } + } + }, { + id: "color", + value: { + initial: value.color + }, + component: _color_picker__WEBPACK_IMPORTED_MODULE_10__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_11__.__)("Background Color"), + type: "lotta-color-picker", + alpha: true, + colors: [ { + title: "Initial", + id: "initial" + } ] + }, + onChange: function onChange(v) { + return v.initial; + } + } ]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", { + className: "lotta-background-image", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_image_uploader__WEBPACK_IMPORTED_MODULE_5__["default"], { + value: value.source, + options: { + positionPicker: true, + onFrameOpen: this.props.onFrameOpen, + onFrameClose: this.props.onFrameClose + }, + onChange: function onChange(v) { + return _onChange(_objectSpread(_objectSpread({}, value), {}, { + source: v + })); + } + }), sections.map((function(s) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", { + children: (0, _index__WEBPACK_IMPORTED_MODULE_6__.buildControl)({ + value: s.value, + options: s.options || {}, + params: s.params || {}, + Component: s.component, + onChange: function onChange(v) { + v = s.onChange ? s.onChange(v) : v; + _onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, s.id, v))); + } + }) + }, s.id); + })) ] + }); + } + } ]); + return BackgroundImage; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var BackgroundModal = function BackgroundModal(_ref) { + var value = _ref.value, _onChange2 = _ref.onChange, onFrameOpen = _ref.onFrameOpen, onFrameClose = _ref.onFrameClose; + var type = value.type, color = value.color, gradient = value.gradient, image = value.image; + type = type || color; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", { + className: "lotta-background-modal", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("ul", { + className: "lotta-modal-tabs", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("li", { + "data-bg-type": "color", + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: type === "color" + }), + onClick: function onClick() { + return _onChange2({ + type: "color", + color, + gradient, + image + }); + }, + children: "Color" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("li", { + "data-bg-type": "gradient", + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: type === "gradient" + }), + onClick: function onClick() { + return _onChange2({ + type: "gradient", + color, + gradient, + image + }); + }, + children: "Gradient" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("li", { + "data-bg-type": "image", + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: type === "image" + }), + onClick: function onClick() { + return _onChange2({ + type: "image", + color, + gradient, + image + }); + }, + children: "Image" + }) ] + }), type === "color" && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", { + className: "modal-content", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_components_react_color_picker__WEBPACK_IMPORTED_MODULE_3__["default"], { + swatches: window.Lotta && window.Lotta.customizer && window.Lotta.customizer.colorPicker ? (0, + _utils__WEBPACK_IMPORTED_MODULE_7__.sanitize_array_value)(window.Lotta.customizer.colorPicker.swatches) : [], + enableAlpha: true, + color: (0, _utils__WEBPACK_IMPORTED_MODULE_7__.getColorValue)(color), + onChange: function onChange(v) { + return _onChange2({ + color: v, + type, + gradient, + image + }); + } + }) + }), type === "gradient" && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", { + className: "modal-content", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_components_gradient_picker__WEBPACK_IMPORTED_MODULE_4__["default"], { + gradient, + onChange: function onChange(v) { + return _onChange2({ + gradient: v, + type, + color, + image + }); + } + }) + }), type === "image" && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", { + className: "modal-content", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(BackgroundImage, { + value: image, + onChange: function onChange(v) { + return _onChange2({ + image: v, + type, + color, + gradient + }); + }, + onFrameOpen, + onFrameClose + }) + }) ] + }); + }; + var Background = function Background(_ref2) { + var value = _ref2.value, _onChange3 = _ref2.onChange; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState2 = _slicedToArray(_useState, 2), outsideClickDisabled = _useState2[0], setOutsideClickDisabled = _useState2[1]; + var preview = {}; + value = Object.assign({ + type: "color", + color: _index__WEBPACK_IMPORTED_MODULE_6__.CSS_INITIAL_VALUE + }, value); + if (value["type"] === "color") { + preview["backgroundColor"] = value["color"] || ""; + } + if (value["type"] === "gradient") { + preview["backgroundImage"] = value["gradient"] || ""; + } + if (value["type"] === "image") { + var _ref3 = value["image"] || {}, _ref3$source = _ref3.source, source = _ref3$source === void 0 ? {} : _ref3$source, size = _ref3.size, repeat = _ref3.repeat, attachment = _ref3.attachment, color = _ref3.color; + preview["backgroundColor"] = color; + preview["backgroundSize"] = size; + preview["backgroundRepeat"] = repeat; + preview["backgroundAttachment"] = attachment; + preview["backgroundImage"] = "url(" + source.url + ")"; + preview["backgroundPosition"] = "".concat((source.x || 0) * 100, "% ").concat((source.y || 0) * 100, "%"); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_1__["default"], { + disableOutsideClick: outsideClickDisabled, + placement: "bottom", + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(BackgroundModal, { + value, + onChange: function onChange(value) { + _onChange3(value); + }, + onFrameOpen: function onFrameOpen() { + return setOutsideClickDisabled(true); + }, + onFrameClose: function onFrameClose() { + return setOutsideClickDisabled(false); + } + }), + children: function children(_ref4) { + var props = _ref4.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", _objectSpread(_objectSpread({}, props), {}, { + className: "lotta-background-preview-box", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", { + className: "lotta-background-preview", + style: preview + }) + })); + } + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = Background; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(253); + var _wordpress_components__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); + var GradientPicker = function GradientPicker(_ref) { + var gradient = _ref.gradient, _onChange = _ref.onChange, swatches = _ref.swatches; + if (!swatches && window.Lotta && window.Lotta.customizer && window.Lotta.customizer.gradientPicker) { + swatches = window.Lotta.customizer.gradientPicker.swatches; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "lotta-gradient-picker", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.GradientPicker, { + className: "wp-gradient-picker", + value: gradient, + gradients: [], + onChange: function onChange(currentGradient) { + _onChange(currentGradient); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("ul", { + className: "lotta-gradient-switches", + children: (0, _utils__WEBPACK_IMPORTED_MODULE_2__.sanitize_array_value)(swatches).map((function(swatch, index) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + active: swatch.gradient === gradient + }), + style: { + "--background-image": swatch.gradient + }, + onClick: function onClick() { + _onChange(swatch.gradient); + } + }, index); + })) + }) ] + }); + }; + const __WEBPACK_DEFAULT_EXPORT__ = GradientPicker; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); + var _color_picker__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(189); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var _toggle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); + var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5); + var _slider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(174); + var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var BoxShadow = function BoxShadow(_ref) { + var value = _ref.value, options = _ref.options, _onChange = _ref.onChange; + value = Object.assign({ + inherit: value === _index__WEBPACK_IMPORTED_MODULE_4__.CSS_INITIAL_VALUE, + enable: false + }, value); + var sections = [ { + id: "enable", + component: _toggle__WEBPACK_IMPORTED_MODULE_3__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Enable") + } + }, { + id: "horizontal", + component: _slider__WEBPACK_IMPORTED_MODULE_5__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Horizontal Offset"), + min: -100, + max: 100, + defaultUnit: "px" + } + }, { + id: "vertical", + component: _slider__WEBPACK_IMPORTED_MODULE_5__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Vertical Offset"), + min: -100, + max: 100, + defaultUnit: "px" + } + }, { + id: "blur", + component: _slider__WEBPACK_IMPORTED_MODULE_5__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Blur"), + min: 0, + max: 100, + defaultUnit: "px" + } + }, { + id: "spread", + component: _slider__WEBPACK_IMPORTED_MODULE_5__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Spread"), + min: -100, + max: 100, + defaultUnit: "px" + } + } ]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", { + className: "lotta-box-shadow", + children: [ value.enable === "yes" && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_color_picker__WEBPACK_IMPORTED_MODULE_1__["default"], { + options: { + alpha: true, + colors: [ { + id: "color", + title: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Color") + } ] + }, + value: { + color: value.color || "" + }, + onChange: function onChange(c) { + _onChange(_objectSpread(_objectSpread({}, value), c)); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_0__["default"], { + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { + className: "box-shadow-modal", + children: sections.map((function(s) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { + className: "box-shadow-section", + children: (0, _index__WEBPACK_IMPORTED_MODULE_4__.buildControl)({ + params: s.params, + options: s.options, + value: value[s.id] || "", + Component: s.component, + onChange: function onChange(v) { + _onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, s.id, v))); + } + }) + }, s.id); + })) + }), + children: function children(_ref2) { + var props = _ref2.props, isOpen = _ref2.isOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", _objectSpread(_objectSpread({ + className: (0, clsx__WEBPACK_IMPORTED_MODULE_6__["default"])({ + "lotta-modal-value": true, + "lotta-modal-value-active": isOpen + }) + }, props), {}, { + children: value.enable === "yes" ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Adjust") : value.inherit ? (0, + _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Inherit") : (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("None") + })); + } + }) ] + }); + }; + BoxShadow.renderingConfig = { + design: "inline" + }; + const __WEBPACK_DEFAULT_EXPORT__ = BoxShadow; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Typography + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(190); + var _slider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(174); + var bezier_easing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(188); + var bezier_easing__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(bezier_easing__WEBPACK_IMPORTED_MODULE_3__); + var _react_spring_web__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(180); + var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5); + var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(4); + var _components_fonts_list__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(307); + var _components_variants_list__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(310); + var _control_wrapper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7); + var clsx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(9); + var _components_tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(251); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(254); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(10); + var react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_14___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_14__); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Typography = function(_Component) { + _inherits(Typography, _Component); + var _super = _createSuper(Typography); + function Typography() { + var _this; + _classCallCheck(this, Typography); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + currentView: "options", + previousView: "-" + }); + _defineProperty(_assertThisInitialized(_this), "setView", (function(view) { + _this.setState({ + currentView: view, + previousView: _this.state.currentView + }); + })); + _defineProperty(_assertThisInitialized(_this), "onFontChange", (function(value) { + _this.onChange("family", value); + })); + _defineProperty(_assertThisInitialized(_this), "onVariantChange", (function(value) { + _this.onChange("variant", value); + })); + _defineProperty(_assertThisInitialized(_this), "onTextTransformChange", (function(value) { + if (_this.props.value && _this.props.value.textTransform === value) { + value = ""; + } + _this.onChange("textTransform", value); + })); + _defineProperty(_assertThisInitialized(_this), "onTextDecorationChange", (function(value) { + if (_this.props.value && _this.props.value.textDecoration === value) { + value = ""; + } + _this.onChange("textDecoration", value); + })); + _defineProperty(_assertThisInitialized(_this), "onChange", (function(key, value) { + _this.props.onChange(_objectSpread(_objectSpread({}, _this.props.value), {}, _defineProperty({}, key, value))); + })); + return _this; + } + _createClass(Typography, [ { + key: "direction", + get: function get() { + var _this$state = this.state, currentView = _this$state.currentView, previousView = _this$state.previousView; + if (previousView === "-") { + return "static"; + } + if (previousView === "options") { + return currentView === "fonts" ? "right" : "left"; + } + if (previousView === "fonts") { + return "left"; + } + if (previousView === "variants") { + return "right"; + } + return "left"; + } + }, { + key: "render", + value: function render() { + var _this2 = this; + var _this$props$value = this.props.value, family = _this$props$value.family, variant = _this$props$value.variant, fontSize = _this$props$value.fontSize, textTransform = _this$props$value.textTransform, textDecoration = _this$props$value.textDecoration; + family = family || "inherit"; + var sections = [ { + id: "fontSize", + component: _slider__WEBPACK_IMPORTED_MODULE_2__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_12__.__)("Font Size"), + responsive: true, + units: [ { + unit: "px", + min: 10, + max: 200, + step: 1 + }, { + unit: "pt", + min: 10, + max: 50, + step: 1 + }, { + unit: "em", + min: .5, + max: 50, + step: .1 + }, { + unit: "rem", + min: .5, + max: 50, + step: .1 + } ] + } + }, { + id: "lineHeight", + component: _slider__WEBPACK_IMPORTED_MODULE_2__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_12__.__)("Line Height"), + responsive: true, + units: [ { + unit: "", + min: 1, + max: 10 + }, { + unit: "px", + min: 10, + max: 100 + }, { + unit: "pt", + min: 10, + max: 100 + }, { + unit: "em", + min: 1, + max: 100 + }, { + unit: "rem", + min: 1, + max: 100 + } ] + } + }, { + id: "letterSpacing", + component: _slider__WEBPACK_IMPORTED_MODULE_2__["default"], + options: { + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_12__.__)("Letter Spacing"), + responsive: true, + units: [ { + unit: "px", + min: -20, + max: 20, + step: 1 + }, { + unit: "pt", + min: -20, + max: 20, + step: 1 + }, { + unit: "em", + min: -10, + max: 10, + step: .1 + }, { + unit: "rem", + min: -10, + max: 10, + step: .1 + } ] + } + } ]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_1__["default"], { + toggleable: false, + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { + className: "lotta-typography-modal", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { + className: "typography-panels", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_react_spring_web__WEBPACK_IMPORTED_MODULE_4__.Transition, { + items: this.state.currentView, + immediate: this.direction === "static", + config: function config() { + return { + duration: 210, + easing: bezier_easing__WEBPACK_IMPORTED_MODULE_3___default()(.455, .03, .515, .955) + }; + }, + from: { + position: "absolute", + transform: this.direction === "left" ? "translateX(100%)" : "translateX(-100%)" + }, + enter: { + position: "absolute", + transform: "translateX(0%)" + }, + leave: { + position: "absolute", + transform: this.direction === "left" ? "translateX(-100%)" : "translateX(100%)" + }, + children: function children(props, view) { + if (view === "fonts") { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_react_spring_web__WEBPACK_IMPORTED_MODULE_4__.animated.div, { + style: props, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_fonts_list__WEBPACK_IMPORTED_MODULE_7__["default"], { + family, + onChange: _this2.onFontChange + }) + }); + } + if (view === "variants") { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_react_spring_web__WEBPACK_IMPORTED_MODULE_4__.animated.div, { + style: props, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_variants_list__WEBPACK_IMPORTED_MODULE_8__["default"], { + family, + variant, + onChange: _this2.onVariantChange + }) + }); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_react_spring_web__WEBPACK_IMPORTED_MODULE_4__.animated.div, { + style: props, + children: [ sections.map((function(s) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", { + className: "typography-section", + children: (0, _index__WEBPACK_IMPORTED_MODULE_5__.buildControl)({ + params: s.params, + options: s.options, + value: _this2.props.value[s.id] || "", + Component: s.component, + onChange: function onChange(value) { + _this2.onChange(s.id, value); + } + }) + }, s.id); + })), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", { + className: "typography-section lotta-text-variants", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("ul", { + className: "lotta-buttons-group text-transform", + children: [ "capitalize", "uppercase", "lowercase" ].map((function(variant) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_tooltip__WEBPACK_IMPORTED_MODULE_11__["default"], { + content: (0, _utils__WEBPACK_IMPORTED_MODULE_6__.capitalize)(variant), + placement: "top", + children: function children(_ref) { + var props = _ref.props; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("li", _objectSpread(_objectSpread({}, props), {}, { + "data-variant": variant, + onClick: function onClick() { + return _this2.onTextTransformChange(variant); + }, + className: textTransform === variant ? "active" : "" + })); + } + }, variant); + })) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("ul", { + className: "lotta-buttons-group text-decoration", + children: [ "line-through", "underline" ].map((function(variant) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_components_tooltip__WEBPACK_IMPORTED_MODULE_11__["default"], { + content: (0, _utils__WEBPACK_IMPORTED_MODULE_6__.capitalize)(variant), + placement: "top", + children: function children(_ref2) { + var props = _ref2.props; + return (0, react__WEBPACK_IMPORTED_MODULE_14__.createElement)("li", _objectSpread(_objectSpread({}, props), {}, { + key: variant, + "data-variant": variant, + onClick: function onClick() { + return _this2.onTextDecorationChange(variant); + }, + className: textDecoration === variant ? "active" : "" + })); + } + }, variant); + })) + }) ] + }) ] + }); + } + }) + }) + }), + children: function children(_ref3) { + var props = _ref3.props, isOpen = _ref3.isOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("ul", _objectSpread(_objectSpread({}, props), {}, { + className: "lotta-buttons-group", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_10__["default"])({ + active: isOpen && _this2.state.currentView === "fonts" + }), + onClick: function onClick() { + return _this2.setView("fonts"); + }, + children: (0, _components_fonts_list__WEBPACK_IMPORTED_MODULE_7__.getFontName)(family) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_10__["default"])({ + active: isOpen && _this2.state.currentView === "options" + }), + onClick: function onClick() { + return _this2.setView("options"); + }, + children: (0, _control_wrapper__WEBPACK_IMPORTED_MODULE_9__.promoteScalarValueIntoResponsive)(fontSize)[wp.customize && wp.customize.previewedDevice ? wp.customize.previewedDevice() : "desktop"] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_10__["default"])({ + active: isOpen && _this2.state.currentView === "variants" + }), + onClick: function onClick() { + return _this2.setView("variants"); + }, + children: (0, _components_variants_list__WEBPACK_IMPORTED_MODULE_8__.getVariantName)(variant) + }) ] + })); + } + }); + } + } ]); + return Typography; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + SingleFont: () => SingleFont, + default: () => FontsList, + getFontName: () => getFontName, + isCustomFonts: () => isCustomFonts, + isGoogleFonts: () => isGoogleFonts, + loadGoogleFonts: () => loadGoogleFonts + }); + var react_window__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(285); + var webfontloader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(308); + var webfontloader__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(webfontloader__WEBPACK_IMPORTED_MODULE_0__); + var react_virtualized_auto_sizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(309); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); + var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var isGoogleFonts = function isGoogleFonts(id) { + if (window.Lotta && window.Lotta.customizer.settings) { + return !!window.Lotta.customizer.settings.google_fonts[id]; + } + return false; + }; + var isCustomFonts = function isCustomFonts(id) { + if (window.Lotta && window.Lotta.customizer.settings) { + return !!window.Lotta.customizer.settings.custom_fonts[id]; + } + return false; + }; + var loadGoogleFonts = function loadGoogleFonts(fonts) { + if (fonts.length <= 0 || !window.Lotta || !window.Lotta.customizer.settings) { + return; + } + var google_fonts = window.Lotta.customizer.settings.google_fonts; + webfontloader__WEBPACK_IMPORTED_MODULE_0___default().load({ + google: { + families: fonts.map((function(f) { + return google_fonts[f].f; + })) + } + }); + }; + var getFontName = function getFontName(family) { + var _window$Lotta$customi = window.Lotta.customizer.settings, custom_fonts = _window$Lotta$customi.custom_fonts, system_fonts = _window$Lotta$customi.system_fonts, google_fonts = _window$Lotta$customi.google_fonts; + var data = Object.assign({}, custom_fonts, system_fonts, google_fonts); + return data[family] ? data[family].f : ""; + }; + var SingleFont = function(_Component) { + _inherits(SingleFont, _Component); + var _super = _createSuper(SingleFont); + function SingleFont() { + _classCallCheck(this, SingleFont); + return _super.apply(this, arguments); + } + _createClass(SingleFont, [ { + key: "render", + value: function render() { + var _this$props = this.props, style = _this$props.style, data = _this$props.data, index = _this$props.index, family = _this$props.family, _onClick = _this$props.onClick; + var id = data.fonts[index]; + var font = data.data[id]; + var font_type = "system"; + if (isCustomFonts(id)) { + font_type = "custom"; + } else if (isGoogleFonts(id)) { + font_type = "google"; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + style, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])("font-item", font_type + "-font-item", { + active: family === id + }), + onClick: function onClick() { + return _onClick(id, font); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "font-label", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + children: font.f + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "font-type-label " + font_type + "-font-type-label", + children: (0, _utils__WEBPACK_IMPORTED_MODULE_4__.capitalize)(font_type) + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { + className: "font-preview", + style: { + fontFamily: font.f + }, + children: "The quick brown fox jumps over the lazy dog." + }) ] + }); + } + } ]); + return SingleFont; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Component); + var FontsList = function(_Component2) { + _inherits(FontsList, _Component2); + var _super2 = _createSuper(FontsList); + function FontsList() { + var _this; + _classCallCheck(this, FontsList); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super2.call.apply(_super2, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + filter: "" + }); + _defineProperty(_assertThisInitialized(_this), "loadWebFontsTimer", null); + _defineProperty(_assertThisInitialized(_this), "listRef", (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createRef)()); + _defineProperty(_assertThisInitialized(_this), "loadWebFonts", (function(fonts) { + if (_this.loadWebFontsTimer) { + clearTimeout(_this.loadWebFontsTimer); + } + _this.loadWebFontsTimer = setTimeout((function() { + if (!_this.listRef.current) { + return; + } + var _this$listRef$current = _this.listRef.current._getRangeToRender(), _this$listRef$current2 = _slicedToArray(_this$listRef$current, 1), overscanStartIndex = _this$listRef$current2[0]; + var perPage = 10; + var startingPage = Math.ceil((overscanStartIndex + 1) / perPage); + var webFonts = _toConsumableArray(Array(perPage)).map((function(_, i) { + return (startingPage - 1) * perPage + i; + })).map((function(index) { + return fonts[index]; + })); + (0, _utils__WEBPACK_IMPORTED_MODULE_4__.loadCustomFonts)(webFonts.filter((function(s) { + return !!s && isCustomFonts(s); + }))); + loadGoogleFonts(webFonts.filter((function(s) { + return !!s && isGoogleFonts(s); + }))); + }), 100); + })); + return _this; + } + _createClass(FontsList, [ { + key: "fonts", + get: function get() { + var _window$Lotta$customi2 = window.Lotta.customizer.settings, custom_fonts = _window$Lotta$customi2.custom_fonts, system_fonts = _window$Lotta$customi2.system_fonts, google_fonts = _window$Lotta$customi2.google_fonts; + var fonts = Object.keys(custom_fonts).concat(Object.keys(system_fonts), Object.keys(google_fonts)); + var keyword = this.state.filter.toLowerCase(); + if (this.state.filter) { + fonts = fonts.filter((function(f) { + if (custom_fonts[f] && custom_fonts[f].f.toLowerCase().indexOf(keyword) !== -1) { + return true; + } + if (system_fonts[f] && system_fonts[f].f.toLowerCase().indexOf(keyword) !== -1) { + return true; + } + if (google_fonts[f] && google_fonts[f].f.toLowerCase().indexOf(keyword) !== -1) { + return true; + } + return f.indexOf(keyword) !== -1; + })); + } + this.loadWebFonts(fonts); + return fonts; + } + }, { + key: "componentDidMount", + value: function componentDidMount() { + var _this2 = this; + setTimeout((function() { + if (_this2.listRef.current) { + var activeIndex = _this2.fonts.indexOf(_this2.props.family); + if (activeIndex !== -1) { + _this2.listRef.current.scrollToItem(activeIndex, "center"); + } + } + }), 150); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + if (!window.Lotta) { + return null; + } + var _window$Lotta$customi3 = window.Lotta.customizer.settings, custom_fonts = _window$Lotta$customi3.custom_fonts, system_fonts = _window$Lotta$customi3.system_fonts, google_fonts = _window$Lotta$customi3.google_fonts; + var data = Object.assign({}, custom_fonts, system_fonts, google_fonts); + var fonts = this.fonts; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "lotta-fonts-list-wrapper", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "lotta-fonts-search", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", { + type: "text", + value: this.state.filter, + onChange: function onChange(e) { + _this3.setState({ + filter: e.target.value + }); + } + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "lotta-fonts-list", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_virtualized_auto_sizer__WEBPACK_IMPORTED_MODULE_1__["default"], { + children: function children(_ref) { + var height = _ref.height, width = _ref.width; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_window__WEBPACK_IMPORTED_MODULE_6__.FixedSizeList, { + ref: _this3.listRef, + width, + height, + itemCount: fonts.length, + itemSize: 65, + itemData: { + fonts, + data + }, + onScroll: function onScroll() { + return _this3.loadWebFonts(fonts); + }, + children: function children(props) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(SingleFont, _objectSpread({ + family: _this3.props.family, + onClick: _this3.props.onChange + }, props)); + } + }); + } + }) + }) ] + }); + } + } ]); + return FontsList; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Component); + }, (module, exports, __webpack_require__) => { + var __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + function aa(a, b, c) { + return a.call.apply(a.bind, arguments); + } + function ba(a, b, c) { + if (!a) throw Error(); + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function() { + var c = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(c, d); + return a.apply(b, c); + }; + } + return function() { + return a.apply(b, arguments); + }; + } + function p(a, b, c) { + p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? aa : ba; + return p.apply(null, arguments); + } + var q = Date.now || function() { + return +new Date; + }; + function ca(a, b) { + this.a = a; + this.o = b || a; + this.c = this.o.document; + } + var da = !!window.FontFace; + function t(a, b, c, d) { + b = a.c.createElement(b); + if (c) for (var e in c) c.hasOwnProperty(e) && ("style" == e ? b.style.cssText = c[e] : b.setAttribute(e, c[e])); + d && b.appendChild(a.c.createTextNode(d)); + return b; + } + function u(a, b, c) { + a = a.c.getElementsByTagName(b)[0]; + a || (a = document.documentElement); + a.insertBefore(c, a.lastChild); + } + function v(a) { + a.parentNode && a.parentNode.removeChild(a); + } + function w(a, b, c) { + b = b || []; + c = c || []; + for (var d = a.className.split(/\s+/), e = 0; e < b.length; e += 1) { + for (var f = !1, g = 0; g < d.length; g += 1) if (b[e] === d[g]) { + f = !0; + break; + } + f || d.push(b[e]); + } + b = []; + for (e = 0; e < d.length; e += 1) { + f = !1; + for (g = 0; g < c.length; g += 1) if (d[e] === c[g]) { + f = !0; + break; + } + f || b.push(d[e]); + } + a.className = b.join(" ").replace(/\s+/g, " ").replace(/^\s+|\s+$/, ""); + } + function y(a, b) { + for (var c = a.className.split(/\s+/), d = 0, e = c.length; d < e; d++) if (c[d] == b) return !0; + return !1; + } + function ea(a) { + return a.o.location.hostname || a.a.location.hostname; + } + function z(a, b, c) { + function d() { + m && e && f && (m(g), m = null); + } + b = t(a, "link", { + rel: "stylesheet", + href: b, + media: "all" + }); + var e = !1, f = !0, g = null, m = c || null; + da ? (b.onload = function() { + e = !0; + d(); + }, b.onerror = function() { + e = !0; + g = Error("Stylesheet failed to load"); + d(); + }) : setTimeout((function() { + e = !0; + d(); + }), 0); + u(a, "head", b); + } + function A(a, b, c, d) { + var e = a.c.getElementsByTagName("head")[0]; + if (e) { + var f = t(a, "script", { + src: b + }), g = !1; + f.onload = f.onreadystatechange = function() { + g || this.readyState && "loaded" != this.readyState && "complete" != this.readyState || (g = !0, + c && c(null), f.onload = f.onreadystatechange = null, "HEAD" == f.parentNode.tagName && e.removeChild(f)); + }; + e.appendChild(f); + setTimeout((function() { + g || (g = !0, c && c(Error("Script load timeout"))); + }), d || 5e3); + return f; + } + return null; + } + function B() { + this.a = 0; + this.c = null; + } + function C(a) { + a.a++; + return function() { + a.a--; + D(a); + }; + } + function E(a, b) { + a.c = b; + D(a); + } + function D(a) { + 0 == a.a && a.c && (a.c(), a.c = null); + } + function F(a) { + this.a = a || "-"; + } + F.prototype.c = function(a) { + for (var b = [], c = 0; c < arguments.length; c++) b.push(arguments[c].replace(/[\W_]+/g, "").toLowerCase()); + return b.join(this.a); + }; + function G(a, b) { + this.c = a; + this.f = 4; + this.a = "n"; + var c = (b || "n4").match(/^([nio])([1-9])$/i); + c && (this.a = c[1], this.f = parseInt(c[2], 10)); + } + function fa(a) { + return H(a) + " " + (a.f + "00") + " 300px " + I(a.c); + } + function I(a) { + var b = []; + a = a.split(/,\s*/); + for (var c = 0; c < a.length; c++) { + var d = a[c].replace(/['"]/g, ""); + -1 != d.indexOf(" ") || /^\d/.test(d) ? b.push("'" + d + "'") : b.push(d); + } + return b.join(","); + } + function J(a) { + return a.a + a.f; + } + function H(a) { + var b = "normal"; + "o" === a.a ? b = "oblique" : "i" === a.a && (b = "italic"); + return b; + } + function ga(a) { + var b = 4, c = "n", d = null; + a && ((d = a.match(/(normal|oblique|italic)/i)) && d[1] && (c = d[1].substr(0, 1).toLowerCase()), + (d = a.match(/([1-9]00|normal|bold)/i)) && d[1] && (/bold/i.test(d[1]) ? b = 7 : /[1-9]00/.test(d[1]) && (b = parseInt(d[1].substr(0, 1), 10)))); + return c + b; + } + function ha(a, b) { + this.c = a; + this.f = a.o.document.documentElement; + this.h = b; + this.a = new F("-"); + this.j = !1 !== b.events; + this.g = !1 !== b.classes; + } + function ia(a) { + a.g && w(a.f, [ a.a.c("wf", "loading") ]); + K(a, "loading"); + } + function L(a) { + if (a.g) { + var b = y(a.f, a.a.c("wf", "active")), c = [], d = [ a.a.c("wf", "loading") ]; + b || c.push(a.a.c("wf", "inactive")); + w(a.f, c, d); + } + K(a, "inactive"); + } + function K(a, b, c) { + if (a.j && a.h[b]) if (c) a.h[b](c.c, J(c)); else a.h[b](); + } + function ja() { + this.c = {}; + } + function ka(a, b, c) { + var d = [], e; + for (e in b) if (b.hasOwnProperty(e)) { + var f = a.c[e]; + f && d.push(f(b[e], c)); + } + return d; + } + function M(a, b) { + this.c = a; + this.f = b; + this.a = t(this.c, "span", { + "aria-hidden": "true" + }, this.f); + } + function N(a) { + u(a.c, "body", a.a); + } + function O(a) { + return "display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:" + I(a.c) + ";" + ("font-style:" + H(a) + ";font-weight:" + (a.f + "00") + ";"); + } + function P(a, b, c, d, e, f) { + this.g = a; + this.j = b; + this.a = d; + this.c = c; + this.f = e || 3e3; + this.h = f || void 0; + } + P.prototype.start = function() { + var a = this.c.o.document, b = this, c = q(), d = new Promise((function(d, e) { + function f() { + q() - c >= b.f ? e() : a.fonts.load(fa(b.a), b.h).then((function(a) { + 1 <= a.length ? d() : setTimeout(f, 25); + }), (function() { + e(); + })); + } + f(); + })), e = null, f = new Promise((function(a, d) { + e = setTimeout(d, b.f); + })); + Promise.race([ f, d ]).then((function() { + e && (clearTimeout(e), e = null); + b.g(b.a); + }), (function() { + b.j(b.a); + })); + }; + function Q(a, b, c, d, e, f, g) { + this.v = a; + this.B = b; + this.c = c; + this.a = d; + this.s = g || "BESbswy"; + this.f = {}; + this.w = e || 3e3; + this.u = f || null; + this.m = this.j = this.h = this.g = null; + this.g = new M(this.c, this.s); + this.h = new M(this.c, this.s); + this.j = new M(this.c, this.s); + this.m = new M(this.c, this.s); + a = new G(this.a.c + ",serif", J(this.a)); + a = O(a); + this.g.a.style.cssText = a; + a = new G(this.a.c + ",sans-serif", J(this.a)); + a = O(a); + this.h.a.style.cssText = a; + a = new G("serif", J(this.a)); + a = O(a); + this.j.a.style.cssText = a; + a = new G("sans-serif", J(this.a)); + a = O(a); + this.m.a.style.cssText = a; + N(this.g); + N(this.h); + N(this.j); + N(this.m); + } + var R = { + D: "serif", + C: "sans-serif" + }, S = null; + function T() { + if (null === S) { + var a = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent); + S = !!a && (536 > parseInt(a[1], 10) || 536 === parseInt(a[1], 10) && 11 >= parseInt(a[2], 10)); + } + return S; + } + Q.prototype.start = function() { + this.f.serif = this.j.a.offsetWidth; + this.f["sans-serif"] = this.m.a.offsetWidth; + this.A = q(); + U(this); + }; + function la(a, b, c) { + for (var d in R) if (R.hasOwnProperty(d) && b === a.f[R[d]] && c === a.f[R[d]]) return !0; + return !1; + } + function U(a) { + var b = a.g.a.offsetWidth, c = a.h.a.offsetWidth, d; + (d = b === a.f.serif && c === a.f["sans-serif"]) || (d = T() && la(a, b, c)); + d ? q() - a.A >= a.w ? T() && la(a, b, c) && (null === a.u || a.u.hasOwnProperty(a.a.c)) ? V(a, a.v) : V(a, a.B) : ma(a) : V(a, a.v); + } + function ma(a) { + setTimeout(p((function() { + U(this); + }), a), 50); + } + function V(a, b) { + setTimeout(p((function() { + v(this.g.a); + v(this.h.a); + v(this.j.a); + v(this.m.a); + b(this.a); + }), a), 0); + } + function W(a, b, c) { + this.c = a; + this.a = b; + this.f = 0; + this.m = this.j = !1; + this.s = c; + } + var X = null; + W.prototype.g = function(a) { + var b = this.a; + b.g && w(b.f, [ b.a.c("wf", a.c, J(a).toString(), "active") ], [ b.a.c("wf", a.c, J(a).toString(), "loading"), b.a.c("wf", a.c, J(a).toString(), "inactive") ]); + K(b, "fontactive", a); + this.m = !0; + na(this); + }; + W.prototype.h = function(a) { + var b = this.a; + if (b.g) { + var c = y(b.f, b.a.c("wf", a.c, J(a).toString(), "active")), d = [], e = [ b.a.c("wf", a.c, J(a).toString(), "loading") ]; + c || d.push(b.a.c("wf", a.c, J(a).toString(), "inactive")); + w(b.f, d, e); + } + K(b, "fontinactive", a); + na(this); + }; + function na(a) { + 0 == --a.f && a.j && (a.m ? (a = a.a, a.g && w(a.f, [ a.a.c("wf", "active") ], [ a.a.c("wf", "loading"), a.a.c("wf", "inactive") ]), + K(a, "active")) : L(a.a)); + } + function oa(a) { + this.j = a; + this.a = new ja; + this.h = 0; + this.f = this.g = !0; + } + oa.prototype.load = function(a) { + this.c = new ca(this.j, a.context || this.j); + this.g = !1 !== a.events; + this.f = !1 !== a.classes; + pa(this, new ha(this.c, a), a); + }; + function qa(a, b, c, d, e) { + var f = 0 == --a.h; + (a.f || a.g) && setTimeout((function() { + var a = e || null, m = d || null || {}; + if (0 === c.length && f) L(b.a); else { + b.f += c.length; + f && (b.j = f); + var h, l = []; + for (h = 0; h < c.length; h++) { + var k = c[h], n = m[k.c], r = b.a, x = k; + r.g && w(r.f, [ r.a.c("wf", x.c, J(x).toString(), "loading") ]); + K(r, "fontloading", x); + r = null; + if (null === X) if (window.FontFace) { + var x = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent), xa = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); + X = x ? 42 < parseInt(x[1], 10) : xa ? !1 : !0; + } else X = !1; + X ? r = new P(p(b.g, b), p(b.h, b), b.c, k, b.s, n) : r = new Q(p(b.g, b), p(b.h, b), b.c, k, b.s, a, n); + l.push(r); + } + for (h = 0; h < l.length; h++) l[h].start(); + } + }), 0); + } + function pa(a, b, c) { + var d = [], e = c.timeout; + ia(b); + var d = ka(a.a, c, a.c), f = new W(a.c, b, e); + a.h = d.length; + b = 0; + for (c = d.length; b < c; b++) d[b].load((function(b, d, c) { + qa(a, f, b, d, c); + })); + } + function ra(a, b) { + this.c = a; + this.a = b; + } + ra.prototype.load = function(a) { + function b() { + if (f["__mti_fntLst" + d]) { + var c = f["__mti_fntLst" + d](), e = [], h; + if (c) for (var l = 0; l < c.length; l++) { + var k = c[l].fontfamily; + void 0 != c[l].fontStyle && void 0 != c[l].fontWeight ? (h = c[l].fontStyle + c[l].fontWeight, + e.push(new G(k, h))) : e.push(new G(k)); + } + a(e); + } else setTimeout((function() { + b(); + }), 50); + } + var c = this, d = c.a.projectId, e = c.a.version; + if (d) { + var f = c.c.o; + A(this.c, (c.a.api || "https://fast.fonts.net/jsapi") + "/" + d + ".js" + (e ? "?v=" + e : ""), (function(e) { + e ? a([]) : (f["__MonotypeConfiguration__" + d] = function() { + return c.a; + }, b()); + })).id = "__MonotypeAPIScript__" + d; + } else a([]); + }; + function sa(a, b) { + this.c = a; + this.a = b; + } + sa.prototype.load = function(a) { + var b, c, d = this.a.urls || [], e = this.a.families || [], f = this.a.testStrings || {}, g = new B; + b = 0; + for (c = d.length; b < c; b++) z(this.c, d[b], C(g)); + var m = []; + b = 0; + for (c = e.length; b < c; b++) if (d = e[b].split(":"), d[1]) for (var h = d[1].split(","), l = 0; l < h.length; l += 1) m.push(new G(d[0], h[l])); else m.push(new G(d[0])); + E(g, (function() { + a(m, f); + })); + }; + function ta(a, b) { + a ? this.c = a : this.c = ua; + this.a = []; + this.f = []; + this.g = b || ""; + } + var ua = "https://fonts.googleapis.com/css"; + function va(a, b) { + for (var c = b.length, d = 0; d < c; d++) { + var e = b[d].split(":"); + 3 == e.length && a.f.push(e.pop()); + var f = ""; + 2 == e.length && "" != e[1] && (f = ":"); + a.a.push(e.join(f)); + } + } + function wa(a) { + if (0 == a.a.length) throw Error("No fonts to load!"); + if (-1 != a.c.indexOf("kit=")) return a.c; + for (var b = a.a.length, c = [], d = 0; d < b; d++) c.push(a.a[d].replace(/ /g, "+")); + b = a.c + "?family=" + c.join("%7C"); + 0 < a.f.length && (b += "&subset=" + a.f.join(",")); + 0 < a.g.length && (b += "&text=" + encodeURIComponent(a.g)); + return b; + } + function ya(a) { + this.f = a; + this.a = []; + this.c = {}; + } + var za = { + latin: "BESbswy", + "latin-ext": "çöüğş", + cyrillic: "йяЖ", + greek: "αβΣ", + khmer: "កខគ", + Hanuman: "កខគ" + }, Aa = { + thin: "1", + extralight: "2", + "extra-light": "2", + ultralight: "2", + "ultra-light": "2", + light: "3", + regular: "4", + book: "4", + medium: "5", + "semi-bold": "6", + semibold: "6", + "demi-bold": "6", + demibold: "6", + bold: "7", + "extra-bold": "8", + extrabold: "8", + "ultra-bold": "8", + ultrabold: "8", + black: "9", + heavy: "9", + l: "3", + r: "4", + b: "7" + }, Ba = { + i: "i", + italic: "i", + n: "n", + normal: "n" + }, Ca = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/; + function Da(a) { + for (var b = a.f.length, c = 0; c < b; c++) { + var d = a.f[c].split(":"), e = d[0].replace(/\+/g, " "), f = [ "n4" ]; + if (2 <= d.length) { + var g; + var m = d[1]; + g = []; + if (m) for (var m = m.split(","), h = m.length, l = 0; l < h; l++) { + var k; + k = m[l]; + if (k.match(/^[\w-]+$/)) { + var n = Ca.exec(k.toLowerCase()); + if (null == n) k = ""; else { + k = n[2]; + k = null == k || "" == k ? "n" : Ba[k]; + n = n[1]; + if (null == n || "" == n) n = "4"; else var r = Aa[n], n = r ? r : isNaN(n) ? "4" : n.substr(0, 1); + k = [ k, n ].join(""); + } + } else k = ""; + k && g.push(k); + } + 0 < g.length && (f = g); + 3 == d.length && (d = d[2], g = [], d = d ? d.split(",") : g, 0 < d.length && (d = za[d[0]]) && (a.c[e] = d)); + } + a.c[e] || (d = za[e]) && (a.c[e] = d); + for (d = 0; d < f.length; d += 1) a.a.push(new G(e, f[d])); + } + } + function Ea(a, b) { + this.c = a; + this.a = b; + } + var Fa = { + Arimo: !0, + Cousine: !0, + Tinos: !0 + }; + Ea.prototype.load = function(a) { + var b = new B, c = this.c, d = new ta(this.a.api, this.a.text), e = this.a.families; + va(d, e); + var f = new ya(e); + Da(f); + z(c, wa(d), C(b)); + E(b, (function() { + a(f.a, f.c, Fa); + })); + }; + function Ga(a, b) { + this.c = a; + this.a = b; + } + Ga.prototype.load = function(a) { + var b = this.a.id, c = this.c.o; + b ? A(this.c, (this.a.api || "https://use.typekit.net") + "/" + b + ".js", (function(b) { + if (b) a([]); else if (c.Typekit && c.Typekit.config && c.Typekit.config.fn) { + b = c.Typekit.config.fn; + for (var e = [], f = 0; f < b.length; f += 2) for (var g = b[f], m = b[f + 1], h = 0; h < m.length; h++) e.push(new G(g, m[h])); + try { + c.Typekit.load({ + events: !1, + classes: !1, + async: !0 + }); + } catch (l) {} + a(e); + } + }), 2e3) : a([]); + }; + function Ha(a, b) { + this.c = a; + this.f = b; + this.a = []; + } + Ha.prototype.load = function(a) { + var b = this.f.id, c = this.c.o, d = this; + b ? (c.__webfontfontdeckmodule__ || (c.__webfontfontdeckmodule__ = {}), c.__webfontfontdeckmodule__[b] = function(b, c) { + for (var g = 0, m = c.fonts.length; g < m; ++g) { + var h = c.fonts[g]; + d.a.push(new G(h.name, ga("font-weight:" + h.weight + ";font-style:" + h.style))); + } + a(d.a); + }, A(this.c, (this.f.api || "https://f.fontdeck.com/s/css/js/") + ea(this.c) + "/" + b + ".js", (function(b) { + b && a([]); + }))) : a([]); + }; + var Y = new oa(window); + Y.a.c.custom = function(a, b) { + return new sa(b, a); + }; + Y.a.c.fontdeck = function(a, b) { + return new Ha(b, a); + }; + Y.a.c.monotype = function(a, b) { + return new ra(b, a); + }; + Y.a.c.typekit = function(a, b) { + return new Ga(b, a); + }; + Y.a.c.google = function(a, b) { + return new Ea(b, a); + }; + var Z = { + load: p(Y.load, Y) + }; + true ? !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return Z; + }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; + })(); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); + var react__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); + var classCallCheck = function(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + var createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + var inherits = function(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + }; + var possibleConstructorReturn = function(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return call && (typeof call === "object" || typeof call === "function") ? call : self; + }; + var slicedToArray = function() { + function sliceIterator(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"]) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + return function(arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + return sliceIterator(arr, i); + } else { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + }; + }(); + var windowObject = void 0; + if (typeof window !== "undefined") { + windowObject = window; + } else if (typeof self !== "undefined") { + windowObject = self; + } else { + windowObject = __webpack_require__.g; + } + var cancelFrame = null; + var requestFrame = null; + var TIMEOUT_DURATION = 20; + var clearTimeoutFn = windowObject.clearTimeout; + var setTimeoutFn = windowObject.setTimeout; + var cancelAnimationFrameFn = windowObject.cancelAnimationFrame || windowObject.mozCancelAnimationFrame || windowObject.webkitCancelAnimationFrame; + var requestAnimationFrameFn = windowObject.requestAnimationFrame || windowObject.mozRequestAnimationFrame || windowObject.webkitRequestAnimationFrame; + if (cancelAnimationFrameFn == null || requestAnimationFrameFn == null) { + cancelFrame = clearTimeoutFn; + requestFrame = function requestAnimationFrameViaSetTimeout(callback) { + return setTimeoutFn(callback, TIMEOUT_DURATION); + }; + } else { + cancelFrame = function cancelFrame(_ref) { + var _ref2 = slicedToArray(_ref, 2), animationFrameID = _ref2[0], timeoutID = _ref2[1]; + cancelAnimationFrameFn(animationFrameID); + clearTimeoutFn(timeoutID); + }; + requestFrame = function requestAnimationFrameWithSetTimeoutFallback(callback) { + var animationFrameID = requestAnimationFrameFn((function animationFrameCallback() { + clearTimeoutFn(timeoutID); + callback(); + })); + var timeoutID = setTimeoutFn((function timeoutCallback() { + cancelAnimationFrameFn(animationFrameID); + callback(); + }), TIMEOUT_DURATION); + return [ animationFrameID, timeoutID ]; + }; + } + function createDetectElementResize(nonce) { + var animationKeyframes = void 0; + var animationName = void 0; + var animationStartEvent = void 0; + var animationStyle = void 0; + var checkTriggers = void 0; + var resetTriggers = void 0; + var scrollListener = void 0; + var attachEvent = typeof document !== "undefined" && document.attachEvent; + if (!attachEvent) { + resetTriggers = function resetTriggers(element) { + var triggers = element.__resizeTriggers__, expand = triggers.firstElementChild, contract = triggers.lastElementChild, expandChild = expand.firstElementChild; + contract.scrollLeft = contract.scrollWidth; + contract.scrollTop = contract.scrollHeight; + expandChild.style.width = expand.offsetWidth + 1 + "px"; + expandChild.style.height = expand.offsetHeight + 1 + "px"; + expand.scrollLeft = expand.scrollWidth; + expand.scrollTop = expand.scrollHeight; + }; + checkTriggers = function checkTriggers(element) { + return element.offsetWidth !== element.__resizeLast__.width || element.offsetHeight !== element.__resizeLast__.height; + }; + scrollListener = function scrollListener(e) { + if (e.target.className && typeof e.target.className.indexOf === "function" && e.target.className.indexOf("contract-trigger") < 0 && e.target.className.indexOf("expand-trigger") < 0) { + return; + } + var element = this; + resetTriggers(this); + if (this.__resizeRAF__) { + cancelFrame(this.__resizeRAF__); + } + this.__resizeRAF__ = requestFrame((function animationFrame() { + if (checkTriggers(element)) { + element.__resizeLast__.width = element.offsetWidth; + element.__resizeLast__.height = element.offsetHeight; + element.__resizeListeners__.forEach((function forEachResizeListener(fn) { + fn.call(element, e); + })); + } + })); + }; + var animation = false; + var keyframeprefix = ""; + animationStartEvent = "animationstart"; + var domPrefixes = "Webkit Moz O ms".split(" "); + var startEvents = "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "); + var pfx = ""; + { + var elm = document.createElement("fakeelement"); + if (elm.style.animationName !== undefined) { + animation = true; + } + if (animation === false) { + for (var i = 0; i < domPrefixes.length; i++) { + if (elm.style[domPrefixes[i] + "AnimationName"] !== undefined) { + pfx = domPrefixes[i]; + keyframeprefix = "-" + pfx.toLowerCase() + "-"; + animationStartEvent = startEvents[i]; + animation = true; + break; + } + } + } + } + animationName = "resizeanim"; + animationKeyframes = "@" + keyframeprefix + "keyframes " + animationName + " { from { opacity: 0; } to { opacity: 0; } } "; + animationStyle = keyframeprefix + "animation: 1ms " + animationName + "; "; + } + var createStyles = function createStyles(doc) { + if (!doc.getElementById("detectElementResize")) { + var css = (animationKeyframes ? animationKeyframes : "") + ".resize-triggers { " + (animationStyle ? animationStyle : "") + "visibility: hidden; opacity: 0; } " + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }', head = doc.head || doc.getElementsByTagName("head")[0], style = doc.createElement("style"); + style.id = "detectElementResize"; + style.type = "text/css"; + if (nonce != null) { + style.setAttribute("nonce", nonce); + } + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(doc.createTextNode(css)); + } + head.appendChild(style); + } + }; + var addResizeListener = function addResizeListener(element, fn) { + if (attachEvent) { + element.attachEvent("onresize", fn); + } else { + if (!element.__resizeTriggers__) { + var doc = element.ownerDocument; + var elementStyle = windowObject.getComputedStyle(element); + if (elementStyle && elementStyle.position === "static") { + element.style.position = "relative"; + } + createStyles(doc); + element.__resizeLast__ = {}; + element.__resizeListeners__ = []; + (element.__resizeTriggers__ = doc.createElement("div")).className = "resize-triggers"; + var expandTrigger = doc.createElement("div"); + expandTrigger.className = "expand-trigger"; + expandTrigger.appendChild(doc.createElement("div")); + var contractTrigger = doc.createElement("div"); + contractTrigger.className = "contract-trigger"; + element.__resizeTriggers__.appendChild(expandTrigger); + element.__resizeTriggers__.appendChild(contractTrigger); + element.appendChild(element.__resizeTriggers__); + resetTriggers(element); + element.addEventListener("scroll", scrollListener, true); + if (animationStartEvent) { + element.__resizeTriggers__.__animationListener__ = function animationListener(e) { + if (e.animationName === animationName) { + resetTriggers(element); + } + }; + element.__resizeTriggers__.addEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__); + } + } + element.__resizeListeners__.push(fn); + } + }; + var removeResizeListener = function removeResizeListener(element, fn) { + if (attachEvent) { + element.detachEvent("onresize", fn); + } else { + element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); + if (!element.__resizeListeners__.length) { + element.removeEventListener("scroll", scrollListener, true); + if (element.__resizeTriggers__.__animationListener__) { + element.__resizeTriggers__.removeEventListener(animationStartEvent, element.__resizeTriggers__.__animationListener__); + element.__resizeTriggers__.__animationListener__ = null; + } + try { + element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__); + } catch (e) {} + } + } + }; + return { + addResizeListener, + removeResizeListener + }; + } + var AutoSizer = function(_React$PureComponent) { + inherits(AutoSizer, _React$PureComponent); + function AutoSizer() { + var _ref; + var _temp, _this, _ret; + classCallCheck(this, AutoSizer); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = AutoSizer.__proto__ || Object.getPrototypeOf(AutoSizer)).call.apply(_ref, [ this ].concat(args))), + _this), _this.state = { + height: _this.props.defaultHeight || 0, + width: _this.props.defaultWidth || 0 + }, _this._onResize = function() { + var _this$props = _this.props, disableHeight = _this$props.disableHeight, disableWidth = _this$props.disableWidth, onResize = _this$props.onResize; + if (_this._parentNode) { + var _height = _this._parentNode.offsetHeight || 0; + var _width = _this._parentNode.offsetWidth || 0; + var _style = window.getComputedStyle(_this._parentNode) || {}; + var paddingLeft = parseInt(_style.paddingLeft, 10) || 0; + var paddingRight = parseInt(_style.paddingRight, 10) || 0; + var paddingTop = parseInt(_style.paddingTop, 10) || 0; + var paddingBottom = parseInt(_style.paddingBottom, 10) || 0; + var newHeight = _height - paddingTop - paddingBottom; + var newWidth = _width - paddingLeft - paddingRight; + if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) { + _this.setState({ + height: _height - paddingTop - paddingBottom, + width: _width - paddingLeft - paddingRight + }); + onResize({ + height: _height, + width: _width + }); + } + } + }, _this._setRef = function(autoSizer) { + _this._autoSizer = autoSizer; + }, _temp), possibleConstructorReturn(_this, _ret); + } + createClass(AutoSizer, [ { + key: "componentDidMount", + value: function componentDidMount() { + var nonce = this.props.nonce; + if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) { + this._parentNode = this._autoSizer.parentNode; + this._detectElementResize = createDetectElementResize(nonce); + this._detectElementResize.addResizeListener(this._parentNode, this._onResize); + this._onResize(); + } + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + if (this._detectElementResize && this._parentNode) { + this._detectElementResize.removeResizeListener(this._parentNode, this._onResize); + } + } + }, { + key: "render", + value: function render() { + var _props = this.props, children = _props.children, className = _props.className, disableHeight = _props.disableHeight, disableWidth = _props.disableWidth, style = _props.style; + var _state = this.state, height = _state.height, width = _state.width; + var outerStyle = { + overflow: "visible" + }; + var childParams = {}; + var bailoutOnChildren = false; + if (!disableHeight) { + if (height === 0) { + bailoutOnChildren = true; + } + outerStyle.height = 0; + childParams.height = height; + } + if (!disableWidth) { + if (width === 0) { + bailoutOnChildren = true; + } + outerStyle.width = 0; + childParams.width = width; + } + return (0, react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + className, + ref: this._setRef, + style: _extends({}, outerStyle, style) + }, !bailoutOnChildren && children(childParams)); + } + } ]); + return AutoSizer; + }(react__WEBPACK_IMPORTED_MODULE_0__.PureComponent); + AutoSizer.defaultProps = { + onResize: function onResize() {}, + disableHeight: false, + disableWidth: false, + style: {} + }; + const __WEBPACK_DEFAULT_EXPORT__ = AutoSizer; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => VariantsList, + getVariantName: () => getVariantName + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var getVariantName = function getVariantName(variant) { + var allVariants = { + inherit: "Default", + 100: "Thin 100", + "100italic": "100 Italic", + "100i": "100 Italic", + 200: "Extra-Light 200", + "200italic": "200 Italic", + "200i": "200 Italic", + 300: "Light 300", + "300italic": "300 Italic", + "300i": "300 Italic", + 400: "Normal 400", + "400italic": "400 Italic", + "400i": "400 Italic", + 500: "Medium 500", + "500italic": "500 Italic", + "500i": "500 Italic", + 600: "Semi-Bold 600", + "600italic": "600 Italic", + "600i": "600 Italic", + 700: "Bold 700", + "700italic": "700 Italic", + "700i": "700 Italic", + 800: "Extra-Bold 800", + "800italic": "800 Italic", + "800i": "800 Italic", + 900: "Ultra-Bold 900", + "900italic": "900 Italic", + "900i": "900 Italic" + }; + return allVariants[variant] || variant; + }; + var getVariants = function getVariants(family) { + if (!window.Lotta) { + return []; + } + var _window$Lotta$customi = window.Lotta.customizer.settings, custom_fonts = _window$Lotta$customi.custom_fonts, system_fonts = _window$Lotta$customi.system_fonts, google_fonts = _window$Lotta$customi.google_fonts; + if (custom_fonts[family]) { + return [ custom_fonts[family].v ]; + } + if (system_fonts[family]) { + return [ "300", "400", "700" ]; + } + if (google_fonts[family]) { + return google_fonts[family].v; + } + return []; + }; + var VariantsList = function(_Component) { + _inherits(VariantsList, _Component); + var _super = _createSuper(VariantsList); + function VariantsList() { + _classCallCheck(this, VariantsList); + return _super.apply(this, arguments); + } + _createClass(VariantsList, [ { + key: "render", + value: function render() { + var _this$props = this.props, variant = _this$props.variant, family = _this$props.family, onChange = _this$props.onChange; + var variants = getVariants(family); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "lotta-variants-list-wrapper", + children: variants.map((function(data, i) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("variant-item", { + active: data === variant + }), + onClick: function onClick() { + return onChange(data); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "variant-label", + children: getVariantName(data) + }) + }, i); + })) + }); + } + } ]); + return VariantsList; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _match_conditions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(272); + var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Condition = function(_Component) { + _inherits(Condition, _Component); + var _super = _createSuper(Condition); + function Condition() { + var _this; + _classCallCheck(this, Condition); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "unbind", (function() { + return null; + })); + return _this; + } + _createClass(Condition, [ { + key: "componentDidMount", + value: function componentDidMount() { + var _this2 = this; + this.unbind = LottaEvents.bind("lotta-setting-change", (function(id) { + var conditions = Object.keys(_this2.props.options.condition); + if (conditions.indexOf(id) !== -1) { + _this2.forceUpdate(); + } + })); + Object.keys(this.props.options.condition).forEach((function(setting) { + var control = wp.customize(setting); + if (control) { + control.bind((function() { + _this2.forceUpdate(); + })); + } + })); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.unbind(); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + var _this$props = this.props, options = _this$props.options, settings = _this$props.settings, _onChange = _this$props.onChange; + var czSettings = typeof settings === "function" ? settings() : settings; + czSettings = czSettings === _index__WEBPACK_IMPORTED_MODULE_1__.CZ_VALUES ? undefined : czSettings; + var values = Object.keys(options.condition).reduce((function(current, key) { + return _objectSpread(_objectSpread({}, current), {}, _defineProperty({}, key, czSettings ? czSettings[key] : wp.customize(key)())); + }), {}); + var matches = (0, _match_conditions__WEBPACK_IMPORTED_MODULE_0__.matchValuesWithCondition)((0, + _match_conditions__WEBPACK_IMPORTED_MODULE_0__.normalizeCondition)(options.condition), values); + matches = options.reverse ? !matches : matches; + return !matches ? (0, _index__WEBPACK_IMPORTED_MODULE_1__.buildNestedControls)({ + controls: options.reverseControls, + settings, + onChange: function onChange(val, id) { + _onChange(val, id); + } + }) : (0, _index__WEBPACK_IMPORTED_MODULE_1__.buildNestedControls)({ + controls: options.controls, + settings, + onChange: function onChange(val, id, self) { + _onChange(val, id); + if (!self) { + _this3.forceUpdate(); + } + } + }); + } + } ]); + return Condition; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Condition; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _page_builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(313); + const __WEBPACK_DEFAULT_EXPORT__ = _page_builder__WEBPACK_IMPORTED_MODULE_0__["default"]; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _panel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var _sidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(314); + var _navigation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(317); + var immutability_helper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(279); + var immutability_helper__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(immutability_helper__WEBPACK_IMPORTED_MODULE_5__); + var _icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(277); + var _throttler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75); + var _customize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(320); + var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var PageBuilder = function(_Component) { + _inherits(PageBuilder, _Component); + var _super = _createSuper(PageBuilder); + function PageBuilder() { + var _this; + _classCallCheck(this, PageBuilder); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + sidebarVisible: false, + sidebarType: "row-structure", + activeRow: null, + activeColumn: null + }); + _defineProperty(_assertThisInitialized(_this), "renderSidebar", (function() { + return null; + })); + _defineProperty(_assertThisInitialized(_this), "openPanel", (function() { + return null; + })); + _defineProperty(_assertThisInitialized(_this), "columnsChangeThrottler", null); + _defineProperty(_assertThisInitialized(_this), "elementsChangeThrottler", null); + _defineProperty(_assertThisInitialized(_this), "handleChange", (function(id, settingId, val) { + if (!id) { + _this.props.onChange(val, settingId); + return; + } + if (id.startsWith("row")) { + var rowIndex = Number(id.replace("row-", "").split("-")[0]); + if (!isNaN(rowIndex)) { + if (Array.isArray(_this.props.value) && Array.isArray(_this.props.value[rowIndex]["settings"])) { + _this.props.value[rowIndex]["settings"] = {}; + } + _this.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this.props.value), _defineProperty({}, rowIndex, { + settings: _defineProperty({}, settingId, { + $set: val + }) + }))); + } + } + if (id.startsWith("col")) { + var indexes = id.replace("col-", "").split("-"); + var _rowIndex = Number(indexes[0]); + var colIndex = Number(indexes[1]); + if (!isNaN(_rowIndex) && !isNaN(colIndex)) { + if (Array.isArray(_this.props.value) && Array.isArray(_this.props.value[_rowIndex]["columns"][colIndex]["settings"])) { + _this.props.value[_rowIndex]["columns"][colIndex]["settings"] = {}; + } + _this.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this.props.value), _defineProperty({}, _rowIndex, { + columns: _defineProperty({}, colIndex, { + settings: _defineProperty({}, settingId, { + $set: val + }) + }) + }))); + } + } + if (id.startsWith("element")) { + var _indexes = id.replace("element-", "").split("-"); + var _rowIndex2 = Number(_indexes[0]); + var _colIndex = Number(_indexes[1]); + var elIndex = Number(_indexes[2]); + if (!isNaN(_rowIndex2) && !isNaN(_colIndex) && !isNaN(elIndex)) { + if (Array.isArray(_this.props.value) && Array.isArray(_this.props.value[_rowIndex2]["columns"][_colIndex]["elements"][elIndex]["settings"])) { + _this.props.value[_rowIndex2]["columns"][_colIndex]["elements"][elIndex]["settings"] = {}; + } + _this.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this.props.value), _defineProperty({}, _rowIndex2, { + columns: _defineProperty({}, _colIndex, { + elements: _defineProperty({}, elIndex, { + settings: _defineProperty({}, settingId, { + $set: val + }) + }) + }) + }))); + } + } + })); + return _this; + } + _createClass(PageBuilder, [ { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.destroySidebars(); + } + }, { + key: "componentDidMount", + value: function componentDidMount() { + var _this2 = this; + this.createSidebar(); + (0, _customize__WEBPACK_IMPORTED_MODULE_8__.bindControlVisible)(this.props.id, (function(visible) { + if (!visible) { + _this2.setState({ + sidebarVisible: false + }, (function() { + _this2.renderSidebar(); + })); + } + })); + } + }, { + key: "createSidebar", + value: function createSidebar() { + var _this3 = this; + var container = document.createElement("div"); + container.classList.add("lotta-page-builder-sidebar-wrapper"); + document.querySelector(".wp-full-overlay").appendChild(container); + this.renderSidebar = function() { + var sidebarEl = (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_sidebar__WEBPACK_IMPORTED_MODULE_3__["default"], { + options: _this3.props.options, + type: _this3.state.sidebarType, + visible: _this3.state.sidebarVisible, + onClose: function onClose() { + _this3.setState({ + sidebarVisible: false + }, (function() { + _this3.renderSidebar(); + })); + }, + onRowAdd: function onRowAdd(row) { + _this3.props.onChange([].concat(_toConsumableArray((0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this3.props.value)), [ row ])); + }, + onElementChoose: function onElementChoose(el) { + if (_this3.state.activeRow === null || _this3.state.activeColumn === null) { + return; + } + _this3.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this3.props.value), _defineProperty({}, _this3.state.activeRow, { + columns: _defineProperty({}, _this3.state.activeColumn, { + elements: { + $push: [ { + id: el, + settings: {} + } ] + } + }) + }))); + } + }); + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot) { + if (!_this3.sidebarRoot) { + _this3.sidebarRoot = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot)(container); + } + _this3.sidebarRoot.render(sidebarEl); + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(sidebarEl, container); + } + }; + this.renderSidebar(); + } + }, { + key: "destroySidebars", + value: function destroySidebars() { + var _this4 = this; + var sidebars = document.querySelectorAll(".lotta-page-builder-sidebar-wrapper"); + sidebars.forEach((function(sidebar) { + sidebar.classList.add("leave"); + })); + setTimeout((function() { + if (_this4.sidebarRoot) { + _this4.sidebarRoot.unmout(); + _this4.sidebarRoot = null; + } else { + sidebars.forEach((function(sidebar) { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.unmountComponentAtNode)(sidebar); + sidebar.remove(); + })); + } + }), 150); + } + }, { + key: "showRowStructureSidebar", + value: function showRowStructureSidebar() { + var _this5 = this; + this.setState({ + sidebarVisible: true, + sidebarType: "row-structure" + }, (function() { + _this5.renderSidebar(); + })); + } + }, { + key: "showElementsSidebar", + value: function showElementsSidebar(row, col) { + var _this6 = this; + this.setState({ + sidebarVisible: true, + sidebarType: "elements", + activeRow: row, + activeColumn: col + }, (function() { + _this6.renderSidebar(); + })); + } + }, { + key: "listeners", + get: function get() { + var _this$props = this.props, value = _this$props.value, options = _this$props.options; + var listeners = {}; + (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(value).forEach((function(row, ri) { + listeners["row-".concat(ri)] = Object.assign({ + id: "row-".concat(ri), + values: Object.assign({}, options.row.defaults, row.settings || {}), + label: "Row # ".concat(ri + 1) + }, options.row); + (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(row.columns).forEach((function(col, ci) { + listeners["col-".concat(ri, "-").concat(ci)] = Object.assign({ + id: "col-".concat(ri, "-").concat(ci), + values: Object.assign({}, options.column.defaults, col.settings || {}), + label: "Column # ".concat(ri + 1, "-").concat(ci + 1) + }, options.column); + (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(col.elements).forEach((function(el, ei) { + var element = options.elements[el.id] || {}; + listeners["element-".concat(ri, "-").concat(ci, "-").concat(ei)] = Object.assign({ + id: "element-".concat(ri, "-").concat(ci, "-").concat(ei), + values: Object.assign({}, element.defaults, el.settings || {}) + }, element); + })); + })); + })); + return listeners; + } + }, { + key: "render", + value: function render() { + var _this7 = this; + var options = this.props.options; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_panel__WEBPACK_IMPORTED_MODULE_1__["default"], { + listeners: this.listeners, + onChange: this.handleChange, + getSettings: function getSettings(id) { + if (id && _this7.listeners[id]) { + return _this7.listeners[id].values; + } + return undefined; + }, + children: function children(_ref) { + var container = _ref.container, open = _ref.open; + _this7.openPanel = open; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", { + ref: container, + className: "lotta-page-builder", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)("div", { + className: "page-builder-content", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_navigation__WEBPACK_IMPORTED_MODULE_4__["default"], { + options, + value: (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value), + onRowsChange: function onRowsChange(rows) { + _this7.props.onChange(rows); + }, + onColumnsChange: function onColumnsChange(row, columns) { + if (_this7.columnsChangeThrottler === null) { + _this7.columnsChangeThrottler = new _throttler__WEBPACK_IMPORTED_MODULE_7__["default"](0, (function(changes) { + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value); + changes.forEach((function(data) { + var _data = _slicedToArray(data, 2), row = _data[0], columns = _data[1]; + value = immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()(value, _defineProperty({}, row, { + columns: { + $set: columns + } + })); + })); + _this7.props.onChange(value); + })); + } + _this7.columnsChangeThrottler.buffer(row, columns); + }, + onElementsChange: function onElementsChange(row, col, elements) { + if (_this7.elementsChangeThrottler === null) { + _this7.elementsChangeThrottler = new _throttler__WEBPACK_IMPORTED_MODULE_7__["default"](0, (function(changes) { + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value); + changes.forEach((function(data) { + var _data2 = _slicedToArray(data, 3), row = _data2[0], col = _data2[1], elements = _data2[2]; + value = immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()(value, _defineProperty({}, row, { + columns: _defineProperty({}, col, { + elements: { + $set: elements + } + }) + })); + })); + _this7.props.onChange(value); + })); + } + _this7.elementsChangeThrottler.buffer(row, col, elements); + }, + onRowRemove: function onRowRemove(row) { + _this7.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value), { + $splice: [ [ row, 1 ] ] + })); + }, + onColumnRemove: function onColumnRemove(row, col) { + _this7.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value), _defineProperty({}, row, { + columns: { + $splice: [ [ col, 1 ] ] + } + }))); + }, + onElementRemove: function onElementRemove(row, col, el) { + _this7.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value), _defineProperty({}, row, { + columns: _defineProperty({}, col, { + elements: { + $splice: [ [ el, 1 ] ] + } + }) + }))); + }, + onColumnAdd: function onColumnAdd(row) { + _this7.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_5___default()((0, + _utils__WEBPACK_IMPORTED_MODULE_9__.sanitize_array_value)(_this7.props.value), _defineProperty({}, row, { + columns: { + $push: [ { + elements: [], + settings: { + width: "100%" + } + } ] + } + }))); + }, + onRowClick: function onRowClick(row) { + open(_this7.listeners["row-".concat(row)]); + }, + onColumnClick: function onColumnClick(row, col) { + open(_this7.listeners["col-".concat(row, "-").concat(col)]); + }, + onElementClick: function onElementClick(row, col, el) { + open(_this7.listeners["element-".concat(row, "-").concat(col, "-").concat(el)]); + }, + onAddElement: function onAddElement(row, col) { + _this7.showElementsSidebar(row, col); + } + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)("button", { + className: "page-builder-add-row", + type: "button", + onClick: function onClick() { + return _this7.showRowStructureSidebar(); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_6__.PlusSolid, { + w: 14, + h: 14 + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Add Row") + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)("button", { + className: "page-builder-reset", + type: "button", + onClick: function onClick() { + _this7.props.onChange(_this7.props.options["default"]); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_6__.RotateLeft, { + w: 14, + h: 14 + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Reset Default") + }) ] + }) ] + }) + }); + } + }); + } + } ]); + return PageBuilder; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = PageBuilder; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(254); + var _elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(315); + var _row_structure__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(316); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Sidebar = function(_Component) { + _inherits(Sidebar, _Component); + var _super = _createSuper(Sidebar); + function Sidebar() { + _classCallCheck(this, Sidebar); + return _super.apply(this, arguments); + } + _createClass(Sidebar, [ { + key: "render", + value: function render() { + if (!this.props.visible) { + return null; + } + var _this$props = this.props, type = _this$props.type, options = _this$props.options, onClose = _this$props.onClose, onRowAdd = _this$props.onRowAdd, _onElementChoose = _this$props.onElementChoose; + var elements = type === "elements"; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: "page-builder-sidebar", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: "page-builder-sidebar-header", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { + className: "page-builder-sidebar-title", + children: elements ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Choose Elements") : (0, + _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Choose Row Structure") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("button", { + type: "button", + onClick: onClose, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 512 512", + width: 14, + height: 14, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("path", { + d: "M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" + }) + }) + }) ] + }), elements ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_elements__WEBPACK_IMPORTED_MODULE_2__["default"], { + elements: options.elements, + onElementChoose: function onElementChoose(el) { + _onElementChoose(el); + onClose(); + } + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_row_structure__WEBPACK_IMPORTED_MODULE_3__["default"], { + onStructureChoose: function onStructureChoose(columns) { + columns = columns.map((function(column) { + return { + elements: [], + settings: { + width: { + desktop: column, + tablet: "100%", + mobile: "100%" + } + } + }; + })); + onRowAdd({ + settings: {}, + columns + }); + onClose(); + } + }) ] + }); + } + } ]); + return Sidebar; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Sidebar; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(277); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Elements = function(_Component) { + _inherits(Elements, _Component); + var _super = _createSuper(Elements); + function Elements() { + _classCallCheck(this, Elements); + return _super.apply(this, arguments); + } + _createClass(Elements, [ { + key: "render", + value: function render() { + var _this$props = this.props, elements = _this$props.elements, onElementChoose = _this$props.onElementChoose; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "builder-elements", + children: Object.keys(elements).map((function(id) { + var icon = elements[id].icon; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "builder-element-wrapper", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { + className: "builder-element", + onClick: function onClick() { + return onElementChoose(id); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", { + className: "element-icon", + children: !icon ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Cube, {}) : icon.indexOf(" { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var RowStructure = function(_Component) { + _inherits(RowStructure, _Component); + var _super = _createSuper(RowStructure); + function RowStructure() { + _classCallCheck(this, RowStructure); + return _super.apply(this, arguments); + } + _createClass(RowStructure, [ { + key: "render", + value: function render() { + var onStructureChoose = this.props.onStructureChoose; + var structures = { + "structure-1": [ "100%" ], + "structure-2": [ "50%", "50%" ], + "structure-3": [ "33.33%", "33.33%", "33.33%" ], + "structure-4": [ "25%", "25%", "25%", "25%" ], + "structure-5": [ "30%", "70%" ], + "structure-6": [ "70%", "30%" ], + "structure-7": [ "25%", "25%", "50%" ], + "structure-8": [ "50%", "25%", "25%" ], + "structure-9": [ "25%", "50%", "25%" ], + "structure-10": [ "20%", "60%", "20%" ] + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: "row-structure-list", + children: Object.keys(structures).map((function(id) { + var columns = structures[id]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: "row-structure-item", + onClick: function onClick() { + onStructureChoose(columns); + }, + children: columns.map((function(c, i) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", { + style: { + width: c + }, + className: "row-structure-column" + }, i); + })) + }, id); + })) + }); + } + } ]); + return RowStructure; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = RowStructure; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _navigation_row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(318); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_2__); + var deep_equal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_3__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Navigation = function(_Component) { + _inherits(Navigation, _Component); + var _super = _createSuper(Navigation); + function Navigation() { + _classCallCheck(this, Navigation); + return _super.apply(this, arguments); + } + _createClass(Navigation, [ { + key: "render", + value: function render() { + var _this$props = this.props, value = _this$props.value, options = _this$props.options, onRowClick = _this$props.onRowClick, onColumnClick = _this$props.onColumnClick, onColumnAdd = _this$props.onColumnAdd, onElementClick = _this$props.onElementClick, onAddElement = _this$props.onAddElement, onRowRemove = _this$props.onRowRemove, onColumnRemove = _this$props.onColumnRemove, onElementRemove = _this$props.onElementRemove, onRowsChange = _this$props.onRowsChange, onColumnsChange = _this$props.onColumnsChange, onElementsChange = _this$props.onElementsChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_2__.ReactSortable, { + list: value, + className: "page-builder-rows", + group: "page-builder-rows", + setList: function setList(newRows) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_3___default()(newRows, value)) { + return; + } + onRowsChange(newRows); + }, + children: value.map((function(row, i) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_navigation_row__WEBPACK_IMPORTED_MODULE_1__["default"], { + index: i, + options, + data: row, + onRowClick, + onColumnClick, + onColumnAdd, + onElementClick, + onAddElement, + onRowRemove, + onColumnRemove, + onElementRemove, + onColumnsChange, + onElementsChange + }, i); + })) + }); + } + } ]); + return Navigation; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Navigation; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(277); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var _navigation_column__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(319); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_4__); + var deep_equal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_5___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_5__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var NavigationRow = function(_Component) { + _inherits(NavigationRow, _Component); + var _super = _createSuper(NavigationRow); + function NavigationRow() { + var _this; + _classCallCheck(this, NavigationRow); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + collapse: false + }); + return _this; + } + _createClass(NavigationRow, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, index = _this$props.index, data = _this$props.data, options = _this$props.options, onRowClick = _this$props.onRowClick, onRowRemove = _this$props.onRowRemove, _onColumnClick = _this$props.onColumnClick, onColumnAdd = _this$props.onColumnAdd, _onColumnRemove = _this$props.onColumnRemove, _onElementClick = _this$props.onElementClick, _onAddElement = _this$props.onAddElement, _onElementRemove = _this$props.onElementRemove, onColumnsChange = _this$props.onColumnsChange, _onElementsChange = _this$props.onElementsChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "page-builder-row-container", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "page-builder-row", + onClick: function onClick() { + return onRowClick(index); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", { + type: "button", + onClick: function onClick(ev) { + ev.stopPropagation(); + _this2.setState({ + collapse: !_this2.state.collapse + }); + }, + children: this.state.collapse ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.RightCaret, {}) : (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.DownCaret, {}) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Row, {}), (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Row") + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + className: "page-builder-actions", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", { + type: "button", + onClick: function onClick(ev) { + ev.stopPropagation(); + onColumnAdd(index); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Plus, {}) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", { + type: "button", + className: "remove", + onClick: function onClick(ev) { + ev.stopPropagation(); + onRowRemove(index); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.CircleXMark, {}) + }) ] + }) ] + }), !this.state.collapse && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_4__.ReactSortable, { + className: "page-builder-columns", + group: "page-builder-columns", + list: data.columns, + setList: function setList(newColumns) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_5___default()(newColumns, data.columns)) { + return; + } + onColumnsChange(index, newColumns); + }, + children: data.columns.map((function(col, i) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_navigation_column__WEBPACK_IMPORTED_MODULE_3__["default"], { + index: i, + options, + data: col, + onElementsChange: function onElementsChange(colIndex, elements) { + _onElementsChange(index, colIndex, elements); + }, + onElementClick: function onElementClick(colIndex, elIndex) { + _onElementClick(index, colIndex, elIndex); + }, + onColumnClick: function onColumnClick(colIndex) { + _onColumnClick(index, colIndex); + }, + onColumnRemove: function onColumnRemove(colIndex) { + _onColumnRemove(index, colIndex); + }, + onAddElement: function onAddElement(colIndex) { + _onAddElement(index, colIndex); + }, + onElementRemove: function onElementRemove(colIndex, elIndex) { + _onElementRemove(index, colIndex, elIndex); + } + }, i); + })) + }) ] + }); + } + } ]); + return NavigationRow; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = NavigationRow; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _icons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(277); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_3___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_3__); + var deep_equal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_4__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var NavigationColumn = function(_Component) { + _inherits(NavigationColumn, _Component); + var _super = _createSuper(NavigationColumn); + function NavigationColumn() { + var _this; + _classCallCheck(this, NavigationColumn); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + collapse: false + }); + return _this; + } + _createClass(NavigationColumn, [ { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, index = _this$props.index, options = _this$props.options, data = _this$props.data, onColumnClick = _this$props.onColumnClick, onColumnRemove = _this$props.onColumnRemove, onElementClick = _this$props.onElementClick, onAddElement = _this$props.onAddElement, onElementRemove = _this$props.onElementRemove, onElementsChange = _this$props.onElementsChange; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "page-builder-row-container", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "page-builder-column", + onClick: function onClick() { + return onColumnClick(index); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + type: "button", + onClick: function onClick(ev) { + ev.stopPropagation(); + _this2.setState({ + collapse: !_this2.state.collapse + }); + }, + children: this.state.collapse ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.RightCaret, {}) : (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.DownCaret, {}) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Column, {}), (0, + react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Column") + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "page-builder-actions", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + type: "button", + onClick: function onClick(ev) { + ev.stopPropagation(); + onAddElement(index); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Plus, {}) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + type: "button", + className: "remove", + onClick: function onClick(ev) { + ev.stopPropagation(); + onColumnRemove(index); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.CircleXMark, {}) + }) ] + }) ] + }), !this.state.collapse && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_3__.ReactSortable, { + list: data.elements, + className: "page-builder-elements", + group: "page-builder-elements", + setList: function setList(newElements) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_4___default()(data.elements, newElements)) { + return; + } + onElementsChange(index, newElements); + }, + children: data.elements.map((function(el, i) { + var element = options.elements[el.id] || {}; + var label = element.label || (el.id || (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Element")).replace(/./, (function(s) { + return s.toUpperCase(); + })).replace(/\_|\-/g, " "); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "page-builder-element", + onClick: function onClick() { + onElementClick(index, i); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + children: [ !element.icon ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_1__.Cube, {}) : element.icon.indexOf(" { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + bindControlVisible: () => bindControlVisible + }); + function bindControlVisible(id, callback) { + var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function() { + return null; + }; + var $body = jQuery("body"); + var handleBind = function handleBind() { + var control = wp.customize.control(id); + if (!control || !control.section()) { + return fallback(); + } + var section = wp.customize.section(control.section()); + if (!section) { + return fallback(); + } + section.expanded.bind(callback); + }; + if ($body.hasClass("wp-customizer") && $body.hasClass("ready")) { + return handleBind(); + } + wp.customize.bind("ready", handleBind); + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _builder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(322); + const __WEBPACK_DEFAULT_EXPORT__ = _builder__WEBPACK_IMPORTED_MODULE_0__.Builder; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + Builder: () => Builder + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _placements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(323); + var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(325); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); + var clsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9); + var _panel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(178); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_6___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_6__); + var _throttler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75); + var immutability_helper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(279); + var immutability_helper__WEBPACK_IMPORTED_MODULE_8___default = __webpack_require__.n(immutability_helper__WEBPACK_IMPORTED_MODULE_8__); + var _customize__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(320); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Builder = function(_Component) { + _inherits(Builder, _Component); + var _super = _createSuper(Builder); + function Builder() { + var _this; + _classCallCheck(this, Builder); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + visible: true, + device: wp.customize && wp.customize.previewedDevice ? wp.customize.previewedDevice() : "desktop" + }); + _defineProperty(_assertThisInitialized(_this), "listener", (function() { + return _this.setState({ + device: wp.customize && wp.customize.previewedDevice ? wp.customize.previewedDevice() : "desktop" + }, (function() { + return _this.renderPlacements(); + })); + })); + _defineProperty(_assertThisInitialized(_this), "elementsChangeThrottler", null); + _defineProperty(_assertThisInitialized(_this), "renderPlacements", (function() { + return null; + })); + _defineProperty(_assertThisInitialized(_this), "openPanel", (function() { + return null; + })); + return _this; + } + _createClass(Builder, [ { + key: "bindDeviceListener", + value: function bindDeviceListener() { + var _this2 = this; + if (!this.props.options.responsive_builder) return; + if (!wp.customize) return; + setTimeout((function() { + return wp.customize.previewedDevice.bind(_this2.listener); + }), 1e3); + } + }, { + key: "unbindDeviceListener", + value: function unbindDeviceListener() { + if (!this.props.options.responsive_builder) return; + if (!wp.customize) return; + wp.customize.previewedDevice.unbind(this.listener); + } + }, { + key: "setDevice", + value: function setDevice(device) { + var _this3 = this; + this.setState({ + device + }, (function() { + return _this3.renderPlacements(); + })); + wp.customize && wp.customize.previewedDevice.set(device); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.unbindDeviceListener(); + this.destroyPlacements(); + } + }, { + key: "componentDidMount", + value: function componentDidMount() { + var _this4 = this; + this.bindDeviceListener(); + (0, _customize__WEBPACK_IMPORTED_MODULE_9__.bindControlVisible)(this.props.id, (function(visible) { + visible ? _this4.createPlacements() : _this4.destroyPlacements(); + }), (function() { + _this4.createPlacements(); + })); + } + }, { + key: "destroyPlacements", + value: function destroyPlacements() { + var _this5 = this; + var placements = document.querySelectorAll(".lotta-builder-placements-wrapper"); + placements.forEach((function(placement) { + placement.classList.add("leave"); + })); + setTimeout((function() { + if (_this5.placementsRoot) { + _this5.placementsRoot.unmount(); + _this5.placementsRoot = null; + } else { + placements.forEach((function(placement) { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.unmountComponentAtNode)(placement); + placement.remove(); + })); + } + }), 150); + } + }, { + key: "createPlacements", + value: function createPlacements() { + var _this6 = this; + var container = document.createElement("div"); + container.classList.add("lotta-builder-placements-wrapper"); + document.querySelector(".wp-full-overlay").appendChild(container); + this.renderPlacements = function() { + var responsive = _this6.props.options.responsive_builder; + var device = _this6.state.device === "desktop" ? "desktop" : "mobile"; + var placementsEl = (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_placements__WEBPACK_IMPORTED_MODULE_1__["default"], { + value: _this6.props.value, + elements: _this6.props.options.elements, + rows: _this6.props.options.rows, + device, + onDeviceChange: _this6.setDevice.bind(_this6), + responsive, + onElementsChange: function onElementsChange(row, col, elements) { + if (!_this6.elementsChangeThrottler) { + _this6.elementsChangeThrottler = new _throttler__WEBPACK_IMPORTED_MODULE_7__["default"](0, (function(changes) { + var device = _this6.state.device === "desktop" ? "desktop" : "mobile"; + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_2__.ensureBuilderValueStructure)(responsive, _this6.props.value, _this6.props.options.rows); + changes.forEach((function(data) { + var _data = _slicedToArray(data, 3), row = _data[0], col = _data[1], elements = _data[2]; + var rowData = _this6.props.options.rows[row] || {}; + var defaultColumn = rowData.type === "off-canvas" ? { + elements: [], + settings: { + direction: "column" + } + } : { + elements: [], + settings: {} + }; + if (responsive) { + if (!value[row][device]["columns"][col]) { + value[row][device]["columns"][col] = defaultColumn; + } + value[row][device]["columns"][col]["elements"] = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.array_unique)(elements); + } else { + if (!value[row]["columns"][col]) { + value[row]["columns"][col] = defaultColumn; + } + value[row]["columns"][col]["elements"] = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.array_unique)(elements); + } + })); + _this6.props.onChange(value); + _this6.setState({}, _this6.renderPlacements); + })); + } + _this6.elementsChangeThrottler.buffer(row, col, elements); + }, + onElementRemove: function onElementRemove(el, row, col) { + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_2__.ensureBuilderValueStructure)(responsive, _this6.props.value, _this6.props.options.rows); + if (responsive) { + var index = value[row][device]["columns"][col]["elements"].indexOf(el); + if (index !== -1) { + value[row][device]["columns"][col]["elements"].splice(index, 1); + } + } else { + var _index = value[row]["columns"][col]["elements"].indexOf(el); + if (_index !== -1) { + value[row]["columns"][col]["elements"].splice(_index, 1); + } + } + _this6.props.onChange(value); + _this6.setState({}, _this6.renderPlacements); + }, + onElementClick: function onElementClick(el) { + _this6.openPanel(_this6.props.options.elements[el]); + }, + onRowClick: function onRowClick(row) { + _this6.openPanel(_this6.props.options.rows[row]); + }, + onSettingColumn: function onSettingColumn(row, colIndex) { + var device = responsive ? _this6.state.device === "desktop" ? "desktop" : "mobile" : "all"; + _this6.openPanel(_this6.listeners["".concat(row, "-").concat(device, "-").concat(colIndex)]); + }, + onAddColumn: function onAddColumn(row, colIndex) { + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_2__.ensureBuilderValueStructure)(responsive, _this6.props.value, _this6.props.options.rows); + if (responsive) { + var columns = value[row][device]["columns"]; + value[row][device]["columns"] = [].concat(_toConsumableArray(columns.splice(0, colIndex + 1)), [ { + elements: [], + settings: {} + } ], _toConsumableArray(columns.splice(colIndex, columns.length))); + } else { + var _columns = value[row]["columns"]; + value[row]["columns"] = [].concat(_toConsumableArray(_columns.splice(0, colIndex + 1)), [ { + elements: [], + settings: {} + } ], _toConsumableArray(_columns.splice(colIndex, _columns.length))); + } + _this6.props.onChange(value); + _this6.setState({}, _this6.renderPlacements); + }, + onRemoveColumn: function onRemoveColumn(row, colIndex) { + var value = (0, _utils__WEBPACK_IMPORTED_MODULE_2__.ensureBuilderValueStructure)(responsive, _this6.props.value, _this6.props.options.rows); + if (responsive) { + value[row][device]["columns"].splice(colIndex, 1); + } else { + value[row]["columns"].splice(colIndex, 1); + } + _this6.props.onChange(value); + _this6.setState({}, _this6.renderPlacements); + } + }); + if (_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot) { + if (!_this6.placementsRoot) { + _this6.placementsRoot = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRoot)(container); + } + _this6.placementsRoot.render(placementsEl); + } else { + (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(placementsEl, container); + } + }; + this.renderPlacements(); + } + }, { + key: "listeners", + get: function get() { + var _this$props$options = this.props.options, elements = _this$props$options.elements, rows = _this$props$options.rows, column = _this$props$options.column, responsive_builder = _this$props$options.responsive_builder; + var value = this.props.value; + var listeners = Object.assign({}, elements, rows); + Object.keys(value).forEach((function(row) { + var responsiveValue = responsive_builder ? value[row] : { + all: value[row] + }; + Object.keys(responsiveValue).forEach((function(device) { + var columns = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.sanitize_array_value)(responsiveValue[device].columns); + columns.forEach((function(col, ci) { + listeners[row + "-" + device + "-" + ci] = Object.assign({ + id: row + "-" + device + "-" + ci, + values: Object.assign({}, column.defaults, col.settings || {}), + label: rows[row].label + " #".concat(ci + 1, " - ").concat(device.replace(/./, (function(s) { + return s.toUpperCase(); + }))) + }, column); + })); + })); + })); + return listeners; + } + }, { + key: "render", + value: function render() { + var _this7 = this; + var _this$props$options2 = this.props.options, elements = _this$props$options2.elements, responsive_builder = _this$props$options2.responsive_builder; + var value = this.props.value; + var currentDevice = this.state.device === "desktop" ? "desktop" : "mobile"; + var chosen = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.array_flat)(responsive_builder ? Object.values(value).map((function(v) { + return v[currentDevice]; + })) : Object.values(value)); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_panel__WEBPACK_IMPORTED_MODULE_5__["default"], { + listeners: this.listeners, + onChange: function onChange(id, settingId, val) { + if (!id) { + _this7.props.onChange(val, settingId); + return; + } + var indexes = id.split("-"); + var row = indexes[0]; + var device = indexes[1]; + var col = Number(indexes[2]); + if (device === "all") { + if (Array.isArray(_this7.props.value[row]["columns"][col]["settings"])) { + _this7.props.value[row]["columns"][col]["settings"] = {}; + } + _this7.props.onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_8___default()(_this7.props.value, _defineProperty({}, row, { + columns: _defineProperty({}, col, { + settings: _defineProperty({}, settingId, { + $set: val + }) + }) + }))); + } else { + if (Array.isArray(_this7.props.value[row][device]["columns"][col]["settings"])) { + _this7.props.value[row][device]["columns"][col]["settings"] = {}; + } + var newValue = immutability_helper__WEBPACK_IMPORTED_MODULE_8___default()(_this7.props.value, _defineProperty({}, row, _defineProperty({}, device, { + columns: _defineProperty({}, col, { + settings: _defineProperty({}, settingId, { + $set: val + }) + }) + }))); + _this7.props.onChange(newValue); + } + }, + getSettings: function getSettings(id) { + if (id && _this7.listeners[id]) { + return _this7.listeners[id].values; + } + return undefined; + }, + children: function children(_ref) { + var container = _ref.container, open = _ref.open; + _this7.openPanel = open; + var sortableElements = Object.keys(elements).map((function(e) { + if (elements[e].device && elements[e].device !== currentDevice) { + return null; + } + return { + id: e + }; + })).filter((function(e) { + return e !== null; + })); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", { + ref: container, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_6__.ReactSortable, { + list: sortableElements, + setList: function setList() { + return null; + }, + filter: ".inactive", + group: { + name: "builder-item", + pull: "clone", + put: false + }, + className: "lotta-builder-elements", + children: sortableElements.map((function(e) { + return e.id; + })).map((function(key) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)("div", { + "data-id": key, + onClick: function onClick() { + return (0, _utils__WEBPACK_IMPORTED_MODULE_3__.in_array)(key, chosen) ? open(elements[key]) : null; + }, + className: (0, clsx__WEBPACK_IMPORTED_MODULE_4__["default"])("lotta-builder-element", { + inactive: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.in_array)(key, chosen), + active: !(0, _utils__WEBPACK_IMPORTED_MODULE_3__.in_array)(key, chosen) + }), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + children: elements[key].label || (0, _utils__WEBPACK_IMPORTED_MODULE_3__.capitalize)(key) + }), (0, _utils__WEBPACK_IMPORTED_MODULE_3__.in_array)(key, chosen) ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + className: "lotta-dashicon dashicons-arrow-right-alt2" + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + className: "lotta-dashicon dashicons-move" + }) ] + }, key); + })) + }) + }); + } + }); + } + } ]); + return Builder; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => Placements + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var _react_spring_web__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); + var _placement_row__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(324); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Placements = function(_Component) { + _inherits(Placements, _Component); + var _super = _createSuper(Placements); + function Placements() { + var _this; + _classCallCheck(this, Placements); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "state", { + visible: true + }); + _defineProperty(_assertThisInitialized(_this), "placements", (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createRef)()); + _defineProperty(_assertThisInitialized(_this), "toggleVisible", (function() { + _this.setState({ + visible: !_this.state.visible + }, (function() { + _this.updatePreviewBottom(); + })); + })); + return _this; + } + _createClass(Placements, [ { + key: "componentDidMount", + value: function componentDidMount() { + this.updatePreviewBottom(); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this.updatePreviewBottom(true); + } + }, { + key: "updatePreviewBottom", + value: function updatePreviewBottom() { + var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var preview = document.querySelector(".wp-full-overlay #customize-preview"); + if (!preview) { + return; + } + if (reset) { + preview.style.bottom = 0; + return; + } + if (!this.placements.current) { + return; + } + preview.style.bottom = this.placements.current.offsetHeight + "px"; + } + }, { + key: "render", + value: function render() { + var _this2 = this; + var _this$props = this.props, rows = _this$props.rows, elements = _this$props.elements, value = _this$props.value, responsive = _this$props.responsive, device = _this$props.device, onDeviceChange = _this$props.onDeviceChange, onRowClick = _this$props.onRowClick, onAddColumn = _this$props.onAddColumn, onSettingColumn = _this$props.onSettingColumn, onRemoveColumn = _this$props.onRemoveColumn, onElementsChange = _this$props.onElementsChange, onElementRemove = _this$props.onElementRemove, onElementClick = _this$props.onElementClick; + var offCanvas = {}; + var normalRows = {}; + Object.keys(rows).forEach((function(id) { + if (rows[id].device && rows[id].device !== device) { + return; + } + if (rows[id].type === "off-canvas") { + offCanvas[id] = rows[id]; + } else { + normalRows[id] = rows[id]; + } + })); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_react_spring_web__WEBPACK_IMPORTED_MODULE_1__.Transition, { + items: null, + from: { + transform: "translateY(100%)" + }, + enter: { + transform: "translateY(0)" + }, + leave: { + transform: "translateY(100%)" + }, + config: function config(item, type) { + return { + delay: 0, + duration: 120 + }; + }, + children: function children(props) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_react_spring_web__WEBPACK_IMPORTED_MODULE_1__.animated.div, { + ref: _this2.placements, + style: props, + className: "lotta-builder-placements", + children: [ _this2.state.visible && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-placements-wrapper", + children: [ Object.keys(offCanvas).length > 0 && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "builder-off-canvas-area", + children: Object.keys(offCanvas).map((function(key) { + var row = rows[key]; + var rowData = value ? value[key] || {} : {}; + var _ref = responsive && rowData[device] ? rowData[device] : rowData, columns = _ref.columns; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_placement_row__WEBPACK_IMPORTED_MODULE_4__["default"], { + id: key, + row, + columns, + elements, + onClick: onRowClick, + onAddColumn, + onSettingColumn, + onRemoveColumn, + onElementsChange, + onElementClick, + onElementRemove + }, key); + })) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "builder-rows-area", + children: Object.keys(normalRows).map((function(key) { + var row = rows[key]; + var rowData = value ? value[key] || {} : {}; + var _ref2 = responsive && rowData[device] ? rowData[device] : rowData, columns = _ref2.columns; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_placement_row__WEBPACK_IMPORTED_MODULE_4__["default"], { + id: key, + row, + columns, + elements, + onClick: onRowClick, + onAddColumn, + onSettingColumn, + onRemoveColumn, + onElementsChange, + onElementClick, + onElementRemove + }, key); + })) + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-footer", + children: [ responsive && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("ul", { + className: "builder-responsive-controls", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])({ + active: device === "desktop" + }), + onClick: function onClick() { + return onDeviceChange("desktop"); + }, + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Desktop Builder") + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_3__["default"])({ + active: device !== "desktop" + }), + onClick: function onClick() { + return onDeviceChange("tablet"); + }, + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Tablet / Mobile Builder") + }) ] + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", { + className: "toggle", + type: "button", + onClick: _this2.toggleVisible, + children: [ _this2.state.visible ? (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-dashicon dashicons-arrow-down-alt2" + }) : (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-dashicon dashicons-arrow-up-alt2" + }), (_this2.state.visible ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Hidden") : (0, + _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Show")) + " " + (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Builder") ] + }) ] + }) ] + }); + } + }); + } + } ]); + return Placements; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => PlacementRow + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_1__); + var deep_equal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_2__); + var _icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(277); + var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var PlacementRow = function(_Component) { + _inherits(PlacementRow, _Component); + var _super = _createSuper(PlacementRow); + function PlacementRow() { + _classCallCheck(this, PlacementRow); + return _super.apply(this, arguments); + } + _createClass(PlacementRow, [ { + key: "render", + value: function render() { + var _this$props = this.props, id = _this$props.id, row = _this$props.row, columns = _this$props.columns, elements = _this$props.elements, _onClick = _this$props.onClick, onAddColumn = _this$props.onAddColumn, onSettingColumn = _this$props.onSettingColumn, onRemoveColumn = _this$props.onRemoveColumn, onElementsChange = _this$props.onElementsChange, onElementClick = _this$props.onElementClick, onElementRemove = _this$props.onElementRemove; + var isOffCanvas = row.type === "off-canvas"; + var showColumns = columns; + if (!Array.isArray(showColumns) || showColumns.length === 0) { + showColumns = isOffCanvas ? [ { + elements: [], + settings: { + direction: "column" + } + } ] : [ { + elements: [], + settings: {} + } ]; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-row", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "builder-row-actions", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("button", { + disabled: row.controls.length <= 0, + type: "button", + onClick: function onClick() { + return _onClick(id); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-dashicon dashicons-admin-generic mr-4" + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + children: row.label + }) ] + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "builder-columns", + children: showColumns.map((function(column, colIndex) { + var columnItems = (0, _utils__WEBPACK_IMPORTED_MODULE_4__.sanitize_array_value)(column.elements); + var sortableItems = columnItems.map((function(i) { + return { + id: i + }; + })); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-column", + style: { + width: Math.floor(1 / showColumns.length * 100 * 100) / 100 + "%" + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-column-content", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_1__.ReactSortable, { + list: sortableItems, + group: "builder-item", + className: "builder-sortable-items", + setList: function setList(newItems) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_2___default()(newItems, sortableItems)) { + return; + } + onElementsChange(id, colIndex, newItems.map((function(item) { + return item.id; + }))); + }, + children: columnItems.map((function(item) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + "data-id": item, + className: "builder-item", + onClick: function onClick() { + return onElementClick(item); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + children: (elements[item] || {}).label + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-dashicon dashicons-no-alt", + onClick: function onClick(ev) { + ev.stopPropagation(); + onElementRemove(item, id, colIndex); + } + }) ] + }, item); + })) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { + className: "builder-column-actions", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + type: "button", + onClick: function onClick() { + return onSettingColumn(id, colIndex); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", { + className: "lotta-dashicon dashicons-admin-generic" + }) + }) + }) ] + }), !isOffCanvas && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", { + className: "builder-change-columns", + children: [ showColumns.length < row.maxColumns && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + className: "builder-add-column", + type: "button", + onClick: function onClick() { + return onAddColumn(id, colIndex); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_3__.PlusSolid, {}) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", { + className: "builder-remove-column", + type: "button", + onClick: function onClick() { + return onRemoveColumn(id, colIndex); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_3__.CircleXMark, {}) + }) ] + }) ] + }, colIndex); + })) + }) ] + }); + } + } ]); + return PlacementRow; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + ensureBuilderValueStructure: () => ensureBuilderValueStructure, + ensureRowValueStructure: () => ensureRowValueStructure + }); + var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function sanitizeRowData(value) { + var columns = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.sanitize_array_value)(value.columns); + var newColumns = []; + columns.forEach((function(col) { + newColumns.push({ + elements: _toConsumableArray((0, _utils__WEBPACK_IMPORTED_MODULE_0__.sanitize_array_value)(col.elements)), + settings: JSON.parse(JSON.stringify(col.settings || {})) + }); + })); + return { + columns: newColumns + }; + } + function ensureRowValueStructure(responsive, value) { + if (responsive) { + return { + desktop: sanitizeRowData(value.desktop || {}), + mobile: sanitizeRowData(value.mobile || {}) + }; + } + return sanitizeRowData(value); + } + function ensureBuilderValueStructure(responsive, value, rows) { + var newValue = {}; + for (var id in rows) { + newValue[id] = ensureRowValueStructure(responsive, value[id] || {}); + } + return newValue; + } + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(280); + var react_sortablejs__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(react_sortablejs__WEBPACK_IMPORTED_MODULE_1__); + var deep_equal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14); + var deep_equal__WEBPACK_IMPORTED_MODULE_2___default = __webpack_require__.n(deep_equal__WEBPACK_IMPORTED_MODULE_2__); + var _layers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(278); + var immutability_helper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(279); + var immutability_helper__WEBPACK_IMPORTED_MODULE_4___default = __webpack_require__.n(immutability_helper__WEBPACK_IMPORTED_MODULE_4__); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(254); + var _icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(277); + var underscore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(70); + var underscore__WEBPACK_IMPORTED_MODULE_7___default = __webpack_require__.n(underscore__WEBPACK_IMPORTED_MODULE_7__); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var Repeater = function(_Component) { + _inherits(Repeater, _Component); + var _super = _createSuper(Repeater); + function Repeater() { + _classCallCheck(this, Repeater); + return _super.apply(this, arguments); + } + _createClass(Repeater, [ { + key: "render", + value: function render() { + var _this$props = this.props, value = _this$props.value, options = _this$props.options, _onChange = _this$props.onChange; + var title_field = options.title_field, controls = options.controls, defaultSettings = options.defaultSettings, limit = options.limit, empty = options.empty, limitLabel = options.limitLabel; + var items = limit ? (value || []).slice(0, limit) : value || []; + var titleTemplate = underscore__WEBPACK_IMPORTED_MODULE_7___default().template(title_field || "Item #<%= index %>"); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", { + className: "lotta-repeater", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(react_sortablejs__WEBPACK_IMPORTED_MODULE_1__.ReactSortable, { + tag: "ul", + className: "lotta-layers", + handle: ".layer-label", + list: items, + setList: function setList(newItems) { + if (deep_equal__WEBPACK_IMPORTED_MODULE_2___default()(newItems, items)) { + return; + } + _onChange(newItems); + }, + children: items.map((function(item, index) { + item.id = index; + var layer = { + label: titleTemplate({ + index, + settings: item.settings + }), + controls + }; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_layers__WEBPACK_IMPORTED_MODULE_3__.Layer, { + value: item, + dynamic: empty || items.length > 1, + settings: Object.assign({}, defaultSettings, item.settings), + layer, + onNestedChange: function onNestedChange(val, id) { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_4___default()(items, _defineProperty({}, index, { + settings: _defineProperty({}, id, { + $set: val + }) + }))); + }, + onRemove: function onRemove() { + if (!empty && items.length <= 1) { + return; + } + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_4___default()(items, { + $splice: [ [ index, 1 ] ] + })); + }, + onChange: function onChange(newItem) { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_4___default()(items, _defineProperty({}, index, { + $set: newItem + }))); + } + }, index); + })) + }), (!limit || items.length < limit) && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("button", { + className: "repeater-add-element", + type: "button", + onClick: function onClick() { + _onChange(immutability_helper__WEBPACK_IMPORTED_MODULE_4___default()(items, { + $push: [ { + visible: true, + settings: defaultSettings + } ] + })); + }, + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_icons__WEBPACK_IMPORTED_MODULE_6__.PlusSolid, { + w: 14, + h: 14 + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", { + children: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_5__.__)("Add Item") + }) ] + }), !(limit && items.length < limit) && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", { + className: "lotta-info lotta-info-align-center", + dangerouslySetInnerHTML: { + __html: limitLabel + } + }) ] + }); + } + } ]); + return Repeater; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = Repeater; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__); + var clsx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9); + var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function IconsLibrary(_ref) { + var active = _ref.active, libraries = _ref.libraries, current = _ref.current, onChoose = _ref.onChoose; + var allLibraries = window.Lotta.customizer.iconsLibrary; + libraries = libraries ? libraries : Object.keys(allLibraries); + active = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.in_array)(active, libraries) ? active : libraries[0]; + var _useState = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(active), _useState2 = _slicedToArray(_useState, 2), activeLib = _useState2[0], setActiveLib = _useState2[1]; + var _useState3 = (0, _wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(""), _useState4 = _slicedToArray(_useState3, 2), keyword = _useState4[0], setKeyword = _useState4[1]; + var activeIcons = allLibraries[activeLib].icons; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", { + className: "lotta-icons-modal", + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("ul", { + className: "lotta-modal-tabs", + children: libraries.map((function(libName) { + var lib = allLibraries[libName]; + if (!lib) return; + var label = lib.label ? lib.label : libName.replace(/./, (function(s) { + return s.toUpperCase(); + })).replace(/\_|\-/g, " "); + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])({ + active: libName === activeLib + }), + onClick: function onClick() { + return setActiveLib(libName); + }, + children: label + }, libName); + })) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { + className: "icons-filter", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("input", { + type: "text", + onChange: function onChange(e) { + setKeyword(e.target.value); + } + }) + }), (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { + className: "lotta-icons-modal-content", + children: Object.keys(activeIcons).map((function(icon) { + if (keyword && icon.indexOf(keyword) == -1) { + return null; + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])("lotta-icon-preview", { + active: activeIcons[icon].value === current + }), + onClick: function onClick() { + onChoose({ + value: activeIcons[icon].value, + library: activeLib + }); + }, + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("i", { + className: activeIcons[icon].value + }) + }, icon); + })) + }) ] + }); + } + function Icons(_ref2) { + var value = _ref2.value, options = _ref2.options, onChange = _ref2.onChange; + var libraries = options.libraries; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", { + className: "lotta-icons", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_0__["default"], { + placement: "bottom", + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(IconsLibrary, { + active: value.library, + current: value.value, + libraries, + onChoose: onChange + }), + children: function children(_ref3) { + var props = _ref3.props, isOpen = _ref3.isOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", _objectSpread(_objectSpread({}, props), {}, { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_2__["default"])("lotta-icon-preview", { + active: isOpen + }), + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("i", { + className: value.value + }) + })); + } + }) + }); + } + const __WEBPACK_DEFAULT_EXPORT__ = Icons; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + var CheckboxSelect = function(_Component) { + _inherits(CheckboxSelect, _Component); + var _super = _createSuper(CheckboxSelect); + function CheckboxSelect() { + _classCallCheck(this, CheckboxSelect); + return _super.apply(this, arguments); + } + _createClass(CheckboxSelect, [ { + key: "render", + value: function render() { + var _this$props = this.props, options = _this$props.options, value = _this$props.value, onChoice = _this$props.onChoice; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", _objectSpread(_objectSpread({ + className: "lotta-multi-select" + }, options.attr || {}), {}, { + children: Object.keys(options.choices).map((function(choice) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("label", { + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", { + type: "checkbox", + checked: value[choice] !== undefined && value[choice] === "yes", + onChange: function onChange() { + return onChoice(choice); + } + }), options.choices[choice] ] + }, choice); + })) + })); + } + } ]); + return CheckboxSelect; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var ButtonsGroupSelect = function(_Component2) { + _inherits(ButtonsGroupSelect, _Component2); + var _super2 = _createSuper(ButtonsGroupSelect); + function ButtonsGroupSelect() { + _classCallCheck(this, ButtonsGroupSelect); + return _super2.apply(this, arguments); + } + _createClass(ButtonsGroupSelect, [ { + key: "render", + value: function render() { + var _this$props2 = this.props, options = _this$props2.options, value = _this$props2.value, onChoice = _this$props2.onChoice; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("ul", _objectSpread(_objectSpread({ + className: "lotta-multi-select lotta-buttons-group lotta-solid-buttons" + }, options.attr || {}), {}, { + children: Object.keys(options.choices).map((function(choice) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("li", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])({ + active: value[choice] !== undefined && value[choice] === "yes" + }), + onClick: function onClick() { + onChoice(choice); + }, + dangerouslySetInnerHTML: { + __html: options.choices[choice] + } + }, choice); + })) + })); + } + } ]); + return ButtonsGroupSelect; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + var MultiSelect = function MultiSelect(props) { + var options = props.options, value = props.value, onChange = props.onChange; + var handleChange = function handleChange(c) { + onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, c, value[c] !== undefined && value[c] === "yes" ? "no" : "yes"))); + }; + if (options.view === "buttons") { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(ButtonsGroupSelect, _objectSpread(_objectSpread({}, props), {}, { + onChoice: handleChange + })); + } + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(CheckboxSelect, _objectSpread(_objectSpread({}, props), {}, { + onChoice: handleChange + })); + }; + const __WEBPACK_DEFAULT_EXPORT__ = MultiSelect; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _components_state_popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); + var _toggle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(176); + var _slider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(174); + var _index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(10); + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter((function(sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }))), keys.push.apply(keys, symbols); + } + return keys; + } + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach((function(key) { + _defineProperty(target, key, source[key]); + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach((function(key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + })); + } + return target; + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var Filters = function Filters(props) { + var value = props.value, _onChange = props.onChange; + var sections = [ { + id: "enable", + component: _toggle__WEBPACK_IMPORTED_MODULE_3__["default"], + params: { + default: "no" + }, + options: { + design: "inline", + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Enable") + } + }, { + id: "blur", + component: _slider__WEBPACK_IMPORTED_MODULE_4__["default"], + params: { + default: 0 + }, + options: { + wrapperAttr: { + className: "blur" + }, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Blur"), + min: 0, + max: 10, + decimals: 1, + defaultUnit: false + } + }, { + id: "contrast", + component: _slider__WEBPACK_IMPORTED_MODULE_4__["default"], + params: { + default: 100 + }, + options: { + wrapperAttr: { + className: "contrast" + }, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Contrast"), + min: 0, + max: 200, + defaultUnit: false + } + }, { + id: "brightness", + component: _slider__WEBPACK_IMPORTED_MODULE_4__["default"], + params: { + default: 100 + }, + options: { + wrapperAttr: { + className: "brightness" + }, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Brightness"), + min: 0, + max: 200, + defaultUnit: false + } + }, { + id: "saturate", + component: _slider__WEBPACK_IMPORTED_MODULE_4__["default"], + params: { + default: 100 + }, + options: { + wrapperAttr: { + className: "saturate" + }, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Saturate"), + min: 0, + max: 200, + defaultUnit: false + } + }, { + id: "hue", + component: _slider__WEBPACK_IMPORTED_MODULE_4__["default"], + params: { + default: 0 + }, + options: { + wrapperAttr: { + className: "hue" + }, + label: (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Hue"), + min: 0, + max: 360, + defaultUnit: false + } + } ]; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "lotta-css-filter", + children: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_components_state_popup__WEBPACK_IMPORTED_MODULE_0__["default"], { + placement: "bottom", + content: (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "css-filter-modal", + children: sections.map((function(s) { + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + className: "css-filter-section", + children: (0, _index__WEBPACK_IMPORTED_MODULE_5__.buildControl)({ + params: s.params, + options: s.options, + value: value[s.id] !== undefined ? value[s.id] : s.params["default"], + Component: s.component, + onChange: function onChange(v) { + _onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, s.id, v))); + } + }) + }, s.id); + })) + }), + children: function children(_ref) { + var _clsx; + var props = _ref.props, isOpen = _ref.isOpen; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", _objectSpread(_objectSpread({ + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-modal-value", (_clsx = {}, + _defineProperty(_clsx, "lotta-modal-value-active", isOpen), _defineProperty(_clsx, "lotta-disabled", value.enable !== "yes"), + _clsx)) + }, props), {}, { + children: value.enable === "yes" ? (0, _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("Adjust") : (0, + _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("None") + })); + } + }) + }); + }; + Filters.renderingConfig = { + design: "inline" + }; + const __WEBPACK_DEFAULT_EXPORT__ = Filters; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + __webpack_require__.d(__webpack_exports__, { + default: () => __WEBPACK_DEFAULT_EXPORT__ + }); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); + var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = __webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); + var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); + var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10); + function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; + } + function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return _assertThisInitialized(self); + } + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))); + return true; + } catch (e) { + return false; + } + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var FileUploader = function(_Component) { + _inherits(FileUploader, _Component); + var _super = _createSuper(FileUploader); + function FileUploader() { + var _this; + _classCallCheck(this, FileUploader); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [ this ].concat(args)); + _defineProperty(_assertThisInitialized(_this), "onSelect", (function() { + var attachments = _this.frame.state().get("selection").toJSON(); + _this.props.onChange(attachments.map((function(_ref) { + var id = _ref.id, url = _ref.url, title = _ref.title, filename = _ref.filename; + return { + id, + url, + title, + filename + }; + }))); + _this.frame.close(); + })); + return _this; + } + _createClass(FileUploader, [ { + key: "initFrame", + value: function initFrame() { + var _this2 = this; + this.frame = wp.media({ + button: { + text: "Select", + close: false + }, + states: [ new wp.media.controller.Library({ + title: "Select File", + library: wp.media.query({ + type: this.props.options.mediaType || "*" + }), + multiple: this.props.options.multiple, + date: false, + priority: 20 + }) ] + }); + this.frame.on("select", this.onSelect, this); + this.frame.on("close", (function() { + _this2.props.options.onFrameClose && _this2.props.options.onFrameClose(); + })); + } + }, { + key: "openFrame", + value: function openFrame() { + this.initFrame(); + this.frame.setState("library").open(); + this.props.options.onFrameOpen && this.props.options.onFrameOpen(); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + var value = this.props.value; + var emptyLabel = this.props.options.emptyLabel; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", { + className: (0, clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("lotta-file-uploader"), + children: [ (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("button", { + type: "button", + onClick: function onClick() { + return _this3.openFrame(); + }, + className: "button lotta-upload-button", + children: emptyLabel || "Select File" + }), Array.isArray(value) && value.length > 0 && (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("ul", { + className: "lotta-file-list", + children: value.map((function(_ref2, index) { + var id = _ref2.id, filename = _ref2.filename; + return (0, react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("li", { + children: filename + }, id); + })) + }) ] + }); + } + } ]); + return FileUploader; + }(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component); + const __WEBPACK_DEFAULT_EXPORT__ = FileUploader; + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + }, (__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + "use strict"; + __webpack_require__.r(__webpack_exports__); + } ]; + var __webpack_module_cache__ = {}; + function __webpack_require__(moduleId) { + var cachedModule = __webpack_module_cache__[moduleId]; + if (cachedModule !== undefined) { + return cachedModule.exports; + } + var module = __webpack_module_cache__[moduleId] = { + exports: {} + }; + __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); + return module.exports; + } + __webpack_require__.m = __webpack_modules__; + (() => { + var deferred = []; + __webpack_require__.O = (result, chunkIds, fn, priority) => { + if (chunkIds) { + priority = priority || 0; + for (var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; + deferred[i] = [ chunkIds, fn, priority ]; + return; + } + var notFulfilled = Infinity; + for (var i = 0; i < deferred.length; i++) { + var [chunkIds, fn, priority] = deferred[i]; + var fulfilled = true; + for (var j = 0; j < chunkIds.length; j++) { + if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key => __webpack_require__.O[key](chunkIds[j])))) { + chunkIds.splice(j--, 1); + } else { + fulfilled = false; + if (priority < notFulfilled) notFulfilled = priority; + } + } + if (fulfilled) { + deferred.splice(i--, 1); + var r = fn(); + if (r !== undefined) result = r; + } + } + return result; + }; + })(); + (() => { + __webpack_require__.n = module => { + var getter = module && module.__esModule ? () => module["default"] : () => module; + __webpack_require__.d(getter, { + a: getter + }); + return getter; + }; + })(); + (() => { + __webpack_require__.d = (exports, definition) => { + for (var key in definition) { + if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { + Object.defineProperty(exports, key, { + enumerable: true, + get: definition[key] + }); + } + } + }; + })(); + (() => { + __webpack_require__.g = function() { + if (typeof globalThis === "object") return globalThis; + try { + return this || new Function("return this")(); + } catch (e) { + if (typeof window === "object") return window; + } + }(); + })(); + (() => { + __webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); + })(); + (() => { + __webpack_require__.r = exports => { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(exports, Symbol.toStringTag, { + value: "Module" + }); + } + Object.defineProperty(exports, "__esModule", { + value: true + }); + }; + })(); + (() => { + var installedChunks = { + 0: 0, + 2: 0, + 3: 0 + }; + __webpack_require__.O.j = chunkId => installedChunks[chunkId] === 0; + var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { + var [chunkIds, moreModules, runtime] = data; + var moduleId, chunkId, i = 0; + if (chunkIds.some((id => installedChunks[id] !== 0))) { + for (moduleId in moreModules) { + if (__webpack_require__.o(moreModules, moduleId)) { + __webpack_require__.m[moduleId] = moreModules[moduleId]; + } + } + if (runtime) var result = runtime(__webpack_require__); + } + if (parentChunkLoadingFunction) parentChunkLoadingFunction(data); + for (;i < chunkIds.length; i++) { + chunkId = chunkIds[i]; + if (__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { + installedChunks[chunkId][0](); + } + installedChunks[chunkId] = 0; + } + return __webpack_require__.O(result); + }; + var chunkLoadingGlobal = self["webpackChunklotta_framework"] = self["webpackChunklotta_framework"] || []; + chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); + chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); + })(); + __webpack_require__.O(undefined, [ 2, 3 ], (() => __webpack_require__(0))); + __webpack_require__.O(undefined, [ 2, 3 ], (() => __webpack_require__(331))); + var __webpack_exports__ = __webpack_require__.O(undefined, [ 2, 3 ], (() => __webpack_require__(332))); + __webpack_exports__ = __webpack_require__.O(__webpack_exports__); +})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js new file mode 100644 index 0000000000..21c5482dc4 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js @@ -0,0 +1,2 @@ +/*! For license information please see customizer.min.js.LICENSE.txt */ +(()=>{var t,e={8634:function(t){t.exports=function(){"use strict";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function e(e){for(var r=1;r(t=""+t,e=""+e,r&&(t=t.trim(),e=e.trim()),n?t==e:t.toLowerCase()==e.toLowerCase()),o=(t,e)=>t&&Array.isArray(t)&&t.map((t=>i(t,e)));function i(t,e){var n,r={};for(n in t)e.indexOf(n)<0&&(r[n]=t[n]);return r}function a(t){var e=document.createElement("div");return t.replace(/\&#?[0-9a-z]+;/gi,(function(t){return e.innerHTML=t,e.innerText}))}function s(t){return(new DOMParser).parseFromString(t.trim(),"text/html").body.firstElementChild}function c(t,e){for(e=e||"previous";t=t[e+"Sibling"];)if(3==t.nodeType)return t}function l(t){return"string"==typeof t?t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/`|'/g,"'"):t}function u(t){var e=Object.prototype.toString.call(t).split(" ")[1].slice(0,-1);return t===Object(t)&&"Array"!=e&&"Function"!=e&&"RegExp"!=e&&"HTMLUnknownElement"!=e}function f(t,e,n){function r(t,e){for(var n in e)if(e.hasOwnProperty(n)){if(u(e[n])){u(t[n])?r(t[n],e[n]):t[n]=Object.assign({},e[n]);continue}if(Array.isArray(e[n])){t[n]=Object.assign([],e[n]);continue}t[n]=e[n]}}return t instanceof Object||(t={}),r(t,e),n&&r(t,n),t}function p(){const t=[],e={};for(let n of arguments)for(let r of n)u(r)?e[r.value]||(t.push(r),e[r.value]=1):t.includes(r)||t.push(r);return t}function d(t){return String.prototype.normalize?"string"==typeof t?t.normalize("NFD").replace(/[\u0300-\u036f]/g,""):void 0:t}var h=()=>/(?=.*chrome)(?=.*android)/i.test(navigator.userAgent);function y(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)))}function g(t){return t&&t.classList&&t.classList.contains(this.settings.classNames.tag)}var m={delimiters:",",pattern:null,tagTextProp:"value",maxTags:1/0,callbacks:{},addTagOnBlur:!0,duplicates:!1,whitelist:[],blacklist:[],enforceWhitelist:!1,userInput:!0,keepInvalidTags:!1,mixTagsAllowedAfter:/,|\.|\:|\s/,mixTagsInterpolator:["[[","]]"],backspace:!0,skipInvalid:!1,pasteAsTags:!0,editTags:{clicks:2,keepInvalid:!0},transformTag:()=>{},trim:!0,a11y:{focusableTags:!1},mixMode:{insertAfterTag:" "},autoComplete:{enabled:!0,rightKey:!1},classNames:{namespace:"tagify",mixMode:"tagify--mix",selectMode:"tagify--select",input:"tagify__input",focus:"tagify--focus",tagNoAnimation:"tagify--noAnim",tagInvalid:"tagify--invalid",tagNotAllowed:"tagify--notAllowed",scopeLoading:"tagify--loading",hasMaxTags:"tagify--hasMaxTags",hasNoTags:"tagify--noTags",empty:"tagify--empty",inputInvalid:"tagify__input--invalid",dropdown:"tagify__dropdown",dropdownWrapper:"tagify__dropdown__wrapper",dropdownHeader:"tagify__dropdown__header",dropdownFooter:"tagify__dropdown__footer",dropdownItem:"tagify__dropdown__item",dropdownItemActive:"tagify__dropdown__item--active",dropdownInital:"tagify__dropdown--initial",tag:"tagify__tag",tagText:"tagify__tag-text",tagX:"tagify__tag__removeBtn",tagLoading:"tagify__tag--loading",tagEditing:"tagify__tag--editable",tagFlash:"tagify__tag--flash",tagHide:"tagify__tag--hide"},dropdown:{classname:"",enabled:2,maxItems:10,searchKeys:["value","searchBy"],fuzzySearch:!0,caseSensitive:!1,accentedSearch:!0,highlightFirst:!1,closeOnSelect:!0,clearOnSelect:!0,position:"all",appendTarget:null},hooks:{beforeRemoveTag:()=>Promise.resolve(),beforePaste:()=>Promise.resolve(),suggestionClick:()=>Promise.resolve()}};function v(){this.dropdown={};for(let t in this._dropdown)this.dropdown[t]="function"==typeof this._dropdown[t]?this._dropdown[t].bind(this):this._dropdown[t];this.dropdown.refs()}var b={refs(){this.DOM.dropdown=this.parseTemplate("dropdown",[this.settings]),this.DOM.dropdown.content=this.DOM.dropdown.querySelector("[data-selector='tagify-dropdown-wrapper']")},show(t){var e,n,o,i=this.settings,a="mix"==i.mode&&!i.enforceWhitelist,s=!i.whitelist||!i.whitelist.length,c="manual"==i.dropdown.position;if(t=void 0===t?this.state.inputText:t,(!s||a||i.templates.dropdownItemNoMatch)&&!1!==i.dropdown.enable&&!this.state.isLoading){if(clearTimeout(this.dropdownHide__bindEventsTimeout),this.suggestedListItems=this.dropdown.filterListItems(t),t&&!this.suggestedListItems.length&&(this.trigger("dropdown:noMatch",t),i.templates.dropdownItemNoMatch&&(o=i.templates.dropdownItemNoMatch.call(this,{value:t}))),!o){if(this.suggestedListItems.length)t&&a&&!this.state.editing.scope&&!r(this.suggestedListItems[0].value,t)&&this.suggestedListItems.unshift({value:t});else{if(!t||!a||this.state.editing.scope)return this.input.autocomplete.suggest.call(this),void this.dropdown.hide();this.suggestedListItems=[{value:t}]}n=""+(u(e=this.suggestedListItems[0])?e.value:e),i.autoComplete&&n&&0==n.indexOf(t)&&this.input.autocomplete.suggest.call(this,e)}this.dropdown.fill(o),i.dropdown.highlightFirst&&this.dropdown.highlightOption(this.DOM.dropdown.content.children[0]),this.state.dropdown.visible||setTimeout(this.dropdown.events.binding.bind(this)),this.state.dropdown.visible=t||!0,this.state.dropdown.query=t,this.setStateSelection(),c||setTimeout((()=>{this.dropdown.position(),this.dropdown.render()})),setTimeout((()=>{this.trigger("dropdown:show",this.DOM.dropdown)}))}},hide(t){var e=this.DOM,n=e.scope,r=e.dropdown,o="manual"==this.settings.dropdown.position&&!t;if(r&&document.body.contains(r)&&!o)return window.removeEventListener("resize",this.dropdown.position),this.dropdown.events.binding.call(this,!1),n.setAttribute("aria-expanded",!1),r.parentNode.removeChild(r),setTimeout((()=>{this.state.dropdown.visible=!1}),100),this.state.dropdown.query=this.state.ddItemData=this.state.ddItemElm=this.state.selection=null,this.state.tag&&this.state.tag.value.length&&(this.state.flaggedTags[this.state.tag.baseOffset]=this.state.tag),this.trigger("dropdown:hide",r),this},toggle(t){this.dropdown[this.state.dropdown.visible&&!t?"hide":"show"]()},render(){var t,e,n=((e=this.DOM.dropdown.cloneNode(!0)).style.cssText="position:fixed; top:-9999px; opacity:0",document.body.appendChild(e),t=e.clientHeight,e.parentNode.removeChild(e),t),r=this.settings;return"number"==typeof r.dropdown.enabled&&r.dropdown.enabled>=0?(this.DOM.scope.setAttribute("aria-expanded",!0),document.body.contains(this.DOM.dropdown)||(this.DOM.dropdown.classList.add(r.classNames.dropdownInital),this.dropdown.position(n),r.dropdown.appendTarget.appendChild(this.DOM.dropdown),setTimeout((()=>this.DOM.dropdown.classList.remove(r.classNames.dropdownInital)))),this):this},fill(t){t="string"==typeof t?t:this.dropdown.createListHTML(t||this.suggestedListItems);var e,n=this.settings.templates.dropdownContent.call(this,t);this.DOM.dropdown.content.innerHTML=(e=n)?e.replace(/\>[\r\n ]+\<").replace(/(<.*?>)|\s+/g,((t,e)=>e||" ")):""},refilter(t){t=t||this.state.dropdown.query||"",this.suggestedListItems=this.dropdown.filterListItems(t),this.dropdown.fill(),this.suggestedListItems.length||this.dropdown.hide(),this.trigger("dropdown:updated",this.DOM.dropdown)},position(t){var e=this.settings.dropdown;if("manual"!=e.position){var n,r,o,i,a,s,c=this.DOM.dropdown,l=e.placeAbove,u=document.documentElement.clientHeight,f=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)>480?e.position:"all",p=this.DOM["input"==f?"input":"scope"];t=t||c.clientHeight,this.state.dropdown.visible&&("text"==f?(o=(n=this.getCaretGlobalPosition()).bottom,r=n.top,i=n.left,a="auto"):(s=function(t){for(var e=0,n=0;t;)e+=t.offsetLeft||0,n+=t.offsetTop||0,t=t.parentNode;return{left:e,top:n}}(this.settings.dropdown.appendTarget),r=(n=p.getBoundingClientRect()).top-s.top,o=n.bottom-1-s.top,i=n.left-s.left,a=n.width+"px"),r=Math.floor(r),o=Math.ceil(o),l=void 0===l?u-n.bottom{if(e)return this.dropdown.selectOption(e);this.dropdown.hide(),"mix"!=this.settings.mode&&this.addTags(this.state.inputText.trim(),!0)})).catch((t=>t));break;case"Backspace":{if("mix"==this.settings.mode||this.state.editing.scope)return;const t=this.input.raw.call(this);""!=t&&8203!=t.charCodeAt(0)||(!0===this.settings.backspace?this.removeTags():"edit"==this.settings.backspace&&setTimeout(this.editTag.bind(this),0))}}},onMouseOver(t){var e=t.target.closest(this.settings.classNames.dropdownItemSelector);e&&this.dropdown.highlightOption(e)},onMouseLeave(t){this.dropdown.highlightOption()},onClick(t){if(0==t.button&&t.target!=this.DOM.dropdown&&t.target!=this.DOM.dropdown.content){var e=t.target.closest(this.settings.classNames.dropdownItemSelector),n=this.dropdown.getSuggestionDataByNode(e);this.state.actions.selectOption=!0,setTimeout((()=>this.state.actions.selectOption=!1),50),this.settings.hooks.suggestionClick(t,{tagify:this,tagData:n,suggestionElm:e}).then((()=>{e?this.dropdown.selectOption(e):this.dropdown.hide()})).catch((t=>console.warn(t)))}},onScroll(t){var e=t.target,n=e.scrollTop/(e.scrollHeight-e.parentNode.clientHeight)*100;this.trigger("dropdown:scroll",{percentage:Math.round(n)})}}},getSuggestionDataByNode(t){var e=t?+t.getAttribute("tagifySuggestionIdx"):-1;return this.suggestedListItems[e]||null},highlightOption(t,e){var n,r=this.settings.classNames.dropdownItemActive;if(this.state.ddItemElm&&(this.state.ddItemElm.classList.remove(r),this.state.ddItemElm.removeAttribute("aria-selected")),!t)return this.state.ddItemData=null,this.state.ddItemElm=null,void this.input.autocomplete.suggest.call(this);n=this.suggestedListItems[this.getNodeIndex(t)],this.state.ddItemData=n,this.state.ddItemElm=t,t.classList.add(r),t.setAttribute("aria-selected",!0),e&&(t.parentNode.scrollTop=t.clientHeight+t.offsetTop-t.parentNode.clientHeight),this.settings.autoComplete&&(this.input.autocomplete.suggest.call(this,n),this.dropdown.position())},selectOption(t){var e=this.settings.dropdown,n=e.clearOnSelect,r=e.closeOnSelect;if(!t)return this.addTags(this.state.inputText,!0),void(r&&this.dropdown.hide());var o=t.getAttribute("tagifySuggestionIdx"),i=this.suggestedListItems[+o];this.trigger("dropdown:select",{data:i,elm:t}),o&&i?(this.state.editing?this.onEditTagDone(null,f({__isValid:!0},this.normalizeTags([i])[0])):this["mix"==this.settings.mode?"addMixTags":"addTags"]([i],n),this.DOM.input.parentNode&&(setTimeout((()=>{this.DOM.input.focus(),this.toggleFocusClass(!0)})),r?setTimeout(this.dropdown.hide.bind(this)):this.dropdown.refilter())):this.dropdown.hide()},selectAll(t){this.suggestedListItems.length=0,this.dropdown.hide(),this.dropdown.filterListItems("");var e=this.dropdown.filterListItems("");return t||(e=this.state.dropdown.suggestions),this.addTags(e,!0),this},filterListItems(t,e){var n,r,o,i,a,s=this.settings,c=s.dropdown,l=(e=e||{},t="select"==s.mode&&this.value.length&&this.value[0][s.tagTextProp]==t?"":t,[]),f=[],p=s.whitelist,h=c.maxItems>=0?c.maxItems:1/0,y=c.searchKeys,g=0;if(!t||!y.length)return l=s.duplicates?p:p.filter((t=>!this.isTagDuplicate(u(t)?t.value:t))),this.state.dropdown.suggestions=l,l.slice(0,h);function m(t,e){return e.toLowerCase().split(" ").every((e=>t.includes(e.toLowerCase())))}for(a=c.caseSensitive?""+t:(""+t).toLowerCase();gy.includes(t)))?y:["value"];c.fuzzySearch&&!e.exact?(o=v.reduce(((t,e)=>t+" "+(n[e]||"")),"").toLowerCase().trim(),c.accentedSearch&&(o=d(o),a=d(a)),t=0==o.indexOf(a),h=o===a,r=m(o,a)):(t=!0,r=v.some((t=>{var r=""+(n[t]||"");return c.accentedSearch&&(r=d(r),a=d(a)),c.caseSensitive||(r=r.toLowerCase()),h=r===a,e.exact?r===a:0==r.indexOf(a)}))),i=!s.duplicates&&this.isTagDuplicate(u(n)?n.value:n),r&&!i&&(h&&t?f.push(n):"startsWith"==c.sortby&&t?l.unshift(n):l.push(n))}return this.state.dropdown.suggestions=f.concat(l),"function"==typeof c.sortby?c.sortby(f.concat(l),a):f.concat(l).slice(0,h)},getMappedValue(t){var e=this.settings.dropdown.mapValueTo;return e?"function"==typeof e?e(t):t[e]||t.value:t.value},createListHTML(t){return f([],t).map(((t,e)=>{"string"!=typeof t&&"number"!=typeof t||(t={value:t});var n=this.dropdown.getMappedValue(t);t.value="string"==typeof n?l(n):n;var r=this.settings.templates.dropdownItem.apply(this,[t,this]);return r.replace(/\s*tagifySuggestionIdx=(["'])(.*?)\1/gim,"").replace(">",` tagifySuggestionIdx="${e}">`)})).join("")}};const w="@yaireo/tagify/";var O,j={empty:"empty",exceed:"number of tags exceeded",pattern:"pattern mismatch",duplicate:"already exists",notAllowed:"not allowed"},x={wrapper:(t,e)=>`\n \n ​\n `,tag(t,e){var n=this.settings;return`\n \n
\n ${t[n.tagTextProp]||t.value}\n
\n
`},dropdown(t){var e=t.dropdown,n="manual"==e.position,r=`${t.classNames.dropdown}`;return`
\n
\n
`},dropdownContent(t){var e=this.settings,n=this.state.dropdown.suggestions;return`\n ${e.templates.dropdownHeader.call(this,n)}\n ${t}\n ${e.templates.dropdownFooter.call(this,n)}\n `},dropdownItem(t,e){return`
${t.value}
`},dropdownHeader:t=>"",dropdownFooter(t){var e=t.length-this.settings.dropdown.maxItems;return e>0?`
\n ${e} more items. Refine your search.\n
`:""},dropdownItemNoMatch:null},S={customBinding(){this.customEventsList.forEach((t=>{this.on(t,this.settings.callbacks[t])}))},binding(t=!0){var e,n=this.events.callbacks,r=t?"addEventListener":"removeEventListener";if(!this.state.mainEvents||!t){for(var o in this.state.mainEvents=t,t&&!this.listeners.main&&(this.events.bindGlobal.call(this),this.settings.isJQueryPlugin&&jQuery(this.DOM.originalInput).on("tagify.removeAllTags",this.removeAllTags.bind(this))),e=this.listeners.main=this.listeners.main||{focus:["input",n.onFocusBlur.bind(this)],keydown:["input",n.onKeydown.bind(this)],click:["scope",n.onClickScope.bind(this)],dblclick:["scope",n.onDoubleClickScope.bind(this)],paste:["input",n.onPaste.bind(this)],drop:["input",n.onDrop.bind(this)]})this.DOM[e[o][0]][r](o,e[o][1]);clearInterval(this.listeners.main.originalInputValueObserverInterval),this.listeners.main.originalInputValueObserverInterval=setInterval(n.observeOriginalInputValue.bind(this),500);var i=this.listeners.main.inputMutationObserver||new MutationObserver(n.onInputDOMChange.bind(this));i&&i.disconnect(),"mix"==this.settings.mode&&i.observe(this.DOM.input,{childList:!0})}},bindGlobal(t){var e,n=this.events.callbacks,r=t?"removeEventListener":"addEventListener";if(t||!this.listeners.global)for(e of(this.listeners.global=this.listeners&&this.listeners.global||[{type:this.isIE?"keydown":"input",target:this.DOM.input,cb:n[this.isIE?"onInputIE":"onInput"].bind(this)},{type:"keydown",target:window,cb:n.onWindowKeyDown.bind(this)},{type:"blur",target:this.DOM.input,cb:n.onFocusBlur.bind(this)}],this.listeners.global))e.target[r](e.type,e.cb)},unbindGlobal(){this.events.bindGlobal.call(this,!0)},callbacks:{onFocusBlur(t){var e=t.target?this.trim(t.target.textContent):"",n=this.settings,r=t.type,o=n.dropdown.enabled>=0,i={relatedTarget:t.relatedTarget},a=this.state.actions.selectOption&&(o||!n.dropdown.closeOnSelect),s=this.state.actions.addNew&&o,c=t.relatedTarget&&g.call(this,t.relatedTarget)&&this.DOM.scope.contains(t.relatedTarget);if("blur"==r){if(t.relatedTarget===this.DOM.scope)return this.dropdown.hide(),void this.DOM.input.focus();this.postUpdate(),this.triggerChangeEvent()}if(!a&&!s)if(this.state.hasFocus="focus"==r&&+new Date,this.toggleFocusClass(this.state.hasFocus),"mix"!=n.mode){if("focus"==r)return this.trigger("focus",i),void(0!==n.dropdown.enabled&&n.userInput||this.dropdown.show(this.value.length?"":void 0));if("blur"==r){var l,u;this.trigger("blur",i),this.loading(!1);let t=n.enforceWhitelist?!!this.getWhitelistItem(null===(l=this.value)||void 0===l||null===(u=l[0])||void 0===u?void 0:u.value):n.keepInvalidTags;"select"==this.settings.mode&&c&&(e=""),"select"!==this.settings.mode&&e&&!this.state.actions.selectOption&&n.addTagOnBlur&&this.addTags(e,!0),"select"!=this.settings.mode||e&&t||this.removeTags()}this.DOM.input.removeAttribute("style"),this.dropdown.hide()}else"focus"==r?this.trigger("focus",i):"blur"==t.type&&(this.trigger("blur",i),this.loading(!1),this.dropdown.hide(),this.state.dropdown.visible=void 0,this.setStateSelection())},onWindowKeyDown(t){var e,n=document.activeElement;if(g.call(this,n)&&this.DOM.scope.contains(document.activeElement))switch(e=n.nextElementSibling,t.key){case"Backspace":this.settings.readonly||(this.removeTags(n),(e||this.DOM.input).focus());break;case"Enter":setTimeout(this.editTag.bind(this),0,n)}},onKeydown(t){var e=this.settings;"select"==e.mode&&e.enforceWhitelist&&this.value.length&&"Tab"!=t.key&&t.preventDefault();var n=this.trim(t.target.textContent);if(this.trigger("keydown",{originalEvent:this.cloneEvent(t)}),"mix"==e.mode){switch(t.key){case"Left":case"ArrowLeft":this.state.actions.ArrowLeft=!0;break;case"Delete":case"Backspace":if(this.state.editing)return;var r,o,i,s=document.getSelection(),l="Delete"==t.key&&s.anchorOffset==(s.anchorNode.length||0),u=s.anchorNode.previousSibling,f=1==s.anchorNode.nodeType||!s.anchorOffset&&u&&1==u.nodeType&&s.anchorNode.previousSibling,p=a(this.DOM.input.innerHTML),d=this.getTagElms();if("edit"==e.backspace&&f)return r=1==s.anchorNode.nodeType?null:s.anchorNode.previousElementSibling,setTimeout(this.editTag.bind(this),0,r),void t.preventDefault();if(h()&&f)return i=c(f),f.hasAttribute("readonly")||f.remove(),this.DOM.input.focus(),void setTimeout((()=>{this.placeCaretAfterNode(i),this.DOM.input.click()}));if("BR"==s.anchorNode.nodeName)return;if((l||f)&&1==s.anchorNode.nodeType?o=0==s.anchorOffset?l?d[0]:null:d[s.anchorOffset-1]:l?o=s.anchorNode.nextElementSibling:f&&(o=f),3==s.anchorNode.nodeType&&!s.anchorNode.nodeValue&&s.anchorNode.previousElementSibling&&t.preventDefault(),(f||l)&&!e.backspace)return void t.preventDefault();if("Range"!=s.type&&!s.anchorOffset&&s.anchorNode==this.DOM.input&&"Delete"!=t.key)return void t.preventDefault();if("Range"!=s.type&&o&&o.hasAttribute("readonly"))return void this.placeCaretAfterNode(c(o));clearTimeout(O),O=setTimeout((()=>{var t=document.getSelection(),e=a(this.DOM.input.innerHTML),n=!l&&t.anchorNode.previousSibling;if(e.length>=p.length&&n)if(g.call(this,n)&&!n.hasAttribute("readonly")){if(this.removeTags(n),this.fixFirefoxLastTagNoCaret(),2==this.DOM.input.children.length&&"BR"==this.DOM.input.children[1].tagName)return this.DOM.input.innerHTML="",this.value.length=0,!0}else n.remove();this.value=[].map.call(d,((t,e)=>{var n=this.tagData(t);if(t.parentNode||n.readonly)return n;this.trigger("remove",{tag:t,index:e,data:n})})).filter((t=>t))}),20)}return!0}switch(t.key){case"Backspace":"select"==e.mode&&e.enforceWhitelist&&this.value.length?this.removeTags():this.state.dropdown.visible&&"manual"!=e.dropdown.position||""!=t.target.textContent&&8203!=n.charCodeAt(0)||(!0===e.backspace?this.removeTags():"edit"==e.backspace&&setTimeout(this.editTag.bind(this),0));break;case"Esc":case"Escape":if(this.state.dropdown.visible)return;t.target.blur();break;case"Down":case"ArrowDown":this.state.dropdown.visible||this.dropdown.show();break;case"ArrowRight":{let t=this.state.inputSuggestion||this.state.ddItemData;if(t&&e.autoComplete.rightKey)return void this.addTags([t],!0);break}case"Tab":{let r="select"==e.mode;if(!n||r)return!0;t.preventDefault()}case"Enter":if(this.state.dropdown.visible||229==t.keyCode)return;t.preventDefault(),setTimeout((()=>{this.state.actions.selectOption||this.addTags(n,!0)}))}},onInput(t){if(this.postUpdate(),"mix"==this.settings.mode)return this.events.callbacks.onMixTagsInput.call(this,t);var e=this.input.normalize.call(this),n=e.length>=this.settings.dropdown.enabled,r={value:e,inputElm:this.DOM.input};r.isValid=this.validateTag({value:e}),this.state.inputText!=e&&(this.input.set.call(this,e,!1),-1!=e.search(this.settings.delimiters)?this.addTags(e)&&this.input.set.call(this):this.settings.dropdown.enabled>=0&&this.dropdown[n?"show":"hide"](e),this.trigger("input",r))},onMixTagsInput(t){var e,n,r,o,i,a,s,c,l=this.settings,u=this.value.length,p=this.getTagElms(),d=document.createDocumentFragment(),y=window.getSelection().getRangeAt(0),g=[].map.call(p,(t=>this.tagData(t).value));if("deleteContentBackward"==t.inputType&&h()&&this.events.callbacks.onKeydown.call(this,{target:t.target,key:"Backspace"}),this.value.slice().forEach((t=>{t.readonly&&!g.includes(t.value)&&d.appendChild(this.createTagElem(t))})),d.childNodes.length&&(y.insertNode(d),this.setRangeAtStartEnd(!1,d.lastChild)),p.length!=u)return this.value=[].map.call(this.getTagElms(),(t=>this.tagData(t))),void this.update({withoutChangeEvent:!0});if(this.hasMaxTags())return!0;if(window.getSelection&&(a=window.getSelection()).rangeCount>0&&3==a.anchorNode.nodeType){if((y=a.getRangeAt(0).cloneRange()).collapse(!0),y.setStart(a.focusNode,0),r=(e=y.toString().slice(0,y.endOffset)).split(l.pattern).length-1,(n=e.match(l.pattern))&&(o=e.slice(e.lastIndexOf(n[n.length-1]))),o){if(this.state.actions.ArrowLeft=!1,this.state.tag={prefix:o.match(l.pattern)[0],value:o.replace(l.pattern,"")},this.state.tag.baseOffset=a.baseOffset-this.state.tag.value.length,c=this.state.tag.value.match(l.delimiters))return this.state.tag.value=this.state.tag.value.replace(l.delimiters,""),this.state.tag.delimiters=c[0],this.addTags(this.state.tag.value,l.dropdown.clearOnSelect),void this.dropdown.hide();i=this.state.tag.value.length>=l.dropdown.enabled;try{s=(s=this.state.flaggedTags[this.state.tag.baseOffset]).prefix==this.state.tag.prefix&&s.value[0]==this.state.tag.value[0],this.state.flaggedTags[this.state.tag.baseOffset]&&!this.state.tag.value&&delete this.state.flaggedTags[this.state.tag.baseOffset]}catch(t){}(s||r{this.update({withoutChangeEvent:!0}),this.trigger("input",f({},this.state.tag,{textContent:this.DOM.input.textContent})),this.state.tag&&this.dropdown[i?"show":"hide"](this.state.tag.value)}),10)},onInputIE(t){var e=this;setTimeout((function(){e.events.callbacks.onInput.call(e,t)}))},observeOriginalInputValue(){this.DOM.originalInput.value!=this.DOM.originalInput.tagifyValue&&this.loadOriginalValues()},onClickScope(t){var e=this.settings,n=t.target.closest("."+e.classNames.tag),r=+new Date-this.state.hasFocus;if(t.target!=this.DOM.scope){if(!t.target.classList.contains(e.classNames.tagX))return n?(this.trigger("click",{tag:n,index:this.getNodeIndex(n),data:this.tagData(n),originalEvent:this.cloneEvent(t)}),void(1!==e.editTags&&1!==e.editTags.clicks||this.events.callbacks.onDoubleClickScope.call(this,t))):void(t.target==this.DOM.input&&("mix"==e.mode&&this.fixFirefoxLastTagNoCaret(),r>500)?this.state.dropdown.visible?this.dropdown.hide():0===e.dropdown.enabled&&"mix"!=e.mode&&this.dropdown.show(this.value.length?"":void 0):"select"==e.mode&&!this.state.dropdown.visible&&this.dropdown.show());this.removeTags(t.target.parentNode)}else this.state.hasFocus||this.DOM.input.focus()},onPaste(t){t.preventDefault();var e,n,r=this.settings;if("select"==r.mode&&r.enforceWhitelist||!r.userInput)return!1;r.readonly||(e=t.clipboardData||window.clipboardData,n=e.getData("Text"),r.hooks.beforePaste(t,{tagify:this,pastedText:n,clipboardData:e}).then((e=>{void 0===e&&(e=n),e&&(this.injectAtCaret(e,window.getSelection().getRangeAt(0)),"mix"==this.settings.mode?this.events.callbacks.onMixTagsInput.call(this,t):this.settings.pasteAsTags?this.addTags(this.state.inputText+e,!0):this.state.inputText=e)})).catch((t=>t)))},onDrop(t){t.preventDefault()},onEditTagInput(t,e){var n=t.closest("."+this.settings.classNames.tag),r=this.getNodeIndex(n),o=this.tagData(n),i=this.input.normalize.call(this,t),a=n.innerHTML!=n.__tagifyTagData.__originalHTML,s=this.validateTag(f(n.__tagifyTagData,{[this.settings.tagTextProp]:i}));a||!0!==t.originalIsValid||(s=!0),n.classList.toggle(this.settings.classNames.tagInvalid,!0!==s),o.__isValid=s,n.title=!0===s?o.title||o.value:s,i.length>=this.settings.dropdown.enabled&&(this.state.editing&&(this.state.editing.value=i),this.dropdown.show(i)),this.trigger("edit:input",{tag:n,index:r,data:f({},this.value[r],{newValue:i}),originalEvent:this.cloneEvent(e)})},onEditTagFocus(t){this.state.editing={scope:t,input:t.querySelector("[contenteditable]")}},onEditTagBlur(t){if(this.state.hasFocus||this.toggleFocusClass(),this.DOM.scope.contains(t)){var e,n,r=this.settings,o=t.closest("."+r.classNames.tag),i=this.input.normalize.call(this,t),a=this.tagData(o).__originalData,s=o.innerHTML!=o.__tagifyTagData.__originalHTML,c=this.validateTag({[r.tagTextProp]:i});if(i)if(s){if(e=this.hasMaxTags(),n=f({},a,{[r.tagTextProp]:this.trim(i),value:i,__isValid:c}),r.transformTag.call(this,n,a),!0!==(c=(!e||!0===a.__isValid)&&this.validateTag(n))){if(this.trigger("invalid",{data:n,tag:o,message:c}),r.editTags.keepInvalid)return;r.keepInvalidTags?n.__isValid=c:n=a}else r.keepInvalidTags&&(delete n.title,delete n["aria-invalid"],delete n.class);this.onEditTagDone(o,n)}else this.onEditTagDone(o,a);else this.onEditTagDone(o)}},onEditTagkeydown(t,e){switch(this.trigger("edit:keydown",{originalEvent:this.cloneEvent(t)}),t.key){case"Esc":case"Escape":e.innerHTML=e.__tagifyTagData.__originalHTML;case"Enter":case"Tab":t.preventDefault(),t.target.blur()}},onDoubleClickScope(t){var e,n,r=t.target.closest("."+this.settings.classNames.tag),o=this.settings;r&&o.userInput&&(e=r.classList.contains(this.settings.classNames.tagEditing),n=r.hasAttribute("readonly"),"select"==o.mode||o.readonly||e||n||!this.settings.editTags||this.editTag(r),this.toggleFocusClass(!0),this.trigger("dblclick",{tag:r,index:this.getNodeIndex(r),data:this.tagData(r)}))},onInputDOMChange(t){t.forEach((t=>{t.addedNodes.forEach((t=>{if(t)if("

"==t.outerHTML)t.replaceWith(document.createElement("br"));else if(1==t.nodeType&&t.querySelector(this.settings.classNames.tagSelector)){let e=document.createTextNode("");3==t.childNodes[0].nodeType&&"BR"!=t.previousSibling.nodeName&&(e=document.createTextNode("\n")),t.replaceWith(e,...[...t.childNodes].slice(0,-1)),this.placeCaretAfterNode(e.previousSibling)}else g.call(this,t)&&t.previousSibling&&"BR"==t.previousSibling.nodeName&&(t.previousSibling.replaceWith("\n​"),this.placeCaretAfterNode(t.previousSibling.previousSibling))})),t.removedNodes.forEach((t=>{t&&"BR"==t.nodeName&&g.call(this,e)&&(this.removeTags(e),this.fixFirefoxLastTagNoCaret())}))}));var e=this.DOM.input.lastChild;e&&""==e.nodeValue&&e.remove(),e&&"BR"==e.nodeName||this.DOM.input.appendChild(document.createElement("br"))}}};function _(t,e){if(!t){console.warn("Tagify:","input element not found",t);const e=new Proxy(this,{get:()=>()=>e});return e}if(t.previousElementSibling&&t.previousElementSibling.classList.contains("tagify"))return console.warn("Tagify: ","input element is already Tagified",t),this;var n;f(this,function(t){var e=document.createTextNode("");function n(t,n,r){r&&n.split(/\s+/g).forEach((n=>e[t+"EventListener"].call(e,n,r)))}return{off(t,e){return n("remove",t,e),this},on(t,e){return e&&"function"==typeof e&&n("add",t,e),this},trigger(n,r,o){var i;if(o=o||{cloneData:!0},n)if(t.settings.isJQueryPlugin)"remove"==n&&(n="removeTag"),jQuery(t.DOM.originalInput).triggerHandler(n,[r]);else{try{var a="object"==typeof r?r:{value:r};if((a=o.cloneData?f({},a):a).tagify=this,r instanceof Object)for(var s in r)r[s]instanceof HTMLElement&&(a[s]=r[s]);i=new CustomEvent(n,{detail:a})}catch(t){console.warn(t)}e.dispatchEvent(i)}}}}(this)),this.isFirefox="undefined"!=typeof InstallTrigger,this.isIE=window.document.documentMode,e=e||{},this.getPersistedData=(n=e.id,t=>{let e,r="/"+t;if(1==localStorage.getItem(w+n+"/v",1))try{e=JSON.parse(localStorage[w+n+r])}catch(t){}return e}),this.setPersistedData=(t=>t?(localStorage.setItem(w+t+"/v",1),(e,n)=>{let r="/"+n,o=JSON.stringify(e);e&&n&&(localStorage.setItem(w+t+r,o),dispatchEvent(new Event("storage")))}):()=>{})(e.id),this.clearPersistedData=(t=>e=>{const n=w+"/"+t+"/";if(e)localStorage.removeItem(n+e);else for(let t in localStorage)t.includes(n)&&localStorage.removeItem(t)})(e.id),this.applySettings(t,e),this.state={inputText:"",editing:!1,actions:{},mixMode:{},dropdown:{},flaggedTags:{}},this.value=[],this.listeners={},this.DOM={},this.build(t),v.call(this),this.getCSSVars(),this.loadOriginalValues(),this.events.customBinding.call(this),this.events.binding.call(this),t.autofocus&&this.DOM.input.focus()}return _.prototype={_dropdown:b,helpers:{sameStr:r,removeCollectionProp:o,omit:i,isObject:u,parseHTML:s,escapeHTML:l,extend:f,concatWithoutDups:p,getUID:y,isNodeTag:g},customEventsList:["change","add","remove","invalid","input","click","keydown","focus","blur","edit:input","edit:beforeUpdate","edit:updated","edit:start","edit:keydown","dropdown:show","dropdown:hide","dropdown:select","dropdown:updated","dropdown:noMatch","dropdown:scroll"],dataProps:["__isValid","__removed","__originalData","__originalHTML","__tagId"],trim(t){return this.settings.trim&&t&&"string"==typeof t?t.trim():t},parseHTML:s,templates:x,parseTemplate(t,e){return t=this.settings.templates[t]||t,this.parseHTML(t.apply(this,e))},set whitelist(t){const e=t&&Array.isArray(t);this.settings.whitelist=e?t:[],this.setPersistedData(e?t:[],"whitelist")},get whitelist(){return this.settings.whitelist},applySettings(t,n){m.templates=this.templates;var r=this.settings=f({},m,n);r.disabled=t.hasAttribute("disabled"),r.readonly=r.readonly||t.hasAttribute("readonly"),r.placeholder=l(t.getAttribute("placeholder")||r.placeholder||""),r.required=t.hasAttribute("required");for(let t in r.classNames)Object.defineProperty(r.classNames,t+"Selector",{get(){return"."+this[t].split(" ")[0]}});if(this.isIE&&(r.autoComplete=!1),["whitelist","blacklist"].forEach((e=>{var n=t.getAttribute("data-"+e);n&&(n=n.split(r.delimiters))instanceof Array&&(r[e]=n)})),"autoComplete"in n&&!u(n.autoComplete)&&(r.autoComplete=m.autoComplete,r.autoComplete.enabled=n.autoComplete),"mix"==r.mode&&(r.autoComplete.rightKey=!0,r.delimiters=n.delimiters||null,r.tagTextProp&&!r.dropdown.searchKeys.includes(r.tagTextProp)&&r.dropdown.searchKeys.push(r.tagTextProp)),t.pattern)try{r.pattern=new RegExp(t.pattern)}catch(t){}if(this.settings.delimiters)try{r.delimiters=new RegExp(this.settings.delimiters,"g")}catch(t){}r.disabled&&(r.userInput=!1),this.TEXTS=e(e({},j),r.texts||{}),"select"!=r.mode&&r.userInput||(r.dropdown.enabled=0),r.dropdown.appendTarget=n.dropdown&&n.dropdown.appendTarget?n.dropdown.appendTarget:document.body;let o=this.getPersistedData("whitelist");Array.isArray(o)&&(this.whitelist=Array.isArray(r.whitelist)?p(r.whitelist,o):o)},getAttributes(t){var e,n=this.getCustomAttributes(t),r="";for(e in n)r+=" "+e+(void 0!==t[e]?`="${n[e]}"`:"");return r},getCustomAttributes(t){if(!u(t))return"";var e,n={};for(e in t)"__"!=e.slice(0,2)&&"class"!=e&&t.hasOwnProperty(e)&&void 0!==t[e]&&(n[e]=l(t[e]));return n},setStateSelection(){var t=window.getSelection(),e={anchorOffset:t.anchorOffset,anchorNode:t.anchorNode,range:t.getRangeAt&&t.rangeCount&&t.getRangeAt(0)};return this.state.selection=e,e},getCaretGlobalPosition(){const t=document.getSelection();if(t.rangeCount){const e=t.getRangeAt(0),n=e.startContainer,r=e.startOffset;let o,i;if(r>0)return i=document.createRange(),i.setStart(n,r-1),i.setEnd(n,r),o=i.getBoundingClientRect(),{left:o.right,top:o.top,bottom:o.bottom};if(n.getBoundingClientRect)return n.getBoundingClientRect()}return{left:-9999,top:-9999}},getCSSVars(){var t,e=getComputedStyle(this.DOM.scope,null);this.CSSVars={tagHideTransition:(({value:t,unit:e})=>"s"==e?1e3*t:t)(function(t){if(!t)return{};var e=(t=t.trim().split(" ")[0]).split(/\d+/g).filter((t=>t)).pop().trim();return{value:+t.split(e).filter((t=>t))[0].trim(),unit:e}}((t="tag-hide-transition",e.getPropertyValue("--"+t))))}},build(t){var e=this.DOM;this.settings.mixMode.integrated?(e.originalInput=null,e.scope=t,e.input=t):(e.originalInput=t,e.originalInput_tabIndex=t.tabIndex,e.scope=this.parseTemplate("wrapper",[t,this.settings]),e.input=e.scope.querySelector(this.settings.classNames.inputSelector),t.parentNode.insertBefore(e.scope,t),t.tabIndex=-1)},destroy(){this.events.unbindGlobal.call(this),this.DOM.scope.parentNode.removeChild(this.DOM.scope),this.DOM.originalInput.tabIndex=this.DOM.originalInput_tabIndex,this.dropdown.hide(!0),clearTimeout(this.dropdownHide__bindEventsTimeout)},loadOriginalValues(t){var e,n=this.settings;if(this.state.blockChangeEvent=!0,void 0===t){const e=this.getPersistedData("value");t=e&&!this.DOM.originalInput.value?e:n.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value}if(this.removeAllTags(),t)if("mix"==n.mode)this.parseMixTags(this.trim(t)),(e=this.DOM.input.lastChild)&&"BR"==e.tagName||this.DOM.input.insertAdjacentHTML("beforeend","
");else{try{JSON.parse(t)instanceof Array&&(t=JSON.parse(t))}catch(t){}this.addTags(t).forEach((t=>t&&t.classList.add(n.classNames.tagNoAnimation)))}else this.postUpdate();this.state.lastOriginalValueReported=n.mixMode.integrated?"":this.DOM.originalInput.value,this.state.blockChangeEvent=!1},cloneEvent(t){var e={};for(var n in t)e[n]=t[n];return e},loading(t){return this.state.isLoading=t,this.DOM.scope.classList[t?"add":"remove"](this.settings.classNames.scopeLoading),this},tagLoading(t,e){return t&&t.classList[e?"add":"remove"](this.settings.classNames.tagLoading),this},toggleClass(t,e){"string"==typeof t&&this.DOM.scope.classList.toggle(t,e)},toggleFocusClass(t){this.toggleClass(this.settings.classNames.focus,!!t)},triggerChangeEvent:function(){if(!this.settings.mixMode.integrated){var t=this.DOM.originalInput,e=this.state.lastOriginalValueReported!==t.value,n=new CustomEvent("change",{bubbles:!0});e&&(this.state.lastOriginalValueReported=t.value,n.simulated=!0,t._valueTracker&&t._valueTracker.setValue(Math.random()),t.dispatchEvent(n),this.trigger("change",this.state.lastOriginalValueReported),t.value=this.state.lastOriginalValueReported)}},events:S,fixFirefoxLastTagNoCaret(){},placeCaretAfterNode(t){if(t&&t.parentNode){var e=t.nextSibling,n=window.getSelection(),r=n.getRangeAt(0);n.rangeCount&&(r.setStartAfter(e||t),r.collapse(!0),n.removeAllRanges(),n.addRange(r))}},insertAfterTag(t,e){if(e=e||this.settings.mixMode.insertAfterTag,t&&t.parentNode&&e)return e="string"==typeof e?document.createTextNode(e):e,t.parentNode.insertBefore(e,t.nextSibling),e},editTag(t,e){t=t||this.getLastTag(),e=e||{},this.dropdown.hide();var n=this.settings;function r(){return t.querySelector(n.classNames.tagTextSelector)}var o=r(),i=this.getNodeIndex(t),a=this.tagData(t),s=this.events.callbacks,c=this,l=!0;if(o){if(!(a instanceof Object&&"editable"in a)||a.editable)return o.setAttribute("contenteditable",!0),t.classList.add(n.classNames.tagEditing),this.tagData(t,{__originalData:f({},a),__originalHTML:t.innerHTML}),o.addEventListener("focus",s.onEditTagFocus.bind(this,t)),o.addEventListener("blur",(function(){setTimeout((()=>s.onEditTagBlur.call(c,r())))})),o.addEventListener("input",s.onEditTagInput.bind(this,o)),o.addEventListener("keydown",(e=>s.onEditTagkeydown.call(this,e,t))),o.focus(),this.setRangeAtStartEnd(!1,o),e.skipValidation||(l=this.editTagToggleValidity(t)),o.originalIsValid=l,this.trigger("edit:start",{tag:t,index:i,data:a,isValid:l}),this}else console.warn("Cannot find element in Tag template: .",n.classNames.tagTextSelector)},editTagToggleValidity(t,e){var n;if(e=e||this.tagData(t))return(n=!("__isValid"in e)||!0===e.__isValid)||this.removeTagsFromValue(t),this.update(),t.classList.toggle(this.settings.classNames.tagNotAllowed,!n),e.__isValid;console.warn("tag has no data: ",t,e)},onEditTagDone(t,e){e=e||{};var n={tag:t=t||this.state.editing.scope,index:this.getNodeIndex(t),previousData:this.tagData(t),data:e};this.trigger("edit:beforeUpdate",n,{cloneData:!1}),this.state.editing=!1,delete e.__originalData,delete e.__originalHTML,t&&e[this.settings.tagTextProp]?(t=this.replaceTag(t,e),this.editTagToggleValidity(t,e),this.settings.a11y.focusableTags?t.focus():this.placeCaretAfterNode(t.previousSibling)):t&&this.removeTags(t),this.trigger("edit:updated",n),this.dropdown.hide(),this.settings.keepInvalidTags&&this.reCheckInvalidTags()},replaceTag(t,e){e&&e.value||(e=t.__tagifyTagData),e.__isValid&&1!=e.__isValid&&f(e,this.getInvalidTagAttrs(e,e.__isValid));var n=this.createTagElem(e);return t.parentNode.replaceChild(n,t),this.updateValueByDOMTags(),n},updateValueByDOMTags(){this.value.length=0,[].forEach.call(this.getTagElms(),(t=>{t.classList.contains(this.settings.classNames.tagNotAllowed.split(" ")[0])||this.value.push(this.tagData(t))})),this.update()},setRangeAtStartEnd(t,e){t="number"==typeof t?t:!!t,e=(e=e||this.DOM.input).lastChild||e;var n=document.getSelection();try{n.rangeCount>=1&&["Start","End"].forEach((r=>n.getRangeAt(0)["set"+r](e,t||e.length)))}catch(t){}},injectAtCaret(t,e){if(e=e||this.state.selection.range)return"string"==typeof t&&(t=document.createTextNode(t)),e.deleteContents(),e.insertNode(t),this.setRangeAtStartEnd(!1,t),this.updateValueByDOMTags(),this.update(),this},input:{set(t="",e=!0){var n=this.settings.dropdown.closeOnSelect;this.state.inputText=t,e&&(this.DOM.input.innerHTML=l(""+t)),!t&&n&&this.dropdown.hide.bind(this),this.input.autocomplete.suggest.call(this),this.input.validate.call(this)},raw(){return this.DOM.input.textContent},validate(){var t=!this.state.inputText||!0===this.validateTag({value:this.state.inputText});return this.DOM.input.classList.toggle(this.settings.classNames.inputInvalid,!t),t},normalize(t){var e=t||this.DOM.input,n=[];e.childNodes.forEach((t=>3==t.nodeType&&n.push(t.nodeValue))),n=n.join("\n");try{n=n.replace(/(?:\r\n|\r|\n)/g,this.settings.delimiters.source.charAt(0))}catch(t){}return n=n.replace(/\s/g," "),this.settings.trim&&(n=n.replace(/^\s+/,"")),this.trim(n)},autocomplete:{suggest(t){if(this.settings.autoComplete.enabled){"string"==typeof(t=t||{})&&(t={value:t});var e=t.value?""+t.value:"",n=e.substr(0,this.state.inputText.length).toLowerCase(),r=e.substring(this.state.inputText.length);e&&this.state.inputText&&n==this.state.inputText.toLowerCase()?(this.DOM.input.setAttribute("data-suggest",r),this.state.inputSuggestion=t):(this.DOM.input.removeAttribute("data-suggest"),delete this.state.inputSuggestion)}},set(t){var e=this.DOM.input.getAttribute("data-suggest"),n=t||(e?this.state.inputText+e:null);return!!n&&("mix"==this.settings.mode?this.replaceTextWithNode(document.createTextNode(this.state.tag.prefix+n)):(this.input.set.call(this,n),this.setRangeAtStartEnd()),this.input.autocomplete.suggest.call(this),this.dropdown.hide(),!0)}}},getTagIdx(t){return this.value.findIndex((e=>e.__tagId==(t||{}).__tagId))},getNodeIndex(t){var e=0;if(t)for(;t=t.previousElementSibling;)e++;return e},getTagElms(...t){var e="."+[...this.settings.classNames.tag.split(" "),...t].join(".");return[].slice.call(this.DOM.scope.querySelectorAll(e))},getLastTag(){var t=this.DOM.scope.querySelectorAll(`${this.settings.classNames.tagSelector}:not(.${this.settings.classNames.tagHide}):not([readonly])`);return t[t.length-1]},tagData:(t,e,n)=>t?(e&&(t.__tagifyTagData=n?e:f({},t.__tagifyTagData||{},e)),t.__tagifyTagData):(console.warn("tag element doesn't exist",t,e),e),isTagDuplicate(t,e,n){var o=this.settings;return"select"!=o.mode&&this.value.reduce(((i,a)=>r(this.trim(""+t),a.value,e||o.dropdown.caseSensitive)&&n!=a.__tagId?i+1:i),0)},getTagIndexByValue(t){var e=[];return this.getTagElms().forEach(((n,o)=>{r(this.trim(n.textContent),t,this.settings.dropdown.caseSensitive)&&e.push(o)})),e},getTagElmByValue(t){var e=this.getTagIndexByValue(t)[0];return this.getTagElms()[e]},flashTag(t){t&&(t.classList.add(this.settings.classNames.tagFlash),setTimeout((()=>{t.classList.remove(this.settings.classNames.tagFlash)}),100))},isTagBlacklisted(t){return t=this.trim(t.toLowerCase()),this.settings.blacklist.filter((e=>(""+e).toLowerCase()==t)).length},isTagWhitelisted(t){return!!this.getWhitelistItem(t)},getWhitelistItem(t,e,n){e=e||"value";var o,i=this.settings;return(n=n||i.whitelist).some((n=>{var a="string"==typeof n?n:n[e]||n.value;if(r(a,t,i.dropdown.caseSensitive,i.trim))return o="string"==typeof n?{value:n}:n,!0})),o||"value"!=e||"value"==i.tagTextProp||(o=this.getWhitelistItem(t,i.tagTextProp,n)),o},validateTag(t){var e=this.settings,n="value"in t?"value":e.tagTextProp,r=this.trim(t[n]+"");return(t[n]+"").trim()?e.pattern&&e.pattern instanceof RegExp&&!e.pattern.test(r)?this.TEXTS.pattern:!e.duplicates&&this.isTagDuplicate(r,this.state.editing,t.__tagId)?this.TEXTS.duplicate:this.isTagBlacklisted(r)||e.enforceWhitelist&&!this.isTagWhitelisted(r)?this.TEXTS.notAllowed:!e.validate||e.validate(t):this.TEXTS.empty},getInvalidTagAttrs(t,e){return{"aria-invalid":!0,class:`${t.class||""} ${this.settings.classNames.tagNotAllowed}`.trim(),title:e}},hasMaxTags(){return this.value.length>=this.settings.maxTags&&this.TEXTS.exceed},setReadonly(t,e){var n=this.settings;document.activeElement.blur(),n[e||"readonly"]=t,this.DOM.scope[(t?"set":"remove")+"Attribute"](e||"readonly",!0),this.setContentEditable(!t)},setContentEditable(t){!this.settings.readonly&&this.settings.userInput&&(this.DOM.input.contentEditable=t,this.DOM.input.tabIndex=t?0:-1)},setDisabled(t){this.setReadonly(t,"disabled")},normalizeTags(t){var e=this.settings,n=e.whitelist,r=e.delimiters,o=e.mode,i=e.tagTextProp;e.enforceWhitelist;var a=[],s=!!n&&n[0]instanceof Object,c=t instanceof Array,l=t=>(t+"").split(r).filter((t=>t)).map((t=>({[i]:this.trim(t),value:this.trim(t)})));if("number"==typeof t&&(t=t.toString()),"string"==typeof t){if(!t.trim())return[];t=l(t)}else c&&(t=[].concat(...t.map((t=>t.value?t:l(t)))));return s&&(t.forEach((t=>{var e=a.map((t=>t.value)),n=this.dropdown.filterListItems.call(this,t[i],{exact:!0});this.settings.duplicates||(n=n.filter((t=>!e.includes(t.value))));var r=n.length>1?this.getWhitelistItem(t[i],i,n):n[0];r&&r instanceof Object?a.push(r):"mix"!=o&&(null==t.value&&(t.value=t[i]),a.push(t))})),a.length&&(t=a)),t},parseMixTags(t){var e=this.settings,n=e.mixTagsInterpolator,r=e.duplicates,o=e.transformTag,i=e.enforceWhitelist,a=e.maxTags,s=e.tagTextProp,c=[];return t=t.split(n[0]).map(((t,e)=>{var l,u,f,p=t.split(n[1]),d=p[0],h=c.length==a;try{if(d==+d)throw Error;u=JSON.parse(d)}catch(t){u=this.normalizeTags(d)[0]||{value:d}}if(o.call(this,u),h||!(p.length>1)||i&&!this.isTagWhitelisted(u.value)||!r&&this.isTagDuplicate(u.value)){if(t)return e?n[0]+t:t}else u[l=u[s]?s:"value"]=this.trim(u[l]),f=this.createTagElem(u),c.push(u),f.classList.add(this.settings.classNames.tagNoAnimation),p[0]=f.outerHTML,this.value.push(u);return p.join("")})).join(""),this.DOM.input.innerHTML=t,this.DOM.input.appendChild(document.createTextNode("")),this.DOM.input.normalize(),this.getTagElms().forEach(((t,e)=>this.tagData(t,c[e]))),this.update({withoutChangeEvent:!0}),t},replaceTextWithNode(t,e){if(this.state.tag||e){e=e||this.state.tag.prefix+this.state.tag.value;var n,r,o=window.getSelection(),i=o.anchorNode,a=this.state.tag.delimiters?this.state.tag.delimiters.length:0;return i.splitText(o.anchorOffset-a),-1==(n=i.nodeValue.lastIndexOf(e))||(r=i.splitText(n),t&&i.parentNode.replaceChild(t,r)),!0}},selectTag(t,e){var n=this.settings;if(!n.enforceWhitelist||this.isTagWhitelisted(e.value)){this.input.set.call(this,e[n.tagTextProp]||e.value,!0),this.state.actions.selectOption&&setTimeout(this.setRangeAtStartEnd.bind(this));var r=this.getLastTag();return r?this.replaceTag(r,e):this.appendTag(t),this.value[0]=e,this.update(),this.trigger("add",{tag:t,data:e}),[t]}},addEmptyTag(t){var e=f({value:""},t||{}),n=this.createTagElem(e);this.tagData(n,e),this.appendTag(n),this.editTag(n,{skipValidation:!0})},addTags(t,e,n){var r=[],o=this.settings,i=document.createDocumentFragment();return n=n||o.skipInvalid,t&&0!=t.length?(t=this.normalizeTags(t),"mix"==o.mode?this.addMixTags(t):("select"==o.mode&&(e=!1),this.DOM.input.removeAttribute("style"),t.forEach((t=>{var e,a={},s=Object.assign({},t,{value:t.value+""});if(t=Object.assign({},s),o.transformTag.call(this,t),t.__isValid=this.hasMaxTags()||this.validateTag(t),!0!==t.__isValid){if(n)return;f(a,this.getInvalidTagAttrs(t,t.__isValid),{__preInvalidData:s}),t.__isValid==this.TEXTS.duplicate&&this.flashTag(this.getTagElmByValue(t.value))}if("readonly"in t&&(t.readonly?a["aria-readonly"]=!0:delete t.readonly),e=this.createTagElem(t,a),r.push(e),"select"==o.mode)return this.selectTag(e,t);i.appendChild(e),t.__isValid&&!0===t.__isValid?(this.value.push(t),this.trigger("add",{tag:e,index:this.value.length-1,data:t})):(this.trigger("invalid",{data:t,index:this.value.length,tag:e,message:t.__isValid}),o.keepInvalidTags||setTimeout((()=>this.removeTags(e,!0)),1e3)),this.dropdown.position()})),this.appendTag(i),this.update(),t.length&&e&&this.input.set.call(this),this.dropdown.refilter(),r)):("select"==o.mode&&this.removeAllTags(),r)},addMixTags(t){if((t=this.normalizeTags(t))[0].prefix||this.state.tag)return this.prefixedTextToTag(t[0]);"string"==typeof t&&(t=[{value:t}]);var e=!!this.state.selection,n=document.createDocumentFragment();return t.forEach((t=>{var e=this.createTagElem(t);n.appendChild(e),this.insertAfterTag(e)})),e?this.injectAtCaret(n):(this.DOM.input.focus(),(e=this.setStateSelection()).range.setStart(this.DOM.input,e.range.endOffset),e.range.setEnd(this.DOM.input,e.range.endOffset),this.DOM.input.appendChild(n),this.updateValueByDOMTags(),this.update()),n},prefixedTextToTag(t){var e,n=this.settings,r=this.state.tag.delimiters;if(n.transformTag.call(this,t),t.prefix=t.prefix||this.state.tag?this.state.tag.prefix:(n.pattern.source||n.pattern)[0],e=this.createTagElem(t),this.replaceTextWithNode(e)||this.DOM.input.appendChild(e),setTimeout((()=>e.classList.add(this.settings.classNames.tagNoAnimation)),300),this.value.push(t),this.update(),!r){var o=this.insertAfterTag(e)||e;this.placeCaretAfterNode(o)}return this.state.tag=null,this.trigger("add",f({},{tag:e},{data:t})),e},appendTag(t){var e=this.DOM,n=e.input;n===e.input?e.scope.insertBefore(t,n):e.scope.appendChild(t)},createTagElem(t,n){t.__tagId=y();var r,o=f({},t,e({value:l(t.value+"")},n));return function(t){for(var e,n=document.createNodeIterator(t,NodeFilter.SHOW_TEXT,null,!1);e=n.nextNode();)e.textContent.trim()||e.parentNode.removeChild(e)}(r=this.parseTemplate("tag",[o])),this.tagData(r,t),r},reCheckInvalidTags(){var t=this.settings;this.getTagElms(t.classNames.tagNotAllowed).forEach(((t,e)=>{var n=this.tagData(t),r=this.hasMaxTags(),o=this.validateTag(n);if(!0===o&&!r)return n=n.__preInvalidData?n.__preInvalidData:{value:n.value},this.replaceTag(t,n);t.title=r||o}))},removeTags(t,e,n){var r;if(t=t&&t instanceof HTMLElement?[t]:t instanceof Array?t:t?[t]:[this.getLastTag()],r=t.reduce(((t,e)=>{e&&"string"==typeof e&&(e=this.getTagElmByValue(e));var n=this.tagData(e);return e&&n&&!n.readonly&&t.push({node:e,idx:this.getTagIdx(n),data:this.tagData(e,{__removed:!0})}),t}),[]),n="number"==typeof n?n:this.CSSVars.tagHideTransition,"select"==this.settings.mode&&(n=0,this.input.set.call(this)),1==r.length&&r[0].node.classList.contains(this.settings.classNames.tagNotAllowed)&&(e=!0),r.length)return this.settings.hooks.beforeRemoveTag(r,{tagify:this}).then((()=>{function t(t){t.node.parentNode&&(t.node.parentNode.removeChild(t.node),e?this.settings.keepInvalidTags&&this.trigger("remove",{tag:t.node,index:t.idx}):(this.trigger("remove",{tag:t.node,index:t.idx,data:t.data}),this.dropdown.refilter(),this.dropdown.position(),this.DOM.input.normalize(),this.settings.keepInvalidTags&&this.reCheckInvalidTags()))}n&&n>10&&1==r.length?function(e){e.node.style.width=parseFloat(window.getComputedStyle(e.node).width)+"px",document.body.clientTop,e.node.classList.add(this.settings.classNames.tagHide),setTimeout(t.bind(this),n,e)}.call(this,r[0]):r.forEach(t.bind(this)),e||(this.removeTagsFromValue(r.map((t=>t.node))),this.update(),"select"==this.settings.mode&&this.setContentEditable(!0))})).catch((t=>{}))},removeTagsFromDOM(){[].slice.call(this.getTagElms()).forEach((t=>t.parentNode.removeChild(t)))},removeTagsFromValue(t){(t=Array.isArray(t)?t:[t]).forEach((t=>{var e=this.tagData(t),n=this.getTagIdx(e);n>-1&&this.value.splice(n,1)}))},removeAllTags(t){t=t||{},this.value=[],"mix"==this.settings.mode?this.DOM.input.innerHTML="":this.removeTagsFromDOM(),this.dropdown.position(),"select"==this.settings.mode&&(this.input.set.call(this),this.setContentEditable(!0)),this.update(t)},postUpdate(){var t=this.settings.classNames,e="mix"==this.settings.mode?this.settings.mixMode.integrated?this.DOM.input.textContent:this.DOM.originalInput.value.trim():this.value.length+this.input.raw.call(this).length;this.toggleClass(t.hasMaxTags,this.value.length>=this.settings.maxTags),this.toggleClass(t.hasNoTags,!this.value.length),this.toggleClass(t.empty,!e)},setOriginalInputValue(t){var e=this.DOM.originalInput;this.settings.mixMode.integrated||(e.value=t,e.tagifyValue=e.value,this.setPersistedData(t,"value"))},update(t){var e=this.getInputValue();this.setOriginalInputValue(e),this.postUpdate(),(t||{}).withoutChangeEvent||this.state.blockChangeEvent||this.triggerChangeEvent()},getInputValue(){var t=this.getCleanValue();return"mix"==this.settings.mode?this.getMixedTagsAsString(t):t.length?this.settings.originalInputValueFormat?this.settings.originalInputValueFormat(t):JSON.stringify(t):""},getCleanValue(t){return o(t||this.value,this.dataProps)},getMixedTagsAsString(){var t="",e=this,n=this.settings.mixTagsInterpolator;return function r(o){o.childNodes.forEach((o=>{if(1==o.nodeType){const a=e.tagData(o);if("BR"==o.tagName&&(t+="\r\n"),o.getAttribute("style")||["B","I","U"].includes(o.tagName))t+=o.textContent;else if("DIV"==o.tagName||"P"==o.tagName)t+="\r\n",r(o);else if(g.call(e,o)&&a){if(a.__removed)return;t+=n[0]+JSON.stringify(i(a,e.dataProps))+n[1]}}else t+=o.textContent}))}(this.DOM.input),t}},_.prototype.removeTag=_.prototype.removeTags,_}()},9733:t=>{"use strict";function e(){return null}function n(){return e}e.isRequired=e,t.exports={and:n,between:n,booleanSome:n,childrenHavePropXorChildren:n,childrenOf:n,childrenOfType:n,childrenSequenceOf:n,componentWithName:n,disallowedIf:n,elementType:n,empty:n,explicitNull:n,forbidExtraProps:Object,integer:n,keysOf:n,mutuallyExclusiveProps:n,mutuallyExclusiveTrueProps:n,nChildren:n,nonNegativeInteger:e,nonNegativeNumber:n,numericString:n,object:n,or:n,predicate:n,range:n,ref:n,requiredBy:n,restrictedProp:n,sequenceOf:n,shape:n,stringEndsWith:n,stringStartsWith:n,uniqueArray:n,uniqueArrayOf:n,valuesOf:n,withShape:n}},8341:(t,e,n)=>{t.exports=n(9733)},5812:(t,e,n)=>{"use strict";n(8770);function r(t,e){for(var n=0;n1?e-1:0),r=1;r=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function _(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function C(t,e){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1],n="object"===N(t)&&Object.keys(t).indexOf("desktop")>-1?w().clone(t):{desktop:w().clone(t),tablet:sg,mobile:sg};return e&&(n.tablet===sg&&(n.tablet=w().clone(n.desktop)),n.mobile===sg&&(n.mobile=w().clone(n.tablet))),n},M=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&P(t,e)}(i,t);var e,n,r,o=E(i);function i(){var t;_(this,i);for(var e=arguments.length,n=new Array(e),r=0;r1?e-1:0),o=1;o1?n-1:0),a=1;at.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1})),At(Tt(t),"getAllowedDecimalPlaces",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=t.props.options.decimals;if(t.props.options.units){var r=t.props.options.units.find((function(n){return n.unit===(e||t.getCurrentUnit())}));r&&(n=r.decimals)}return 0===n||n?n:0})),At(Tt(t),"withDefault",(function(e,n){return t.props.options.units&&t.props.options.units.find((function(t){return t.unit===e}))?e:e||n})),At(Tt(t),"getCurrentUnit",(function(){var e=t.props.options.units?t.props.options.units[0].unit:!1===t.props.options.defaultUnit?"":t.props.options.defaultUnit||"px";return"NaN"===t.props.value||""===t.props.value||void 0===t.props.value?e:t.props.options.units?t.withDefault(t.props.value.toString().replace(/[0-9]/g,"").replace(/\-/g,"").replace(/\./g,""),t.props.options.units[0].unit):e})),At(Tt(t),"getMax",(function(){if(t.props.options.units){var e=t.props.options.units.find((function(e){return e.unit===t.getCurrentUnit()}));return e?e.max:100}return t.props.options.max||100})),At(Tt(t),"getMin",(function(){if(t.props.options.units){var e=t.props.options.units.find((function(e){return e.unit===t.getCurrentUnit()}));return e?e.min:0}return t.props.options.min||0})),At(Tt(t),"getNumericValue",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.forPosition,r=void 0!==n&&n,o=parseFloat(t.props.value,10);if(0===o)return o;if(!o){if(t.props.options.defaultPosition&&"center"===t.props.options.defaultPosition&&r){var i=parseFloat(t.getMin(),10),a=parseFloat(t.getMax(),10);return(a-i)/2+i}return""}return o})),At(Tt(t),"handleBlur",(function(){if("LOTTA_CSS_SKIP_RULE"===t.props.options.default){if("LOTTA_CSS_SKIP_RULE"===t.props.value)return;if(""===t.getNumericValue())return void t.props.onChange("LOTTA_CSS_SKIP_RULE")}if(""!==t.props.value.toString().trim()){var e="".concat(yg(parseFloat(t.getMin(),10),parseFloat(t.getMax(),10),parseFloat(t.getNumericValue(),10))).concat(t.getCurrentUnit());String(t.props.value)!==e&&t.props.onChange(e)}else t.props.onChange("")})),At(Tt(t),"handleChange",(function(e){"LOTTA_CSS_SKIP_RULE"!==t.props.options.default||""!==e.toString().trim()?""!==e.toString().trim()?t.props.onChange("".concat(gg(parseFloat(t.getMax(),10),parseFloat(e||t.getMin()))).concat(t.getCurrentUnit())):t.props.onChange(""):t.props.onChange("LOTTA_CSS_SKIP_RULE")})),At(Tt(t),"handleMove",(function(e){t.state.isDragging&&t.computeAndSendNewValue(e)})),At(Tt(t),"handleUp",(function(){t.setState({isDragging:!1}),t.detachEvents()})),t}return e=a,n=[{key:"computeAndSendNewValue",value:function(t){var e=t.pageX,n=(t.shiftKey,this.el.current.getBoundingClientRect()),r=n.left,o=n.width,i=e-r-pageXOffset;this.props.onChange("".concat(mg(wt()([0,o],[parseFloat(this.getMin(),10),parseFloat(this.getMax(),10)],!0)(document.body.classList.contains("rtl")?o-i:i),this.getAllowedDecimalPlaces())).concat(this.getCurrentUnit()))}},{key:"attachEvents",value:function(){document.documentElement.addEventListener("mousemove",this.handleMove,!0),document.documentElement.addEventListener("mouseup",this.handleUp,!0)}},{key:"detachEvents",value:function(){document.documentElement.removeEventListener("mousemove",this.handleMove,!0),document.documentElement.removeEventListener("mouseup",this.handleUp,!0)}},{key:"render",value:function(){var t,e=this,n=wt()([parseFloat(this.getMin(),10),parseFloat(this.getMax(),10)],[0,100],!1)(yg(parseFloat(this.getMin(),10),parseFloat(this.getMax(),10),0===parseFloat(this.getNumericValue({forPosition:!0}),10)?0:parseFloat(this.getNumericValue({forPosition:!0}),10)?parseFloat(this.getNumericValue({forPosition:!0}),10):parseFloat(this.getMin(),10)));return(0,c.jsxs)("div",{className:"lotta-slider-wrap",children:[(0,c.jsxs)("div",xt(xt({className:"lotta-slider",onMouseDown:function(){e.attachEvents(),e.setState({isDragging:!0})},onClick:function(t){return e.computeAndSendNewValue(t)},ref:this.el},this.props.options.steps?At({},"data-steps",""):{}),{},{children:[(0,c.jsx)("div",{style:{width:"".concat(n,"%")}}),(0,c.jsx)("span",{tabIndex:"0",onKeyDown:function(t){var n=e.getNumericValue(),r=1/Math.pow(10,e.getAllowedDecimalPlaces()),o=t.shiftKey?10*r:r;38!==t.keyCode&&39!==t.keyCode||(t.preventDefault(),e.props.onChange("".concat(yg(parseFloat(e.getMin(),10),parseFloat(e.getMax(),10),n+o)).concat(e.getCurrentUnit()))),40!==t.keyCode&&37!==t.keyCode||(t.preventDefault(),e.props.onChange("".concat(yg(parseFloat(e.getMin(),10),parseFloat(e.getMax(),10),n-o)).concat(e.getCurrentUnit())))},style:{"--position":"".concat(n,"%")}})]})),!this.props.options.hideInput&&(0,c.jsxs)("div",{className:s("lotta-slider-input",(t={},At(t,"lotta-value-changer",!0),At(t,"no-unit-list",!this.hasUnitsList()),At(t,"no-unit",!(this.hasUnitsList()||!1!==this.props.options.defaultUnit)),At(t,"active",this.state.isUnitsListOpen),t)),children:[(0,c.jsx)("input",xt(xt({type:"number"},this.props.options.ref?{ref:this.props.options.ref}:{}),{},{step:1/Math.pow(10,this.getAllowedDecimalPlaces()),value:this.getNumericValue(),onBlur:function(){return e.handleBlur()},onChange:function(t){var n=t.target.value;return e.handleChange(n)}})),(0,c.jsx)("span",{className:"lotta-value-divider"}),!this.hasUnitsList()&&!1!==this.props.options.defaultUnit&&(0,c.jsx)("span",{className:"lotta-current-value",children:this.withDefault(this.getCurrentUnit(),this.props.options.defaultUnit||"px")}),this.hasUnitsList()&&(0,c.jsx)(vt,{units:this.props.options.units,onChange:this.props.onChange,isOpen:this.state.isUnitsListOpen,toggleOpen:function(){return e.setState({isUnitsListOpen:!e.state.isUnitsListOpen})},currentUnit:this.getCurrentUnit(),getNumericValue:this.getNumericValue,getAllowedDecimalPlaces:this.getAllowedDecimalPlaces})]})]})}}],n&&_t(e.prototype,n),r&&_t(e,r),Object.defineProperty(e,"prototype",{writable:!1}),a}(i.Component);const Nt=Dt;function It(t){return It="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},It(t)}function Mt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Rt(t){for(var e=1;eye(t,re);let ie=be();oe.write=t=>ye(t,ie);let ae=be();oe.onStart=t=>ye(t,ae);let se=be();oe.onFrame=t=>ye(t,se);let ce=be();oe.onFinish=t=>ye(t,ce);let le=[];oe.setTimeout=(t,e)=>{let n=oe.now()+e,r=()=>{let t=le.findIndex((t=>t.cancel==r));~t&&le.splice(t,1),de-=~t?1:0},o={time:n,handler:t,cancel:r};return le.splice(ue(n),0,o),de+=1,ge(),o};let ue=t=>~(~le.findIndex((e=>e.time>t))||~le.length);oe.cancel=t=>{ae.delete(t),se.delete(t),re.delete(t),ie.delete(t),ce.delete(t)},oe.sync=t=>{he=!0,oe.batchedUpdates(t),he=!1},oe.throttle=t=>{let e;function n(){try{t(...e)}finally{e=null}}function r(...t){e=t,oe.onStart(n)}return r.handler=t,r.cancel=()=>{ae.delete(n),e=null},r};let fe="undefined"!=typeof window?window.requestAnimationFrame:()=>{};oe.use=t=>fe=t,oe.now="undefined"!=typeof performance?()=>performance.now():Date.now,oe.batchedUpdates=t=>t(),oe.catch=console.error,oe.frameLoop="always",oe.advance=()=>{"demand"!==oe.frameLoop?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):ve()};let pe=-1,de=0,he=!1;function ye(t,e){he?(e.delete(t),t(0)):(e.add(t),ge())}function ge(){pe<0&&(pe=0,"demand"!==oe.frameLoop&&fe(me))}function me(){~pe&&(fe(me),oe.batchedUpdates(ve))}function ve(){let t=pe;pe=oe.now();let e=ue(pe);e&&(we(le.splice(0,e),(t=>t.handler())),de-=e),ae.flush(),re.flush(t?Math.min(64,pe-t):16.667),se.flush(),ie.flush(),ce.flush(),de||(pe=-1)}function be(){let t=new Set,e=t;return{add(n){de+=e!=t||t.has(n)?0:1,t.add(n)},delete:n=>(de-=e==t&&t.has(n)?1:0,t.delete(n)),flush(n){e.size&&(t=new Set,de-=e.size,we(e,(e=>e(n)&&t.add(e))),de+=t.size,e=t)}}}function we(t,e){t.forEach((t=>{try{e(t)}catch(t){oe.catch(t)}}))}var Oe=n(7363);function je(){}const xe={arr:Array.isArray,obj:t=>!!t&&"Object"===t.constructor.name,fun:t=>"function"==typeof t,str:t=>"string"==typeof t,num:t=>"number"==typeof t,und:t=>void 0===t};function Se(t,e){if(xe.arr(t)){if(!xe.arr(e)||t.length!==e.length)return!1;for(let n=0;nt.forEach(e);function Ce(t,e,n){if(xe.arr(t))for(let r=0;rxe.und(t)?[]:xe.arr(t)?t:[t];function Ee(t,e){if(t.size){const n=Array.from(t);t.clear(),_e(n,e)}}const Te=(t,...e)=>Ee(t,(t=>t(...e))),ke=()=>"undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent);let Ae,De,Ne=null,Ie=!1,Me=je;var Re=Object.freeze({__proto__:null,get createStringInterpolator(){return Ae},get to(){return De},get colors(){return Ne},get skipAnimation(){return Ie},get willAdvance(){return Me},assign:t=>{t.to&&(De=t.to),t.now&&(oe.now=t.now),void 0!==t.colors&&(Ne=t.colors),null!=t.skipAnimation&&(Ie=t.skipAnimation),t.createStringInterpolator&&(Ae=t.createStringInterpolator),t.requestAnimationFrame&&oe.use(t.requestAnimationFrame),t.batchedUpdates&&(oe.batchedUpdates=t.batchedUpdates),t.willAdvance&&(Me=t.willAdvance),t.frameLoop&&(oe.frameLoop=t.frameLoop)}});const Le=new Set;let ze=[],Fe=[],Be=0;const Ue={get idle(){return!Le.size&&!ze.length},start(t){Be>t.priority?(Le.add(t),oe.onStart(Ve)):($e(t),oe(He))},advance:He,sort(t){if(Be)oe.onFrame((()=>Ue.sort(t)));else{const e=ze.indexOf(t);~e&&(ze.splice(e,1),We(t))}},clear(){ze=[],Le.clear()}};function Ve(){Le.forEach($e),Le.clear(),oe(He)}function $e(t){ze.includes(t)||We(t)}function We(t){ze.splice(function(t,e){const n=t.findIndex(e);return n<0?t.length:n}(ze,(e=>e.priority>t.priority)),0,t)}function He(t){const e=Fe;for(let n=0;n0}const qe="[-+]?\\d*\\.?\\d+",Xe=qe+"%";function Ke(...t){return"\\(\\s*("+t.join(")\\s*,\\s*(")+")\\s*\\)"}const Ye=new RegExp("rgb"+Ke(qe,qe,qe)),Ge=new RegExp("rgba"+Ke(qe,qe,qe,qe)),Qe=new RegExp("hsl"+Ke(qe,Xe,Xe)),Je=new RegExp("hsla"+Ke(qe,Xe,Xe,qe)),Ze=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,tn=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,en=/^#([0-9a-fA-F]{6})$/,nn=/^#([0-9a-fA-F]{8})$/;function rn(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function on(t,e,n){const r=n<.5?n*(1+e):n+e-n*e,o=2*n-r,i=rn(o,r,t+1/3),a=rn(o,r,t),s=rn(o,r,t-1/3);return Math.round(255*i)<<24|Math.round(255*a)<<16|Math.round(255*s)<<8}function an(t){const e=parseInt(t,10);return e<0?0:e>255?255:e}function sn(t){return(parseFloat(t)%360+360)%360/360}function cn(t){const e=parseFloat(t);return e<0?0:e>1?255:Math.round(255*e)}function ln(t){const e=parseFloat(t);return e<0?0:e>100?1:e/100}function un(t){let e=function(t){let e;return"number"==typeof t?t>>>0===t&&t>=0&&t<=4294967295?t:null:(e=en.exec(t))?parseInt(e[1]+"ff",16)>>>0:Ne&&void 0!==Ne[t]?Ne[t]:(e=Ye.exec(t))?(an(e[1])<<24|an(e[2])<<16|an(e[3])<<8|255)>>>0:(e=Ge.exec(t))?(an(e[1])<<24|an(e[2])<<16|an(e[3])<<8|cn(e[4]))>>>0:(e=Ze.exec(t))?parseInt(e[1]+e[1]+e[2]+e[2]+e[3]+e[3]+"ff",16)>>>0:(e=nn.exec(t))?parseInt(e[1],16)>>>0:(e=tn.exec(t))?parseInt(e[1]+e[1]+e[2]+e[2]+e[3]+e[3]+e[4]+e[4],16)>>>0:(e=Qe.exec(t))?(255|on(sn(e[1]),ln(e[2]),ln(e[3])))>>>0:(e=Je.exec(t))?(on(sn(e[1]),ln(e[2]),ln(e[3]))|cn(e[4]))>>>0:null}(t);return null===e?t:(e=e||0,`rgba(${(4278190080&e)>>>24}, ${(16711680&e)>>>16}, ${(65280&e)>>>8}, ${(255&e)/255})`)}const fn=(t,e,n)=>{if(xe.fun(t))return t;if(xe.arr(t))return fn({range:t,output:e,extrapolate:n});if(xe.str(t.output[0]))return Ae(t);const r=t,o=r.output,i=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",s=r.extrapolateRight||r.extrapolate||"extend",c=r.easing||(t=>t);return t=>{const e=function(t,e){for(var n=1;n=t);++n);return n-1}(t,i);return function(t,e,n,r,o,i,a,s,c){let l=c?c(t):t;if(ln){if("identity"===s)return l;"clamp"===s&&(l=n)}if(r===o)return r;if(e===n)return t<=e?r:o;e===-1/0?l=-l:n===1/0?l-=e:l=(l-e)/(n-e);l=i(l),r===-1/0?l=-l:o===1/0?l+=r:l=l*(o-r)+r;return l}(t,i[e],i[e+1],o[e],o[e+1],c,a,s,r.map)}};function pn(){return pn=Object.assign||function(t){for(var e=1;eBoolean(t&&t[dn]),gn=t=>t&&t[dn]?t[dn]():t,mn=t=>t[hn]||null;function vn(t,e){let n=t[hn];n&&n.forEach((t=>{!function(t,e){t.eventObserved?t.eventObserved(e):t(e)}(t,e)}))}class bn{constructor(t){if(this[dn]=void 0,this[hn]=void 0,!t&&!(t=this.get))throw Error("Unknown getter");wn(this,t)}}const wn=(t,e)=>xn(t,dn,e);function On(t,e){if(t[dn]){let n=t[hn];n||xn(t,hn,n=new Set),n.has(e)||(n.add(e),t.observerAdded&&t.observerAdded(n.size,e))}return e}function jn(t,e){let n=t[hn];if(n&&n.has(e)){const r=n.size-1;r?n.delete(e):t[hn]=null,t.observerRemoved&&t.observerRemoved(r,e)}}const xn=(t,e,n)=>Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0}),Sn=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_n=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,Cn=new RegExp(`(${Sn.source})(%|[a-z]+)`,"i"),Pn=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,En=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,Tn=t=>{const[e,n]=kn(t);if(!e||ke())return t;const r=window.getComputedStyle(document.documentElement).getPropertyValue(e);if(r)return r.trim();if(n&&n.startsWith("--")){const e=window.getComputedStyle(document.documentElement).getPropertyValue(n);return e||t}return n&&En.test(n)?Tn(n):n||t},kn=t=>{const e=En.exec(t);if(!e)return[,];const[,n,r]=e;return[n,r]};let An;const Dn=(t,e,n,r,o)=>`rgba(${Math.round(e)}, ${Math.round(n)}, ${Math.round(r)}, ${o})`,Nn=t=>{An||(An=Ne?new RegExp(`(${Object.keys(Ne).join("|")})(?!\\w)`,"g"):/^\b$/);const e=t.output.map((t=>gn(t).replace(En,Tn).replace(_n,un).replace(An,un))),n=e.map((t=>t.match(Sn).map(Number))),r=n[0].map(((t,e)=>n.map((t=>{if(!(e in t))throw Error('The arity of each "output" value must be equal');return t[e]})))).map((e=>fn(pn({},t,{output:e}))));return t=>{var n;const o=!Cn.test(e[0])&&(null==(n=e.find((t=>Cn.test(t))))?void 0:n.replace(Sn,""));let i=0;return e[0].replace(Sn,(()=>`${r[i++](t)}${o||""}`)).replace(Pn,Dn)}},In="react-spring: ",Mn=t=>{const e=t;let n=!1;if("function"!=typeof e)throw new TypeError(`${In}once requires a function parameter`);return(...t)=>{n||(e(...t),n=!0)}},Rn=Mn(console.warn);const Ln=Mn(console.warn);function zn(t){return xe.str(t)&&("#"==t[0]||/\d/.test(t)||!ke()&&En.test(t)||t in(Ne||{}))}const Fn="undefined"!=typeof window&&window.document&&window.document.createElement?Oe.useLayoutEffect:Oe.useEffect;function Bn(){const t=(0,Oe.useState)()[1],e=(()=>{const t=(0,Oe.useRef)(!1);return Fn((()=>(t.current=!0,()=>{t.current=!1})),[]),t})();return()=>{e.current&&t(Math.random())}}const Un=t=>(0,Oe.useEffect)(t,Vn),Vn=[];function $n(t){const e=(0,Oe.useRef)();return(0,Oe.useEffect)((()=>{e.current=t})),e.current}const Wn=Symbol.for("Animated:node"),Hn=t=>t&&t[Wn],qn=(t,e)=>((t,e,n)=>Object.defineProperty(t,e,{value:n,writable:!0,configurable:!0}))(t,Wn,e),Xn=t=>t&&t[Wn]&&t[Wn].getPayload();class Kn{constructor(){this.payload=void 0,qn(this,this)}getPayload(){return this.payload||[]}}class Yn extends Kn{constructor(t){super(),this.done=!0,this.elapsedTime=void 0,this.lastPosition=void 0,this.lastVelocity=void 0,this.v0=void 0,this.durationProgress=0,this._value=t,xe.num(this._value)&&(this.lastPosition=this._value)}static create(t){return new Yn(t)}getPayload(){return[this]}getValue(){return this._value}setValue(t,e){return xe.num(t)&&(this.lastPosition=t,e&&(t=Math.round(t/e)*e,this.done&&(this.lastPosition=t))),this._value!==t&&(this._value=t,!0)}reset(){const{done:t}=this;this.done=!1,xe.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,t&&(this.lastVelocity=null),this.v0=null)}}class Gn extends Yn{constructor(t){super(0),this._string=null,this._toString=void 0,this._toString=fn({output:[t,t]})}static create(t){return new Gn(t)}getValue(){let t=this._string;return null==t?this._string=this._toString(this._value):t}setValue(t){if(xe.str(t)){if(t==this._string)return!1;this._string=t,this._value=1}else{if(!super.setValue(t))return!1;this._string=null}return!0}reset(t){t&&(this._toString=fn({output:[this.getValue(),t]})),this._value=0,super.reset()}}const Qn={dependencies:null};class Jn extends Kn{constructor(t){super(),this.source=t,this.setValue(t)}getValue(t){const e={};return Ce(this.source,((n,r)=>{(t=>!!t&&t[Wn]===t)(n)?e[r]=n.getValue(t):yn(n)?e[r]=gn(n):t||(e[r]=n)})),e}setValue(t){this.source=t,this.payload=this._makePayload(t)}reset(){this.payload&&_e(this.payload,(t=>t.reset()))}_makePayload(t){if(t){const e=new Set;return Ce(t,this._addToPayload,e),Array.from(e)}}_addToPayload(t){Qn.dependencies&&yn(t)&&Qn.dependencies.add(t);const e=Xn(t);e&&_e(e,(t=>this.add(t)))}}class Zn extends Jn{constructor(t){super(t)}static create(t){return new Zn(t)}getValue(){return this.source.map((t=>t.getValue()))}setValue(t){const e=this.getPayload();return t.length==e.length?e.map(((e,n)=>e.setValue(t[n]))).some(Boolean):(super.setValue(t.map(tr)),!0)}}function tr(t){return(zn(t)?Gn:Yn).create(t)}function er(t){const e=Hn(t);return e?e.constructor:xe.arr(t)?Zn:zn(t)?Gn:Yn}function nr(){return nr=Object.assign||function(t){for(var e=1;e{const n=!xe.fun(t)||t.prototype&&t.prototype.isReactComponent;return(0,Oe.forwardRef)(((r,o)=>{const i=(0,Oe.useRef)(null),a=n&&(0,Oe.useCallback)((t=>{i.current=function(t,e){t&&(xe.fun(t)?t(e):t.current=e);return e}(o,t)}),[o]),[s,c]=function(t,e){const n=new Set;Qn.dependencies=n,t.style&&(t=nr({},t,{style:e.createAnimatedStyle(t.style)}));return t=new Jn(t),Qn.dependencies=null,[t,n]}(r,e),l=Bn(),u=()=>{const t=i.current;if(n&&!t)return;!1===(!!t&&e.applyAnimatedValues(t,s.getValue(!0)))&&l()},f=new or(u,c),p=(0,Oe.useRef)();Fn((()=>(p.current=f,_e(c,(t=>On(t,f))),()=>{p.current&&(_e(p.current.deps,(t=>jn(t,p.current))),oe.cancel(p.current.update))}))),(0,Oe.useEffect)(u,[]),Un((()=>()=>{const t=p.current;_e(t.deps,(e=>jn(e,t)))}));const d=e.getComponentProps(s.getValue());return Oe.createElement(t,nr({},d,{ref:a}))}))};class or{constructor(t,e){this.update=t,this.deps=e}eventObserved(t){"change"==t.type&&oe.write(this.update)}}const ir=Symbol.for("AnimatedComponent"),ar=t=>xe.str(t)?t:t&&xe.str(t.displayName)?t.displayName:xe.fun(t)&&t.name||null;function sr(){return sr=Object.assign||function(t){for(var e=1;e!0===t||!!(e&&t&&(xe.fun(t)?t(e):Pe(t).includes(e))),ur=(t,e)=>xe.obj(t)?e&&t[e]:t,fr=(t,e)=>!0===t.default?t[e]:t.default?t.default[e]:void 0,pr=t=>t,dr=(t,e=pr)=>{let n=hr;t.default&&!0!==t.default&&(t=t.default,n=Object.keys(t));const r={};for(const o of n){const n=e(t[o],o);xe.und(n)||(r[o]=n)}return r},hr=["config","onProps","onStart","onChange","onPause","onResume","onRest"],yr={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function gr(t){const e=function(t){const e={};let n=0;if(Ce(t,((t,r)=>{yr[r]||(e[r]=t,n++)})),n)return e}(t);if(e){const n={to:e};return Ce(t,((t,r)=>r in e||(n[r]=t))),n}return sr({},t)}function mr(t){return t=gn(t),xe.arr(t)?t.map(mr):zn(t)?Re.createStringInterpolator({range:[0,1],output:[t,t]})(1):t}function vr(t){for(const e in t)return!0;return!1}function br(t){return xe.fun(t)||xe.arr(t)&&xe.obj(t[0])}function wr(t,e){var n;null==(n=t.ref)||n.delete(t),null==e||e.delete(t)}function Or(t,e){var n;e&&t.ref!==e&&(null==(n=t.ref)||n.delete(t),e.add(t),t.ref=e)}const jr=1.70158,xr=1.525*jr,Sr=jr+1,_r=2*Math.PI/3,Cr=2*Math.PI/4.5,Pr=t=>{const e=7.5625,n=2.75;return t<1/n?e*t*t:t<2/n?e*(t-=1.5/n)*t+.75:t<2.5/n?e*(t-=2.25/n)*t+.9375:e*(t-=2.625/n)*t+.984375},Er=sr({},{tension:170,friction:26},{mass:1,damping:1,easing:{linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>1-(1-t)*(1-t),easeInOutQuad:t=>t<.5?2*t*t:1-Math.pow(-2*t+2,2)/2,easeInCubic:t=>t*t*t,easeOutCubic:t=>1-Math.pow(1-t,3),easeInOutCubic:t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,easeInQuart:t=>t*t*t*t,easeOutQuart:t=>1-Math.pow(1-t,4),easeInOutQuart:t=>t<.5?8*t*t*t*t:1-Math.pow(-2*t+2,4)/2,easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>1-Math.pow(1-t,5),easeInOutQuint:t=>t<.5?16*t*t*t*t*t:1-Math.pow(-2*t+2,5)/2,easeInSine:t=>1-Math.cos(t*Math.PI/2),easeOutSine:t=>Math.sin(t*Math.PI/2),easeInOutSine:t=>-(Math.cos(Math.PI*t)-1)/2,easeInExpo:t=>0===t?0:Math.pow(2,10*t-10),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>0===t?0:1===t?1:t<.5?Math.pow(2,20*t-10)/2:(2-Math.pow(2,-20*t+10))/2,easeInCirc:t=>1-Math.sqrt(1-Math.pow(t,2)),easeOutCirc:t=>Math.sqrt(1-Math.pow(t-1,2)),easeInOutCirc:t=>t<.5?(1-Math.sqrt(1-Math.pow(2*t,2)))/2:(Math.sqrt(1-Math.pow(-2*t+2,2))+1)/2,easeInBack:t=>Sr*t*t*t-jr*t*t,easeOutBack:t=>1+Sr*Math.pow(t-1,3)+jr*Math.pow(t-1,2),easeInOutBack:t=>t<.5?Math.pow(2*t,2)*(7.189819*t-xr)/2:(Math.pow(2*t-2,2)*((xr+1)*(2*t-2)+xr)+2)/2,easeInElastic:t=>0===t?0:1===t?1:-Math.pow(2,10*t-10)*Math.sin((10*t-10.75)*_r),easeOutElastic:t=>0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin((10*t-.75)*_r)+1,easeInOutElastic:t=>0===t?0:1===t?1:t<.5?-Math.pow(2,20*t-10)*Math.sin((20*t-11.125)*Cr)/2:Math.pow(2,-20*t+10)*Math.sin((20*t-11.125)*Cr)/2+1,easeInBounce:t=>1-Pr(1-t),easeOutBounce:Pr,easeInOutBounce:t=>t<.5?(1-Pr(1-2*t))/2:(1+Pr(2*t-1))/2}.linear,clamp:!1});class Tr{constructor(){this.tension=void 0,this.friction=void 0,this.frequency=void 0,this.damping=void 0,this.mass=void 0,this.velocity=0,this.restVelocity=void 0,this.precision=void 0,this.progress=void 0,this.duration=void 0,this.easing=void 0,this.clamp=void 0,this.bounce=void 0,this.decay=void 0,this.round=void 0,Object.assign(this,Er)}}function kr(t,e){if(xe.und(e.decay)){const n=!xe.und(e.tension)||!xe.und(e.friction);!n&&xe.und(e.frequency)&&xe.und(e.damping)&&xe.und(e.mass)||(t.duration=void 0,t.decay=void 0),n&&(t.frequency=void 0)}else t.duration=void 0}const Ar=[];class Dr{constructor(){this.changed=!1,this.values=Ar,this.toValues=null,this.fromValues=Ar,this.to=void 0,this.from=void 0,this.config=new Tr,this.immediate=!1}}function Nr(t,{key:e,props:n,defaultProps:r,state:o,actions:i}){return new Promise(((a,s)=>{var c;let l,u,f=lr(null!=(c=n.cancel)?c:null==r?void 0:r.cancel,e);if(f)h();else{xe.und(n.pause)||(o.paused=lr(n.pause,e));let t=null==r?void 0:r.pause;!0!==t&&(t=o.paused||lr(t,e)),l=cr(n.delay||0,e),t?(o.resumeQueue.add(d),i.pause()):(i.resume(),d())}function p(){o.resumeQueue.add(d),o.timeouts.delete(u),u.cancel(),l=u.time-oe.now()}function d(){l>0&&!Re.skipAnimation?(o.delayed=!0,u=oe.setTimeout(h,l),o.pauseQueue.add(p),o.timeouts.add(u)):h()}function h(){o.delayed&&(o.delayed=!1),o.pauseQueue.delete(p),o.timeouts.delete(u),t<=(o.cancelId||0)&&(f=!0);try{i.start(sr({},n,{callId:t,cancel:f}),a)}catch(t){s(t)}}}))}const Ir=(t,e)=>1==e.length?e[0]:e.some((t=>t.cancelled))?Lr(t.get()):e.every((t=>t.noop))?Mr(t.get()):Rr(t.get(),e.every((t=>t.finished))),Mr=t=>({value:t,noop:!0,finished:!0,cancelled:!1}),Rr=(t,e,n=!1)=>({value:t,finished:e,cancelled:n}),Lr=t=>({value:t,cancelled:!0,finished:!1});function zr(t,e,n,r){const{callId:o,parentId:i,onRest:a}=e,{asyncTo:s,promise:c}=n;return i||t!==s||e.reset?n.promise=(async()=>{n.asyncId=o,n.asyncTo=t;const l=dr(e,((t,e)=>"onRest"===e?void 0:t));let u,f;const p=new Promise(((t,e)=>(u=t,f=e))),d=t=>{const e=o<=(n.cancelId||0)&&Lr(r)||o!==n.asyncId&&Rr(r,!1);if(e)throw t.result=e,f(t),t},h=(t,e)=>{const i=new Br,a=new Ur;return(async()=>{if(Re.skipAnimation)throw Fr(n),a.result=Rr(r,!1),f(a),a;d(i);const s=xe.obj(t)?sr({},t):sr({},e,{to:t});s.parentId=o,Ce(l,((t,e)=>{xe.und(s[e])&&(s[e]=t)}));const c=await r.start(s);return d(i),n.paused&&await new Promise((t=>{n.resumeQueue.add(t)})),c})()};let y;if(Re.skipAnimation)return Fr(n),Rr(r,!1);try{let e;e=xe.arr(t)?(async t=>{for(const e of t)await h(e)})(t):Promise.resolve(t(h,r.stop.bind(r))),await Promise.all([e.then(u),p]),y=Rr(r.get(),!0,!1)}catch(t){if(t instanceof Br)y=t.result;else{if(!(t instanceof Ur))throw t;y=t.result}}finally{o==n.asyncId&&(n.asyncId=i,n.asyncTo=i?s:void 0,n.promise=i?c:void 0)}return xe.fun(a)&&oe.batchedUpdates((()=>{a(y,r,r.item)})),y})():c}function Fr(t,e){Ee(t.timeouts,(t=>t.cancel())),t.pauseQueue.clear(),t.resumeQueue.clear(),t.asyncId=t.asyncTo=t.promise=void 0,e&&(t.cancelId=e)}class Br extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise."),this.result=void 0}}class Ur extends Error{constructor(){super("SkipAnimationSignal"),this.result=void 0}}const Vr=t=>t instanceof Wr;let $r=1;class Wr extends bn{constructor(...t){super(...t),this.id=$r++,this.key=void 0,this._priority=0}get priority(){return this._priority}set priority(t){this._priority!=t&&(this._priority=t,this._onPriorityChange(t))}get(){const t=Hn(this);return t&&t.getValue()}to(...t){return Re.to(this,t)}interpolate(...t){return Rn(`${In}The "interpolate" function is deprecated in v9 (use "to" instead)`),Re.to(this,t)}toJSON(){return this.get()}observerAdded(t){1==t&&this._attach()}observerRemoved(t){0==t&&this._detach()}_attach(){}_detach(){}_onChange(t,e=!1){vn(this,{type:"change",parent:this,value:t,idle:e})}_onPriorityChange(t){this.idle||Ue.sort(this),vn(this,{type:"priority",parent:this,priority:t})}}const Hr=Symbol.for("SpringPhase"),qr=t=>(1&t[Hr])>0,Xr=t=>(2&t[Hr])>0,Kr=t=>(4&t[Hr])>0,Yr=(t,e)=>e?t[Hr]|=3:t[Hr]&=-3,Gr=(t,e)=>e?t[Hr]|=4:t[Hr]&=-5;class Qr extends Wr{constructor(t,e){if(super(),this.key=void 0,this.animation=new Dr,this.queue=void 0,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!xe.und(t)||!xe.und(e)){const n=xe.obj(t)?sr({},t):sr({},e,{from:t});xe.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(Xr(this)||this._state.asyncTo)||Kr(this)}get goal(){return gn(this.animation.to)}get velocity(){const t=Hn(this);return t instanceof Yn?t.lastVelocity||0:t.getPayload().map((t=>t.lastVelocity||0))}get hasAnimated(){return qr(this)}get isAnimating(){return Xr(this)}get isPaused(){return Kr(this)}get isDelayed(){return this._state.delayed}advance(t){let e=!0,n=!1;const r=this.animation;let{config:o,toValues:i}=r;const a=Xn(r.to);!a&&yn(r.to)&&(i=Pe(gn(r.to))),r.values.forEach(((s,c)=>{if(s.done)return;const l=s.constructor==Gn?1:a?a[c].lastPosition:i[c];let u=r.immediate,f=l;if(!u){if(f=s.lastPosition,o.tension<=0)return void(s.done=!0);let e=s.elapsedTime+=t;const n=r.fromValues[c],i=null!=s.v0?s.v0:s.v0=xe.arr(o.velocity)?o.velocity[c]:o.velocity;let a;if(xe.und(o.duration))if(o.decay){const t=!0===o.decay?.998:o.decay,r=Math.exp(-(1-t)*e);f=n+i/(1-t)*(1-r),u=Math.abs(s.lastPosition-f)<.1,a=i*r}else{a=null==s.lastVelocity?i:s.lastVelocity;const e=o.precision||(n==l?.005:Math.min(1,.001*Math.abs(l-n))),r=o.restVelocity||e/10,c=o.clamp?0:o.bounce,p=!xe.und(c),d=n==l?s.v0>0:nr,h||(u=Math.abs(l-f)<=e,!u));++t){p&&(y=f==l||f>l==d,y&&(a=-a*c,f=l));a+=(1e-6*-o.tension*(f-l)+.001*-o.friction*a)/o.mass*g,f+=a*g}}else{let r=1;o.duration>0&&(this._memoizedDuration!==o.duration&&(this._memoizedDuration=o.duration,s.durationProgress>0&&(s.elapsedTime=o.duration*s.durationProgress,e=s.elapsedTime+=t)),r=(o.progress||0)+e/this._memoizedDuration,r=r>1?1:r<0?0:r,s.durationProgress=r),f=n+o.easing(r)*(l-n),a=(f-s.lastPosition)/t,u=1==r}s.lastVelocity=a,Number.isNaN(f)&&(console.warn("Got NaN while animating:",this),u=!0)}a&&!a[c].done&&(u=!1),u?s.done=!0:e=!1,s.setValue(f,o.round)&&(n=!0)}));const s=Hn(this),c=s.getValue();if(e){const t=gn(r.to);c===t&&!n||o.decay?n&&o.decay&&this._onChange(c):(s.setValue(t),this._onChange(t)),this._stop()}else n&&this._onChange(c)}set(t){return oe.batchedUpdates((()=>{this._stop(),this._focus(t),this._set(t)})),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(Xr(this)){const{to:t,config:e}=this.animation;oe.batchedUpdates((()=>{this._onStart(),e.decay||this._set(t,!1),this._stop()}))}return this}update(t){return(this.queue||(this.queue=[])).push(t),this}start(t,e){let n;return xe.und(t)?(n=this.queue||[],this.queue=[]):n=[xe.obj(t)?t:sr({},e,{to:t})],Promise.all(n.map((t=>this._update(t)))).then((t=>Ir(this,t)))}stop(t){const{to:e}=this.animation;return this._focus(this.get()),Fr(this._state,t&&this._lastCallId),oe.batchedUpdates((()=>this._stop(e,t))),this}reset(){this._update({reset:!0})}eventObserved(t){"change"==t.type?this._start():"priority"==t.type&&(this.priority=t.priority+1)}_prepareNode(t){const e=this.key||"";let{to:n,from:r}=t;n=xe.obj(n)?n[e]:n,(null==n||br(n))&&(n=void 0),r=xe.obj(r)?r[e]:r,null==r&&(r=void 0);const o={to:n,from:r};return qr(this)||(t.reverse&&([n,r]=[r,n]),r=gn(r),xe.und(r)?Hn(this)||this._set(n):this._set(r)),o}_update(t,e){let n=sr({},t);const{key:r,defaultProps:o}=this;n.default&&Object.assign(o,dr(n,((t,e)=>/^on/.test(e)?ur(t,r):t))),ro(this,n,"onProps"),oo(this,"onProps",n,this);const i=this._prepareNode(n);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const a=this._state;return Nr(++this._lastCallId,{key:r,props:n,defaultProps:o,state:a,actions:{pause:()=>{Kr(this)||(Gr(this,!0),Te(a.pauseQueue),oo(this,"onPause",Rr(this,Jr(this,this.animation.to)),this))},resume:()=>{Kr(this)&&(Gr(this,!1),Xr(this)&&this._resume(),Te(a.resumeQueue),oo(this,"onResume",Rr(this,Jr(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then((t=>{if(n.loop&&t.finished&&(!e||!t.noop)){const t=Zr(n);if(t)return this._update(t,!0)}return t}))}_merge(t,e,n){if(e.cancel)return this.stop(!0),n(Lr(this));const r=!xe.und(t.to),o=!xe.und(t.from);if(r||o){if(!(e.callId>this._lastToId))return n(Lr(this));this._lastToId=e.callId}const{key:i,defaultProps:a,animation:s}=this,{to:c,from:l}=s;let{to:u=c,from:f=l}=t;!o||r||e.default&&!xe.und(u)||(u=f),e.reverse&&([u,f]=[f,u]);const p=!Se(f,l);p&&(s.from=f),f=gn(f);const d=!Se(u,c);d&&this._focus(u);const h=br(e.to),{config:y}=s,{decay:g,velocity:m}=y;(r||o)&&(y.velocity=0),e.config&&!h&&function(t,e,n){n&&(kr(n=sr({},n),e),e=sr({},n,e)),kr(t,e),Object.assign(t,e);for(const e in Er)null==t[e]&&(t[e]=Er[e]);let{mass:r,frequency:o,damping:i}=t;xe.und(o)||(o<.01&&(o=.01),i<0&&(i=0),t.tension=Math.pow(2*Math.PI/o,2)*r,t.friction=4*Math.PI*i*r/o)}(y,cr(e.config,i),e.config!==a.config?cr(a.config,i):void 0);let v=Hn(this);if(!v||xe.und(u))return n(Rr(this,!0));const b=xe.und(e.reset)?o&&!e.default:!xe.und(f)&&lr(e.reset,i),w=b?f:this.get(),O=mr(u),j=xe.num(O)||xe.arr(O)||zn(O),x=!h&&(!j||lr(a.immediate||e.immediate,i));if(d){const t=er(u);if(t!==v.constructor){if(!x)throw Error(`Cannot animate between ${v.constructor.name} and ${t.name}, as the "to" prop suggests`);v=this._set(O)}}const S=v.constructor;let _=yn(u),C=!1;if(!_){const t=b||!qr(this)&&p;(d||t)&&(C=Se(mr(w),O),_=!C),(Se(s.immediate,x)||x)&&Se(y.decay,g)&&Se(y.velocity,m)||(_=!0)}if(C&&Xr(this)&&(s.changed&&!b?_=!0:_||this._stop(c)),!h&&((_||yn(c))&&(s.values=v.getPayload(),s.toValues=yn(u)?null:S==Gn?[1]:Pe(O)),s.immediate!=x&&(s.immediate=x,x||b||this._set(c)),_)){const{onRest:t}=s;_e(no,(t=>ro(this,e,t)));const r=Rr(this,Jr(this,c));Te(this._pendingCalls,r),this._pendingCalls.add(n),s.changed&&oe.batchedUpdates((()=>{s.changed=!b,null==t||t(r,this),b?cr(a.onRest,r):null==s.onStart||s.onStart(r,this)}))}b&&this._set(w),h?n(zr(e.to,e,this._state,this)):_?this._start():Xr(this)&&!d?this._pendingCalls.add(n):n(Mr(w))}_focus(t){const e=this.animation;t!==e.to&&(mn(this)&&this._detach(),e.to=t,mn(this)&&this._attach())}_attach(){let t=0;const{to:e}=this.animation;yn(e)&&(On(e,this),Vr(e)&&(t=e.priority+1)),this.priority=t}_detach(){const{to:t}=this.animation;yn(t)&&jn(t,this)}_set(t,e=!0){const n=gn(t);if(!xe.und(n)){const t=Hn(this);if(!t||!Se(n,t.getValue())){const r=er(n);t&&t.constructor==r?t.setValue(n):qn(this,r.create(n)),t&&oe.batchedUpdates((()=>{this._onChange(n,e)}))}}return Hn(this)}_onStart(){const t=this.animation;t.changed||(t.changed=!0,oo(this,"onStart",Rr(this,Jr(this,t.to)),this))}_onChange(t,e){e||(this._onStart(),cr(this.animation.onChange,t,this)),cr(this.defaultProps.onChange,t,this),super._onChange(t,e)}_start(){const t=this.animation;Hn(this).reset(gn(t.to)),t.immediate||(t.fromValues=t.values.map((t=>t.lastPosition))),Xr(this)||(Yr(this,!0),Kr(this)||this._resume())}_resume(){Re.skipAnimation?this.finish():Ue.start(this)}_stop(t,e){if(Xr(this)){Yr(this,!1);const n=this.animation;_e(n.values,(t=>{t.done=!0})),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),vn(this,{type:"idle",parent:this});const r=e?Lr(this.get()):Rr(this.get(),Jr(this,null!=t?t:n.to));Te(this._pendingCalls,r),n.changed&&(n.changed=!1,oo(this,"onRest",r,this))}}}function Jr(t,e){const n=mr(e);return Se(mr(t.get()),n)}function Zr(t,e=t.loop,n=t.to){let r=cr(e);if(r){const o=!0!==r&&gr(r),i=(o||t).reverse,a=!o||o.reset;return to(sr({},t,{loop:e,default:!1,pause:void 0,to:!i||br(n)?n:void 0,from:a?t.from:void 0,reset:a},o))}}function to(t){const{to:e,from:n}=t=gr(t),r=new Set;return xe.obj(e)&&eo(e,r),xe.obj(n)&&eo(n,r),t.keys=r.size?Array.from(r):null,t}function eo(t,e){Ce(t,((t,n)=>null!=t&&e.add(n)))}const no=["onStart","onRest","onChange","onPause","onResume"];function ro(t,e,n){t.animation[n]=e[n]!==fr(e,n)?ur(e[n],t.key):void 0}function oo(t,e,...n){var r,o,i,a;null==(r=(o=t.animation)[e])||r.call(o,...n),null==(i=(a=t.defaultProps)[e])||i.call(a,...n)}const io=["onStart","onChange","onRest"];let ao=1;class so{constructor(t,e){this.id=ao++,this.springs={},this.queue=[],this.ref=void 0,this._flush=void 0,this._initialProps=void 0,this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._item=void 0,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),e&&(this._flush=e),t&&this.start(sr({default:!0},t))}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every((t=>t.idle&&!t.isDelayed&&!t.isPaused))}get item(){return this._item}set item(t){this._item=t}get(){const t={};return this.each(((e,n)=>t[n]=e.get())),t}set(t){for(const e in t){const n=t[e];xe.und(n)||this.springs[e].set(n)}}update(t){return t&&this.queue.push(to(t)),this}start(t){let{queue:e}=this;return t?e=Pe(t).map(to):this.queue=[],this._flush?this._flush(this,e):(yo(this,e),co(this,e))}stop(t,e){if(t!==!!t&&(e=t),e){const n=this.springs;_e(Pe(e),(e=>n[e].stop(!!t)))}else Fr(this._state,this._lastAsyncId),this.each((e=>e.stop(!!t)));return this}pause(t){if(xe.und(t))this.start({pause:!0});else{const e=this.springs;_e(Pe(t),(t=>e[t].pause()))}return this}resume(t){if(xe.und(t))this.start({pause:!1});else{const e=this.springs;_e(Pe(t),(t=>e[t].resume()))}return this}each(t){Ce(this.springs,t)}_onFrame(){const{onStart:t,onChange:e,onRest:n}=this._events,r=this._active.size>0,o=this._changed.size>0;(r&&!this._started||o&&!this._started)&&(this._started=!0,Ee(t,(([t,e])=>{e.value=this.get(),t(e,this,this._item)})));const i=!r&&this._started,a=o||i&&n.size?this.get():null;o&&e.size&&Ee(e,(([t,e])=>{e.value=a,t(e,this,this._item)})),i&&(this._started=!1,Ee(n,(([t,e])=>{e.value=a,t(e,this,this._item)})))}eventObserved(t){if("change"==t.type)this._changed.add(t.parent),t.idle||this._active.add(t.parent);else{if("idle"!=t.type)return;this._active.delete(t.parent)}oe.onFrame(this._onFrame)}}function co(t,e){return Promise.all(e.map((e=>lo(t,e)))).then((e=>Ir(t,e)))}async function lo(t,e,n){const{keys:r,to:o,from:i,loop:a,onRest:s,onResolve:c}=e,l=xe.obj(e.default)&&e.default;a&&(e.loop=!1),!1===o&&(e.to=null),!1===i&&(e.from=null);const u=xe.arr(o)||xe.fun(o)?o:void 0;u?(e.to=void 0,e.onRest=void 0,l&&(l.onRest=void 0)):_e(io,(n=>{const r=e[n];if(xe.fun(r)){const o=t._events[n];e[n]=({finished:t,cancelled:e})=>{const n=o.get(r);n?(t||(n.finished=!1),e&&(n.cancelled=!0)):o.set(r,{value:null,finished:t||!1,cancelled:e||!1})},l&&(l[n]=e[n])}}));const f=t._state;e.pause===!f.paused?(f.paused=e.pause,Te(e.pause?f.pauseQueue:f.resumeQueue)):f.paused&&(e.pause=!0);const p=(r||Object.keys(t.springs)).map((n=>t.springs[n].start(e))),d=!0===e.cancel||!0===fr(e,"cancel");(u||d&&f.asyncId)&&p.push(Nr(++t._lastAsyncId,{props:e,state:f,actions:{pause:je,resume:je,start(e,n){d?(Fr(f,t._lastAsyncId),n(Lr(t))):(e.onRest=s,n(zr(u,e,f,t)))}}})),f.paused&&await new Promise((t=>{f.resumeQueue.add(t)}));const h=Ir(t,await Promise.all(p));if(a&&h.finished&&(!n||!h.noop)){const n=Zr(e,a,o);if(n)return yo(t,[n]),lo(t,n,!0)}return c&&oe.batchedUpdates((()=>c(h,t,t.item))),h}function uo(t,e){const n=sr({},t.springs);return e&&_e(Pe(e),(t=>{xe.und(t.keys)&&(t=to(t)),xe.obj(t.to)||(t=sr({},t,{to:void 0})),ho(n,t,(t=>po(t)))})),fo(t,n),n}function fo(t,e){Ce(e,((e,n)=>{t.springs[n]||(t.springs[n]=e,On(e,t))}))}function po(t,e){const n=new Qr;return n.key=t,e&&On(n,e),n}function ho(t,e,n){e.keys&&_e(e.keys,(r=>{(t[r]||(t[r]=n(r)))._prepareNode(e)}))}function yo(t,e){_e(e,(e=>{ho(t.springs,e,(e=>po(e,t)))}))}function go(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}const mo=["children"],vo=t=>{let{children:e}=t,n=go(t,mo);const r=(0,Oe.useContext)(bo),o=n.pause||!!r.pause,i=n.immediate||!!r.immediate;n=function(t,e){const[n]=(0,Oe.useState)((()=>({inputs:e,result:t()}))),r=(0,Oe.useRef)(),o=r.current;let i=o;i?Boolean(e&&i.inputs&&function(t,e){if(t.length!==e.length)return!1;for(let n=0;n{r.current=i,o==n&&(n.inputs=n.result=void 0)}),[i]),i.result}((()=>({pause:o,immediate:i})),[o,i]);const{Provider:a}=bo;return Oe.createElement(a,{value:n},e)},bo=(wo=vo,Oo={},Object.assign(wo,Oe.createContext(Oo)),wo.Provider._context=wo,wo.Consumer._context=wo,wo);var wo,Oo;vo.Provider=bo.Provider,vo.Consumer=bo.Consumer;const jo=()=>{const t=[],e=function(e){Ln(`${In}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`);const r=[];return _e(t,((t,o)=>{if(xe.und(e))r.push(t.start());else{const i=n(e,t,o);i&&r.push(t.start(i))}})),r};e.current=t,e.add=function(e){t.includes(e)||t.push(e)},e.delete=function(e){const n=t.indexOf(e);~n&&t.splice(n,1)},e.pause=function(){return _e(t,(t=>t.pause(...arguments))),this},e.resume=function(){return _e(t,(t=>t.resume(...arguments))),this},e.set=function(e){_e(t,(t=>t.set(e)))},e.start=function(e){const n=[];return _e(t,((t,r)=>{if(xe.und(e))n.push(t.start());else{const o=this._getProps(e,t,r);o&&n.push(t.start(o))}})),n},e.stop=function(){return _e(t,(t=>t.stop(...arguments))),this},e.update=function(e){return _e(t,((t,n)=>t.update(this._getProps(e,t,n)))),this};const n=function(t,e,n){return xe.fun(t)?t(n,e):t};return e._getProps=n,e};let xo;!function(t){t.MOUNT="mount",t.ENTER="enter",t.UPDATE="update",t.LEAVE="leave"}(xo||(xo={}));let So=1;function _o(t,{key:e,keys:n=e},r){if(null===n){const e=new Set;return t.map((t=>{const n=r&&r.find((n=>n.item===t&&n.phase!==xo.LEAVE&&!e.has(n)));return n?(e.add(n),n.key):So++}))}return xe.und(n)?t:xe.fun(n)?t.map(n):Pe(n)}const Co=["items","children"];function Po(t){let{items:e,children:n}=t;return function(t,e,n){const r=xe.fun(e)&&e,{reset:o,sort:i,trail:a=0,expires:s=!0,exitBeforeEnter:c=!1,onDestroyed:l,ref:u,config:f}=r?r():e,p=(0,Oe.useMemo)((()=>r||3==arguments.length?jo():void 0),[]),d=Pe(t),h=[],y=(0,Oe.useRef)(null),g=o?null:y.current;Fn((()=>{y.current=h})),Un((()=>(_e(y.current,(t=>{var e;null==(e=t.ctrl.ref)||e.add(t.ctrl);const n=x.get(t);n&&t.ctrl.start(n.payload)})),()=>{_e(y.current,(t=>{t.expired&&clearTimeout(t.expirationId),wr(t.ctrl,p),t.ctrl.stop(!0)}))})));const m=_o(d,r?r():e,g),v=o&&y.current||[];Fn((()=>_e(v,(({ctrl:t,item:e,key:n})=>{wr(t,p),cr(l,e,n)}))));const b=[];if(g&&_e(g,((t,e)=>{t.expired?(clearTimeout(t.expirationId),v.push(t)):~(e=b[e]=m.indexOf(t.key))&&(h[e]=t)})),_e(d,((t,e)=>{h[e]||(h[e]={key:m[e],item:t,phase:xo.MOUNT,ctrl:new so},h[e].ctrl.item=t)})),b.length){let t=-1;const{leave:n}=r?r():e;_e(b,((e,r)=>{const o=g[r];~e?(t=h.indexOf(o),h[t]=sr({},o,{item:d[e]})):n&&h.splice(++t,0,o)}))}xe.fun(i)&&h.sort(((t,e)=>i(t.item,e.item)));let w=-a;const O=Bn(),j=dr(e),x=new Map,S=(0,Oe.useRef)(new Map),_=(0,Oe.useRef)(!1);_e(h,((t,n)=>{const o=t.key,i=t.phase,l=r?r():e;let p,d,h=cr(l.delay||0,o);if(i==xo.MOUNT)p=l.enter,d=xo.ENTER;else{const t=m.indexOf(o)<0;if(i!=xo.LEAVE)if(t)p=l.leave,d=xo.LEAVE;else{if(!(p=l.update))return;d=xo.UPDATE}else{if(t)return;p=l.enter,d=xo.ENTER}}if(p=cr(p,t.item,n),p=xe.obj(p)?gr(p):{to:p},!p.config){const e=f||j.config;p.config=cr(e,t.item,n,d)}w+=a;const v=sr({},j,{delay:h+w,ref:u,immediate:l.immediate,reset:!1},p);if(d==xo.ENTER&&xe.und(v.from)){const o=r?r():e,i=xe.und(o.initial)||g?o.from:o.initial;v.from=cr(i,t.item,n)}const{onResolve:b}=v;v.onResolve=t=>{cr(b,t);const e=y.current,n=e.find((t=>t.key===o));if(n&&(!t.cancelled||n.phase==xo.UPDATE)&&n.ctrl.idle){const t=e.every((t=>t.ctrl.idle));if(n.phase==xo.LEAVE){const e=cr(s,n.item);if(!1!==e){const r=!0===e?0:e;if(n.expired=!0,!t&&r>0)return void(r<=2147483647&&(n.expirationId=setTimeout(O,r)))}}t&&e.some((t=>t.expired))&&(S.current.delete(n),c&&(_.current=!0),O())}};const C=uo(t.ctrl,v);d===xo.LEAVE&&c?S.current.set(t,{phase:d,springs:C,payload:v}):x.set(t,{phase:d,springs:C,payload:v})}));const C=(0,Oe.useContext)(vo),P=$n(C),E=C!==P&&vr(C);Fn((()=>{E&&_e(h,(t=>{t.ctrl.start({default:C})}))}),[C]),_e(x,((t,e)=>{if(S.current.size){const t=h.findIndex((t=>t.key===e.key));h.splice(t,1)}})),Fn((()=>{_e(S.current.size?S.current:x,(({phase:t,payload:e},n)=>{const{ctrl:r}=n;n.phase=t,null==p||p.add(r),E&&t==xo.ENTER&&r.start({default:C}),e&&(Or(r,e.ref),r.ref&&!_.current?r.update(e):(r.start(e),_.current&&(_.current=!1)))}))}),o?void 0:n);const T=t=>Oe.createElement(Oe.Fragment,null,h.map(((e,n)=>{const{springs:r}=x.get(e)||e.ctrl,o=t(sr({},r),e.item,e,n);return o&&o.type?Oe.createElement(o.type,sr({},o.props,{key:xe.str(e.key)||xe.num(e.key)?e.key:e.ctrl.id,ref:o.ref})):o})));return p?[T,p]:T}(e,go(t,Co))(n)}class Eo extends Wr{constructor(t,e){super(),this.key=void 0,this.idle=!0,this.calc=void 0,this._active=new Set,this.source=t,this.calc=fn(...e);const n=this._get(),r=er(n);qn(this,r.create(n))}advance(t){const e=this._get();Se(e,this.get())||(Hn(this).setValue(e),this._onChange(e,this.idle)),!this.idle&&ko(this._active)&&Ao(this)}_get(){const t=xe.arr(this.source)?this.source.map(gn):Pe(gn(this.source));return this.calc(...t)}_start(){this.idle&&!ko(this._active)&&(this.idle=!1,_e(Xn(this),(t=>{t.done=!1})),Re.skipAnimation?(oe.batchedUpdates((()=>this.advance())),Ao(this)):Ue.start(this))}_attach(){let t=1;_e(Pe(this.source),(e=>{yn(e)&&On(e,this),Vr(e)&&(e.idle||this._active.add(e),t=Math.max(t,e.priority+1))})),this.priority=t,this._start()}_detach(){_e(Pe(this.source),(t=>{yn(t)&&jn(t,this)})),this._active.clear(),Ao(this)}eventObserved(t){"change"==t.type?t.idle?this.advance():(this._active.add(t.parent),this._start()):"idle"==t.type?this._active.delete(t.parent):"priority"==t.type&&(this.priority=Pe(this.source).reduce(((t,e)=>Math.max(t,(Vr(e)?e.priority:0)+1)),0))}}function To(t){return!1!==t.idle}function ko(t){return!t.size||Array.from(t).every(To)}function Ao(t){t.idle||(t.idle=!0,_e(Xn(t),(t=>{t.done=!0})),vn(t,{type:"idle",parent:t}))}Re.assign({createStringInterpolator:Nn,to:(t,e)=>new Eo(t,e)});Ue.advance;const Do=ReactDOM;function No(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r=0||(o[n]=t[n]);return o}const Io=["style","children","scrollTop","scrollLeft"],Mo=/^--/;function Ro(t,e){return null==e||"boolean"==typeof e||""===e?"":"number"!=typeof e||0===e||Mo.test(t)||zo.hasOwnProperty(t)&&zo[t]?(""+e).trim():e+"px"}const Lo={};let zo={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};const Fo=["Webkit","Ms","Moz","O"];zo=Object.keys(zo).reduce(((t,e)=>(Fo.forEach((n=>t[((t,e)=>t+e.charAt(0).toUpperCase()+e.substring(1))(n,e)]=t[e])),t)),zo);const Bo=["x","y","z"],Uo=/^(matrix|translate|scale|rotate|skew)/,Vo=/^(translate)/,$o=/^(rotate|skew)/,Wo=(t,e)=>xe.num(t)&&0!==t?t+e:t,Ho=(t,e)=>xe.arr(t)?t.every((t=>Ho(t,e))):xe.num(t)?t===e:parseFloat(t)===e;class qo extends Jn{constructor(t){let{x:e,y:n,z:r}=t,o=No(t,Bo);const i=[],a=[];(e||n||r)&&(i.push([e||0,n||0,r||0]),a.push((t=>[`translate3d(${t.map((t=>Wo(t,"px"))).join(",")})`,Ho(t,0)]))),Ce(o,((t,e)=>{if("transform"===e)i.push([t||""]),a.push((t=>[t,""===t]));else if(Uo.test(e)){if(delete o[e],xe.und(t))return;const n=Vo.test(e)?"px":$o.test(e)?"deg":"";i.push(Pe(t)),a.push("rotate3d"===e?([t,e,r,o])=>[`rotate3d(${t},${e},${r},${Wo(o,n)})`,Ho(o,0)]:t=>[`${e}(${t.map((t=>Wo(t,n))).join(",")})`,Ho(t,e.startsWith("scale")?1:0)])}})),i.length&&(o.transform=new Xo(i,a)),super(o)}}class Xo extends bn{constructor(t,e){super(),this._value=null,this.inputs=t,this.transforms=e}get(){return this._value||(this._value=this._get())}_get(){let t="",e=!0;return _e(this.inputs,((n,r)=>{const o=gn(n[0]),[i,a]=this.transforms[r](xe.arr(o)?o:n.map(gn));t+=" "+i,e=e&&a})),e?"none":t}observerAdded(t){1==t&&_e(this.inputs,(t=>_e(t,(t=>yn(t)&&On(t,this)))))}observerRemoved(t){0==t&&_e(this.inputs,(t=>_e(t,(t=>yn(t)&&jn(t,this)))))}eventObserved(t){"change"==t.type&&(this._value=null),vn(this,t)}}const Ko=["scrollTop","scrollLeft"];Re.assign({batchedUpdates:Do.unstable_batchedUpdates,createStringInterpolator:Nn,colors:{transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199}});const Yo=((t,{applyAnimatedValues:e=(()=>!1),createAnimatedStyle:n=(t=>new Jn(t)),getComponentProps:r=(t=>t)}={})=>{const o={applyAnimatedValues:e,createAnimatedStyle:n,getComponentProps:r},i=t=>{const e=ar(t)||"Anonymous";return(t=xe.str(t)?i[t]||(i[t]=rr(t,o)):t[ir]||(t[ir]=rr(t,o))).displayName=`Animated(${e})`,t};return Ce(t,((e,n)=>{xe.arr(t)&&(n=ar(e)),i[n]=i(e)})),{animated:i}})(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],{applyAnimatedValues:function(t,e){if(!t.nodeType||!t.setAttribute)return!1;const n="filter"===t.nodeName||t.parentNode&&"filter"===t.parentNode.nodeName,r=e,{style:o,children:i,scrollTop:a,scrollLeft:s}=r,c=No(r,Io),l=Object.values(c),u=Object.keys(c).map((e=>n||t.hasAttribute(e)?e:Lo[e]||(Lo[e]=e.replace(/([A-Z])/g,(t=>"-"+t.toLowerCase())))));void 0!==i&&(t.textContent=i);for(let e in o)if(o.hasOwnProperty(e)){const n=Ro(e,o[e]);Mo.test(e)?t.style.setProperty(e,n):t.style[e]=n}u.forEach(((e,n)=>{t.setAttribute(e,l[n])})),void 0!==a&&(t.scrollTop=a),void 0!==s&&(t.scrollLeft=s)},createAnimatedStyle:t=>new qo(t),getComponentProps:t=>No(t,Ko)}),Go=Yo.animated;var Qo=n(3431),Jo=n.n(Qo);function Zo(t){return Zo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zo(t)}function ti(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ei(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ni(t,e){for(var n=0;n0||this.close()}},{key:"shouldExpand",value:function(t){if(this.props.listeners&&this.props.listeners[t[0]]){var e=t.shift(),n=0;this.current!==e&&(this.open(this.props.listeners[e]),n=180),t.length>0&&setTimeout((function(){LottaEvents.trigger("lotta-expand-panel",t)}),n)}}},{key:"render",value:function(){return(0,this.props.children)({container:this.container,open:this.open,close:this.close})}}]),n}(i.Component);const pi=fi;function di(t){return di="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},di(t)}function hi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function yi(t,e){for(var n=0;n0&&(r=Ei(n.width)/a||1),i>0&&(o=Ei(n.height)/i||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function ki(t){var e=ji(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ai(t){return t?(t.nodeName||"").toLowerCase():null}function Di(t){return((xi(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ni(t){return Ti(Di(t)).left+ki(t).scrollLeft}function Ii(t){return ji(t).getComputedStyle(t)}function Mi(t){var e=Ii(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function Ri(t,e,n){void 0===n&&(n=!1);var r,o,i=Si(e),a=Si(e)&&function(t){var e=t.getBoundingClientRect(),n=Ei(e.width)/t.offsetWidth||1,r=Ei(e.height)/t.offsetHeight||1;return 1!==n||1!==r}(e),s=Di(e),c=Ti(t,a),l={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==Ai(e)||Mi(s))&&(l=(r=e)!==ji(r)&&Si(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:ki(r)),Si(e)?((u=Ti(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):s&&(u.x=Ni(s))),{x:c.left+l.scrollLeft-u.x,y:c.top+l.scrollTop-u.y,width:c.width,height:c.height}}function Li(t){var e=Ti(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function zi(t){return"html"===Ai(t)?t:t.assignedSlot||t.parentNode||(_i(t)?t.host:null)||Di(t)}function Fi(t){return["html","body","#document"].indexOf(Ai(t))>=0?t.ownerDocument.body:Si(t)&&Mi(t)?t:Fi(zi(t))}function Bi(t,e){var n;void 0===e&&(e=[]);var r=Fi(t),o=r===(null==(n=t.ownerDocument)?void 0:n.body),i=ji(r),a=o?[i].concat(i.visualViewport||[],Mi(r)?r:[]):r,s=e.concat(a);return o?s:s.concat(Bi(zi(a)))}function Ui(t){return["table","td","th"].indexOf(Ai(t))>=0}function Vi(t){return Si(t)&&"fixed"!==Ii(t).position?t.offsetParent:null}function $i(t){for(var e=ji(t),n=Vi(t);n&&Ui(n)&&"static"===Ii(n).position;)n=Vi(n);return n&&("html"===Ai(n)||"body"===Ai(n)&&"static"===Ii(n).position)?e:n||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Si(t)&&"fixed"===Ii(t).position)return null;var n=zi(t);for(_i(n)&&(n=n.host);Si(n)&&["html","body"].indexOf(Ai(n))<0;){var r=Ii(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||e&&"filter"===r.willChange||e&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(t)||e}var Wi="top",Hi="bottom",qi="right",Xi="left",Ki="auto",Yi=[Wi,Hi,qi,Xi],Gi="start",Qi="end",Ji="viewport",Zi="popper",ta=Yi.reduce((function(t,e){return t.concat([e+"-"+Gi,e+"-"+Qi])}),[]),ea=[].concat(Yi,[Ki]).reduce((function(t,e){return t.concat([e,e+"-"+Gi,e+"-"+Qi])}),[]),na=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ra(t){var e=new Map,n=new Set,r=[];function o(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var r=e.get(t);r&&o(r)}})),r.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||o(t)})),r}var oa={placement:"bottom",modifiers:[],strategy:"absolute"};function ia(){for(var t=arguments.length,e=new Array(t),n=0;n=0?"x":"y"}function fa(t){var e,n=t.reference,r=t.element,o=t.placement,i=o?ca(o):null,a=o?la(o):null,s=n.x+n.width/2-r.width/2,c=n.y+n.height/2-r.height/2;switch(i){case Wi:e={x:s,y:n.y-r.height};break;case Hi:e={x:s,y:n.y+n.height};break;case qi:e={x:n.x+n.width,y:c};break;case Xi:e={x:n.x-r.width,y:c};break;default:e={x:n.x,y:n.y}}var l=i?ua(i):null;if(null!=l){var u="y"===l?"height":"width";switch(a){case Gi:e[l]=e[l]-(n[u]/2-r[u]/2);break;case Qi:e[l]=e[l]+(n[u]/2-r[u]/2)}}return e}var pa={top:"auto",right:"auto",bottom:"auto",left:"auto"};function da(t){var e,n=t.popper,r=t.popperRect,o=t.placement,i=t.variation,a=t.offsets,s=t.position,c=t.gpuAcceleration,l=t.adaptive,u=t.roundOffsets,f=t.isFixed,p=a.x,d=void 0===p?0:p,h=a.y,y=void 0===h?0:h,g="function"==typeof u?u({x:d,y}):{x:d,y};d=g.x,y=g.y;var m=a.hasOwnProperty("x"),v=a.hasOwnProperty("y"),b=Xi,w=Wi,O=window;if(l){var j=$i(n),x="clientHeight",S="clientWidth";if(j===ji(n)&&"static"!==Ii(j=Di(n)).position&&"absolute"===s&&(x="scrollHeight",S="scrollWidth"),o===Wi||(o===Xi||o===qi)&&i===Qi)w=Hi,y-=(f&&j===O&&O.visualViewport?O.visualViewport.height:j[x])-r.height,y*=c?1:-1;if(o===Xi||(o===Wi||o===Hi)&&i===Qi)b=qi,d-=(f&&j===O&&O.visualViewport?O.visualViewport.width:j[S])-r.width,d*=c?1:-1}var _,C=Object.assign({position:s},l&&pa),P=!0===u?function(t){var e=t.x,n=t.y,r=window.devicePixelRatio||1;return{x:Ei(e*r)/r||0,y:Ei(n*r)/r||0}}({x:d,y}):{x:d,y};return d=P.x,y=P.y,c?Object.assign({},C,((_={})[w]=v?"0":"",_[b]=m?"0":"",_.transform=(O.devicePixelRatio||1)<=1?"translate("+d+"px, "+y+"px)":"translate3d("+d+"px, "+y+"px, 0)",_)):Object.assign({},C,((e={})[w]=v?y+"px":"",e[b]=m?d+"px":"",e.transform="",e))}const ha={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var n=e.styles[t]||{},r=e.attributes[t]||{},o=e.elements[t];Si(o)&&Ai(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(t){var e=r[t];!1===e?o.removeAttribute(t):o.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach((function(t){var r=e.elements[t],o=e.attributes[t]||{},i=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});Si(r)&&Ai(r)&&(Object.assign(r.style,i),Object.keys(o).forEach((function(t){r.removeAttribute(t)})))}))}},requires:["computeStyles"]};const ya={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,r=t.name,o=n.offset,i=void 0===o?[0,0]:o,a=ea.reduce((function(t,n){return t[n]=function(t,e,n){var r=ca(t),o=[Xi,Wi].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},e,{placement:t})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[Xi,qi].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,e.rects,i),t}),{}),s=a[e.placement],c=s.x,l=s.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=c,e.modifiersData.popperOffsets.y+=l),e.modifiersData[r]=a}};var ga={left:"right",right:"left",bottom:"top",top:"bottom"};function ma(t){return t.replace(/left|right|bottom|top/g,(function(t){return ga[t]}))}var va={start:"end",end:"start"};function ba(t){return t.replace(/start|end/g,(function(t){return va[t]}))}function wa(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&_i(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Oa(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ja(t,e){return e===Ji?Oa(function(t){var e=ji(t),n=Di(t),r=e.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+Ni(t),y:s}}(t)):xi(e)?function(t){var e=Ti(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Oa(function(t){var e,n=Di(t),r=ki(t),o=null==(e=t.ownerDocument)?void 0:e.body,i=Ci(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=Ci(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+Ni(t),c=-r.scrollTop;return"rtl"===Ii(o||n).direction&&(s+=Ci(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:c}}(Di(t)))}function xa(t,e,n){var r="clippingParents"===e?function(t){var e=Bi(zi(t)),n=["absolute","fixed"].indexOf(Ii(t).position)>=0&&Si(t)?$i(t):t;return xi(n)?e.filter((function(t){return xi(t)&&wa(t,n)&&"body"!==Ai(t)})):[]}(t):[].concat(e),o=[].concat(r,[n]),i=o[0],a=o.reduce((function(e,n){var r=ja(t,n);return e.top=Ci(r.top,e.top),e.right=Pi(r.right,e.right),e.bottom=Pi(r.bottom,e.bottom),e.left=Ci(r.left,e.left),e}),ja(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function Sa(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function _a(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}function Ca(t,e){void 0===e&&(e={});var n=e,r=n.placement,o=void 0===r?t.placement:r,i=n.boundary,a=void 0===i?"clippingParents":i,s=n.rootBoundary,c=void 0===s?Ji:s,l=n.elementContext,u=void 0===l?Zi:l,f=n.altBoundary,p=void 0!==f&&f,d=n.padding,h=void 0===d?0:d,y=Sa("number"!=typeof h?h:_a(h,Yi)),g=u===Zi?"reference":Zi,m=t.rects.popper,v=t.elements[p?g:u],b=xa(xi(v)?v:v.contextElement||Di(t.elements.popper),a,c),w=Ti(t.elements.reference),O=fa({reference:w,element:m,strategy:"absolute",placement:o}),j=Oa(Object.assign({},m,O)),x=u===Zi?j:w,S={top:b.top-x.top+y.top,bottom:x.bottom-b.bottom+y.bottom,left:b.left-x.left+y.left,right:x.right-b.right+y.right},_=t.modifiersData.offset;if(u===Zi&&_){var C=_[o];Object.keys(S).forEach((function(t){var e=[qi,Hi].indexOf(t)>=0?1:-1,n=[Wi,Hi].indexOf(t)>=0?"y":"x";S[t]+=C[n]*e}))}return S}function Pa(t,e,n){return Ci(t,Pi(e,n))}const Ea={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0!==a&&a,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,f=n.padding,p=n.tether,d=void 0===p||p,h=n.tetherOffset,y=void 0===h?0:h,g=Ca(e,{boundary:c,rootBoundary:l,padding:f,altBoundary:u}),m=ca(e.placement),v=la(e.placement),b=!v,w=ua(m),O="x"===w?"y":"x",j=e.modifiersData.popperOffsets,x=e.rects.reference,S=e.rects.popper,_="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,C="number"==typeof _?{mainAxis:_,altAxis:_}:Object.assign({mainAxis:0,altAxis:0},_),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,E={x:0,y:0};if(j){if(i){var T,k="y"===w?Wi:Xi,A="y"===w?Hi:qi,D="y"===w?"height":"width",N=j[w],I=N+g[k],M=N-g[A],R=d?-S[D]/2:0,L=v===Gi?x[D]:S[D],z=v===Gi?-S[D]:-x[D],F=e.elements.arrow,B=d&&F?Li(F):{width:0,height:0},U=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},V=U[k],$=U[A],W=Pa(0,x[D],B[D]),H=b?x[D]/2-R-W-V-C.mainAxis:L-W-V-C.mainAxis,q=b?-x[D]/2+R+W+$+C.mainAxis:z+W+$+C.mainAxis,X=e.elements.arrow&&$i(e.elements.arrow),K=X?"y"===w?X.clientTop||0:X.clientLeft||0:0,Y=null!=(T=null==P?void 0:P[w])?T:0,G=N+q-Y,Q=Pa(d?Pi(I,N+H-Y-K):I,N,d?Ci(M,G):M);j[w]=Q,E[w]=Q-N}if(s){var J,Z="x"===w?Wi:Xi,tt="x"===w?Hi:qi,et=j[O],nt="y"===O?"height":"width",rt=et+g[Z],ot=et-g[tt],it=-1!==[Wi,Xi].indexOf(m),at=null!=(J=null==P?void 0:P[O])?J:0,st=it?rt:et-x[nt]-S[nt]-at+C.altAxis,ct=it?et+x[nt]+S[nt]-at-C.altAxis:ot,lt=d&&it?function(t,e,n){var r=Pa(t,e,n);return r>n?n:r}(st,et,ct):Pa(d?st:rt,et,d?ct:ot);j[O]=lt,E[O]=lt-et}e.modifiersData[r]=E}},requiresIfExists:["offset"]};const Ta={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,r=t.name,o=t.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=ca(n.placement),c=ua(s),l=[Xi,qi].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(t,e){return Sa("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:_a(t,Yi))}(o.padding,n),f=Li(i),p="y"===c?Wi:Xi,d="y"===c?Hi:qi,h=n.rects.reference[l]+n.rects.reference[c]-a[c]-n.rects.popper[l],y=a[c]-n.rects.reference[c],g=$i(i),m=g?"y"===c?g.clientHeight||0:g.clientWidth||0:0,v=h/2-y/2,b=u[p],w=m-f[l]-u[d],O=m/2-f[l]/2+v,j=Pa(b,O,w),x=c;n.modifiersData[r]=((e={})[x]=j,e.centerOffset=j-O,e)}},effect:function(t){var e=t.state,n=t.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=e.elements.popper.querySelector(r)))&&wa(e.elements.popper,r)&&(e.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ka(t,e,n){return void 0===n&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function Aa(t){return[Wi,qi,Hi,Xi].some((function(e){return t[e]>=0}))}var Da=aa({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,i=void 0===o||o,a=r.resize,s=void 0===a||a,c=ji(e.elements.popper),l=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&l.forEach((function(t){t.addEventListener("scroll",n.update,sa)})),s&&c.addEventListener("resize",n.update,sa),function(){i&&l.forEach((function(t){t.removeEventListener("scroll",n.update,sa)})),s&&c.removeEventListener("resize",n.update,sa)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=fa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,c=void 0===s||s,l={placement:ca(e.placement),variation:la(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,da(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:c})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,da(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},ha,ya,{name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,c=n.fallbackPlacements,l=n.padding,u=n.boundary,f=n.rootBoundary,p=n.altBoundary,d=n.flipVariations,h=void 0===d||d,y=n.allowedAutoPlacements,g=e.options.placement,m=ca(g),v=c||(m===g||!h?[ma(g)]:function(t){if(ca(t)===Ki)return[];var e=ma(t);return[ba(t),e,ba(e)]}(g)),b=[g].concat(v).reduce((function(t,n){return t.concat(ca(n)===Ki?function(t,e){void 0===e&&(e={});var n=e,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,l=void 0===c?ea:c,u=la(r),f=u?s?ta:ta.filter((function(t){return la(t)===u})):Yi,p=f.filter((function(t){return l.indexOf(t)>=0}));0===p.length&&(p=f);var d=p.reduce((function(e,n){return e[n]=Ca(t,{placement:n,boundary:o,rootBoundary:i,padding:a})[ca(n)],e}),{});return Object.keys(d).sort((function(t,e){return d[t]-d[e]}))}(e,{placement:n,boundary:u,rootBoundary:f,padding:l,flipVariations:h,allowedAutoPlacements:y}):n)}),[]),w=e.rects.reference,O=e.rects.popper,j=new Map,x=!0,S=b[0],_=0;_=0,k=T?"width":"height",A=Ca(e,{placement:C,boundary:u,rootBoundary:f,altBoundary:p,padding:l}),D=T?E?qi:Xi:E?Hi:Wi;w[k]>O[k]&&(D=ma(D));var N=ma(D),I=[];if(i&&I.push(A[P]<=0),s&&I.push(A[D]<=0,A[N]<=0),I.every((function(t){return t}))){S=C,x=!1;break}j.set(C,I)}if(x)for(var M=function(t){var e=b.find((function(e){var n=j.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return S=e,"break"},R=h?3:1;R>0;R--){if("break"===M(R))break}e.placement!==S&&(e.modifiersData[r]._skip=!0,e.placement=S,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},Ea,Ta,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,i=e.modifiersData.preventOverflow,a=Ca(e,{elementContext:"reference"}),s=Ca(e,{altBoundary:!0}),c=ka(a,r),l=ka(s,o,i),u=Aa(c),f=Aa(l);e.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}}]}),Na=n(9590),Ia=n.n(Na),Ma=function(t){return t.reduce((function(t,e){var n=e[0],r=e[1];return t[n]=r,t}),{})},Ra="undefined"!=typeof window&&window.document&&window.document.createElement?Oe.useLayoutEffect:Oe.useEffect,La=[],za=function(t,e,n){void 0===n&&(n={});var r=Oe.useRef(null),o={onFirstUpdate:n.onFirstUpdate,placement:n.placement||"bottom",strategy:n.strategy||"absolute",modifiers:n.modifiers||La},i=Oe.useState({styles:{popper:{position:o.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),a=i[0],s=i[1],c=Oe.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(t){var e=t.state,n=Object.keys(e.elements);Do.flushSync((function(){s({styles:Ma(n.map((function(t){return[t,e.styles[t]||{}]}))),attributes:Ma(n.map((function(t){return[t,e.attributes[t]]})))})}))},requires:["computeStyles"]}}),[]),l=Oe.useMemo((function(){var t={onFirstUpdate:o.onFirstUpdate,placement:o.placement,strategy:o.strategy,modifiers:[].concat(o.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Ia()(r.current,t)?r.current||t:(r.current=t,t)}),[o.onFirstUpdate,o.placement,o.strategy,o.modifiers,c]),u=Oe.useRef();return Ra((function(){u.current&&u.current.setOptions(l)}),[l]),Ra((function(){if(null!=t&&null!=e){var r=(n.createPopper||Da)(t,e,l);return u.current=r,function(){r.destroy(),u.current=null}}}),[t,e,n.createPopper]),{state:u.current?u.current.state:null,styles:a.styles,attributes:a.attributes,update:u.current?u.current.update:null,forceUpdate:u.current?u.current.forceUpdate:null}};function Fa(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Ba(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:{placement:"bottom",toggleable:!0,arrow:!0,offset:[0,12]},e=t.children,n=t.content,r=t.placement,o=t.toggleable,a=t.arrow,s=t.offset,l=t.disableOutsideClick,u=(0,i.useState)(!1),f=Va(u,2),p=f[0],d=f[1],h=(0,i.useState)(null),y=Va(h,2),g=y[0],m=y[1],v=(0,i.useState)(null),b=Va(v,2),w=b[0],O=b[1],j=(0,i.useState)(null),x=Va(j,2),S=x[0],_=x[1],C=za(g,w,{placement:r,modifiers:a?[{name:"offset",options:{offset:s}},{name:"arrow",options:{element:S}}]:[]}),P=C.styles,E=C.attributes;return(0,c.jsxs)(yt.default,{disabled:!!l,onOutsideClick:function(){p&&d(!1)},children:[e({setIsOpen:d,isOpen:p,props:{ref:m,onClick:function(){p&&!o||d(!p)}}}),p&&(0,c.jsxs)("div",Ba(Ba({className:"lotta-popup",ref:O,style:P.popper},E.popper),{},{children:[n,a&&(0,c.jsx)("div",{ref:_,style:P.arrow,className:"lotta-popup-arrow"})]}))]})};function Ha(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function qa(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:{placement:"top"},e=t.children,n=t.content,r=t.placement,o=(0,i.useState)(!1),a=Ka(o,2),s=a[0],l=a[1],u=(0,i.useState)(null),f=Ka(u,2),p=f[0],d=f[1],h=(0,i.useState)(null),y=Ka(h,2),g=y[0],m=y[1],v=(0,i.useState)(null),b=Ka(v,2),w=b[0],O=b[1],j=za(p,g,{placement:r,modifiers:[{name:"offset",options:{offset:[0,8]}},{name:"arrow",options:{element:w}}]}),x=j.styles,S=j.attributes;return(0,c.jsxs)(c.Fragment,{children:[e({props:{ref:d,onMouseEnter:function(){l(!0)},onMouseLeave:function(){l(!1)}}}),s&&(0,c.jsxs)("div",qa(qa({className:"lotta-tooltip",ref:m,style:x.popper},S.popper),{},{children:[n,(0,c.jsx)("div",{ref:O,style:x.arrow,className:"lotta-popup-arrow"})]}))]})},Qa=window.wp.components;var Ja=n(9588),Za=n.n(Ja);n(8975);Za()(console.error);var ts,es,ns,rs;ts={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},es=["(","?"],ns={")":["("],":":["?","?:"]},rs=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var os={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};function is(t){var e=function(t){for(var e,n,r,o,i=[],a=[];e=t.match(rs);){for(n=e[0],(r=t.substr(0,e.index).trim())&&i.push(r);o=a.pop();){if(ns[n]){if(ns[n][0]===o){n=ns[n][1]||n;break}}else if(es.indexOf(o)>=0||ts[o]1===t?0:1},ls=/^i18n\.(n?gettext|has_translation)(_|$)/,us=((t,e,n)=>{const r=new ss({}),o=new Set,i=()=>{o.forEach((t=>t()))},a=function(t){var e;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";r.data[n]={...r.data[n],...t},r.data[n][""]={...cs,...null===(e=r.data[n])||void 0===e?void 0:e[""]},delete r.pluralForms[n]},s=(t,e)=>{a(t,e),i()},c=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return r.data[t]||a(void 0,t),r.dcnpgettext(t,e,n,o,i)},l=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return t},u=(t,e,r)=>{let o=c(r,e,t);return n?(o=n.applyFilters("i18n.gettext_with_context",o,t,e,r),n.applyFilters("i18n.gettext_with_context_"+l(r),o,t,e,r)):o};if(t&&s(t,e),n){const t=t=>{ls.test(t)&&i()};n.addAction("hookAdded","core/i18n",t),n.addAction("hookRemoved","core/i18n",t)}return{getLocaleData:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return r.data[t]},setLocaleData:s,addLocaleData:function(t){var e;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";r.data[n]={...r.data[n],...t,"":{...cs,...null===(e=r.data[n])||void 0===e?void 0:e[""],...null==t?void 0:t[""]}},delete r.pluralForms[n],i()},resetLocaleData:(t,e)=>{r.data={},r.pluralForms={},s(t,e)},subscribe:t=>(o.add(t),()=>o.delete(t)),__:(t,e)=>{let r=c(e,void 0,t);return n?(r=n.applyFilters("i18n.gettext",r,t,e),n.applyFilters("i18n.gettext_"+l(e),r,t,e)):r},_x:u,_n:(t,e,r,o)=>{let i=c(o,void 0,t,e,r);return n?(i=n.applyFilters("i18n.ngettext",i,t,e,r,o),n.applyFilters("i18n.ngettext_"+l(o),i,t,e,r,o)):i},_nx:(t,e,r,o,i)=>{let a=c(i,o,t,e,r);return n?(a=n.applyFilters("i18n.ngettext_with_context",a,t,e,r,o,i),n.applyFilters("i18n.ngettext_with_context_"+l(i),a,t,e,r,o,i)):a},isRTL:()=>"rtl"===u("ltr","text direction"),hasTranslation:(t,e,o)=>{var i,a;const s=e?e+""+t:t;let c=!(null===(i=r.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[s]);return n&&(c=n.applyFilters("i18n.has_translation",c,t,e,o),c=n.applyFilters("i18n.has_translation_"+l(o),c,t,e,o)),c}}})(void 0,void 0,window.wp.hooks.defaultHooks),fs=(us.getLocaleData.bind(us),us.setLocaleData.bind(us),us.resetLocaleData.bind(us),us.subscribe.bind(us),us.__.bind(us));us._x.bind(us),us._n.bind(us),us._nx.bind(us),us.isRTL.bind(us),us.hasTranslation.bind(us);function ps(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ds(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function hs(t){return hs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hs(t)}function ys(t){return t.length<9||"#"!=t[0]?t:"rgba("+parseInt(t.slice(1,3),16)+","+parseInt(t.slice(3,5),16)+","+parseInt(t.slice(5,7),16)+","+(parseInt(t.slice(7,9),16)/255).toFixed(2)+")"}function gs(t){var e=t.swatches,n=!Array.isArray(e)&&"object"===hs(e);return n&&(e=Object.keys(e)),(0,c.jsxs)("div",{className:"lotta-react-color-picker",children:[e&&e.length>0&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("h4",{className:"category-title",children:fs("Theme")}),(0,c.jsx)("div",{className:"swatches",children:e.map((function(e,r){var o=n&&t.swatches[e]?t.swatches[e]:"";return(0,c.jsx)("div",{className:"swatch-wrap",children:(0,c.jsx)("div",{className:s({swatch:!0,"initial-swatch":e===sg,active:bg(e)===bg(t.color)}),style:{color:e},onClick:function(){return t.onChange(e)},children:o?(0,c.jsx)(Ga,{content:o,placement:"top",children:function(t){var e=t.props;return(0,c.jsx)("div",function(t){for(var e=1;e'+o+"")}}}))}),[])}function Os(t){ws(t);var e=t.options,n=t.value,r=t.onChange;if(!e.colors)return null;var o={};e.colors.forEach((function(t){o[t.id]=n[t.id]||sg}));var i=e.swatches;!i&&window.Lotta&&window.Lotta.customizer&&window.Lotta.customizer.colorPicker&&(i=window.Lotta.customizer.colorPicker.swatches);var a=function(t){r(t)};return(0,c.jsx)("div",{className:"lotta-color-picker",children:(0,c.jsx)("div",{className:"colors",children:e.colors.map((function(t){var n=e.computed?bg(o[t.id]||""):o[t.id]||"";return(0,c.jsx)(Wa,{placement:"bottom",content:(0,c.jsx)(gs,{swatches:i,enableAlpha:e.alpha,color:n,onChange:function(n){a(vs(vs({},o),{},bs({},t.id,n!==sg&&e.computed?bg(n):n)))}}),children:function(e){var r=e.props;return(0,c.jsx)("div",vs(vs({},r),{},{className:s({preview:!0,"initial-preview":(o[t.id]||"")===sg,global:-1!==(Array.isArray(i)?i:Object.keys(i)).indexOf(o[t.id]||"")}),style:{color:n},children:(0,c.jsx)(Ga,{content:t.title,placement:"top",children:function(t){var e=t.props;return(0,c.jsx)("div",vs({className:"preview-inner"},e))}})}))}},t.id)}))})})}Os.renderingConfig={design:"inline"};const js=Os;function xs(t){return function(t){if(Array.isArray(t))return Ts(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Es(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ss(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function _s(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n-1||65==t.keyCode&&!0===t.ctrlKey||109==t.keyCode||189==t.keyCode||173==t.keyCode||67==t.keyCode&&!0===t.ctrlKey||88==t.keyCode&&!0===t.ctrlKey||t.keyCode>=35&&t.keyCode<=39&&38!==t.keyCode&&40!==t.keyCode)){var n="__unset__";if(0===e.toString().trim().length)n=0;else{var o=parseFloat(e);(o||0===o)&&(n=o)}var i=t.shiftKey?10*a:a;38===t.keyCode&&"__unset__"!==e&&r(n+i,!0),40===t.keyCode&&"__unset__"!==e&&r(n-i,!0),(t.shiftKey||t.keyCode<48||t.keyCode>57)&&(t.keyCode<96||t.keyCode>105)&&t.preventDefault()}},onChange:function(t){var e=t.target.value;return r(e)},placeholder:u,onBlur:function(){return n&&n},className:s({inactive:"auto"===e||o})})};function Ys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Gs(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:"";if("auto"===t)return t;var n=0===parseFloat(t)?0:parseFloat(t).toFixed(1===d()?0:1)||"";return"".concat(isNaN(n)?0:n).concat(e)},y=function(t,o){e.linked?r(Gs(Gs({},e),{},{top:n.disabled&&n.disabled.top?e.top:h(t,p()),left:n.disabled&&n.disabled.left?e.left:h(t,p()),right:n.disabled&&n.disabled.right?e.right:h(t,p()),bottom:n.disabled&&n.disabled.bottom?e.bottom:h(t,p())})):r(Gs(Gs({},e),{},Qs({},o,h(t,p()))))};return(0,c.jsxs)("div",{className:s("lotta-spacing",{linked:e.linked}),children:[["top","right","bottom","left"].map((function(t){var r=h(e[t]);return(0,c.jsxs)("span",{children:[(0,c.jsx)(Ks,Gs({placeholder:"",step:d(),inactive:n.disabled&&n.disabled[t],value:r,onChange:function(e){return y(e,t)}},Gs({placeholder:""},n.inputAttr))),n.autoToggle&&(0,c.jsx)("button",{className:"auto-num-toggle",type:"button",onClick:function(){y("auto"===r?0:"auto",t)},children:(0,c.jsx)("span",{children:"auto"===r?"num":"auto"})}),(0,c.jsx)("small",{children:{top:"Top",bottom:"Bottom",left:"Left",right:"Right"}[t]})]},t)})),(0,c.jsxs)("div",{className:s("lotta-spacing-controls lotta-value-changer",{active:a}),children:[(0,c.jsx)("a",{onClick:function(t){if(t.preventDefault(),e.linked)r(Gs(Gs({},e),{},{linked:!1}));else{var n=e[f()];r(Gs(Gs({},e),{},{top:"auto"!==e.top?n:e.top,left:"auto"!==e.left?n:e.left,bottom:"auto"!==e.bottom?n:e.bottom,right:"auto"!==e.right?n:e.right,linked:!0}))}},children:(0,c.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 15 15",children:e.linked?(0,c.jsx)("path",{d:"M12.2,5.5V4.7c0-2.6-2.1-4.7-4.7-4.7S2.8,2.1,2.8,4.7v0.8c-0.9,0-1.6,0.7-1.6,1.6v6.3c0,0.9,0.7,1.6,1.6,1.6h9.5c0.9,0,1.6-0.7,1.6-1.6V7.1C13.8,6.2,13.1,5.5,12.2,5.5z M10.7,5.5H4.3V4.7c0-1.8,1.4-3.2,3.2-3.2s3.2,1.4,3.2,3.2V5.5z"}):(0,c.jsx)("path",{d:"M12.2,5.5h-1.6H9.9h-5H4.7l0-0.2C4.4,3.5,5.5,1.9,7.3,1.5c1.1-0.2,2.2,0.1,2.8,0.9l1.3-0.9c-1-1.1-2.6-1.8-4.3-1.5C4.5,0.5,2.8,2.9,3.2,5.5H2.8c-0.9,0-1.6,0.7-1.6,1.6v6.3c0,0.9,0.7,1.6,1.6,1.6h9.5c0.9,0,1.6-0.7,1.6-1.6V7.1C13.8,6.2,13.1,5.5,12.2,5.5z"})})}),(0,c.jsx)("span",{className:"lotta-value-divider"}),(0,c.jsx)(vt,{units:u,isOpen:a,toggleOpen:function(){l(!a)},currentUnit:p(),onPickUnit:function(t){r(Gs(Gs({},e),{},{top:h(e.top,t),left:h(e.left,t),right:h(e.right,t),bottom:h(e.bottom,t)}))}})]})]})};const ec=function(t){var e=t.value,n=t.options,r=t.onChange,o=n.choices,i=void 0===o?{}:o;return(0,c.jsx)("select",{value:e,onChange:function(t){r(t.target.value)},children:Object.keys(i).map((function(t){return(0,c.jsx)("option",{value:t,children:i[t]},t)}))})};function nc(t,e){return lc(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),!e||i.length!==e);a=!0);}catch(t){s=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(t,e)||sc(t,e)||ac()}function rc(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function oc(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&t.pop(),t},dc=function(t){return t.all||t.any||(t={all:t}),t},hc=function t(e,n){var r=Object.values(e)[0],o=function(t){return!(t.length>4)&&(0===t.indexOf("any")?"any":0===t.indexOf("all")&&"all")},i=Object.keys(r).map((function(e,i){var a=Object.values(r)[i];return"all"===o(e)||"any"===o(e)?t(uc({},e,a),n):function(t,e,n){var r=function(t,e){var n=function(t){return fc(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:e)};if(t.indexOf(":")>-1){var r=null;if(o=t.split(":"),i=function(t){var o=ic(t),i=o[0],a=o.slice(1);if("visibility"===(a=a.join(":"))&&(r=n(i,oc(oc({},e),{},uc({},pc(i),fc(pc(i),e)[e.wp_customizer_current_view]?"yes":"no")))),"responsive"===a&&(r=n(i,oc(oc({},e),{},uc({},pc(i),fc(pc(i),e)[e.wp_customizer_current_view]||fc(pc(i),e))))),"truthy"===a&&(r=n(i)?"yes":"no"),a.indexOf("array-ids:")>-1){var s=nc(a.split(":"),3),c=(s[0],s[1]),l=s[2],u=n(i).find((function(t){return t.id===c}));r=u&&fc(l,u)||"no"}if(a.indexOf("json:")>-1&&(r=n("".concat(i,"/").concat(a.split(":")[1])).toString()),"array_length"===a){var f=n(i);r=(f||[]).length.toString()}if(!r)throw new Error("Unknown matcher received. Please verify for typos. The received matcher: ".concat(a,"."))},i(o),r)return r;t=t.split(":")[0]}var o,i;var a=n(t);if(!a)return!1;if(a.desktop)return a;return a.toString()}(e,n);if(t&&t.toString()&&0===t.toString().indexOf("~")){var o=t.replace("~","");return r.desktop?r.desktop===o||r.tablet===o||r.mobile===o:r===o}if(r=r.toString(),t=t.toString(),!r)return!1;if(t.indexOf("|")>-1)return 0===t.indexOf("!")?-1===t.substring(1).split("|").map((function(t){return t.trim()})).includes(r.trim()):t.split("|").map((function(t){return t.trim()})).indexOf(r.trim())>-1;if(0===t.indexOf("!"))return r!==t.substring(1).trim();if(0===t.indexOf("*"))return r.indexOf(t.trim().substring(1).trim())>-1;return r===t.trim()}(a,e,n)}));return"all"===o(Object.keys(e)[0])?i.every((function(t){return!!t})):"any"===o(Object.keys(e)[0])?i.some((function(t){return!!t})):void 0};function yc(t){return yc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yc(t)}function gc(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function mc(t){for(var e=1;e=e?t.call(null):r.id=requestAnimationFrame(o)}))};return r}var Tl=null;function kl(t){if(void 0===t&&(t=!1),null===Tl||t){var e=document.createElement("div"),n=e.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?Tl="positive-descending":(e.scrollLeft=1,Tl=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),Tl}return Tl}var Al=function(t,e){return t};function Dl(t){var e,n=t.getItemOffset,r=t.getEstimatedTotalSize,o=t.getItemSize,i=t.getOffsetForIndexAndAlignment,a=t.getStartIndexForOffset,s=t.getStopIndexForStartIndex,c=t.initInstanceProps,l=t.shouldResetStyleCacheOnItemSizeChange,u=t.validateProps;return e=function(t){function e(e){var r;return(r=t.call(this,e)||this)._instanceProps=c(r.props,wl(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:wl(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"==typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=_l((function(t,e,n,o){return r.props.onItemsRendered({overscanStartIndex:t,overscanStopIndex:e,visibleStartIndex:n,visibleStopIndex:o})})),r._callOnScroll=void 0,r._callOnScroll=_l((function(t,e,n){return r.props.onScroll({scrollDirection:t,scrollOffset:e,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(t){var e,i=r.props,a=i.direction,s=i.itemSize,c=i.layout,u=r._getItemStyleCache(l&&s,l&&c,l&&a);if(u.hasOwnProperty(t))e=u[t];else{var f=n(r.props,t,r._instanceProps),p=o(r.props,t,r._instanceProps),d="horizontal"===a||"horizontal"===c,h="rtl"===a,y=d?f:0;u[t]=e={position:"absolute",left:h?void 0:y,right:h?y:void 0,top:d?0:f,height:d?"100%":p,width:d?p:"100%"}}return e},r._getItemStyleCache=void 0,r._getItemStyleCache=_l((function(t,e,n){return{}})),r._onScrollHorizontal=function(t){var e=t.currentTarget,n=e.clientWidth,o=e.scrollLeft,i=e.scrollWidth;r.setState((function(t){if(t.scrollOffset===o)return null;var e=r.props.direction,a=o;if("rtl"===e)switch(kl()){case"negative":a=-o;break;case"positive-descending":a=i-n-o}return a=Math.max(0,Math.min(a,i-n)),{isScrolling:!0,scrollDirection:t.scrollOffset0)for(var C=x;C<=S;C++)_.push((0,Oe.createElement)(e,{data:u,key:p(C,u),index:C,isScrolling:m?b:void 0,style:this._getItemStyle(C)}));var P=r(this.props,this._instanceProps);return(0,Oe.createElement)(h||y||"div",{className:n,onScroll:O,ref:this._outerRefSetter,style:bl({position:"relative",height:i,width:v,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},g)},(0,Oe.createElement)(s||c||"div",{children:_,ref:a,style:{height:w?"100%":P,pointerEvents:b?"none":void 0,width:w?P:"100%"}}))},f._callPropsCallbacks=function(){if("function"==typeof this.props.onItemsRendered&&this.props.itemCount>0){var t=this._getRangeToRender(),e=t[0],n=t[1],r=t[2],o=t[3];this._callOnItemsRendered(e,n,r,o)}if("function"==typeof this.props.onScroll){var i=this.state,a=i.scrollDirection,s=i.scrollOffset,c=i.scrollUpdateWasRequested;this._callOnScroll(a,s,c)}},f._getRangeToRender=function(){var t=this.props,e=t.itemCount,n=t.overscanCount,r=this.state,o=r.isScrolling,i=r.scrollDirection,c=r.scrollOffset;if(0===e)return[0,0,0,0];var l=a(this.props,c,this._instanceProps),u=s(this.props,l,c,this._instanceProps),f=o&&"backward"!==i?1:Math.max(1,n),p=o&&"forward"!==i?1:Math.max(1,n);return[Math.max(0,l-f),Math.max(0,Math.min(e-1,u+p)),l,u]},e}(Oe.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},e}var Nl=function(t,e){t.children,t.direction,t.height,t.layout,t.innerTagName,t.outerTagName,t.width,e.instance},Il=Dl({getItemOffset:function(t,e){return e*t.itemSize},getItemSize:function(t,e){return t.itemSize},getEstimatedTotalSize:function(t){var e=t.itemCount;return t.itemSize*e},getOffsetForIndexAndAlignment:function(t,e,n,r){var o=t.direction,i=t.height,a=t.itemCount,s=t.itemSize,c=t.layout,l=t.width,u="horizontal"===o||"horizontal"===c?l:i,f=Math.max(0,a*s-u),p=Math.min(f,e*s),d=Math.max(0,e*s-u+s);switch("smart"===n&&(n=r>=d-u&&r<=p+u?"auto":"center"),n){case"start":return p;case"end":return d;case"center":var h=Math.round(d+(p-d)/2);return hf+Math.floor(u/2)?f:h;default:return r>=d&&r<=p?r:r0&&(0,c.jsx)("button",{type:"button",disabled:!n.visible,className:"layer-toggle",onClick:this.toggleControls,children:(0,c.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 320 512",children:(0,c.jsx)("path",{d:"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"})})})]}),(r.controls||[]).length>0&&this.state.showControls&&(0,c.jsx)("div",{className:"layer-controls",children:cg({controls:r.controls||[],settings:u,onChange:function(e,n,r){a(e,n),r||t.forceUpdate()}})})]},n.id)}}]),n}(i.Component),pu=function(t){ou(n,t);var e=au(n);function n(){var t;eu(this,n);for(var r=arguments.length,o=new Array(r),i=0;it.length)&&(e=t.length);for(var n=0,r=new Array(e);n\n \n
\n ").concat(t.label,"\n
\n \n ")}function zu(t){return"\n
\n ').concat(t.label,"\n
\n ")}var Fu=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Au(t,e)}(a,t);var e,n,r,o=Du(a);function a(){var t;Tu(this,a);for(var e=arguments.length,n=new Array(e),r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:null;t.props.onChange(t.props.options.inlineValue?e||"":Hu(Hu({},t.props.value),{},{url:t.getUrlFor(n),attachment_id:e}))})),Zu(Qu(t),"updateAttachmentInfo",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=t.getAttachmentId();n?(!wp.media.attachment(n).get("url")||e?wp.media.attachment(n).fetch().then((function(){t.setState({attachment_info:JSON.parse(JSON.stringify(wp.media.attachment(n).toJSON()))})})):t.setState({attachment_info:JSON.parse(JSON.stringify(wp.media.attachment(n).toJSON()))}),t.detachListener(),wp.media.attachment(n).on("change",t.updateAttachmentInfo)):t.props.value.url&&t.setState({attachment_info:{url:t.props.value.url}})})),Zu(Qu(t),"getAttachmentId",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.props;return e.options.inlineValue?e.value:e.value.attachment_id})),Zu(Qu(t),"getUrlFor",(function(t){return t?t.sizes&&t.sizes.full.url||t.url:null})),t}return e=i,(n=[{key:"initFrame",value:function(){var t=this;this.frame=wp.media({button:{text:"Select",close:!1},states:[new wp.media.controller.Library({title:"Select File",library:wp.media.query({type:this.props.options.mediaType||"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:(this.props.options.logo||{}).width,suggestedHeight:(this.props.options.logo||{}).height})].concat(Vu((this.props.options.skipCrop,[])))}),this.frame.on("select",this.onSelect,this),this.frame.on("close",(function(){t.props.options.onFrameClose&&t.props.options.onFrameClose()})),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)}},{key:"openFrame",value:function(){this.initFrame(),this.frame.setState("library").open(),this.props.options.onFrameOpen&&this.props.options.onFrameOpen()}},{key:"setImageFromAttachment",value:function(t){this.onChange(t.id,JSON.parse(JSON.stringify(wp.media.attachment(t.id).toJSON()))),this.updateAttachmentInfo()}},{key:"detachListener",value:function(){this.getAttachmentId()&&wp.media.attachment(this.getAttachmentId()).off("change",this.updateAttachmentInfo)}},{key:"componentDidUpdate",value:function(t){this.getAttachmentId()!==this.getAttachmentId(t)&&(wp.media.attachment(this.getAttachmentId(t)).off("change",this.updateAttachmentInfo),this.updateAttachmentInfo())}},{key:"componentDidMount",value:function(){this.updateAttachmentInfo()}},{key:"componentWillUnmount",value:function(){this.detachListener()}},{key:"render",value:function(){var t,e=this,n=this.props.options,r=n.positionPicker,o=n.emptyLabel;return(0,c.jsx)("div",{className:s("lotta-image-uploader",(t={},Zu(t,"landscape",this.state.attachment_info),Zu(t,"attachment-media-view-image",this.state.attachment_info),t)),children:this.state.attachment_info?(0,c.jsxs)("div",{className:"thumbnail thumbnail-image",onClick:function(){return!r&&e.openFrame()},children:[!r&&(0,c.jsx)("img",{className:"attachment-thumb",src:this.getUrlFor(this.state.attachment_info),draggable:"false",alt:""}),r&&(0,c.jsx)(Qa.FocalPointPicker,{url:this.getUrlFor(this.state.attachment_info),dimensions:{width:400,height:100},value:Object.assign({},{x:0,y:0},this.props.value),onChange:function(t){e.props.onChange(Hu(Hu({},e.props.value),t))}}),(0,c.jsxs)("div",{className:"actions",children:[(0,c.jsx)("button",{type:"button",className:"button edit-button control-focus",title:"Edit",onClick:function(t){t.stopPropagation(),e.openFrame()}}),(0,c.jsx)("button",{onClick:function(t){t.stopPropagation(),e.setState({attachment_info:null}),e.onChange(null)},title:"Remove",type:"button",className:"button remove-button"})]})]}):(0,c.jsx)("button",{type:"button",onClick:function(){return e.openFrame()},className:"button lotta-upload-button",children:o||"Select Image"})})}}])&&Xu(e.prototype,n),r&&Xu(e,r),Object.defineProperty(e,"prototype",{writable:!1}),i}(i.Component);const ef=tf;const nf=function(t){var e=t.gradient,n=t.onChange,r=t.swatches;return!r&&window.Lotta&&window.Lotta.customizer&&window.Lotta.customizer.gradientPicker&&(r=window.Lotta.customizer.gradientPicker.swatches),(0,c.jsxs)("div",{className:"lotta-gradient-picker",children:[(0,c.jsx)(Qa.GradientPicker,{className:"wp-gradient-picker",value:e,gradients:[],onChange:function(t){n(t)}}),(0,c.jsx)("ul",{className:"lotta-gradient-switches",children:Sg(r).map((function(t,r){return(0,c.jsx)("li",{className:s({active:t.gradient===e}),style:{"--background-image":t.gradient},onClick:function(){n(t.gradient)}},r)}))})]})};function rf(t){return rf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rf(t)}function of(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),!e||i.length!==e);a=!0);}catch(t){s=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return af(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return af(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function af(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n',title:"Repeat"},"repeat-y":{src:'',title:"Repeat Y"},"repeat-x":{src:'',title:"Repeat X"},"no-repeat":{src:'',title:"No Repeat"}}}},{id:"size",value:e.size,component:Tc,options:{label:fs("Background Size"),attr:{"data-columns":3},choices:{auto:"Auto",cover:"Cover",contain:"Contain"}}},{id:"attachment",value:e.attachment,component:Tc,options:{label:fs("Background Attachment"),attr:{"data-columns":3},choices:{scroll:"Scroll",fixed:"Fixed",inherit:"Inherit"}}},{id:"color",value:{initial:e.color},component:js,options:{label:fs("Background Color"),type:"lotta-color-picker",alpha:!0,colors:[{title:"Initial",id:"initial"}]},onChange:function(t){return t.initial}}];return(0,c.jsxs)("div",{className:"lotta-background-image",children:[(0,c.jsx)(ef,{value:e.source,options:{positionPicker:!0,onFrameOpen:this.props.onFrameOpen,onFrameClose:this.props.onFrameClose},onChange:function(t){return n(cf(cf({},e),{},{source:t}))}}),r.map((function(t){return(0,c.jsx)("div",{children:lg({value:t.value,options:t.options||{},params:t.params||{},Component:t.component,onChange:function(r){r=t.onChange?t.onChange(r):r,n(cf(cf({},e),{},lf({},t.id,r)))}})},t.id)}))]})}}],n&&ff(e.prototype,n),r&&ff(e,r),Object.defineProperty(e,"prototype",{writable:!1}),i}(i.Component),mf=function(t){var e=t.value,n=t.onChange,r=t.onFrameOpen,o=t.onFrameClose,i=e.type,a=e.color,l=e.gradient,u=e.image;return i=i||a,(0,c.jsxs)("div",{className:"lotta-background-modal",children:[(0,c.jsxs)("ul",{className:"lotta-modal-tabs",children:[(0,c.jsx)("li",{"data-bg-type":"color",className:s({active:"color"===i}),onClick:function(){return n({type:"color",color:a,gradient:l,image:u})},children:"Color"}),(0,c.jsx)("li",{"data-bg-type":"gradient",className:s({active:"gradient"===i}),onClick:function(){return n({type:"gradient",color:a,gradient:l,image:u})},children:"Gradient"}),(0,c.jsx)("li",{"data-bg-type":"image",className:s({active:"image"===i}),onClick:function(){return n({type:"image",color:a,gradient:l,image:u})},children:"Image"})]}),"color"===i&&(0,c.jsx)("div",{className:"modal-content",children:(0,c.jsx)(gs,{swatches:window.Lotta&&window.Lotta.customizer&&window.Lotta.customizer.colorPicker?Sg(window.Lotta.customizer.colorPicker.swatches):[],enableAlpha:!0,color:bg(a),onChange:function(t){return n({color:t,type:i,gradient:l,image:u})}})}),"gradient"===i&&(0,c.jsx)("div",{className:"modal-content",children:(0,c.jsx)(nf,{gradient:l,onChange:function(t){return n({gradient:t,type:i,color:a,image:u})}})}),"image"===i&&(0,c.jsx)("div",{className:"modal-content",children:(0,c.jsx)(gf,{value:u,onChange:function(t){return n({image:t,type:i,color:a,gradient:l})},onFrameOpen:r,onFrameClose:o})})]})};const vf=function(t){var e=t.value,n=t.onChange,r=of((0,i.useState)(!1),2),o=r[0],a=r[1],s={};if("color"===(e=Object.assign({type:"color",color:sg},e)).type&&(s.backgroundColor=e.color||""),"gradient"===e.type&&(s.backgroundImage=e.gradient||""),"image"===e.type){var l=e.image||{},u=l.source,f=void 0===u?{}:u,p=l.size,d=l.repeat,h=l.attachment,y=l.color;s.backgroundColor=y,s.backgroundSize=p,s.backgroundRepeat=d,s.backgroundAttachment=h,s.backgroundImage="url("+f.url+")",s.backgroundPosition="".concat(100*(f.x||0),"% ").concat(100*(f.y||0),"%")}return(0,c.jsx)(Wa,{disableOutsideClick:o,placement:"bottom",content:(0,c.jsx)(mf,{value:e,onChange:function(t){n(t)},onFrameOpen:function(){return a(!0)},onFrameClose:function(){return a(!1)}}),children:function(t){var e=t.props;return(0,c.jsx)("div",cf(cf({},e),{},{className:"lotta-background-preview-box",children:(0,c.jsx)("div",{className:"lotta-background-preview",style:s})}))}})};function bf(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function wf(t){for(var e=1;e div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',i=n.head||n.getElementsByTagName("head")[0],a=n.createElement("style");a.id="detectElementResize",a.type="text/css",null!=t&&a.setAttribute("nonce",t),a.styleSheet?a.styleSheet.cssText=r:a.appendChild(n.createTextNode(r)),i.appendChild(a)}}(u),i.__resizeLast__={},i.__resizeListeners__=[],(i.__resizeTriggers__=u.createElement("div")).className="resize-triggers";var p=u.createElement("div");p.className="expand-trigger",p.appendChild(u.createElement("div"));var d=u.createElement("div");d.className="contract-trigger",i.__resizeTriggers__.appendChild(p),i.__resizeTriggers__.appendChild(d),i.appendChild(i.__resizeTriggers__),a(i),i.addEventListener("scroll",s,!0),r&&(i.__resizeTriggers__.__animationListener__=function(t){t.animationName===n&&a(i)},i.__resizeTriggers__.addEventListener(r,i.__resizeTriggers__.__animationListener__))}i.__resizeListeners__.push(l)}},removeResizeListener:function(t,e){if(c)t.detachEvent("onresize",e);else if(t.__resizeListeners__.splice(t.__resizeListeners__.indexOf(e),1),!t.__resizeListeners__.length){t.removeEventListener("scroll",s,!0),t.__resizeTriggers__.__animationListener__&&(t.__resizeTriggers__.removeEventListener(r,t.__resizeTriggers__.__animationListener__),t.__resizeTriggers__.__animationListener__=null);try{t.__resizeTriggers__=!t.removeChild(t.__resizeTriggers__)}catch(t){}}}}}null==Rf||null==Lf?(Df=If,Nf=function(t){return Mf(t,20)}):(Df=function(t){var e=kf(t,2),n=e[0],r=e[1];Rf(n),If(r)},Nf=function(t){var e=Lf((function(){If(n),t()})),n=Mf((function(){Rf(e),t()}),20);return[e,n]});var Ff=function(t){function e(){var t,n,r;Cf(this,e);for(var o=arguments.length,i=Array(o),a=0;at.length)&&(e=t.length);for(var n=0,r=new Array(e);n2&&void 0!==arguments[2]?arguments[2]:function(){return null},r=jQuery("body"),o=function(){var r=wp.customize.control(t);if(!r||!r.section())return n();var o=wp.customize.section(r.section());if(!o)return n();o.expanded.bind(e)};if(r.hasClass("wp-customizer")&&r.hasClass("ready"))return o();wp.customize.bind("ready",o)}function Wd(t){return Wd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wd(t)}function Hd(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==n)return;var r,o,i=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),!e||i.length!==e);a=!0);}catch(t){s=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw o}}return i}(t,e)||Xd(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qd(t){return function(t){if(Array.isArray(t))return Kd(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Xd(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xd(t,e){if(t){if("string"==typeof t)return Kd(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Kd(t,e):void 0}}function Kd(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]&&arguments[0],e=document.querySelector(".wp-full-overlay #customize-preview");e&&(t?e.style.bottom=0:this.placements.current&&(e.style.bottom=this.placements.current.offsetHeight+"px"))}},{key:"render",value:function(){var t=this,e=this.props,n=e.rows,r=e.elements,o=e.value,i=e.responsive,a=e.device,l=e.onDeviceChange,u=e.onRowClick,f=e.onAddColumn,p=e.onSettingColumn,d=e.onRemoveColumn,h=e.onElementsChange,y=e.onElementRemove,g=e.onElementClick,m={},v={};return Object.keys(n).forEach((function(t){n[t].device&&n[t].device!==a||("off-canvas"===n[t].type?m[t]=n[t]:v[t]=n[t])})),(0,c.jsx)(Po,{items:null,from:{transform:"translateY(100%)"},enter:{transform:"translateY(0)"},leave:{transform:"translateY(100%)"},config:function(t,e){return{delay:0,duration:120}},children:function(e){return(0,c.jsxs)(Go.div,{ref:t.placements,style:e,className:"lotta-builder-placements",children:[t.state.visible&&(0,c.jsxs)("div",{className:"builder-placements-wrapper",children:[Object.keys(m).length>0&&(0,c.jsx)("div",{className:"builder-off-canvas-area",children:Object.keys(m).map((function(t){var e=n[t],s=o&&o[t]||{},l=(i&&s[a]?s[a]:s).columns;return(0,c.jsx)(ph,{id:t,row:e,columns:l,elements:r,onClick:u,onAddColumn:f,onSettingColumn:p,onRemoveColumn:d,onElementsChange:h,onElementClick:g,onElementRemove:y},t)}))}),(0,c.jsx)("div",{className:"builder-rows-area",children:Object.keys(v).map((function(t){var e=n[t],s=o&&o[t]||{},l=(i&&s[a]?s[a]:s).columns;return(0,c.jsx)(ph,{id:t,row:e,columns:l,elements:r,onClick:u,onAddColumn:f,onSettingColumn:p,onRemoveColumn:d,onElementsChange:h,onElementClick:g,onElementRemove:y},t)}))})]}),(0,c.jsxs)("div",{className:"builder-footer",children:[i&&(0,c.jsxs)("ul",{className:"builder-responsive-controls",children:[(0,c.jsx)("li",{className:s({active:"desktop"===a}),onClick:function(){return l("desktop")},children:fs("Desktop Builder")}),(0,c.jsx)("li",{className:s({active:"desktop"!==a}),onClick:function(){return l("tablet")},children:fs("Tablet / Mobile Builder")})]}),(0,c.jsxs)("button",{className:"toggle",type:"button",onClick:t.toggleVisible,children:[t.state.visible?(0,c.jsx)("span",{className:"lotta-dashicon dashicons-arrow-down-alt2"}):(0,c.jsx)("span",{className:"lotta-dashicon dashicons-arrow-up-alt2"}),(t.state.visible?fs("Hidden"):fs("Show"))+" "+fs("Builder")]})]})]})}})}}],n&&yh(e.prototype,n),r&&yh(e,r),Object.defineProperty(e,"prototype",{writable:!1}),a}(i.Component);function xh(t){return function(t){if(Array.isArray(t))return Sh(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return Sh(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Sh(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Sh(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n");return(0,c.jsxs)("div",{className:"lotta-repeater",children:[(0,c.jsx)(vl.ReactSortable,{tag:"ul",className:"lotta-layers",handle:".layer-label",list:f,setList:function(t){v()(t,f)||r(t)},children:f.map((function(t,e){t.id=e;var n={label:p({index:e,settings:t.settings}),controls:i};return(0,c.jsx)(fu,{value:t,dynamic:l||f.length>1,settings:Object.assign({},a,t.settings),layer:n,onNestedChange:function(t,n){r(ml()(f,Wh({},e,{settings:Wh({},n,{$set:t})})))},onRemove:function(){!l&&f.length<=1||r(ml()(f,{$splice:[[e,1]]}))},onChange:function(t){r(ml()(f,Wh({},e,{$set:t})))}},e)}))}),(!s||f.lengtht.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&(0,c.jsx)("ul",{className:"lotta-file-list",children:e.map((function(t,e){var n=t.id,r=t.filename;return(0,c.jsx)("li",{children:r},n)}))})]})}}],n&&Ey(e.prototype,n),r&&Ey(e,r),Object.defineProperty(e,"prototype",{writable:!1}),i}(i.Component);const Ry={"lotta-text":Z,"lotta-text-area":ht,"lotta-number":Ht,"lotta-slider":Nt,"lotta-toggle":ne,"lotta-border":As,"lotta-color-picker":js,"lotta-color-palettes":Xs,"lotta-spacing":tc,"lotta-select":ec,"lotta-radio":Tc,"lotta-image-radio":Uc,"lotta-separator":Vc,"lotta-section":Oi,"lotta-tabs":Jc,"lotta-collapse":yl,"lotta-layers":pu,"lotta-placeholder":function(t){return ws(t),null},"lotta-editor":xu,"lotta-info":Su,"lotta-cta":_u,"lotta-tags":Bu,"lotta-image-uploader":ef,"lotta-background":vf,"lotta-box-shadow":xf,"lotta-typography":kp,"lotta-condition":$p,"lotta-page-builder":oh,"lotta-builder":Vh,"lotta-repeater":Jh,"lotta-icons":iy,"lotta-multi-select":wy,"lotta-css-filters":_y,"lotta-file-uploader":My};function Ly(t){return Ly="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ly(t)}function zy(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Fy(t,e){for(var n=0;n=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var ig="__CZ_VALUES__",ag="__LOTTA_CONTAINER_CONTROL__",sg="__INITIAL_VALUE__",cg=function(t){var e=t.controls,n=t.onChange,r=t.settings;return(0,c.jsx)(Zy,{onChange:function(t,e,r){n(t,e,r)},controls:e,value:r||ig})},lg=function(t){var e=t.options,n=t.value,r=t.settings,o=t.id,i=t.onChange,a=t.Component,s="block",l=null,u={};a.MetaWrapper&&(l=a.MetaWrapper),a.wrapperAttr&&(u=a.wrapperAttr),a.renderingConfig&&(s=a.renderingConfig.design||s),e.design&&(s=e.design);var f=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},l=t.wrapperAttr,f=void 0===l?{}:l;og(t,tg);return(0,c.jsx)(M,{design:s,id:o,wrapperAttr:ng(ng(ng({},u),e.wrapperAttr),f),settings:r,options:e,value:n,onChange:i,Control:a})};return l?(0,c.jsx)(l,{id:o,options:e,settings:r,onChange:i,value:n,getActualControl:function(t){return f(t)}}):f()};function ug(t){return ug="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ug(t)}function fg(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=dg(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function pg(t){return function(t){if(Array.isArray(t))return t}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||dg(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dg(t,e){if(t){if("string"==typeof t)return hg(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hg(t,e):void 0}}function hg(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:1,n=Math.pow(10,e);return Math.round(t*n+Number.EPSILON)/n},vg=function(){for(var t=arguments.length,e=new Array(t),n=0;n1?n-1:0),o=1;o-1){var e=getComputedStyle(document.documentElement).getPropertyValue(t.replace(/var\(/,"").replace(/\)/,"")).trim().replace(/\s/g,"");return-1===e.indexOf("#")&&-1===e.indexOf("rgb")?"rgb(".concat(e,")"):e}return t},wg=function(t){var e=pg(t),n=e[0],r=e.slice(1),o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n.toUpperCase()+(o?r.join("").toLowerCase():r.join(""))};function Og(t,e){return-1!==e.indexOf(t)}function jg(t){return Array.from(new Set(t))}function xg(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=fg(t);try{for(r.s();!(e=r.n()).done;){var o=e.value;Array.isArray(o)?xg(o,n):"object"===ug(o)?null!=o&&xg(Object.values(o),n):n.push(o)}}catch(t){r.e(t)}finally{r.f()}return n}function Sg(t){return Array.isArray(t)?t:[]}var _g=function(t){if(!(t.length<=0)&&window.Lotta&&window.Lotta.customizer.settings){var e=window.Lotta.customizer.settings.custom_fonts,n=function(t){var e="";return t.forEach((function(t){e+="@font-face {",e+="font-family: '".concat(t.f,"';"),e+="font-weight: '".concat(t.v,"';"),t.u.forEach((function(t){-1!==t.indexOf(".otf")?e+="src: url('".concat(t,'\') format("opentype");'):-1!==t.indexOf(".ttf")?e+="src: url('".concat(t,'\') format("truetype");'):-1!==t.indexOf(".woff2")?e+="src: url('".concat(t,'\') format("woff2");'):-1!==t.indexOf(".woff")&&(e+="src: url('".concat(t,'\') format("woff");'))})),e+="}"})),e}(t.map((function(t){return e[t]})));jQuery("style#lotta-dynamic-custom-fonts-loader").remove(),jQuery("head").append('")}};window.Lotta||(window.Lotta={}),window.Lotta.expand=function(t){setTimeout((function(){var e=t.split(":"),n=e.shift(),r=Object.values(wp.customize.section._value).find((function(t){return t.expanded()}));LottaEvents.trigger("lotta-before-expand-panel",e);var o=0;if(!r||r.id!==n){var i=wp.customize.section(n);i&&i.expand(),o=180}e.length>0&&setTimeout((function(){return LottaEvents.trigger("lotta-expand-panel",e)}),o)}))},wp.customize&&wp.customize.bind("ready",(function(){wp.customize.previewer.bind("lotta-initiate-deep-link",(function(t){Lotta.expand(t)}));var t=function(t){if(!t)return{};var e=t.split("?")[1];if(!e)return{};for(var n={},r=e.split("&"),o=0,i=r.length;o{void 0===Array.prototype.findIndex&&(Array.prototype.findIndex=function(t){for(var e=0;e{var e=.1,n="function"==typeof Float32Array;function r(t,e){return 1-3*e+3*t}function o(t,e){return 3*e-6*t}function i(t){return 3*t}function a(t,e,n){return((r(e,n)*t+o(e,n))*t+i(e))*t}function s(t,e,n){return 3*r(e,n)*t*t+2*o(e,n)*t+i(e)}function c(t){return t}t.exports=function(t,r,o,i){if(!(0<=t&&t<=1&&0<=o&&o<=1))throw new Error("bezier x values must be in [0, 1] range");if(t===r&&o===i)return c;for(var l=n?new Float32Array(11):new Array(11),u=0;u<11;++u)l[u]=a(u*e,t,o);function f(n){for(var r=0,i=1;10!==i&&l[i]<=n;++i)r+=e;--i;var c=r+(n-l[i])/(l[i+1]-l[i])*e,u=s(c,t,o);return u>=.001?function(t,e,n,r){for(var o=0;o<4;++o){var i=s(e,n,r);if(0===i)return e;e-=(a(e,n,r)-t)/i}return e}(n,c,t,o):0===u?c:function(t,e,n,r,o){var i,s,c=0;do{(i=a(s=e+(n-e)/2,r,o)-t)>0?n=s:e=s}while(Math.abs(i)>1e-7&&++c<10);return s}(n,r,r+e,t,o)}return function(t){return 0===t?0:1===t?1:a(f(t),r,i)}}},1924:(t,e,n)=>{"use strict";var r=n(210),o=n(5559),i=o(r("String.prototype.indexOf"));t.exports=function(t,e){var n=r(t,!!e);return"function"==typeof n&&i(t,".prototype.")>-1?o(n):n}},5559:(t,e,n)=>{"use strict";var r=n(8612),o=n(210),i=o("%Function.prototype.apply%"),a=o("%Function.prototype.call%"),s=o("%Reflect.apply%",!0)||r.call(a,i),c=o("%Object.getOwnPropertyDescriptor%",!0),l=o("%Object.defineProperty%",!0),u=o("%Math.max%");if(l)try{l({},"a",{value:1})}catch(t){l=null}t.exports=function(t){var e=s(r,a,arguments);if(c&&l){var n=c(e,"length");n.configurable&&l(e,"length",{value:1+u(0,t.length-(arguments.length-1))})}return e};var f=function(){return s(r,i,arguments)};l?l(t.exports,"apply",{value:f}):t.exports.apply=f},487:t=>{var e={utf8:{stringToBytes:function(t){return e.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(e.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],n=0;n{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var t=[],e=0;e{"use strict";n.r(e),n.d(e,{addEventListener:()=>l});var r=!("undefined"==typeof window||!window.document||!window.document.createElement);var o=void 0;function i(){return void 0===o&&(o=function(){if(!r)return!1;if(!window.addEventListener||!window.removeEventListener||!Object.defineProperty)return!1;var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}}),n=function(){};window.addEventListener("testPassiveEventSupport",n,e),window.removeEventListener("testPassiveEventSupport",n,e)}catch(t){}return t}()),o}function a(t){t.handlers===t.nextHandlers&&(t.nextHandlers=t.handlers.slice())}function s(t){this.target=t,this.events={}}s.prototype.getEventHandlers=function(t,e){var n,r=String(t)+" "+String((n=e)?!0===n?100:(n.capture<<0)+(n.passive<<1)+(n.once<<2):0);return this.events[r]||(this.events[r]={handlers:[],handleEvent:void 0},this.events[r].nextHandlers=this.events[r].handlers),this.events[r]},s.prototype.handleEvent=function(t,e,n){var r=this.getEventHandlers(t,e);r.handlers=r.nextHandlers,r.handlers.forEach((function(t){t&&t(n)}))},s.prototype.add=function(t,e,n){var r=this,o=this.getEventHandlers(t,n);a(o),0===o.nextHandlers.length&&(o.handleEvent=this.handleEvent.bind(this,t,n),this.target.addEventListener(t,o.handleEvent,n)),o.nextHandlers.push(e);var i=!0;return function(){if(i){i=!1,a(o);var s=o.nextHandlers.indexOf(e);o.nextHandlers.splice(s,1),0===o.nextHandlers.length&&(r.target&&r.target.removeEventListener(t,o.handleEvent,n),o.handleEvent=void 0)}}};var c="__consolidated_events_handlers__";function l(t,e,n,r){t[c]||(t[c]=new s(t));var o=function(t){if(t)return i()?t:!!t.capture}(r);return t[c].add(e,n,o)}},1012:t=>{var e,n;e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(t,e){return t<>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&n.rotl(t,8)|4278255360&n.rotl(t,24);for(var e=0;e0;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],n=0,r=0;n>>5]|=t[n]<<24-r%32;return e},wordsToBytes:function(t){for(var e=[],n=0;n<32*t.length;n+=8)e.push(t[n>>>5]>>>24-n%32&255);return e},bytesToHex:function(t){for(var e=[],n=0;n>>4).toString(16)),e.push((15&t[n]).toString(16));return e.join("")},hexToBytes:function(t){for(var e=[],n=0;n>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],r=0,o=0;r>>6-2*o);return n}},t.exports=n},251:(t,e,n)=>{"use strict";var r=n(2215),o=n(2584),i=n(609),a=n(8420),s=n(2847),c=n(8326),l=n(8923),u=n(3679),f=n(210),p=n(1924),d=n(3483),h=n(3216),y=n(7478),g=n(6430),m=n(3533),v=p("Date.prototype.getTime"),b=Object.getPrototypeOf,w=p("Object.prototype.toString"),O=f("%Set%",!0),j=p("Map.prototype.has",!0),x=p("Map.prototype.get",!0),S=p("Map.prototype.size",!0),_=p("Set.prototype.add",!0),C=p("Set.prototype.delete",!0),P=p("Set.prototype.has",!0),E=p("Set.prototype.size",!0);function T(t,e,n,r){for(var o,i=h(t);(o=i.next())&&!o.done;)if(I(e,o.value,n,r))return C(t,o.value),!0;return!1}function k(t){return void 0===t?null:"object"!=typeof t?"symbol"!=typeof t&&("string"!=typeof t&&"number"!=typeof t||+t==+t):void 0}function A(t,e,n,r,o,i){var a=k(n);if(null!=a)return a;var s=x(e,a),c=m({},o,{strict:!1});return!(void 0===s&&!j(e,a)||!I(r,s,c,i))&&(!j(t,a)&&I(r,s,c,i))}function D(t,e,n){var r=k(n);return null!=r?r:P(e,r)&&!P(t,r)}function N(t,e,n,r,o,i){for(var a,s,c=h(t);(a=c.next())&&!a.done;)if(I(n,s=a.value,o,i)&&I(r,x(e,s),o,i))return C(t,s),!0;return!1}function I(t,e,n,f){var p=n||{};if(p.strict?i(t,e):t===e)return!0;if(u(t)!==u(e))return!1;if(!t||!e||"object"!=typeof t&&"object"!=typeof e)return p.strict?i(t,e):t==e;var y,C=f.has(t),k=f.has(e);if(C&&k){if(f.get(t)===f.get(e))return!0}else y={};return C||f.set(t,y),k||f.set(e,y),function(t,e,n,i){var u,f;if(typeof t!=typeof e)return!1;if(null==t||null==e)return!1;if(w(t)!==w(e))return!1;if(o(t)!==o(e))return!1;var p=c(t),y=c(e);if(p!==y)return!1;var C=t instanceof Error,k=e instanceof Error;if(C!==k)return!1;if((C||k)&&(t.name!==e.name||t.message!==e.message))return!1;var R=a(t),L=a(e);if(R!==L)return!1;if((R||L)&&(t.source!==e.source||s(t)!==s(e)))return!1;var z=l(t),F=l(e);if(z!==F)return!1;if((z||F)&&v(t)!==v(e))return!1;if(n.strict&&b&&b(t)!==b(e))return!1;if(g(t)!==g(e))return!1;var B=M(t),U=M(e);if(B!==U)return!1;if(B||U){if(t.length!==e.length)return!1;for(u=0;u=0;u--)if(V[u]!=$[u])return!1;for(u=V.length-1;u>=0;u--)if(!I(t[f=V[u]],e[f],n,i))return!1;var W=d(t),H=d(e);if(W!==H)return!1;if("Set"===W||"Set"===H)return function(t,e,n,r){if(E(t)!==E(e))return!1;var o,i,a,s=h(t),c=h(e);for(;(o=s.next())&&!o.done;)if(o.value&&"object"==typeof o.value)a||(a=new O),_(a,o.value);else if(!P(e,o.value)){if(n.strict)return!1;if(!D(t,e,o.value))return!1;a||(a=new O),_(a,o.value)}if(a){for(;(i=c.next())&&!i.done;)if(i.value&&"object"==typeof i.value){if(!T(a,i.value,n.strict,r))return!1}else if(!n.strict&&!P(t,i.value)&&!T(a,i.value,n.strict,r))return!1;return 0===E(a)}return!0}(t,e,n,i);if("Map"===W)return function(t,e,n,r){if(S(t)!==S(e))return!1;var o,i,a,s,c,l,u=h(t),f=h(e);for(;(o=u.next())&&!o.done;)if(s=o.value[0],c=o.value[1],s&&"object"==typeof s)a||(a=new O),_(a,s);else if(void 0===(l=x(e,s))&&!j(e,s)||!I(c,l,n,r)){if(n.strict)return!1;if(!A(t,e,s,c,n,r))return!1;a||(a=new O),_(a,s)}if(a){for(;(i=f.next())&&!i.done;)if(s=i.value[0],l=i.value[1],s&&"object"==typeof s){if(!N(a,t,s,l,n,r))return!1}else if(!(n.strict||t.has(s)&&I(x(t,s),l,n,r)||N(a,t,s,l,m({},n,{strict:!1}),r)))return!1;return 0===E(a)}return!0}(t,e,n,i);return!0}(t,e,p,f)}function M(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&(!(t.length>0&&"number"!=typeof t[0])&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))))}t.exports=function(t,e,n){return I(t,e,n,y())}},8326:t=>{var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},4289:(t,e,n)=>{"use strict";var r=n(2215),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,a=Array.prototype.concat,s=Object.defineProperty,c=n(1044)(),l=s&&c,u=function(t,e,n,r){var o;(!(e in t)||"function"==typeof(o=r)&&"[object Function]"===i.call(o)&&r())&&(l?s(t,e,{configurable:!0,enumerable:!1,value:n,writable:!0}):t[e]=n)},f=function(t,e){var n=arguments.length>2?arguments[2]:{},i=r(e);o&&(i=a.call(i,Object.getOwnPropertySymbols(e)));for(var s=0;s{"use strict";t.exports=function(t){if(arguments.length<1)throw new TypeError("1 argument is required");if("object"!=typeof t)throw new TypeError("Argument 1 (”other“) to Node.contains must be an instance of Node");var e=t;do{if(this===e)return!0;e&&(e=e.parentNode)}while(e);return!1}},2483:(t,e,n)=>{"use strict";var r=n(4289),o=n(1676),i=n(4356),a=i(),s=function(t,e){return a.apply(t,[e])};r(s,{getPolyfill:i,implementation:o,shim:n(1514)}),t.exports=s},4356:(t,e,n)=>{"use strict";var r=n(1676);t.exports=function(){if("undefined"!=typeof document){if(document.contains)return document.contains;if(document.body&&document.body.contains)try{if("boolean"==typeof document.body.contains.call(document,""))return document.body.contains}catch(t){}}return r}},1514:(t,e,n)=>{"use strict";var r=n(4289),o=n(4356);t.exports=function(){var t=o();return"undefined"!=typeof document&&(r(document,{contains:t},{contains:function(){return document.contains!==t}}),"undefined"!=typeof Element&&r(Element.prototype,{contains:t},{contains:function(){return Element.prototype.contains!==t}})),t}},5677:t=>{var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},4029:(t,e,n)=>{"use strict";var r=n(5320),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty,a=function(t,e,n){for(var r=0,o=t.length;r=3&&(i=n),"[object Array]"===o.call(t)?a(t,e,i):"string"==typeof t?s(t,e,i):c(t,e,i)}},7648:t=>{"use strict";var e="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,r=Object.prototype.toString,o="[object Function]";t.exports=function(t){var i=this;if("function"!=typeof i||r.call(i)!==o)throw new TypeError(e+i);for(var a,s=n.call(arguments,1),c=function(){if(this instanceof a){var e=i.apply(this,s.concat(n.call(arguments)));return Object(e)===e?e:this}return i.apply(t,s.concat(n.call(arguments)))},l=Math.max(0,i.length-s.length),u=[],f=0;f{"use strict";var r=n(7648);t.exports=Function.prototype.bind||r},5972:t=>{"use strict";var e=function(){return"string"==typeof function(){}.name},n=Object.getOwnPropertyDescriptor;if(n)try{n([],"length")}catch(t){n=null}e.functionsHaveConfigurableNames=function(){if(!e()||!n)return!1;var t=n((function(){}),"name");return!!t&&!!t.configurable};var r=Function.prototype.bind;e.boundFunctionsHaveNames=function(){return e()&&"function"==typeof r&&""!==function(){}.bind().name},t.exports=e},210:(t,e,n)=>{"use strict";var r,o=SyntaxError,i=Function,a=TypeError,s=function(t){try{return i('"use strict"; return ('+t+").constructor;")()}catch(t){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(t){c=null}var l=function(){throw new a},u=c?function(){try{return l}catch(t){try{return c(arguments,"callee").get}catch(t){return l}}}():l,f=n(1405)(),p=Object.getPrototypeOf||function(t){return t.__proto__},d={},h="undefined"==typeof Uint8Array?r:p(Uint8Array),y={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":d,"%AsyncGenerator%":d,"%AsyncGeneratorFunction%":d,"%AsyncIteratorPrototype%":d,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":d,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f?p(p([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&f?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&f?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":u,"%TypedArray%":h,"%TypeError%":a,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet},g=function t(e){var n;if("%AsyncFunction%"===e)n=s("async function () {}");else if("%GeneratorFunction%"===e)n=s("function* () {}");else if("%AsyncGeneratorFunction%"===e)n=s("async function* () {}");else if("%AsyncGenerator%"===e){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&(n=p(o.prototype))}return y[e]=n,n},m={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},v=n(8612),b=n(7642),w=v.call(Function.call,Array.prototype.concat),O=v.call(Function.apply,Array.prototype.splice),j=v.call(Function.call,String.prototype.replace),x=v.call(Function.call,String.prototype.slice),S=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,_=/\\(\\)?/g,C=function(t){var e=x(t,0,1),n=x(t,-1);if("%"===e&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==e)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return j(t,S,(function(t,e,n,o){r[r.length]=n?j(o,_,"$1"):e||t})),r},P=function(t,e){var n,r=t;if(b(m,r)&&(r="%"+(n=m[r])[0]+"%"),b(y,r)){var i=y[r];if(i===d&&(i=g(r)),void 0===i&&!e)throw new a("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new a('"allowMissing" argument must be a boolean');var n=C(t),r=n.length>0?n[0]:"",i=P("%"+r+"%",e),s=i.name,l=i.value,u=!1,f=i.alias;f&&(r=f[0],O(n,w([0,1],f)));for(var p=1,d=!0;p=n.length){var v=c(l,h);l=(d=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:l[h]}else d=b(l,h),l=l[h];d&&!u&&(y[s]=l)}}return l}},932:t=>{"use strict";var e="undefined"!=typeof BigInt&&BigInt;t.exports=function(){return"function"==typeof e&&"function"==typeof BigInt&&"bigint"==typeof e(42)&&"bigint"==typeof BigInt(42)}},1044:(t,e,n)=>{"use strict";var r=n(210)("%Object.defineProperty%",!0),o=function(){if(r)try{return r({},"a",{value:1}),!0}catch(t){return!1}return!1};o.hasArrayLengthDefineBug=function(){if(!o())return null;try{return 1!==r([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},1405:(t,e,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=n(5419);t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},5419:t=>{"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),n=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var r=Object.getOwnPropertySymbols(t);if(1!==r.length||r[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(t,e);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},6410:(t,e,n)=>{"use strict";var r=n(5419);t.exports=function(){return r()&&!!Symbol.toStringTag}},7642:(t,e,n)=>{"use strict";var r=n(8612);t.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},7145:(t,e,n)=>{"use strict";var r=n(4155);function o(t){return"object"!=typeof t||"toString"in t?t:Object.prototype.toString.call(t).slice(8,-1)}Object.defineProperty(e,"__esModule",{value:!0});var i="object"==typeof r&&!0;function a(t,e){if(!t){if(i)throw new Error("Invariant failed");throw new Error(e())}}e.invariant=a;var s=Object.prototype.hasOwnProperty,c=Array.prototype.splice,l=Object.prototype.toString;function u(t){return l.call(t).slice(8,-1)}var f=Object.assign||function(t,e){return p(e).forEach((function(n){s.call(e,n)&&(t[n]=e[n])})),t},p="function"==typeof Object.getOwnPropertySymbols?function(t){return Object.keys(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.keys(t)};function d(t){return Array.isArray(t)?f(t.constructor(t.length),t):"Map"===u(t)?new Map(t):"Set"===u(t)?new Set(t):t&&"object"==typeof t?f(Object.create(Object.getPrototypeOf(t)),t):t}var h=function(){function t(){this.commands=f({},y),this.update=this.update.bind(this),this.update.extend=this.extend=this.extend.bind(this),this.update.isEquals=function(t,e){return t===e},this.update.newContext=function(){return(new t).update}}return Object.defineProperty(t.prototype,"isEquals",{get:function(){return this.update.isEquals},set:function(t){this.update.isEquals=t},enumerable:!0,configurable:!0}),t.prototype.extend=function(t,e){this.commands[t]=e},t.prototype.update=function(t,e){var n=this,r="function"==typeof e?{$apply:e}:e;Array.isArray(t)&&Array.isArray(r)||a(!Array.isArray(r),(function(){return"update(): You provided an invalid spec to update(). The spec may not contain an array except as the value of $set, $push, $unshift, $splice or any custom command allowing an array value."})),a("object"==typeof r&&null!==r,(function(){return"update(): You provided an invalid spec to update(). The spec and every included key path must be plain objects containing one of the following commands: "+Object.keys(n.commands).join(", ")+"."}));var o=t;return p(r).forEach((function(e){if(s.call(n.commands,e)){var i=t===o;o=n.commands[e](r[e],o,r,t),i&&n.isEquals(o,t)&&(o=t)}else{var a="Map"===u(t)?n.update(t.get(e),r[e]):n.update(t[e],r[e]),c="Map"===u(o)?o.get(e):o[e];n.isEquals(a,c)&&(void 0!==a||s.call(t,e))||(o===t&&(o=d(t)),"Map"===u(o)?o.set(e,a):o[e]=a)}})),o},t}();e.Context=h;var y={$push:function(t,e,n){return m(e,n,"$push"),t.length?e.concat(t):e},$unshift:function(t,e,n){return m(e,n,"$unshift"),t.length?t.concat(e):e},$splice:function(t,e,n,r){return function(t,e){a(Array.isArray(t),(function(){return"Expected $splice target to be an array; got "+o(t)})),b(e.$splice)}(e,n),t.forEach((function(t){b(t),e===r&&t.length&&(e=d(r)),c.apply(e,t)})),e},$set:function(t,e,n){return function(t){a(1===Object.keys(t).length,(function(){return"Cannot have more than one key in an object with $set"}))}(n),t},$toggle:function(t,e){v(t,"$toggle");var n=t.length?d(e):e;return t.forEach((function(t){n[t]=!e[t]})),n},$unset:function(t,e,n,r){return v(t,"$unset"),t.forEach((function(t){Object.hasOwnProperty.call(e,t)&&(e===r&&(e=d(r)),delete e[t])})),e},$add:function(t,e,n,r){return w(e,"$add"),v(t,"$add"),"Map"===u(e)?t.forEach((function(t){var n=t[0],o=t[1];e===r&&e.get(n)!==o&&(e=d(r)),e.set(n,o)})):t.forEach((function(t){e!==r||e.has(t)||(e=d(r)),e.add(t)})),e},$remove:function(t,e,n,r){return w(e,"$remove"),v(t,"$remove"),t.forEach((function(t){e===r&&e.has(t)&&(e=d(r)),e.delete(t)})),e},$merge:function(t,e,n,r){var i,s;return i=e,a((s=t)&&"object"==typeof s,(function(){return"update(): $merge expects a spec of type 'object'; got "+o(s)})),a(i&&"object"==typeof i,(function(){return"update(): $merge expects a target of type 'object'; got "+o(i)})),p(t).forEach((function(n){t[n]!==e[n]&&(e===r&&(e=d(r)),e[n]=t[n])})),e},$apply:function(t,e){var n;return a("function"==typeof(n=t),(function(){return"update(): expected spec of $apply to be a function; got "+o(n)+"."})),t(e)}},g=new h;function m(t,e,n){a(Array.isArray(t),(function(){return"update(): expected target of "+o(n)+" to be an array; got "+o(t)+"."})),v(e[n],n)}function v(t,e){a(Array.isArray(t),(function(){return"update(): expected spec of "+o(e)+" to be an array; got "+o(t)+". Did you forget to wrap your parameter in an array?"}))}function b(t){a(Array.isArray(t),(function(){return"update(): expected spec of $splice to be an array of arrays; got "+o(t)+". Did you forget to wrap your parameters in an array?"}))}function w(t,e){var n=u(t);a("Map"===n||"Set"===n,(function(){return"update(): "+o(e)+" expects a target of type Set or Map; got "+o(n)}))}e.isEquals=g.update.isEquals,e.extend=g.extend,e.default=g.update,e.default.default=t.exports=f(e.default,e)},2584:(t,e,n)=>{"use strict";var r=n(6410)(),o=n(1924)("Object.prototype.toString"),i=function(t){return!(r&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===o(t)},a=function(t){return!!i(t)||null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==o(t)&&"[object Function]"===o(t.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a},3376:(t,e,n)=>{"use strict";if(n(932)()){var r=BigInt.prototype.valueOf;t.exports=function(t){return null!=t&&"boolean"!=typeof t&&"string"!=typeof t&&"number"!=typeof t&&"symbol"!=typeof t&&"function"!=typeof t&&("bigint"==typeof t||function(t){try{return r.call(t),!0}catch(t){}return!1}(t))}}else t.exports=function(t){return!1}},6814:(t,e,n)=>{"use strict";var r=n(1924),o=r("Boolean.prototype.toString"),i=r("Object.prototype.toString"),a=n(6410)();t.exports=function(t){return"boolean"==typeof t||null!==t&&"object"==typeof t&&(a&&Symbol.toStringTag in t?function(t){try{return o(t),!0}catch(t){return!1}}(t):"[object Boolean]"===i(t))}},8738:t=>{function e(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}t.exports=function(t){return null!=t&&(e(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&e(t.slice(0,0))}(t)||!!t._isBuffer)}},5320:t=>{"use strict";var e,n,r=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw n}}),n={},o((function(){throw 42}),null,e)}catch(t){t!==n&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=r.call(t);return i.test(e)}catch(t){return!1}},s=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,l="object"==typeof document&&void 0===document.all&&void 0!==document.all?document.all:{};t.exports=o?function(t){if(t===l)return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if("function"==typeof t&&!t.prototype)return!0;try{o(t,null,e)}catch(t){if(t!==n)return!1}return!a(t)}:function(t){if(t===l)return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if("function"==typeof t&&!t.prototype)return!0;if(c)return function(t){try{return!a(t)&&(r.call(t),!0)}catch(t){return!1}}(t);if(a(t))return!1;var e=s.call(t);return"[object Function]"===e||"[object GeneratorFunction]"===e}},8923:(t,e,n)=>{"use strict";var r=Date.prototype.getDay,o=Object.prototype.toString,i=n(6410)();t.exports=function(t){return"object"==typeof t&&null!==t&&(i?function(t){try{return r.call(t),!0}catch(t){return!1}}(t):"[object Date]"===o.call(t))}},8379:t=>{"use strict";var e,n="function"==typeof Map&&Map.prototype?Map:null,r="function"==typeof Set&&Set.prototype?Set:null;n||(e=function(t){return!1});var o=n?Map.prototype.has:null,i=r?Set.prototype.has:null;e||o||(e=function(t){return!1}),t.exports=e||function(t){if(!t||"object"!=typeof t)return!1;try{if(o.call(t),i)try{i.call(t)}catch(t){return!0}return t instanceof n}catch(t){}return!1}},4578:(t,e,n)=>{"use strict";var r=Number.prototype.toString,o=Object.prototype.toString,i=n(6410)();t.exports=function(t){return"number"==typeof t||"object"==typeof t&&(i?function(t){try{return r.call(t),!0}catch(t){return!1}}(t):"[object Number]"===o.call(t))}},8420:(t,e,n)=>{"use strict";var r,o,i,a,s=n(1924),c=n(6410)();if(c){r=s("Object.prototype.hasOwnProperty"),o=s("RegExp.prototype.exec"),i={};var l=function(){throw i};a={toString:l,valueOf:l},"symbol"==typeof Symbol.toPrimitive&&(a[Symbol.toPrimitive]=l)}var u=s("Object.prototype.toString"),f=Object.getOwnPropertyDescriptor;t.exports=c?function(t){if(!t||"object"!=typeof t)return!1;var e=f(t,"lastIndex");if(!(e&&r(e,"value")))return!1;try{o(t,a)}catch(t){return t===i}}:function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===u(t)}},9572:t=>{"use strict";var e,n="function"==typeof Map&&Map.prototype?Map:null,r="function"==typeof Set&&Set.prototype?Set:null;r||(e=function(t){return!1});var o=n?Map.prototype.has:null,i=r?Set.prototype.has:null;e||i||(e=function(t){return!1}),t.exports=e||function(t){if(!t||"object"!=typeof t)return!1;try{if(i.call(t),o)try{o.call(t)}catch(t){return!0}return t instanceof r}catch(t){}return!1}},9981:(t,e,n)=>{"use strict";var r=String.prototype.valueOf,o=Object.prototype.toString,i=n(6410)();t.exports=function(t){return"string"==typeof t||"object"==typeof t&&(i?function(t){try{return r.call(t),!0}catch(t){return!1}}(t):"[object String]"===o.call(t))}},2636:(t,e,n)=>{"use strict";var r=Object.prototype.toString;if(n(1405)()){var o=Symbol.prototype.toString,i=/^Symbol\(.*\)$/;t.exports=function(t){if("symbol"==typeof t)return!0;if("[object Symbol]"!==r.call(t))return!1;try{return function(t){return"symbol"==typeof t.valueOf()&&i.test(o.call(t))}(t)}catch(t){return!1}}}else t.exports=function(t){return!1}},5692:(t,e,n)=>{"use strict";var r=n(4029),o=n(3083),i=n(1924),a=i("Object.prototype.toString"),s=n(6410)(),c="undefined"==typeof globalThis?n.g:globalThis,l=o(),u=i("Array.prototype.indexOf",!0)||function(t,e){for(var n=0;n-1}return!!d&&function(t){var e=!1;return r(p,(function(n,r){if(!e)try{e=n.call(t)===r}catch(t){}})),e}(t)}},1718:t=>{"use strict";var e,n="function"==typeof WeakMap&&WeakMap.prototype?WeakMap:null,r="function"==typeof WeakSet&&WeakSet.prototype?WeakSet:null;n||(e=function(t){return!1});var o=n?n.prototype.has:null,i=r?r.prototype.has:null;e||o||(e=function(t){return!1}),t.exports=e||function(t){if(!t||"object"!=typeof t)return!1;try{if(o.call(t,o),i)try{i.call(t,i)}catch(t){return!0}return t instanceof n}catch(t){}return!1}},5899:(t,e,n)=>{"use strict";var r=n(210),o=n(1924),i=r("%WeakSet%",!0),a=o("WeakSet.prototype.has",!0);if(a){var s=o("WeakMap.prototype.has",!0);t.exports=function(t){if(!t||"object"!=typeof t)return!1;try{if(a(t,a),s)try{s(t,s)}catch(t){return!0}return t instanceof i}catch(t){}return!1}}else t.exports=function(t){return!1}},2568:(t,e,n)=>{var r,o,i,a,s;r=n(1012),o=n(487).utf8,i=n(8738),a=n(487).bin,(s=function(t,e){t.constructor==String?t=e&&"binary"===e.encoding?a.stringToBytes(t):o.stringToBytes(t):i(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||t.constructor===Uint8Array||(t=t.toString());for(var n=r.bytesToWords(t),c=8*t.length,l=1732584193,u=-271733879,f=-1732584194,p=271733878,d=0;d>>24)|4278255360&(n[d]<<24|n[d]>>>8);n[c>>>5]|=128<>>9<<4)]=c;var h=s._ff,y=s._gg,g=s._hh,m=s._ii;for(d=0;d>>0,u=u+b>>>0,f=f+w>>>0,p=p+O>>>0}return r.endian([l,u,f,p])})._ff=function(t,e,n,r,o,i,a){var s=t+(e&n|~e&r)+(o>>>0)+a;return(s<>>32-i)+e},s._gg=function(t,e,n,r,o,i,a){var s=t+(e&r|n&~r)+(o>>>0)+a;return(s<>>32-i)+e},s._hh=function(t,e,n,r,o,i,a){var s=t+(e^n^r)+(o>>>0)+a;return(s<>>32-i)+e},s._ii=function(t,e,n,r,o,i,a){var s=t+(n^(e|~r))+(o>>>0)+a;return(s<>>32-i)+e},s._blocksize=16,s._digestsize=16,t.exports=function(t,e){if(null==t)throw new Error("Illegal argument "+t);var n=r.wordsToBytes(s(t,e));return e&&e.asBytes?n:e&&e.asString?a.bytesToString(n):r.bytesToHex(n)}},9588:t=>{t.exports=function(t,e){var n,r,o=0;function i(){var i,a,s=n,c=arguments.length;t:for(;s;){if(s.args.length===arguments.length){for(a=0;a{},6545:()=>{},7418:t=>{"use strict";var e=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,i){for(var a,s,c=o(t),l=1;l{var r="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=r&&o&&"function"==typeof o.get?o.get:null,a=r&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,c=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&c&&"function"==typeof c.get?c.get:null,u=s&&Set.prototype.forEach,f="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,p="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,d="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,h=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,v=String.prototype.slice,b=String.prototype.replace,w=String.prototype.toUpperCase,O=String.prototype.toLowerCase,j=RegExp.prototype.test,x=Array.prototype.concat,S=Array.prototype.join,_=Array.prototype.slice,C=Math.floor,P="function"==typeof BigInt?BigInt.prototype.valueOf:null,E=Object.getOwnPropertySymbols,T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,k="function"==typeof Symbol&&"object"==typeof Symbol.iterator,A="function"==typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===k||"symbol")?Symbol.toStringTag:null,D=Object.prototype.propertyIsEnumerable,N=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function I(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||j.call(/e/,e))return e;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var r=t<0?-C(-t):C(t);if(r!==t){var o=String(r),i=v.call(e,o.length+1);return b.call(o,n,"$&_")+"."+b.call(b.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(e,n,"$&_")}var M=n(4654),R=M.custom,L=V(R)?R:null;function z(t,e,n){var r="double"===(n.quoteStyle||e)?'"':"'";return r+t+r}function F(t){return b.call(String(t),/"/g,""")}function B(t){return!("[object Array]"!==H(t)||A&&"object"==typeof t&&A in t)}function U(t){return!("[object RegExp]"!==H(t)||A&&"object"==typeof t&&A in t)}function V(t){if(k)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}t.exports=function t(e,n,r,o){var s=n||{};if(W(s,"quoteStyle")&&"single"!==s.quoteStyle&&"double"!==s.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(W(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var c=!W(s,"customInspect")||s.customInspect;if("boolean"!=typeof c&&"symbol"!==c)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(W(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(W(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var y=s.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return X(e,s);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var w=String(e);return y?I(e,w):w}if("bigint"==typeof e){var j=String(e)+"n";return y?I(e,j):j}var C=void 0===s.depth?5:s.depth;if(void 0===r&&(r=0),r>=C&&C>0&&"object"==typeof e)return B(e)?"[Array]":"[Object]";var E=function(t,e){var n;if("\t"===t.indent)n="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;n=S.call(Array(t.indent+1)," ")}return{base:n,prev:S.call(Array(e+1),n)}}(s,r);if(void 0===o)o=[];else if(q(o,e)>=0)return"[Circular]";function R(e,n,i){if(n&&(o=_.call(o)).push(n),i){var a={depth:s.depth};return W(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),t(e,a,r+1,o)}return t(e,s,r+1,o)}if("function"==typeof e&&!U(e)){var $=function(t){if(t.name)return t.name;var e=m.call(g.call(t),/^function\s*([\w$]+)/);if(e)return e[1];return null}(e),K=Z(e,R);return"[Function"+($?": "+$:" (anonymous)")+"]"+(K.length>0?" { "+S.call(K,", ")+" }":"")}if(V(e)){var tt=k?b.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):T.call(e);return"object"!=typeof e||k?tt:Y(tt)}if(function(t){if(!t||"object"!=typeof t)return!1;if("undefined"!=typeof HTMLElement&&t instanceof HTMLElement)return!0;return"string"==typeof t.nodeName&&"function"==typeof t.getAttribute}(e)){for(var et="<"+O.call(String(e.nodeName)),nt=e.attributes||[],rt=0;rt"}if(B(e)){if(0===e.length)return"[]";var ot=Z(e,R);return E&&!function(t){for(var e=0;e=0)return!1;return!0}(ot)?"["+J(ot,E)+"]":"[ "+S.call(ot,", ")+" ]"}if(function(t){return!("[object Error]"!==H(t)||A&&"object"==typeof t&&A in t)}(e)){var it=Z(e,R);return"cause"in Error.prototype||!("cause"in e)||D.call(e,"cause")?0===it.length?"["+String(e)+"]":"{ ["+String(e)+"] "+S.call(it,", ")+" }":"{ ["+String(e)+"] "+S.call(x.call("[cause]: "+R(e.cause),it),", ")+" }"}if("object"==typeof e&&c){if(L&&"function"==typeof e[L]&&M)return M(e,{depth:C-r});if("symbol"!==c&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{l.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var at=[];return a.call(e,(function(t,n){at.push(R(n,e,!0)+" => "+R(t,e))})),Q("Map",i.call(e),at,E)}if(function(t){if(!l||!t||"object"!=typeof t)return!1;try{l.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var st=[];return u.call(e,(function(t){st.push(R(t,e))})),Q("Set",l.call(e),st,E)}if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return G("WeakMap");if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return G("WeakSet");if(function(t){if(!d||!t||"object"!=typeof t)return!1;try{return d.call(t),!0}catch(t){}return!1}(e))return G("WeakRef");if(function(t){return!("[object Number]"!==H(t)||A&&"object"==typeof t&&A in t)}(e))return Y(R(Number(e)));if(function(t){if(!t||"object"!=typeof t||!P)return!1;try{return P.call(t),!0}catch(t){}return!1}(e))return Y(R(P.call(e)));if(function(t){return!("[object Boolean]"!==H(t)||A&&"object"==typeof t&&A in t)}(e))return Y(h.call(e));if(function(t){return!("[object String]"!==H(t)||A&&"object"==typeof t&&A in t)}(e))return Y(R(String(e)));if(!function(t){return!("[object Date]"!==H(t)||A&&"object"==typeof t&&A in t)}(e)&&!U(e)){var ct=Z(e,R),lt=N?N(e)===Object.prototype:e instanceof Object||e.constructor===Object,ut=e instanceof Object?"":"null prototype",ft=!lt&&A&&Object(e)===e&&A in e?v.call(H(e),8,-1):ut?"Object":"",pt=(lt||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(ft||ut?"["+S.call(x.call([],ft||[],ut||[]),": ")+"] ":"");return 0===ct.length?pt+"{}":E?pt+"{"+J(ct,E)+"}":pt+"{ "+S.call(ct,", ")+" }"}return String(e)};var $=Object.prototype.hasOwnProperty||function(t){return t in this};function W(t,e){return $.call(t,e)}function H(t){return y.call(t)}function q(t,e){if(t.indexOf)return t.indexOf(e);for(var n=0,r=t.length;ne.maxStringLength){var n=t.length-e.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return X(v.call(t,0,e.maxStringLength),e)+r}return z(b.call(b.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,K),"single",e)}function K(t){var e=t.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return n?"\\"+n:"\\x"+(e<16?"0":"")+w.call(e.toString(16))}function Y(t){return"Object("+t+")"}function G(t){return t+" { ? }"}function Q(t,e,n,r){return t+" ("+e+") {"+(r?J(n,r):S.call(n,", "))+"}"}function J(t,e){if(0===t.length)return"";var n="\n"+e.prev+e.base;return n+S.call(t,","+n)+"\n"+e.prev}function Z(t,e){var n=B(t),r=[];if(n){r.length=t.length;for(var o=0;o{"use strict";var e=function(t){return t!=t};t.exports=function(t,n){return 0===t&&0===n?1/t==1/n:t===n||!(!e(t)||!e(n))}},609:(t,e,n)=>{"use strict";var r=n(4289),o=n(5559),i=n(4244),a=n(5624),s=n(2281),c=o(a(),Object);r(c,{getPolyfill:a,implementation:i,shim:s}),t.exports=c},5624:(t,e,n)=>{"use strict";var r=n(4244);t.exports=function(){return"function"==typeof Object.is?Object.is:r}},2281:(t,e,n)=>{"use strict";var r=n(5624),o=n(4289);t.exports=function(){var t=r();return o(Object,{is:t},{is:function(){return Object.is!==t}}),t}},8987:(t,e,n)=>{"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,a=n(1414),s=Object.prototype.propertyIsEnumerable,c=!s.call({toString:null},"toString"),l=s.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(t){var e=t.constructor;return e&&e.prototype===t},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!p["$"+t]&&o.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{f(window[t])}catch(t){return!0}}catch(t){return!0}return!1}();r=function(t){var e=null!==t&&"object"==typeof t,n="[object Function]"===i.call(t),r=a(t),s=e&&"[object String]"===i.call(t),p=[];if(!e&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var h=l&&n;if(s&&t.length>0&&!o.call(t,0))for(var y=0;y0)for(var g=0;g{"use strict";var r=Array.prototype.slice,o=n(1414),i=Object.keys,a=i?function(t){return i(t)}:n(8987),s=Object.keys;a.shim=function(){if(Object.keys){var t=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);t||(Object.keys=function(t){return o(t)?s(r.call(t)):s(t)})}else Object.keys=a;return Object.keys||a},t.exports=a},1414:t=>{"use strict";var e=Object.prototype.toString;t.exports=function(t){var n=e.call(t),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===e.call(t.callee)),r}},2837:(t,e,n)=>{"use strict";var r=n(2215),o=function(t){return null!=t},i=n(5419)(),a=n(1924),s=Object,c=a("Array.prototype.push"),l=a("Object.prototype.propertyIsEnumerable"),u=i?Object.getOwnPropertySymbols:null;t.exports=function(t,e){if(!o(t))throw new TypeError("target must be an object");var n,a,f,p,d,h,y,g=s(t);for(n=1;n{"use strict";var r=n(4289),o=n(5559),i=n(2837),a=n(8162),s=n(4489),c=o.apply(a()),l=function(t,e){return c(Object,arguments)};r(l,{getPolyfill:a,implementation:i,shim:s}),t.exports=l},8162:(t,e,n)=>{"use strict";var r=n(2837);t.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),n={},r=0;r{"use strict";var r=n(4289),o=n(8162);t.exports=function(){var t=o();return r(Object,{assign:t},{assign:function(){return Object.assign!==t}}),t}},3513:(t,e,n)=>{"use strict";var r=n(9619),o=n(1924),i=o("Object.prototype.propertyIsEnumerable"),a=o("Array.prototype.push");t.exports=function(t){var e=r(t),n=[];for(var o in e)i(e,o)&&a(n,e[o]);return n}},5869:(t,e,n)=>{"use strict";var r=n(4289),o=n(5559),i=n(3513),a=n(7164),s=n(6970),c=o(a(),Object);r(c,{getPolyfill:a,implementation:i,shim:s}),t.exports=c},7164:(t,e,n)=>{"use strict";var r=n(3513);t.exports=function(){return"function"==typeof Object.values?Object.values:r}},6970:(t,e,n)=>{"use strict";var r=n(7164),o=n(4289);t.exports=function(){var t=r();return o(Object,{values:t},{values:function(){return Object.values!==t}}),t}},4155:t=>{var e,n,r=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(t){if(e===setTimeout)return setTimeout(t,0);if((e===o||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(n){try{return e.call(null,t,0)}catch(n){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:o}catch(t){e=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(t){n=i}}();var s,c=[],l=!1,u=-1;function f(){l&&s&&(l=!1,s.length?c=s.concat(c):u=-1,c.length&&p())}function p(){if(!l){var t=a(f);l=!0;for(var e=c.length;e;){for(s=c,c=[];++u1)for(var n=1;n{"use strict";var r=n(414);function o(){}function i(){}i.resetWarningCache=o,t.exports=function(){function t(t,e,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},5697:(t,e,n)=>{t.exports=n(2703)()},414:t=>{"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9590:t=>{var e="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function i(t,a){if(t===a)return!0;if(t&&a&&"object"==typeof t&&"object"==typeof a){if(t.constructor!==a.constructor)return!1;var s,c,l,u;if(Array.isArray(t)){if((s=t.length)!=a.length)return!1;for(c=s;0!=c--;)if(!i(t[c],a[c]))return!1;return!0}if(n&&t instanceof Map&&a instanceof Map){if(t.size!==a.size)return!1;for(u=t.entries();!(c=u.next()).done;)if(!a.has(c.value[0]))return!1;for(u=t.entries();!(c=u.next()).done;)if(!i(c.value[1],a.get(c.value[0])))return!1;return!0}if(r&&t instanceof Set&&a instanceof Set){if(t.size!==a.size)return!1;for(u=t.entries();!(c=u.next()).done;)if(!a.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(t)&&ArrayBuffer.isView(a)){if((s=t.length)!=a.length)return!1;for(c=s;0!=c--;)if(t[c]!==a[c])return!1;return!0}if(t.constructor===RegExp)return t.source===a.source&&t.flags===a.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===a.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===a.toString();if((s=(l=Object.keys(t)).length)!==Object.keys(a).length)return!1;for(c=s;0!=c--;)if(!Object.prototype.hasOwnProperty.call(a,l[c]))return!1;if(e&&t instanceof Element)return!1;for(c=s;0!=c--;)if(("_owner"!==l[c]&&"__v"!==l[c]&&"__o"!==l[c]||!t.$$typeof)&&!i(t[l[c]],a[l[c]]))return!1;return!0}return t!=t&&a!=a}t.exports=function(t,e){try{return i(t,e)}catch(t){if((t.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw t}}},6428:(t,e,n)=>{"use strict";var r=function(){function t(t,e){for(var n=0;n{t.exports=n(6428)},6941:(t,e,n)=>{var r=n(1474),o=n(4184),i=n(7363),a=n(2177);function s(t){return t&&t.__esModule?t.default:t}function c(t,e,n,r){Object.defineProperty(t,e,{get:n,set:r,enumerable:!0,configurable:!0})}function l(t){null!==t.parentElement&&t.parentElement.removeChild(t)}function u(t){t.forEach((t=>l(t.element)))}function f(t){t.forEach((t=>{!function(t,e,n){const r=t.children[n]||null;t.insertBefore(e,r)}(t.parentElement,t.element,t.oldIndex)}))}function p(t,e){const n=g(t),r={parentElement:t.from};let o=[];switch(n){case"normal":o=[{element:t.item,newIndex:t.newIndex,oldIndex:t.oldIndex,parentElement:t.from}];break;case"swap":o=[{element:t.item,oldIndex:t.oldIndex,newIndex:t.newIndex,...r},{element:t.swapItem,oldIndex:t.newIndex,newIndex:t.oldIndex,...r}];break;case"multidrag":o=t.oldIndicies.map(((e,n)=>({element:e.multiDragElement,oldIndex:e.index,newIndex:t.newIndicies[n].index,...r})))}const i=function(t,e){return t.map((t=>({...t,item:e[t.oldIndex]}))).sort(((t,e)=>t.oldIndex-e.oldIndex))}(o,e);return i}function d(t,e){return y(t,h(t,e))}function h(t,e){const n=[...e];return t.concat().reverse().forEach((t=>n.splice(t.oldIndex,1))),n}function y(t,e,n,r){const o=[...e];return t.forEach((t=>{const e=r&&n&&r(t.item,n);o.splice(t.newIndex,0,e||t.item)})),o}function g(t){return t.oldIndicies&&t.oldIndicies.length>0?"multidrag":t.swapItem?"swap":"normal"}function m(t){const{list:e,setList:n,children:r,tag:o,style:i,className:a,clone:s,onAdd:c,onChange:l,onChoose:u,onClone:f,onEnd:p,onFilter:d,onRemove:h,onSort:y,onStart:g,onUnchoose:m,onUpdate:v,onMove:b,onSpill:w,onSelect:O,onDeselect:j,...x}=t;return x}c(t.exports,"Sortable",(()=>$882b6d93070905b3$re_export$Sortable)),c(t.exports,"Direction",(()=>$882b6d93070905b3$re_export$Direction)),c(t.exports,"DOMRect",(()=>$882b6d93070905b3$re_export$DOMRect)),c(t.exports,"GroupOptions",(()=>$882b6d93070905b3$re_export$GroupOptions)),c(t.exports,"MoveEvent",(()=>$882b6d93070905b3$re_export$MoveEvent)),c(t.exports,"Options",(()=>$882b6d93070905b3$re_export$Options)),c(t.exports,"PullResult",(()=>$882b6d93070905b3$re_export$PullResult)),c(t.exports,"PutResult",(()=>$882b6d93070905b3$re_export$PutResult)),c(t.exports,"SortableEvent",(()=>$882b6d93070905b3$re_export$SortableEvent)),c(t.exports,"SortableOptions",(()=>$882b6d93070905b3$re_export$SortableOptions)),c(t.exports,"Utils",(()=>$882b6d93070905b3$re_export$Utils)),c(t.exports,"ReactSortable",(()=>b));const v={dragging:null};class b extends i.Component{static defaultProps={clone:t=>t};constructor(t){super(t),this.ref=(0,i.createRef)();const e=[...t.list].map((t=>Object.assign(t,{chosen:!1,selected:!1})));t.setList(e,this.sortable,v),s(a)(!t.plugins,'\nPlugins prop is no longer supported.\nInstead, mount it with "Sortable.mount(new MultiDrag())"\nPlease read the updated README.md at https://github.com/SortableJS/react-sortablejs.\n ')}componentDidMount(){if(null===this.ref.current)return;const t=this.makeOptions();s(r).create(this.ref.current,t)}componentDidUpdate(t){t.disabled!==this.props.disabled&&this.sortable&&this.sortable.option("disabled",this.props.disabled)}render(){const{tag:t,style:e,className:n,id:r}=this.props,o={style:e,className:n,id:r},a=t&&null!==t?t:"div";return(0,i.createElement)(a,{ref:this.ref,...o},this.getChildren())}getChildren(){const{children:t,dataIdAttr:e,selectedClass:n="sortable-selected",chosenClass:r="sortable-chosen",dragClass:a="sortable-drag",fallbackClass:c="sortable-falback",ghostClass:l="sortable-ghost",swapClass:u="sortable-swap-highlight",filter:f="sortable-filter",list:p}=this.props;if(!t||null==t)return null;const d=e||"data-id";return i.Children.map(t,((t,e)=>{if(void 0===t)return;const a=p[e]||{},{className:c}=t.props,l="string"==typeof f&&{[f.replace(".","")]:!!a.filtered},u=s(o)(c,{[n]:a.selected,[r]:a.chosen,...l});return(0,i.cloneElement)(t,{[d]:t.key,className:u})}))}get sortable(){const t=this.ref.current;if(null===t)return null;const e=Object.keys(t).find((t=>t.includes("Sortable")));return e?t[e]:null}makeOptions(){const t=m(this.props);["onAdd","onChoose","onDeselect","onEnd","onRemove","onSelect","onSpill","onStart","onUnchoose","onUpdate"].forEach((e=>t[e]=this.prepareOnHandlerPropAndDOM(e))),["onChange","onClone","onFilter","onSort"].forEach((e=>t[e]=this.prepareOnHandlerProp(e)));return{...t,onMove:(t,e)=>{const{onMove:n}=this.props,r=t.willInsertAfter||-1;if(!n)return r;const o=n(t,e,this.sortable,v);return void 0!==o&&o}}}prepareOnHandlerPropAndDOM(t){return e=>{this.callOnHandlerProp(e,t),this[t](e)}}prepareOnHandlerProp(t){return e=>{this.callOnHandlerProp(e,t)}}callOnHandlerProp(t,e){const n=this.props[e];n&&n(t,this.sortable,v)}onAdd(t){const{list:e,setList:n,clone:r}=this.props,o=p(t,[...v.dragging.props.list]);u(o);n(y(o,e,t,r).map((t=>Object.assign(t,{selected:!1}))),this.sortable,v)}onRemove(t){const{list:e,setList:n}=this.props,r=g(t),o=p(t,e);f(o);let i=[...e];if("clone"!==t.pullMode)i=h(o,i);else{let e=o;switch(r){case"multidrag":e=o.map(((e,n)=>({...e,element:t.clones[n]})));break;case"normal":e=o.map((e=>({...e,element:t.clone})));break;default:s(a)(!0,`mode "${r}" cannot clone. Please remove "props.clone" from when using the "${r}" plugin`)}u(e),o.forEach((e=>{const n=e.oldIndex,r=this.props.clone(e.item,t);i.splice(n,1,r)}))}i=i.map((t=>Object.assign(t,{selected:!1}))),n(i,this.sortable,v)}onUpdate(t){const{list:e,setList:n}=this.props,r=p(t,e);u(r),f(r);return n(d(r,e),this.sortable,v)}onStart(){v.dragging=this}onEnd(){v.dragging=null}onChoose(t){const{list:e,setList:n}=this.props;n(e.map(((e,n)=>{let r=e;return n===t.oldIndex&&(r=Object.assign(e,{chosen:!0})),r})),this.sortable,v)}onUnchoose(t){const{list:e,setList:n}=this.props;n(e.map(((e,n)=>{let r=e;return n===t.oldIndex&&(r=Object.assign(r,{chosen:!1})),r})),this.sortable,v)}onSpill(t){const{removeOnSpill:e,revertOnSpill:n}=this.props;e&&!n&&l(t.item)}onSelect(t){const{list:e,setList:n}=this.props,r=e.map((t=>Object.assign(t,{selected:!1})));t.newIndicies.forEach((e=>{const n=e.index;if(-1===n)return console.log(`"${t.type}" had indice of "${e.index}", which is probably -1 and doesn't usually happen here.`),void console.log(t);r[n].selected=!0})),n(r,this.sortable,v)}onDeselect(t){const{list:e,setList:n}=this.props,r=e.map((t=>Object.assign(t,{selected:!1})));t.newIndicies.forEach((t=>{const e=t.index;-1!==e&&(r[e].selected=!0)})),n(r,this.sortable,v)}}var w,O;w=t.exports,O={},Object.keys(O).forEach((function(t){"default"===t||"__esModule"===t||w.hasOwnProperty(t)||Object.defineProperty(w,t,{enumerable:!0,get:function(){return O[t]}})}))},5251:(t,e,n)=>{"use strict";n(7418);var r=n(7363),o=60103;if(e.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var i=Symbol.for;o=i("react.element"),e.Fragment=i("react.fragment")}var a=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s=Object.prototype.hasOwnProperty,c={key:!0,ref:!0,__self:!0,__source:!0};function l(t,e,n){var r,i={},l=null,u=null;for(r in void 0!==n&&(l=""+n),void 0!==e.key&&(l=""+e.key),void 0!==e.ref&&(u=e.ref),e)s.call(e,r)&&!c.hasOwnProperty(r)&&(i[r]=e[r]);if(t&&t.defaultProps)for(r in e=t.defaultProps)void 0===i[r]&&(i[r]=e[r]);return{$$typeof:o,type:t,key:l,ref:u,props:i,_owner:a.current}}e.jsx=l,e.jsxs=l},5893:(t,e,n)=>{"use strict";t.exports=n(5251)},3697:(t,e,n)=>{"use strict";var r=n(5972).functionsHaveConfigurableNames(),o=Object,i=TypeError;t.exports=function(){if(null!=this&&this!==o(this))throw new i("RegExp.prototype.flags getter called on non-object");var t="";return this.hasIndices&&(t+="d"),this.global&&(t+="g"),this.ignoreCase&&(t+="i"),this.multiline&&(t+="m"),this.dotAll&&(t+="s"),this.unicode&&(t+="u"),this.sticky&&(t+="y"),t},r&&Object.defineProperty&&Object.defineProperty(t.exports,"name",{value:"get flags"})},2847:(t,e,n)=>{"use strict";var r=n(4289),o=n(5559),i=n(3697),a=n(1721),s=n(2753),c=o(a());r(c,{getPolyfill:a,implementation:i,shim:s}),t.exports=c},1721:(t,e,n)=>{"use strict";var r=n(3697),o=n(4289).supportsDescriptors,i=Object.getOwnPropertyDescriptor;t.exports=function(){if(o&&"gim"===/a/gim.flags){var t=i(RegExp.prototype,"flags");if(t&&"function"==typeof t.get&&"boolean"==typeof RegExp.prototype.dotAll&&"boolean"==typeof RegExp.prototype.hasIndices){var e="",n={};if(Object.defineProperty(n,"hasIndices",{get:function(){e+="d"}}),Object.defineProperty(n,"sticky",{get:function(){e+="y"}}),"dy"===e)return t.get}}return r}},2753:(t,e,n)=>{"use strict";var r=n(4289).supportsDescriptors,o=n(1721),i=Object.getOwnPropertyDescriptor,a=Object.defineProperty,s=TypeError,c=Object.getPrototypeOf,l=/a/;t.exports=function(){if(!r||!c)throw new s("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var t=o(),e=c(l),n=i(e,"flags");return n&&n.get===t||a(e,"flags",{configurable:!0,enumerable:!1,get:t}),t}},7478:(t,e,n)=>{"use strict";var r=n(210),o=n(1924),i=n(631),a=r("%TypeError%"),s=r("%WeakMap%",!0),c=r("%Map%",!0),l=o("WeakMap.prototype.get",!0),u=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),p=o("Map.prototype.get",!0),d=o("Map.prototype.set",!0),h=o("Map.prototype.has",!0),y=function(t,e){for(var n,r=t;null!==(n=r.next);r=n)if(n.key===e)return r.next=n.next,n.next=t.next,t.next=n,n};t.exports=function(){var t,e,n,r={assert:function(t){if(!r.has(t))throw new a("Side channel does not contain "+i(t))},get:function(r){if(s&&r&&("object"==typeof r||"function"==typeof r)){if(t)return l(t,r)}else if(c){if(e)return p(e,r)}else if(n)return function(t,e){var n=y(t,e);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"==typeof r||"function"==typeof r)){if(t)return f(t,r)}else if(c){if(e)return h(e,r)}else if(n)return function(t,e){return!!y(t,e)}(n,r);return!1},set:function(r,o){s&&r&&("object"==typeof r||"function"==typeof r)?(t||(t=new s),u(t,r,o)):c?(e||(e=new c),d(e,r,o)):(n||(n={key:{},next:null}),function(t,e,n){var r=y(t,e);r?r.value=n:t.next={key:e,next:t.next,value:n}}(n,r,o))}};return r}},6399:t=>{t.exports=function(t,e,n){return function(r){if(t[0]===t[1]||e[0]===e[1])return e[0];var o=(e[1]-e[0])/(t[1]-t[0]),i=e[0]+o*(r-t[0]);return n?Math.min(e[1],Math.max(e[0],i)):i}}},1474:(t,e,n)=>{"use strict";function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function l(t){return function(t){if(Array.isArray(t))return u(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nje,Sortable:()=>$t,Swap:()=>fe,default:()=>_e});function f(t){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(t)}var p=f(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),d=f(/Edge/i),h=f(/firefox/i),y=f(/safari/i)&&!f(/chrome/i)&&!f(/android/i),g=f(/iP(ad|od|hone)/i),m=f(/chrome/i)&&f(/android/i),v={capture:!1,passive:!1};function b(t,e,n){t.addEventListener(e,n,!p&&v)}function w(t,e,n){t.removeEventListener(e,n,!p&&v)}function O(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function j(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function x(t,e,n,r){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&O(t,e):O(t,e))||r&&t===n)return t;if(t===n)break}while(t=j(t))}return null}var S,_=/\s+/g;function C(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var r=(" "+t.className+" ").replace(_," ").replace(" "+e+" "," ");t.className=(r+(n?" "+e:"")).replace(_," ")}}function P(t,e,n){var r=t&&t.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in r||-1!==e.indexOf("webkit")||(e="-webkit-"+e),r[e]=n+("string"==typeof n?"":"px")}}function E(t,e){var n="";if("string"==typeof t)n=t;else do{var r=P(t,"transform");r&&"none"!==r&&(n=r+" "+n)}while(!e&&(t=t.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function T(t,e,n){if(t){var r=t.getElementsByTagName(e),o=0,i=r.length;if(n)for(;o=i:o<=i))return r;if(r===k())break;r=L(r,!1)}return!1}function N(t,e,n,r){for(var o=0,i=0,a=t.children;i2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,i=c(n,G);K.pluginEvent.bind($t)(t,e,o({dragEl:Z,parentEl:tt,ghostEl:et,rootEl:nt,nextEl:rt,lastDownEl:ot,cloneEl:it,cloneHidden:at,dragStarted:bt,putSortable:pt,activeSortable:$t.active,originalEvent:r,oldIndex:st,oldDraggableIndex:lt,newIndex:ct,newDraggableIndex:ut,hideGhostForTarget:Ft,unhideGhostForTarget:Bt,cloneNowHidden:function(){at=!0},cloneNowShown:function(){at=!1},dispatchSortableEvent:function(t){J({sortable:e,name:t,originalEvent:r})}},i))};function J(t){Y(o({putSortable:pt,cloneEl:it,targetEl:Z,rootEl:nt,oldIndex:st,oldDraggableIndex:lt,newIndex:ct,newDraggableIndex:ut},t))}var Z,tt,et,nt,rt,ot,it,at,st,ct,lt,ut,ft,pt,dt,ht,yt,gt,mt,vt,bt,wt,Ot,jt,xt,St=!1,_t=!1,Ct=[],Pt=!1,Et=!1,Tt=[],kt=!1,At=[],Dt="undefined"!=typeof document,Nt=g,It=d||p?"cssFloat":"float",Mt=Dt&&!m&&!g&&"draggable"in document.createElement("div"),Rt=function(){if(Dt){if(p)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Lt=function(t,e){var n=P(t),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=N(t,0,e),i=N(t,1,e),a=o&&P(o),s=i&&P(i),c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+A(o).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+A(i).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&a.float&&"none"!==a.float){var u="left"===a.float?"left":"right";return!i||"both"!==s.clear&&s.clear!==u?"horizontal":"vertical"}return o&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||c>=r&&"none"===n[It]||i&&"none"===n[It]&&c+l>r)?"vertical":"horizontal"},zt=function(t){function e(t,n){return function(r,o,i,a){var s=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(null==t&&(n||s))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(r,o,i,a),n)(r,o,i,a);var c=(n?r:o).options.group.name;return!0===t||"string"==typeof t&&t===c||t.join&&t.indexOf(c)>-1}}var n={},r=t.group;r&&"object"==i(r)||(r={name:r}),n.name=r.name,n.checkPull=e(r.pull,!0),n.checkPut=e(r.put),n.revertClone=r.revertClone,t.group=n},Ft=function(){!Rt&&et&&P(et,"display","none")},Bt=function(){!Rt&&et&&P(et,"display","")};Dt&&!m&&document.addEventListener("click",(function(t){if(_t)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),_t=!1,!1}),!0);var Ut=function(t){if(Z){t=t.touches?t.touches[0]:t;var e=(o=t.clientX,i=t.clientY,Ct.some((function(t){var e=t[W].options.emptyInsertThreshold;if(e&&!I(t)){var n=A(t),r=o>=n.left-e&&o<=n.right+e,s=i>=n.top-e&&i<=n.bottom+e;return r&&s?a=t:void 0}})),a);if(e){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[W]._onDragOver(n)}}var o,i,a},Vt=function(t){Z&&Z.parentNode[W]._isOutsideThisEl(t.target)};function $t(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=s({},e),t[W]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Lt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==$t.supportPointer&&"PointerEvent"in window&&!y,emptyInsertThreshold:5};for(var r in K.initializePlugins(this,t,n),n)!(r in e)&&(e[r]=n[r]);for(var o in zt(e),this)"_"===o.charAt(0)&&"function"==typeof this[o]&&(this[o]=this[o].bind(this));this.nativeDraggable=!e.forceFallback&&Mt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?b(t,"pointerdown",this._onTapStart):(b(t,"mousedown",this._onTapStart),b(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(b(t,"dragover",this),b(t,"dragenter",this)),Ct.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),s(this,H())}function Wt(t,e,n,r,o,i,a,s){var c,l,u=t[W],f=u.options.onMove;return!window.CustomEvent||p||d?(c=document.createEvent("Event")).initEvent("move",!0,!0):c=new CustomEvent("move",{bubbles:!0,cancelable:!0}),c.to=e,c.from=t,c.dragged=n,c.draggedRect=r,c.related=o||e,c.relatedRect=i||A(e),c.willInsertAfter=s,c.originalEvent=a,t.dispatchEvent(c),f&&(l=f.call(u,c,a)),l}function Ht(t){t.draggable=!1}function qt(){kt=!1}function Xt(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,r=0;n--;)r+=e.charCodeAt(n);return r.toString(36)}function Kt(t){return setTimeout(t,0)}function Yt(t){return clearTimeout(t)}$t.prototype={constructor:$t,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(wt=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,Z):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,r=this.options,o=r.preventOnFilter,i=t.type,a=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,s=(a||t).target,c=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,l=r.filter;if(function(t){At.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var r=e[n];r.checked&&At.push(r)}}(n),!Z&&!(/mousedown|pointerdown/.test(i)&&0!==t.button||r.disabled)&&!c.isContentEditable&&(this.nativeDraggable||!y||!s||"SELECT"!==s.tagName.toUpperCase())&&!((s=x(s,r.draggable,n,!1))&&s.animated||ot===s)){if(st=M(s),lt=M(s,r.draggable),"function"==typeof l){if(l.call(this,t,s,this))return J({sortable:e,rootEl:c,name:"filter",targetEl:s,toEl:n,fromEl:n}),Q("filter",e,{evt:t}),void(o&&t.cancelable&&t.preventDefault())}else if(l&&(l=l.split(",").some((function(r){if(r=x(c,r.trim(),n,!1))return J({sortable:e,rootEl:r,name:"filter",targetEl:s,fromEl:n,toEl:n}),Q("filter",e,{evt:t}),!0}))))return void(o&&t.cancelable&&t.preventDefault());r.handle&&!x(c,r.handle,n,!1)||this._prepareDragStart(t,a,s)}}},_prepareDragStart:function(t,e,n){var r,o=this,i=o.el,a=o.options,s=i.ownerDocument;if(n&&!Z&&n.parentNode===i){var c=A(n);if(nt=i,tt=(Z=n).parentNode,rt=Z.nextSibling,ot=n,ft=a.group,$t.dragged=Z,dt={target:Z,clientX:(e||t).clientX,clientY:(e||t).clientY},mt=dt.clientX-c.left,vt=dt.clientY-c.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,Z.style["will-change"]="all",r=function(){Q("delayEnded",o,{evt:t}),$t.eventCanceled?o._onDrop():(o._disableDelayedDragEvents(),!h&&o.nativeDraggable&&(Z.draggable=!0),o._triggerDragStart(t,e),J({sortable:o,name:"choose",originalEvent:t}),C(Z,a.chosenClass,!0))},a.ignore.split(",").forEach((function(t){T(Z,t.trim(),Ht)})),b(s,"dragover",Ut),b(s,"mousemove",Ut),b(s,"touchmove",Ut),b(s,"mouseup",o._onDrop),b(s,"touchend",o._onDrop),b(s,"touchcancel",o._onDrop),h&&this.nativeDraggable&&(this.options.touchStartThreshold=4,Z.draggable=!0),Q("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(d||p))r();else{if($t.eventCanceled)return void this._onDrop();b(s,"mouseup",o._disableDelayedDrag),b(s,"touchend",o._disableDelayedDrag),b(s,"touchcancel",o._disableDelayedDrag),b(s,"mousemove",o._delayedDragTouchMoveHandler),b(s,"touchmove",o._delayedDragTouchMoveHandler),a.supportPointer&&b(s,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){Z&&Ht(Z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;w(t,"mouseup",this._disableDelayedDrag),w(t,"touchend",this._disableDelayedDrag),w(t,"touchcancel",this._disableDelayedDrag),w(t,"mousemove",this._delayedDragTouchMoveHandler),w(t,"touchmove",this._delayedDragTouchMoveHandler),w(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?b(document,"pointermove",this._onTouchMove):b(document,e?"touchmove":"mousemove",this._onTouchMove):(b(Z,"dragend",this),b(nt,"dragstart",this._onDragStart));try{document.selection?Kt((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(St=!1,nt&&Z){Q("dragStarted",this,{evt:e}),this.nativeDraggable&&b(document,"dragover",Vt);var n=this.options;!t&&C(Z,n.dragClass,!1),C(Z,n.ghostClass,!0),$t.active=this,t&&this._appendGhost(),J({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(ht){this._lastX=ht.clientX,this._lastY=ht.clientY,Ft();for(var t=document.elementFromPoint(ht.clientX,ht.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(ht.clientX,ht.clientY))!==e;)e=t;if(Z.parentNode[W]._isOutsideThisEl(t),e)do{if(e[W]){if(e[W]._onDragOver({clientX:ht.clientX,clientY:ht.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}t=e}while(e=e.parentNode);Bt()}},_onTouchMove:function(t){if(dt){var e=this.options,n=e.fallbackTolerance,r=e.fallbackOffset,o=t.touches?t.touches[0]:t,i=et&&E(et,!0),a=et&&i&&i.a,s=et&&i&&i.d,c=Nt&&xt&&R(xt),l=(o.clientX-dt.clientX+r.x)/(a||1)+(c?c[0]-Tt[0]:0)/(a||1),u=(o.clientY-dt.clientY+r.y)/(s||1)+(c?c[1]-Tt[1]:0)/(s||1);if(!$t.active&&!St){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))r.right+o||t.clientX<=r.right&&t.clientY>r.bottom&&t.clientX>=r.left:t.clientX>r.right&&t.clientY>r.top||t.clientX<=r.right&&t.clientY>r.bottom+o}(t,i,this)&&!g.animated){if(g===Z)return U(!1);if(g&&a===t.target&&(s=g),s&&(n=A(s)),!1!==Wt(nt,a,Z,e,s,n,t,!!s))return F(),g&&g.nextSibling?a.insertBefore(Z,g.nextSibling):a.appendChild(Z),tt=a,V(),U(!0)}else if(g&&function(t,e,n){var r=A(N(n.el,0,n.options,!0)),o=10;return e?t.clientXu+l*i/2:cf-jt)return-Ot}else if(c>u+l*(1-o)/2&&cf-l*i/2))return c>u+l/2?1:-1;return 0}(t,s,n,i,j?1:c.swapThreshold,null==c.invertedSwapThreshold?c.swapThreshold:c.invertedSwapThreshold,Et,wt===s),0!==v){var T=M(Z);do{T-=v,w=tt.children[T]}while(w&&("none"===P(w,"display")||w===et))}if(0===v||w===s)return U(!1);wt=s,Ot=v;var k=s.nextElementSibling,R=!1,L=Wt(nt,a,Z,e,s,n,t,R=1===v);if(!1!==L)return 1!==L&&-1!==L||(R=1===L),kt=!0,setTimeout(qt,30),F(),R&&!k?a.appendChild(Z):s.parentNode.insertBefore(Z,R?k:s),_&&B(_,0,E-_.scrollTop),tt=Z.parentNode,void 0===b||Et||(jt=Math.abs(b-A(s)[S])),V(),U(!0)}if(a.contains(Z))return U(!1)}return!1}function z(c,l){Q(c,h,o({evt:t,isOwner:f,axis:i?"vertical":"horizontal",revert:r,dragRect:e,targetRect:n,canSort:p,fromSortable:d,target:s,completed:U,onMove:function(n,r){return Wt(nt,a,Z,e,n,A(n),t,r)},changed:V},l))}function F(){z("dragOverAnimationCapture"),h.captureAnimationState(),h!==d&&d.captureAnimationState()}function U(e){return z("dragOverCompleted",{insertion:e}),e&&(f?u._hideClone():u._showClone(h),h!==d&&(C(Z,pt?pt.options.ghostClass:u.options.ghostClass,!1),C(Z,c.ghostClass,!0)),pt!==h&&h!==$t.active?pt=h:h===$t.active&&pt&&(pt=null),d===h&&(h._ignoreWhileAnimating=s),h.animateAll((function(){z("dragOverAnimationComplete"),h._ignoreWhileAnimating=null})),h!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(s===Z&&!Z.animated||s===a&&!s.animated)&&(wt=null),c.dragoverBubble||t.rootEl||s===document||(Z.parentNode[W]._isOutsideThisEl(t.target),!e&&Ut(t)),!c.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),y=!0}function V(){ct=M(Z),ut=M(Z,c.draggable),J({sortable:h,name:"change",toEl:a,newIndex:ct,newDraggableIndex:ut,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){w(document,"mousemove",this._onTouchMove),w(document,"touchmove",this._onTouchMove),w(document,"pointermove",this._onTouchMove),w(document,"dragover",Ut),w(document,"mousemove",Ut),w(document,"touchmove",Ut)},_offUpEvents:function(){var t=this.el.ownerDocument;w(t,"mouseup",this._onDrop),w(t,"touchend",this._onDrop),w(t,"pointerup",this._onDrop),w(t,"touchcancel",this._onDrop),w(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;ct=M(Z),ut=M(Z,n.draggable),Q("drop",this,{evt:t}),tt=Z&&Z.parentNode,ct=M(Z),ut=M(Z,n.draggable),$t.eventCanceled||(St=!1,Et=!1,Pt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Yt(this.cloneId),Yt(this._dragStartId),this.nativeDraggable&&(w(document,"drop",this),w(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),y&&P(document.body,"user-select",""),P(Z,"transform",""),t&&(bt&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),et&&et.parentNode&&et.parentNode.removeChild(et),(nt===tt||pt&&"clone"!==pt.lastPutMode)&&it&&it.parentNode&&it.parentNode.removeChild(it),Z&&(this.nativeDraggable&&w(Z,"dragend",this),Ht(Z),Z.style["will-change"]="",bt&&!St&&C(Z,pt?pt.options.ghostClass:this.options.ghostClass,!1),C(Z,this.options.chosenClass,!1),J({sortable:this,name:"unchoose",toEl:tt,newIndex:null,newDraggableIndex:null,originalEvent:t}),nt!==tt?(ct>=0&&(J({rootEl:tt,name:"add",toEl:tt,fromEl:nt,originalEvent:t}),J({sortable:this,name:"remove",toEl:tt,originalEvent:t}),J({rootEl:tt,name:"sort",toEl:tt,fromEl:nt,originalEvent:t}),J({sortable:this,name:"sort",toEl:tt,originalEvent:t})),pt&&pt.save()):ct!==st&&ct>=0&&(J({sortable:this,name:"update",toEl:tt,originalEvent:t}),J({sortable:this,name:"sort",toEl:tt,originalEvent:t})),$t.active&&(null!=ct&&-1!==ct||(ct=st,ut=lt),J({sortable:this,name:"end",toEl:tt,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){Q("nulling",this),nt=Z=tt=et=rt=it=ot=at=dt=ht=bt=ct=ut=st=lt=wt=Ot=pt=ft=$t.dragged=$t.ghost=$t.clone=$t.active=null,At.forEach((function(t){t.checked=!0})),At.length=yt=gt=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":Z&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move");t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,r=0,o=n.length,i=this.options;r1&&(me.forEach((function(t){r.addAnimationState({target:t,rect:we?A(t):o}),$(t),t.fromRect=o,e.removeAnimationState(t)})),we=!1,function(t,e){me.forEach((function(n,r){var o=e.children[n.sortableIndex+(t?Number(r):0)];o?e.insertBefore(n,o):e.appendChild(n)}))}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var e=t.sortable,n=t.isOwner,r=t.insertion,o=t.activeSortable,i=t.parentEl,a=t.putSortable,s=this.options;if(r){if(n&&o._hideClone(),be=!1,s.animation&&me.length>1&&(we||!n&&!o.options.sort&&!a)){var c=A(he,!1,!0,!0);me.forEach((function(t){t!==he&&(V(t,c),i.appendChild(t))})),we=!0}if(!n)if(we||Se(),me.length>1){var l=ge;o._showClone(e),o.options.animation&&!ge&&l&&ve.forEach((function(t){o.addAnimationState({target:t,rect:ye}),t.fromRect=ye,t.thisAnimationDuration=null}))}else o._showClone(e)}},dragOverAnimationCapture:function(t){var e=t.dragRect,n=t.isOwner,r=t.activeSortable;if(me.forEach((function(t){t.thisAnimationDuration=null})),r.options.animation&&!n&&r.multiDrag.isMultiDrag){ye=s({},e);var o=E(he,!0);ye.top-=o.f,ye.left-=o.e}},dragOverAnimationComplete:function(){we&&(we=!1,Se())},drop:function(t){var e=t.originalEvent,n=t.rootEl,r=t.parentEl,o=t.sortable,i=t.dispatchSortableEvent,a=t.oldIndex,s=t.putSortable,c=s||this.sortable;if(e){var l=this.options,u=r.children;if(!Oe)if(l.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),C(he,l.selectedClass,!~me.indexOf(he)),~me.indexOf(he))me.splice(me.indexOf(he),1),pe=null,Y({sortable:o,rootEl:n,name:"deselect",targetEl:he,originalEvent:e});else{if(me.push(he),Y({sortable:o,rootEl:n,name:"select",targetEl:he,originalEvent:e}),e.shiftKey&&pe&&o.el.contains(pe)){var f,p,d=M(pe),h=M(he);if(~d&&~h&&d!==h)for(h>d?(p=d,f=h):(p=h,f=d+1);p1){var y=A(he),g=M(he,":not(."+this.options.selectedClass+")");if(!be&&l.animation&&(he.thisAnimationDuration=null),c.captureAnimationState(),!be&&(l.animation&&(he.fromRect=y,me.forEach((function(t){if(t.thisAnimationDuration=null,t!==he){var e=we?A(t):y;t.fromRect=e,c.addAnimationState({target:t,rect:e})}}))),Se(),me.forEach((function(t){u[g]?r.insertBefore(t,u[g]):r.appendChild(t),g++})),a===M(he))){var m=!1;me.forEach((function(t){t.sortableIndex===M(t)||(m=!0)})),m&&i("update")}me.forEach((function(t){$(t)})),c.animateAll()}de=c}(n===r||s&&"clone"!==s.lastPutMode)&&ve.forEach((function(t){t.parentNode&&t.parentNode.removeChild(t)}))}},nullingGlobal:function(){this.isMultiDrag=Oe=!1,ve.length=0},destroyGlobal:function(){this._deselectMultiDrag(),w(document,"pointerup",this._deselectMultiDrag),w(document,"mouseup",this._deselectMultiDrag),w(document,"touchend",this._deselectMultiDrag),w(document,"keydown",this._checkKeyDown),w(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(void 0!==Oe&&Oe||de!==this.sortable||t&&x(t.target,this.options.draggable,this.sortable.el,!1)||t&&0!==t.button))for(;me.length;){var e=me[0];C(e,this.options.selectedClass,!1),me.shift(),Y({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:e,originalEvent:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},s(t,{pluginName:"multiDrag",utils:{select:function(t){var e=t.parentNode[W];e&&e.options.multiDrag&&!~me.indexOf(t)&&(de&&de!==e&&(de.multiDrag._deselectMultiDrag(),de=e),C(t,e.options.selectedClass,!0),me.push(t))},deselect:function(t){var e=t.parentNode[W],n=me.indexOf(t);e&&e.options.multiDrag&&~n&&(C(t,e.options.selectedClass,!1),me.splice(n,1))}},eventProperties:function(){var t=this,e=[],n=[];return me.forEach((function(r){var o;e.push({multiDragElement:r,index:r.sortableIndex}),o=we&&r!==he?-1:we?M(r,":not(."+t.options.selectedClass+")"):M(r),n.push({multiDragElement:r,index:o})})),{items:l(me),clones:[].concat(ve),oldIndicies:e,newIndicies:n}},optionListeners:{multiDragKey:function(t){return"ctrl"===(t=t.toLowerCase())?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function xe(t,e){ve.forEach((function(n,r){var o=e.children[n.sortableIndex+(t?Number(r):0)];o?e.insertBefore(n,o):e.appendChild(n)}))}function Se(){me.forEach((function(t){t!==he&&t.parentNode&&t.parentNode.removeChild(t)}))}$t.mount(new function(){function t(){for(var t in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===t.charAt(0)&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}return t.prototype={dragStarted:function(t){var e=t.originalEvent;this.sortable.nativeDraggable?b(document,"dragover",this._handleAutoScroll):this.options.supportPointer?b(document,"pointermove",this._handleFallbackAutoScroll):e.touches?b(document,"touchmove",this._handleFallbackAutoScroll):b(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var e=t.originalEvent;this.options.dragOverBubble||e.rootEl||this._handleAutoScroll(e)},drop:function(){this.sortable.nativeDraggable?w(document,"dragover",this._handleAutoScroll):(w(document,"pointermove",this._handleFallbackAutoScroll),w(document,"touchmove",this._handleFallbackAutoScroll),w(document,"mousemove",this._handleFallbackAutoScroll)),ie(),oe(),clearTimeout(S),S=void 0},nulling:function(){te=Qt=Gt=re=ee=Jt=Zt=null,ne.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,e){var n=this,r=(t.touches?t.touches[0]:t).clientX,o=(t.touches?t.touches[0]:t).clientY,i=document.elementFromPoint(r,o);if(te=t,e||this.options.forceAutoScrollFallback||d||p||y){se(t,this.options,i,e);var a=L(i,!0);!re||ee&&r===Jt&&o===Zt||(ee&&ie(),ee=setInterval((function(){var i=L(document.elementFromPoint(r,o),!0);i!==a&&(a=i,oe()),se(t,n.options,i,e)}),10),Jt=r,Zt=o)}else{if(!this.options.bubbleScroll||L(i,!0)===k())return void oe();se(t,this.options,L(i,!1),!1)}}},s(t,{pluginName:"scroll",initializeByDefault:!0})}),$t.mount(ue,le);const _e=$t},8975:(t,e,n)=>{var r;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(t){return s(l(t),arguments)}function a(t,e){return i.apply(null,[t].concat(e||[]))}function s(t,e){var n,r,a,s,c,l,u,f,p,d=1,h=t.length,y="";for(r=0;r=0),s.type){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,s.width?parseInt(s.width):0);break;case"e":n=s.precision?parseFloat(n).toExponential(s.precision):parseFloat(n).toExponential();break;case"f":n=s.precision?parseFloat(n).toFixed(s.precision):parseFloat(n);break;case"g":n=s.precision?String(Number(n.toPrecision(s.precision))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=s.precision?n.substring(0,s.precision):n;break;case"t":n=String(!!n),n=s.precision?n.substring(0,s.precision):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=s.precision?n.substring(0,s.precision):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=s.precision?n.substring(0,s.precision):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}o.json.test(s.type)?y+=n:(!o.number.test(s.type)||f&&!s.sign?p="":(p=f?"+":"-",n=n.toString().replace(o.sign,"")),l=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(p+n).length,c=s.width&&u>0?l.repeat(u):"",y+=s.align?p+n+c:"0"===l?p+c+n:c+p+n)}return y}var c=Object.create(null);function l(t){if(c[t])return c[t];for(var e,n=t,r=[],i=0;n;){if(null!==(e=o.text.exec(n)))r.push(e[0]);else if(null!==(e=o.modulo.exec(n)))r.push("%");else{if(null===(e=o.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(e[2]){i|=1;var a=[],s=e[2],l=[];if(null===(l=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(l[1]);""!==(s=s.substring(l[0].length));)if(null!==(l=o.key_access.exec(s)))a.push(l[1]);else{if(null===(l=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(l[1])}e[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:e[0],param_no:e[1],keys:e[2],sign:e[3],pad_char:e[4],align:e[5],width:e[6],precision:e[7],type:e[8]})}n=n.substring(e[0].length)}return c[t]=r}i,a,"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(r=function(){return{sprintf:i,vsprintf:a}}.call(e,n,e,t))||(t.exports=r))}()},2177:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var r="Invariant failed";function o(t,e){if(!t)throw new Error(r)}},5933:(t,e,n)=>{var r;!function(){function o(t,e,n){return t.call.apply(t.bind,arguments)}function i(t,e,n){if(!t)throw Error();if(2=e.f?o():t.fonts.load(function(t){return _(t)+" "+t.f+"00 300px "+x(t.c)}(e.a),e.h).then((function(t){1<=t.length?r():setTimeout(i,25)}),(function(){o()}))}()})),o=null,i=new Promise((function(t,n){o=setTimeout(n,e.f)}));Promise.race([i,r]).then((function(){o&&(clearTimeout(o),o=null),e.g(e.a)}),(function(){e.j(e.a)}))};var R={D:"serif",C:"sans-serif"},L=null;function z(){if(null===L){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);L=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10))}return L}function F(t,e,n){for(var r in R)if(R.hasOwnProperty(r)&&e===t.f[R[r]]&&n===t.f[R[r]])return!0;return!1}function B(t){var e,n=t.g.a.offsetWidth,r=t.h.a.offsetWidth;(e=n===t.f.serif&&r===t.f["sans-serif"])||(e=z()&&F(t,n,r)),e?s()-t.A>=t.w?z()&&F(t,n,r)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?U(t,t.v):U(t,t.B):function(t){setTimeout(a((function(){B(this)}),t),50)}(t):U(t,t.v)}function U(t,e){setTimeout(a((function(){p(this.g.a),p(this.h.a),p(this.j.a),p(this.m.a),e(this.a)}),t),0)}function V(t,e,n){this.c=t,this.a=e,this.f=0,this.m=this.j=!1,this.s=n}M.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=s(),B(this)};var $=null;function W(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&d(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),T(t,"active")):E(t.a))}function H(t){this.j=t,this.a=new k,this.h=0,this.f=this.g=!0}function q(t,e,n,r,o){var i=0==--t.h;(t.f||t.g)&&setTimeout((function(){var t=o||null,s=r||{};if(0===n.length&&i)E(e.a);else{e.f+=n.length,i&&(e.j=i);var c,l=[];for(c=0;c{"use strict";var r=n(9981),o=n(4578),i=n(6814),a=n(2636),s=n(3376);t.exports=function(t){return null==t||"object"!=typeof t&&"function"!=typeof t?null:r(t)?"String":o(t)?"Number":i(t)?"Boolean":a(t)?"Symbol":s(t)?"BigInt":void 0}},6430:(t,e,n)=>{"use strict";var r=n(4029),o=n(3083),i=n(1924),a=i("Object.prototype.toString"),s=n(6410)(),c="undefined"==typeof globalThis?n.g:globalThis,l=o(),u=i("String.prototype.slice"),f={},p=n(882),d=Object.getPrototypeOf;s&&p&&d&&r(l,(function(t){if("function"==typeof c[t]){var e=new c[t];if(Symbol.toStringTag in e){var n=d(e),r=p(n,Symbol.toStringTag);if(!r){var o=d(n);r=p(o,Symbol.toStringTag)}f[t]=r.get}}}));var h=n(5692);t.exports=function(t){return!!h(t)&&(s&&Symbol.toStringTag in t?function(t){var e=!1;return r(f,(function(n,r){if(!e)try{var o=n.call(t);o===r&&(e=o)}catch(t){}})),e}(t):u(a(t),8,-1))}},7363:t=>{"use strict";t.exports=React},4654:()=>{},3083:(t,e,n)=>{"use strict";var r=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"==typeof globalThis?n.g:globalThis;t.exports=function(){for(var t=[],e=0;e{"use strict";t.exports=n(4559)},4559:(t,e,n)=>{"use strict";var r=n(210)("%TypeError%");t.exports=function(t,e){if(null==t)throw new r(e||"Cannot call method on "+t);return t}},882:(t,e,n)=>{"use strict";var r=n(210)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(t){r=null}t.exports=r},3216:(t,e,n)=>{"use strict";var r=n(4155),o=n(2584);if(n(1405)()||n(5419)()){var i=Symbol.iterator;t.exports=function(t){return null!=t&&void 0!==t[i]?t[i]():o(t)?Array.prototype[i].call(t):void 0}}else{var a=n(5677),s=n(9981),c=n(210),l=c("%Map%",!0),u=c("%Set%",!0),f=n(1924),p=f("Array.prototype.push"),d=f("String.prototype.charCodeAt"),h=f("String.prototype.slice"),y=function(t){var e=0;return{next:function(){var n,r=e>=t.length;return r||(n=t[e],e+=1),{done:r,value:n}}}},g=function(t,e){if(a(t)||o(t))return y(t);if(s(t)){var n=0;return{next:function(){var e=function(t,e){if(e+1>=t.length)return e+1;var n=d(t,e);if(n<55296||n>56319)return e+1;var r=d(t,e+1);return r<56320||r>57343?e+1:e+2}(t,n),r=h(t,n,e);return n=e,{done:e>t.length,value:r}}}}return e&&void 0!==t["_es6-shim iterator_"]?t["_es6-shim iterator_"]():void 0};if(l||u){var m=n(8379),v=n(9572),b=f("Map.prototype.forEach",!0),w=f("Set.prototype.forEach",!0);if(void 0===r||!r.versions||!r.versions.node)var O=f("Map.prototype.iterator",!0),j=f("Set.prototype.iterator",!0),x=function(t){var e=!1;return{next:function(){try{return{done:e,value:e?void 0:t.next()}}catch(t){return e=!0,{done:!0,value:void 0}}}}};var S=f("Map.prototype.@@iterator",!0)||f("Map.prototype._es6-shim iterator_",!0),_=f("Set.prototype.@@iterator",!0)||f("Set.prototype._es6-shim iterator_",!0);t.exports=function(t){return function(t){if(m(t)){if(O)return x(O(t));if(S)return S(t);if(b){var e=[];return b(t,(function(t,n){p(e,[n,t])})),y(e)}}if(v(t)){if(j)return x(j(t));if(_)return _(t);if(w){var n=[];return w(t,(function(t){p(n,t)})),y(n)}}}(t)||g(t)}}else t.exports=function(t){if(null!=t)return g(t,!0)}}},3483:(t,e,n)=>{"use strict";var r=n(8379),o=n(9572),i=n(1718),a=n(5899);t.exports=function(t){if(t&&"object"==typeof t){if(r(t))return"Map";if(o(t))return"Set";if(i(t))return"WeakMap";if(a(t))return"WeakSet"}return!1}}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var i=n[t]={exports:{}};return e[t].call(i.exports,i,i.exports,r),i.exports}r.m=e,t=[],r.O=(e,n,o,i)=>{if(!n){var a=1/0;for(u=0;u=i)&&Object.keys(r.O).every((t=>r.O[t](n[c])))?n.splice(c--,1):(s=!1,i0&&t[u-1][2]>i;u--)t[u]=t[u-1];t[u]=[n,o,i]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},(()=>{var t={601:0,329:0,351:0};r.O.j=e=>0===t[e];var e=(e,n)=>{var o,i,[a,s,c]=n,l=0;if(a.some((e=>0!==t[e]))){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(c)var u=c(r)}for(e&&e(n);lr(5812))),r.O(void 0,[329,351],(()=>r(5226)));var o=r.O(void 0,[329,351],(()=>r(6545)));o=r.O(o)})(); \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js.LICENSE.txt b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js.LICENSE.txt new file mode 100644 index 0000000000..3f4fca5ce0 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/js/customizer.min.js.LICENSE.txt @@ -0,0 +1,34 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +/** @license React v17.0.2 + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/**! + * Sortable 1.15.0 + * @author RubaXa + * @author owenm + * @license MIT + */ diff --git a/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/css/all.min.css b/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/css/all.min.css new file mode 100644 index 0000000000..08cf8326b6 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/css/all.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp-solid,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-thumb-tack-slash:before,.fa-thumbtack-slash:before{content:"\e68f"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-table-cells-row-unlock:before{content:"\e691"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-dart-lang:before{content:"\e693"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-flutter:before{content:"\e694"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-brands-400.woff2 b/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d84512f3897d306409dc5aa5764e6406fe888055 GIT binary patch literal 118072 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≶ws+2+-PuOKxw3bzuPfiP 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 literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-solid-900.woff2 b/wp-content/themes/kenta/lotta-framework/dist/vendor/fontawesome/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fec1fae77d486cc8f907b27accca01b59a5b7d90 GIT binary patch literal 157192 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

8BC^!BI#_0UW9ia1p5G*c|qTx5tf3z)F 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 af4^(?DQT-B1Zb=3!=IPs{$&6I000044J$wZ literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/lotta-framework/src/Application.php b/wp-content/themes/kenta/lotta-framework/src/Application.php new file mode 100644 index 0000000000..9c8722f930 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Application.php @@ -0,0 +1,128 @@ +_id = $id; + $this->_uri = $uri; + + static::setInstance( $this ); + } + + /** + * @return mixed|string + */ + public function id() { + return $this->_id; + } + + /** + * @return mixed|string + */ + public function uri() { + return $this->_uri; + } + + /** + * 'do_action' wrapper that prefixes the hook name with id + * + * @param $hook_name + * @param ...$args + */ + public function do_action( $hook_name, ...$args ) { + do_action( $this->uniqid( $hook_name ), ...$args ); + } + + /** + * Get prefixed id + * + * @param string $id + * @param string $sep + * + * @return string + */ + public function uniqid( string $id, string $sep = '_' ) { + if ( empty( $this->_id ) ) { + return $id; + } + + return $this->_id . $sep . $id; + } + + /** + * 'add_action' wrapper that prefixes the hook name with id + * + * @param $hook_name + * @param $callback + * @param int $priority + * @param int $accepted_args + */ + public function add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) { + add_action( $this->uniqid( $hook_name ), $callback, $priority, $accepted_args ); + } + + /** + * 'apply_filters' wrapper that prefixes the hook name with id + * + * @param $hook_name + * @param $value + */ + public function apply_filters( $hook_name, $value ) { + apply_filters( $this->uniqid( $hook_name ), $value ); + } + + /** + * 'add_filter' wrapper that prefixes the hook name with id + * + * @param $hook_name + * @param $callback + * @param mixed ...$args + */ + public function add_filter( $hook_name, $callback, ...$args ) { + add_filter( $this->uniqid( $hook_name ), $callback, ...$args ); + } + + /** + * Add supported features + * + * @param $feature + * + * @return mixed + */ + public function support( $feature ) { + return $this->instance( "features.{$feature}", true ); + } + + /** + * Check if a featured enabled or not + * + * @param $feature + * + * @return bool + */ + public function isSupport( $feature ) { + return $this->has( "features.{$feature}" ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Async/Css.php b/wp-content/themes/kenta/lotta-framework/src/Async/Css.php new file mode 100644 index 0000000000..0f72d0a4df --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Async/Css.php @@ -0,0 +1,132 @@ + $value ) { + + if ( is_string( $value ) && Utils::str_starts_with( $value, '!!!' ) ) { + $value = substr( $value, 3 ); + } else if ( $value !== 'value' ) { + if ( is_array( $value ) ) { + $value = $this->encode( $value ); + } else { + $value = wp_json_encode( $value ); + } + } + + $css_obj[] = "\"$property\":$value"; + } + + $css = '{' . implode( ',', $css_obj ) . '}'; + } + + return $css; + } + + /** + * @param string $selector + * + * @return string + */ + public function dimensions( $selector = 'margin' ) { + return "LottaCss.dimensions(value,'$selector')"; + } + + /** + * @return string + */ + public function background() { + return "LottaCss.background(value)"; + } + + /** + * @param string $selector + * + * @return string + */ + public function border( $selector = 'border' ) { + return "LottaCss.border(value, '$selector')"; + } + + /** + * @param string $selector + * + * @return string + */ + public function shadow( $selector = 'box-shadow' ) { + return "LottaCss.shadow(value, '$selector')"; + } + + /** + * @return string + */ + public function filters() { + return "LottaCss.filters(value)"; + } + + /** + * @return string + */ + public function typography() { + return "LottaCss.typography(value)"; + } + + /** + * @param $maps + * @param array $css + * + * @return string + */ + public function colors( $maps, $css = [] ) { + $maps = wp_json_encode( $maps ); + $css = wp_json_encode( $css ); + + return "LottaCss.colors(value,$maps,$css)"; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Bootstrap.php b/wp-content/themes/kenta/lotta-framework/src/Bootstrap.php new file mode 100644 index 0000000000..38b84dbe6b --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Bootstrap.php @@ -0,0 +1,53 @@ + \LottaFramework\Customizer\Customizer::class, + 'css' => \LottaFramework\Css::class, + 'query' => \LottaFramework\Query::class, + 'breadcrumbs' => \LottaFramework\Extensions\Breadcrumbs::class, + ]; + + /** + * @param string $id + * @param string $uri + */ + public static function run( string $id, string $uri ) { + $app = new Application( $id, $uri ); + + $app->instance( Application::class, $app ); + + Facade::setFacadeApplication( $app ); + + foreach ( self::$singletons as $singleton ) { + $app->singleton( $singleton ); + } + + foreach ( self::$aliases as $alias => $abs ) { + $app->alias( $abs, $alias ); + } + } + +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Container/BindingResolutionException.php b/wp-content/themes/kenta/lotta-framework/src/Container/BindingResolutionException.php new file mode 100644 index 0000000000..bc0290ae63 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Container/BindingResolutionException.php @@ -0,0 +1,7 @@ +make( $segments[0] ), $method ], $parameters + ); + } + + /** + * Call a method that has been bound to the container. + * + * @param Container $container + * @param callable $callback + * @param mixed $default + * + * @return mixed + */ + protected static function callBoundMethod( $container, $callback, $default ) { + if ( ! is_array( $callback ) ) { + return Util::unwrapIfClosure( $default ); + } + + // Here we need to turn the array callable into a Class@method string we can use to + // examine the container and see if there are any method bindings for this given + // method. If there are, we can call this method binding callback immediately. + $method = static::normalizeMethod( $callback ); + + if ( $container->hasMethodBinding( $method ) ) { + return $container->callMethodBinding( $method, $callback[0] ); + } + + return Util::unwrapIfClosure( $default ); + } + + /** + * Normalize the given callback into a Class@method string. + * + * @param callable $callback + * + * @return string + */ + protected static function normalizeMethod( $callback ) { + $class = is_string( $callback[0] ) ? $callback[0] : get_class( $callback[0] ); + + return "{$class}@{$callback[1]}"; + } + + /** + * Get all dependencies for a given method. + * + * @param Container $container + * @param callable|string $callback + * @param array $parameters + * + * @return array + * + * @throws \ReflectionException + */ + protected static function getMethodDependencies( $container, $callback, array $parameters = [] ) { + $dependencies = []; + + foreach ( static::getCallReflector( $callback )->getParameters() as $parameter ) { + static::addDependencyForCallParameter( $container, $parameter, $parameters, $dependencies ); + } + + return array_merge( $dependencies, array_values( $parameters ) ); + } + + /** + * Get the proper reflection instance for the given callback. + * + * @param callable|string $callback + * + * @return \ReflectionFunctionAbstract + * + * @throws \ReflectionException + */ + protected static function getCallReflector( $callback ) { + if ( is_string( $callback ) && strpos( $callback, '::' ) !== false ) { + $callback = explode( '::', $callback ); + } elseif ( is_object( $callback ) && ! $callback instanceof Closure ) { + $callback = [ $callback, '__invoke' ]; + } + + return is_array( $callback ) + ? new ReflectionMethod( $callback[0], $callback[1] ) + : new ReflectionFunction( $callback ); + } + + /** + * Get the dependency for the given call parameter. + * + * @param Container $container + * @param \ReflectionParameter $parameter + * @param array $parameters + * @param array $dependencies + * + * @return void + */ + protected static function addDependencyForCallParameter( + $container, $parameter, + array &$parameters, &$dependencies + ) { + if ( array_key_exists( $paramName = $parameter->getName(), $parameters ) ) { + $dependencies[] = $parameters[ $paramName ]; + + unset( $parameters[ $paramName ] ); + } elseif ( ! is_null( $className = Util::getParameterClassName( $parameter ) ) ) { + if ( array_key_exists( $className, $parameters ) ) { + $dependencies[] = $parameters[ $className ]; + + unset( $parameters[ $className ] ); + } else { + $dependencies[] = $container->make( $className ); + } + } elseif ( $parameter->isDefaultValueAvailable() ) { + $dependencies[] = $parameter->getDefaultValue(); + } elseif ( ! $parameter->isOptional() && ! array_key_exists( $paramName, $parameters ) ) { + $message = "Unable to resolve dependency [{$parameter}] in class {$parameter->getDeclaringClass()->getName()}"; + + throw new BindingResolutionException( $message ); + } + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Container/Container.php b/wp-content/themes/kenta/lotta-framework/src/Container/Container.php new file mode 100644 index 0000000000..b58eb043bb --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Container/Container.php @@ -0,0 +1,1276 @@ +getAlias( $c ); + } + + return new ContextualBindingBuilder( $this, $aliases ); + } + + /** + * Get the alias for an abstract if available. + * + * @param string $abstract + * + * @return string + */ + public function getAlias( $abstract ) { + if ( ! isset( $this->aliases[ $abstract ] ) ) { + return $abstract; + } + + return $this->getAlias( $this->aliases[ $abstract ] ); + } + + /** + * Determine if the container has a method binding. + * + * @param string $method + * + * @return bool + */ + public function hasMethodBinding( $method ) { + return isset( $this->methodBindings[ $method ] ); + } + + /** + * Bind a callback to resolve with Container::call. + * + * @param array|string $method + * @param \Closure $callback + * + * @return void + */ + public function bindMethod( $method, $callback ) { + $this->methodBindings[ $this->parseBindMethod( $method ) ] = $callback; + } + + /** + * Get the method to be bound in class@method format. + * + * @param array|string $method + * + * @return string + */ + protected function parseBindMethod( $method ) { + if ( is_array( $method ) ) { + return $method[0] . '@' . $method[1]; + } + + return $method; + } + + /** + * Get the method binding for the given method. + * + * @param string $method + * @param mixed $instance + * + * @return mixed + */ + public function callMethodBinding( $method, $instance ) { + return call_user_func( $this->methodBindings[ $method ], $instance, $this ); + } + + /** + * Add a contextual binding to the container. + * + * @param string $concrete + * @param string $abstract + * @param \Closure|string $implementation + * + * @return void + */ + public function addContextualBinding( $concrete, $abstract, $implementation ) { + $this->contextual[ $concrete ][ $this->getAlias( $abstract ) ] = $implementation; + } + + /** + * Register a binding if it hasn't already been registered. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * + * @return void + */ + public function bindIf( $abstract, $concrete = null, $shared = false ) { + if ( ! $this->bound( $abstract ) ) { + $this->bind( $abstract, $concrete, $shared ); + } + } + + /** + * Determine if the given abstract type has been bound. + * + * @param string $abstract + * + * @return bool + */ + public function bound( $abstract ) { + return isset( $this->bindings[ $abstract ] ) || + isset( $this->instances[ $abstract ] ) || + $this->isAlias( $abstract ); + } + + /** + * Determine if a given string is an alias. + * + * @param string $name + * + * @return bool + */ + public function isAlias( $name ) { + return isset( $this->aliases[ $name ] ); + } + + /** + * Register a binding with the container. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * + * @return void + */ + public function bind( $abstract, $concrete = null, $shared = false ) { + $this->dropStaleInstances( $abstract ); + + // If no concrete type was given, we will simply set the concrete type to the + // abstract type. After that, the concrete type to be registered as shared + // without being forced to state their classes in both of the parameters. + if ( is_null( $concrete ) ) { + $concrete = $abstract; + } + + // If the factory is not a Closure, it means it is just a class name which is + // bound into this container to the abstract type and we will just wrap it + // up inside its own Closure to give us more convenience when extending. + if ( ! $concrete instanceof Closure ) { + $concrete = $this->getClosure( $abstract, $concrete ); + } + + $this->bindings[ $abstract ] = compact( 'concrete', 'shared' ); + + // If the abstract type was already resolved in this container we'll fire the + // rebound listener so that any objects which have already gotten resolved + // can have their copy of the object updated via the listener callbacks. + if ( $this->resolved( $abstract ) ) { + $this->rebound( $abstract ); + } + } + + /** + * Drop all of the stale instances and aliases. + * + * @param string $abstract + * + * @return void + */ + protected function dropStaleInstances( $abstract ) { + unset( $this->instances[ $abstract ], $this->aliases[ $abstract ] ); + } + + /** + * Get the Closure to be used when building a type. + * + * @param string $abstract + * @param string $concrete + * + * @return \Closure + */ + protected function getClosure( $abstract, $concrete ) { + return function ( $container, $parameters = [] ) use ( $abstract, $concrete ) { + if ( $abstract == $concrete ) { + return $container->build( $concrete ); + } + + return $container->resolve( + $concrete, $parameters, $raiseEvents = false + ); + }; + } + + /** + * Instantiate a concrete instance of the given type. + * + * @param string $concrete + * + * @return mixed + * + * @throws BindingResolutionException + */ + public function build( $concrete ) { + // If the concrete type is actually a Closure, we will just execute it and + // hand back the results of the functions, which allows functions to be + // used as resolvers for more fine-tuned resolution of these objects. + if ( $concrete instanceof Closure ) { + return $concrete( $this, $this->getLastParameterOverride() ); + } + + try { + $reflector = new ReflectionClass( $concrete ); + } catch ( ReflectionException $e ) { + throw new BindingResolutionException( "Target class [$concrete] does not exist.", 0, $e ); + } + + // If the type is not instantiable, the developer is attempting to resolve + // an abstract type such as an Interface or Abstract Class and there is + // no binding registered for the abstractions so we need to bail out. + if ( ! $reflector->isInstantiable() ) { + return $this->notInstantiable( $concrete ); + } + + $this->buildStack[] = $concrete; + + $constructor = $reflector->getConstructor(); + + // If there are no constructors, that means there are no dependencies then + // we can just resolve the instances of the objects right away, without + // resolving any other types or dependencies out of these containers. + if ( is_null( $constructor ) ) { + array_pop( $this->buildStack ); + + return new $concrete; + } + + $dependencies = $constructor->getParameters(); + + // Once we have all the constructor's parameters we can create each of the + // dependency instances and then use the reflection instances to make a + // new instance of this class, injecting the created dependencies in. + try { + $instances = $this->resolveDependencies( $dependencies ); + } catch ( BindingResolutionException $e ) { + array_pop( $this->buildStack ); + + throw $e; + } + + array_pop( $this->buildStack ); + + return $reflector->newInstanceArgs( $instances ); + } + + /** + * Get the last parameter override. + * + * @return array + */ + protected function getLastParameterOverride() { + return count( $this->with ) ? end( $this->with ) : []; + } + + /** + * Throw an exception that the concrete is not instantiable. + * + * @param string $concrete + * + * @return void + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function notInstantiable( $concrete ) { + if ( ! empty( $this->buildStack ) ) { + $previous = implode( ', ', $this->buildStack ); + + $message = "Target [$concrete] is not instantiable while building [$previous]."; + } else { + $message = "Target [$concrete] is not instantiable."; + } + + throw new BindingResolutionException( $message ); + } + + /** + * Resolve all of the dependencies from the ReflectionParameters. + * + * @param \ReflectionParameter[] $dependencies + * + * @return array + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function resolveDependencies( array $dependencies ) { + $results = []; + + foreach ( $dependencies as $dependency ) { + // If this dependency has a override for this particular build we will use + // that instead as the value. Otherwise, we will continue with this run + // of resolutions and let reflection attempt to determine the result. + if ( $this->hasParameterOverride( $dependency ) ) { + $results[] = $this->getParameterOverride( $dependency ); + + continue; + } + + // If the class is null, it means the dependency is a string or some other + // primitive type which we can not resolve since it is not a class and + // we will just bomb out with an error since we have no-where to go. + $results[] = is_null( Util::getParameterClassName( $dependency ) ) + ? $this->resolvePrimitive( $dependency ) + : $this->resolveClass( $dependency ); + } + + return $results; + } + + /** + * Determine if the given dependency has a parameter override. + * + * @param \ReflectionParameter $dependency + * + * @return bool + */ + protected function hasParameterOverride( $dependency ) { + return array_key_exists( + $dependency->name, $this->getLastParameterOverride() + ); + } + + /** + * Get a parameter override for a dependency. + * + * @param \ReflectionParameter $dependency + * + * @return mixed + */ + protected function getParameterOverride( $dependency ) { + return $this->getLastParameterOverride()[ $dependency->name ]; + } + + /** + * Resolve a non-class hinted primitive dependency. + * + * @param \ReflectionParameter $parameter + * + * @return mixed + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function resolvePrimitive( ReflectionParameter $parameter ) { + if ( ! is_null( $concrete = $this->getContextualConcrete( '$' . $parameter->getName() ) ) ) { + return $concrete instanceof Closure ? $concrete( $this ) : $concrete; + } + + if ( $parameter->isDefaultValueAvailable() ) { + return $parameter->getDefaultValue(); + } + + $this->unresolvablePrimitive( $parameter ); + } + + /** + * Get the contextual concrete binding for the given abstract. + * + * @param string $abstract + * + * @return \Closure|string|null + */ + protected function getContextualConcrete( $abstract ) { + if ( ! is_null( $binding = $this->findInContextualBindings( $abstract ) ) ) { + return $binding; + } + + // Next we need to see if a contextual binding might be bound under an alias of the + // given abstract type. So, we will need to check if any aliases exist with this + // type and then spin through them and check for contextual bindings on these. + if ( empty( $this->abstractAliases[ $abstract ] ) ) { + return; + } + + foreach ( $this->abstractAliases[ $abstract ] as $alias ) { + if ( ! is_null( $binding = $this->findInContextualBindings( $alias ) ) ) { + return $binding; + } + } + } + + /** + * Find the concrete binding for the given abstract in the contextual binding array. + * + * @param string $abstract + * + * @return \Closure|string|null + */ + protected function findInContextualBindings( $abstract ) { + return $this->contextual[ end( $this->buildStack ) ][ $abstract ] ?? null; + } + + /** + * Throw an exception for an unresolvable primitive. + * + * @param \ReflectionParameter $parameter + * + * @return void + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function unresolvablePrimitive( ReflectionParameter $parameter ) { + $message = "Unresolvable dependency resolving [$parameter] in class {$parameter->getDeclaringClass()->getName()}"; + + throw new BindingResolutionException( $message ); + } + + /** + * Resolve a class based dependency from the container. + * + * @param \ReflectionParameter $parameter + * + * @return mixed + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function resolveClass( ReflectionParameter $parameter ) { + try { + return $this->make( Util::getParameterClassName( $parameter ) ); + } + + // If we can not resolve the class instance, we will check to see if the value + // is optional, and if it is we will return the optional parameter value as + // the value of the dependency, similarly to how we do this with scalars. + catch ( BindingResolutionException $e ) { + if ( $parameter->isOptional() ) { + return $parameter->getDefaultValue(); + } + + throw $e; + } + } + + /** + * Resolve the given type from the container. + * + * @param string $abstract + * @param array $parameters + * + * @return mixed + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + public function make( $abstract, array $parameters = [] ) { + return $this->resolve( $abstract, $parameters ); + } + + /** + * Resolve the given type from the container. + * + * @param string $abstract + * @param array $parameters + * @param bool $raiseEvents + * + * @return mixed + * + * @throws \Illuminate\Contracts\Container\BindingResolutionException + */ + protected function resolve( $abstract, $parameters = [], $raiseEvents = true ) { + $abstract = $this->getAlias( $abstract ); + + $needsContextualBuild = ! empty( $parameters ) || ! is_null( + $this->getContextualConcrete( $abstract ) + ); + + // If an instance of the type is currently being managed as a singleton we'll + // just return an existing instance instead of instantiating new instances + // so the developer can keep using the same objects instance every time. + if ( isset( $this->instances[ $abstract ] ) && ! $needsContextualBuild ) { + return $this->instances[ $abstract ]; + } + + $this->with[] = $parameters; + + $concrete = $this->getConcrete( $abstract ); + + // We're ready to instantiate an instance of the concrete type registered for + // the binding. This will instantiate the types, as well as resolve any of + // its "nested" dependencies recursively until all have gotten resolved. + if ( $this->isBuildable( $concrete, $abstract ) ) { + $object = $this->build( $concrete ); + } else { + $object = $this->make( $concrete ); + } + + // If we defined any extenders for this type, we'll need to spin through them + // and apply them to the object being built. This allows for the extension + // of services, such as changing configuration or decorating the object. + foreach ( $this->getExtenders( $abstract ) as $extender ) { + $object = $extender( $object, $this ); + } + + // If the requested type is registered as a singleton we'll want to cache off + // the instances in "memory" so we can return it later without creating an + // entirely new instance of an object on each subsequent request for it. + if ( $this->isShared( $abstract ) && ! $needsContextualBuild ) { + $this->instances[ $abstract ] = $object; + } + + if ( $raiseEvents ) { + $this->fireResolvingCallbacks( $abstract, $object ); + } + + // Before returning, we will also set the resolved flag to "true" and pop off + // the parameter overrides for this build. After those two things are done + // we will be ready to return back the fully constructed class instance. + $this->resolved[ $abstract ] = true; + + array_pop( $this->with ); + + return $object; + } + + /** + * Get the concrete type for a given abstract. + * + * @param string $abstract + * + * @return mixed + */ + protected function getConcrete( $abstract ) { + if ( ! is_null( $concrete = $this->getContextualConcrete( $abstract ) ) ) { + return $concrete; + } + + // If we don't have a registered resolver or concrete for the type, we'll just + // assume each type is a concrete name and will attempt to resolve it as is + // since the container should be able to resolve concretes automatically. + if ( isset( $this->bindings[ $abstract ] ) ) { + return $this->bindings[ $abstract ]['concrete']; + } + + return $abstract; + } + + /** + * Determine if the given concrete is buildable. + * + * @param mixed $concrete + * @param string $abstract + * + * @return bool + */ + protected function isBuildable( $concrete, $abstract ) { + return $concrete === $abstract || $concrete instanceof Closure; + } + + /** + * Get the extender callbacks for a given type. + * + * @param string $abstract + * + * @return array + */ + protected function getExtenders( $abstract ) { + $abstract = $this->getAlias( $abstract ); + + return $this->extenders[ $abstract ] ?? []; + } + + /** + * Determine if a given type is shared. + * + * @param string $abstract + * + * @return bool + */ + public function isShared( $abstract ) { + return isset( $this->instances[ $abstract ] ) || + ( isset( $this->bindings[ $abstract ]['shared'] ) && + $this->bindings[ $abstract ]['shared'] === true ); + } + + /** + * Fire all of the resolving callbacks. + * + * @param string $abstract + * @param mixed $object + * + * @return void + */ + protected function fireResolvingCallbacks( $abstract, $object ) { + $this->fireCallbackArray( $object, $this->globalResolvingCallbacks ); + + $this->fireCallbackArray( + $object, $this->getCallbacksForType( $abstract, $object, $this->resolvingCallbacks ) + ); + + $this->fireAfterResolvingCallbacks( $abstract, $object ); + } + + /** + * Fire an array of callbacks with an object. + * + * @param mixed $object + * @param array $callbacks + * + * @return void + */ + protected function fireCallbackArray( $object, array $callbacks ) { + foreach ( $callbacks as $callback ) { + $callback( $object, $this ); + } + } + + /** + * Get all callbacks for a given type. + * + * @param string $abstract + * @param object $object + * @param array $callbacksPerType + * + * @return array + */ + protected function getCallbacksForType( $abstract, $object, array $callbacksPerType ) { + $results = []; + + foreach ( $callbacksPerType as $type => $callbacks ) { + if ( $type === $abstract || $object instanceof $type ) { + $results = array_merge( $results, $callbacks ); + } + } + + return $results; + } + + /** + * Fire all of the after resolving callbacks. + * + * @param string $abstract + * @param mixed $object + * + * @return void + */ + protected function fireAfterResolvingCallbacks( $abstract, $object ) { + $this->fireCallbackArray( $object, $this->globalAfterResolvingCallbacks ); + + $this->fireCallbackArray( + $object, $this->getCallbacksForType( $abstract, $object, $this->afterResolvingCallbacks ) + ); + } + + /** + * Determine if the given abstract type has been resolved. + * + * @param string $abstract + * + * @return bool + */ + public function resolved( $abstract ) { + if ( $this->isAlias( $abstract ) ) { + $abstract = $this->getAlias( $abstract ); + } + + return isset( $this->resolved[ $abstract ] ) || + isset( $this->instances[ $abstract ] ); + } + + /** + * Fire the "rebound" callbacks for the given abstract type. + * + * @param string $abstract + * + * @return void + */ + protected function rebound( $abstract ) { + $instance = $this->make( $abstract ); + + foreach ( $this->getReboundCallbacks( $abstract ) as $callback ) { + call_user_func( $callback, $this, $instance ); + } + } + + /** + * Get the rebound callbacks for a given type. + * + * @param string $abstract + * + * @return array + */ + protected function getReboundCallbacks( $abstract ) { + return $this->reboundCallbacks[ $abstract ] ?? []; + } + + /** + * Register a shared binding if it hasn't already been registered. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * + * @return void + */ + public function singletonIf( $abstract, $concrete = null ) { + if ( ! $this->bound( $abstract ) ) { + $this->singleton( $abstract, $concrete ); + } + } + + /** + * Register a shared binding in the container. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * + * @return void + */ + public function singleton( $abstract, $concrete = null ) { + $this->bind( $abstract, $concrete, true ); + } + + /** + * "Extend" an abstract type in the container. + * + * @param string $abstract + * @param \Closure $closure + * + * @return void + * + * @throws \InvalidArgumentException + */ + public function extend( $abstract, Closure $closure ) { + $abstract = $this->getAlias( $abstract ); + + if ( isset( $this->instances[ $abstract ] ) ) { + $this->instances[ $abstract ] = $closure( $this->instances[ $abstract ], $this ); + + $this->rebound( $abstract ); + } else { + $this->extenders[ $abstract ][] = $closure; + + if ( $this->resolved( $abstract ) ) { + $this->rebound( $abstract ); + } + } + } + + /** + * Register an existing instance as shared in the container. + * + * @param string $abstract + * @param mixed $instance + * + * @return mixed + */ + public function instance( $abstract, $instance ) { + $this->removeAbstractAlias( $abstract ); + + $isBound = $this->bound( $abstract ); + + unset( $this->aliases[ $abstract ] ); + + // We'll check to determine if this type has been bound before, and if it has + // we will fire the rebound callbacks registered with the container and it + // can be updated with consuming classes that have gotten resolved here. + $this->instances[ $abstract ] = $instance; + + if ( $isBound ) { + $this->rebound( $abstract ); + } + + return $instance; + } + + /** + * Remove an alias from the contextual binding alias cache. + * + * @param string $searched + * + * @return void + */ + protected function removeAbstractAlias( $searched ) { + if ( ! isset( $this->aliases[ $searched ] ) ) { + return; + } + + foreach ( $this->abstractAliases as $abstract => $aliases ) { + foreach ( $aliases as $index => $alias ) { + if ( $alias == $searched ) { + unset( $this->abstractAliases[ $abstract ][ $index ] ); + } + } + } + } + + /** + * Assign a set of tags to a given binding. + * + * @param array|string $abstracts + * @param array|mixed ...$tags + * + * @return void + */ + public function tag( $abstracts, $tags ) { + $tags = is_array( $tags ) ? $tags : array_slice( func_get_args(), 1 ); + + foreach ( $tags as $tag ) { + if ( ! isset( $this->tags[ $tag ] ) ) { + $this->tags[ $tag ] = []; + } + + foreach ( (array) $abstracts as $abstract ) { + $this->tags[ $tag ][] = $abstract; + } + } + } + + /** + * Resolve all of the bindings for a given tag. + * + * @param string $tag + * + * @return iterable + */ + public function tagged( $tag ) { + if ( ! isset( $this->tags[ $tag ] ) ) { + return []; + } + + return new RewindableGenerator( function () use ( $tag ) { + foreach ( $this->tags[ $tag ] as $abstract ) { + yield $this->make( $abstract ); + } + }, count( $this->tags[ $tag ] ) ); + } + + /** + * Alias a type to a different name. + * + * @param string $abstract + * @param string $alias + * + * @return void + * + * @throws \LogicException + */ + public function alias( $abstract, $alias ) { + if ( $alias === $abstract ) { + throw new LogicException( "[{$abstract}] is aliased to itself." ); + } + + $this->aliases[ $alias ] = $abstract; + + $this->abstractAliases[ $abstract ][] = $alias; + } + + /** + * Refresh an instance on the given target and method. + * + * @param string $abstract + * @param mixed $target + * @param string $method + * + * @return mixed + */ + public function refresh( $abstract, $target, $method ) { + return $this->rebinding( $abstract, function ( $app, $instance ) use ( $target, $method ) { + $target->{$method}( $instance ); + } ); + } + + /** + * Bind a new callback to an abstract's rebind event. + * + * @param string $abstract + * @param \Closure $callback + * + * @return mixed + */ + public function rebinding( $abstract, Closure $callback ) { + $this->reboundCallbacks[ $abstract = $this->getAlias( $abstract ) ][] = $callback; + + if ( $this->bound( $abstract ) ) { + return $this->make( $abstract ); + } + } + + /** + * Wrap the given closure such that its dependencies will be injected when executed. + * + * @param \Closure $callback + * @param array $parameters + * + * @return \Closure + */ + public function wrap( Closure $callback, array $parameters = [] ) { + return function () use ( $callback, $parameters ) { + return $this->call( $callback, $parameters ); + }; + } + + /** + * Call the given Closure / class@method and inject its dependencies. + * + * @param callable|string $callback + * @param array $parameters + * @param string|null $defaultMethod + * + * @return mixed + */ + public function call( $callback, array $parameters = [], $defaultMethod = null ) { + return BoundMethod::call( $this, $callback, $parameters, $defaultMethod ); + } + + /** + * Get a closure to resolve the given type from the container. + * + * @param string $abstract + * + * @return \Closure + */ + public function factory( $abstract ) { + return function () use ( $abstract ) { + return $this->make( $abstract ); + }; + } + + /** + * An alias function name for make(). + * + * @param string $abstract + * @param array $parameters + * + * @return mixed + */ + public function makeWith( $abstract, array $parameters = [] ) { + return $this->make( $abstract, $parameters ); + } + + /** + * {@inheritdoc} + */ + public function get( $id ) { + try { + return $this->resolve( $id ); + } catch ( Exception $e ) { + if ( $this->has( $id ) ) { + throw $e; + } + + throw new EntryNotFoundException( $id, $e->getCode(), $e ); + } + } + + /** + * {@inheritdoc} + */ + public function has( $id ) { + return $this->bound( $id ); + } + + /** + * Register a new resolving callback. + * + * @param \Closure|string $abstract + * @param \Closure|null $callback + * + * @return void + */ + public function resolving( $abstract, Closure $callback = null ) { + if ( is_string( $abstract ) ) { + $abstract = $this->getAlias( $abstract ); + } + + if ( is_null( $callback ) && $abstract instanceof Closure ) { + $this->globalResolvingCallbacks[] = $abstract; + } else { + $this->resolvingCallbacks[ $abstract ][] = $callback; + } + } + + /** + * Register a new after resolving callback for all types. + * + * @param \Closure|string $abstract + * @param \Closure|null $callback + * + * @return void + */ + public function afterResolving( $abstract, Closure $callback = null ) { + if ( is_string( $abstract ) ) { + $abstract = $this->getAlias( $abstract ); + } + + if ( $abstract instanceof Closure && is_null( $callback ) ) { + $this->globalAfterResolvingCallbacks[] = $abstract; + } else { + $this->afterResolvingCallbacks[ $abstract ][] = $callback; + } + } + + /** + * Get the container's bindings. + * + * @return array + */ + public function getBindings() { + return $this->bindings; + } + + /** + * Remove all of the extender callbacks for a given type. + * + * @param string $abstract + * + * @return void + */ + public function forgetExtenders( $abstract ) { + unset( $this->extenders[ $this->getAlias( $abstract ) ] ); + } + + /** + * Remove a resolved instance from the instance cache. + * + * @param string $abstract + * + * @return void + */ + public function forgetInstance( $abstract ) { + unset( $this->instances[ $abstract ] ); + } + + /** + * Clear all of the instances from the container. + * + * @return void + */ + public function forgetInstances() { + $this->instances = []; + } + + /** + * Flush the container of all bindings and resolved instances. + * + * @return void + */ + public function flush() { + $this->aliases = []; + $this->resolved = []; + $this->bindings = []; + $this->instances = []; + $this->abstractAliases = []; + } + + /** + * Determine if a given offset exists. + * + * @param string $key + * + * @return bool + */ + #[\ReturnTypeWillChange] + public function offsetExists( $key ) { + return $this->bound( $key ); + } + + /** + * Get the value at a given offset. + * + * @param string $key + * + * @return mixed + */ + #[\ReturnTypeWillChange] + public function offsetGet( $key ) { + return $this->make( $key ); + } + + /** + * Set the value at a given offset. + * + * @param string $key + * @param mixed $value + * + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetSet( $key, $value ) { + $this->bind( $key, $value instanceof Closure ? $value : function () use ( $value ) { + return $value; + } ); + } + + /** + * Unset the value at a given offset. + * + * @param string $key + * + * @return void + */ + #[\ReturnTypeWillChange] + public function offsetUnset( $key ) { + unset( $this->bindings[ $key ], $this->instances[ $key ], $this->resolved[ $key ] ); + } + + /** + * Dynamically access container services. + * + * @param string $key + * + * @return mixed + */ + public function __get( $key ) { + return $this[ $key ]; + } + + /** + * Dynamically set container services. + * + * @param string $key + * @param mixed $value + * + * @return void + */ + public function __set( $key, $value ) { + $this[ $key ] = $value; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Container/ContextualBindingBuilder.php b/wp-content/themes/kenta/lotta-framework/src/Container/ContextualBindingBuilder.php new file mode 100644 index 0000000000..bd47d02efa --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Container/ContextualBindingBuilder.php @@ -0,0 +1,65 @@ +concrete = $concrete; + $this->container = $container; + } + + /** + * Define the abstract target that depends on the context. + * + * @param string $abstract + * + * @return $this + */ + public function needs( $abstract ) { + $this->needs = $abstract; + + return $this; + } + + /** + * Define the implementation for the contextual binding. + * + * @param \Closure|string $implementation + * + * @return void + */ + public function give( $implementation ) { + foreach ( Util::arrayWrap( $this->concrete ) as $concrete ) { + $this->container->addContextualBinding( $concrete, $this->needs, $implementation ); + } + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Container/EntryNotFoundException.php b/wp-content/themes/kenta/lotta-framework/src/Container/EntryNotFoundException.php new file mode 100644 index 0000000000..367087772a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Container/EntryNotFoundException.php @@ -0,0 +1,9 @@ +count = $count; + $this->generator = $generator; + } + + /** + * Get an iterator from the generator. + * + * @return mixed + */ + public function getIterator() + { + return ($this->generator)(); + } + + /** + * Get the total number of tagged services. + * + * @return int + */ + public function count() + { + if (is_callable($count = $this->count)) { + $this->count = $count(); + } + + return $this->count; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Container/Util.php b/wp-content/themes/kenta/lotta-framework/src/Container/Util.php new file mode 100644 index 0000000000..a8654a7a37 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Container/Util.php @@ -0,0 +1,70 @@ +getType(); + + if (! $type instanceof ReflectionNamedType || $type->isBuiltin()) { + return; + } + + $name = $type->getName(); + + if (! is_null($class = $parameter->getDeclaringClass())) { + if ($name === 'self') { + return $class->getName(); + } + + if ($name === 'parent' && $parent = $class->getParentClass()) { + return $parent->getName(); + } + } + + return $name; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Css.php b/wp-content/themes/kenta/lotta-framework/src/Css.php new file mode 100644 index 0000000000..30bc4166e0 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Css.php @@ -0,0 +1,587 @@ +setBreakpoints( $breakpoints ); + } + + /** + * Set responsive breakpoints + * + * @param array $breakpoints + */ + public function setBreakpoints( $breakpoints = [] ) { + $this->breakpoints = wp_parse_args( $breakpoints, [ + 'desktop' => '1140px', + 'tablet' => '1024px', + 'mobile' => '768px', + ] ); + } + + public function desktop() { + return $this->breakpoints['desktop'] ?? ''; + } + + public function tablet() { + return $this->breakpoints['tablet'] ?? ''; + } + + public function mobile() { + return $this->breakpoints['mobile'] ?? ''; + } + + /** + * Parse css output + * + * @param array $css_output + * @param bool $beauty + * + * @return string Generated CSS. + */ + public function parse( $css_output = [], $beauty = false ) { + + $parse_css = ''; + $tablet_output = []; + $mobile_output = []; + $eol = $beauty ? PHP_EOL : ''; + + if ( ! is_array( $css_output ) || count( $css_output ) <= 0 ) { + return $parse_css; + } + + foreach ( $css_output as $selector => $properties ) { + + if ( null === $properties ) { + break; + } + + if ( ! count( $properties ) ) { + continue; + } + + $temp_parse_css = $selector . '{' . $eol; + $temp_tablet_output = []; + $temp_mobile_output = []; + $properties_added = 0; + + foreach ( $properties as $property => $value ) { + + // responsive value + if ( is_array( $value ) ) { + $temp_tablet_output[ $property ] = $value['tablet'] ?? ''; + $temp_mobile_output[ $property ] = $value['mobile'] ?? ''; + + $value = $value['desktop'] ?? ''; + } + + if ( '' === $value || null === $value || self::INITIAL_VALUE === $value ) { + continue; + } + + $properties_added ++; + + $temp_parse_css .= $property . ':' . $value . ';' . $eol; + } + + $temp_parse_css .= '}'; + + if ( ! empty( $temp_tablet_output ) ) { + $tablet_output[ $selector ] = $temp_tablet_output; + } + + if ( ! empty( $temp_mobile_output ) ) { + $mobile_output[ $selector ] = $temp_mobile_output; + } + + if ( $properties_added > 0 ) { + $parse_css .= $temp_parse_css; + } + } + + $tablet_css = $this->parse( $tablet_output, $beauty ); + if ( $tablet_css !== '' && isset( $this->breakpoints['tablet'] ) ) { + $tablet_css = '@media (max-width: ' . $this->breakpoints['tablet'] . ') {' . $eol . $tablet_css . $eol . '}' . $eol; + } + + $mobile_css = $this->parse( $mobile_output, $beauty ); + if ( $mobile_css !== '' && isset( $this->breakpoints['desktop'] ) ) { + $mobile_css = '@media (max-width: ' . $this->breakpoints['mobile'] . ') {' . $eol . $mobile_css . $eol . '}' . $eol; + } + + return $parse_css . $tablet_css . $mobile_css; + } + + /** + * Generate css font faces + * + * @param array $font_faces_input + * @param false $beauty + * + * @return string + */ + public function fontFaces( $font_faces_input = [], $beauty = false ) { + $parse_css = ''; + $eol = $beauty ? PHP_EOL : ''; + + foreach ( $font_faces_input as $args ) { + $parse_css .= '@font-face {' . $eol; + + foreach ( $args as $k => $v ) { + if ( $k === 'src' ) { + foreach ( $v as $src ) { + if ( strstr( $src, '.otf' ) ) { + $parse_css .= 'src:' . 'url("' . $src . '")' . ' format("opentype");' . $eol; + } else if ( strstr( $src, '.ttf' ) ) { + $parse_css .= 'src:' . 'url("' . $src . '")' . ' format("truetype");' . $eol; + } else if ( strstr( $src, '.woff2' ) ) { + $parse_css .= 'src:' . 'url("' . $src . '")' . ' format("woff2");' . $eol; + } else if ( strstr( $src, '.woff' ) ) { + $parse_css .= 'src:' . 'url("' . $src . '")' . ' format("woff");' . $eol; + } + } + } else { + $parse_css .= $k . ':' . $v . ';' . $eol; + } + } + + $parse_css .= '}' . $eol; + } + + return $parse_css; + } + + /** + * Generate css keyframes + * + * @param array $keyframes_output + * @param false $beauty + * + * @return string + */ + public function keyframes( $keyframes_output = [], $beauty = false ) { + $parse_css = ''; + $eol = $beauty ? PHP_EOL : ''; + + foreach ( $keyframes_output as $name => $breakpoints ) { + $parse_css .= "@keyframes $name {" . $eol; + + foreach ( $breakpoints as $breakpoint => $properties ) { + $parse_css .= "$breakpoint {" . $eol; + + foreach ( $properties as $property => $value ) { + $parse_css .= $property . ':' . $value . ';' . $eol; + } + + $parse_css .= '}' . $eol; + } + + $parse_css .= '}' . $eol; + } + + return $parse_css; + } + + /** + * Convert spacing control value to css output + * + * @param mixed $value + * @param string $selector + * + * @return array + */ + public function dimensions( $value, $selector = 'margin' ) { + if ( $value === self::INITIAL_VALUE || $value === null ) { + return array(); + } + + if ( ! isset( $value['desktop'] ) ) { + $value = [ null => $value ]; + } + + $spacingCss = []; + + foreach ( $value as $device => $data ) { + $top = $data['top'] ?? ''; + $right = $data['right'] ?? ''; + $bottom = $data['bottom'] ?? ''; + $left = $data['left'] ?? ''; + + if ( $top === '' || $right === '' || $bottom === '' || $left === '' ) { + continue; + } + + $spacingCss[ $selector ] = $this->getResponsiveValue( + "$top $right $bottom $left", $device, $spacingCss[ $selector ] ?? null + ); + } + + return $spacingCss; + } + + /** + * Get value for responsive + * + * @param $value + * @param null $device + * @param null $previous + * + * @return array|mixed|null + */ + protected function getResponsiveValue( $value, $device = null, $previous = null ) { + + if ( ! $device ) { + return $value; + } + + $value = [ + $device => $value + ]; + + return is_array( $previous ) ? array_merge( $previous, $value ) : $value; + } + + /** + * Convert background control value to css output + * + * @param array $background + * + * @return array + */ + public function background( $background ) { + if ( $background === self::INITIAL_VALUE || $background === null ) { + return []; + } + + if ( ! isset( $background['desktop'] ) ) { + $background = [ null => $background ]; + } + + $backgroundCss = []; + + foreach ( $background as $device => $data ) { + if ( $data === self::INITIAL_VALUE || $data === null ) { + continue; + } + + if ( $data['type'] === 'color' ) { + if ( ! ( $data['color'] ?? '' ) || ( $data['color'] ?? '' ) === 'inherit' || ( $data['color'] ?? '' ) === self::INITIAL_VALUE ) { + continue; + } + + // solid color type + $backgroundCss['background-color'] = $this->getResponsiveValue( + $data['color'] ?? '', $device, + $backgroundCss['background-color'] ?? null + ); + // override background image + $backgroundCss['background-image'] = $this->getResponsiveValue( + 'none', $device, + $backgroundCss['background-image'] ?? null + ); + } else if ( $data['type'] === 'gradient' ) { + // gradient type + $backgroundCss['background-image'] = $this->getResponsiveValue( + $data['gradient'] ?? '', $device, + $backgroundCss['background-image'] ?? null + ); + } else if ( $data['type'] === 'image' ) { + // background image + $image = $data['image'] ?? []; + + if ( isset( $image['color'] ) ) { + $backgroundCss['background-color'] = $this->getResponsiveValue( + $image['color'], $device, $backgroundCss['background-color'] ?? null + ); + } + if ( isset( $image['size'] ) ) { + $backgroundCss['background-size'] = $this->getResponsiveValue( + $image['size'], $device, $backgroundCss['background-size'] ?? null + ); + } + if ( isset( $image['repeat'] ) ) { + $backgroundCss['background-repeat'] = $this->getResponsiveValue( + $image['repeat'], $device, $backgroundCss['background-repeat'] ?? null + ); + } + if ( isset( $image['attachment'] ) ) { + $backgroundCss['background-attachment'] = $this->getResponsiveValue( + $image['attachment'], $device, $backgroundCss['background-attachment'] ?? null + ); + } + + if ( isset( $image['source'] ) && isset( $image['source']['url'] ) ) { + + $backgroundCss['background-image'] = $this->getResponsiveValue( + 'url(' . $image['source']['url'] . ')', $device, + $backgroundCss['background-image'] ?? null + ); + + if ( isset( $image['source']['x'] ) && isset( $image['source']['y'] ) ) { + $x = $image['source']['x'] * 100; + $y = $image['source']['y'] * 100; + + $backgroundCss['background-position'] = $this->getResponsiveValue( + "$x% $y%", $device, $backgroundCss['background-position'] ?? null + ); + } + } + } + } + + return $backgroundCss; + } + + /** + * Convert border control to css output + * + * @param $selector + * @param array $border + * + * @return array + */ + public function border( $border, $selector = 'border' ) { + if ( $border === null || $border === self::INITIAL_VALUE ) { + return array(); + } + + if ( ! isset( $border['desktop'] ) ) { + $border = [ null => $border ]; + } + + $borderCss = []; + + foreach ( $border as $device => $data ) { + $value = 'none'; + $style = $data['style'] ?? ''; + $width = ( $data['width'] ?? '0' ) . 'px'; + $color = $data['color'] ?? ''; + $hover = $data['hover'] ?? ''; + + if ( ( $data['inherit'] ?? false ) || $style === '' || $style === self::INITIAL_VALUE ) { + continue; + } + + if ( $style !== 'none' ) { + $value = "$width $style var(--lotta-border-$selector-initial-color)"; + } + + $borderCss[ $selector ] = $this->getResponsiveValue( + $value, $device, $borderCss[ $selector ] ?? null + ); + + if ( $color !== self::INITIAL_VALUE ) { + $borderCss['--lotta-border-initial-color'] = $this->getResponsiveValue( + $color, $device, $borderCss['--lotta-border-initial-color'] ?? null + ); + + $borderCss["--lotta-border-$selector-initial-color"] = $this->getResponsiveValue( + $color, $device, $borderCss["--lotta-border-$selector-initial-color"] ?? null + ); + } + + if ( $hover !== self::INITIAL_VALUE ) { + $borderCss['--lotta-border-hover-color'] = $this->getResponsiveValue( + $hover, $device, $borderCss['--lotta-border-hover-color'] ?? null + ); + + $borderCss["--lotta-border-$selector-hover-color"] = $this->getResponsiveValue( + $hover, $device, $borderCss["--lotta-border-$selector-hover-color"] ?? null + ); + } + } + + return $borderCss; + } + + /** + * Convert shadow control value to css output + * + * @param mixed $shadow + * @param string $selector + * + * @return array + */ + public function shadow( $shadow, $selector = 'box-shadow' ) { + + if ( $shadow === null || $shadow === self::INITIAL_VALUE ) { + return array(); + } + + if ( ! isset( $shadow['desktop'] ) ) { + $shadow = [ null => $shadow ]; + } + + $shadowCss = []; + + foreach ( $shadow as $device => $data ) { + if ( $data === null || $data === self::INITIAL_VALUE ) { + continue; + } + + $value = 'none'; + $enable = ( $data['enable'] ?? '' ) === 'yes'; + $h = $data['horizontal'] ?? '0'; + $v = $data['vertical'] ?? '0'; + $blur = $data['blur'] ?? '0'; + $spread = $data['spread'] ?? '0'; + $color = $data['color'] ?? ''; + + if ( $enable ) { + $value = "$color $h $v $blur $spread"; + } + + $shadowCss[ $selector ] = $this->getResponsiveValue( + $value, $device, $shadowCss[ $selector ] ?? null + ); + } + + return $shadowCss; + } + + /** + * Convert filters control value to css output + * + * @param mixed $filter + * + * @return array + */ + public function filters( $filter ) { + + if ( $filter === null ) { + return array(); + } + + if ( ! isset( $filter['desktop'] ) ) { + $filter = [ null => $filter ]; + } + + $filterCss = []; + + foreach ( $filter as $device => $data ) { + $value = null; + $enable = ( $data['enable'] ?? '' ) === 'yes'; + $blur = $data['blur'] ?? 0; + $contrast = $data['contrast'] ?? 100; + $brightness = $data['brightness'] ?? 100; + $saturate = $data['saturate'] ?? 100; + $hue = $data['hue'] ?? 0; + + if ( $enable ) { + $value = "brightness( {$brightness}% ) contrast( {$contrast}% ) saturate( {$saturate}% ) blur( {$blur}px ) hue-rotate( {$hue}deg )"; + } + + $filterCss['filter'] = $this->getResponsiveValue( + $value, $device, $filterCss['filter'] ?? null + ); + } + + return $filterCss; + } + + /** + * Convert typography control value to css output + * + * @param array $typography + * + * @return array + */ + public function typography( $typography ) { + if ( $typography === null || $typography === self::INITIAL_VALUE ) { + return array(); + } + + $custom = Fonts::custom_fonts(); + $system = Fonts::system_fonts(); + $google = Fonts::google_fonts(); + + $family = $typography['family'] ?? 'inherit'; + $variant = $typography['variant'] ?? '400'; + $fontSize = $typography['fontSize'] ?? ''; + $lineHeight = $typography['lineHeight'] ?? ''; + $letterSpacing = $typography['letterSpacing'] ?? ''; + + if ( isset( $system[ $family ] ) ) { + if ( isset( $system[ $family ]['s'] ) && ! empty( $system[ $family ]['s'] ) ) { + $family = $system[ $family ]['s']; + } + } + + if ( isset( $google[ $family ] ) ) { + $variants = $google[ $family ]['v'] ?? []; + $family = $google[ $family ]['f'] ?? $family; + $variant = in_array( $variant, $variants ) ? $variant : ( $variants[0] ?? '400' ); + } + + if ( isset( $custom[ $family ] ) ) { + $variant = $custom[ $family ]['v'] ?? '400'; + + if ( isset( $custom[ $family ]['s'] ) && ! empty( $custom[ $family ]['s'] ) ) { + $family = $custom[ $family ]['f'] . ',' . $custom[ $family ]['s']; + } else { + $family = $custom[ $family ]['f']; + } + } + + $variant = $variant === self::INITIAL_VALUE ? '' : $variant; + $family = $family === self::INITIAL_VALUE ? '' : $family; + $fontSize = $fontSize === self::INITIAL_VALUE ? '' : $fontSize; + $lineHeight = $lineHeight === self::INITIAL_VALUE ? '' : $lineHeight; + $letterSpacing = $letterSpacing === self::INITIAL_VALUE ? '' : $letterSpacing; + + return [ + 'font-family' => $family, + 'font-weight' => $variant, + 'font-size' => $fontSize, + 'line-height' => $lineHeight, + 'letter-spacing' => $letterSpacing, + 'text-transform' => $typography['textTransform'] ?? '', + 'text-decoration' => $typography['textDecoration'] ?? '', + ]; + } + + /** + * Convert color control value to css output + * + * @param $colors + * @param $maps + * @param array $css + * + * @return array + */ + public function colors( $colors, $maps, $css = [] ) { + + foreach ( $maps as $color => $key ) { + if ( isset( $colors[ $color ] ) && $colors[ $color ] !== self::INITIAL_VALUE ) { + if ( ! is_array( $key ) ) { + $key = [ $key ]; + } + + foreach ( $key as $item ) { + $css[ $item ] = $colors[ $color ]; + } + } + } + + return $css; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/CallToActionSection.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/CallToActionSection.php new file mode 100644 index 0000000000..1e21870241 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/CallToActionSection.php @@ -0,0 +1,78 @@ +register_section_type( self::class ); + + parent::__construct( $manager, $id, $args ); + } + + /** + * The type of customize section being rendered. + * + * @since 1.0.0 + * @access public + * @var string + */ + public $type = 'lotta-cta-section'; + + /** + * Call to action desc + * + * @var string + */ + public $desc = ''; + + /** + * @var array + */ + public $link = array(); + + /** + * Add custom parameters to pass to the JS via JSON. + * + * @since 1.0.0 + */ + public function json() { + $json = parent::json(); + + $json['desc'] = $this->desc; + $json['link'] = $this->link; + + return $json; + } + + /** + * An Underscore (JS) template for rendering this section. + * + * Class variables for this section class are available in the `data` JS object; + * export custom variables by overriding WP_Customize_Section::json(). + * + * @since 4.3.0 + * + * @see WP_Customize_Section::print_template() + */ + protected function render_template() { + ?> +

  • +

    + + {{ data.title }} + + + <# if (data.desc) { #> + + {{{ data.desc }}} + + <# } #> +

    +
  • + hideLabel(); + $this->setDefaultValue( '__LOTTA_CONTAINER_CONTROL__' ); + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return '__return_false'; + } + + /** + * @param $options + * @param $settings + * + * @return array + */ + protected function sanitizeSettings( $options, $settings ) { + $result = []; + foreach ( $settings as $id => $value ) { + $option = $options->getSettingArgs( $id ); + if ( empty( $option ) ) { + continue; + } + if ( isset( $option['sanitize_callback'] ) ) { + $value = call_user_func( $option['sanitize_callback'], $value, $option ); + } + $result[ $id ] = $value; + } + + return $result; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Control.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Control.php new file mode 100644 index 0000000000..fa7c5c7916 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Control.php @@ -0,0 +1,342 @@ +id = $id; + } + + /** + * Get control type + * + * @return string + */ + abstract public function getType(): string; + + /** + * Get control sanitize callback + * + * @return mixed + */ + abstract public function getSanitize(); + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return []; + } + + /** + * Add or change control param + * + * @param $key + * @param $value + * + * @return $this + */ + public function setParam( $key, $value ) { + $this->params[ $key ] = $value; + + return $this; + } + + /** + * Add or change an option + * + * @param $key + * @param $value + * + * @return $this + */ + public function setOption( $key, $value ) { + $this->options[ $key ] = $value; + + return $this; + } + + /** + * Alias for set label param + * + * @param $label + * + * @return $this + */ + public function setLabel( $label ) { + return $this->setParam( 'label', apply_filters( $this->id . '_label', $label ) ); + } + + /** + * Alias for set description param + * + * @param $desc + * + * @return $this + */ + public function setDescription( $desc ) { + return $this->setParam( 'description', apply_filters( $this->id . '_desc', $desc ) ); + } + + /** + * Alias for set section id + * + * @param $id + * + * @return $this + */ + public function setSection( $id ) { + return $this->setParam( 'section', apply_filters( $this->id . '_section_id', $id ) ); + } + + /** + * Alias for set default value param + * + * @param $default + * + * @return $this + */ + public function setDefaultValue( $default ) { + return $this->setParam( 'default', apply_filters( $this->id . '_default_value', $default ) ); + } + + /** + * Set transport to postMessage + * + * @return $this + */ + public function postMessage() { + return $this->setParam( 'transport', 'postMessage' ); + } + + /** + * Enable responsive value + * + * @return $this + */ + public function enableResponsive() { + return $this->setOption( 'responsive', true ); + } + + /** + * Get is responsive or not + * + * @return false|mixed + */ + public function isResponsive() { + return $this->options['responsive'] ?? false; + } + + /** + * Show control as inline + * + * @return $this + */ + public function displayNone() { + return $this->setOption( 'design', 'none' ); + } + + /** + * Show control as inline + * + * @return $this + */ + public function displayInline() { + return $this->setOption( 'design', 'inline' ); + } + + /** + * Show control as block + * + * @return $this + */ + public function displayBlock() { + return $this->setOption( 'design', 'block' ); + } + + /** + * Show control as raw control + * + * @return $this + * + * @since v2.0.15 + */ + public function displayRaw() { + return $this->setOption( 'design', 'raw' ); + } + + /** + * Show control label + * + * @return $this + */ + public function showLabel() { + return $this->setOption( 'hideLabel', false ); + } + + /** + * Show control label + * + * @return $this + */ + public function hideLabel() { + return $this->setOption( 'hideLabel', true ); + } + + /** + * Generate async script + * + * @param $script + * + * @return $this + */ + public function async( $script ) { + + $this->postMessage(); + + CZ::addAsync( $this->id, $script ); + + return $this; + } + + /** + * @param $selector + * @param $css + * + * @return $this + */ + public function asyncCss( $selector, $css ) { + + if ( is_array( $selector ) ) { + $selector = implode( ',', $selector ); + } + + $css = AsyncCss::encode( $css ); + + return $this->async( AsyncCss::dynamic( $this->id, "{'$selector': $css}" ) ); + } + + /** + * @param $selector + * + * @return $this + */ + public function asyncText( $selector ) { + + if ( is_array( $selector ) ) { + $selector = implode( ',', $selector ); + } + + return $this->async( "document.querySelector('{$selector}').innerText = value" ); + } + + /** + * @param $selector + * + * @return $this + */ + public function asyncHtml( $selector ) { + + if ( is_array( $selector ) ) { + $selector = implode( ',', $selector ); + } + + return $this->async( "document.querySelector('{$selector}').innerHTML = value" ); + } + + /** + * Bind selective refresh + * + * @param $id + * + * @return $this + */ + public function bindSelectiveRefresh( $id ) { + if ( ! $id ) { + return $this; + } + + $this->postMessage(); + + CZ::bindSelectiveRefresh( $id, $this->id ); + + return $this; + } + + /** + * Enable selective refresh + * + * @param string $selector + * @param $callback + * @param $args + * + * @return $this + */ + public function selectiveRefresh( $selector = null, $callback = null, $args = [] ) { + if ( ! $selector || ! $callback ) { + return $this; + } + + $this->postMessage(); + + return $this->setParam( 'selective_refresh', array_merge( $args, [ + 'selector' => $selector, + 'render_callback' => $callback, + ] ) ); + } + + /** + * Convert control to array args + * + * @return array + */ + public function toArray(): array { + $sanitize_callback = $this->getSanitize(); + + $args = array_merge( $this->params, [ + 'id' => $this->id, + 'type' => $this->getType(), + 'options' => $this->options, + 'controls' => $this->getSubControlsPath(), + ] ); + + $args['sanitize_callback'] = is_array( $sanitize_callback ) ? function ( $input ) use ( $args, $sanitize_callback ) { + if ( $this->isResponsive() ) { + return Sanitizes::responsive_sanitize( $sanitize_callback, $input, $args ); + } + + return call_user_func( $sanitize_callback, $input, $args ); + } : $sanitize_callback; + + return $args; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Background.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Background.php new file mode 100644 index 0000000000..0a11c362e1 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Background.php @@ -0,0 +1,23 @@ +setOption( 'enableHover', true ); + } + + public function setDefaultBorder( $width, $style, $color, $hover = '', $inherit = false ) { + $default = array_merge( $this->params['default'] ?? [], [ + 'style' => $style, + 'width' => $width, + 'color' => $color, + 'hover' => $hover, + 'inherit' => $inherit, + ] ); + + return $this->setDefaultValue( $default ); + } + + public function inheritByDefault() { + $default = $this->params['default'] ?? []; + + $default['inherit'] = true; + + return $this->setDefaultValue( $default ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/BoxShadow.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/BoxShadow.php new file mode 100644 index 0000000000..aae728a1ba --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/BoxShadow.php @@ -0,0 +1,34 @@ +setDefaultValue( [ + 'enable' => $enable ? 'yes' : 'no', + 'horizontal' => $horizontal, + 'vertical' => $vertical, + 'blur' => $blur, + 'spread' => $spread, + 'color' => $color, + ] ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Builder.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Builder.php new file mode 100644 index 0000000000..4236eecfd2 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Builder.php @@ -0,0 +1,502 @@ +setDefaultValue( [] ); + + // Enqueue elements admin scripts + add_action( 'customize_register', function () { + foreach ( $this->elements as $element ) { + $element->enqueue_admin_scripts(); + } + } ); + + Utils::app()->add_action( 'after_register_' . $this->id, function () { + $this->do( 'after_register' ); + } ); + + // Enqueue elements frontend scripts + add_action( 'wp_enqueue_scripts', function () { + $this->do( 'enqueue_frontend_scripts' ); + } ); + } + + /** + * @param $action + */ + public function do( $action ) { + if ( isset( $this->performed_actions[ $action ] ) ) { + return; + } + + // Enqueue all elements & rows style under customize preview + if ( is_customize_preview() ) { + foreach ( $this->rows as $row ) { + $row->{$action}(); + } + foreach ( $this->elements as $element ) { + $element->{$action}(); + } + } + + // Only enqueue used elements & rows + $settings = CZ::get( $this->id ); + $enqueued_elements = []; + + foreach ( $settings as $ri => $row ) { + + if ( ! is_customize_preview() && $this->shouldRenderRow( $ri ) && isset( $this->rows[ $ri ] ) ) { + $this->rows[ $ri ]->{$action}(); + } + + if ( ! $this->isResponsiveBuilder() ) { + $row = [ 'all' => $row ]; + } + + foreach ( $row as $device => $col ) { + + $columns = $col['columns'] ?? []; + + foreach ( $columns as $ci => $column ) { + + if ( ! is_customize_preview() ) { + foreach ( ( $column['elements'] ?? [] ) as $element ) { + if ( isset( $this->elements[ $element ] ) && ! in_array( $element, $enqueued_elements ) ) { + $enqueued_elements[] = $element; + $this->elements[ $element ]->{$action}(); + } + } + } + + $this->column->{$action}( $this->getColId( $ri, $ci, $device ), $column ); + } + } + } + + $this->performed_actions[ $action ] = true; + } + + /** + * Should render a row + * + * @param $id + * + * @return mixed + */ + public function shouldRenderRow( $id ) { + return $this->rows[ $id ]->shouldRender(); + } + + /** + * Get is responsive or not + * + * @return false|mixed + */ + public function isResponsiveBuilder() { + return $this->options['responsive_builder'] ?? false; + } + + /** + * @param string $row + * @param string $col + * @param string $device + * + * @return string + */ + protected function getColId( $row, $col, $device ) { + return $this->id . '_col_' . $row . '_' . $col . '_' . $device; + } + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return [ + 'elements.[].controls' => true, + 'rows.[].controls' => true, + ]; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ $this, 'sanitizeCallback' ]; + } + + /** + * @param $input + * @param $args + * + * @return array + */ + public function sanitizeCallback( $input, $args ) { + if ( ! is_array( $input ) ) { + return []; + } + + $desktopElements = []; + $mobileElements = []; + + foreach ( $args['options']['elements'] as $el => $data ) { + $device = $data['device'] ?? null; + + if ( $device === null || $device === 'desktop' ) { + $desktopElements[] = $el; + } + + if ( $device === null || $device === 'mobile' ) { + $mobileElements[] = $el; + } + } + + $rows = $args['options']['rows']; + $responsive = isset( $args['options']['responsive_builder'] ) && ! ! $args['options']['responsive_builder']; + + $sanitize_builder_row_data = function ( $data, $maxColumns, $device = 'desktop' ) use ( &$mobileElements, &$desktopElements ) { + $columns = $data['columns'] ?? []; + $newColumns = []; + + foreach ( $columns as $i => $column ) { + if ( $i >= $maxColumns ) { + continue; + } + + $newColumn = [ + 'settings' => $this->sanitizeSettings( $this->column, $column['settings'] ?? [] ) + ]; + $elements = $column['elements'] ?? []; + + if ( $device === 'mobile' ) { + $newColumn['elements'] = array_intersect( $elements, $mobileElements ); + $mobileElements = array_diff( $mobileElements, $elements ); + } + + if ( $device === 'desktop' ) { + $newColumn['elements'] = array_intersect( $elements, $desktopElements ); + $desktopElements = array_diff( $desktopElements, $elements ); + } + + $newColumns[] = $newColumn; + } + + return [ + 'columns' => $newColumns, + ]; + }; + + $result = []; + + foreach ( $input as $ri => $data ) { + if ( ! isset( $rows[ $ri ] ) ) { + continue; + } + + $maxColumns = $rows[ $ri ]['maxColumns'] ?? 1; + + if ( $responsive ) { + $result[ $ri ] = [ + 'desktop' => $sanitize_builder_row_data( $data['desktop'] ?? [], $maxColumns, 'desktop' ), + 'mobile' => $sanitize_builder_row_data( $data['mobile'] ?? [], $maxColumns, 'mobile' ), + ]; + } else { + $result[ $ri ] = $sanitize_builder_row_data( $data, $maxColumns ); + } + } + + return $result; + } + + /** + * Enable responsive value + * + * @return $this + */ + public function enableResponsive() { + return $this->setOption( 'responsive_builder', true ); + } + + /** + * @param $column + * + * @return $this + */ + public function setColumn( $column ) { + $this->column = $column; + + $this->setOption( 'column', [ + 'defaults' => $this->column->getDefaults(), + 'controls' => $this->column->getControlsArg(), + ] ); + + return $this; + } + + /** + * Add builder elements + * + * @param Element|null $element + * + * @return Builder + */ + public function addElement( $element ) { + if ( ! $element instanceof Element ) { + return $this; + } + + $element->setBuilder( $this ); + + $this->elements[ $element->getId() ] = $element; + + $elements = $this->options['elements'] ?? []; + $elements[ $element->getId() ] = [ + 'label' => $element->getLabel(), + 'device' => $element->getDevice(), + 'controls' => $this->parseControls( $element->getControls() ), + ]; + + return $this->setOption( 'elements', $elements ); + } + + /** + * Add a row + * + * @param Row $row + * + * @return $this + */ + public function addRow( $row ) { + if ( ! $row instanceof Row ) { + return $this; + } + + $row->setBuilder( $this ); + + $this->rows[ $row->getId() ] = $row; + + $rows = $this->options['rows'] ?? []; + $default = $this->params['default'] ?? []; + + $rows[ $row->getId() ] = [ + 'label' => $row->getLabel(), + 'device' => $row->getDevice(), + 'type' => $row->getType(), + 'maxColumns' => $row->getMaxColumns(), + 'controls' => $this->parseControls( $row->getControls() ) + ]; + + $default[ $row->getId() ] = $row->getDefault(); + + return $this->setDefaultValue( $default )->setOption( 'rows', $rows ); + } + + /** + * @return string + */ + public function getType(): string { + return 'lotta-builder'; + } + + /** + * @param $row + * + * @return bool + */ + public function hasContent( $row ) { + + $settings = CZ::get( $this->id ); + if ( ! isset( $settings[ $row ] ) ) { + return false; + } + + $settings = $settings[ $row ]; + if ( ! $this->isResponsiveBuilder() ) { + $settings = [ 'all' => $settings ]; + } + + foreach ( $settings as $data ) { + $columns = $data['columns'] ?? []; + foreach ( $columns as $column ) { + $elements = $column['elements'] ?? []; + + // Check renderable elements + foreach ( $elements as $item ) { + if ( isset( $this->elements[ $item ] ) && $this->elements[ $item ]->shouldRender() ) { + return true; + } + } + } + } + + return false; + } + + /** + * @param $row + * + * @return array + */ + public function getColumns( $row ) { + $settings = CZ::get( $this->id ); + if ( ! isset( $settings[ $row ] ) ) { + return []; + } + $settings = $settings[ $row ]; + if ( ! $this->isResponsiveBuilder() ) { + $settings = [ 'all' => $settings ]; + } + + $columns = []; + + foreach ( $settings as $device => $data ) { + $columns[ $device ] = count( $data['columns'] ?? [] ); + } + + return $columns; + } + + /** + * Set preview location + * + * @param $location + * + * @return $this + */ + public function setPreviewLocation( $location ) { + $this->location = $location; + + return $this; + } + + /** + * Get preview location + * + * @return string + */ + public function getPreviewLocation() { + return $this->location; + } + + /** + * Render a builder row + * + * @param $rowID + * @param null $filter + */ + public function render( $rowID, $filter = null ) { + $settings = CZ::get( $this->id ); + if ( ! isset( $settings[ $rowID ] ) || ! isset( $this->rows[ $rowID ] ) ) { + return; + } + + $row = $this->rows[ $rowID ]; + $settings = $settings[ $rowID ]; + + if ( ! $this->isResponsiveBuilder() ) { + $settings = [ 'all' => $settings ]; + } + + // Row start + $row->beforeRow(); + + foreach ( $settings as $device => $data ) { + + $row->beforeRowDevice( $device, $data ); + + $columns = $data['columns'] ?? []; + + foreach ( $columns as $i => $column ) { + + $elements = $column['elements'] ?? []; + + // empty column + if ( empty( $elements ) ) { + continue; + } + + $css = []; + if ( $filter !== null ) { + $css = call_user_func( $filter, $css, [ + 'device' => $device, + 'column' => $i, + 'columns' => $columns, + 'elements' => $elements + ] ); + } + + // Column start + $this->column->start( + $this->getColId( $rowID, $i, $device ), + array_merge( $column, [ + 'css' => $css, + 'device' => $device, + 'index' => $i, + ] ), + $this->location . ":{$rowID}-{$device}-{$i}" + ); + + // Elements + foreach ( $elements as $item ) { + if ( isset( $this->elements[ $item ] ) && $this->elements[ $item ]->shouldRender() ) { + $this->elements[ $item ]->build(); + } + } + + // Column end + $this->column->end( $this->getColId( $rowID, $i, $device ), $column ); + } + + $row->afterRowDevice( $device, $data ); + } + + // End row + $row->afterRow(); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/CallToAction.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/CallToAction.php new file mode 100644 index 0000000000..3f2d34011f --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/CallToAction.php @@ -0,0 +1,47 @@ +hideLabel(); + $this->displayAsLink(); + $this->setDefaultValue( [] ); + } + + public function getType(): string { + return 'lotta-cta'; + } + + public function getSanitize() { + return '__return_false'; + } + + public function expandCustomize( $path ) { + $this->setOption( 'cta', 'customize' ); + $this->setOption( 'target', $path ); + + return $this; + } + + public function linkTo( $url ) { + $this->setOption( 'cta', 'url' ); + $this->setOption( 'target', $url ); + + return $this; + } + + public function displayAsLink() { + return $this->setOption( 'style', 'link' ); + } + + public function displayAsButton() { + return $this->setOption( 'style', 'button' ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Collapse.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Collapse.php new file mode 100644 index 0000000000..10221fccec --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Collapse.php @@ -0,0 +1,48 @@ +solidStyle(); + } + + public function getType(): string { + return 'lotta-collapse'; + } + + public function solidStyle() { + return $this->setOption( 'style', 'solid' ); + } + + public function ghostStyle() { + return $this->setOption( 'style', 'ghost' ); + } + + public function openByDefault() { + return $this->setOption( 'open', true ); + } + + public function closeByDefault() { + return $this->setOption( 'open', false ); + } + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return [ 'controls' => false ]; + } + + public function setControls( $controls ) { + return $this->setOption( 'controls', $this->parseControls( $controls ) ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPalettes.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPalettes.php new file mode 100644 index 0000000000..d2b3c13e58 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPalettes.php @@ -0,0 +1,59 @@ +setOption( 'labels', $colors ); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-color-palettes'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ Sanitizes::class, 'palettes' ]; + } + + /** + * Add new palette + * + * @param $id + * @param $palette + * + * @return ColorPalettes + */ + public function addPalette( $id, $palette ) { + $palettes = $this->options['palettes'] ?? []; + $palettes[ $id ] = $palette; + + return $this->setOption( 'palettes', $palettes ); + } + + /** + * @param $id + * @param $maps + * + * @return ColorPalettes + * + * @since v2.0.15 + */ + public function setColor( $id, $map ) { + $maps = $this->options['maps'] ?? []; + $maps[ $id ] = $map; + + return $this->setOption( 'maps', $maps ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPicker.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPicker.php new file mode 100644 index 0000000000..e577d997f2 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ColorPicker.php @@ -0,0 +1,91 @@ +enableAlpha(); + } + + public function getType(): string { + return 'lotta-color-picker'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ Sanitizes::class, 'rgba_color_collect' ]; + } + + public function disableAlpha() { + return $this->setOption( 'alpha', false ); + } + + public function enableAlpha() { + return $this->setOption( 'alpha', true ); + } + + public function computedValue() { + return $this->setOption( 'computed', true ); + } + + public function setSwatches( $swatches ) { + return $this->setOption( 'swatches', $swatches ); + } + + public function addColor( $id, $title, $default = '' ) { + $defaultParam = $this->params['default'] ?? []; + $colorsOption = $this->options['colors'] ?? []; + + $defaultParam[ $id ] = $default; + $colorsOption[] = [ + 'title' => $title, + 'id' => $id, + ]; + + return $this->setOption( 'colors', $colorsOption ) + ->setDefaultValue( $defaultParam ); + } + + /** + * Set current color as css var in customizer + * + * @param $selector + * @param $maps + * + * @return ColorPicker + * + * @since v2.0.15 + */ + public function setCustomizerColors( $selector, $maps ) { + return $this->setOption( 'set_customizer_colors', [ + 'selector' => $selector, + 'maps' => $maps, + ] ); + } + + /** + * Shortcut for async colors value + * + * @param $selector + * @param $maps + * + * @return ColorPicker + */ + public function asyncColors( $selector, $maps ) { + $css = AsyncCss::colors( $maps ); + + return $this->asyncCss( $selector, $css ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Condition.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Condition.php new file mode 100644 index 0000000000..33de7eb997 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Condition.php @@ -0,0 +1,50 @@ +setCondition( $condition ); + $this->setControls( $controls ); + $this->setReverseControls( $reverseControls ); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-condition'; + } + + public function getSubControlsPath(): array { + return [ 'controls' => false, 'reverseControls' => false ]; + } + + public function reverse() { + return $this->setOption( 'reverse', true ); + } + + public function setCondition( $condition ) { + return $this->setOption( 'condition', $condition ); + } + + public function setControls( $controls ) { + return $this->setOption( 'controls', $this->parseControls( $controls ) ); + } + + public function setReverseControls( $controls ) { + return $this->setOption( 'reverseControls', $this->parseControls( $controls ) ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Editor.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Editor.php new file mode 100644 index 0000000000..ad00ca2fb1 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Editor.php @@ -0,0 +1,81 @@ +showQuicktags(); + } + + public function getType(): string { + return 'lotta-editor'; + } + + public function getSanitize() { + return 'wp_kses_post'; + } + + /** + * @param $attr + * @param $value + * + * @return Editor + */ + public function setTinymce( $attr, $value ) { + $tinymce = $this->options['tinymce'] ?? []; + $tinymce[ $attr ] = $value; + + return $this->setOption( 'tinymce', $tinymce ); + } + + /** + * @param $value + * + * @return Editor + */ + public function setToolbar1( $value ) { + return $this->setTinymce( 'toolbar1', $value ); + } + + /** + * @param $value + * + * @return Editor + */ + public function setToolbar2( $value ) { + return $this->setTinymce( 'toolbar2', $value ); + } + + /** + * @return Editor + */ + public function hideMediaButtons() { + return $this->setOption( 'mediaButtons', false ); + } + + /** + * @return Editor + */ + public function showMediaButtons() { + return $this->setOption( 'mediaButtons', true ); + } + + /** + * @return Editor + */ + public function hideQuicktags() { + return $this->setOption( 'quicktags', false ); + } + + /** + * @return Editor + */ + public function showQuicktags() { + return $this->setOption( 'quicktags', true ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/FileUploader.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/FileUploader.php new file mode 100644 index 0000000000..96e04c861a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/FileUploader.php @@ -0,0 +1,63 @@ +setOption( 'mediaType', $media_type ); + } + + /** + * Enable multiple select + * + * @param bool $multiple + * + * @return FileUploader + */ + public function enableMultiple( $multiple = true ) { + return $this->setOption( 'multiple', $multiple ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Filters.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Filters.php new file mode 100644 index 0000000000..cd1c26d4dd --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Filters.php @@ -0,0 +1,31 @@ +disableByDefault(); + } + + public function getType(): string { + return 'lotta-css-filters'; + } + + public function getSanitize() { + return [ Sanitizes::class, 'filters' ]; + } + + public function enableByDefault() { + return $this->setDefaultValue( [ 'enable' => 'yes' ] ); + } + + public function disableByDefault() { + return $this->setDefaultValue( [ 'enable' => 'no' ] ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Icons.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Icons.php new file mode 100644 index 0000000000..31b662b013 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Icons.php @@ -0,0 +1,38 @@ +displayInline(); + } + + /** + * @return string + */ + public function getType(): string { + return 'lotta-icons'; + } + + /** + * @return array + */ + public function getSanitize() { + return [ Sanitizes::class, 'icons' ]; + } + + /** + * @param $libraries + * + * @return Icons + */ + public function setLibraries( $libraries ) { + return $this->setOption( 'libraries', $libraries ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageRadio.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageRadio.php new file mode 100644 index 0000000000..4a3554248e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageRadio.php @@ -0,0 +1,22 @@ +setOption( 'inline', true ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageUploader.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageUploader.php new file mode 100644 index 0000000000..2fed2ced56 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/ImageUploader.php @@ -0,0 +1,33 @@ +setOption( 'positionPicker', true ); + } + +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Info.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Info.php new file mode 100644 index 0000000000..158414cfce --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Info.php @@ -0,0 +1,61 @@ +hideLabel(); + $this->setDefaultValue( [] ); + $this->alignLeft(); + $this->showBackground(); + } + + /** + * @return string + */ + public function getType(): string { + return 'lotta-info'; + } + + /** + * @return string + */ + public function getSanitize() { + return '__return_false'; + } + + /** + * @param $value + * + * @return Info + */ + public function setInfo( $value ) { + return $this->setOption( 'info', $value ); + } + + public function hideBackground() { + return $this->setOption( 'background', false ); + } + + public function showBackground() { + return $this->setOption( 'background', true ); + } + + public function alignLeft() { + return $this->setOption( 'align', 'left' ); + } + + public function alignCenter() { + return $this->setOption( 'align', 'center' ); + } + + public function alignRight() { + return $this->setOption( 'align', 'right' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Layers.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Layers.php new file mode 100644 index 0000000000..8e208e36f1 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Layers.php @@ -0,0 +1,67 @@ +showLabel(); + } + + public function getType(): string { + return 'lotta-layers'; + } + + public function getSanitize() { + return [ Sanitizes::class, 'layers' ]; + } + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return [ 'layers.[].controls' => true ]; + } + + /** + * @return Layers + */ + public function isDynamic() { + return $this->setOption( 'dynamic', true ); + } + + /** + * Add layer + * + * @param $id + * @param $label + * @param array $controls + * + * @return Layers + */ + public function addLayer( $id, $label, array $controls = [] ) { + $layers = $this->options['layers'] ?? []; + $layers[ $id ] = [ + 'label' => $label, + 'controls' => $this->parseControls( $controls ), + ]; + + return $this->setLayers( $layers ); + } + + /** + * @param array $layers + * + * @return Layers + */ + public function setLayers( array $layers ) { + return $this->setOption( 'layers', $layers ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/MultiSelect.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/MultiSelect.php new file mode 100644 index 0000000000..61c3658c36 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/MultiSelect.php @@ -0,0 +1,69 @@ +setColumns( 2 ); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-multi-select'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ Sanitizes::class, 'multiSelect' ]; + } + + /** + * Alias for set choices + * + * @param $choices + * + * @return Control + */ + public function setChoices( $choices ) { + return $this->setParam( 'choices', $choices ); + } + + /** + * Alias for set columns + * + * @param $columns + * + * @return Control + */ + public function setColumns( $columns ) { + $attr = []; + + if ( isset( $this->options['attr'] ) && is_array( $this->options['attr'] ) ) { + $attr = $this->options['attr']; + } + + $attr['data-columns'] = $columns; + + return $this->setOption( 'attr', $attr ); + } + + public function buttonsGroupView() { + $this->setColumns( 0 ); + + return $this->setOption( 'view', 'buttons' ); + } + + public function checkboxView() { + return $this->setOption( 'view', 'checkbox' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Number.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Number.php new file mode 100644 index 0000000000..f1a2dbfc9a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Number.php @@ -0,0 +1,25 @@ +setDefaultUnit( false ); + } + + public function getType(): string { + return 'lotta-number'; + } + + /** + * Select control when focus + * + * @return Number + */ + public function selectOnFocus() { + return $this->setOption( 'select_on_focus', true ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/PageBuilder.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/PageBuilder.php new file mode 100644 index 0000000000..8e7e713ede --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/PageBuilder.php @@ -0,0 +1,264 @@ +row = $row; + $this->column = $column; + + $this->setOption( 'row', [ + 'defaults' => $this->row->getDefaults(), + 'controls' => $this->row->getControlsArg(), + ] ); + $this->setOption( 'column', [ + 'defaults' => $this->column->getDefaults(), + 'controls' => $this->column->getControlsArg(), + ] ); + + parent::__construct( $id ); + + $this->setDefaultValue( [] ); + + Utils::app()->add_action( 'after_register_' . $this->id, function () { + $this->do( 'after_register' ); + } ); + } + + /** + * @return string + */ + public function getType(): string { + return 'lotta-page-builder'; + } + + /** + * @return string[] + */ + public function getSanitize() { + return [ $this, 'sanitizeCallback' ]; + } + + /** + * @param $input + * @param $args + * + * @return array + */ + public function sanitizeCallback( $input, $args ) { + if ( ! is_array( $input ) ) { + return []; + } + + $result = []; + + foreach ( $input as $row ) { + $columns = []; + + foreach ( ( $row['columns'] ?? [] ) as $column ) { + $elements = []; + + foreach ( ( $column['elements'] ?? [] ) as $element ) { + $id = $element['id'] ?? ''; + if ( ! isset( $this->elements[ $id ] ) ) { + continue; + } + + $elements[] = [ + 'id' => $id, + 'settings' => $this->sanitizeSettings( $this->elements[ $id ], $element['settings'] ) + ]; + } + + $columns[] = [ + 'settings' => $this->sanitizeSettings( $this->column, $column['settings'] ?? [] ), + 'elements' => $elements, + ]; + } + + $result[] = [ + 'settings' => $this->sanitizeSettings( $this->row, $row['settings'] ?? [] ), + 'columns' => $columns, + ]; + } + + return $result; + } + + /** + * Set preview location + * + * @param $location + * + * @return $this + */ + public function setPreviewLocation( $location ) { + $this->location = $location; + + return $this; + } + + /** + * Add builder elements + * + * @param Element|null $element + * + * @return PageBuilder + */ + public function addElement( $element ) { + if ( ! $element instanceof Element ) { + return $this; + } + + $this->elements[ $element->getId() ] = $element; + + $elements = $this->options['elements'] ?? []; + $elements[ $element->getId() ] = [ + 'label' => $element->getLabel(), + 'icon' => $element->getIcon(), + 'device' => $element->getDevice(), + 'defaults' => $element->getDefaults(), + 'controls' => $element->getControlsArg(), + ]; + + return $this->setOption( 'elements', $elements ); + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_frontend_scripts() { + $this->do( 'enqueue_frontend_scripts' ); + } + + /** + * @param $action + */ + protected function do( $action ) { + + $settings = CZ::get( $this->id ); + if ( ! is_array( $settings ) ) { + return; + } + + foreach ( $settings as $ri => $row ) { + $this->row->{$action}( $this->getRowId( $ri ), $row ); + + $columns = $row['columns'] ?? []; + foreach ( $columns as $ci => $column ) { + $elements = $column['elements'] ?? []; + foreach ( $elements as $ei => $data ) { + $id = $data['id'] ?? ''; + if ( isset( $this->elements[ $id ] ) ) { + $this->elements[ $id ]->{$action}( $this->getElId( $ri, $ci, $ei ), $data ); + } + } + + $this->column->{$action}( $this->getColId( $ri, $ci ), $column ); + } + } + } + + /** + * Render a builder row + */ + public function render() { + $settings = CZ::get( $this->id ); + + if ( ! is_array( $settings ) ) { + return; + } + + foreach ( $settings as $ri => $row ) { + $columns = $row['columns'] ?? []; + + $this->row->start( $this->getRowId( $ri ), $row, $this->location . ":row-{$ri}" ); + + foreach ( $columns as $ci => $column ) { + $elements = $column['elements'] ?? []; + + $this->column->start( $this->getColId( $ri, $ci ), $column, $this->location . ":col-{$ri}-{$ci}" ); + + foreach ( $elements as $ei => $data ) { + $id = $data['id'] ?? ''; + if ( isset( $this->elements[ $id ] ) ) { + $this->elements[ $id ]->render( [ + 'id' => $this->getElId( $ri, $ci, $ei ), + 'location' => $this->location . ":element-{$ri}-{$ci}-{$ei}", + 'settings' => $data['settings'] ?? [], + ] ); + } + } + + $this->column->end( $this->getColId( $ri, $ci ), $column ); + } + + $this->row->end( $this->getRowId( $ri ), $row ); + } + } + + /** + * @param $row + * + * @return string + */ + protected function getRowId( $row ) { + return $this->id . '_row_' . $row; + } + + /** + * @param $row + * @param $col + * + * @return string + */ + protected function getColId( $row, $col ) { + return $this->id . '_col_' . $row . '_' . $col; + } + + /** + * @param $row + * @param $col + * @param $el + * + * @return string + */ + protected function getElId( $row, $col, $el ) { + return $this->id . '_el_' . $row . '_' . $col . '_' . $el; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Placeholder.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Placeholder.php new file mode 100644 index 0000000000..46a25f2e7a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Placeholder.php @@ -0,0 +1,79 @@ +displayNone(); + } + + public function getType(): string { + return 'lotta-placeholder'; + } + + public function getSanitize() { + return [ Sanitizes::class, 'primitive' ]; + } + + public function setDefaultBorder( $width, $style, $color, $hover = '' ) { + $default = array_merge( $this->params['default'] ?? [], [ + 'style' => $style, + 'width' => $width, + 'color' => $color, + 'hover' => $hover, + ] ); + + return $this->setDefaultValue( $default ); + } + + public function setDefaultShadow( $color = 'rgba(0, 0, 0, 0.1)', $horizontal = '0px', $vertical = '0px', $blur = '0px', $spread = '0px', $enable = true ) { + return $this->setDefaultValue( [ + 'enable' => $enable ? 'yes' : 'no', + 'horizontal' => $horizontal, + 'vertical' => $vertical, + 'blur' => $blur, + 'spread' => $spread, + 'color' => $color, + ] ); + } + + public function setSpacing( array $args = [], $default = '0px' ) { + return $this->setDefaultValue( wp_parse_args( $args, [ + 'top' => $default, + 'bottom' => $default, + 'left' => $default, + 'right' => $default, + 'linked' => true + ] ) ); + } + + public function addColor( $id, $default = '' ) { + $defaultParam = $this->params['default'] ?? []; + $defaultParam[ $id ] = $default; + + return $this->setDefaultValue( $defaultParam ); + } + + /** + * Set current color as css var in customizer + * + * @param $selector + * @param $maps + * + * @return Placeholder + * + * @since v2.0.15 + */ + public function setCustomizerColors( $selector, $maps ) { + return $this->setOption( 'set_customizer_colors', [ + 'selector' => $selector, + 'maps' => $maps, + ] ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Radio.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Radio.php new file mode 100644 index 0000000000..fe605c80af --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Radio.php @@ -0,0 +1,34 @@ +setColumns( 2 ); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-radio'; + } + + public function buttonsGroupView() { + $this->setColumns( 0 ); + + return $this->setOption( 'view', 'buttons' ); + } + + public function radioInputView() { + return $this->setOption( 'view', 'radio' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Repeater.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Repeater.php new file mode 100644 index 0000000000..0e80228697 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Repeater.php @@ -0,0 +1,103 @@ +setDefaultValue( [] ); + $this->showLabel(); + $this->preventEmpty(); + } + + /** + * @return string + */ + public function getType(): string { + return 'lotta-repeater'; + } + + /** + * @return string[] + */ + public function getSanitize() { + return [ $this, 'sanitizeCallback' ]; + } + + /** + * Sanitize callback for repeater control + * + * @param $input + * @param $args + * + * @return array + */ + public function sanitizeCallback( $input, $args ) { + + $options = $args['options'] ?? []; + $limit = absint( $options['limit'] ?? 0 ); + $input = is_array( $input ) ? $input : []; + $result = []; + + foreach ( $input as $item ) { + $result[] = [ + 'visible' => (bool) ( $item['visible'] ?? false ), + 'settings' => $this->sanitizeSettings( $this, $item['settings'] ?? [] ) + ]; + } + + if ( $limit > 0 ) { + $result = array_slice( $result, 0, $limit ); + } + + return $result; + } + + /** + * @param false $empty + * + * @return Repeater + */ + public function preventEmpty( $prevent = true ) { + return $this->setOption( 'empty', ! $prevent ); + } + + /** + * @param $limit + * @param string $label + * + * @return Repeater + */ + public function setLimit( $limit, $label = '' ) { + $this->setOption( 'limitLabel', $label ); + + return $this->setOption( 'limit', $limit ); + } + + /** + * @param string $field + * + * @return Repeater + */ + public function setTitleField( $field ) { + return $this->setOption( 'title_field', $field ); + } + + /** + * @param $controls + * + * @return Repeater + */ + public function setControls( $controls ) { + $this->setOption( 'controls', $this->parseControls( $controls, true ) ); + + return $this->setOption( 'defaultSettings', $this->getDefaults() ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Section.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Section.php new file mode 100644 index 0000000000..91f13712c7 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Section.php @@ -0,0 +1,80 @@ +setDefaultValue( 'yes' ); + $this->setControls( [] ); + $this->showLabel(); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-section'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ Sanitizes::class, 'checkbox' ]; + } + + /** + * Enable switch + * + * @return Section + */ + public function enableSwitch( $default = true ) { + $this->setOption( 'switch', true ); + + if ( $default ) { + return $this->setDefaultValue( 'yes' ); + } + + return $this->setDefaultValue( 'no' ); + } + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return [ 'controls' => false ]; + } + + /** + * @param $controls + * + * @return Section + */ + public function setControls( $controls ) { + return $this->setOption( 'controls', $this->parseControls( $controls ) ); + } + + public function keepMarginAbove() { + return $this->setOption( 'marginTop', true ); + } + + public function keepMarginBelow() { + return $this->setOption( 'marginBottom', true ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Select.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Select.php new file mode 100644 index 0000000000..383ba9bde6 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Select.php @@ -0,0 +1,34 @@ +setParam( 'choices', apply_filters( $this->id . '_choices', $choices ) ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Separator.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Separator.php new file mode 100644 index 0000000000..e57d8e823c --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Separator.php @@ -0,0 +1,48 @@ +setDefaultValue( [] ); + $this->hideLabel(); + } + + public function getType(): string { + return 'lotta-separator'; + } + + public function getSanitize() { + return '__return_false'; + } + + public function setStyle( $style ) { + return $this->setOption( 'style', $style ); + } + + public function solidStyle() { + return $this->setStyle( 'solid' ); + } + + public function dashedStyle() { + return $this->setStyle( 'dashed' ); + } + + public function dottedStyle() { + return $this->setStyle( 'dotted' ); + } + + public function setSize( $size ) { + return $this->setOption( 'size', $size ); + } + + public function setSpacing( $spacing ) { + return $this->setOption( 'spacing', $spacing ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Slider.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Slider.php new file mode 100644 index 0000000000..07294d73db --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Slider.php @@ -0,0 +1,72 @@ +setOption( 'min', $min ); + } + + /** + * Set the max + * + * @param $max + * + * @return Slider + */ + public function setMax( $max ) { + return $this->setOption( 'max', $max ); + } + + /** + * Set the decimals + * + * @param $decimals + * + * @return Slider + */ + public function setDecimals( $decimals ) { + return $this->setOption( 'decimals', $decimals ); + } + + /** + * Set slider unit + * + * @param $unit + * + * @return Slider + */ + public function setDefaultUnit( $unit ) { + return $this->setOption( 'defaultUnit', $unit ); + } + + /** + * Set slider units + * + * @param array $units + * + * @return Slider + */ + public function setUnits( array $units ) { + return $this->setOption( 'units', $units ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Spacing.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Spacing.php new file mode 100644 index 0000000000..6538e73f39 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Spacing.php @@ -0,0 +1,41 @@ +setDefaultValue( wp_parse_args( $args, [ + 'top' => $default, + 'bottom' => $default, + 'left' => $default, + 'right' => $default, + 'linked' => true + ] ) ); + } + + public function setDisabled( $disabled ) { + $_disabled = $this->options['disabled'] = []; + + foreach ( $disabled as $item ) { + $_disabled[ $item ] = true; + } + + return $this->setOption( 'disabled', $_disabled ); + } + + public function allowAutoToggle() { + return $this->setOption( 'autoToggle', true ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tabs.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tabs.php new file mode 100644 index 0000000000..76b3751569 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tabs.php @@ -0,0 +1,76 @@ +solidStyle(); + } + + public function getType(): string { + return 'lotta-tabs'; + } + + /** + * @return Tabs + */ + public function solidStyle() { + return $this->setOption( 'style', 'solid' ); + } + + /** + * @return Tabs + */ + public function ghostStyle() { + return $this->setOption( 'style', 'ghost' ); + } + + /** + * Get sub controls path + * + * @return array + */ + public function getSubControlsPath(): array { + return [ 'tabs.[].controls' => true ]; + } + + /** + * Add new tab + * + * @param $slug + * @param $label + * @param array $controls + * + * @return Tabs + */ + public function addTab( $slug, $label, array $controls = [] ) { + $tabs = $this->options['tabs'] ?? []; + if ( empty( array_filter( $tabs, function ( $item ) use ( $slug ) { + return $item['id'] === $slug; + } ) ) ) { + $tabs[] = [ + 'id' => $slug, + 'label' => $label, + 'controls' => $this->parseControls( $controls ), + ]; + } + + return $this->setOption( 'tabs', $tabs ); + } + + /** + * Set active tab + * + * @param $tab + * + * @return Tabs + */ + public function setActiveTab( $tab ) { + return $this->setOption( 'active', $tab ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tags.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tags.php new file mode 100644 index 0000000000..dccd087d27 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Tags.php @@ -0,0 +1,38 @@ +setOption( 'enforceWhitelist', true ); + } + + public function setWhitelist( $whitelist ) { + return $this->setOption( 'whitelist', $whitelist ); + } + + public function setChoices( $choices ) { + $whitelist = []; + + foreach ( $choices as $id => $label ) { + $whitelist[] = [ + 'value' => $id, + 'label' => $label, + ]; + } + + return $this->setWhitelist( $whitelist ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Text.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Text.php new file mode 100644 index 0000000000..3e89e647f8 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Text.php @@ -0,0 +1,31 @@ +setOption( 'field_attr', $attr ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/TextArea.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/TextArea.php new file mode 100644 index 0000000000..2d2be389ec --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/TextArea.php @@ -0,0 +1,37 @@ +setFiledAttr( [ 'rows' => 4 ] ); + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-text-area'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return 'sanitize_text_field'; + } + + /** + * @param $attr + * + * @return TextArea + */ + public function setFiledAttr( $attr ) { + return $this->setOption( 'field_attr', $attr ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Toggle.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Toggle.php new file mode 100644 index 0000000000..db0e98c97a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Toggle.php @@ -0,0 +1,25 @@ +setDefaultValue( 'yes' ); + } + + public function closeByDefault() { + return $this->setDefaultValue( 'no' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Typography.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Typography.php new file mode 100644 index 0000000000..d1cac71b2a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Controls/Typography.php @@ -0,0 +1,88 @@ +enqueue(); + } + + /** + * Enqueue current typography + * + * @return $this + */ + public function enqueue() { + if ( ! in_array( $this->id, self::$queue ) ) { + self::$queue[] = $this->id; + } + + return $this; + } + + /** + * Get queued typography + * + * @return array + */ + public static function getQueued() { + return self::$queue; + } + + /** + * Set queued typography + * + * @param $queue + * + * @return void + */ + public static function setQueued( $queue ) { + self::$queue = $queue; + } + + /** + * {@inheritDoc} + */ + public function getType(): string { + return 'lotta-typography'; + } + + /** + * {@inheritDoc} + */ + public function getSanitize() { + return [ Sanitizes::class, 'typography' ]; + } + + /** + * Dequeue current typography + * + * @return $this + */ + public function dequeue() { + $index = array_search( $this->id, self::$queue ); + if ( $index !== false ) { + array_splice( self::$queue, $index, 1 ); + } + + return $this; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Customizer.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Customizer.php new file mode 100644 index 0000000000..43f0efbf89 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Customizer.php @@ -0,0 +1,720 @@ +app = $app; + + // register scripts + add_action( 'wp_enqueue_scripts', [ $this, 'registerScripts' ] ); + add_action( 'customize_controls_print_footer_scripts', [ $this, 'registerScripts' ] ); + + if ( class_exists( '_WP_Editors' ) ) { + // enqueue editor scripts + add_action( 'customize_controls_print_footer_scripts', array( + '_WP_Editors', + 'force_uncompressed_tinymce' + ), 1 ); + add_action( 'customize_controls_print_footer_scripts', array( + '_WP_Editors', + 'print_default_editor_scripts' + ), 45 ); + } + + add_action( 'customize_controls_enqueue_scripts', [ $this, 'enqueueControlsScripts' ] ); + add_action( 'customize_preview_init', [ $this, 'enqueuePreviewScripts' ] ); + add_action( 'customize_register', [ $this, 'registerPartials' ] ); + } + + /** + * Reset all customizer options + */ + public function reset() { + if ( $this->store === 'option' ) { + foreach ( array_keys( $this->_settings ) as $key ) { + delete_option( $key ); + } + } + + remove_theme_mods(); + } + + /** + * Enqueue frontend scripts + */ + public function registerScripts() { + wp_register_style( + 'lotta-fontawesome', + $this->app->uri() . 'dist/vendor/fontawesome/css/all.min.css', + [], WP_DEBUG ? time() : Application::VERSION + ); + } + + /** + * Customizer control scripts + */ + public function enqueueControlsScripts() { + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + + wp_enqueue_style( 'lotta-fontawesome' ); + + wp_enqueue_script( + 'lotta-customizer-script', + $this->app->uri() . 'dist/js/customizer' . $suffix . '.js', + [ + 'customize-controls', + 'wp-element', + 'wp-components', + 'wp-color-picker' + ], + Application::VERSION, + true + ); + + wp_enqueue_style( + 'lotta-customizer-style', + $this->app->uri() . 'dist/css/customizer' . $suffix . '.css', + [ 'wp-components', 'wp-color-picker' ], + Application::VERSION + ); + + $this->enqueueLocalize( 'lotta-customizer-script' ); + } + + /** + * Customizer preview scripts + */ + public function enqueuePreviewScripts() { + $suffix = defined( 'WP_DEBUG' ) && WP_DEBUG ? '' : '.min'; + + wp_enqueue_script( + 'lotta-customizer-preview-script', + $this->app->uri() . 'dist/js/customizer-preview' . $suffix . '.js', + [ 'customize-preview', 'customize-selective-refresh' ], + Application::VERSION + ); + + wp_enqueue_style( + 'lotta-customizer-preview-style', + $this->app->uri() . 'dist/css/customizer-preview' . $suffix . '.css', + [], + Application::VERSION + ); + + $this->enqueueLocalize( 'lotta-customizer-preview-script' ); + + wp_register_script( 'lotta-async-scripts', false ); + wp_enqueue_script( 'lotta-async-scripts' ); + wp_add_inline_script( 'lotta-async-scripts', $this->generateAsyncScripts() ); + } + + /** + * Register partials + * + * @param $wp_customize + */ + public function registerPartials( $wp_customize ) { + if ( isset( $wp_customize->selective_refresh ) ) { + foreach ( $this->partials as $partial => $args ) { + $wp_customize->selective_refresh->add_partial( $partial, $args ); + } + } + } + + /** + * Bind selective refresh + * + * @param $partial + * @param $setting + * + * @return $this + */ + public function bindSelectiveRefresh( $partial, $setting ) { + if ( isset( $this->partials[ $partial ] ) ) { + $args = $this->partials[ $partial ]; + $args['settings'][] = $setting; + + $this->partials[ $partial ] = $args; + } + + return $this; + } + + /** + * Add selective refresh partial + * + * @param $id + * @param $selector + * @param $render_callback + * + * @return $this + */ + public function addPartial( $id, $selector, $render_callback ) { + $this->partials[ $id ] = [ + 'selector' => $selector, + 'settings' => [], + 'render_callback' => $render_callback, + ]; + + return $this; + } + + /** + * Save async scripts + * + * @param $id + * @param $script + * + * @return $this + */ + public function addAsync( $id, $script ) { + $this->asyncScripts[ $id ] = $script; + + return $this; + } + + /** + * Change default store type + * + * @param string $type + */ + public function storeAs( string $type ) { + $this->store = $type; + } + + /** + * Get setting + * + * @param $id + * + * @return mixed|void|null + */ + public function get( $id, array $settings = [] ) { + + if ( isset( $settings[ $id ] ) ) { + return $settings[ $id ]; + } + + $settings = $this->_settings; + if ( ! isset( $settings[ $id ] ) ) { + return null; + } + + $default = $settings[ $id ]['default'] ?? null; + $value = $this->getSetting( $id, $default ); + + return apply_filters( $this->app->uniqid( $id ), $value ); + } + + /** + * Get theme_mod or option + * + * @param $id + * @param mixed $default + * + * @return false|mixed|void + */ + protected function getSetting( $id, $default = false ) { + if ( $this->store === 'option' ) { + return get_option( $id, $default ); + } + + return get_theme_mod( $id, $default ); + } + + /** + * Add a section with controls + * + * @param \WP_Customize_Manager|null $wp_customize + * @param $id + * @param array $args + * @param array $controls + * + * @return string + */ + public function addSection( $wp_customize, $id, $args = [], $controls = [] ) { + if ( $id instanceof Section ) { + $args = $id->getSectionArgs(); + $controls = $id->getControls(); + $id = $id->getId(); + } + + if ( $wp_customize ) { + $wp_customize->add_section( $id, $args ); + } + + foreach ( $controls as $control ) { + if ( $control instanceof Control ) { + $control->setSection( $id ); + } else if ( is_array( $control ) ) { + $control['section'] = $id; + } + $this->addControl( $wp_customize, $control ); + } + + return $id; + } + + /** + * Add control + * + * @param \WP_Customize_Manager|null $wp_customize + * @param $args + * @param bool $has_control + */ + public function addControl( $wp_customize, $args, bool $has_control = true ) { + if ( $args instanceof Control ) { + $args = $args->toArray(); + } + + $this->register( $args ); + + $this->app->do_action( 'before_register_' . $args['id'] ); + + // this is a valid control with setting + if ( isset( $args['default'] ) && $wp_customize ) { + $wp_customize->add_setting( $args['id'], array_merge( [ + 'type' => $this->store, + 'default' => $args['default'] ?? null, + 'sanitize_callback' => $args['sanitize_callback'] ?? '', + 'transport' => $args['transport'] ?? 'refresh', + ], $args['setting'] ?? [] ) ); + + if ( isset( $wp_customize->selective_refresh ) && isset( $args['selective_refresh'] ) ) { + $wp_customize->selective_refresh->add_partial( $args['id'], $args['selective_refresh'] ); + } + } + + // Register control + if ( $has_control && $wp_customize ) { + $instance = new \WP_Customize_Control( + $wp_customize, + $args['id'], + $args + ); + + $options = $args['options'] ?? []; + if ( isset( $args['default'] ) ) { + $options['default'] = $args['default']; + } + + if ( isset( $args['choices'] ) ) { + $instance->json['choices'] = $args['choices']; + } + + if ( isset( $options['condition'] ) ) { + $instance->json['condition'] = $options['condition']; + } + + $instance->json['options'] = $options; + + $wp_customize->add_control( $instance ); + } + + // It's a container and has sub controls + foreach ( $this->getSubControls( $args ) as $control ) { + $this->addControl( $wp_customize, $control, false ); + } + + $this->app->do_action( 'after_register_' . $args['id'] ); + } + + /** + * Change existing customize object + * + * @param \WP_Customize_Manager $wp_customize + * @param $type + * @param $id + * @param $property + * @param $value + */ + public function changeObject( $wp_customize, $type, $id, $property, $value ) { + $accepted_types = array( 'setting', 'control', 'section', 'panel' ); + if ( ! in_array( $type, $accepted_types, true ) ) { + return; + } + $object = call_user_func_array( array( $wp_customize, 'get_' . $type ), array( $id ) ); + + if ( empty( $object ) ) { + return; + } + + $object->$property = $value; + } + + /** + * Enqueue localize script + * + * @param $handle + */ + protected function enqueueLocalize( $handle ) { + $localize = [ + 'breakpoints' => [ + 'desktop' => Css::desktop(), + 'tablet' => Css::tablet(), + 'mobile' => Css::mobile(), + ], + ]; + $localize['customizer'] = [ + 'gradientPicker' => [ + 'swatches' => [ + [ + 'name' => 'Vivid cyan blue to vivid purple', + 'gradient' => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)', + 'slug' => 'vivid-cyan-blue-to-vivid-purple', + ], + [ + 'name' => 'Light green cyan to vivid green cyan', + 'gradient' => 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)', + 'slug' => 'light-green-cyan-to-vivid-green-cyan', + ], + [ + 'name' => 'Luminous vivid amber to luminous vivid orange', + 'gradient' => 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)', + 'slug' => 'luminous-vivid-amber-to-luminous-vivid-orange', + ], + [ + 'name' => 'Luminous vivid orange to vivid red', + 'gradient' => 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)', + 'slug' => 'luminous-vivid-orange-to-vivid-red', + ], + [ + 'name' => 'Cool to warm spectrum', + 'gradient' => 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)', + 'slug' => 'cool-to-warm-spectrum', + ], + [ + 'name' => 'Blush light purple', + 'gradient' => 'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)', + 'slug' => 'blush-light-purple', + ], + [ + 'name' => 'Blush bordeaux', + 'gradient' => 'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)', + 'slug' => 'blush-bordeaux', + ], + [ + 'name' => 'Luminous dusk', + 'gradient' => 'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)', + 'slug' => 'luminous-dusk', + ], + [ + 'name' => 'Pale ocean', + 'gradient' => 'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)', + 'slug' => 'pale-ocean', + ], + [ + 'name' => 'Electric grass', + 'gradient' => 'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)', + 'slug' => 'electric-grass', + ], + [ + 'name' => 'Midnight', + 'gradient' => 'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)', + 'slug' => 'midnight', + ], + [ + 'name' => 'Juicy Peach', + 'gradient' => 'linear-gradient(to right, #ffecd2 0%, #fcb69f 100%)', + 'slug' => 'juicy-peach', + ], + [ + 'name' => 'Young Passion', + 'gradient' => 'linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%)', + 'slug' => 'young-passion', + ], + [ + 'name' => 'True Sunset', + 'gradient' => 'linear-gradient(to right, #fa709a 0%, #fee140 100%)', + 'slug' => 'true-sunset', + ], + [ + 'name' => 'Morpheus Den', + 'gradient' => 'linear-gradient(to top, #30cfd0 0%, #330867 100%)', + 'slug' => 'morpheus-den', + ], + [ + 'name' => 'Plum Plate', + 'gradient' => 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)', + 'slug' => 'plum-plate', + ], + [ + 'name' => 'Aqua Splash', + 'gradient' => 'linear-gradient(15deg, #13547a 0%, #80d0c7 100%)', + 'slug' => 'aqua-splash', + ], + [ + 'name' => 'Love Kiss', + 'gradient' => 'linear-gradient(to top, #ff0844 0%, #ffb199 100%)', + 'slug' => 'love-kiss', + ], + [ + 'name' => 'New Retrowave', + 'gradient' => 'linear-gradient(to top, #3b41c5 0%, #a981bb 49%, #ffc8a9 100%)', + 'slug' => 'new-retrowave', + ], + [ + 'name' => 'Plum Bath', + 'gradient' => 'linear-gradient(to top, #cc208e 0%, #6713d2 100%)', + 'slug' => 'plum-bath', + ], + [ + 'name' => 'High Flight', + 'gradient' => 'linear-gradient(to right, #0acffe 0%, #495aff 100%)', + 'slug' => 'high-flight', + ], + [ + 'name' => 'Teen Party', + 'gradient' => 'linear-gradient(-225deg, #FF057C 0%, #8D0B93 50%, #321575 100%)', + 'slug' => 'teen-party', + ], + [ + 'name' => 'Fabled Sunset', + 'gradient' => 'linear-gradient(-225deg, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%)', + 'slug' => 'fabled-sunset', + ], + [ + 'name' => 'Arielle Smile', + 'gradient' => 'radial-gradient(circle 248px at center, #16d9e3 0%, #30c7ec 47%, #46aef7 100%)', + 'slug' => 'arielle-smile', + ], + [ + 'name' => 'Itmeo Branding', + 'gradient' => 'linear-gradient(180deg, #2af598 0%, #009efd 100%)', + 'slug' => 'itmeo-branding', + ], + [ + 'name' => 'Deep Blue', + 'gradient' => 'linear-gradient(to right, #6a11cb 0%, #2575fc 100%)', + 'slug' => 'deep-blue', + ], + [ + 'name' => 'Strong Bliss', + 'gradient' => 'linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%)', + 'slug' => 'strong-bliss', + ], + [ + 'name' => 'Sweet Period', + 'gradient' => 'linear-gradient(to top, #3f51b1 0%, #5a55ae 13%, #7b5fac 25%, #8f6aae 38%, #a86aa4 50%, #cc6b8e 62%, #f18271 75%, #f3a469 87%, #f7c978 100%)', + 'slug' => 'sweet-period', + ], + [ + 'name' => 'Purple Division', + 'gradient' => 'linear-gradient(to top, #7028e4 0%, #e5b2ca 100%)', + 'slug' => 'purple-division', + ], + [ + 'name' => 'Cold Evening', + 'gradient' => 'linear-gradient(to top, #0c3483 0%, #a2b6df 100%, #6b8cce 100%, #a2b6df 100%)', + 'slug' => 'cold-evening', + ], + [ + 'name' => 'Mountain Rock', + 'gradient' => 'linear-gradient(to right, #868f96 0%, #596164 100%)', + 'slug' => 'mountain-rock', + ], + [ + 'name' => 'Desert Hump', + 'gradient' => 'linear-gradient(to top, #c79081 0%, #dfa579 100%)', + 'slug' => 'desert-hump', + ], + [ + 'name' => 'Eternal Constance', + 'gradient' => 'linear-gradient(to top, #09203f 0%, #537895 100%)', + 'slug' => 'ethernal-constance', + ], + [ + 'name' => 'Happy Memories', + 'gradient' => 'linear-gradient(-60deg, #ff5858 0%, #f09819 100%)', + 'slug' => 'happy-memories', + ], + [ + 'name' => 'Grown Early', + 'gradient' => 'linear-gradient(to top, #0ba360 0%, #3cba92 100%)', + 'slug' => 'grown-early', + ], + [ + 'name' => 'Morning Salad', + 'gradient' => 'linear-gradient(-225deg, #B7F8DB 0%, #50A7C2 100%)', + 'slug' => 'morning-salad', + ], + [ + 'name' => 'Night Call', + 'gradient' => 'linear-gradient(-225deg, #AC32E4 0%, #7918F2 48%, #4801FF 100%)', + 'slug' => 'night-call', + ], + [ + 'name' => 'Mind Crawl', + 'gradient' => 'linear-gradient(-225deg, #473B7B 0%, #3584A7 51%, #30D2BE 100%)', + 'slug' => 'mind-crawl', + ], + [ + 'name' => 'Angel Care', + 'gradient' => 'linear-gradient(-225deg, #FFE29F 0%, #FFA99F 48%, #FF719A 100%)', + 'slug' => 'angel-care', + ], + [ + 'name' => 'Juicy Cake', + 'gradient' => 'linear-gradient(to top, #e14fad 0%, #f9d423 100%)', + 'slug' => 'juicy-cake', + ], + [ + 'name' => 'Rich Metal', + 'gradient' => 'linear-gradient(to right, #d7d2cc 0%, #304352 100%)', + 'slug' => 'rich-metal', + ], + [ + 'name' => 'Mole Hall', + 'gradient' => 'linear-gradient(-20deg, #616161 0%, #9bc5c3 100%)', + 'slug' => 'mole-hall', + ], + [ + 'name' => 'Cloudy Knoxville', + 'gradient' => 'linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%)', + 'slug' => 'cloudy-knoxville', + ], + [ + 'name' => 'Very light gray to cyan bluish gray', + 'gradient' => 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)', + 'slug' => 'very-light-gray-to-cyan-bluish-gray', + ], + [ + 'name' => 'Soft Grass', + 'gradient' => 'linear-gradient(to top, #c1dfc4 0%, #deecdd 100%)', + 'slug' => 'soft-grass', + ], + [ + 'name' => 'Saint Petersburg', + 'gradient' => 'linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)', + 'slug' => 'saint-petersburg', + ], + [ + 'name' => 'Everlasting Sky', + 'gradient' => 'linear-gradient(135deg, #fdfcfb 0%, #e2d1c3 100%)', + 'slug' => 'everlasting-sky', + ], + [ + 'name' => 'Kind Steel', + 'gradient' => 'linear-gradient(-20deg, #e9defa 0%, #fbfcdb 100%)', + 'slug' => 'kind-steel', + ], + [ + 'name' => 'Over Sun', + 'gradient' => 'linear-gradient(60deg, #abecd6 0%, #fbed96 100%)', + 'slug' => 'over-sun', + ], + [ + 'name' => 'Premium White', + 'gradient' => 'linear-gradient(to top, #d5d4d0 0%, #d5d4d0 1%, #eeeeec 31%, #efeeec 75%, #e9e9e7 100%)', + 'slug' => 'premium-white', + ], + [ + 'name' => 'Clean Mirror', + 'gradient' => 'linear-gradient(45deg, #93a5cf 0%, #e4efe9 100%)', + 'slug' => 'clean-mirror', + ], + [ + 'name' => 'Wild Apple', + 'gradient' => 'linear-gradient(to top, #d299c2 0%, #fef9d7 100%)', + 'slug' => 'wild-apple', + ], + [ + 'name' => 'Snow Again', + 'gradient' => 'linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%)', + 'slug' => 'snow-again', + ], + [ + 'name' => 'Confident Cloud', + 'gradient' => 'linear-gradient(to top, #dad4ec 0%, #dad4ec 1%, #f3e7e9 100%)', + 'slug' => 'confident-cloud', + ], + [ + 'name' => 'Glass Water', + 'gradient' => 'linear-gradient(to top, #dfe9f3 0%, white 100%)', + 'slug' => 'glass-water', + ], + [ + 'name' => 'Perfect White', + 'gradient' => 'linear-gradient(-225deg, #E3FDF5 0%, #FFE6FA 100%)', + 'slug' => 'perfect-white', + ], + ], + ], + 'colorPicker' => [ + 'swatches' => [], + ], + 'settings' => array( + 'system_fonts' => Fonts::system_fonts(), + 'custom_fonts' => Fonts::custom_fonts(), + 'google_fonts' => Fonts::google_fonts(), + ), + 'iconsLibrary' => IconsManager::allLibraries(), + ]; + + wp_localize_script( + $handle, + 'Lotta', + apply_filters( 'lotta_filter_customizer_js_localize', $localize ) + ); + } + + /** + * Generate async scripts + * + * @return string + */ + protected function generateAsyncScripts() { + $output = '(function ($) {'; + + foreach ( $this->asyncScripts as $id => $script ) { + $output .= "wp.customize('$id', function (setting) {"; + $output .= "setting.bind(function (value) {"; + $output .= $script; + $output .= "});"; + $output .= "});"; + } + + return $output . '}(jQuery));'; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Element.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Element.php new file mode 100644 index 0000000000..c0f84868c2 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Element.php @@ -0,0 +1,222 @@ +id = $id; + $this->label = $label; + $this->slug = $slug; + $this->defaults = $defaults; + } + + /** + * @param Builder $builder + * + * @return $this + */ + public function setBuilder( $builder ) { + $this->builder = $builder; + + return $this; + } + + /** + * @return Builder|null + */ + public function getBuilder() { + return $this->builder; + } + + /** + * @return string + */ + public function getId() { + return $this->id; + } + + /** + * @return string + */ + public function getLabel() { + return $this->label; + } + + /** + * Get slug for setting + * + * @param string $key + * + * @return string + */ + public function getSlug( $key = '' ) { + return $this->slug . ( ( $key === '' ) ? '' : '_' . $key ); + } + + /** + * Get default setting value + * + * @param $key + * @param null $default + * + * @return mixed|null + */ + public function getDefaultSetting( $key, $default = null ) { + if ( isset( $this->defaults[ $key ] ) ) { + return $this->defaults[ $key ]; + } + + return $default; + } + + /** + * Enable only when desktop + * + * @return $this + */ + public function desktopOnly() { + $this->device = 'desktop'; + + return $this; + } + + /** + * Enable only when mobile + * + * @return $this + */ + public function mobileOnly() { + $this->device = 'mobile'; + + return $this; + } + + /** + * @return string|null + */ + public function getDevice() { + return $this->device; + } + + /** + * After register hook + */ + public function after_register() { + // Should implement in real element + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_frontend_scripts() { + // Should implement in real element + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_admin_scripts() { + // Should implement in real element + } + + /** + * Get controls for element + * + * @return mixed + */ + abstract public function getControls(); + + /** + * Render element + * + * @param array $attrs + * + * @return mixed + */ + abstract public function render( $attrs = [] ); + + /** + * Seletive refresh args + * + * @return array + */ + protected function selectiveRefresh() { + return [ + ".{$this->slug}", + [ $this, 'build' ], + [ 'container_inclusive' => true, 'fallback_refresh' => true ] + ]; + } + + /** + * Should render this element + * + * @return bool + */ + public function shouldRender() { + return true; + } + + /** + * Build element + */ + public function build() { + $attrs = [ + 'data-builder-element' => $this->id, + ]; + + if ( is_customize_preview() && $this->builder ) { + $location = $this->builder->getPreviewLocation(); + if ( $location !== '' ) { + $attrs['data-shortcut'] = 'arrow'; + $attrs['data-shortcut-location'] = $location . ':' . $this->id; + } + } + + $this->render( $attrs ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Row.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Row.php new file mode 100644 index 0000000000..475b8910c4 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/GenericBuilder/Row.php @@ -0,0 +1,340 @@ +id = $id; + $this->label = $label; + $this->defaults = $defaults; + + $this->setControls( $this->getRowControls() ); + } + + /** + * @param Builder $builder + * + * @return $this + */ + public function setBuilder( $builder ) { + $this->builder = $builder; + + return $this; + } + + /** + * @return Builder|null + */ + public function getBuilder() { + return $this->builder; + } + + /** + * @param null $device + * + * @return array|int|mixed + */ + public function getColumns( $device = null ) { + if ( ! $this->builder ) { + return $device ? 1 : []; + } + + $columns = $this->builder->getColumns( $this->id ); + + return $device ? ( $columns[ $device ] ?? 1 ) : $columns; + } + + /** + * @param $key + * @param null $fallback + * + * @return mixed|null + */ + protected function getRowControlDefault( $key, $fallback = null ) { + if ( isset( $this->defaults[ $key ] ) ) { + return $this->defaults[ $key ]; + } + + return $fallback; + } + + /** + * After register hook + */ + public function after_register() { + // Should implement in real element + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_frontend_scripts() { + // Should implement in real row + } + + /** + * @return array + */ + protected function getRowControls() { + return []; + } + + /** + * Before row hook + */ + public function beforeRow() { + // Should implement in real row + } + + /** + * Before row hook for different device & settings + * + * @param $device + * @param $settings + */ + public function beforeRowDevice( $device, $settings ) { + // Should implement in real row + } + + /** + * After row hook + */ + public function afterRow() { + // Should implement in real row + } + + /** + * After row hook for different device & settings + * + * @param $device + * @param $settings + */ + public function afterRowDevice( $device, $settings ) { + // Should implement in real row + } + + /** + * @param $elements + * @param array $settings + * @param null $device + * + * @return $this + */ + public function addColumn( $elements, $settings = [], $device = null ) { + + if ( $device === 'all' ) { + $this->addDesktopColumn( $elements, $settings ); + $this->addMobileColumn( $elements, $settings ); + + return $this; + } + + if ( ! is_array( $this->default ) ) { + $this->default = []; + } + + if ( ! $device ) { + $columns = $this->default['columns'] ?? []; + $columns[] = [ + 'elements' => $elements, + 'settings' => $settings, + ]; + + $this->default = [ 'columns' => $columns ]; + + return $this; + } + + if ( ! isset( $this->default['desktop'] ) ) { + $this->default['desktop'] = []; + } + if ( ! isset( $this->default['mobile'] ) ) { + $this->default['mobile'] = []; + } + + $value = $this->default[ $device ] ?? []; + + $columns = $value['columns'] ?? []; + if ( count( $columns ) >= $this->maxColumns ) { + return $this; + } + + $columns[] = [ + 'elements' => $elements, + 'settings' => $settings, + ]; + + $this->default[ $device ] = [ 'columns' => $columns ]; + + return $this; + } + + /** + * @param $elements + * @param array $settings + * + * @return $this + */ + public function addMobileColumn( $elements, $settings = [] ) { + return $this->addColumn( $elements, $settings, 'mobile' ); + } + + /** + * @param $elements + * @param array $settings + * + * @return $this + */ + public function addDesktopColumn( $elements, $settings = [] ) { + return $this->addColumn( $elements, $settings, 'desktop' ); + } + + /** + * Set max columns a row owen + * + * @param $columns + * + * @return $this + */ + public function setMaxColumns( $columns ) { + $this->maxColumns = $columns; + + return $this; + } + + /** + * Change row to off-canvas + * + * @return $this + */ + public function isOffCanvas() { + $this->type = 'off-canvas'; + + return $this; + } + + /** + * Set controls for row + * + * @param $controls + * + * @return $this + */ + public function setControls( $controls ) { + $this->controls = $controls; + + return $this; + } + + /** + * Enable only when desktop + * + * @return $this + */ + public function desktopOnly() { + $this->device = 'desktop'; + + return $this; + } + + /** + * Enable only when mobile + * + * @return $this + */ + public function mobileOnly() { + $this->device = 'mobile'; + + return $this; + } + + public function getId() { + return $this->id; + } + + public function getLabel() { + return $this->label; + } + + public function getDevice() { + return $this->device; + } + + public function getType() { + return $this->type; + } + + public function getMaxColumns() { + return $this->maxColumns; + } + + public function getControls() { + return $this->controls; + } + + public function getDefault() { + return $this->default; + } + + /** + * {@inheritDoc} + */ + public function shouldRender() { + return $this->builder->hasContent( $this->id ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Container.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Container.php new file mode 100644 index 0000000000..b9ad81200e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Container.php @@ -0,0 +1,83 @@ +controls = $this->parseControls( $this->getControls(), true ); + } + + /** + * Get instance + */ + public static function instance() { + if ( ! isset( self::$_instances[ static::class ] ) ) { + self::$_instances[ static::class ] = new static(); + } + + return self::$_instances[ static::class ]; + } + + /** + * After register hook + */ + public function after_register( $id, $data ) { + // Should implement in real element + } + + /** + * @return mixed + */ + abstract public function enqueue_frontend_scripts( $id, $data ); + + /** + * @param $id + * @param $data + * @param string $location + * + * @return mixed + */ + abstract public function start( $id, $data, $location = '' ); + + /** + * @param $id + * @param $data + * + * @return mixed + */ + abstract public function end( $id, $data ); + + /** + * @return array + */ + abstract public function getControls(); + + /** + * @return array + */ + public function getControlsArg() { + return $this->controls; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Element.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Element.php new file mode 100644 index 0000000000..a60bbb0e5e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/PageBuilder/Element.php @@ -0,0 +1,83 @@ +controls = $this->parseControls( $this->getControls(), true ); + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_frontend_scripts( $id = null, $data = [] ) { + // Should implement in real element + } + + /** + * Enqueue frontend scripts + */ + public function enqueue_admin_scripts( $id = null, $data = [] ) { + // Should implement in real element + } + + /** + * @return array + */ + public function getControlsArg() { + return $this->controls; + } + + /** + * @param $icon + * + * @return $this + */ + public function setIcon( $icon ) { + $this->icon = $icon; + + return $this; + } + + public function getIcon() { + return $this->icon; + } + + /** + * Get slug for setting + * + * @param string $key + * + * @return string + */ + public function getSlug( $key = '' ) { + return $key === '' ? $this->slug : $key; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Sanitizes.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Sanitizes.php new file mode 100644 index 0000000000..968005a9cc --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Sanitizes.php @@ -0,0 +1,569 @@ + sanitize_text_field( $value['family'] ?? '' ), + 'variant' => sanitize_text_field( $value['variant'] ?? '' ), + 'fontSize' => self::responsive_sanitize( [ self::class, 'slider' ], $value['fontSize'] ?? '', [ + 'options' => [ + 'units' => [ + [ 'unit' => 'px', 'min' => 10, 'max' => 200 ], + [ 'unit' => 'pt', 'min' => 10, 'max' => 50 ], + [ 'unit' => 'em', 'min' => 0.5, 'max' => 50 ], + [ 'unit' => 'rem', 'min' => 0.5, 'max' => 50 ], + ], + ], + ] ), + 'lineHeight' => self::responsive_sanitize( [ self::class, 'slider' ], $value['lineHeight'] ?? '', [ + 'options' => [ + 'units' => [ + [ 'unit' => '', 'min' => 1, 'max' => 10 ], + [ 'unit' => 'px', 'min' => 10, 'max' => 100 ], + [ 'unit' => 'pt', 'min' => 10, 'max' => 100 ], + [ 'unit' => 'em', 'min' => 1, 'max' => 100 ], + [ 'unit' => 'rem', 'min' => 1, 'max' => 100 ], + ], + ], + ] ), + 'letterSpacing' => self::responsive_sanitize( [ self::class, 'slider' ], $value['letterSpacing'] ?? '', [ + 'options' => [ + 'units' => [ + [ 'unit' => 'px', 'min' => - 20, 'max' => 20 ], + [ 'unit' => 'pt', 'min' => - 20, 'max' => 20 ], + [ 'unit' => 'em', 'min' => - 10, 'max' => 10 ], + [ 'unit' => 'rem', 'min' => - 10, 'max' => 10 ], + ], + ], + ] ), + 'textTransform' => in_array( $value['textTransform'] ?? '', [ + 'capitalize', + 'uppercase', + 'lowercase' + ] ) ? $value['textTransform'] ?? '' : '', + 'textDecoration' => in_array( $value['textDecoration'] ?? '', [ + 'underline', + 'line-through' + ] ) ? $value['textDecoration'] ?? '' : '', + ]; + } + + /** + * Sanitize responsive control value + * + * @param $callback + * @param $input + * @param $args + * + * @return array + */ + public static function responsive_sanitize( $callback, $input, $args ): array { + + $input = self::get_responsive_value( $input ); + + foreach ( $input as $dev => $value ) { + if ( $value !== Css::INITIAL_VALUE ) { + $input[ $dev ] = call_user_func( $callback, $value, $args ); + } else { + $input[ $dev ] = $value; + } + } + + return $input; + } + + /** + * Get responsive value + * + * @param $value + * + * @return array + */ + public static function get_responsive_value( $value ): array { + if ( is_array( $value ) && isset( $value['desktop'] ) ) { + return $value; + } + + return [ + 'desktop' => $value, + 'tablet' => Css::INITIAL_VALUE, + 'mobile' => Css::INITIAL_VALUE, + ]; + } + + /** + * Sanitize callback for box-shadow control + * + * @param $input + * @param $args + * + * @return array + */ + public static function shadow( $input, $args ) { + return [ + 'enable' => ( $input['enable'] ?? '' ) === 'yes' ? 'yes' : 'no', + 'horizontal' => self::slider( $input['horizontal'] ?? '', [ + 'options' => [ + 'min' => - 100, + 'max' => 100, + 'defaultUnit' => 'px', + ] + ] ), + 'vertical' => self::slider( $input['vertical'] ?? '', [ + 'options' => [ + 'min' => - 100, + 'max' => 100, + 'defaultUnit' => 'px', + ] + ] ), + 'blur' => self::slider( $input['blur'] ?? '', [ + 'options' => [ + 'min' => 0, + 'max' => 100, + 'defaultUnit' => 'px', + ] + ] ), + 'spread' => self::slider( $input['spread'] ?? '', [ + 'options' => [ + 'min' => - 100, + 'max' => 100, + 'defaultUnit' => 'px', + ] + ] ), + 'color' => self::rgba_color( $input['color'] ?? '' ), + ]; + } + + /** + * Slider sanitization + * + * @param $value + * @param $args + * + * @return int + */ + public static function slider( $value, $args ) { + + $options = $args['options'] ?? []; + $min = $options['min'] ?? 0; + $max = $options['max'] ?? 100; + + if ( ! is_string( $value ) && ! is_numeric( $value ) ) { + return ''; + } + + $unit = preg_replace( [ '/[0-9]/', '/\-/', '/\./' ], '', $value ); + if ( $unit === '' ) { + $unit = isset( $options['units'] ) + ? $options['units'][0]['unit'] + : ( + isset( $options['defaultUnit'] ) && $options['defaultUnit'] === false + ? '' + : $options['defaultUnit'] ?? 'px' + ); + } + + if ( isset( $options['units'] ) ) { + foreach ( $options['units'] as $config ) { + if ( $config['unit'] === $unit ) { + $max = $config['max'] ?? $max; + $min = $config['min'] ?? $min; + break; + } + } + } + + $number = floatval( $value ); + + if ( isset( $max ) && $number > $max ) { + $number = $max; + } elseif ( $number < $min ) { + $number = $min; + } + + $number = number_format( (float) $number, 2, '.', '' ); + if ( $number == (int) $number ) { + $number = (int) $number; + } + + return ( is_numeric( $number ) ? $number : $min ) . $unit; + } + + /** + * RGBA color sanitization callback example. + * + * @param $color + * + * @return string|void + */ + public static function rgba_color( $color ) { + if ( $color === Css::INITIAL_VALUE ) { + return $color; + } + + // css var + if ( false !== strpos( $color, 'var' ) ) { + return $color; + } + + if ( empty( $color ) || is_array( $color ) ) { + return 'rgba(0,0,0,0)'; + } + + // If string does not start with 'rgba', then treat as hex + // sanitize the hex color and finally convert hex to rgba + if ( false === strpos( $color, 'rgba' ) ) { + return sanitize_hex_color( $color ); + } + + // By now we know the string is formatted as an rgba color so we need to further sanitize it. + $color = str_replace( ' ', '', $color ); + sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); + + return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')'; + } + + /** + * Sanitize callback for filters control + * + * @param $input + * @param $args + * + * @return array + */ + public static function filters( $input, $args ) { + return [ + 'enable' => ( $input['enable'] ?? '' ) === 'yes' ? 'yes' : 'no', + 'blur' => absint( $input['blur'] ?? 0 ), + 'contrast' => absint( $input['contrast'] ?? 100 ), + 'brightness' => absint( $input['brightness'] ?? 100 ), + 'saturate' => absint( $input['saturate'] ?? 100 ), + 'hue' => absint( $input['hue'] ?? 0 ), + ]; + } + + /** + * Sanitize background control value + * + * @param $value + * + * @return array + */ + public static function background( $value ) { + $type = $value['type'] ?? 'color'; + $image = $value['image'] ?? []; + + return [ + 'type' => in_array( $type, [ 'color', 'gradient', 'image' ] ) ? $type : 'color', + 'color' => self::rgba_color( $value['color'] ?? '' ), + 'gradient' => sanitize_text_field( $value['gradient'] ?? '' ), + 'image' => [ + 'source' => self::image_uploader( $image['source'] ?? [] ), + 'repeat' => in_array( $image['repeat'] ?? '', [ + 'repeat', + 'repeat-x', + 'repeat-y', + 'no-repeat' + ] ) ? $image['repeat'] ?? '' : 'repeat', + 'size' => in_array( $image['size'] ?? '', [ + 'auto', + 'cover', + 'contain' + ] ) ? $image['size'] ?? '' : 'auto', + 'attachment' => in_array( $image['attachment'] ?? '', [ + 'scroll', + 'fixed', + 'inherit' + ] ) ? $image['attachment'] ?? '' : 'scroll', + 'color' => self::rgba_color( $image['color'] ?? '' ), + ] + ]; + } + + /** + * Image uploader sanitization + * + * @param $image + * + * @return array + */ + public static function image_uploader( $image ) { + return [ + 'attachment_id' => absint( $image['attachment_id'] ?? 0 ), + 'url' => esc_url( $image['url'] ?? '' ), + 'x' => number_format( (float) ( $image['x'] ?? 0 ), 2, '.', '' ), + 'y' => number_format( (float) ( $image['y'] ?? 0 ), 2, '.', '' ) + ]; + } + + /** + * @param $file + * + * @return array + */ + public static function attachment_info( $file ) { + return [ + 'id' => absint( $file['id'] ?? 0 ), + 'url' => esc_url( $file['url'] ?? '' ), + 'title' => sanitize_text_field( $file['title'] ?? '' ), + 'filename' => sanitize_text_field( $file['filename'] ?? '' ), + ]; + } + + /** + * Sanitize callback for tags control + * + * @param $input + * @param $args + * + * @return array + */ + public static function tags( $input, $args ) { + $options = $args['options'] ?? []; + $results = []; + $enforceWhitelist = $options['enforceWhitelist'] ?? false; + if ( ! $enforceWhitelist ) { + foreach ( $input as $value ) { + $results[] = sanitize_text_field( $value ); + } + + return $results; + } + + $whitelist = Utils::array_pluck( 'value', $options['whitelist'] ?? [] ); + foreach ( $input as $value ) { + if ( in_array( $value, $whitelist ) ) { + $results[] = $value; + } + } + + return $results; + } + + /** + * Sanitize callback for layers control + * + * @param $input + * @param $args + * + * @return array|void + */ + public static function layers( $input, $args ) { + if ( ! is_array( $input ) ) { + return []; + } + + $layers = array_keys( $args['options']['layers'] ?? [] ); + $result = []; + $existed = []; + + foreach ( $input as $layer ) { + if ( ! isset( $layer['id'] ) || in_array( $layer['id'], $existed ) || ! in_array( $layer['id'], $layers ) ) { + continue; + } + + $existed[] = $layer['id']; + $result[] = [ + 'id' => $layer['id'], + 'visible' => (bool) ( $layer['visible'] ?? false ) + ]; + } + + return $result; + } + + /** + * Sanitize callback for select control + * + * @param $input + * @param $args + * + * @return mixed|string + */ + public static function select( $input, $args ) { + // Get list of choices from the control associated with the setting. + $choices = $args['choices']; + + // If the input is a valid key, return it; otherwise, return the default. + return ( array_key_exists( $input, $choices ) ? $input : ( $args['default'] ?? '' ) ); + } + + /** + * Sanitize callback for multi-select control + * + * @param $input + * @param $args + * + * @return array + */ + public static function multiSelect( $input, $args ) { + // Get list of choices from the control associated with the setting. + $choices = $args['choices']; + $output = array(); + + foreach ( $choices as $choice => $data ) { + $output[ $choice ] = ( is_array( $input ) && isset( $input[ $choice ] ) && $input[ $choice ] === 'yes' ) ? 'yes' : 'no'; + } + + return $output; + } + + /** + * Sanitize callback for spacing control + * + * @param $input + * @param $args + * + * @return array + */ + public static function spacing( $input, $args ) { + $slider_args = [ + 'options' => [ + 'units' => [ + [ 'unit' => 'px', 'min' => - 9999, 'max' => 9999 ], + [ 'unit' => '%', 'min' => 0, 'max' => 100 ], + [ 'unit' => 'em', 'min' => - 100, 'max' => 100 ], + [ 'unit' => 'rem', 'min' => - 100, 'max' => 100 ], + [ 'unit' => 'pt', 'min' => - 100, 'max' => 100 ], + ], + ] + ]; + + $top = $input['top'] ?? 0; + $right = $input['right'] ?? 0; + $bottom = $input['bottom'] ?? 0; + $left = $input['left'] ?? 0; + + return [ + 'top' => $top == 'auto' ? $top : self::slider( $top ?? 0, $slider_args ), + 'right' => $right == 'auto' ? $right : self::slider( $right ?? 0, $slider_args ), + 'bottom' => $bottom == 'auto' ? $bottom : self::slider( $bottom ?? 0, $slider_args ), + 'left' => $left == 'auto' ? $left : self::slider( $left ?? 0, $slider_args ), + 'linked' => (bool) ( $input['linked'] ?? false ) + ]; + } + + /** + * Sanitize callback for border control + * + * @param $input + * @param $args + * + * @return array + */ + public static function border( $input, $args ) { + $input['style'] = $input['style'] ?? 'none'; + + return [ + 'inherit' => $input['inherit'] ?? false, + 'width' => absint( $input['width'] ?? 1 ), + 'color' => self::rgba_color( $input['color'] ?? '' ), + 'hover' => self::rgba_color( $input['hover'] ?? '' ), + 'style' => in_array( $input['style'], [ + 'solid', + 'dashed', + 'dotted', + 'none' + ] ) ? $input['style'] : 'none' + ]; + } + + /** + * Checkbox sanitization callback example. + * + * Sanitization callback for 'checkbox' type controls. This callback sanitizes `$checked` + * as a boolean value, either TRUE or FALSE. + * + * @param mixed $checked Whether the checkbox is checked. + * + * @return string Whether the checkbox is checked. + */ + public static function checkbox( $checked ) { + // Boolean check. + return $checked === 'yes' ? $checked : 'no'; + } + + /** + * Palettes sanitization callback example. + * + * @param $input + * @param $args + * + * @return mixed|string + */ + public static function palettes( $input, $args ) { + if ( isset( $args['options'] ) && isset( $args['options']['palettes'] ) ) { + $palettes = $args['options']['palettes']; + + // If the input is a valid key, return it; otherwise, return the default. + return ( array_key_exists( $input, $palettes ) ? $input : ( $args['default'] ?? '' ) ); + } + + return $args['default'] ?? ''; + } + + /** + * A collect of RGBA color sanitization callback example. + * + * @param $colors + * + * @return mixed + */ + public static function rgba_color_collect( $colors ) { + if ( ! is_array( $colors ) ) { + return []; + } + + foreach ( $colors as $key => $value ) { + $colors[ $key ] = self::rgba_color( $value ); + } + + return $colors; + } + + /** + * Icons sanitization callback example. + * + * @param $input + * @param $args + * + * @return array + */ + public static function icons( $input, $args ) { + $options = $args['options'] ?? []; + $libraries = $options['libraries'] ?? array_keys( IconsManager::allLibraries() ); + + $library = $input['library'] ?? ''; + + if ( ! in_array( $library, $libraries ) ) { + $library = $libraries[0] ?? ''; + } + + return [ + 'library' => $library, + 'value' => sanitize_text_field( $input['value'] ?? '' ), + ]; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Section.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Section.php new file mode 100644 index 0000000000..dde69d45b9 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Section.php @@ -0,0 +1,68 @@ +id = $id; + $this->title = $title; + $this->priority = $priority; + $this->panel = $panel; + } + + /** + * Get section id + * + * @return string + */ + public function getId() { + return $this->id; + } + + /** + * Get section args + * + * @return array + */ + public function getSectionArgs() { + return [ + 'title' => $this->title, + 'priority' => $this->priority, + 'panel' => $this->panel + ]; + } + + /** + * get section controls + * + * @return array + */ + abstract public function getControls(); +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/ContainerControl.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/ContainerControl.php new file mode 100644 index 0000000000..25901b9c2a --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/ContainerControl.php @@ -0,0 +1,49 @@ +toArray(); + } else if ( is_array( $control ) ) { + $arr[] = $control; + } + + if ( $register ) { + $this->register( $control, true ); + } + } + + return $arr; + } + + /** + * @return array + */ + public function getDefaults() { + $defaults = []; + + foreach ( $this->_settings as $id => $setting ) { + $defaults[ $id ] = $setting['default'] ?? null; + } + + return $defaults; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/RadioControl.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/RadioControl.php new file mode 100644 index 0000000000..83922fb4c4 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/RadioControl.php @@ -0,0 +1,46 @@ +setParam( 'choices', $choices ); + } + + /** + * Alias for set columns + * + * @param $columns + * + * @return Control + */ + public function setColumns( $columns ) { + $attr = []; + + if ( isset( $this->options['attr'] ) && is_array( $this->options['attr'] ) ) { + $attr = $this->options['attr']; + } + + $attr['data-columns'] = $columns; + + return $this->setOption( 'attr', $attr ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Renderable.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Renderable.php new file mode 100644 index 0000000000..d2ea4279a3 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Renderable.php @@ -0,0 +1,47 @@ +attributes[ $name ] ) ) { + $this->attributes[ $name ] = []; + } + + $this->attributes[ $name ][ $attr ] = $value; + } + + /** + * @param $name + * + * @return string + */ + protected function render_attribute_string( $name ) { + if ( ! isset( $this->attributes[ $name ] ) ) { + return ''; + } + + return Utils::render_attribute_string( $this->attributes[ $name ] ); + } + + /** + * @param $name + */ + protected function print_attribute_string( $name ) { + echo $this->render_attribute_string( $name ); + } +} + diff --git a/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Settings.php b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Settings.php new file mode 100644 index 0000000000..0ea801409d --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Customizer/Traits/Settings.php @@ -0,0 +1,233 @@ +_settings; + } + + /** + * Restore settings + * + * @param array $settings + * + * @return void + */ + public function restore($settings) { + $this->_settings = $settings; + } + + /** + * Register customize setting + * + * @param $args + * @param false $sub + */ + public function register( $args, bool $sub = false ) { + if ( $args instanceof Control ) { + $args = $args->toArray(); + } + + $id = $args['setting']['id'] ?? $args['id']; + + if ( ! isset( $this->options[ $id ] ) ) { + $this->_settings[ $id ] = $args; + } + + if ( $sub ) { + foreach ( $this->getSubControls( $args ) as $control ) { + $this->register( $control, $sub ); + } + } + } + + /** + * @param $id + * + * @return array|mixed + */ + public function getSettingArgs( $id ) { + return $this->_settings[ $id ] ?? []; + } + + /** + * Get setting + * + * @param $id + * @param array $settings + * + * @return mixed|void|null + */ + public function get( $id, array $settings = [] ) { + + if ( isset( $settings[ $id ] ) ) { + return $settings[ $id ]; + } + + $settings = $this->_settings; + if ( ! isset( $settings[ $id ] ) ) { + return null; + } + + return $settings[ $id ]['default'] ?? null; + } + + /** + * Is this option checked + * + * @param $id + * @param array $settings + * + * @return bool + */ + public function checked( $id, array $settings = [] ): bool { + return $this->get( $id, $settings ) === 'yes'; + } + + /** + * Get display value + * + * @param $id + * @param string $visible + * @param array $settings + * + * @return array|mixed|string|void|null + */ + public function display( $id, string $visible = 'block', array $settings = [] ) { + + $value = $this->get( $id, $settings ); + if ( ! is_array( $value ) ) { + $value = $value === 'yes' ? $visible : 'none'; + } else { + foreach ( $value as $device => $v ) { + $value[ $device ] = $v === 'yes' ? $visible : 'none'; + } + } + + return $value; + } + + /** + * Get available layers from layers control + * + * @param $id + * @param array $settings + * + * @return array + */ + public function layers( $id, array $settings = [] ) { + $layers = $this->get( $id, $settings ); + if ( ! is_array( $layers ) ) { + return []; + } + + $result = []; + + foreach ( $layers as $layer ) { + if ( isset( $layer['id'] ) && ( $layer['visible'] ?? false ) ) { + $result[] = $layer['id']; + } + } + + return $result; + } + + /** + * Get available items from repeater control + * + * @param $id + * @param array $settings + * + * @return array + */ + public function repeater( $id, $settings = [] ) { + $items = $this->get( $id, $settings ); + if ( ! is_array( $items ) ) { + return []; + } + + $result = []; + + foreach ( $items as $item ) { + if ( isset( $item['settings'] ) && ( $item['visible'] ?? false ) ) { + $result[] = $item['settings']; + } + } + + return $result; + } + + /** + * Get img tag attrs from image uploader control value + * + * @param $id + * @param array $settings + * + * @return array + */ + public function imgAttrs( $id, $settings = [] ) { + $image = $this->get( $id, $settings ); + $image_attr = []; + + if ( ! empty( $image ) && isset( $image['url'] ) && ! empty( $image['url'] ) ) { + $attachment_id = $image['attachment_id'] ?? 0; + $alt_attribute = $attachment_id <= 0 ? [] : get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ); + $alt_attribute = ! empty( $alt_attribute ) ? $alt_attribute : get_bloginfo( 'name' ); + $image_attr['src'] = esc_url( $image['url'] ?? '' ); + $image_attr['alt'] = esc_attr( $alt_attribute ); + } + + return $image_attr; + } + + /** + * Has image + * + * @param $id + * @param array $settings + * + * @return bool + */ + public function hasImage( $id, $settings = [] ) { + return ! empty( $this->imgAttrs( $id, $settings ) ); + } + + /** + * Get sub controls + * + * @param $args + * + * @return array + */ + protected function getSubControls( $args ) { + if ( ! isset( $args['controls'] ) || ! isset( $args['options'] ) || empty( $args['controls'] ) ) { + return []; + } + + $controls = []; + + foreach ( $args['controls'] as $path => $collapse ) { + $value = Utils::array_path( $args['options'], $path ); + $controls = array_merge( $controls, $collapse ? Utils::array_collapse( $value ) : $value ); + } + + return $controls; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Extensions/Breadcrumbs.php b/wp-content/themes/kenta/lotta-framework/src/Extensions/Breadcrumbs.php new file mode 100644 index 0000000000..7092aec2ac --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Extensions/Breadcrumbs.php @@ -0,0 +1,159 @@ + '; + + /** + * Link format + * + * @var string + */ + protected $_link = '%2$s'; + + /** + * Item format + * + * @var string + */ + protected $_item = '%1$s'; + + /** + * Set home string + * + * @param $str + */ + public function setHomeString( $str ) { + $this->_home_str = $str; + } + + /** + * Set breadcrumbs separator + * + * @param $sep + */ + public function setSep( $sep ) { + $this->_sep = $sep; + } + + /** + * Change link format + * + * @param $format + */ + public function setLinkFormat( $format ) { + $this->_link = $format; + } + + /** + * Change item format + * + * @param $format + */ + public function setItemFormat( $format ) { + $this->_item = $format; + } + + /** + * Generates the breadcrumbs. + * + * @return array + */ + public function generate() { + $result = []; + + /* Start the breadcrumb with a link to home */ + $result[ $this->_home_str === null ? get_bloginfo( 'name' ) : $this->_home_str ] = home_url( '/' ); + + if ( is_category() || is_single() ) { + /* show categories and posts */ + if ( is_category() ) { + $result[ single_term_title( '', false ) ] = false; + } elseif ( is_single() ) { + $cats = get_the_category( get_the_ID() ); + $cat = array_shift( $cats ); + if ( $cat ) { + $result[ $cat->name ] = get_category_link( $cat->term_id ); + } + } + } elseif ( is_archive() || is_single() ) { + if ( is_day() ) { + $result[ get_the_date() ] = false; + } elseif ( is_month() ) { + $result[ get_the_date( 'F Y' ) ] = false; + } elseif ( is_year() ) { + $result[ get_the_date( 'Y' ) ] = false; + } else { + $result[ get_the_archive_title() ] = false; + } + } + + /* If the current page is a single post or a static page, show its title with the separator */ + if ( is_single() || is_page() ) { + $result[ the_title( '', '', false ) ] = false; + } + + /* if you have a static page assigned to be you posts list page. It will find the title of the static page and display it. i.e Home >> Blog */ + if ( is_home() ) { + global $post; + $page_for_posts_id = get_option( 'page_for_posts' ); + if ( $page_for_posts_id ) { + $post = get_page( $page_for_posts_id ); + setup_postdata( $post ); + $result[ the_title( '', '', false ) ] = false; + rewind_posts(); + } + } + + return $result; + } + + /** + * Get breadcrumb html string + * + * @return null|string + */ + public function get() { + + if ( is_front_page() ) { + return null; + } + + $items = $this->generate(); + $html = []; + + foreach ( $items as $title => $link ) { + if ( $link !== false ) { + $html[] = sprintf( $this->_link, $link, $title ); + } else { + $html[] = sprintf( $this->_item, $title ); + } + } + + return implode( $this->_sep, $html ); + } + + /** + * Output breadcrumb + */ + public function render( $before = '', $after = '' ) { + $content = $this->get(); + if ( $content ) { + echo $before . $content . $after; + } + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Facades/AsyncCss.php b/wp-content/themes/kenta/lotta-framework/src/Facades/AsyncCss.php new file mode 100644 index 0000000000..abe92f1d06 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Facades/AsyncCss.php @@ -0,0 +1,27 @@ +resolved( $accessor ) === true ) { + $callback( static::getFacadeRoot() ); + } + + static::$app->afterResolving( $accessor, function ( $service ) use ( $callback ) { + $callback( $service ); + } ); + } + + /** + * Get the registered name of the component. + * + * @return string + * + * @throws \RuntimeException + */ + protected static function getFacadeAccessor() { + throw new \RuntimeException( 'Facade does not implement getFacadeAccessor method.' ); + } + + /** + * Get the root object behind the facade. + * + * @return mixed + */ + public static function getFacadeRoot() { + return static::resolveFacadeInstance( static::getFacadeAccessor() ); + } + + /** + * Resolve the facade root instance from the container. + * + * @param string $name + * + * @return mixed + */ + protected static function resolveFacadeInstance( $name ) { + if ( isset( static::$resolvedInstance[ $name ] ) ) { + return static::$resolvedInstance[ $name ]; + } + + if ( static::$app ) { + if ( static::$cached ) { + return static::$resolvedInstance[ $name ] = static::$app[ $name ]; + } + + return static::$app[ $name ]; + } + } + + /** + * Clear a resolved facade instance. + * + * @param string $name + * + * @return void + */ + public static function clearResolvedInstance( $name ) { + unset( static::$resolvedInstance[ $name ] ); + } + + /** + * Clear all of the resolved instances. + * + * @return void + */ + public static function clearResolvedInstances() { + static::$resolvedInstance = []; + } + + /** + * Set the application instance. + * + * @param Container $app + * + * @return void + */ + public static function setFacadeApplication( $app ) { + static::$app = $app; + } + + /** + * Handle dynamic, static calls to the object. + * + * @param string $method + * @param array $args + * + * @return mixed + * + * @throws \RuntimeException + */ + public static function __callStatic( $method, $args ) { + $instance = static::getFacadeRoot(); + + if ( ! $instance ) { + throw new \RuntimeException( 'A facade root has not been set.' ); + } + + return $instance->$method( ...$args ); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/src/Facades/Query.php b/wp-content/themes/kenta/lotta-framework/src/Facades/Query.php new file mode 100644 index 0000000000..7174315992 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Facades/Query.php @@ -0,0 +1,22 @@ + $data ) { + if ( in_array( $library, $data['s'] ) ) { + $_fa_library[ $library ][ $icon ] = [ + 'value' => "fa{$library} fa-{$icon}" + ]; + } + } + } + + return $_fa_library[ $library ]; + } + + /** + * Get all libraries + * + * @return array + */ + public static function allLibraries() { + return [ + 'fa-regular' => [ + 'icons' => self::faLibrary( 'regular' ), + ], + 'fa-solid' => [ + 'icons' => self::faLibrary( 'solid' ), + ], + 'fa-brands' => [ + 'icons' => self::faLibrary( 'brands' ), + ], + ]; + } + + /** + * Render icon + * + * @param $icon + * + * @return string + */ + public static function render( $icon ) { + return ''; + } + + /** + * Print icon + * + * @param $icon + */ + public static function print( $icon ) { + echo wp_kses_post( self::render( $icon ) ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Icons/fontawesome.json b/wp-content/themes/kenta/lotta-framework/src/Icons/fontawesome.json new file mode 100644 index 0000000000..a167f80e6e --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Icons/fontawesome.json @@ -0,0 +1 @@ +{"0":{"s":["s"]},"1":{"s":["s"]},"2":{"s":["s"]},"3":{"s":["s"]},"4":{"s":["s"]},"5":{"s":["s"]},"6":{"s":["s"]},"7":{"s":["s"]},"8":{"s":["s"]},"9":{"s":["s"]},"42-group":{"s":["b"]},"500px":{"s":["b"]},"a":{"s":["s"]},"accessible-icon":{"s":["b"]},"accusoft":{"s":["b"]},"address-book":{"s":["s","r"]},"address-card":{"s":["s","r"]},"adn":{"s":["b"]},"adversal":{"s":["b"]},"affiliatetheme":{"s":["b"]},"airbnb":{"s":["b"]},"algolia":{"s":["b"]},"align-center":{"s":["s"]},"align-justify":{"s":["s"]},"align-left":{"s":["s"]},"align-right":{"s":["s"]},"alipay":{"s":["b"]},"amazon":{"s":["b"]},"amazon-pay":{"s":["b"]},"amilia":{"s":["b"]},"anchor":{"s":["s"]},"anchor-circle-check":{"s":["s"]},"anchor-circle-exclamation":{"s":["s"]},"anchor-circle-xmark":{"s":["s"]},"anchor-lock":{"s":["s"]},"android":{"s":["b"]},"angellist":{"s":["b"]},"angle-down":{"s":["s"]},"angle-left":{"s":["s"]},"angle-right":{"s":["s"]},"angle-up":{"s":["s"]},"angles-down":{"s":["s"]},"angles-left":{"s":["s"]},"angles-right":{"s":["s"]},"angles-up":{"s":["s"]},"angrycreative":{"s":["b"]},"angular":{"s":["b"]},"ankh":{"s":["s"]},"app-store":{"s":["b"]},"app-store-ios":{"s":["b"]},"apper":{"s":["b"]},"apple":{"s":["b"]},"apple-pay":{"s":["b"]},"apple-whole":{"s":["s"]},"archway":{"s":["s"]},"arrow-down":{"s":["s"]},"arrow-down-1-9":{"s":["s"]},"arrow-down-9-1":{"s":["s"]},"arrow-down-a-z":{"s":["s"]},"arrow-down-long":{"s":["s"]},"arrow-down-short-wide":{"s":["s"]},"arrow-down-up-across-line":{"s":["s"]},"arrow-down-up-lock":{"s":["s"]},"arrow-down-wide-short":{"s":["s"]},"arrow-down-z-a":{"s":["s"]},"arrow-left":{"s":["s"]},"arrow-left-long":{"s":["s"]},"arrow-pointer":{"s":["s"]},"arrow-right":{"s":["s"]},"arrow-right-arrow-left":{"s":["s"]},"arrow-right-from-bracket":{"s":["s"]},"arrow-right-long":{"s":["s"]},"arrow-right-to-bracket":{"s":["s"]},"arrow-right-to-city":{"s":["s"]},"arrow-rotate-left":{"s":["s"]},"arrow-rotate-right":{"s":["s"]},"arrow-trend-down":{"s":["s"]},"arrow-trend-up":{"s":["s"]},"arrow-turn-down":{"s":["s"]},"arrow-turn-up":{"s":["s"]},"arrow-up":{"s":["s"]},"arrow-up-1-9":{"s":["s"]},"arrow-up-9-1":{"s":["s"]},"arrow-up-a-z":{"s":["s"]},"arrow-up-from-bracket":{"s":["s"]},"arrow-up-from-ground-water":{"s":["s"]},"arrow-up-from-water-pump":{"s":["s"]},"arrow-up-long":{"s":["s"]},"arrow-up-right-dots":{"s":["s"]},"arrow-up-right-from-square":{"s":["s"]},"arrow-up-short-wide":{"s":["s"]},"arrow-up-wide-short":{"s":["s"]},"arrow-up-z-a":{"s":["s"]},"arrows-down-to-line":{"s":["s"]},"arrows-down-to-people":{"s":["s"]},"arrows-left-right":{"s":["s"]},"arrows-left-right-to-line":{"s":["s"]},"arrows-rotate":{"s":["s"]},"arrows-spin":{"s":["s"]},"arrows-split-up-and-left":{"s":["s"]},"arrows-to-circle":{"s":["s"]},"arrows-to-dot":{"s":["s"]},"arrows-to-eye":{"s":["s"]},"arrows-turn-right":{"s":["s"]},"arrows-turn-to-dots":{"s":["s"]},"arrows-up-down":{"s":["s"]},"arrows-up-down-left-right":{"s":["s"]},"arrows-up-to-line":{"s":["s"]},"artstation":{"s":["b"]},"asterisk":{"s":["s"]},"asymmetrik":{"s":["b"]},"at":{"s":["s"]},"atlassian":{"s":["b"]},"atom":{"s":["s"]},"audible":{"s":["b"]},"audio-description":{"s":["s"]},"austral-sign":{"s":["s"]},"autoprefixer":{"s":["b"]},"avianex":{"s":["b"]},"aviato":{"s":["b"]},"award":{"s":["s"]},"aws":{"s":["b"]},"b":{"s":["s"]},"baby":{"s":["s"]},"baby-carriage":{"s":["s"]},"backward":{"s":["s"]},"backward-fast":{"s":["s"]},"backward-step":{"s":["s"]},"bacon":{"s":["s"]},"bacteria":{"s":["s"]},"bacterium":{"s":["s"]},"bag-shopping":{"s":["s"]},"bahai":{"s":["s"]},"baht-sign":{"s":["s"]},"ban":{"s":["s"]},"ban-smoking":{"s":["s"]},"bandage":{"s":["s"]},"bandcamp":{"s":["b"]},"bangladeshi-taka-sign":{"s":["s"]},"barcode":{"s":["s"]},"bars":{"s":["s"]},"bars-progress":{"s":["s"]},"bars-staggered":{"s":["s"]},"baseball":{"s":["s"]},"baseball-bat-ball":{"s":["s"]},"basket-shopping":{"s":["s"]},"basketball":{"s":["s"]},"bath":{"s":["s"]},"battery-empty":{"s":["s"]},"battery-full":{"s":["s"]},"battery-half":{"s":["s"]},"battery-quarter":{"s":["s"]},"battery-three-quarters":{"s":["s"]},"battle-net":{"s":["b"]},"bed":{"s":["s"]},"bed-pulse":{"s":["s"]},"beer-mug-empty":{"s":["s"]},"behance":{"s":["b"]},"bell":{"s":["s","r"]},"bell-concierge":{"s":["s"]},"bell-slash":{"s":["s","r"]},"bezier-curve":{"s":["s"]},"bicycle":{"s":["s"]},"bilibili":{"s":["b"]},"bimobject":{"s":["b"]},"binoculars":{"s":["s"]},"biohazard":{"s":["s"]},"bitbucket":{"s":["b"]},"bitcoin":{"s":["b"]},"bitcoin-sign":{"s":["s"]},"bity":{"s":["b"]},"black-tie":{"s":["b"]},"blackberry":{"s":["b"]},"blender":{"s":["s"]},"blender-phone":{"s":["s"]},"blog":{"s":["s"]},"blogger":{"s":["b"]},"blogger-b":{"s":["b"]},"bluesky":{"s":["b"]},"bluetooth":{"s":["b"]},"bluetooth-b":{"s":["b"]},"bold":{"s":["s"]},"bolt":{"s":["s"]},"bolt-lightning":{"s":["s"]},"bomb":{"s":["s"]},"bone":{"s":["s"]},"bong":{"s":["s"]},"book":{"s":["s"]},"book-atlas":{"s":["s"]},"book-bible":{"s":["s"]},"book-bookmark":{"s":["s"]},"book-journal-whills":{"s":["s"]},"book-medical":{"s":["s"]},"book-open":{"s":["s"]},"book-open-reader":{"s":["s"]},"book-quran":{"s":["s"]},"book-skull":{"s":["s"]},"book-tanakh":{"s":["s"]},"bookmark":{"s":["s","r"]},"bootstrap":{"s":["b"]},"border-all":{"s":["s"]},"border-none":{"s":["s"]},"border-top-left":{"s":["s"]},"bore-hole":{"s":["s"]},"bots":{"s":["b"]},"bottle-droplet":{"s":["s"]},"bottle-water":{"s":["s"]},"bowl-food":{"s":["s"]},"bowl-rice":{"s":["s"]},"bowling-ball":{"s":["s"]},"box":{"s":["s"]},"box-archive":{"s":["s"]},"box-open":{"s":["s"]},"box-tissue":{"s":["s"]},"boxes-packing":{"s":["s"]},"boxes-stacked":{"s":["s"]},"braille":{"s":["s"]},"brain":{"s":["s"]},"brave":{"s":["b"]},"brave-reverse":{"s":["b"]},"brazilian-real-sign":{"s":["s"]},"bread-slice":{"s":["s"]},"bridge":{"s":["s"]},"bridge-circle-check":{"s":["s"]},"bridge-circle-exclamation":{"s":["s"]},"bridge-circle-xmark":{"s":["s"]},"bridge-lock":{"s":["s"]},"bridge-water":{"s":["s"]},"briefcase":{"s":["s"]},"briefcase-medical":{"s":["s"]},"broom":{"s":["s"]},"broom-ball":{"s":["s"]},"brush":{"s":["s"]},"btc":{"s":["b"]},"bucket":{"s":["s"]},"buffer":{"s":["b"]},"bug":{"s":["s"]},"bug-slash":{"s":["s"]},"bugs":{"s":["s"]},"building":{"s":["s","r"]},"building-circle-arrow-right":{"s":["s"]},"building-circle-check":{"s":["s"]},"building-circle-exclamation":{"s":["s"]},"building-circle-xmark":{"s":["s"]},"building-columns":{"s":["s"]},"building-flag":{"s":["s"]},"building-lock":{"s":["s"]},"building-ngo":{"s":["s"]},"building-shield":{"s":["s"]},"building-un":{"s":["s"]},"building-user":{"s":["s"]},"building-wheat":{"s":["s"]},"bullhorn":{"s":["s"]},"bullseye":{"s":["s"]},"burger":{"s":["s"]},"buromobelexperte":{"s":["b"]},"burst":{"s":["s"]},"bus":{"s":["s"]},"bus-simple":{"s":["s"]},"business-time":{"s":["s"]},"buy-n-large":{"s":["b"]},"buysellads":{"s":["b"]},"c":{"s":["s"]},"cable-car":{"s":["s"]},"cake-candles":{"s":["s"]},"calculator":{"s":["s"]},"calendar":{"s":["s","r"]},"calendar-check":{"s":["s","r"]},"calendar-day":{"s":["s"]},"calendar-days":{"s":["s","r"]},"calendar-minus":{"s":["s","r"]},"calendar-plus":{"s":["s","r"]},"calendar-week":{"s":["s"]},"calendar-xmark":{"s":["s","r"]},"camera":{"s":["s"]},"camera-retro":{"s":["s"]},"camera-rotate":{"s":["s"]},"campground":{"s":["s"]},"canadian-maple-leaf":{"s":["b"]},"candy-cane":{"s":["s"]},"cannabis":{"s":["s"]},"capsules":{"s":["s"]},"car":{"s":["s"]},"car-battery":{"s":["s"]},"car-burst":{"s":["s"]},"car-on":{"s":["s"]},"car-rear":{"s":["s"]},"car-side":{"s":["s"]},"car-tunnel":{"s":["s"]},"caravan":{"s":["s"]},"caret-down":{"s":["s"]},"caret-left":{"s":["s"]},"caret-right":{"s":["s"]},"caret-up":{"s":["s"]},"carrot":{"s":["s"]},"cart-arrow-down":{"s":["s"]},"cart-flatbed":{"s":["s"]},"cart-flatbed-suitcase":{"s":["s"]},"cart-plus":{"s":["s"]},"cart-shopping":{"s":["s"]},"cash-register":{"s":["s"]},"cat":{"s":["s"]},"cc-amazon-pay":{"s":["b"]},"cc-amex":{"s":["b"]},"cc-apple-pay":{"s":["b"]},"cc-diners-club":{"s":["b"]},"cc-discover":{"s":["b"]},"cc-jcb":{"s":["b"]},"cc-mastercard":{"s":["b"]},"cc-paypal":{"s":["b"]},"cc-stripe":{"s":["b"]},"cc-visa":{"s":["b"]},"cedi-sign":{"s":["s"]},"cent-sign":{"s":["s"]},"centercode":{"s":["b"]},"centos":{"s":["b"]},"certificate":{"s":["s"]},"chair":{"s":["s"]},"chalkboard":{"s":["s"]},"chalkboard-user":{"s":["s"]},"champagne-glasses":{"s":["s"]},"charging-station":{"s":["s"]},"chart-area":{"s":["s"]},"chart-bar":{"s":["s","r"]},"chart-column":{"s":["s"]},"chart-gantt":{"s":["s"]},"chart-line":{"s":["s"]},"chart-pie":{"s":["s"]},"chart-simple":{"s":["s"]},"check":{"s":["s"]},"check-double":{"s":["s"]},"check-to-slot":{"s":["s"]},"cheese":{"s":["s"]},"chess":{"s":["s"]},"chess-bishop":{"s":["s","r"]},"chess-board":{"s":["s"]},"chess-king":{"s":["s","r"]},"chess-knight":{"s":["s","r"]},"chess-pawn":{"s":["s","r"]},"chess-queen":{"s":["s","r"]},"chess-rook":{"s":["s","r"]},"chevron-down":{"s":["s"]},"chevron-left":{"s":["s"]},"chevron-right":{"s":["s"]},"chevron-up":{"s":["s"]},"child":{"s":["s"]},"child-combatant":{"s":["s"]},"child-dress":{"s":["s"]},"child-reaching":{"s":["s"]},"children":{"s":["s"]},"chrome":{"s":["b"]},"chromecast":{"s":["b"]},"church":{"s":["s"]},"circle":{"s":["s","r"]},"circle-arrow-down":{"s":["s"]},"circle-arrow-left":{"s":["s"]},"circle-arrow-right":{"s":["s"]},"circle-arrow-up":{"s":["s"]},"circle-check":{"s":["s","r"]},"circle-chevron-down":{"s":["s"]},"circle-chevron-left":{"s":["s"]},"circle-chevron-right":{"s":["s"]},"circle-chevron-up":{"s":["s"]},"circle-dollar-to-slot":{"s":["s"]},"circle-dot":{"s":["s","r"]},"circle-down":{"s":["s","r"]},"circle-exclamation":{"s":["s"]},"circle-h":{"s":["s"]},"circle-half-stroke":{"s":["s"]},"circle-info":{"s":["s"]},"circle-left":{"s":["s","r"]},"circle-minus":{"s":["s"]},"circle-nodes":{"s":["s"]},"circle-notch":{"s":["s"]},"circle-pause":{"s":["s","r"]},"circle-play":{"s":["s","r"]},"circle-plus":{"s":["s"]},"circle-question":{"s":["s","r"]},"circle-radiation":{"s":["s"]},"circle-right":{"s":["s","r"]},"circle-stop":{"s":["s","r"]},"circle-up":{"s":["s","r"]},"circle-user":{"s":["s","r"]},"circle-xmark":{"s":["s","r"]},"city":{"s":["s"]},"clapperboard":{"s":["s"]},"clipboard":{"s":["s","r"]},"clipboard-check":{"s":["s"]},"clipboard-list":{"s":["s"]},"clipboard-question":{"s":["s"]},"clipboard-user":{"s":["s"]},"clock":{"s":["s","r"]},"clock-rotate-left":{"s":["s"]},"clone":{"s":["s","r"]},"closed-captioning":{"s":["s","r"]},"cloud":{"s":["s"]},"cloud-arrow-down":{"s":["s"]},"cloud-arrow-up":{"s":["s"]},"cloud-bolt":{"s":["s"]},"cloud-meatball":{"s":["s"]},"cloud-moon":{"s":["s"]},"cloud-moon-rain":{"s":["s"]},"cloud-rain":{"s":["s"]},"cloud-showers-heavy":{"s":["s"]},"cloud-showers-water":{"s":["s"]},"cloud-sun":{"s":["s"]},"cloud-sun-rain":{"s":["s"]},"cloudflare":{"s":["b"]},"cloudscale":{"s":["b"]},"cloudsmith":{"s":["b"]},"cloudversify":{"s":["b"]},"clover":{"s":["s"]},"cmplid":{"s":["b"]},"code":{"s":["s"]},"code-branch":{"s":["s"]},"code-commit":{"s":["s"]},"code-compare":{"s":["s"]},"code-fork":{"s":["s"]},"code-merge":{"s":["s"]},"code-pull-request":{"s":["s"]},"codepen":{"s":["b"]},"codiepie":{"s":["b"]},"coins":{"s":["s"]},"colon-sign":{"s":["s"]},"comment":{"s":["s","r"]},"comment-dollar":{"s":["s"]},"comment-dots":{"s":["s","r"]},"comment-medical":{"s":["s"]},"comment-slash":{"s":["s"]},"comment-sms":{"s":["s"]},"comments":{"s":["s","r"]},"comments-dollar":{"s":["s"]},"compact-disc":{"s":["s"]},"compass":{"s":["s","r"]},"compass-drafting":{"s":["s"]},"compress":{"s":["s"]},"computer":{"s":["s"]},"computer-mouse":{"s":["s"]},"confluence":{"s":["b"]},"connectdevelop":{"s":["b"]},"contao":{"s":["b"]},"cookie":{"s":["s"]},"cookie-bite":{"s":["s"]},"copy":{"s":["s","r"]},"copyright":{"s":["s","r"]},"cotton-bureau":{"s":["b"]},"couch":{"s":["s"]},"cow":{"s":["s"]},"cpanel":{"s":["b"]},"creative-commons":{"s":["b"]},"creative-commons-by":{"s":["b"]},"creative-commons-nc":{"s":["b"]},"creative-commons-nc-eu":{"s":["b"]},"creative-commons-nc-jp":{"s":["b"]},"creative-commons-nd":{"s":["b"]},"creative-commons-pd":{"s":["b"]},"creative-commons-pd-alt":{"s":["b"]},"creative-commons-remix":{"s":["b"]},"creative-commons-sa":{"s":["b"]},"creative-commons-sampling":{"s":["b"]},"creative-commons-sampling-plus":{"s":["b"]},"creative-commons-share":{"s":["b"]},"creative-commons-zero":{"s":["b"]},"credit-card":{"s":["s","r"]},"critical-role":{"s":["b"]},"crop":{"s":["s"]},"crop-simple":{"s":["s"]},"cross":{"s":["s"]},"crosshairs":{"s":["s"]},"crow":{"s":["s"]},"crown":{"s":["s"]},"crutch":{"s":["s"]},"cruzeiro-sign":{"s":["s"]},"css3":{"s":["b"]},"css3-alt":{"s":["b"]},"cube":{"s":["s"]},"cubes":{"s":["s"]},"cubes-stacked":{"s":["s"]},"cuttlefish":{"s":["b"]},"d":{"s":["s"]},"d-and-d":{"s":["b"]},"d-and-d-beyond":{"s":["b"]},"dailymotion":{"s":["b"]},"dart-lang":{"s":["b"]},"dashcube":{"s":["b"]},"database":{"s":["s"]},"debian":{"s":["b"]},"deezer":{"s":["b"]},"delete-left":{"s":["s"]},"delicious":{"s":["b"]},"democrat":{"s":["s"]},"deploydog":{"s":["b"]},"deskpro":{"s":["b"]},"desktop":{"s":["s"]},"dev":{"s":["b"]},"deviantart":{"s":["b"]},"dharmachakra":{"s":["s"]},"dhl":{"s":["b"]},"diagram-next":{"s":["s"]},"diagram-predecessor":{"s":["s"]},"diagram-project":{"s":["s"]},"diagram-successor":{"s":["s"]},"diamond":{"s":["s"]},"diamond-turn-right":{"s":["s"]},"diaspora":{"s":["b"]},"dice":{"s":["s"]},"dice-d20":{"s":["s"]},"dice-d6":{"s":["s"]},"dice-five":{"s":["s"]},"dice-four":{"s":["s"]},"dice-one":{"s":["s"]},"dice-six":{"s":["s"]},"dice-three":{"s":["s"]},"dice-two":{"s":["s"]},"digg":{"s":["b"]},"digital-ocean":{"s":["b"]},"discord":{"s":["b"]},"discourse":{"s":["b"]},"disease":{"s":["s"]},"display":{"s":["s"]},"divide":{"s":["s"]},"dna":{"s":["s"]},"dochub":{"s":["b"]},"docker":{"s":["b"]},"dog":{"s":["s"]},"dollar-sign":{"s":["s"]},"dolly":{"s":["s"]},"dong-sign":{"s":["s"]},"door-closed":{"s":["s"]},"door-open":{"s":["s"]},"dove":{"s":["s"]},"down-left-and-up-right-to-center":{"s":["s"]},"down-long":{"s":["s"]},"download":{"s":["s"]},"draft2digital":{"s":["b"]},"dragon":{"s":["s"]},"draw-polygon":{"s":["s"]},"dribbble":{"s":["b"]},"dropbox":{"s":["b"]},"droplet":{"s":["s"]},"droplet-slash":{"s":["s"]},"drum":{"s":["s"]},"drum-steelpan":{"s":["s"]},"drumstick-bite":{"s":["s"]},"drupal":{"s":["b"]},"dumbbell":{"s":["s"]},"dumpster":{"s":["s"]},"dumpster-fire":{"s":["s"]},"dungeon":{"s":["s"]},"dyalog":{"s":["b"]},"e":{"s":["s"]},"ear-deaf":{"s":["s"]},"ear-listen":{"s":["s"]},"earlybirds":{"s":["b"]},"earth-africa":{"s":["s"]},"earth-americas":{"s":["s"]},"earth-asia":{"s":["s"]},"earth-europe":{"s":["s"]},"earth-oceania":{"s":["s"]},"ebay":{"s":["b"]},"edge":{"s":["b"]},"edge-legacy":{"s":["b"]},"egg":{"s":["s"]},"eject":{"s":["s"]},"elementor":{"s":["b"]},"elevator":{"s":["s"]},"ellipsis":{"s":["s"]},"ellipsis-vertical":{"s":["s"]},"ello":{"s":["b"]},"ember":{"s":["b"]},"empire":{"s":["b"]},"envelope":{"s":["s","r"]},"envelope-circle-check":{"s":["s"]},"envelope-open":{"s":["s","r"]},"envelope-open-text":{"s":["s"]},"envelopes-bulk":{"s":["s"]},"envira":{"s":["b"]},"equals":{"s":["s"]},"eraser":{"s":["s"]},"erlang":{"s":["b"]},"ethereum":{"s":["b"]},"ethernet":{"s":["s"]},"etsy":{"s":["b"]},"euro-sign":{"s":["s"]},"evernote":{"s":["b"]},"exclamation":{"s":["s"]},"expand":{"s":["s"]},"expeditedssl":{"s":["b"]},"explosion":{"s":["s"]},"eye":{"s":["s","r"]},"eye-dropper":{"s":["s"]},"eye-low-vision":{"s":["s"]},"eye-slash":{"s":["s","r"]},"f":{"s":["s"]},"face-angry":{"s":["s","r"]},"face-dizzy":{"s":["s","r"]},"face-flushed":{"s":["s","r"]},"face-frown":{"s":["s","r"]},"face-frown-open":{"s":["s","r"]},"face-grimace":{"s":["s","r"]},"face-grin":{"s":["s","r"]},"face-grin-beam":{"s":["s","r"]},"face-grin-beam-sweat":{"s":["s","r"]},"face-grin-hearts":{"s":["s","r"]},"face-grin-squint":{"s":["s","r"]},"face-grin-squint-tears":{"s":["s","r"]},"face-grin-stars":{"s":["s","r"]},"face-grin-tears":{"s":["s","r"]},"face-grin-tongue":{"s":["s","r"]},"face-grin-tongue-squint":{"s":["s","r"]},"face-grin-tongue-wink":{"s":["s","r"]},"face-grin-wide":{"s":["s","r"]},"face-grin-wink":{"s":["s","r"]},"face-kiss":{"s":["s","r"]},"face-kiss-beam":{"s":["s","r"]},"face-kiss-wink-heart":{"s":["s","r"]},"face-laugh":{"s":["s","r"]},"face-laugh-beam":{"s":["s","r"]},"face-laugh-squint":{"s":["s","r"]},"face-laugh-wink":{"s":["s","r"]},"face-meh":{"s":["s","r"]},"face-meh-blank":{"s":["s","r"]},"face-rolling-eyes":{"s":["s","r"]},"face-sad-cry":{"s":["s","r"]},"face-sad-tear":{"s":["s","r"]},"face-smile":{"s":["s","r"]},"face-smile-beam":{"s":["s","r"]},"face-smile-wink":{"s":["s","r"]},"face-surprise":{"s":["s","r"]},"face-tired":{"s":["s","r"]},"facebook":{"s":["b"]},"facebook-f":{"s":["b"]},"facebook-messenger":{"s":["b"]},"fan":{"s":["s"]},"fantasy-flight-games":{"s":["b"]},"faucet":{"s":["s"]},"faucet-drip":{"s":["s"]},"fax":{"s":["s"]},"feather":{"s":["s"]},"feather-pointed":{"s":["s"]},"fedex":{"s":["b"]},"fedora":{"s":["b"]},"ferry":{"s":["s"]},"figma":{"s":["b"]},"file":{"s":["s","r"]},"file-arrow-down":{"s":["s"]},"file-arrow-up":{"s":["s"]},"file-audio":{"s":["s","r"]},"file-circle-check":{"s":["s"]},"file-circle-exclamation":{"s":["s"]},"file-circle-minus":{"s":["s"]},"file-circle-plus":{"s":["s"]},"file-circle-question":{"s":["s"]},"file-circle-xmark":{"s":["s"]},"file-code":{"s":["s","r"]},"file-contract":{"s":["s"]},"file-csv":{"s":["s"]},"file-excel":{"s":["s","r"]},"file-export":{"s":["s"]},"file-image":{"s":["s","r"]},"file-import":{"s":["s"]},"file-invoice":{"s":["s"]},"file-invoice-dollar":{"s":["s"]},"file-lines":{"s":["s","r"]},"file-medical":{"s":["s"]},"file-pdf":{"s":["s","r"]},"file-pen":{"s":["s"]},"file-powerpoint":{"s":["s","r"]},"file-prescription":{"s":["s"]},"file-shield":{"s":["s"]},"file-signature":{"s":["s"]},"file-video":{"s":["s","r"]},"file-waveform":{"s":["s"]},"file-word":{"s":["s","r"]},"file-zipper":{"s":["s","r"]},"fill":{"s":["s"]},"fill-drip":{"s":["s"]},"film":{"s":["s"]},"filter":{"s":["s"]},"filter-circle-dollar":{"s":["s"]},"filter-circle-xmark":{"s":["s"]},"fingerprint":{"s":["s"]},"fire":{"s":["s"]},"fire-burner":{"s":["s"]},"fire-extinguisher":{"s":["s"]},"fire-flame-curved":{"s":["s"]},"fire-flame-simple":{"s":["s"]},"firefox":{"s":["b"]},"firefox-browser":{"s":["b"]},"first-order":{"s":["b"]},"first-order-alt":{"s":["b"]},"firstdraft":{"s":["b"]},"fish":{"s":["s"]},"fish-fins":{"s":["s"]},"flag":{"s":["s","r"]},"flag-checkered":{"s":["s"]},"flag-usa":{"s":["s"]},"flask":{"s":["s"]},"flask-vial":{"s":["s"]},"flickr":{"s":["b"]},"flipboard":{"s":["b"]},"floppy-disk":{"s":["s","r"]},"florin-sign":{"s":["s"]},"flutter":{"s":["b"]},"fly":{"s":["b"]},"folder":{"s":["s","r"]},"folder-closed":{"s":["s","r"]},"folder-minus":{"s":["s"]},"folder-open":{"s":["s","r"]},"folder-plus":{"s":["s"]},"folder-tree":{"s":["s"]},"font":{"s":["s"]},"font-awesome":{"s":["s","r","b"]},"fonticons":{"s":["b"]},"fonticons-fi":{"s":["b"]},"football":{"s":["s"]},"fort-awesome":{"s":["b"]},"fort-awesome-alt":{"s":["b"]},"forumbee":{"s":["b"]},"forward":{"s":["s"]},"forward-fast":{"s":["s"]},"forward-step":{"s":["s"]},"foursquare":{"s":["b"]},"franc-sign":{"s":["s"]},"free-code-camp":{"s":["b"]},"freebsd":{"s":["b"]},"frog":{"s":["s"]},"fulcrum":{"s":["b"]},"futbol":{"s":["s","r"]},"g":{"s":["s"]},"galactic-republic":{"s":["b"]},"galactic-senate":{"s":["b"]},"gamepad":{"s":["s"]},"gas-pump":{"s":["s"]},"gauge":{"s":["s"]},"gauge-high":{"s":["s"]},"gauge-simple":{"s":["s"]},"gauge-simple-high":{"s":["s"]},"gavel":{"s":["s"]},"gear":{"s":["s"]},"gears":{"s":["s"]},"gem":{"s":["s","r"]},"genderless":{"s":["s"]},"get-pocket":{"s":["b"]},"gg":{"s":["b"]},"gg-circle":{"s":["b"]},"ghost":{"s":["s"]},"gift":{"s":["s"]},"gifts":{"s":["s"]},"git":{"s":["b"]},"git-alt":{"s":["b"]},"github":{"s":["b"]},"github-alt":{"s":["b"]},"gitkraken":{"s":["b"]},"gitlab":{"s":["b"]},"gitter":{"s":["b"]},"glass-water":{"s":["s"]},"glass-water-droplet":{"s":["s"]},"glasses":{"s":["s"]},"glide":{"s":["b"]},"glide-g":{"s":["b"]},"globe":{"s":["s"]},"gofore":{"s":["b"]},"golang":{"s":["b"]},"golf-ball-tee":{"s":["s"]},"goodreads":{"s":["b"]},"goodreads-g":{"s":["b"]},"google":{"s":["b"]},"google-drive":{"s":["b"]},"google-pay":{"s":["b"]},"google-play":{"s":["b"]},"google-plus":{"s":["b"]},"google-plus-g":{"s":["b"]},"google-scholar":{"s":["b"]},"google-wallet":{"s":["b"]},"gopuram":{"s":["s"]},"graduation-cap":{"s":["s"]},"gratipay":{"s":["b"]},"grav":{"s":["b"]},"greater-than":{"s":["s"]},"greater-than-equal":{"s":["s"]},"grip":{"s":["s"]},"grip-lines":{"s":["s"]},"grip-lines-vertical":{"s":["s"]},"grip-vertical":{"s":["s"]},"gripfire":{"s":["b"]},"group-arrows-rotate":{"s":["s"]},"grunt":{"s":["b"]},"guarani-sign":{"s":["s"]},"guilded":{"s":["b"]},"guitar":{"s":["s"]},"gulp":{"s":["b"]},"gun":{"s":["s"]},"h":{"s":["s"]},"hacker-news":{"s":["b"]},"hackerrank":{"s":["b"]},"hammer":{"s":["s"]},"hamsa":{"s":["s"]},"hand":{"s":["s","r"]},"hand-back-fist":{"s":["s","r"]},"hand-dots":{"s":["s"]},"hand-fist":{"s":["s"]},"hand-holding":{"s":["s"]},"hand-holding-dollar":{"s":["s"]},"hand-holding-droplet":{"s":["s"]},"hand-holding-hand":{"s":["s"]},"hand-holding-heart":{"s":["s"]},"hand-holding-medical":{"s":["s"]},"hand-lizard":{"s":["s","r"]},"hand-middle-finger":{"s":["s"]},"hand-peace":{"s":["s","r"]},"hand-point-down":{"s":["s","r"]},"hand-point-left":{"s":["s","r"]},"hand-point-right":{"s":["s","r"]},"hand-point-up":{"s":["s","r"]},"hand-pointer":{"s":["s","r"]},"hand-scissors":{"s":["s","r"]},"hand-sparkles":{"s":["s"]},"hand-spock":{"s":["s","r"]},"handcuffs":{"s":["s"]},"hands":{"s":["s"]},"hands-asl-interpreting":{"s":["s"]},"hands-bound":{"s":["s"]},"hands-bubbles":{"s":["s"]},"hands-clapping":{"s":["s"]},"hands-holding":{"s":["s"]},"hands-holding-child":{"s":["s"]},"hands-holding-circle":{"s":["s"]},"hands-praying":{"s":["s"]},"handshake":{"s":["s","r"]},"handshake-angle":{"s":["s"]},"handshake-simple":{"s":["s"]},"handshake-simple-slash":{"s":["s"]},"handshake-slash":{"s":["s"]},"hanukiah":{"s":["s"]},"hard-drive":{"s":["s","r"]},"hashnode":{"s":["b"]},"hashtag":{"s":["s"]},"hat-cowboy":{"s":["s"]},"hat-cowboy-side":{"s":["s"]},"hat-wizard":{"s":["s"]},"head-side-cough":{"s":["s"]},"head-side-cough-slash":{"s":["s"]},"head-side-mask":{"s":["s"]},"head-side-virus":{"s":["s"]},"heading":{"s":["s"]},"headphones":{"s":["s"]},"headphones-simple":{"s":["s"]},"headset":{"s":["s"]},"heart":{"s":["s","r"]},"heart-circle-bolt":{"s":["s"]},"heart-circle-check":{"s":["s"]},"heart-circle-exclamation":{"s":["s"]},"heart-circle-minus":{"s":["s"]},"heart-circle-plus":{"s":["s"]},"heart-circle-xmark":{"s":["s"]},"heart-crack":{"s":["s"]},"heart-pulse":{"s":["s"]},"helicopter":{"s":["s"]},"helicopter-symbol":{"s":["s"]},"helmet-safety":{"s":["s"]},"helmet-un":{"s":["s"]},"highlighter":{"s":["s"]},"hill-avalanche":{"s":["s"]},"hill-rockslide":{"s":["s"]},"hippo":{"s":["s"]},"hips":{"s":["b"]},"hire-a-helper":{"s":["b"]},"hive":{"s":["b"]},"hockey-puck":{"s":["s"]},"holly-berry":{"s":["s"]},"hooli":{"s":["b"]},"hornbill":{"s":["b"]},"horse":{"s":["s"]},"horse-head":{"s":["s"]},"hospital":{"s":["s","r"]},"hospital-user":{"s":["s"]},"hot-tub-person":{"s":["s"]},"hotdog":{"s":["s"]},"hotel":{"s":["s"]},"hotjar":{"s":["b"]},"hourglass":{"s":["s","r"]},"hourglass-end":{"s":["s"]},"hourglass-half":{"s":["s","r"]},"hourglass-start":{"s":["s"]},"house":{"s":["s"]},"house-chimney":{"s":["s"]},"house-chimney-crack":{"s":["s"]},"house-chimney-medical":{"s":["s"]},"house-chimney-user":{"s":["s"]},"house-chimney-window":{"s":["s"]},"house-circle-check":{"s":["s"]},"house-circle-exclamation":{"s":["s"]},"house-circle-xmark":{"s":["s"]},"house-crack":{"s":["s"]},"house-fire":{"s":["s"]},"house-flag":{"s":["s"]},"house-flood-water":{"s":["s"]},"house-flood-water-circle-arrow-right":{"s":["s"]},"house-laptop":{"s":["s"]},"house-lock":{"s":["s"]},"house-medical":{"s":["s"]},"house-medical-circle-check":{"s":["s"]},"house-medical-circle-exclamation":{"s":["s"]},"house-medical-circle-xmark":{"s":["s"]},"house-medical-flag":{"s":["s"]},"house-signal":{"s":["s"]},"house-tsunami":{"s":["s"]},"house-user":{"s":["s"]},"houzz":{"s":["b"]},"hryvnia-sign":{"s":["s"]},"html5":{"s":["b"]},"hubspot":{"s":["b"]},"hurricane":{"s":["s"]},"i":{"s":["s"]},"i-cursor":{"s":["s"]},"ice-cream":{"s":["s"]},"icicles":{"s":["s"]},"icons":{"s":["s"]},"id-badge":{"s":["s","r"]},"id-card":{"s":["s","r"]},"id-card-clip":{"s":["s"]},"ideal":{"s":["b"]},"igloo":{"s":["s"]},"image":{"s":["s","r"]},"image-portrait":{"s":["s"]},"images":{"s":["s","r"]},"imdb":{"s":["b"]},"inbox":{"s":["s"]},"indent":{"s":["s"]},"indian-rupee-sign":{"s":["s"]},"industry":{"s":["s"]},"infinity":{"s":["s"]},"info":{"s":["s"]},"instagram":{"s":["b"]},"instalod":{"s":["b"]},"intercom":{"s":["b"]},"internet-explorer":{"s":["b"]},"invision":{"s":["b"]},"ioxhost":{"s":["b"]},"italic":{"s":["s"]},"itch-io":{"s":["b"]},"itunes":{"s":["b"]},"itunes-note":{"s":["b"]},"j":{"s":["s"]},"jar":{"s":["s"]},"jar-wheat":{"s":["s"]},"java":{"s":["b"]},"jedi":{"s":["s"]},"jedi-order":{"s":["b"]},"jenkins":{"s":["b"]},"jet-fighter":{"s":["s"]},"jet-fighter-up":{"s":["s"]},"jira":{"s":["b"]},"joget":{"s":["b"]},"joint":{"s":["s"]},"joomla":{"s":["b"]},"js":{"s":["b"]},"jsfiddle":{"s":["b"]},"jug-detergent":{"s":["s"]},"jxl":{"s":["b"]},"k":{"s":["s"]},"kaaba":{"s":["s"]},"kaggle":{"s":["b"]},"key":{"s":["s"]},"keybase":{"s":["b"]},"keyboard":{"s":["s","r"]},"keycdn":{"s":["b"]},"khanda":{"s":["s"]},"kickstarter":{"s":["b"]},"kickstarter-k":{"s":["b"]},"kip-sign":{"s":["s"]},"kit-medical":{"s":["s"]},"kitchen-set":{"s":["s"]},"kiwi-bird":{"s":["s"]},"korvue":{"s":["b"]},"l":{"s":["s"]},"land-mine-on":{"s":["s"]},"landmark":{"s":["s"]},"landmark-dome":{"s":["s"]},"landmark-flag":{"s":["s"]},"language":{"s":["s"]},"laptop":{"s":["s"]},"laptop-code":{"s":["s"]},"laptop-file":{"s":["s"]},"laptop-medical":{"s":["s"]},"laravel":{"s":["b"]},"lari-sign":{"s":["s"]},"lastfm":{"s":["b"]},"layer-group":{"s":["s"]},"leaf":{"s":["s"]},"leanpub":{"s":["b"]},"left-long":{"s":["s"]},"left-right":{"s":["s"]},"lemon":{"s":["s","r"]},"less":{"s":["b"]},"less-than":{"s":["s"]},"less-than-equal":{"s":["s"]},"letterboxd":{"s":["b"]},"life-ring":{"s":["s","r"]},"lightbulb":{"s":["s","r"]},"line":{"s":["b"]},"lines-leaning":{"s":["s"]},"link":{"s":["s"]},"link-slash":{"s":["s"]},"linkedin":{"s":["b"]},"linkedin-in":{"s":["b"]},"linode":{"s":["b"]},"linux":{"s":["b"]},"lira-sign":{"s":["s"]},"list":{"s":["s"]},"list-check":{"s":["s"]},"list-ol":{"s":["s"]},"list-ul":{"s":["s"]},"litecoin-sign":{"s":["s"]},"location-arrow":{"s":["s"]},"location-crosshairs":{"s":["s"]},"location-dot":{"s":["s"]},"location-pin":{"s":["s"]},"location-pin-lock":{"s":["s"]},"lock":{"s":["s"]},"lock-open":{"s":["s"]},"locust":{"s":["s"]},"lungs":{"s":["s"]},"lungs-virus":{"s":["s"]},"lyft":{"s":["b"]},"m":{"s":["s"]},"magento":{"s":["b"]},"magnet":{"s":["s"]},"magnifying-glass":{"s":["s"]},"magnifying-glass-arrow-right":{"s":["s"]},"magnifying-glass-chart":{"s":["s"]},"magnifying-glass-dollar":{"s":["s"]},"magnifying-glass-location":{"s":["s"]},"magnifying-glass-minus":{"s":["s"]},"magnifying-glass-plus":{"s":["s"]},"mailchimp":{"s":["b"]},"manat-sign":{"s":["s"]},"mandalorian":{"s":["b"]},"map":{"s":["s","r"]},"map-location":{"s":["s"]},"map-location-dot":{"s":["s"]},"map-pin":{"s":["s"]},"markdown":{"s":["b"]},"marker":{"s":["s"]},"mars":{"s":["s"]},"mars-and-venus":{"s":["s"]},"mars-and-venus-burst":{"s":["s"]},"mars-double":{"s":["s"]},"mars-stroke":{"s":["s"]},"mars-stroke-right":{"s":["s"]},"mars-stroke-up":{"s":["s"]},"martini-glass":{"s":["s"]},"martini-glass-citrus":{"s":["s"]},"martini-glass-empty":{"s":["s"]},"mask":{"s":["s"]},"mask-face":{"s":["s"]},"mask-ventilator":{"s":["s"]},"masks-theater":{"s":["s"]},"mastodon":{"s":["b"]},"mattress-pillow":{"s":["s"]},"maxcdn":{"s":["b"]},"maximize":{"s":["s"]},"mdb":{"s":["b"]},"medal":{"s":["s"]},"medapps":{"s":["b"]},"medium":{"s":["b"]},"medrt":{"s":["b"]},"meetup":{"s":["b"]},"megaport":{"s":["b"]},"memory":{"s":["s"]},"mendeley":{"s":["b"]},"menorah":{"s":["s"]},"mercury":{"s":["s"]},"message":{"s":["s","r"]},"meta":{"s":["b"]},"meteor":{"s":["s"]},"microblog":{"s":["b"]},"microchip":{"s":["s"]},"microphone":{"s":["s"]},"microphone-lines":{"s":["s"]},"microphone-lines-slash":{"s":["s"]},"microphone-slash":{"s":["s"]},"microscope":{"s":["s"]},"microsoft":{"s":["b"]},"mill-sign":{"s":["s"]},"minimize":{"s":["s"]},"mintbit":{"s":["b"]},"minus":{"s":["s"]},"mitten":{"s":["s"]},"mix":{"s":["b"]},"mixcloud":{"s":["b"]},"mixer":{"s":["b"]},"mizuni":{"s":["b"]},"mobile":{"s":["s"]},"mobile-button":{"s":["s"]},"mobile-retro":{"s":["s"]},"mobile-screen":{"s":["s"]},"mobile-screen-button":{"s":["s"]},"modx":{"s":["b"]},"monero":{"s":["b"]},"money-bill":{"s":["s"]},"money-bill-1":{"s":["s","r"]},"money-bill-1-wave":{"s":["s"]},"money-bill-transfer":{"s":["s"]},"money-bill-trend-up":{"s":["s"]},"money-bill-wave":{"s":["s"]},"money-bill-wheat":{"s":["s"]},"money-bills":{"s":["s"]},"money-check":{"s":["s"]},"money-check-dollar":{"s":["s"]},"monument":{"s":["s"]},"moon":{"s":["s","r"]},"mortar-pestle":{"s":["s"]},"mosque":{"s":["s"]},"mosquito":{"s":["s"]},"mosquito-net":{"s":["s"]},"motorcycle":{"s":["s"]},"mound":{"s":["s"]},"mountain":{"s":["s"]},"mountain-city":{"s":["s"]},"mountain-sun":{"s":["s"]},"mug-hot":{"s":["s"]},"mug-saucer":{"s":["s"]},"music":{"s":["s"]},"n":{"s":["s"]},"naira-sign":{"s":["s"]},"napster":{"s":["b"]},"neos":{"s":["b"]},"network-wired":{"s":["s"]},"neuter":{"s":["s"]},"newspaper":{"s":["s","r"]},"nfc-directional":{"s":["b"]},"nfc-symbol":{"s":["b"]},"nimblr":{"s":["b"]},"node":{"s":["b"]},"node-js":{"s":["b"]},"not-equal":{"s":["s"]},"notdef":{"s":["s"]},"note-sticky":{"s":["s","r"]},"notes-medical":{"s":["s"]},"npm":{"s":["b"]},"ns8":{"s":["b"]},"nutritionix":{"s":["b"]},"o":{"s":["s"]},"object-group":{"s":["s","r"]},"object-ungroup":{"s":["s","r"]},"octopus-deploy":{"s":["b"]},"odnoklassniki":{"s":["b"]},"odysee":{"s":["b"]},"oil-can":{"s":["s"]},"oil-well":{"s":["s"]},"old-republic":{"s":["b"]},"om":{"s":["s"]},"opencart":{"s":["b"]},"openid":{"s":["b"]},"opensuse":{"s":["b"]},"opera":{"s":["b"]},"optin-monster":{"s":["b"]},"orcid":{"s":["b"]},"osi":{"s":["b"]},"otter":{"s":["s"]},"outdent":{"s":["s"]},"p":{"s":["s"]},"padlet":{"s":["b"]},"page4":{"s":["b"]},"pagelines":{"s":["b"]},"pager":{"s":["s"]},"paint-roller":{"s":["s"]},"paintbrush":{"s":["s"]},"palette":{"s":["s"]},"palfed":{"s":["b"]},"pallet":{"s":["s"]},"panorama":{"s":["s"]},"paper-plane":{"s":["s","r"]},"paperclip":{"s":["s"]},"parachute-box":{"s":["s"]},"paragraph":{"s":["s"]},"passport":{"s":["s"]},"paste":{"s":["s","r"]},"patreon":{"s":["b"]},"pause":{"s":["s"]},"paw":{"s":["s"]},"paypal":{"s":["b"]},"peace":{"s":["s"]},"pen":{"s":["s"]},"pen-clip":{"s":["s"]},"pen-fancy":{"s":["s"]},"pen-nib":{"s":["s"]},"pen-ruler":{"s":["s"]},"pen-to-square":{"s":["s","r"]},"pencil":{"s":["s"]},"people-arrows":{"s":["s"]},"people-carry-box":{"s":["s"]},"people-group":{"s":["s"]},"people-line":{"s":["s"]},"people-pulling":{"s":["s"]},"people-robbery":{"s":["s"]},"people-roof":{"s":["s"]},"pepper-hot":{"s":["s"]},"perbyte":{"s":["b"]},"percent":{"s":["s"]},"periscope":{"s":["b"]},"person":{"s":["s"]},"person-arrow-down-to-line":{"s":["s"]},"person-arrow-up-from-line":{"s":["s"]},"person-biking":{"s":["s"]},"person-booth":{"s":["s"]},"person-breastfeeding":{"s":["s"]},"person-burst":{"s":["s"]},"person-cane":{"s":["s"]},"person-chalkboard":{"s":["s"]},"person-circle-check":{"s":["s"]},"person-circle-exclamation":{"s":["s"]},"person-circle-minus":{"s":["s"]},"person-circle-plus":{"s":["s"]},"person-circle-question":{"s":["s"]},"person-circle-xmark":{"s":["s"]},"person-digging":{"s":["s"]},"person-dots-from-line":{"s":["s"]},"person-dress":{"s":["s"]},"person-dress-burst":{"s":["s"]},"person-drowning":{"s":["s"]},"person-falling":{"s":["s"]},"person-falling-burst":{"s":["s"]},"person-half-dress":{"s":["s"]},"person-harassing":{"s":["s"]},"person-hiking":{"s":["s"]},"person-military-pointing":{"s":["s"]},"person-military-rifle":{"s":["s"]},"person-military-to-person":{"s":["s"]},"person-praying":{"s":["s"]},"person-pregnant":{"s":["s"]},"person-rays":{"s":["s"]},"person-rifle":{"s":["s"]},"person-running":{"s":["s"]},"person-shelter":{"s":["s"]},"person-skating":{"s":["s"]},"person-skiing":{"s":["s"]},"person-skiing-nordic":{"s":["s"]},"person-snowboarding":{"s":["s"]},"person-swimming":{"s":["s"]},"person-through-window":{"s":["s"]},"person-walking":{"s":["s"]},"person-walking-arrow-loop-left":{"s":["s"]},"person-walking-arrow-right":{"s":["s"]},"person-walking-dashed-line-arrow-right":{"s":["s"]},"person-walking-luggage":{"s":["s"]},"person-walking-with-cane":{"s":["s"]},"peseta-sign":{"s":["s"]},"peso-sign":{"s":["s"]},"phabricator":{"s":["b"]},"phoenix-framework":{"s":["b"]},"phoenix-squadron":{"s":["b"]},"phone":{"s":["s"]},"phone-flip":{"s":["s"]},"phone-slash":{"s":["s"]},"phone-volume":{"s":["s"]},"photo-film":{"s":["s"]},"php":{"s":["b"]},"pied-piper":{"s":["b"]},"pied-piper-alt":{"s":["b"]},"pied-piper-hat":{"s":["b"]},"pied-piper-pp":{"s":["b"]},"piggy-bank":{"s":["s"]},"pills":{"s":["s"]},"pinterest":{"s":["b"]},"pinterest-p":{"s":["b"]},"pix":{"s":["b"]},"pixiv":{"s":["b"]},"pizza-slice":{"s":["s"]},"place-of-worship":{"s":["s"]},"plane":{"s":["s"]},"plane-arrival":{"s":["s"]},"plane-circle-check":{"s":["s"]},"plane-circle-exclamation":{"s":["s"]},"plane-circle-xmark":{"s":["s"]},"plane-departure":{"s":["s"]},"plane-lock":{"s":["s"]},"plane-slash":{"s":["s"]},"plane-up":{"s":["s"]},"plant-wilt":{"s":["s"]},"plate-wheat":{"s":["s"]},"play":{"s":["s"]},"playstation":{"s":["b"]},"plug":{"s":["s"]},"plug-circle-bolt":{"s":["s"]},"plug-circle-check":{"s":["s"]},"plug-circle-exclamation":{"s":["s"]},"plug-circle-minus":{"s":["s"]},"plug-circle-plus":{"s":["s"]},"plug-circle-xmark":{"s":["s"]},"plus":{"s":["s"]},"plus-minus":{"s":["s"]},"podcast":{"s":["s"]},"poo":{"s":["s"]},"poo-storm":{"s":["s"]},"poop":{"s":["s"]},"power-off":{"s":["s"]},"prescription":{"s":["s"]},"prescription-bottle":{"s":["s"]},"prescription-bottle-medical":{"s":["s"]},"print":{"s":["s"]},"product-hunt":{"s":["b"]},"pump-medical":{"s":["s"]},"pump-soap":{"s":["s"]},"pushed":{"s":["b"]},"puzzle-piece":{"s":["s"]},"python":{"s":["b"]},"q":{"s":["s"]},"qq":{"s":["b"]},"qrcode":{"s":["s"]},"question":{"s":["s"]},"quinscape":{"s":["b"]},"quora":{"s":["b"]},"quote-left":{"s":["s"]},"quote-right":{"s":["s"]},"r":{"s":["s"]},"r-project":{"s":["b"]},"radiation":{"s":["s"]},"radio":{"s":["s"]},"rainbow":{"s":["s"]},"ranking-star":{"s":["s"]},"raspberry-pi":{"s":["b"]},"ravelry":{"s":["b"]},"react":{"s":["b"]},"reacteurope":{"s":["b"]},"readme":{"s":["b"]},"rebel":{"s":["b"]},"receipt":{"s":["s"]},"record-vinyl":{"s":["s"]},"rectangle-ad":{"s":["s"]},"rectangle-list":{"s":["s","r"]},"rectangle-xmark":{"s":["s","r"]},"recycle":{"s":["s"]},"red-river":{"s":["b"]},"reddit":{"s":["b"]},"reddit-alien":{"s":["b"]},"redhat":{"s":["b"]},"registered":{"s":["s","r"]},"renren":{"s":["b"]},"repeat":{"s":["s"]},"reply":{"s":["s"]},"reply-all":{"s":["s"]},"replyd":{"s":["b"]},"republican":{"s":["s"]},"researchgate":{"s":["b"]},"resolving":{"s":["b"]},"restroom":{"s":["s"]},"retweet":{"s":["s"]},"rev":{"s":["b"]},"ribbon":{"s":["s"]},"right-from-bracket":{"s":["s"]},"right-left":{"s":["s"]},"right-long":{"s":["s"]},"right-to-bracket":{"s":["s"]},"ring":{"s":["s"]},"road":{"s":["s"]},"road-barrier":{"s":["s"]},"road-bridge":{"s":["s"]},"road-circle-check":{"s":["s"]},"road-circle-exclamation":{"s":["s"]},"road-circle-xmark":{"s":["s"]},"road-lock":{"s":["s"]},"road-spikes":{"s":["s"]},"robot":{"s":["s"]},"rocket":{"s":["s"]},"rocketchat":{"s":["b"]},"rockrms":{"s":["b"]},"rotate":{"s":["s"]},"rotate-left":{"s":["s"]},"rotate-right":{"s":["s"]},"route":{"s":["s"]},"rss":{"s":["s"]},"ruble-sign":{"s":["s"]},"rug":{"s":["s"]},"ruler":{"s":["s"]},"ruler-combined":{"s":["s"]},"ruler-horizontal":{"s":["s"]},"ruler-vertical":{"s":["s"]},"rupee-sign":{"s":["s"]},"rupiah-sign":{"s":["s"]},"rust":{"s":["b"]},"s":{"s":["s"]},"sack-dollar":{"s":["s"]},"sack-xmark":{"s":["s"]},"safari":{"s":["b"]},"sailboat":{"s":["s"]},"salesforce":{"s":["b"]},"sass":{"s":["b"]},"satellite":{"s":["s"]},"satellite-dish":{"s":["s"]},"scale-balanced":{"s":["s"]},"scale-unbalanced":{"s":["s"]},"scale-unbalanced-flip":{"s":["s"]},"schlix":{"s":["b"]},"school":{"s":["s"]},"school-circle-check":{"s":["s"]},"school-circle-exclamation":{"s":["s"]},"school-circle-xmark":{"s":["s"]},"school-flag":{"s":["s"]},"school-lock":{"s":["s"]},"scissors":{"s":["s"]},"screenpal":{"s":["b"]},"screwdriver":{"s":["s"]},"screwdriver-wrench":{"s":["s"]},"scribd":{"s":["b"]},"scroll":{"s":["s"]},"scroll-torah":{"s":["s"]},"sd-card":{"s":["s"]},"searchengin":{"s":["b"]},"section":{"s":["s"]},"seedling":{"s":["s"]},"sellcast":{"s":["b"]},"sellsy":{"s":["b"]},"server":{"s":["s"]},"servicestack":{"s":["b"]},"shapes":{"s":["s"]},"share":{"s":["s"]},"share-from-square":{"s":["s","r"]},"share-nodes":{"s":["s"]},"sheet-plastic":{"s":["s"]},"shekel-sign":{"s":["s"]},"shield":{"s":["s"]},"shield-cat":{"s":["s"]},"shield-dog":{"s":["s"]},"shield-halved":{"s":["s"]},"shield-heart":{"s":["s"]},"shield-virus":{"s":["s"]},"ship":{"s":["s"]},"shirt":{"s":["s"]},"shirtsinbulk":{"s":["b"]},"shoe-prints":{"s":["s"]},"shoelace":{"s":["b"]},"shop":{"s":["s"]},"shop-lock":{"s":["s"]},"shop-slash":{"s":["s"]},"shopify":{"s":["b"]},"shopware":{"s":["b"]},"shower":{"s":["s"]},"shrimp":{"s":["s"]},"shuffle":{"s":["s"]},"shuttle-space":{"s":["s"]},"sign-hanging":{"s":["s"]},"signal":{"s":["s"]},"signal-messenger":{"s":["b"]},"signature":{"s":["s"]},"signs-post":{"s":["s"]},"sim-card":{"s":["s"]},"simplybuilt":{"s":["b"]},"sink":{"s":["s"]},"sistrix":{"s":["b"]},"sitemap":{"s":["s"]},"sith":{"s":["b"]},"sitrox":{"s":["b"]},"sketch":{"s":["b"]},"skull":{"s":["s"]},"skull-crossbones":{"s":["s"]},"skyatlas":{"s":["b"]},"skype":{"s":["b"]},"slack":{"s":["b"]},"slash":{"s":["s"]},"sleigh":{"s":["s"]},"sliders":{"s":["s"]},"slideshare":{"s":["b"]},"smog":{"s":["s"]},"smoking":{"s":["s"]},"snapchat":{"s":["b"]},"snowflake":{"s":["s","r"]},"snowman":{"s":["s"]},"snowplow":{"s":["s"]},"soap":{"s":["s"]},"socks":{"s":["s"]},"solar-panel":{"s":["s"]},"sort":{"s":["s"]},"sort-down":{"s":["s"]},"sort-up":{"s":["s"]},"soundcloud":{"s":["b"]},"sourcetree":{"s":["b"]},"spa":{"s":["s"]},"space-awesome":{"s":["b"]},"spaghetti-monster-flying":{"s":["s"]},"speakap":{"s":["b"]},"speaker-deck":{"s":["b"]},"spell-check":{"s":["s"]},"spider":{"s":["s"]},"spinner":{"s":["s"]},"splotch":{"s":["s"]},"spoon":{"s":["s"]},"spotify":{"s":["b"]},"spray-can":{"s":["s"]},"spray-can-sparkles":{"s":["s"]},"square":{"s":["s","r"]},"square-arrow-up-right":{"s":["s"]},"square-behance":{"s":["b"]},"square-caret-down":{"s":["s","r"]},"square-caret-left":{"s":["s","r"]},"square-caret-right":{"s":["s","r"]},"square-caret-up":{"s":["s","r"]},"square-check":{"s":["s","r"]},"square-dribbble":{"s":["b"]},"square-envelope":{"s":["s"]},"square-facebook":{"s":["b"]},"square-font-awesome":{"s":["b"]},"square-font-awesome-stroke":{"s":["b"]},"square-full":{"s":["s","r"]},"square-git":{"s":["b"]},"square-github":{"s":["b"]},"square-gitlab":{"s":["b"]},"square-google-plus":{"s":["b"]},"square-h":{"s":["s"]},"square-hacker-news":{"s":["b"]},"square-instagram":{"s":["b"]},"square-js":{"s":["b"]},"square-lastfm":{"s":["b"]},"square-letterboxd":{"s":["b"]},"square-minus":{"s":["s","r"]},"square-nfi":{"s":["s"]},"square-odnoklassniki":{"s":["b"]},"square-parking":{"s":["s"]},"square-pen":{"s":["s"]},"square-person-confined":{"s":["s"]},"square-phone":{"s":["s"]},"square-phone-flip":{"s":["s"]},"square-pied-piper":{"s":["b"]},"square-pinterest":{"s":["b"]},"square-plus":{"s":["s","r"]},"square-poll-horizontal":{"s":["s"]},"square-poll-vertical":{"s":["s"]},"square-reddit":{"s":["b"]},"square-root-variable":{"s":["s"]},"square-rss":{"s":["s"]},"square-share-nodes":{"s":["s"]},"square-snapchat":{"s":["b"]},"square-steam":{"s":["b"]},"square-threads":{"s":["b"]},"square-tumblr":{"s":["b"]},"square-twitter":{"s":["b"]},"square-up-right":{"s":["s"]},"square-upwork":{"s":["b"]},"square-viadeo":{"s":["b"]},"square-vimeo":{"s":["b"]},"square-virus":{"s":["s"]},"square-web-awesome":{"s":["b"]},"square-web-awesome-stroke":{"s":["b"]},"square-whatsapp":{"s":["b"]},"square-x-twitter":{"s":["b"]},"square-xing":{"s":["b"]},"square-xmark":{"s":["s"]},"square-youtube":{"s":["b"]},"squarespace":{"s":["b"]},"stack-exchange":{"s":["b"]},"stack-overflow":{"s":["b"]},"stackpath":{"s":["b"]},"staff-snake":{"s":["s"]},"stairs":{"s":["s"]},"stamp":{"s":["s"]},"stapler":{"s":["s"]},"star":{"s":["s","r"]},"star-and-crescent":{"s":["s"]},"star-half":{"s":["s","r"]},"star-half-stroke":{"s":["s","r"]},"star-of-david":{"s":["s"]},"star-of-life":{"s":["s"]},"staylinked":{"s":["b"]},"steam":{"s":["b"]},"steam-symbol":{"s":["b"]},"sterling-sign":{"s":["s"]},"stethoscope":{"s":["s"]},"sticker-mule":{"s":["b"]},"stop":{"s":["s"]},"stopwatch":{"s":["s"]},"stopwatch-20":{"s":["s"]},"store":{"s":["s"]},"store-slash":{"s":["s"]},"strava":{"s":["b"]},"street-view":{"s":["s"]},"strikethrough":{"s":["s"]},"stripe":{"s":["b"]},"stripe-s":{"s":["b"]},"stroopwafel":{"s":["s"]},"stubber":{"s":["b"]},"studiovinari":{"s":["b"]},"stumbleupon":{"s":["b"]},"stumbleupon-circle":{"s":["b"]},"subscript":{"s":["s"]},"suitcase":{"s":["s"]},"suitcase-medical":{"s":["s"]},"suitcase-rolling":{"s":["s"]},"sun":{"s":["s","r"]},"sun-plant-wilt":{"s":["s"]},"superpowers":{"s":["b"]},"superscript":{"s":["s"]},"supple":{"s":["b"]},"suse":{"s":["b"]},"swatchbook":{"s":["s"]},"swift":{"s":["b"]},"symfony":{"s":["b"]},"synagogue":{"s":["s"]},"syringe":{"s":["s"]},"t":{"s":["s"]},"table":{"s":["s"]},"table-cells":{"s":["s"]},"table-cells-column-lock":{"s":["s"]},"table-cells-large":{"s":["s"]},"table-cells-row-lock":{"s":["s"]},"table-cells-row-unlock":{"s":["s"]},"table-columns":{"s":["s"]},"table-list":{"s":["s"]},"table-tennis-paddle-ball":{"s":["s"]},"tablet":{"s":["s"]},"tablet-button":{"s":["s"]},"tablet-screen-button":{"s":["s"]},"tablets":{"s":["s"]},"tachograph-digital":{"s":["s"]},"tag":{"s":["s"]},"tags":{"s":["s"]},"tape":{"s":["s"]},"tarp":{"s":["s"]},"tarp-droplet":{"s":["s"]},"taxi":{"s":["s"]},"teamspeak":{"s":["b"]},"teeth":{"s":["s"]},"teeth-open":{"s":["s"]},"telegram":{"s":["b"]},"temperature-arrow-down":{"s":["s"]},"temperature-arrow-up":{"s":["s"]},"temperature-empty":{"s":["s"]},"temperature-full":{"s":["s"]},"temperature-half":{"s":["s"]},"temperature-high":{"s":["s"]},"temperature-low":{"s":["s"]},"temperature-quarter":{"s":["s"]},"temperature-three-quarters":{"s":["s"]},"tencent-weibo":{"s":["b"]},"tenge-sign":{"s":["s"]},"tent":{"s":["s"]},"tent-arrow-down-to-line":{"s":["s"]},"tent-arrow-left-right":{"s":["s"]},"tent-arrow-turn-left":{"s":["s"]},"tent-arrows-down":{"s":["s"]},"tents":{"s":["s"]},"terminal":{"s":["s"]},"text-height":{"s":["s"]},"text-slash":{"s":["s"]},"text-width":{"s":["s"]},"the-red-yeti":{"s":["b"]},"themeco":{"s":["b"]},"themeisle":{"s":["b"]},"thermometer":{"s":["s"]},"think-peaks":{"s":["b"]},"threads":{"s":["b"]},"thumbs-down":{"s":["s","r"]},"thumbs-up":{"s":["s","r"]},"thumbtack":{"s":["s"]},"thumbtack-slash":{"s":["s"]},"ticket":{"s":["s"]},"ticket-simple":{"s":["s"]},"tiktok":{"s":["b"]},"timeline":{"s":["s"]},"toggle-off":{"s":["s"]},"toggle-on":{"s":["s"]},"toilet":{"s":["s"]},"toilet-paper":{"s":["s"]},"toilet-paper-slash":{"s":["s"]},"toilet-portable":{"s":["s"]},"toilets-portable":{"s":["s"]},"toolbox":{"s":["s"]},"tooth":{"s":["s"]},"torii-gate":{"s":["s"]},"tornado":{"s":["s"]},"tower-broadcast":{"s":["s"]},"tower-cell":{"s":["s"]},"tower-observation":{"s":["s"]},"tractor":{"s":["s"]},"trade-federation":{"s":["b"]},"trademark":{"s":["s"]},"traffic-light":{"s":["s"]},"trailer":{"s":["s"]},"train":{"s":["s"]},"train-subway":{"s":["s"]},"train-tram":{"s":["s"]},"transgender":{"s":["s"]},"trash":{"s":["s"]},"trash-arrow-up":{"s":["s"]},"trash-can":{"s":["s","r"]},"trash-can-arrow-up":{"s":["s"]},"tree":{"s":["s"]},"tree-city":{"s":["s"]},"trello":{"s":["b"]},"triangle-exclamation":{"s":["s"]},"trophy":{"s":["s"]},"trowel":{"s":["s"]},"trowel-bricks":{"s":["s"]},"truck":{"s":["s"]},"truck-arrow-right":{"s":["s"]},"truck-droplet":{"s":["s"]},"truck-fast":{"s":["s"]},"truck-field":{"s":["s"]},"truck-field-un":{"s":["s"]},"truck-front":{"s":["s"]},"truck-medical":{"s":["s"]},"truck-monster":{"s":["s"]},"truck-moving":{"s":["s"]},"truck-pickup":{"s":["s"]},"truck-plane":{"s":["s"]},"truck-ramp-box":{"s":["s"]},"tty":{"s":["s"]},"tumblr":{"s":["b"]},"turkish-lira-sign":{"s":["s"]},"turn-down":{"s":["s"]},"turn-up":{"s":["s"]},"tv":{"s":["s"]},"twitch":{"s":["b"]},"twitter":{"s":["b"]},"typo3":{"s":["b"]},"u":{"s":["s"]},"uber":{"s":["b"]},"ubuntu":{"s":["b"]},"uikit":{"s":["b"]},"umbraco":{"s":["b"]},"umbrella":{"s":["s"]},"umbrella-beach":{"s":["s"]},"uncharted":{"s":["b"]},"underline":{"s":["s"]},"uniregistry":{"s":["b"]},"unity":{"s":["b"]},"universal-access":{"s":["s"]},"unlock":{"s":["s"]},"unlock-keyhole":{"s":["s"]},"unsplash":{"s":["b"]},"untappd":{"s":["b"]},"up-down":{"s":["s"]},"up-down-left-right":{"s":["s"]},"up-long":{"s":["s"]},"up-right-and-down-left-from-center":{"s":["s"]},"up-right-from-square":{"s":["s"]},"upload":{"s":["s"]},"ups":{"s":["b"]},"upwork":{"s":["b"]},"usb":{"s":["b"]},"user":{"s":["s","r"]},"user-astronaut":{"s":["s"]},"user-check":{"s":["s"]},"user-clock":{"s":["s"]},"user-doctor":{"s":["s"]},"user-gear":{"s":["s"]},"user-graduate":{"s":["s"]},"user-group":{"s":["s"]},"user-injured":{"s":["s"]},"user-large":{"s":["s"]},"user-large-slash":{"s":["s"]},"user-lock":{"s":["s"]},"user-minus":{"s":["s"]},"user-ninja":{"s":["s"]},"user-nurse":{"s":["s"]},"user-pen":{"s":["s"]},"user-plus":{"s":["s"]},"user-secret":{"s":["s"]},"user-shield":{"s":["s"]},"user-slash":{"s":["s"]},"user-tag":{"s":["s"]},"user-tie":{"s":["s"]},"user-xmark":{"s":["s"]},"users":{"s":["s"]},"users-between-lines":{"s":["s"]},"users-gear":{"s":["s"]},"users-line":{"s":["s"]},"users-rays":{"s":["s"]},"users-rectangle":{"s":["s"]},"users-slash":{"s":["s"]},"users-viewfinder":{"s":["s"]},"usps":{"s":["b"]},"ussunnah":{"s":["b"]},"utensils":{"s":["s"]},"v":{"s":["s"]},"vaadin":{"s":["b"]},"van-shuttle":{"s":["s"]},"vault":{"s":["s"]},"vector-square":{"s":["s"]},"venus":{"s":["s"]},"venus-double":{"s":["s"]},"venus-mars":{"s":["s"]},"vest":{"s":["s"]},"vest-patches":{"s":["s"]},"viacoin":{"s":["b"]},"viadeo":{"s":["b"]},"vial":{"s":["s"]},"vial-circle-check":{"s":["s"]},"vial-virus":{"s":["s"]},"vials":{"s":["s"]},"viber":{"s":["b"]},"video":{"s":["s"]},"video-slash":{"s":["s"]},"vihara":{"s":["s"]},"vimeo":{"s":["b"]},"vimeo-v":{"s":["b"]},"vine":{"s":["b"]},"virus":{"s":["s"]},"virus-covid":{"s":["s"]},"virus-covid-slash":{"s":["s"]},"virus-slash":{"s":["s"]},"viruses":{"s":["s"]},"vk":{"s":["b"]},"vnv":{"s":["b"]},"voicemail":{"s":["s"]},"volcano":{"s":["s"]},"volleyball":{"s":["s"]},"volume-high":{"s":["s"]},"volume-low":{"s":["s"]},"volume-off":{"s":["s"]},"volume-xmark":{"s":["s"]},"vr-cardboard":{"s":["s"]},"vuejs":{"s":["b"]},"w":{"s":["s"]},"walkie-talkie":{"s":["s"]},"wallet":{"s":["s"]},"wand-magic":{"s":["s"]},"wand-magic-sparkles":{"s":["s"]},"wand-sparkles":{"s":["s"]},"warehouse":{"s":["s"]},"watchman-monitoring":{"s":["b"]},"water":{"s":["s"]},"water-ladder":{"s":["s"]},"wave-square":{"s":["s"]},"waze":{"s":["b"]},"web-awesome":{"s":["s","b"]},"webflow":{"s":["b"]},"weebly":{"s":["b"]},"weibo":{"s":["b"]},"weight-hanging":{"s":["s"]},"weight-scale":{"s":["s"]},"weixin":{"s":["b"]},"whatsapp":{"s":["b"]},"wheat-awn":{"s":["s"]},"wheat-awn-circle-exclamation":{"s":["s"]},"wheelchair":{"s":["s"]},"wheelchair-move":{"s":["s"]},"whiskey-glass":{"s":["s"]},"whmcs":{"s":["b"]},"wifi":{"s":["s"]},"wikipedia-w":{"s":["b"]},"wind":{"s":["s"]},"window-maximize":{"s":["s","r"]},"window-minimize":{"s":["s","r"]},"window-restore":{"s":["s","r"]},"windows":{"s":["b"]},"wine-bottle":{"s":["s"]},"wine-glass":{"s":["s"]},"wine-glass-empty":{"s":["s"]},"wirsindhandwerk":{"s":["b"]},"wix":{"s":["b"]},"wizards-of-the-coast":{"s":["b"]},"wodu":{"s":["b"]},"wolf-pack-battalion":{"s":["b"]},"won-sign":{"s":["s"]},"wordpress":{"s":["b"]},"wordpress-simple":{"s":["b"]},"worm":{"s":["s"]},"wpbeginner":{"s":["b"]},"wpexplorer":{"s":["b"]},"wpforms":{"s":["b"]},"wpressr":{"s":["b"]},"wrench":{"s":["s"]},"x":{"s":["s"]},"x-ray":{"s":["s"]},"x-twitter":{"s":["b"]},"xbox":{"s":["b"]},"xing":{"s":["b"]},"xmark":{"s":["s"]},"xmarks-lines":{"s":["s"]},"y":{"s":["s"]},"y-combinator":{"s":["b"]},"yahoo":{"s":["b"]},"yammer":{"s":["b"]},"yandex":{"s":["b"]},"yandex-international":{"s":["b"]},"yarn":{"s":["b"]},"yelp":{"s":["b"]},"yen-sign":{"s":["s"]},"yin-yang":{"s":["s"]},"yoast":{"s":["b"]},"youtube":{"s":["b"]},"z":{"s":["s"]},"zhihu":{"s":["b"]}} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Query.php b/wp-content/themes/kenta/lotta-framework/src/Query.php new file mode 100644 index 0000000000..0a436b6f12 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Query.php @@ -0,0 +1,154 @@ + $user ) { + $users[ $user->data->ID ] = $user->data->user_nicename; + } + + wp_reset_postdata(); + + return $users; + } + + /** + * Get Available Custom Post Types or Taxonomies + * + * @param $query + * @param bool $exclude_defaults + * + * @return array + */ + public function customPostTypes( $query, $exclude_defaults = true ) { + // Taxonomies + if ( 'tax' === $query ) { + $custom_types = get_taxonomies( [ 'show_in_nav_menus' => true ], 'objects' ); + // Post Types + } else { + $custom_types = get_post_types( [ 'show_in_nav_menus' => true ], 'objects' ); + } + + $custom_type_list = []; + + foreach ( $custom_types as $key => $value ) { + if ( $exclude_defaults ) { + if ( $key != 'post' && $key != 'page' && $key != 'category' && $key != 'post_tag' ) { + $custom_type_list[ $key ] = $value->label; + } + } else { + $custom_type_list[ $key ] = $value->label; + } + } + + return $custom_type_list; + } + + + /** + * Get Terms of Taxonomy + * + * @param $slug + * @param int $per_page + * @param bool $hide_empty + * + * @return array|null + */ + public function termsByTaxonomy( $slug, $per_page = - 1, $hide_empty = false ) { + // Exclude WooCommerce product + if ( ( 'product_cat' === $slug || 'product_tag' === $slug ) && ! class_exists( 'WooCommerce' ) ) { + return []; + } + + $query = get_terms( $slug, [ 'hide_empty' => $hide_empty, 'posts_per_page' => $per_page ] ); + $taxonomies = []; + + foreach ( $query as $tax ) { + $taxonomies[ $tax->term_id ] = $tax->name; + } + + wp_reset_postdata(); + + return $taxonomies; + } + + /** + * Get Posts of Post Type + * + * @param $slug + * @param int $per_page + * + * @return array + */ + public function postsByPostType( $slug, $per_page = - 1 ) { + $query = get_posts( [ 'post_type' => $slug, 'posts_per_page' => $per_page ] ); + $posts = []; + + foreach ( $query as $post ) { + $posts[ $post->ID ] = $post->post_title; + } + + wp_reset_postdata(); + + return $posts; + } + + /** + * Query post list + * + * @param string $post_type + * @param int $limit + * @param string $search + * + * @return array + */ + public function postList( $post_type = 'any', $limit = - 1, $search = '' ) { + + global $wpdb; + $where = ''; + $data = []; + + if ( - 1 == $limit ) { + $limit = ''; + } elseif ( 0 == $limit ) { + $limit = "limit 0,1"; + } else { + $limit = $wpdb->prepare( " limit 0,%d", esc_sql( $limit ) ); + } + + if ( 'any' === $post_type ) { + $in_search_post_types = get_post_types( [ 'exclude_from_search' => false ] ); + if ( empty( $in_search_post_types ) ) { + $where .= ' AND 1=0 '; + } else { + $where .= " AND {$wpdb->posts}.post_type IN ('" . join( "', '", + array_map( 'esc_sql', $in_search_post_types ) ) . "')"; + } + } elseif ( ! empty( $post_type ) ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_type = %s", esc_sql( $post_type ) ); + } + + if ( ! empty( $search ) ) { + $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s", '%' . esc_sql( $search ) . '%' ); + } + + $query = "select post_title,ID from $wpdb->posts where post_status = 'publish' $where $limit"; + $results = $wpdb->get_results( $query ); + if ( ! empty( $results ) ) { + foreach ( $results as $row ) { + $data[ $row->ID ] = $row->post_title; + } + } + + return $data; + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Typography/Fonts.php b/wp-content/themes/kenta/lotta-framework/src/Typography/Fonts.php new file mode 100644 index 0000000000..2fe79d7b8d --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Typography/Fonts.php @@ -0,0 +1,346 @@ + $font ) { + $src = $font['src'] ?? []; + + $custom_fonts[ $font['id'] ] = array( + 'f' => $font['family'], + 's' => $font['stack'] ?? '', + 'u' => is_array( $src ) ? $src : [], + 'v' => $font['variants'] ?? '400', + ); + } + + return $custom_fonts; + } + + /** + * Return system fonts array + * + * @return mixed|void + */ + public static function system_fonts() { + + $system_fonts = array( + 'inherit' => array( 'f' => 'Default', 's' => '' ), + 'sans' => array( + 'f' => 'Sans', + 's' => 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"' + ), + 'serif' => array( 'f' => 'Serif', 's' => 'ui-serif, Georgia, Cambria, "Times New Roman", Times, serif' ), + 'mono' => array( + 'f' => 'Mono', + 's' => 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace' + ), + ); + + $fonts_json = file_get_contents( dirname( __FILE__ ) . '/system-fonts.json' ); + + // Change the object to a multidimensional array. + $fonts_array = json_decode( $fonts_json, true ); + + foreach ( $fonts_array['items'] as $key => $font ) { + $system_fonts[ $font['id'] ] = array( + 'f' => $font['label'], + 's' => $font['stack'] + ); + } + + return apply_filters( 'lotta_filter_system_fonts', $system_fonts ); + } + + /** + * Return google fonts array + * + * @return array + */ + public static function google_fonts() { + $google_fonts = array(); + + $fonts_json = file_get_contents( dirname( __FILE__ ) . '/google-fonts.json' ); + + // Change the object to a multidimensional array. + $fonts_array = json_decode( $fonts_json, true ); + + // Format the variants array for easier use. + foreach ( $fonts_array['items'] as $key => $font ) { + $font['v'] = array_values( $font['v'] ); + + $fonts_array['items'][ $key ] = $font; + } + + // Change the array key to the font's ID. + foreach ( $fonts_array['items'] as $font ) { + $id = trim( strtolower( str_replace( ' ', '-', $font['f'] ) ) ); + + $google_fonts[ $id ] = $font; + } + + return apply_filters( 'lotta_filter_google_fonts', $google_fonts ); + } + + /** + * Get google fonts url, Combine multiple google font in one URL + * + * @param $font_list + * @param array $subsets + * + * @return string + */ + public static function google_fonts_url( $font_list, array $subsets = array() ) { + + $google_fonts = self::google_fonts(); + $fonts = []; + + foreach ( $font_list as $name => $args ) { + if ( ! empty( $name ) && isset( $google_fonts[ $name ] ) ) { + $font = $google_fonts[ $name ]; + // Add font variants. + $fonts[ $font['f'] ?? $name ] = $args['variants'] ?? []; + } + } + + /* URL */ + $base_url = 'https://fonts.googleapis.com/css'; + $font_args = array(); + $family = array(); + + /* Format Each Font Family in Array */ + foreach ( $fonts as $font_name => $font_weight ) { + $font_name = str_replace( ' ', '+', $font_name ); + if ( ! empty( $font_weight ) ) { + if ( is_array( $font_weight ) ) { + $font_weight = implode( ',', $font_weight ); + } + $font_family = explode( ',', $font_name ); + $font_family = str_replace( "'", '', self::get_prop( $font_family, 0 ) ); + $family[] = trim( $font_family . ':' . rawurlencode( trim( $font_weight ) ) ); + } else { + $family[] = trim( $font_name ); + } + } + + /* Only return URL if font family defined. */ + if ( ! empty( $family ) ) { + /* Make Font Family a String */ + $family = implode( '|', $family ); + /* Add font family in args */ + $font_args['family'] = $family; + /* Add font subsets in args */ + if ( ! empty( $subsets ) ) { + /* format subsets to string */ + if ( is_array( $subsets ) ) { + $subsets = implode( ',', $subsets ); + } + $font_args['subset'] = rawurlencode( trim( $subsets ) ); + } + $font_args['display'] = 'fallback'; + + return add_query_arg( $font_args, $base_url ); + } + + return ''; + } + + /** + * @param $array + * @param $prop + * @param null $default + * + * @return mixed|string|null + */ + protected static function get_prop( $array, $prop, $default = null ) { + + if ( ! is_array( $array ) && ! ( is_object( $array ) && $array instanceof \ArrayAccess ) ) { + return $default; + } + + if ( isset( $array[ $prop ] ) ) { + $value = $array[ $prop ]; + } else { + $value = ''; + } + + return empty( $value ) && null !== $default ? $default : $value; + } + + /** + * Add font to fonts stack from typography + * + * @param $fonts + * @param $typography + * + * @return array|mixed + */ + public static function addTypography( $fonts, $typography ) { + $custom = Fonts::custom_fonts(); + $google = Fonts::google_fonts(); + + $family = $typography['family'] ?? 'inherit'; + $variant = $typography['variant'] ?? '400'; + + if ( isset( $custom[ $family ] ) ) { + $variant = $custom[ $family ]['v'] ?? '400'; + } + + if ( isset( $google[ $family ] ) ) { + $variants = $google[ $family ]['v'] ?? []; + $variant = in_array( $variant, $variants ) ? $variant : ( $variants[0] ?? '400' ); + } + + return self::add( $fonts, $family, $variant ); + } + + /** + * Add font to stack + * + * @param $fonts + * @param $name + * @param array $variants + * + * @return array|mixed + */ + public static function add( $fonts, $name, $variants = array() ) { + + if ( 'inherit' == $name ) { + return $fonts; + } + + if ( ! is_array( $variants ) ) { + // For multiple variant selected for fonts. + $variants = explode( ',', str_replace( 'italic', 'i', $variants ) ); + } + + if ( is_array( $variants ) ) { + $key = array_search( 'inherit', $variants ); + if ( false !== $key ) { + + unset( $variants[ $key ] ); + + if ( ! in_array( 400, $variants ) ) { + $variants[] = 400; + } + } + } elseif ( 'inherit' == $variants ) { + $variants = 400; + } + + if ( isset( $fonts[ $name ] ) ) { + foreach ( (array) $variants as $variant ) { + if ( ! in_array( $variant, $fonts[ $name ]['variants'] ) ) { + $fonts[ $name ]['variants'][] = $variant; + } + } + } else { + $fonts[ $name ] = array( + 'variants' => (array) $variants, + ); + } + + return $fonts; + } + + /** + * Enqueue typography scripts + * + * @param $id + * @param false $version + */ + public static function enqueue_scripts( $id, $version = false ) { + $google_font_url = self::get_webfont_url( $id ); + + if ( $google_font_url !== '' ) { + wp_enqueue_style( $id, $google_font_url, array(), $version ); + } else { + wp_register_style( $id, false ); + wp_enqueue_style( $id ); + } + + wp_add_inline_style( $id, self::dynamic_font_face_css( $id ) ); + } + + /** + * Get enqueued font list + * + * @param $id + * + * @return array|mixed + */ + public static function get_font_list( $id ) { + + $queued = apply_filters( $id, Typography::getQueued() ); + + $font_list = []; + + foreach ( $queued as $setting ) { + $font_list = self::addTypography( $font_list, CZ::get( $setting ) ); + } + + return $font_list; + } + + /** + * Get web font url + * + * @param $id + * + * @return string + */ + public static function get_webfont_url( $id ) { + + $font_list = self::get_font_list( $id ); + + $web_font_url = self::google_fonts_url( $font_list ); + if ( $web_font_url !== '' && Utils::app()->isSupport( 'local_webfonts' ) ) { + $web_font_url = wptt_get_webfont_url( $web_font_url ); + } + + return $web_font_url; + } + + /** + * Generate dynamic font face css + * + * @param $id + * + * @return mixed + */ + protected static function dynamic_font_face_css( $id ) { + + $font_list = self::get_font_list( $id ); + $custom_fonts = self::custom_fonts(); + $font_faces = []; + + foreach ( $font_list as $f => $args ) { + if ( isset( $custom_fonts[ $f ] ) ) { + $font = $custom_fonts[ $f ]; + + $font_faces[] = [ + 'font-weight' => $font['v'], + 'font-family' => "'{$font['f']}'", + 'src' => $font['u'], + ]; + } + } + + return Css::fontFaces( apply_filters( 'lotta_filter_dynamic_font_faces', $font_faces ) ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Typography/google-fonts.json b/wp-content/themes/kenta/lotta-framework/src/Typography/google-fonts.json new file mode 100644 index 0000000000..4c7b00aad2 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Typography/google-fonts.json @@ -0,0 +1 @@ +{"kind":"webfonts#webfontList","items":[{"f":"ABeeZee","c":"sans-serif","v":["400","400i"]},{"f":"ADLaM Display","c":"display","v":["400"]},{"f":"AR One Sans","c":"sans-serif","v":["400","500","600","700"]},{"f":"Abel","c":"sans-serif","v":["400"]},{"f":"Abhaya Libre","c":"serif","v":["400","500","600","700","800"]},{"f":"Aboreto","c":"display","v":["400"]},{"f":"Abril Fatface","c":"display","v":["400"]},{"f":"Abyssinica SIL","c":"serif","v":["400"]},{"f":"Aclonica","c":"sans-serif","v":["400"]},{"f":"Acme","c":"sans-serif","v":["400"]},{"f":"Actor","c":"sans-serif","v":["400"]},{"f":"Adamina","c":"serif","v":["400"]},{"f":"Advent Pro","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Afacad","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Afacad Flux","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Agbalumo","c":"display","v":["400"]},{"f":"Agdasima","c":"sans-serif","v":["400","700"]},{"f":"Aguafina Script","c":"handwriting","v":["400"]},{"f":"Akatab","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"Akaya Kanadaka","c":"display","v":["400"]},{"f":"Akaya Telivigala","c":"display","v":["400"]},{"f":"Akronim","c":"display","v":["400"]},{"f":"Akshar","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Aladin","c":"display","v":["400"]},{"f":"Alata","c":"sans-serif","v":["400"]},{"f":"Alatsi","c":"sans-serif","v":["400"]},{"f":"Albert Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Aldrich","c":"sans-serif","v":["400"]},{"f":"Alef","c":"sans-serif","v":["400","700"]},{"f":"Alegreya","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Alegreya SC","c":"serif","v":["400","400i","500","500i","700","700i","800","800i","900","900i"]},{"f":"Alegreya Sans","c":"sans-serif","v":["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"]},{"f":"Alegreya Sans SC","c":"sans-serif","v":["100","100i","300","300i","400","400i","500","500i","700","700i","800","800i","900","900i"]},{"f":"Aleo","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Alex Brush","c":"handwriting","v":["400"]},{"f":"Alexandria","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Alfa Slab One","c":"display","v":["400"]},{"f":"Alice","c":"serif","v":["400"]},{"f":"Alike","c":"serif","v":["400"]},{"f":"Alike Angular","c":"serif","v":["400"]},{"f":"Alkalami","c":"serif","v":["400"]},{"f":"Alkatra","c":"display","v":["400","500","600","700"]},{"f":"Allan","c":"display","v":["400","700"]},{"f":"Allerta","c":"sans-serif","v":["400"]},{"f":"Allerta Stencil","c":"sans-serif","v":["400"]},{"f":"Allison","c":"handwriting","v":["400"]},{"f":"Allura","c":"handwriting","v":["400"]},{"f":"Almarai","c":"sans-serif","v":["300","400","700","800"]},{"f":"Almendra","c":"serif","v":["400","400i","700","700i"]},{"f":"Almendra Display","c":"display","v":["400"]},{"f":"Almendra SC","c":"serif","v":["400"]},{"f":"Alumni Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Alumni Sans Collegiate One","c":"sans-serif","v":["400","400i"]},{"f":"Alumni Sans Inline One","c":"display","v":["400","400i"]},{"f":"Alumni Sans Pinstripe","c":"sans-serif","v":["400","400i"]},{"f":"Amarante","c":"display","v":["400"]},{"f":"Amaranth","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Amatic SC","c":"handwriting","v":["400","700"]},{"f":"Amethysta","c":"serif","v":["400"]},{"f":"Amiko","c":"sans-serif","v":["400","600","700"]},{"f":"Amiri","c":"serif","v":["400","400i","700","700i"]},{"f":"Amiri Quran","c":"serif","v":["400"]},{"f":"Amita","c":"handwriting","v":["400","700"]},{"f":"Anaheim","c":"sans-serif","v":["400","500","600","700","800"]},{"f":"Andada Pro","c":"serif","v":["400","500","600","700","800","400i","500i","600i","700i","800i"]},{"f":"Andika","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Anek Bangla","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Devanagari","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Gujarati","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Gurmukhi","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Kannada","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Latin","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Malayalam","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Odia","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Tamil","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Anek Telugu","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Angkor","c":"display","v":["400"]},{"f":"Annapurna SIL","c":"serif","v":["400","700"]},{"f":"Annie Use Your Telescope","c":"handwriting","v":["400"]},{"f":"Anonymous Pro","c":"monospace","v":["400","400i","700","700i"]},{"f":"Anta","c":"sans-serif","v":["400"]},{"f":"Antic","c":"sans-serif","v":["400"]},{"f":"Antic Didone","c":"serif","v":["400"]},{"f":"Antic Slab","c":"serif","v":["400"]},{"f":"Anton","c":"sans-serif","v":["400"]},{"f":"Anton SC","c":"sans-serif","v":["400"]},{"f":"Antonio","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"Anuphan","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"Anybody","c":"display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Aoboshi One","c":"serif","v":["400"]},{"f":"Arapey","c":"serif","v":["400","400i"]},{"f":"Arbutus","c":"serif","v":["400"]},{"f":"Arbutus Slab","c":"serif","v":["400"]},{"f":"Architects Daughter","c":"handwriting","v":["400"]},{"f":"Archivo","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Archivo Black","c":"sans-serif","v":["400"]},{"f":"Archivo Narrow","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Are You Serious","c":"handwriting","v":["400"]},{"f":"Aref Ruqaa","c":"serif","v":["400","700"]},{"f":"Aref Ruqaa Ink","c":"serif","v":["400","700"]},{"f":"Arima","c":"display","v":["100","200","300","400","500","600","700"]},{"f":"Arimo","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Arizonia","c":"handwriting","v":["400"]},{"f":"Armata","c":"sans-serif","v":["400"]},{"f":"Arsenal","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Arsenal SC","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Artifika","c":"serif","v":["400"]},{"f":"Arvo","c":"serif","v":["400","400i","700","700i"]},{"f":"Arya","c":"sans-serif","v":["400","700"]},{"f":"Asap","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Asap Condensed","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Asar","c":"serif","v":["400"]},{"f":"Asset","c":"display","v":["400"]},{"f":"Assistant","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Astloch","c":"display","v":["400","700"]},{"f":"Asul","c":"sans-serif","v":["400","700"]},{"f":"Athiti","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Atkinson Hyperlegible","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Atma","c":"display","v":["300","400","500","600","700"]},{"f":"Atomic Age","c":"display","v":["400"]},{"f":"Aubrey","c":"display","v":["400"]},{"f":"Audiowide","c":"display","v":["400"]},{"f":"Autour One","c":"display","v":["400"]},{"f":"Average","c":"serif","v":["400"]},{"f":"Average Sans","c":"sans-serif","v":["400"]},{"f":"Averia Gruesa Libre","c":"display","v":["400"]},{"f":"Averia Libre","c":"display","v":["300","300i","400","400i","700","700i"]},{"f":"Averia Sans Libre","c":"display","v":["300","300i","400","400i","700","700i"]},{"f":"Averia Serif Libre","c":"display","v":["300","300i","400","400i","700","700i"]},{"f":"Azeret Mono","c":"monospace","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"B612","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"B612 Mono","c":"monospace","v":["400","400i","700","700i"]},{"f":"BIZ UDGothic","c":"sans-serif","v":["400","700"]},{"f":"BIZ UDMincho","c":"serif","v":["400","700"]},{"f":"BIZ UDPGothic","c":"sans-serif","v":["400","700"]},{"f":"BIZ UDPMincho","c":"serif","v":["400","700"]},{"f":"Babylonica","c":"handwriting","v":["400"]},{"f":"Bacasime Antique","c":"serif","v":["400"]},{"f":"Bad Script","c":"handwriting","v":["400"]},{"f":"Bagel Fat One","c":"display","v":["400"]},{"f":"Bahiana","c":"display","v":["400"]},{"f":"Bahianita","c":"display","v":["400"]},{"f":"Bai Jamjuree","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Bakbak One","c":"display","v":["400"]},{"f":"Ballet","c":"handwriting","v":["400"]},{"f":"Baloo 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Bhai 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Bhaijaan 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Bhaina 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Chettan 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Da 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Paaji 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Tamma 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Tammudu 2","c":"display","v":["400","500","600","700","800"]},{"f":"Baloo Thambi 2","c":"display","v":["400","500","600","700","800"]},{"f":"Balsamiq Sans","c":"display","v":["400","400i","700","700i"]},{"f":"Balthazar","c":"serif","v":["400"]},{"f":"Bangers","c":"display","v":["400"]},{"f":"Barlow","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Barlow Condensed","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Barlow Semi Condensed","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Barriecito","c":"display","v":["400"]},{"f":"Barrio","c":"display","v":["400"]},{"f":"Basic","c":"sans-serif","v":["400"]},{"f":"Baskervville","c":"serif","v":["400","400i"]},{"f":"Baskervville SC","c":"serif","v":["400"]},{"f":"Battambang","c":"display","v":["100","300","400","700","900"]},{"f":"Baumans","c":"display","v":["400"]},{"f":"Bayon","c":"sans-serif","v":["400"]},{"f":"Be Vietnam Pro","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Beau Rivage","c":"handwriting","v":["400"]},{"f":"Bebas Neue","c":"sans-serif","v":["400"]},{"f":"Beiruti","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Belanosima","c":"sans-serif","v":["400","600","700"]},{"f":"Belgrano","c":"serif","v":["400"]},{"f":"Bellefair","c":"serif","v":["400"]},{"f":"Belleza","c":"sans-serif","v":["400"]},{"f":"Bellota","c":"display","v":["300","300i","400","400i","700","700i"]},{"f":"Bellota Text","c":"display","v":["300","300i","400","400i","700","700i"]},{"f":"BenchNine","c":"sans-serif","v":["300","400","700"]},{"f":"Benne","c":"serif","v":["400"]},{"f":"Bentham","c":"serif","v":["400"]},{"f":"Berkshire Swash","c":"handwriting","v":["400"]},{"f":"Besley","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Beth Ellen","c":"handwriting","v":["400"]},{"f":"Bevan","c":"serif","v":["400","400i"]},{"f":"BhuTuka Expanded One","c":"serif","v":["400"]},{"f":"Big Shoulders Display","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Big Shoulders Inline Display","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Big Shoulders Inline Text","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Big Shoulders Stencil Display","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Big Shoulders Stencil Text","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Big Shoulders Text","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Bigelow Rules","c":"display","v":["400"]},{"f":"Bigshot One","c":"display","v":["400"]},{"f":"Bilbo","c":"handwriting","v":["400"]},{"f":"Bilbo Swash Caps","c":"handwriting","v":["400"]},{"f":"BioRhyme","c":"serif","v":["200","300","400","500","600","700","800"]},{"f":"BioRhyme Expanded","c":"serif","v":["200","300","400","700","800"]},{"f":"Birthstone","c":"handwriting","v":["400"]},{"f":"Birthstone Bounce","c":"handwriting","v":["400","500"]},{"f":"Biryani","c":"sans-serif","v":["200","300","400","600","700","800","900"]},{"f":"Bitter","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Black And White Picture","c":"display","v":["400"]},{"f":"Black Han Sans","c":"sans-serif","v":["400"]},{"f":"Black Ops One","c":"display","v":["400"]},{"f":"Blaka","c":"display","v":["400"]},{"f":"Blaka Hollow","c":"display","v":["400"]},{"f":"Blaka Ink","c":"display","v":["400"]},{"f":"Blinker","c":"sans-serif","v":["100","200","300","400","600","700","800","900"]},{"f":"Bodoni Moda","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Bodoni Moda SC","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Bokor","c":"display","v":["400"]},{"f":"Bona Nova","c":"serif","v":["400","400i","700"]},{"f":"Bona Nova SC","c":"serif","v":["400","400i","700"]},{"f":"Bonbon","c":"handwriting","v":["400"]},{"f":"Bonheur Royale","c":"handwriting","v":["400"]},{"f":"Boogaloo","c":"display","v":["400"]},{"f":"Borel","c":"handwriting","v":["400"]},{"f":"Bowlby One","c":"display","v":["400"]},{"f":"Bowlby One SC","c":"display","v":["400"]},{"f":"Braah One","c":"sans-serif","v":["400"]},{"f":"Brawler","c":"serif","v":["400","700"]},{"f":"Bree Serif","c":"serif","v":["400"]},{"f":"Bricolage Grotesque","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Bruno Ace","c":"display","v":["400"]},{"f":"Bruno Ace SC","c":"display","v":["400"]},{"f":"Brygada 1918","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Bubblegum Sans","c":"display","v":["400"]},{"f":"Bubbler One","c":"sans-serif","v":["400"]},{"f":"Buda","c":"display","v":["300"]},{"f":"Buenard","c":"serif","v":["400","700"]},{"f":"Bungee","c":"display","v":["400"]},{"f":"Bungee Hairline","c":"display","v":["400"]},{"f":"Bungee Inline","c":"display","v":["400"]},{"f":"Bungee Outline","c":"display","v":["400"]},{"f":"Bungee Shade","c":"display","v":["400"]},{"f":"Bungee Spice","c":"display","v":["400"]},{"f":"Bungee Tint","c":"display","v":["400"]},{"f":"Butcherman","c":"display","v":["400"]},{"f":"Butterfly Kids","c":"handwriting","v":["400"]},{"f":"Cabin","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Cabin Condensed","c":"sans-serif","v":["400","500","600","700"]},{"f":"Cabin Sketch","c":"display","v":["400","700"]},{"f":"Cactus Classical Serif","c":"serif","v":["400"]},{"f":"Caesar Dressing","c":"display","v":["400"]},{"f":"Cagliostro","c":"sans-serif","v":["400"]},{"f":"Cairo","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Cairo Play","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Caladea","c":"serif","v":["400","400i","700","700i"]},{"f":"Calistoga","c":"display","v":["400"]},{"f":"Calligraffitti","c":"handwriting","v":["400"]},{"f":"Cambay","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Cambo","c":"serif","v":["400"]},{"f":"Candal","c":"sans-serif","v":["400"]},{"f":"Cantarell","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Cantata One","c":"serif","v":["400"]},{"f":"Cantora One","c":"sans-serif","v":["400"]},{"f":"Caprasimo","c":"display","v":["400"]},{"f":"Capriola","c":"sans-serif","v":["400"]},{"f":"Caramel","c":"handwriting","v":["400"]},{"f":"Carattere","c":"handwriting","v":["400"]},{"f":"Cardo","c":"serif","v":["400","400i","700"]},{"f":"Carlito","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Carme","c":"sans-serif","v":["400"]},{"f":"Carrois Gothic","c":"sans-serif","v":["400"]},{"f":"Carrois Gothic SC","c":"sans-serif","v":["400"]},{"f":"Carter One","c":"display","v":["400"]},{"f":"Castoro","c":"serif","v":["400","400i"]},{"f":"Castoro Titling","c":"display","v":["400"]},{"f":"Catamaran","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Caudex","c":"serif","v":["400","400i","700","700i"]},{"f":"Caveat","c":"handwriting","v":["400","500","600","700"]},{"f":"Caveat Brush","c":"handwriting","v":["400"]},{"f":"Cedarville Cursive","c":"handwriting","v":["400"]},{"f":"Ceviche One","c":"display","v":["400"]},{"f":"Chakra Petch","c":"sans-serif","v":["300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Changa","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Changa One","c":"display","v":["400","400i"]},{"f":"Chango","c":"display","v":["400"]},{"f":"Charis SIL","c":"serif","v":["400","400i","700","700i"]},{"f":"Charm","c":"handwriting","v":["400","700"]},{"f":"Charmonman","c":"handwriting","v":["400","700"]},{"f":"Chathura","c":"sans-serif","v":["100","300","400","700","800"]},{"f":"Chau Philomene One","c":"sans-serif","v":["400","400i"]},{"f":"Chela One","c":"display","v":["400"]},{"f":"Chelsea Market","c":"display","v":["400"]},{"f":"Chenla","c":"display","v":["400"]},{"f":"Cherish","c":"handwriting","v":["400"]},{"f":"Cherry Bomb One","c":"display","v":["400"]},{"f":"Cherry Cream Soda","c":"display","v":["400"]},{"f":"Cherry Swash","c":"display","v":["400","700"]},{"f":"Chewy","c":"display","v":["400"]},{"f":"Chicle","c":"display","v":["400"]},{"f":"Chilanka","c":"handwriting","v":["400"]},{"f":"Chivo","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Chivo Mono","c":"monospace","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Chocolate Classical Sans","c":"sans-serif","v":["400"]},{"f":"Chokokutai","c":"display","v":["400"]},{"f":"Chonburi","c":"display","v":["400"]},{"f":"Cinzel","c":"serif","v":["400","500","600","700","800","900"]},{"f":"Cinzel Decorative","c":"display","v":["400","700","900"]},{"f":"Clicker Script","c":"handwriting","v":["400"]},{"f":"Climate Crisis","c":"display","v":["400"]},{"f":"Coda","c":"display","v":["400","800"]},{"f":"Codystar","c":"display","v":["300","400"]},{"f":"Coiny","c":"display","v":["400"]},{"f":"Combo","c":"display","v":["400"]},{"f":"Comfortaa","c":"display","v":["300","400","500","600","700"]},{"f":"Comforter","c":"handwriting","v":["400"]},{"f":"Comforter Brush","c":"handwriting","v":["400"]},{"f":"Comic Neue","c":"handwriting","v":["300","300i","400","400i","700","700i"]},{"f":"Coming Soon","c":"handwriting","v":["400"]},{"f":"Comme","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Commissioner","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Concert One","c":"display","v":["400"]},{"f":"Condiment","c":"handwriting","v":["400"]},{"f":"Content","c":"display","v":["400","700"]},{"f":"Contrail One","c":"display","v":["400"]},{"f":"Convergence","c":"sans-serif","v":["400"]},{"f":"Cookie","c":"handwriting","v":["400"]},{"f":"Copse","c":"serif","v":["400"]},{"f":"Corben","c":"display","v":["400","700"]},{"f":"Corinthia","c":"handwriting","v":["400","700"]},{"f":"Cormorant","c":"serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Cormorant Garamond","c":"serif","v":["300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Cormorant Infant","c":"serif","v":["300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Cormorant SC","c":"serif","v":["300","400","500","600","700"]},{"f":"Cormorant Unicase","c":"serif","v":["300","400","500","600","700"]},{"f":"Cormorant Upright","c":"serif","v":["300","400","500","600","700"]},{"f":"Courgette","c":"handwriting","v":["400"]},{"f":"Courier Prime","c":"monospace","v":["400","400i","700","700i"]},{"f":"Cousine","c":"monospace","v":["400","400i","700","700i"]},{"f":"Coustard","c":"serif","v":["400","900"]},{"f":"Covered By Your Grace","c":"handwriting","v":["400"]},{"f":"Crafty Girls","c":"handwriting","v":["400"]},{"f":"Creepster","c":"display","v":["400"]},{"f":"Crete Round","c":"serif","v":["400","400i"]},{"f":"Crimson Pro","c":"serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Crimson Text","c":"serif","v":["400","400i","600","600i","700","700i"]},{"f":"Croissant One","c":"display","v":["400"]},{"f":"Crushed","c":"display","v":["400"]},{"f":"Cuprum","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Cute Font","c":"display","v":["400"]},{"f":"Cutive","c":"serif","v":["400"]},{"f":"Cutive Mono","c":"monospace","v":["400"]},{"f":"DM Mono","c":"monospace","v":["300","300i","400","400i","500","500i"]},{"f":"DM Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"DM Serif Display","c":"serif","v":["400","400i"]},{"f":"DM Serif Text","c":"serif","v":["400","400i"]},{"f":"Dai Banna SIL","c":"serif","v":["300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Damion","c":"handwriting","v":["400"]},{"f":"Dancing Script","c":"handwriting","v":["400","500","600","700"]},{"f":"Danfo","c":"serif","v":["400"]},{"f":"Dangrek","c":"display","v":["400"]},{"f":"Darker Grotesque","c":"sans-serif","v":["300","400","500","600","700","800","900"]},{"f":"Darumadrop One","c":"display","v":["400"]},{"f":"David Libre","c":"serif","v":["400","500","700"]},{"f":"Dawning of a New Day","c":"handwriting","v":["400"]},{"f":"Days One","c":"sans-serif","v":["400"]},{"f":"Dekko","c":"handwriting","v":["400"]},{"f":"Dela Gothic One","c":"display","v":["400"]},{"f":"Delicious Handrawn","c":"handwriting","v":["400"]},{"f":"Delius","c":"handwriting","v":["400"]},{"f":"Delius Swash Caps","c":"handwriting","v":["400"]},{"f":"Delius Unicase","c":"handwriting","v":["400","700"]},{"f":"Della Respira","c":"serif","v":["400"]},{"f":"Denk One","c":"sans-serif","v":["400"]},{"f":"Devonshire","c":"handwriting","v":["400"]},{"f":"Dhurjati","c":"sans-serif","v":["400"]},{"f":"Didact Gothic","c":"sans-serif","v":["400"]},{"f":"Diphylleia","c":"serif","v":["400"]},{"f":"Diplomata","c":"display","v":["400"]},{"f":"Diplomata SC","c":"display","v":["400"]},{"f":"Do Hyeon","c":"sans-serif","v":["400"]},{"f":"Dokdo","c":"display","v":["400"]},{"f":"Domine","c":"serif","v":["400","500","600","700"]},{"f":"Donegal One","c":"serif","v":["400"]},{"f":"Dongle","c":"sans-serif","v":["300","400","700"]},{"f":"Doppio One","c":"sans-serif","v":["400"]},{"f":"Dorsa","c":"sans-serif","v":["400"]},{"f":"Dosis","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"DotGothic16","c":"sans-serif","v":["400"]},{"f":"Doto","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Dr Sugiyama","c":"handwriting","v":["400"]},{"f":"Duru Sans","c":"sans-serif","v":["400"]},{"f":"DynaPuff","c":"display","v":["400","500","600","700"]},{"f":"Dynalight","c":"display","v":["400"]},{"f":"EB Garamond","c":"serif","v":["400","500","600","700","800","400i","500i","600i","700i","800i"]},{"f":"Eagle Lake","c":"handwriting","v":["400"]},{"f":"East Sea Dokdo","c":"handwriting","v":["400"]},{"f":"Eater","c":"display","v":["400"]},{"f":"Economica","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Eczar","c":"serif","v":["400","500","600","700","800"]},{"f":"Edu AU VIC WA NT Dots","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu AU VIC WA NT Guides","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu AU VIC WA NT Hand","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu AU VIC WA NT Pre","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu NSW ACT Foundation","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu QLD Beginner","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu SA Beginner","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu TAS Beginner","c":"handwriting","v":["400","500","600","700"]},{"f":"Edu VIC WA NT Beginner","c":"handwriting","v":["400","500","600","700"]},{"f":"El Messiri","c":"sans-serif","v":["400","500","600","700"]},{"f":"Electrolize","c":"sans-serif","v":["400"]},{"f":"Elsie","c":"display","v":["400","900"]},{"f":"Elsie Swash Caps","c":"display","v":["400","900"]},{"f":"Emblema One","c":"display","v":["400"]},{"f":"Emilys Candy","c":"display","v":["400"]},{"f":"Encode Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Encode Sans Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Encode Sans Expanded","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Encode Sans SC","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Encode Sans Semi Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Encode Sans Semi Expanded","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Engagement","c":"handwriting","v":["400"]},{"f":"Englebert","c":"sans-serif","v":["400"]},{"f":"Enriqueta","c":"serif","v":["400","500","600","700"]},{"f":"Ephesis","c":"handwriting","v":["400"]},{"f":"Epilogue","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Erica One","c":"display","v":["400"]},{"f":"Esteban","c":"serif","v":["400"]},{"f":"Estonia","c":"handwriting","v":["400"]},{"f":"Euphoria Script","c":"handwriting","v":["400"]},{"f":"Ewert","c":"display","v":["400"]},{"f":"Exo","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Exo 2","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Expletus Sans","c":"display","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Explora","c":"handwriting","v":["400"]},{"f":"Faculty Glyphic","c":"sans-serif","v":["400"]},{"f":"Fahkwang","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Familjen Grotesk","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Fanwood Text","c":"serif","v":["400","400i"]},{"f":"Farro","c":"sans-serif","v":["300","400","500","700"]},{"f":"Farsan","c":"display","v":["400"]},{"f":"Fascinate","c":"display","v":["400"]},{"f":"Fascinate Inline","c":"display","v":["400"]},{"f":"Faster One","c":"display","v":["400"]},{"f":"Fasthand","c":"display","v":["400"]},{"f":"Fauna One","c":"serif","v":["400"]},{"f":"Faustina","c":"serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Federant","c":"display","v":["400"]},{"f":"Federo","c":"sans-serif","v":["400"]},{"f":"Felipa","c":"handwriting","v":["400"]},{"f":"Fenix","c":"serif","v":["400"]},{"f":"Festive","c":"handwriting","v":["400"]},{"f":"Figtree","c":"sans-serif","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Finger Paint","c":"display","v":["400"]},{"f":"Finlandica","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Fira Code","c":"monospace","v":["300","400","500","600","700"]},{"f":"Fira Mono","c":"monospace","v":["400","500","700"]},{"f":"Fira Sans","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Fira Sans Condensed","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Fira Sans Extra Condensed","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Fjalla One","c":"sans-serif","v":["400"]},{"f":"Fjord One","c":"serif","v":["400"]},{"f":"Flamenco","c":"display","v":["300","400"]},{"f":"Flavors","c":"display","v":["400"]},{"f":"Fleur De Leah","c":"handwriting","v":["400"]},{"f":"Flow Block","c":"display","v":["400"]},{"f":"Flow Circular","c":"display","v":["400"]},{"f":"Flow Rounded","c":"display","v":["400"]},{"f":"Foldit","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Fondamento","c":"handwriting","v":["400","400i"]},{"f":"Fontdiner Swanky","c":"display","v":["400"]},{"f":"Forum","c":"display","v":["400"]},{"f":"Fragment Mono","c":"monospace","v":["400","400i"]},{"f":"Francois One","c":"sans-serif","v":["400"]},{"f":"Frank Ruhl Libre","c":"serif","v":["300","400","500","600","700","800","900"]},{"f":"Fraunces","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Freckle Face","c":"display","v":["400"]},{"f":"Fredericka the Great","c":"display","v":["400"]},{"f":"Fredoka","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Freehand","c":"display","v":["400"]},{"f":"Freeman","c":"display","v":["400"]},{"f":"Fresca","c":"sans-serif","v":["400"]},{"f":"Frijole","c":"display","v":["400"]},{"f":"Fruktur","c":"display","v":["400","400i"]},{"f":"Fugaz One","c":"display","v":["400"]},{"f":"Fuggles","c":"handwriting","v":["400"]},{"f":"Funnel Display","c":"display","v":["300","400","500","600","700","800"]},{"f":"Funnel Sans","c":"sans-serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Fustat","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Fuzzy Bubbles","c":"handwriting","v":["400","700"]},{"f":"GFS Didot","c":"serif","v":["400"]},{"f":"GFS Neohellenic","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Ga Maamli","c":"display","v":["400"]},{"f":"Gabarito","c":"display","v":["400","500","600","700","800","900"]},{"f":"Gabriela","c":"serif","v":["400"]},{"f":"Gaegu","c":"handwriting","v":["300","400","700"]},{"f":"Gafata","c":"sans-serif","v":["400"]},{"f":"Gajraj One","c":"display","v":["400"]},{"f":"Galada","c":"display","v":["400"]},{"f":"Galdeano","c":"sans-serif","v":["400"]},{"f":"Galindo","c":"display","v":["400"]},{"f":"Gamja Flower","c":"handwriting","v":["400"]},{"f":"Gantari","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Gasoek One","c":"sans-serif","v":["400"]},{"f":"Gayathri","c":"sans-serif","v":["100","400","700"]},{"f":"Geist","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Geist Mono","c":"monospace","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Gelasio","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Gemunu Libre","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Genos","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Gentium Book Plus","c":"serif","v":["400","400i","700","700i"]},{"f":"Gentium Plus","c":"serif","v":["400","400i","700","700i"]},{"f":"Geo","c":"sans-serif","v":["400","400i"]},{"f":"Geologica","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Georama","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Geostar","c":"display","v":["400"]},{"f":"Geostar Fill","c":"display","v":["400"]},{"f":"Germania One","c":"display","v":["400"]},{"f":"Gideon Roman","c":"display","v":["400"]},{"f":"Gidugu","c":"sans-serif","v":["400"]},{"f":"Gilda Display","c":"serif","v":["400"]},{"f":"Girassol","c":"display","v":["400"]},{"f":"Give You Glory","c":"handwriting","v":["400"]},{"f":"Glass Antiqua","c":"display","v":["400"]},{"f":"Glegoo","c":"serif","v":["400","700"]},{"f":"Gloock","c":"serif","v":["400"]},{"f":"Gloria Hallelujah","c":"handwriting","v":["400"]},{"f":"Glory","c":"sans-serif","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Gluten","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Goblin One","c":"display","v":["400"]},{"f":"Gochi Hand","c":"handwriting","v":["400"]},{"f":"Goldman","c":"display","v":["400","700"]},{"f":"Golos Text","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"Gorditas","c":"display","v":["400","700"]},{"f":"Gothic A1","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Gotu","c":"sans-serif","v":["400"]},{"f":"Goudy Bookletter 1911","c":"serif","v":["400"]},{"f":"Gowun Batang","c":"serif","v":["400","700"]},{"f":"Gowun Dodum","c":"sans-serif","v":["400"]},{"f":"Graduate","c":"serif","v":["400"]},{"f":"Grand Hotel","c":"handwriting","v":["400"]},{"f":"Grandiflora One","c":"serif","v":["400"]},{"f":"Grandstander","c":"display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Grape Nuts","c":"handwriting","v":["400"]},{"f":"Gravitas One","c":"display","v":["400"]},{"f":"Great Vibes","c":"handwriting","v":["400"]},{"f":"Grechen Fuemen","c":"handwriting","v":["400"]},{"f":"Grenze","c":"serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Grenze Gotisch","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Grey Qo","c":"handwriting","v":["400"]},{"f":"Griffy","c":"display","v":["400"]},{"f":"Gruppo","c":"sans-serif","v":["400"]},{"f":"Gudea","c":"sans-serif","v":["400","400i","700"]},{"f":"Gugi","c":"display","v":["400"]},{"f":"Gulzar","c":"serif","v":["400"]},{"f":"Gupter","c":"serif","v":["400","500","700"]},{"f":"Gurajada","c":"serif","v":["400"]},{"f":"Gwendolyn","c":"handwriting","v":["400","700"]},{"f":"Habibi","c":"serif","v":["400"]},{"f":"Hachi Maru Pop","c":"handwriting","v":["400"]},{"f":"Hahmlet","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Halant","c":"serif","v":["300","400","500","600","700"]},{"f":"Hammersmith One","c":"sans-serif","v":["400"]},{"f":"Hanalei","c":"display","v":["400"]},{"f":"Hanalei Fill","c":"display","v":["400"]},{"f":"Handjet","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Handlee","c":"handwriting","v":["400"]},{"f":"Hanken Grotesk","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Hanuman","c":"serif","v":["100","300","400","700","900"]},{"f":"Happy Monkey","c":"display","v":["400"]},{"f":"Harmattan","c":"sans-serif","v":["400","500","600","700"]},{"f":"Headland One","c":"serif","v":["400"]},{"f":"Hedvig Letters Sans","c":"sans-serif","v":["400"]},{"f":"Hedvig Letters Serif","c":"serif","v":["400"]},{"f":"Heebo","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Henny Penny","c":"display","v":["400"]},{"f":"Hepta Slab","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Herr Von Muellerhoff","c":"handwriting","v":["400"]},{"f":"Hi Melody","c":"handwriting","v":["400"]},{"f":"Hina Mincho","c":"serif","v":["400"]},{"f":"Hind","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Hind Guntur","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Hind Madurai","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Hind Siliguri","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Hind Vadodara","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Holtwood One SC","c":"serif","v":["400"]},{"f":"Homemade Apple","c":"handwriting","v":["400"]},{"f":"Homenaje","c":"sans-serif","v":["400"]},{"f":"Honk","c":"display","v":["400"]},{"f":"Host Grotesk","c":"sans-serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Hubballi","c":"sans-serif","v":["400"]},{"f":"Hubot Sans","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Hurricane","c":"handwriting","v":["400"]},{"f":"IBM Plex Mono","c":"monospace","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"IBM Plex Sans","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"IBM Plex Sans Arabic","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans Condensed","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"IBM Plex Sans Devanagari","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans Hebrew","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans JP","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans KR","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans Thai","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Sans Thai Looped","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"IBM Plex Serif","c":"serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"IM Fell DW Pica","c":"serif","v":["400","400i"]},{"f":"IM Fell DW Pica SC","c":"serif","v":["400"]},{"f":"IM Fell Double Pica","c":"serif","v":["400","400i"]},{"f":"IM Fell Double Pica SC","c":"serif","v":["400"]},{"f":"IM Fell English","c":"serif","v":["400","400i"]},{"f":"IM Fell English SC","c":"serif","v":["400"]},{"f":"IM Fell French Canon","c":"serif","v":["400","400i"]},{"f":"IM Fell French Canon SC","c":"serif","v":["400"]},{"f":"IM Fell Great Primer","c":"serif","v":["400","400i"]},{"f":"IM Fell Great Primer SC","c":"serif","v":["400"]},{"f":"Ibarra Real Nova","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Iceberg","c":"display","v":["400"]},{"f":"Iceland","c":"display","v":["400"]},{"f":"Imbue","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Imperial Script","c":"handwriting","v":["400"]},{"f":"Imprima","c":"sans-serif","v":["400"]},{"f":"Inclusive Sans","c":"sans-serif","v":["400","400i"]},{"f":"Inconsolata","c":"monospace","v":["200","300","400","500","600","700","800","900"]},{"f":"Inder","c":"sans-serif","v":["400"]},{"f":"Indie Flower","c":"handwriting","v":["400"]},{"f":"Ingrid Darling","c":"handwriting","v":["400"]},{"f":"Inika","c":"serif","v":["400","700"]},{"f":"Inknut Antiqua","c":"serif","v":["300","400","500","600","700","800","900"]},{"f":"Inria Sans","c":"sans-serif","v":["300","300i","400","400i","700","700i"]},{"f":"Inria Serif","c":"serif","v":["300","300i","400","400i","700","700i"]},{"f":"Inspiration","c":"handwriting","v":["400"]},{"f":"Instrument Sans","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Instrument Serif","c":"serif","v":["400","400i"]},{"f":"Inter","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Inter Tight","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Irish Grover","c":"display","v":["400"]},{"f":"Island Moments","c":"handwriting","v":["400"]},{"f":"Istok Web","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Italiana","c":"serif","v":["400"]},{"f":"Italianno","c":"handwriting","v":["400"]},{"f":"Itim","c":"handwriting","v":["400"]},{"f":"Jacquard 12","c":"display","v":["400"]},{"f":"Jacquard 12 Charted","c":"display","v":["400"]},{"f":"Jacquard 24","c":"display","v":["400"]},{"f":"Jacquard 24 Charted","c":"display","v":["400"]},{"f":"Jacquarda Bastarda 9","c":"display","v":["400"]},{"f":"Jacquarda Bastarda 9 Charted","c":"display","v":["400"]},{"f":"Jacques Francois","c":"serif","v":["400"]},{"f":"Jacques Francois Shadow","c":"display","v":["400"]},{"f":"Jaini","c":"display","v":["400"]},{"f":"Jaini Purva","c":"display","v":["400"]},{"f":"Jaldi","c":"sans-serif","v":["400","700"]},{"f":"Jaro","c":"sans-serif","v":["400"]},{"f":"Jersey 10","c":"display","v":["400"]},{"f":"Jersey 10 Charted","c":"display","v":["400"]},{"f":"Jersey 15","c":"display","v":["400"]},{"f":"Jersey 15 Charted","c":"display","v":["400"]},{"f":"Jersey 20","c":"display","v":["400"]},{"f":"Jersey 20 Charted","c":"display","v":["400"]},{"f":"Jersey 25","c":"display","v":["400"]},{"f":"Jersey 25 Charted","c":"display","v":["400"]},{"f":"JetBrains Mono","c":"monospace","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Jim Nightshade","c":"handwriting","v":["400"]},{"f":"Joan","c":"serif","v":["400"]},{"f":"Jockey One","c":"sans-serif","v":["400"]},{"f":"Jolly Lodger","c":"display","v":["400"]},{"f":"Jomhuria","c":"display","v":["400"]},{"f":"Jomolhari","c":"serif","v":["400"]},{"f":"Josefin Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"]},{"f":"Josefin Slab","c":"serif","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"]},{"f":"Jost","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Joti One","c":"display","v":["400"]},{"f":"Jua","c":"sans-serif","v":["400"]},{"f":"Judson","c":"serif","v":["400","400i","700"]},{"f":"Julee","c":"handwriting","v":["400"]},{"f":"Julius Sans One","c":"sans-serif","v":["400"]},{"f":"Junge","c":"serif","v":["400"]},{"f":"Jura","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Just Another Hand","c":"handwriting","v":["400"]},{"f":"Just Me Again Down Here","c":"handwriting","v":["400"]},{"f":"K2D","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Kablammo","c":"display","v":["400"]},{"f":"Kadwa","c":"serif","v":["400","700"]},{"f":"Kaisei Decol","c":"serif","v":["400","500","700"]},{"f":"Kaisei HarunoUmi","c":"serif","v":["400","500","700"]},{"f":"Kaisei Opti","c":"serif","v":["400","500","700"]},{"f":"Kaisei Tokumin","c":"serif","v":["400","500","700","800"]},{"f":"Kalam","c":"handwriting","v":["300","400","700"]},{"f":"Kalnia","c":"serif","v":["100","200","300","400","500","600","700"]},{"f":"Kalnia Glaze","c":"display","v":["100","200","300","400","500","600","700"]},{"f":"Kameron","c":"serif","v":["400","500","600","700"]},{"f":"Kanit","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Kantumruy Pro","c":"sans-serif","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"]},{"f":"Karantina","c":"display","v":["300","400","700"]},{"f":"Karla","c":"sans-serif","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Karla Tamil Inclined","c":"sans-serif","v":["400","700"]},{"f":"Karla Tamil Upright","c":"sans-serif","v":["400","700"]},{"f":"Karma","c":"serif","v":["300","400","500","600","700"]},{"f":"Katibeh","c":"display","v":["400"]},{"f":"Kaushan Script","c":"handwriting","v":["400"]},{"f":"Kavivanar","c":"handwriting","v":["400"]},{"f":"Kavoon","c":"display","v":["400"]},{"f":"Kay Pho Du","c":"serif","v":["400","500","600","700"]},{"f":"Kdam Thmor Pro","c":"sans-serif","v":["400"]},{"f":"Keania One","c":"display","v":["400"]},{"f":"Kelly Slab","c":"display","v":["400"]},{"f":"Kenia","c":"display","v":["400"]},{"f":"Khand","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Khmer","c":"sans-serif","v":["400"]},{"f":"Khula","c":"sans-serif","v":["300","400","600","700","800"]},{"f":"Kings","c":"handwriting","v":["400"]},{"f":"Kirang Haerang","c":"display","v":["400"]},{"f":"Kite One","c":"sans-serif","v":["400"]},{"f":"Kiwi Maru","c":"serif","v":["300","400","500"]},{"f":"Klee One","c":"handwriting","v":["400","600"]},{"f":"Knewave","c":"display","v":["400"]},{"f":"KoHo","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Kodchasan","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Kode Mono","c":"monospace","v":["400","500","600","700"]},{"f":"Koh Santepheap","c":"serif","v":["100","300","400","700","900"]},{"f":"Kolker Brush","c":"handwriting","v":["400"]},{"f":"Konkhmer Sleokchher","c":"display","v":["400"]},{"f":"Kosugi","c":"sans-serif","v":["400"]},{"f":"Kosugi Maru","c":"sans-serif","v":["400"]},{"f":"Kotta One","c":"serif","v":["400"]},{"f":"Koulen","c":"display","v":["400"]},{"f":"Kranky","c":"display","v":["400"]},{"f":"Kreon","c":"serif","v":["300","400","500","600","700"]},{"f":"Kristi","c":"handwriting","v":["400"]},{"f":"Krona One","c":"sans-serif","v":["400"]},{"f":"Krub","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Kufam","c":"sans-serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Kulim Park","c":"sans-serif","v":["200","200i","300","300i","400","400i","600","600i","700","700i"]},{"f":"Kumar One","c":"display","v":["400"]},{"f":"Kumar One Outline","c":"display","v":["400"]},{"f":"Kumbh Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Kurale","c":"serif","v":["400"]},{"f":"LXGW WenKai Mono TC","c":"monospace","v":["300","400","700"]},{"f":"LXGW WenKai TC","c":"handwriting","v":["300","400","700"]},{"f":"La Belle Aurore","c":"handwriting","v":["400"]},{"f":"Labrada","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Lacquer","c":"display","v":["400"]},{"f":"Laila","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Lakki Reddy","c":"handwriting","v":["400"]},{"f":"Lalezar","c":"display","v":["400"]},{"f":"Lancelot","c":"display","v":["400"]},{"f":"Langar","c":"display","v":["400"]},{"f":"Lateef","c":"serif","v":["200","300","400","500","600","700","800"]},{"f":"Lato","c":"sans-serif","v":["100","100i","300","300i","400","400i","700","700i","900","900i"]},{"f":"Lavishly Yours","c":"handwriting","v":["400"]},{"f":"League Gothic","c":"sans-serif","v":["400"]},{"f":"League Script","c":"handwriting","v":["400"]},{"f":"League Spartan","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Leckerli One","c":"handwriting","v":["400"]},{"f":"Ledger","c":"serif","v":["400"]},{"f":"Lekton","c":"monospace","v":["400","400i","700"]},{"f":"Lemon","c":"display","v":["400"]},{"f":"Lemonada","c":"display","v":["300","400","500","600","700"]},{"f":"Lexend","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Deca","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Exa","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Giga","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Mega","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Peta","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Tera","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lexend Zetta","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Libre Barcode 128","c":"display","v":["400"]},{"f":"Libre Barcode 128 Text","c":"display","v":["400"]},{"f":"Libre Barcode 39","c":"display","v":["400"]},{"f":"Libre Barcode 39 Extended","c":"display","v":["400"]},{"f":"Libre Barcode 39 Extended Text","c":"display","v":["400"]},{"f":"Libre Barcode 39 Text","c":"display","v":["400"]},{"f":"Libre Barcode EAN13 Text","c":"display","v":["400"]},{"f":"Libre Baskerville","c":"serif","v":["400","400i","700"]},{"f":"Libre Bodoni","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Libre Caslon Display","c":"serif","v":["400"]},{"f":"Libre Caslon Text","c":"serif","v":["400","400i","700"]},{"f":"Libre Franklin","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Licorice","c":"handwriting","v":["400"]},{"f":"Life Savers","c":"display","v":["400","700","800"]},{"f":"Lilita One","c":"display","v":["400"]},{"f":"Lily Script One","c":"display","v":["400"]},{"f":"Limelight","c":"display","v":["400"]},{"f":"Linden Hill","c":"serif","v":["400","400i"]},{"f":"Linefont","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Lisu Bosa","c":"serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Literata","c":"serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Liu Jian Mao Cao","c":"handwriting","v":["400"]},{"f":"Livvic","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","900","900i"]},{"f":"Lobster","c":"display","v":["400"]},{"f":"Lobster Two","c":"display","v":["400","400i","700","700i"]},{"f":"Londrina Outline","c":"display","v":["400"]},{"f":"Londrina Shadow","c":"display","v":["400"]},{"f":"Londrina Sketch","c":"display","v":["400"]},{"f":"Londrina Solid","c":"display","v":["100","300","400","900"]},{"f":"Long Cang","c":"handwriting","v":["400"]},{"f":"Lora","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Love Light","c":"handwriting","v":["400"]},{"f":"Love Ya Like A Sister","c":"display","v":["400"]},{"f":"Loved by the King","c":"handwriting","v":["400"]},{"f":"Lovers Quarrel","c":"handwriting","v":["400"]},{"f":"Luckiest Guy","c":"display","v":["400"]},{"f":"Lugrasimo","c":"handwriting","v":["400"]},{"f":"Lumanosimo","c":"handwriting","v":["400"]},{"f":"Lunasima","c":"sans-serif","v":["400","700"]},{"f":"Lusitana","c":"serif","v":["400","700"]},{"f":"Lustria","c":"serif","v":["400"]},{"f":"Luxurious Roman","c":"display","v":["400"]},{"f":"Luxurious Script","c":"handwriting","v":["400"]},{"f":"M PLUS 1","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"M PLUS 1 Code","c":"monospace","v":["100","200","300","400","500","600","700"]},{"f":"M PLUS 1p","c":"sans-serif","v":["100","300","400","500","700","800","900"]},{"f":"M PLUS 2","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"M PLUS Code Latin","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"M PLUS Rounded 1c","c":"sans-serif","v":["100","300","400","500","700","800","900"]},{"f":"Ma Shan Zheng","c":"handwriting","v":["400"]},{"f":"Macondo","c":"display","v":["400"]},{"f":"Macondo Swash Caps","c":"display","v":["400"]},{"f":"Mada","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Madimi One","c":"sans-serif","v":["400"]},{"f":"Magra","c":"sans-serif","v":["400","700"]},{"f":"Maiden Orange","c":"serif","v":["400"]},{"f":"Maitree","c":"serif","v":["200","300","400","500","600","700"]},{"f":"Major Mono Display","c":"monospace","v":["400"]},{"f":"Mako","c":"sans-serif","v":["400"]},{"f":"Mali","c":"handwriting","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Mallanna","c":"sans-serif","v":["400"]},{"f":"Maname","c":"serif","v":["400"]},{"f":"Mandali","c":"sans-serif","v":["400"]},{"f":"Manjari","c":"sans-serif","v":["100","400","700"]},{"f":"Manrope","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Mansalva","c":"handwriting","v":["400"]},{"f":"Manuale","c":"serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Marcellus","c":"serif","v":["400"]},{"f":"Marcellus SC","c":"serif","v":["400"]},{"f":"Marck Script","c":"handwriting","v":["400"]},{"f":"Margarine","c":"display","v":["400"]},{"f":"Marhey","c":"display","v":["300","400","500","600","700"]},{"f":"Markazi Text","c":"serif","v":["400","500","600","700"]},{"f":"Marko One","c":"serif","v":["400"]},{"f":"Marmelad","c":"sans-serif","v":["400"]},{"f":"Martel","c":"serif","v":["200","300","400","600","700","800","900"]},{"f":"Martel Sans","c":"sans-serif","v":["200","300","400","600","700","800","900"]},{"f":"Martian Mono","c":"monospace","v":["100","200","300","400","500","600","700","800"]},{"f":"Marvel","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Mate","c":"serif","v":["400","400i"]},{"f":"Mate SC","c":"serif","v":["400"]},{"f":"Matemasie","c":"sans-serif","v":["400"]},{"f":"Material Icons","c":"monospace","v":["400"]},{"f":"Material Icons Outlined","c":"monospace","v":["400"]},{"f":"Material Icons Round","c":"monospace","v":["400"]},{"f":"Material Icons Sharp","c":"monospace","v":["400"]},{"f":"Material Icons Two Tone","c":"monospace","v":["400"]},{"f":"Material Symbols Outlined","c":"monospace","v":["100","200","300","400","500","600","700"]},{"f":"Material Symbols Rounded","c":"monospace","v":["100","200","300","400","500","600","700"]},{"f":"Material Symbols Sharp","c":"monospace","v":["100","200","300","400","500","600","700"]},{"f":"Maven Pro","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"McLaren","c":"display","v":["400"]},{"f":"Mea Culpa","c":"handwriting","v":["400"]},{"f":"Meddon","c":"handwriting","v":["400"]},{"f":"MedievalSharp","c":"display","v":["400"]},{"f":"Medula One","c":"display","v":["400"]},{"f":"Meera Inimai","c":"sans-serif","v":["400"]},{"f":"Megrim","c":"display","v":["400"]},{"f":"Meie Script","c":"handwriting","v":["400"]},{"f":"Meow Script","c":"handwriting","v":["400"]},{"f":"Merienda","c":"handwriting","v":["300","400","500","600","700","800","900"]},{"f":"Merriweather","c":"serif","v":["300","300i","400","400i","700","700i","900","900i"]},{"f":"Merriweather Sans","c":"sans-serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Metal","c":"display","v":["400"]},{"f":"Metal Mania","c":"display","v":["400"]},{"f":"Metamorphous","c":"display","v":["400"]},{"f":"Metrophobic","c":"sans-serif","v":["400"]},{"f":"Michroma","c":"sans-serif","v":["400"]},{"f":"Micro 5","c":"display","v":["400"]},{"f":"Micro 5 Charted","c":"display","v":["400"]},{"f":"Milonga","c":"display","v":["400"]},{"f":"Miltonian","c":"display","v":["400"]},{"f":"Miltonian Tattoo","c":"display","v":["400"]},{"f":"Mina","c":"sans-serif","v":["400","700"]},{"f":"Mingzat","c":"sans-serif","v":["400"]},{"f":"Miniver","c":"display","v":["400"]},{"f":"Miriam Libre","c":"sans-serif","v":["400","500","600","700"]},{"f":"Mirza","c":"serif","v":["400","500","600","700"]},{"f":"Miss Fajardose","c":"handwriting","v":["400"]},{"f":"Mitr","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Mochiy Pop One","c":"sans-serif","v":["400"]},{"f":"Mochiy Pop P One","c":"sans-serif","v":["400"]},{"f":"Modak","c":"display","v":["400"]},{"f":"Modern Antiqua","c":"display","v":["400"]},{"f":"Moderustic","c":"sans-serif","v":["300","400","500","600","700","800"]},{"f":"Mogra","c":"display","v":["400"]},{"f":"Mohave","c":"sans-serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Moirai One","c":"display","v":["400"]},{"f":"Molengo","c":"sans-serif","v":["400"]},{"f":"Molle","c":"handwriting","v":["400i"]},{"f":"Mona Sans","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Monda","c":"sans-serif","v":["400","500","600","700"]},{"f":"Monofett","c":"monospace","v":["400"]},{"f":"Monomaniac One","c":"sans-serif","v":["400"]},{"f":"Monoton","c":"display","v":["400"]},{"f":"Monsieur La Doulaise","c":"handwriting","v":["400"]},{"f":"Montaga","c":"serif","v":["400"]},{"f":"Montagu Slab","c":"serif","v":["100","200","300","400","500","600","700"]},{"f":"MonteCarlo","c":"handwriting","v":["400"]},{"f":"Montez","c":"handwriting","v":["400"]},{"f":"Montserrat","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Montserrat Alternates","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Montserrat Subrayada","c":"sans-serif","v":["400","700"]},{"f":"Moo Lah Lah","c":"display","v":["400"]},{"f":"Mooli","c":"sans-serif","v":["400"]},{"f":"Moon Dance","c":"handwriting","v":["400"]},{"f":"Moul","c":"display","v":["400"]},{"f":"Moulpali","c":"sans-serif","v":["400"]},{"f":"Mountains of Christmas","c":"display","v":["400","700"]},{"f":"Mouse Memoirs","c":"sans-serif","v":["400"]},{"f":"Mr Bedfort","c":"handwriting","v":["400"]},{"f":"Mr Dafoe","c":"handwriting","v":["400"]},{"f":"Mr De Haviland","c":"handwriting","v":["400"]},{"f":"Mrs Saint Delafield","c":"handwriting","v":["400"]},{"f":"Mrs Sheppards","c":"handwriting","v":["400"]},{"f":"Ms Madi","c":"handwriting","v":["400"]},{"f":"Mukta","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Mukta Mahee","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Mukta Malar","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Mukta Vaani","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Mulish","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Murecho","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"MuseoModerno","c":"display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"My Soul","c":"handwriting","v":["400"]},{"f":"Mynerve","c":"handwriting","v":["400"]},{"f":"Mystery Quest","c":"display","v":["400"]},{"f":"NTR","c":"sans-serif","v":["400"]},{"f":"Nabla","c":"display","v":["400"]},{"f":"Namdhinggo","c":"serif","v":["400","500","600","700","800"]},{"f":"Nanum Brush Script","c":"handwriting","v":["400"]},{"f":"Nanum Gothic","c":"sans-serif","v":["400","700","800"]},{"f":"Nanum Gothic Coding","c":"handwriting","v":["400","700"]},{"f":"Nanum Myeongjo","c":"serif","v":["400","700","800"]},{"f":"Nanum Pen Script","c":"handwriting","v":["400"]},{"f":"Narnoor","c":"serif","v":["400","500","600","700","800"]},{"f":"Neonderthaw","c":"handwriting","v":["400"]},{"f":"Nerko One","c":"handwriting","v":["400"]},{"f":"Neucha","c":"handwriting","v":["400"]},{"f":"Neuton","c":"serif","v":["200","300","400","400i","700","800"]},{"f":"New Amsterdam","c":"sans-serif","v":["400"]},{"f":"New Rocker","c":"display","v":["400"]},{"f":"New Tegomin","c":"serif","v":["400"]},{"f":"News Cycle","c":"sans-serif","v":["400","700"]},{"f":"Newsreader","c":"serif","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Niconne","c":"handwriting","v":["400"]},{"f":"Niramit","c":"sans-serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Nixie One","c":"display","v":["400"]},{"f":"Nobile","c":"sans-serif","v":["400","400i","500","500i","700","700i"]},{"f":"Nokora","c":"sans-serif","v":["100","300","400","700","900"]},{"f":"Norican","c":"handwriting","v":["400"]},{"f":"Nosifer","c":"display","v":["400"]},{"f":"Notable","c":"sans-serif","v":["400"]},{"f":"Nothing You Could Do","c":"handwriting","v":["400"]},{"f":"Noticia Text","c":"serif","v":["400","400i","700","700i"]},{"f":"Noto Color Emoji","c":"sans-serif","v":["400"]},{"f":"Noto Emoji","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Noto Kufi Arabic","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Music","c":"sans-serif","v":["400"]},{"f":"Noto Naskh Arabic","c":"serif","v":["400","500","600","700"]},{"f":"Noto Nastaliq Urdu","c":"serif","v":["400","500","600","700"]},{"f":"Noto Rashi Hebrew","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Noto Sans Adlam","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Adlam Unjoined","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Anatolian Hieroglyphs","c":"sans-serif","v":["400"]},{"f":"Noto Sans Arabic","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Armenian","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Avestan","c":"sans-serif","v":["400"]},{"f":"Noto Sans Balinese","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Bamum","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Bassa Vah","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Batak","c":"sans-serif","v":["400"]},{"f":"Noto Sans Bengali","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Bhaiksuki","c":"sans-serif","v":["400"]},{"f":"Noto Sans Brahmi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Buginese","c":"sans-serif","v":["400"]},{"f":"Noto Sans Buhid","c":"sans-serif","v":["400"]},{"f":"Noto Sans Canadian Aboriginal","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Carian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Caucasian Albanian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Chakma","c":"sans-serif","v":["400"]},{"f":"Noto Sans Cham","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Cherokee","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Chorasmian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Coptic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Cuneiform","c":"sans-serif","v":["400"]},{"f":"Noto Sans Cypriot","c":"sans-serif","v":["400"]},{"f":"Noto Sans Cypro Minoan","c":"sans-serif","v":["400"]},{"f":"Noto Sans Deseret","c":"sans-serif","v":["400"]},{"f":"Noto Sans Devanagari","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Display","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Noto Sans Duployan","c":"sans-serif","v":["400","700"]},{"f":"Noto Sans Egyptian Hieroglyphs","c":"sans-serif","v":["400"]},{"f":"Noto Sans Elbasan","c":"sans-serif","v":["400"]},{"f":"Noto Sans Elymaic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Ethiopic","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Georgian","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Glagolitic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Gothic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Grantha","c":"sans-serif","v":["400"]},{"f":"Noto Sans Gujarati","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Gunjala Gondi","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Gurmukhi","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans HK","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Hanifi Rohingya","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Hanunoo","c":"sans-serif","v":["400"]},{"f":"Noto Sans Hatran","c":"sans-serif","v":["400"]},{"f":"Noto Sans Hebrew","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Imperial Aramaic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Indic Siyaq Numbers","c":"sans-serif","v":["400"]},{"f":"Noto Sans Inscriptional Pahlavi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Inscriptional Parthian","c":"sans-serif","v":["400"]},{"f":"Noto Sans JP","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Javanese","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans KR","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Kaithi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Kannada","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Kawi","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Kayah Li","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Kharoshthi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Khmer","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Khojki","c":"sans-serif","v":["400"]},{"f":"Noto Sans Khudawadi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Lao","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Lao Looped","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Lepcha","c":"sans-serif","v":["400"]},{"f":"Noto Sans Limbu","c":"sans-serif","v":["400"]},{"f":"Noto Sans Linear A","c":"sans-serif","v":["400"]},{"f":"Noto Sans Linear B","c":"sans-serif","v":["400"]},{"f":"Noto Sans Lisu","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Lycian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Lydian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Mahajani","c":"sans-serif","v":["400"]},{"f":"Noto Sans Malayalam","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Mandaic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Manichaean","c":"sans-serif","v":["400"]},{"f":"Noto Sans Marchen","c":"sans-serif","v":["400"]},{"f":"Noto Sans Masaram Gondi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Math","c":"sans-serif","v":["400"]},{"f":"Noto Sans Mayan Numerals","c":"sans-serif","v":["400"]},{"f":"Noto Sans Medefaidrin","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Meetei Mayek","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Mende Kikakui","c":"sans-serif","v":["400"]},{"f":"Noto Sans Meroitic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Miao","c":"sans-serif","v":["400"]},{"f":"Noto Sans Modi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Mongolian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Mono","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Mro","c":"sans-serif","v":["400"]},{"f":"Noto Sans Multani","c":"sans-serif","v":["400"]},{"f":"Noto Sans Myanmar","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans NKo","c":"sans-serif","v":["400"]},{"f":"Noto Sans NKo Unjoined","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Nabataean","c":"sans-serif","v":["400"]},{"f":"Noto Sans Nag Mundari","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Nandinagari","c":"sans-serif","v":["400"]},{"f":"Noto Sans New Tai Lue","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Newa","c":"sans-serif","v":["400"]},{"f":"Noto Sans Nushu","c":"sans-serif","v":["400"]},{"f":"Noto Sans Ogham","c":"sans-serif","v":["400"]},{"f":"Noto Sans Ol Chiki","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Old Hungarian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old Italic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old North Arabian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old Permic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old Persian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old Sogdian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old South Arabian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Old Turkic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Oriya","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Osage","c":"sans-serif","v":["400"]},{"f":"Noto Sans Osmanya","c":"sans-serif","v":["400"]},{"f":"Noto Sans Pahawh Hmong","c":"sans-serif","v":["400"]},{"f":"Noto Sans Palmyrene","c":"sans-serif","v":["400"]},{"f":"Noto Sans Pau Cin Hau","c":"sans-serif","v":["400"]},{"f":"Noto Sans Phags Pa","c":"sans-serif","v":["400"]},{"f":"Noto Sans Phoenician","c":"sans-serif","v":["400"]},{"f":"Noto Sans Psalter Pahlavi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Rejang","c":"sans-serif","v":["400"]},{"f":"Noto Sans Runic","c":"sans-serif","v":["400"]},{"f":"Noto Sans SC","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Samaritan","c":"sans-serif","v":["400"]},{"f":"Noto Sans Saurashtra","c":"sans-serif","v":["400"]},{"f":"Noto Sans Sharada","c":"sans-serif","v":["400"]},{"f":"Noto Sans Shavian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Siddham","c":"sans-serif","v":["400"]},{"f":"Noto Sans SignWriting","c":"sans-serif","v":["400"]},{"f":"Noto Sans Sinhala","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Sogdian","c":"sans-serif","v":["400"]},{"f":"Noto Sans Sora Sompeng","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Soyombo","c":"sans-serif","v":["400"]},{"f":"Noto Sans Sundanese","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Syloti Nagri","c":"sans-serif","v":["400"]},{"f":"Noto Sans Symbols","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Symbols 2","c":"sans-serif","v":["400"]},{"f":"Noto Sans Syriac","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Syriac Eastern","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans TC","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Tagalog","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tagbanwa","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tai Le","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tai Tham","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Tai Viet","c":"sans-serif","v":["400"]},{"f":"Noto Sans Takri","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tamil","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Tamil Supplement","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tangsa","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Telugu","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Thaana","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Thai","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Thai Looped","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Sans Tifinagh","c":"sans-serif","v":["400"]},{"f":"Noto Sans Tirhuta","c":"sans-serif","v":["400"]},{"f":"Noto Sans Ugaritic","c":"sans-serif","v":["400"]},{"f":"Noto Sans Vai","c":"sans-serif","v":["400"]},{"f":"Noto Sans Vithkuqi","c":"sans-serif","v":["400","500","600","700"]},{"f":"Noto Sans Wancho","c":"sans-serif","v":["400"]},{"f":"Noto Sans Warang Citi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Yi","c":"sans-serif","v":["400"]},{"f":"Noto Sans Zanabazar Square","c":"sans-serif","v":["400"]},{"f":"Noto Serif","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Noto Serif Ahom","c":"serif","v":["400"]},{"f":"Noto Serif Armenian","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Balinese","c":"serif","v":["400"]},{"f":"Noto Serif Bengali","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Devanagari","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Display","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Noto Serif Dogra","c":"serif","v":["400"]},{"f":"Noto Serif Ethiopic","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Georgian","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Grantha","c":"serif","v":["400"]},{"f":"Noto Serif Gujarati","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Gurmukhi","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif HK","c":"serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Hebrew","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif JP","c":"serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Noto Serif KR","c":"serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Kannada","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Khitan Small Script","c":"serif","v":["400"]},{"f":"Noto Serif Khmer","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Khojki","c":"serif","v":["400","500","600","700"]},{"f":"Noto Serif Lao","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Makasar","c":"serif","v":["400"]},{"f":"Noto Serif Malayalam","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Myanmar","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif NP Hmong","c":"serif","v":["400","500","600","700"]},{"f":"Noto Serif Old Uyghur","c":"serif","v":["400"]},{"f":"Noto Serif Oriya","c":"serif","v":["400","500","600","700"]},{"f":"Noto Serif Ottoman Siyaq","c":"serif","v":["400"]},{"f":"Noto Serif SC","c":"serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Sinhala","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif TC","c":"serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Tamil","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Noto Serif Tangut","c":"serif","v":["400"]},{"f":"Noto Serif Telugu","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Thai","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Tibetan","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Noto Serif Toto","c":"serif","v":["400","500","600","700"]},{"f":"Noto Serif Vithkuqi","c":"serif","v":["400","500","600","700"]},{"f":"Noto Serif Yezidi","c":"serif","v":["400","500","600","700"]},{"f":"Noto Traditional Nushu","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Noto Znamenny Musical Notation","c":"sans-serif","v":["400"]},{"f":"Nova Cut","c":"display","v":["400"]},{"f":"Nova Flat","c":"display","v":["400"]},{"f":"Nova Mono","c":"monospace","v":["400"]},{"f":"Nova Oval","c":"display","v":["400"]},{"f":"Nova Round","c":"display","v":["400"]},{"f":"Nova Script","c":"display","v":["400"]},{"f":"Nova Slim","c":"display","v":["400"]},{"f":"Nova Square","c":"display","v":["400"]},{"f":"Numans","c":"sans-serif","v":["400"]},{"f":"Nunito","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Nunito Sans","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Nuosu SIL","c":"sans-serif","v":["400"]},{"f":"Odibee Sans","c":"display","v":["400"]},{"f":"Odor Mean Chey","c":"serif","v":["400"]},{"f":"Offside","c":"display","v":["400"]},{"f":"Oi","c":"display","v":["400"]},{"f":"Ojuju","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Old Standard TT","c":"serif","v":["400","400i","700"]},{"f":"Oldenburg","c":"display","v":["400"]},{"f":"Ole","c":"handwriting","v":["400"]},{"f":"Oleo Script","c":"display","v":["400","700"]},{"f":"Oleo Script Swash Caps","c":"display","v":["400","700"]},{"f":"Onest","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Oooh Baby","c":"handwriting","v":["400"]},{"f":"Open Sans","c":"sans-serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Oranienbaum","c":"serif","v":["400"]},{"f":"Orbit","c":"sans-serif","v":["400"]},{"f":"Orbitron","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"Oregano","c":"display","v":["400","400i"]},{"f":"Orelega One","c":"display","v":["400"]},{"f":"Orienta","c":"sans-serif","v":["400"]},{"f":"Original Surfer","c":"display","v":["400"]},{"f":"Oswald","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Outfit","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Over the Rainbow","c":"handwriting","v":["400"]},{"f":"Overlock","c":"display","v":["400","400i","700","700i","900","900i"]},{"f":"Overlock SC","c":"display","v":["400"]},{"f":"Overpass","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Overpass Mono","c":"monospace","v":["300","400","500","600","700"]},{"f":"Ovo","c":"serif","v":["400"]},{"f":"Oxanium","c":"display","v":["200","300","400","500","600","700","800"]},{"f":"Oxygen","c":"sans-serif","v":["300","400","700"]},{"f":"Oxygen Mono","c":"monospace","v":["400"]},{"f":"PT Mono","c":"monospace","v":["400"]},{"f":"PT Sans","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"PT Sans Caption","c":"sans-serif","v":["400","700"]},{"f":"PT Sans Narrow","c":"sans-serif","v":["400","700"]},{"f":"PT Serif","c":"serif","v":["400","400i","700","700i"]},{"f":"PT Serif Caption","c":"serif","v":["400","400i"]},{"f":"Pacifico","c":"handwriting","v":["400"]},{"f":"Padauk","c":"sans-serif","v":["400","700"]},{"f":"Padyakke Expanded One","c":"serif","v":["400"]},{"f":"Palanquin","c":"sans-serif","v":["100","200","300","400","500","600","700"]},{"f":"Palanquin Dark","c":"sans-serif","v":["400","500","600","700"]},{"f":"Palette Mosaic","c":"display","v":["400"]},{"f":"Pangolin","c":"handwriting","v":["400"]},{"f":"Paprika","c":"display","v":["400"]},{"f":"Parisienne","c":"handwriting","v":["400"]},{"f":"Passero One","c":"display","v":["400"]},{"f":"Passion One","c":"display","v":["400","700","900"]},{"f":"Passions Conflict","c":"handwriting","v":["400"]},{"f":"Pathway Extreme","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Pathway Gothic One","c":"sans-serif","v":["400"]},{"f":"Patrick Hand","c":"handwriting","v":["400"]},{"f":"Patrick Hand SC","c":"handwriting","v":["400"]},{"f":"Pattaya","c":"sans-serif","v":["400"]},{"f":"Patua One","c":"display","v":["400"]},{"f":"Pavanam","c":"sans-serif","v":["400"]},{"f":"Paytone One","c":"sans-serif","v":["400"]},{"f":"Peddana","c":"serif","v":["400"]},{"f":"Peralta","c":"serif","v":["400"]},{"f":"Permanent Marker","c":"handwriting","v":["400"]},{"f":"Petemoss","c":"handwriting","v":["400"]},{"f":"Petit Formal Script","c":"handwriting","v":["400"]},{"f":"Petrona","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Philosopher","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Phudu","c":"display","v":["300","400","500","600","700","800","900"]},{"f":"Piazzolla","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Piedra","c":"display","v":["400"]},{"f":"Pinyon Script","c":"handwriting","v":["400"]},{"f":"Pirata One","c":"display","v":["400"]},{"f":"Pixelify Sans","c":"display","v":["400","500","600","700"]},{"f":"Plaster","c":"display","v":["400"]},{"f":"Platypi","c":"serif","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Play","c":"sans-serif","v":["400","700"]},{"f":"Playball","c":"display","v":["400"]},{"f":"Playfair","c":"serif","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Playfair Display","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Playfair Display SC","c":"serif","v":["400","400i","700","700i","900","900i"]},{"f":"Playpen Sans","c":"handwriting","v":["100","200","300","400","500","600","700","800"]},{"f":"Playwrite AR","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite AT","c":"handwriting","v":["100","200","300","400","100i","200i","300i","400i"]},{"f":"Playwrite AU NSW","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite AU QLD","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite AU SA","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite AU TAS","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite AU VIC","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite BE VLG","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite BE WAL","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite BR","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite CA","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite CL","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite CO","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite CU","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite CZ","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DE Grund","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DE LA","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DE SAS","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DE VA","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DK Loopet","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite DK Uloopet","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite ES","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite ES Deco","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite FR Moderne","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite FR Trad","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite GB J","c":"handwriting","v":["100","200","300","400","100i","200i","300i","400i"]},{"f":"Playwrite GB S","c":"handwriting","v":["100","200","300","400","100i","200i","300i","400i"]},{"f":"Playwrite HR","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite HR Lijeva","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite HU","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite ID","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite IE","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite IN","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite IS","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite IT Moderna","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite IT Trad","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite MX","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite NG Modern","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite NL","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite NO","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite NZ","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite PE","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite PL","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite PT","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite RO","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite SK","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite TZ","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite US Modern","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite US Trad","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite VN","c":"handwriting","v":["100","200","300","400"]},{"f":"Playwrite ZA","c":"handwriting","v":["100","200","300","400"]},{"f":"Plus Jakarta Sans","c":"sans-serif","v":["200","300","400","500","600","700","800","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Podkova","c":"serif","v":["400","500","600","700","800"]},{"f":"Poetsen One","c":"display","v":["400"]},{"f":"Poiret One","c":"display","v":["400"]},{"f":"Poller One","c":"display","v":["400"]},{"f":"Poltawski Nowy","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Poly","c":"serif","v":["400","400i"]},{"f":"Pompiere","c":"display","v":["400"]},{"f":"Pontano Sans","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Poor Story","c":"display","v":["400"]},{"f":"Poppins","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Port Lligat Sans","c":"sans-serif","v":["400"]},{"f":"Port Lligat Slab","c":"serif","v":["400"]},{"f":"Potta One","c":"display","v":["400"]},{"f":"Pragati Narrow","c":"sans-serif","v":["400","700"]},{"f":"Praise","c":"handwriting","v":["400"]},{"f":"Prata","c":"serif","v":["400"]},{"f":"Preahvihear","c":"sans-serif","v":["400"]},{"f":"Press Start 2P","c":"display","v":["400"]},{"f":"Pridi","c":"serif","v":["200","300","400","500","600","700"]},{"f":"Princess Sofia","c":"handwriting","v":["400"]},{"f":"Prociono","c":"serif","v":["400"]},{"f":"Prompt","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Prosto One","c":"display","v":["400"]},{"f":"Protest Guerrilla","c":"display","v":["400"]},{"f":"Protest Revolution","c":"display","v":["400"]},{"f":"Protest Riot","c":"display","v":["400"]},{"f":"Protest Strike","c":"display","v":["400"]},{"f":"Proza Libre","c":"sans-serif","v":["400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Public Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Puppies Play","c":"handwriting","v":["400"]},{"f":"Puritan","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Purple Purse","c":"display","v":["400"]},{"f":"Qahiri","c":"sans-serif","v":["400"]},{"f":"Quando","c":"serif","v":["400"]},{"f":"Quantico","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Quattrocento","c":"serif","v":["400","700"]},{"f":"Quattrocento Sans","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Questrial","c":"sans-serif","v":["400"]},{"f":"Quicksand","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Quintessential","c":"handwriting","v":["400"]},{"f":"Qwigley","c":"handwriting","v":["400"]},{"f":"Qwitcher Grypen","c":"handwriting","v":["400","700"]},{"f":"REM","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Racing Sans One","c":"display","v":["400"]},{"f":"Radio Canada","c":"sans-serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Radio Canada Big","c":"sans-serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Radley","c":"serif","v":["400","400i"]},{"f":"Rajdhani","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Rakkas","c":"display","v":["400"]},{"f":"Raleway","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Raleway Dots","c":"display","v":["400"]},{"f":"Ramabhadra","c":"sans-serif","v":["400"]},{"f":"Ramaraja","c":"serif","v":["400"]},{"f":"Rambla","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Rammetto One","c":"display","v":["400"]},{"f":"Rampart One","c":"display","v":["400"]},{"f":"Ranchers","c":"display","v":["400"]},{"f":"Rancho","c":"handwriting","v":["400"]},{"f":"Ranga","c":"display","v":["400","700"]},{"f":"Rasa","c":"serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Rationale","c":"sans-serif","v":["400"]},{"f":"Ravi Prakash","c":"display","v":["400"]},{"f":"Readex Pro","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Recursive","c":"sans-serif","v":["300","400","500","600","700","800","900"]},{"f":"Red Hat Display","c":"sans-serif","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Red Hat Mono","c":"monospace","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Red Hat Text","c":"sans-serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Red Rose","c":"display","v":["300","400","500","600","700"]},{"f":"Redacted","c":"display","v":["400"]},{"f":"Redacted Script","c":"display","v":["300","400","700"]},{"f":"Reddit Mono","c":"monospace","v":["200","300","400","500","600","700","800","900"]},{"f":"Reddit Sans","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Reddit Sans Condensed","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Redressed","c":"handwriting","v":["400"]},{"f":"Reem Kufi","c":"sans-serif","v":["400","500","600","700"]},{"f":"Reem Kufi Fun","c":"sans-serif","v":["400","500","600","700"]},{"f":"Reem Kufi Ink","c":"sans-serif","v":["400"]},{"f":"Reenie Beanie","c":"handwriting","v":["400"]},{"f":"Reggae One","c":"display","v":["400"]},{"f":"Rethink Sans","c":"sans-serif","v":["400","500","600","700","800","400i","500i","600i","700i","800i"]},{"f":"Revalia","c":"display","v":["400"]},{"f":"Rhodium Libre","c":"serif","v":["400"]},{"f":"Ribeye","c":"display","v":["400"]},{"f":"Ribeye Marrow","c":"display","v":["400"]},{"f":"Righteous","c":"display","v":["400"]},{"f":"Risque","c":"display","v":["400"]},{"f":"Road Rage","c":"display","v":["400"]},{"f":"Roboto","c":"sans-serif","v":["100","100i","300","300i","400","400i","500","500i","700","700i","900","900i"]},{"f":"Roboto Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Roboto Flex","c":"sans-serif","v":["400"]},{"f":"Roboto Mono","c":"monospace","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"]},{"f":"Roboto Serif","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Roboto Slab","c":"serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Rochester","c":"handwriting","v":["400"]},{"f":"Rock 3D","c":"display","v":["400"]},{"f":"Rock Salt","c":"handwriting","v":["400"]},{"f":"RocknRoll One","c":"sans-serif","v":["400"]},{"f":"Rokkitt","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Romanesco","c":"handwriting","v":["400"]},{"f":"Ropa Sans","c":"sans-serif","v":["400","400i"]},{"f":"Rosario","c":"sans-serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Rosarivo","c":"serif","v":["400","400i"]},{"f":"Rouge Script","c":"handwriting","v":["400"]},{"f":"Rowdies","c":"display","v":["300","400","700"]},{"f":"Rozha One","c":"serif","v":["400"]},{"f":"Rubik","c":"sans-serif","v":["300","400","500","600","700","800","900","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Rubik 80s Fade","c":"display","v":["400"]},{"f":"Rubik Beastly","c":"display","v":["400"]},{"f":"Rubik Broken Fax","c":"display","v":["400"]},{"f":"Rubik Bubbles","c":"display","v":["400"]},{"f":"Rubik Burned","c":"display","v":["400"]},{"f":"Rubik Dirt","c":"display","v":["400"]},{"f":"Rubik Distressed","c":"display","v":["400"]},{"f":"Rubik Doodle Shadow","c":"display","v":["400"]},{"f":"Rubik Doodle Triangles","c":"display","v":["400"]},{"f":"Rubik Gemstones","c":"display","v":["400"]},{"f":"Rubik Glitch","c":"display","v":["400"]},{"f":"Rubik Glitch Pop","c":"display","v":["400"]},{"f":"Rubik Iso","c":"display","v":["400"]},{"f":"Rubik Lines","c":"display","v":["400"]},{"f":"Rubik Maps","c":"display","v":["400"]},{"f":"Rubik Marker Hatch","c":"display","v":["400"]},{"f":"Rubik Maze","c":"display","v":["400"]},{"f":"Rubik Microbe","c":"display","v":["400"]},{"f":"Rubik Mono One","c":"sans-serif","v":["400"]},{"f":"Rubik Moonrocks","c":"display","v":["400"]},{"f":"Rubik Pixels","c":"display","v":["400"]},{"f":"Rubik Puddles","c":"display","v":["400"]},{"f":"Rubik Scribble","c":"display","v":["400"]},{"f":"Rubik Spray Paint","c":"display","v":["400"]},{"f":"Rubik Storm","c":"display","v":["400"]},{"f":"Rubik Vinyl","c":"display","v":["400"]},{"f":"Rubik Wet Paint","c":"display","v":["400"]},{"f":"Ruda","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"Rufina","c":"serif","v":["400","700"]},{"f":"Ruge Boogie","c":"handwriting","v":["400"]},{"f":"Ruluko","c":"sans-serif","v":["400"]},{"f":"Rum Raisin","c":"sans-serif","v":["400"]},{"f":"Ruslan Display","c":"display","v":["400"]},{"f":"Russo One","c":"sans-serif","v":["400"]},{"f":"Ruthie","c":"handwriting","v":["400"]},{"f":"Ruwudu","c":"serif","v":["400","500","600","700"]},{"f":"Rye","c":"display","v":["400"]},{"f":"STIX Two Text","c":"serif","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"SUSE","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Sacramento","c":"handwriting","v":["400"]},{"f":"Sahitya","c":"serif","v":["400","700"]},{"f":"Sail","c":"display","v":["400"]},{"f":"Saira","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Saira Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Saira Extra Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Saira Semi Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Saira Stencil One","c":"display","v":["400"]},{"f":"Salsa","c":"display","v":["400"]},{"f":"Sanchez","c":"serif","v":["400","400i"]},{"f":"Sancreek","c":"display","v":["400"]},{"f":"Sankofa Display","c":"sans-serif","v":["400"]},{"f":"Sansita","c":"sans-serif","v":["400","400i","700","700i","800","800i","900","900i"]},{"f":"Sansita Swashed","c":"display","v":["300","400","500","600","700","800","900"]},{"f":"Sarabun","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Sarala","c":"sans-serif","v":["400","700"]},{"f":"Sarina","c":"display","v":["400"]},{"f":"Sarpanch","c":"sans-serif","v":["400","500","600","700","800","900"]},{"f":"Sassy Frass","c":"handwriting","v":["400"]},{"f":"Satisfy","c":"handwriting","v":["400"]},{"f":"Sawarabi Gothic","c":"sans-serif","v":["400"]},{"f":"Sawarabi Mincho","c":"serif","v":["400"]},{"f":"Scada","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Scheherazade New","c":"serif","v":["400","500","600","700"]},{"f":"Schibsted Grotesk","c":"sans-serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Schoolbell","c":"handwriting","v":["400"]},{"f":"Scope One","c":"serif","v":["400"]},{"f":"Seaweed Script","c":"display","v":["400"]},{"f":"Secular One","c":"sans-serif","v":["400"]},{"f":"Sedan","c":"serif","v":["400","400i"]},{"f":"Sedan SC","c":"serif","v":["400"]},{"f":"Sedgwick Ave","c":"handwriting","v":["400"]},{"f":"Sedgwick Ave Display","c":"handwriting","v":["400"]},{"f":"Sen","c":"sans-serif","v":["400","500","600","700","800"]},{"f":"Send Flowers","c":"handwriting","v":["400"]},{"f":"Sevillana","c":"display","v":["400"]},{"f":"Seymour One","c":"sans-serif","v":["400"]},{"f":"Shadows Into Light","c":"handwriting","v":["400"]},{"f":"Shadows Into Light Two","c":"handwriting","v":["400"]},{"f":"Shalimar","c":"handwriting","v":["400"]},{"f":"Shantell Sans","c":"display","v":["300","400","500","600","700","800","300i","400i","500i","600i","700i","800i"]},{"f":"Shanti","c":"sans-serif","v":["400"]},{"f":"Share","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"Share Tech","c":"sans-serif","v":["400"]},{"f":"Share Tech Mono","c":"monospace","v":["400"]},{"f":"Shippori Antique","c":"sans-serif","v":["400"]},{"f":"Shippori Antique B1","c":"sans-serif","v":["400"]},{"f":"Shippori Mincho","c":"serif","v":["400","500","600","700","800"]},{"f":"Shippori Mincho B1","c":"serif","v":["400","500","600","700","800"]},{"f":"Shizuru","c":"display","v":["400"]},{"f":"Shojumaru","c":"display","v":["400"]},{"f":"Short Stack","c":"handwriting","v":["400"]},{"f":"Shrikhand","c":"display","v":["400"]},{"f":"Siemreap","c":"sans-serif","v":["400"]},{"f":"Sigmar","c":"display","v":["400"]},{"f":"Sigmar One","c":"display","v":["400"]},{"f":"Signika","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Signika Negative","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Silkscreen","c":"display","v":["400","700"]},{"f":"Simonetta","c":"display","v":["400","400i","900","900i"]},{"f":"Single Day","c":"display","v":["400"]},{"f":"Sintony","c":"sans-serif","v":["400","700"]},{"f":"Sirin Stencil","c":"display","v":["400"]},{"f":"Six Caps","c":"sans-serif","v":["400"]},{"f":"Sixtyfour","c":"monospace","v":["400"]},{"f":"Sixtyfour Convergence","c":"monospace","v":["400"]},{"f":"Skranji","c":"display","v":["400","700"]},{"f":"Slabo 13px","c":"serif","v":["400"]},{"f":"Slabo 27px","c":"serif","v":["400"]},{"f":"Slackey","c":"display","v":["400"]},{"f":"Slackside One","c":"handwriting","v":["400"]},{"f":"Smokum","c":"display","v":["400"]},{"f":"Smooch","c":"handwriting","v":["400"]},{"f":"Smooch Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Smythe","c":"display","v":["400"]},{"f":"Sniglet","c":"display","v":["400","800"]},{"f":"Snippet","c":"sans-serif","v":["400"]},{"f":"Snowburst One","c":"display","v":["400"]},{"f":"Sofadi One","c":"display","v":["400"]},{"f":"Sofia","c":"handwriting","v":["400"]},{"f":"Sofia Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Sofia Sans Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Sofia Sans Extra Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Sofia Sans Semi Condensed","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Solitreo","c":"handwriting","v":["400"]},{"f":"Solway","c":"serif","v":["300","400","500","700","800"]},{"f":"Sometype Mono","c":"monospace","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Song Myung","c":"serif","v":["400"]},{"f":"Sono","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Sonsie One","c":"display","v":["400"]},{"f":"Sora","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Sorts Mill Goudy","c":"serif","v":["400","400i"]},{"f":"Sour Gummy","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Source Code Pro","c":"monospace","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Source Sans 3","c":"sans-serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Source Serif 4","c":"serif","v":["200","300","400","500","600","700","800","900","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Space Grotesk","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Space Mono","c":"monospace","v":["400","400i","700","700i"]},{"f":"Special Elite","c":"display","v":["400"]},{"f":"Spectral","c":"serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Spectral SC","c":"serif","v":["200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Spicy Rice","c":"display","v":["400"]},{"f":"Spinnaker","c":"sans-serif","v":["400"]},{"f":"Spirax","c":"display","v":["400"]},{"f":"Splash","c":"handwriting","v":["400"]},{"f":"Spline Sans","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Spline Sans Mono","c":"monospace","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Squada One","c":"display","v":["400"]},{"f":"Square Peg","c":"handwriting","v":["400"]},{"f":"Sree Krushnadevaraya","c":"serif","v":["400"]},{"f":"Sriracha","c":"handwriting","v":["400"]},{"f":"Srisakdi","c":"display","v":["400","700"]},{"f":"Staatliches","c":"display","v":["400"]},{"f":"Stalemate","c":"handwriting","v":["400"]},{"f":"Stalinist One","c":"display","v":["400"]},{"f":"Stardos Stencil","c":"display","v":["400","700"]},{"f":"Stick","c":"sans-serif","v":["400"]},{"f":"Stick No Bills","c":"sans-serif","v":["200","300","400","500","600","700","800"]},{"f":"Stint Ultra Condensed","c":"serif","v":["400"]},{"f":"Stint Ultra Expanded","c":"serif","v":["400"]},{"f":"Stoke","c":"serif","v":["300","400"]},{"f":"Strait","c":"sans-serif","v":["400"]},{"f":"Style Script","c":"handwriting","v":["400"]},{"f":"Stylish","c":"sans-serif","v":["400"]},{"f":"Sue Ellen Francisco","c":"handwriting","v":["400"]},{"f":"Suez One","c":"serif","v":["400"]},{"f":"Sulphur Point","c":"sans-serif","v":["300","400","700"]},{"f":"Sumana","c":"serif","v":["400","700"]},{"f":"Sunflower","c":"sans-serif","v":["300","500","700"]},{"f":"Sunshiney","c":"handwriting","v":["400"]},{"f":"Supermercado One","c":"display","v":["400"]},{"f":"Sura","c":"serif","v":["400","700"]},{"f":"Suranna","c":"serif","v":["400"]},{"f":"Suravaram","c":"serif","v":["400"]},{"f":"Suwannaphum","c":"serif","v":["100","300","400","700","900"]},{"f":"Swanky and Moo Moo","c":"handwriting","v":["400"]},{"f":"Syncopate","c":"sans-serif","v":["400","700"]},{"f":"Syne","c":"sans-serif","v":["400","500","600","700","800"]},{"f":"Syne Mono","c":"monospace","v":["400"]},{"f":"Syne Tactile","c":"display","v":["400"]},{"f":"Tac One","c":"sans-serif","v":["400"]},{"f":"Tai Heritage Pro","c":"serif","v":["400","700"]},{"f":"Tajawal","c":"sans-serif","v":["200","300","400","500","700","800","900"]},{"f":"Tangerine","c":"handwriting","v":["400","700"]},{"f":"Tapestry","c":"handwriting","v":["400"]},{"f":"Taprom","c":"display","v":["400"]},{"f":"Tauri","c":"sans-serif","v":["400"]},{"f":"Taviraj","c":"serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Teachers","c":"sans-serif","v":["400","500","600","700","800","400i","500i","600i","700i","800i"]},{"f":"Teko","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Tektur","c":"display","v":["400","500","600","700","800","900"]},{"f":"Telex","c":"sans-serif","v":["400"]},{"f":"Tenali Ramakrishna","c":"sans-serif","v":["400"]},{"f":"Tenor Sans","c":"sans-serif","v":["400"]},{"f":"Text Me One","c":"sans-serif","v":["400"]},{"f":"Texturina","c":"serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Thasadith","c":"sans-serif","v":["400","400i","700","700i"]},{"f":"The Girl Next Door","c":"handwriting","v":["400"]},{"f":"The Nautigal","c":"handwriting","v":["400","700"]},{"f":"Tienne","c":"serif","v":["400","700","900"]},{"f":"Tillana","c":"display","v":["400","500","600","700","800"]},{"f":"Tilt Neon","c":"display","v":["400"]},{"f":"Tilt Prism","c":"display","v":["400"]},{"f":"Tilt Warp","c":"display","v":["400"]},{"f":"Timmana","c":"sans-serif","v":["400"]},{"f":"Tinos","c":"serif","v":["400","400i","700","700i"]},{"f":"Tiny5","c":"sans-serif","v":["400"]},{"f":"Tiro Bangla","c":"serif","v":["400","400i"]},{"f":"Tiro Devanagari Hindi","c":"serif","v":["400","400i"]},{"f":"Tiro Devanagari Marathi","c":"serif","v":["400","400i"]},{"f":"Tiro Devanagari Sanskrit","c":"serif","v":["400","400i"]},{"f":"Tiro Gurmukhi","c":"serif","v":["400","400i"]},{"f":"Tiro Kannada","c":"serif","v":["400","400i"]},{"f":"Tiro Tamil","c":"serif","v":["400","400i"]},{"f":"Tiro Telugu","c":"serif","v":["400","400i"]},{"f":"Titan One","c":"display","v":["400"]},{"f":"Titillium Web","c":"sans-serif","v":["200","200i","300","300i","400","400i","600","600i","700","700i","900"]},{"f":"Tomorrow","c":"sans-serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Tourney","c":"display","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Trade Winds","c":"display","v":["400"]},{"f":"Train One","c":"display","v":["400"]},{"f":"Trirong","c":"serif","v":["100","100i","200","200i","300","300i","400","400i","500","500i","600","600i","700","700i","800","800i","900","900i"]},{"f":"Trispace","c":"sans-serif","v":["100","200","300","400","500","600","700","800"]},{"f":"Trocchi","c":"serif","v":["400"]},{"f":"Trochut","c":"display","v":["400","400i","700"]},{"f":"Truculenta","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Trykker","c":"serif","v":["400"]},{"f":"Tsukimi Rounded","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Tulpen One","c":"display","v":["400"]},{"f":"Turret Road","c":"display","v":["200","300","400","500","700","800"]},{"f":"Twinkle Star","c":"handwriting","v":["400"]},{"f":"Ubuntu","c":"sans-serif","v":["300","300i","400","400i","500","500i","700","700i"]},{"f":"Ubuntu Condensed","c":"sans-serif","v":["400"]},{"f":"Ubuntu Mono","c":"monospace","v":["400","400i","700","700i"]},{"f":"Ubuntu Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","100i","200i","300i","400i","500i","600i","700i","800i"]},{"f":"Ubuntu Sans Mono","c":"monospace","v":["400","500","600","700","400i","500i","600i","700i"]},{"f":"Uchen","c":"serif","v":["400"]},{"f":"Ultra","c":"serif","v":["400"]},{"f":"Unbounded","c":"sans-serif","v":["200","300","400","500","600","700","800","900"]},{"f":"Uncial Antiqua","c":"display","v":["400"]},{"f":"Underdog","c":"display","v":["400"]},{"f":"Unica One","c":"display","v":["400"]},{"f":"UnifrakturCook","c":"display","v":["700"]},{"f":"UnifrakturMaguntia","c":"display","v":["400"]},{"f":"Unkempt","c":"display","v":["400","700"]},{"f":"Unlock","c":"display","v":["400"]},{"f":"Unna","c":"serif","v":["400","400i","700","700i"]},{"f":"Updock","c":"handwriting","v":["400"]},{"f":"Urbanist","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"VT323","c":"monospace","v":["400"]},{"f":"Vampiro One","c":"display","v":["400"]},{"f":"Varela","c":"sans-serif","v":["400"]},{"f":"Varela Round","c":"sans-serif","v":["400"]},{"f":"Varta","c":"sans-serif","v":["300","400","500","600","700"]},{"f":"Vast Shadow","c":"serif","v":["400"]},{"f":"Vazirmatn","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Vesper Libre","c":"serif","v":["400","500","700","900"]},{"f":"Viaoda Libre","c":"display","v":["400"]},{"f":"Vibes","c":"display","v":["400"]},{"f":"Vibur","c":"handwriting","v":["400"]},{"f":"Victor Mono","c":"monospace","v":["100","200","300","400","500","600","700","100i","200i","300i","400i","500i","600i","700i"]},{"f":"Vidaloka","c":"serif","v":["400"]},{"f":"Viga","c":"sans-serif","v":["400"]},{"f":"Vina Sans","c":"display","v":["400"]},{"f":"Voces","c":"sans-serif","v":["400"]},{"f":"Volkhov","c":"serif","v":["400","400i","700","700i"]},{"f":"Vollkorn","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Vollkorn SC","c":"serif","v":["400","600","700","900"]},{"f":"Voltaire","c":"sans-serif","v":["400"]},{"f":"Vujahday Script","c":"handwriting","v":["400"]},{"f":"Waiting for the Sunrise","c":"handwriting","v":["400"]},{"f":"Wallpoet","c":"display","v":["400"]},{"f":"Walter Turncoat","c":"handwriting","v":["400"]},{"f":"Warnes","c":"display","v":["400"]},{"f":"Water Brush","c":"handwriting","v":["400"]},{"f":"Waterfall","c":"handwriting","v":["400"]},{"f":"Wavefont","c":"display","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Wellfleet","c":"serif","v":["400"]},{"f":"Wendy One","c":"sans-serif","v":["400"]},{"f":"Whisper","c":"handwriting","v":["400"]},{"f":"WindSong","c":"handwriting","v":["400","500"]},{"f":"Wire One","c":"sans-serif","v":["400"]},{"f":"Wittgenstein","c":"serif","v":["400","500","600","700","800","900","400i","500i","600i","700i","800i","900i"]},{"f":"Wix Madefor Display","c":"sans-serif","v":["400","500","600","700","800"]},{"f":"Wix Madefor Text","c":"sans-serif","v":["400","400i","500","500i","600","600i","700","700i","800","800i"]},{"f":"Work Sans","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Workbench","c":"monospace","v":["400"]},{"f":"Xanh Mono","c":"monospace","v":["400","400i"]},{"f":"Yaldevi","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Yanone Kaffeesatz","c":"sans-serif","v":["200","300","400","500","600","700"]},{"f":"Yantramanav","c":"sans-serif","v":["100","300","400","500","700","900"]},{"f":"Yarndings 12","c":"display","v":["400"]},{"f":"Yarndings 12 Charted","c":"display","v":["400"]},{"f":"Yarndings 20","c":"display","v":["400"]},{"f":"Yarndings 20 Charted","c":"display","v":["400"]},{"f":"Yatra One","c":"display","v":["400"]},{"f":"Yellowtail","c":"handwriting","v":["400"]},{"f":"Yeon Sung","c":"display","v":["400"]},{"f":"Yeseva One","c":"display","v":["400"]},{"f":"Yesteryear","c":"handwriting","v":["400"]},{"f":"Yomogi","c":"handwriting","v":["400"]},{"f":"Young Serif","c":"serif","v":["400"]},{"f":"Yrsa","c":"serif","v":["300","400","500","600","700","300i","400i","500i","600i","700i"]},{"f":"Ysabeau","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Ysabeau Infant","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Ysabeau Office","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900","100i","200i","300i","400i","500i","600i","700i","800i","900i"]},{"f":"Ysabeau SC","c":"sans-serif","v":["100","200","300","400","500","600","700","800","900"]},{"f":"Yuji Boku","c":"serif","v":["400"]},{"f":"Yuji Hentaigana Akari","c":"handwriting","v":["400"]},{"f":"Yuji Hentaigana Akebono","c":"handwriting","v":["400"]},{"f":"Yuji Mai","c":"serif","v":["400"]},{"f":"Yuji Syuku","c":"serif","v":["400"]},{"f":"Yusei Magic","c":"sans-serif","v":["400"]},{"f":"ZCOOL KuaiLe","c":"sans-serif","v":["400"]},{"f":"ZCOOL QingKe HuangYou","c":"sans-serif","v":["400"]},{"f":"ZCOOL XiaoWei","c":"sans-serif","v":["400"]},{"f":"Zain","c":"sans-serif","v":["200","300","400","700","800","900"]},{"f":"Zen Antique","c":"serif","v":["400"]},{"f":"Zen Antique Soft","c":"serif","v":["400"]},{"f":"Zen Dots","c":"display","v":["400"]},{"f":"Zen Kaku Gothic Antique","c":"sans-serif","v":["300","400","500","700","900"]},{"f":"Zen Kaku Gothic New","c":"sans-serif","v":["300","400","500","700","900"]},{"f":"Zen Kurenaido","c":"sans-serif","v":["400"]},{"f":"Zen Loop","c":"display","v":["400","400i"]},{"f":"Zen Maru Gothic","c":"sans-serif","v":["300","400","500","700","900"]},{"f":"Zen Old Mincho","c":"serif","v":["400","500","600","700","900"]},{"f":"Zen Tokyo Zoo","c":"display","v":["400"]},{"f":"Zeyada","c":"handwriting","v":["400"]},{"f":"Zhi Mang Xing","c":"handwriting","v":["400"]},{"f":"Zilla Slab","c":"serif","v":["300","300i","400","400i","500","500i","600","600i","700","700i"]},{"f":"Zilla Slab Highlight","c":"serif","v":["400","700"]}]} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Typography/system-fonts.json b/wp-content/themes/kenta/lotta-framework/src/Typography/system-fonts.json new file mode 100644 index 0000000000..79886fda35 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Typography/system-fonts.json @@ -0,0 +1 @@ +{"kind":"webfonts#webfontList","items":[{"id":"arial","label":"Arial","stack":"Arial, Helvetica Neue, Helvetica, sans-serif"},{"id":"calibri","label":"Calibri","stack":"Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;"},{"id":"consolas","label":"Consolas","stack":"Consolas, monaco, monospace"},{"id":"courier-new","label":"Courier New","stack":"Courier New, Courier, Lucida Sans Typewriter, Lucida Typewriter, monospace"},{"id":"helvetica","label":"Helvetica Neue","stack":"Helvetica Neue, Helvetica, Arial, sans-serif"},{"id":"georgia","label":"Georgia","stack":"Georgia, Times, Times New Roman, serif"},{"id":"futura","label":"Futura","stack":"Futura, Trebuchet MS, Arial, sans-serif"},{"id":"lucida-grande","label":"Lucida Grande","stack":"Lucida Grande, Lucida Sans Unicode, Lucida Sans, Geneva, Verdana, sans-serif"},{"id":"tahoma","label":"Tahoma","stack":"Tahoma, Verdana, Segoe, sans-serif"},{"id":"times-new-roman","label":"Times New Roman","stack":"TimesNewRoman, Times New Roman, Times, Baskerville, Georgia, serif"},{"id":"trebuchet","label":"Trebuchet MS","stack":"Trebuchet MS, Lucida Grande, Lucida Sans Unicode, Lucida Sans, Tahoma, sans-serif"},{"id":"palatino","label":"Palatino","stack":"Palatino, Palatino Linotype, Palatino LT STD, Book Antiqua, Georgia, serif"},{"id":"verdana","label":"Verdana","stack":"Verdana, Geneva, sans-serif;"}]} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/src/Utils.php b/wp-content/themes/kenta/lotta-framework/src/Utils.php new file mode 100644 index 0000000000..f9f0609a62 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/src/Utils.php @@ -0,0 +1,386 @@ + $v ) { + if ( is_string( $v ) ) { + $classNames[] = $v; + } else if ( is_bool( $v ) && $v === true ) { + $classNames[] = $k; + } + } + } + } + + return implode( ' ', $classNames ); + } + + /** + * Print attribute string + * + * @param $attributes + */ + public static function print_attribute_string( $attributes ) { + echo self::render_attribute_string( $attributes ); + } + + /** + * Render attribute string + * + * @param $attributes + * + * @return string + */ + public static function render_attribute_string( $attributes ) { + $attrs = []; + + foreach ( $attributes as $attr => $value ) { + $attrs[] = $attr . '=' . '"' . esc_attr( $value ) . '"'; + } + + return implode( ' ', $attrs ); + } + + /** + * Encode uri component + * + * @param $str + * + * @return string + */ + public static function encode_uri_component( $str ) { + $revert = [ + '%21' => '!', + '%2A' => '*', + '%27' => "'", + '%28' => '(', + '%29' => ')', + ]; + + return strtr( rawurlencode( $str ), $revert ); + } + + /** + * Flatten a multi-dimensional array into a single level. + * + * @See: https://github.com/laravel/framework + * + * @param $array + * @param $depth + * + * @return array + */ + public static function array_flatten( $array, $depth = INF ) { + $result = []; + + foreach ( $array as $item ) { + + if ( ! is_array( $item ) ) { + $result[] = $item; + } else { + $values = $depth === 1 + ? array_values( $item ) + : self::array_flatten( $item, $depth - 1 ); + + foreach ( $values as $value ) { + $result[] = $value; + } + } + } + + return $result; + } + + /** + * Collapse an array of arrays into a single array. + * + * @See: https://github.com/laravel/framework + * + * @param $array + * + * @return array + */ + public static function array_collapse( $array ) { + $results = []; + + foreach ( $array as $values ) { + if ( ! is_array( $values ) ) { + continue; + } + + $results[] = $values; + } + + return array_merge( [], ...$results ); + } + + /** + * Just like array_pluck function in laravel + * + * @param $key + * @param $arr + * + * @return array + */ + public static function array_pluck( $key, $arr ) { + return array_map( function ( $item ) use ( $key ) { + return $item[ $key ]; + }, $arr ); + } + + /** + * Find value in an array using a string path + * + * @param $arr + * @param $path + * @param null $default + * + * @return mixed|null + */ + public static function array_path( $arr, $path, $default = null ) { + $keys = explode( '.', $path ); + $source = $arr; + + while ( count( $keys ) > 0 ) { + $key = array_shift( $keys ); + + // collect value + if ( $key === '[]' ) { + $result = []; + + foreach ( $source as $item ) { + $result[] = self::array_path( $item, implode( '.', $keys ), $default ); + } + + return $result; + } + + if ( is_array( $source ) && isset( $source[ $key ] ) ) { + $source = $source[ $key ]; + } else { + // current key doesn't exist, stop loop and return default value + return $default; + } + } + + // we have reached the end of the path + return $source; + } + + /** + * Generate rand key + * + * @return string + */ + public static function rand_key() { + return 'lotta_rand_' . md5( time() . '-' . uniqid( wp_rand(), true ) . '-' . wp_rand() ); + } + + /** + * Get units config + * + * @param array $overrides + * + * @return array[] + */ + public static function units_config( array $overrides = [] ) { + $units = [ + [ + 'unit' => 'px', + 'min' => 0, + 'max' => 40, + ], + [ + 'unit' => 'em', + 'min' => 0, + 'max' => 30, + ], + [ + 'unit' => '%', + 'min' => 0, + 'max' => 100, + ], + [ + 'unit' => 'vw', + 'min' => 0, + 'max' => 100, + ], + [ + 'unit' => 'vh', + 'min' => 0, + 'max' => 100, + ], + [ + 'unit' => 'pt', + 'min' => 0, + 'max' => 100, + ], + [ + 'unit' => 'rem', + 'min' => 0, + 'max' => 30, + ], + ]; + + foreach ( $overrides as $single_override ) { + foreach ( $units as $key => $single_unit ) { + if ( $single_override['unit'] === $single_unit['unit'] ) { + $units[ $key ] = $single_override; + } + } + } + + return $units; + } + + /** + * Polyfill for `str_contains()` function added in PHP 8.0. + * + * @param $haystack + * @param $needle + * + * @return bool + */ + public static function str_contains( $haystack, $needle ) { + return ( '' === $needle || false !== strpos( $haystack, $needle ) ); + } + + /** + * Polyfill for `str_starts_with()` function added in PHP 8.0. + * + * @param $haystack + * @param $needle + * + * @return bool + */ + public static function str_starts_with( $haystack, $needle ) { + if ( function_exists( 'str_starts_with' ) ) { + return str_starts_with( $haystack, $needle ); + } + + if ( '' === $needle ) { + return true; + } + + return 0 === strpos( $haystack, $needle ); + } + + /** + * Polyfill for `str_ends_with()` function added in PHP 8.0. + * + * @param $haystack + * @param $needle + * + * @return bool + */ + public static function str_ends_with( $haystack, $needle ) { + if ( function_exists( 'str_ends_with' ) ) { + return str_ends_with( $haystack, $needle ); + } + + if ( '' === $haystack && '' !== $needle ) { + return false; + } + $len = strlen( $needle ); + + return 0 === substr_compare( $haystack, $needle, - $len, $len ); + } + + /** + * Echo version for customizer_url + * + * @param $location + * + * @return void + */ + public static function the_customizer_url( $location ) { + echo esc_url( self::customizer_url( $location ) ); + } + + /** + * Get customizer_url + * + * @param $location + * + * @return string + */ + public static function customizer_url( $location ) { + $query = array(); + $query['lotta_auto_focus'] = $location; + + return add_query_arg( $query, admin_url( 'customize.php' ) ); + } + + /** + * Register translation string + * + * @param $str + * @param $domain + */ + public static function register_translate_string( $str, $domain ) { + if ( function_exists( 'pll_register_string' ) ) { + pll_register_string( $domain, $str, self::app()->id() ); + } else { + do_action( 'wpml_register_single_string', self::app()->id(), $domain, $str ); + } + } + + /** + * Get application instance + * + * @param null $abstract + * @param array $parameters + * + * @return Application|mixed|object + */ + public static function app( $abstract = null, array $parameters = [] ) { + if ( is_null( $abstract ) ) { + return Container::getInstance(); + } + + return Container::getInstance()->make( $abstract, $parameters ); + } + + /** + * Get translate string + * + * @param string $str + * @param string $domain + * + * @return mixed + */ + public static function __( $str, $domain ) { + if ( function_exists( 'pll__' ) ) { + return pll__( $str ); + } + + return apply_filters( 'wpml_translate_single_string', $str, self::app()->id(), $domain ); + } +} \ No newline at end of file diff --git a/wp-content/themes/kenta/lotta-framework/vendor/autoload.php b/wp-content/themes/kenta/lotta-framework/vendor/autoload.php new file mode 100644 index 0000000000..77fe5cf907 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/InstalledVersions.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000000..51e734a774 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/LICENSE b/wp-content/themes/kenta/lotta-framework/vendor/composer/LICENSE new file mode 100644 index 0000000000..f27399a042 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_classmap.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000000..0fb0a2c194 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_files.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_files.php new file mode 100644 index 0000000000..ed87d3f319 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_files.php @@ -0,0 +1,10 @@ + $vendorDir . '/wptt/webfont-loader/wptt-webfont-loader.php', +); diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_namespaces.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000000..15a2ff3ad6 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/src'), +); diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_real.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_real.php new file mode 100644 index 0000000000..7ddca18e37 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_real.php @@ -0,0 +1,50 @@ +register(true); + + $filesToLoad = \Composer\Autoload\ComposerStaticInit269f5b1387916dc70df116bfa958837b::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + + return $loader; + } +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_static.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_static.php new file mode 100644 index 0000000000..91cf81a55d --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/autoload_static.php @@ -0,0 +1,40 @@ + __DIR__ . '/..' . '/wptt/webfont-loader/wptt-webfont-loader.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'L' => + array ( + 'LottaFramework\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'LottaFramework\\' => + array ( + 0 => __DIR__ . '/../..' . '/src', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit269f5b1387916dc70df116bfa958837b::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit269f5b1387916dc70df116bfa958837b::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit269f5b1387916dc70df116bfa958837b::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.json b/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.json new file mode 100644 index 0000000000..1ef96746bd --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.json @@ -0,0 +1,54 @@ +{ + "packages": [ + { + "name": "wptt/webfont-loader", + "version": "v1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/WPTT/webfont-loader.git", + "reference": "780e564bf0554c419ef447c2b5b768b497ecee40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/WPTT/webfont-loader/zipball/780e564bf0554c419ef447c2b5b768b497ecee40", + "reference": "780e564bf0554c419ef447c2b5b768b497ecee40", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "composer/installers": "~1.0", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "wptrt/wpthemereview": "^0.2.1" + }, + "time": "2022-06-17T10:41:00+00:00", + "type": "package", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Contributors", + "homepage": "https://github.com/WPTT/font-loader/graphs/contributors" + } + ], + "description": "Locally host webfonts.", + "homepage": "https://github.com/WPTT/font-loader", + "keywords": [ + "wordpress" + ], + "support": { + "issues": "https://github.com/WPTT/font-loader/issues", + "source": "https://github.com/WPTT/font-loader" + }, + "install-path": "../wptt/webfont-loader" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.php new file mode 100644 index 0000000000..e73bdc3f38 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/installed.php @@ -0,0 +1,32 @@ + array( + 'name' => 'ibllex/lotta-framework', + 'pretty_version' => 'v2.0.21', + 'version' => '2.0.21.0', + 'reference' => 'a4b3a086e7a9c2022d425eaca27901c50b92fbd0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + 'ibllex/lotta-framework' => array( + 'pretty_version' => 'v2.0.21', + 'version' => '2.0.21.0', + 'reference' => 'a4b3a086e7a9c2022d425eaca27901c50b92fbd0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'wptt/webfont-loader' => array( + 'pretty_version' => 'v1.1.2', + 'version' => '1.1.2.0', + 'reference' => '780e564bf0554c419ef447c2b5b768b497ecee40', + 'type' => 'package', + 'install_path' => __DIR__ . '/../wptt/webfont-loader', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/wp-content/themes/kenta/lotta-framework/vendor/composer/platform_check.php b/wp-content/themes/kenta/lotta-framework/vendor/composer/platform_check.php new file mode 100644 index 0000000000..589e9e770b --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 70200)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.2.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/.gitattributes b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/.gitattributes new file mode 100644 index 0000000000..3253c9b6f9 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/.gitattributes @@ -0,0 +1,6 @@ +.editorconfig export-ignore +.gitattibutes export-ignore +.gitignore export-ignore +composer.json export-ignore +composer.lock export-ignore +phpcs.xml.dist export-ignore diff --git a/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/LICENSE b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/LICENSE new file mode 100644 index 0000000000..5f616bcd1c --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 WPTT + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/README.md b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/README.md new file mode 100644 index 0000000000..2fee5b4ef3 --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/README.md @@ -0,0 +1,124 @@ +# Webfonts Loader + +Downloads webfonts (like for example Google-Fonts), and hosts them locally on a WordPress site. + +This improves performance (fewer requests to multiple top-level domains) and increases privacy. Since fonts get hosted locally on the site, there are no pings to a 3rd-party server to get the webfonts and therefore no tracking. + +## Usage + +A WordPress theme will typically enqueue assets using the [`wp_enqueue_style`](https://developer.wordpress.org/reference/functions/wp_enqueue_style/) function: + +```php +function my_theme_enqueue_assets() { + // Load the theme stylesheet. + wp_enqueue_style( + 'my-theme', + get_stylesheet_directory_uri() . '/style.css', + array(), + '1.0' + ); + // Load the webfont. + wp_enqueue_style( + 'literata', + 'https://fonts.googleapis.com/css2?family=Literata&display=swap', + array(), + '1.0' + ); +} +add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_assets' ); +``` + +To locally host the webfonts, you will first need to download the [`wptt-webfont-loader.php`](https://raw.githubusercontent.com/WPTT/font-loader/master/wptt-webfont-loader.php) file from this repository and copy it in your theme. Once you do that, the above code can be converted to this: +```php +function my_theme_enqueue_assets() { + // Include the file. + require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' ); + // Load the theme stylesheet. + wp_enqueue_style( + 'my-theme', + get_stylesheet_directory_uri() . '/style.css', + array(), + '1.0' + ); + // Load the webfont. + wp_enqueue_style( + 'literata', + wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Literata&display=swap' ), + array(), + '1.0' + ); +} +add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_assets' ); +``` + +## Available functions + +### `wptt_get_webfont_styles` +``` +$remote_url = 'https://fonts.googleapis.com/css2?family=Literata&display=swap'; +$contents = wptt_get_webfont_styles( $remote_url ); +``` +Returns the stylesheet contents, using locally hosted webfonts. + +### `wptt_get_webfont_url` +``` +$remote_url = 'https://fonts.googleapis.com/css2?family=Literata&display=swap'; +$contents = wptt_get_webfont_url( $remote_url ); +``` +Returns a stylesheet URL, locally-hosted. + +## Build url for multiple fonts +```php +$font_families = array( + 'Quicksand:wght@300;400;500;600;700', + 'Work+Sans:wght@300;400;500;600;700' +); + +$fonts_url = add_query_arg( array( + 'family' => implode( '&family=', $font_families ), + 'display' => 'swap', +), 'https://fonts.googleapis.com/css2' ); + +$contents = wptt_get_webfont_url( esc_url_raw( $fonts_url ) ); +``` + +## Supporting IE +The `wptt_get_webfont_url` will - by default - download `.woff2` files. However, if you need to support IE you will need to use `.woff` files instead. To do that, you can pass `woff` as the 2nd argument in the `wptt_get_webfont_url` function: +```php +wptt_get_webfont_url( 'https://fonts.googleapis.com/css2?family=Literata&display=swap', 'woff' ); +``` + +## Storing In A Custom Directory +If you have the need to store font files in a custom directory you can pass a custom path and URL using filters. Be sure you add these filters **BEFORE** the file containing the `WPTT_WebFont_Loader` class is called. + +```php +/** + * Change the base path. + * This is by default WP_CONTENT_DIR. + * + * NOTE: Do not include trailing slash. + */ +add_filter( 'wptt_get_local_fonts_base_path', function( $path ) { + return WP_CONTENT_DIR; +} ); + +/** + * Change the base URL. + * This is by default the content_url(). + * + * NOTE: Do not include trailing slash. + */ +add_filter( 'wptt_get_local_fonts_base_url', function( $url ) { + return content_url(); +} ); + +/** + * Change the subfolder name. + * This is by default "fonts". + * + * Return empty string or false to not use a subfolder. + */ +add_filter( 'wptt_get_local_fonts_subfolder_name', function( $subfolder_name ) { + return 'fonts'; +} ); +``` diff --git a/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/wptt-webfont-loader.php b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/wptt-webfont-loader.php new file mode 100644 index 0000000000..b5c596053b --- /dev/null +++ b/wp-content/themes/kenta/lotta-framework/vendor/wptt/webfont-loader/wptt-webfont-loader.php @@ -0,0 +1,697 @@ +remote_url = $url; + + // Add a cleanup routine. + $this->schedule_cleanup(); + add_action( 'delete_fonts_folder', array( $this, 'delete_fonts_folder' ) ); + } + + /** + * Get the local URL which contains the styles. + * + * Fallback to the remote URL if we were unable to write the file locally. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_url() { + + // Check if the local stylesheet exists. + if ( $this->local_file_exists() ) { + + // Attempt to update the stylesheet. Return the local URL on success. + if ( $this->write_stylesheet() ) { + return $this->get_local_stylesheet_url(); + } + } + + // If the local file exists, return its URL, with a fallback to the remote URL. + return file_exists( $this->get_local_stylesheet_path() ) + ? $this->get_local_stylesheet_url() + : $this->remote_url; + } + + /** + * Get the local stylesheet URL. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_local_stylesheet_url() { + if ( ! $this->local_stylesheet_url ) { + $this->local_stylesheet_url = str_replace( + $this->get_base_path(), + $this->get_base_url(), + $this->get_local_stylesheet_path() + ); + } + return $this->local_stylesheet_url; + } + + /** + * Get styles with fonts downloaded locally. + * + * @access public + * @since 1.0.0 + * @return string + */ + public function get_styles() { + + // If we already have the local file, return its contents. + $local_stylesheet_contents = $this->get_local_stylesheet_contents(); + if ( $local_stylesheet_contents ) { + return $local_stylesheet_contents; + } + + // Get the remote URL contents. + $this->remote_styles = $this->get_remote_url_contents(); + + // Get an array of locally-hosted files. + $files = $this->get_local_files_from_css(); + + // Convert paths to URLs. + foreach ( $files as $remote => $local ) { + $files[ $remote ] = str_replace( + $this->get_base_path(), + $this->get_base_url(), + $local + ); + } + + $this->css = str_replace( + array_keys( $files ), + array_values( $files ), + $this->remote_styles + ); + + $this->write_stylesheet(); + + return $this->css; + } + + /** + * Get local stylesheet contents. + * + * @access public + * @since 1.1.0 + * @return string|false Returns the remote URL contents. + */ + public function get_local_stylesheet_contents() { + $local_path = $this->get_local_stylesheet_path(); + + // Check if the local stylesheet exists. + if ( $this->local_file_exists() ) { + + // Attempt to update the stylesheet. Return false on fail. + if ( ! $this->write_stylesheet() ) { + return false; + } + } + + ob_start(); + include $local_path; + return ob_get_clean(); + } + + /** + * Get remote file contents. + * + * @access public + * @since 1.0.0 + * @return string Returns the remote URL contents. + */ + public function get_remote_url_contents() { + + /** + * The user-agent we want to use. + * + * The default user-agent is the only one compatible with woff (not woff2) + * which also supports unicode ranges. + */ + $user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8'; + + // Switch to a user-agent supporting woff2 if we don't need to support IE. + if ( 'woff2' === $this->font_format ) { + $user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0'; + } + + // Get the response. + $response = wp_remote_get( $this->remote_url, array( 'user-agent' => $user_agent ) ); + + // Early exit if there was an error. + if ( is_wp_error( $response ) ) { + return ''; + } + + // Get the CSS from our response. + $contents = wp_remote_retrieve_body( $response ); + + return $contents; + } + + /** + * Download files mentioned in our CSS locally. + * + * @access public + * @since 1.0.0 + * @return array Returns an array of remote URLs and their local counterparts. + */ + public function get_local_files_from_css() { + $font_files = $this->get_remote_files_from_css(); + $stored = get_site_option( 'downloaded_font_files', array() ); + $change = false; // If in the end this is true, we need to update the cache option. + + if ( ! defined( 'FS_CHMOD_DIR' ) ) { + define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) ); + } + + // If the fonts folder don't exist, create it. + if ( ! file_exists( $this->get_fonts_folder() ) ) { + $this->get_filesystem()->mkdir( $this->get_fonts_folder(), FS_CHMOD_DIR ); + } + + foreach ( $font_files as $font_family => $files ) { + + // The folder path for this font-family. + $folder_path = $this->get_fonts_folder() . '/' . $font_family; + + // If the folder doesn't exist, create it. + if ( ! file_exists( $folder_path ) ) { + $this->get_filesystem()->mkdir( $folder_path, FS_CHMOD_DIR ); + } + + foreach ( $files as $url ) { + + // Get the filename. + $filename = basename( wp_parse_url( $url, PHP_URL_PATH ) ); + $font_path = $folder_path . '/' . $filename; + + // Check if the file already exists. + if ( file_exists( $font_path ) ) { + + // Skip if already cached. + if ( isset( $stored[ $url ] ) ) { + continue; + } + + // Add file to the cache and change the $changed var to indicate we need to update the option. + $stored[ $url ] = $font_path; + $change = true; + + // Since the file exists we don't need to proceed with downloading it. + continue; + } + + /** + * If we got this far, we need to download the file. + */ + + // require file.php if the download_url function doesn't exist. + if ( ! function_exists( 'download_url' ) ) { + require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/file.php' ); + } + + // Download file to temporary location. + $tmp_path = download_url( $url ); + + // Make sure there were no errors. + if ( is_wp_error( $tmp_path ) ) { + continue; + } + + // Move temp file to final destination. + $success = $this->get_filesystem()->move( $tmp_path, $font_path, true ); + if ( $success ) { + $stored[ $url ] = $font_path; + $change = true; + } + } + } + + // If there were changes, update the option. + if ( $change ) { + + // Cleanup the option and then save it. + foreach ( $stored as $url => $path ) { + if ( ! file_exists( $path ) ) { + unset( $stored[ $url ] ); + } + } + update_site_option( 'downloaded_font_files', $stored ); + } + + return $stored; + } + + /** + * Get font files from the CSS. + * + * @access public + * @since 1.0.0 + * @return array Returns an array of font-families and the font-files used. + */ + public function get_remote_files_from_css() { + + $font_faces = explode( '@font-face', $this->remote_styles ); + + $result = array(); + + // Loop all our font-face declarations. + foreach ( $font_faces as $font_face ) { + + // Make sure we only process styles inside this declaration. + $style = explode( '}', $font_face )[0]; + + // Sanity check. + if ( false === strpos( $style, 'font-family' ) ) { + continue; + } + + // Get an array of our font-families. + preg_match_all( '/font-family.*?\;/', $style, $matched_font_families ); + + // Get an array of our font-files. + preg_match_all( '/url\(.*?\)/i', $style, $matched_font_files ); + + // Get the font-family name. + $font_family = 'unknown'; + if ( isset( $matched_font_families[0] ) && isset( $matched_font_families[0][0] ) ) { + $font_family = rtrim( ltrim( $matched_font_families[0][0], 'font-family:' ), ';' ); + $font_family = trim( str_replace( array( "'", ';' ), '', $font_family ) ); + $font_family = sanitize_key( strtolower( str_replace( ' ', '-', $font_family ) ) ); + } + + // Make sure the font-family is set in our array. + if ( ! isset( $result[ $font_family ] ) ) { + $result[ $font_family ] = array(); + } + + // Get files for this font-family and add them to the array. + foreach ( $matched_font_files as $match ) { + + // Sanity check. + if ( ! isset( $match[0] ) ) { + continue; + } + + // Add the file URL. + $font_family_url = rtrim( ltrim( $match[0], 'url(' ), ')' ); + + // Make sure to convert relative URLs to absolute. + $font_family_url = $this->get_absolute_path( $font_family_url ); + + $result[ $font_family ][] = $font_family_url; + } + + // Make sure we have unique items. + // We're using array_flip here instead of array_unique for improved performance. + $result[ $font_family ] = array_flip( array_flip( $result[ $font_family ] ) ); + } + return $result; + } + + /** + * Write the CSS to the filesystem. + * + * @access protected + * @since 1.1.0 + * @return string|false Returns the absolute path of the file on success, or false on fail. + */ + protected function write_stylesheet() { + $file_path = $this->get_local_stylesheet_path(); + $filesystem = $this->get_filesystem(); + + if ( ! defined( 'FS_CHMOD_DIR' ) ) { + define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) ); + } + + // If the folder doesn't exist, create it. + if ( ! file_exists( $this->get_fonts_folder() ) ) { + $this->get_filesystem()->mkdir( $this->get_fonts_folder(), FS_CHMOD_DIR ); + } + + // If the file doesn't exist, create it. Return false if it can not be created. + if ( ! $filesystem->exists( $file_path ) && ! $filesystem->touch( $file_path ) ) { + return false; + } + + // If we got this far, we need to write the file. + // Get the CSS. + if ( ! $this->css ) { + $this->get_styles(); + } + + // Put the contents in the file. Return false if that fails. + if ( ! $filesystem->put_contents( $file_path, $this->css ) ) { + return false; + } + + return $file_path; + } + + /** + * Get the stylesheet path. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_local_stylesheet_path() { + if ( ! $this->local_stylesheet_path ) { + $this->local_stylesheet_path = $this->get_fonts_folder() . '/' . $this->get_local_stylesheet_filename() . '.css'; + } + return $this->local_stylesheet_path; + } + + /** + * Get the local stylesheet filename. + * + * This is a hash, generated from the site-URL, the wp-content path and the URL. + * This way we can avoid issues with sites changing their URL, or the wp-content path etc. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_local_stylesheet_filename() { + return md5( $this->get_base_url() . $this->get_base_path() . $this->remote_url . $this->font_format ); + } + + /** + * Set the font-format to be used. + * + * @access public + * @since 1.0.0 + * @param string $format The format to be used. Use "woff" or "woff2". + * @return void + */ + public function set_font_format( $format = 'woff2' ) { + $this->font_format = $format; + } + + /** + * Check if the local stylesheet exists. + * + * @access public + * @since 1.1.0 + * @return bool + */ + public function local_file_exists() { + return ( ! file_exists( $this->get_local_stylesheet_path() ) ); + } + + /** + * Get the base path. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_base_path() { + if ( ! $this->base_path ) { + $this->base_path = apply_filters( 'wptt_get_local_fonts_base_path', $this->get_filesystem()->wp_content_dir() ); + } + return $this->base_path; + } + + /** + * Get the base URL. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_base_url() { + if ( ! $this->base_url ) { + $this->base_url = apply_filters( 'wptt_get_local_fonts_base_url', content_url() ); + } + return $this->base_url; + } + + /** + * Get the subfolder name. + * + * @access public + * @since 1.1.0 + * @return string + */ + public function get_subfolder_name() { + if ( ! $this->subfolder_name ) { + $this->subfolder_name = apply_filters( 'wptt_get_local_fonts_subfolder_name', 'fonts' ); + } + return $this->subfolder_name; + } + + /** + * Get the folder for fonts. + * + * @access public + * @return string + */ + public function get_fonts_folder() { + if ( ! $this->fonts_folder ) { + $this->fonts_folder = $this->get_base_path(); + if ( $this->get_subfolder_name() ) { + $this->fonts_folder .= '/' . $this->get_subfolder_name(); + } + } + return $this->fonts_folder; + } + + /** + * Schedule a cleanup. + * + * Deletes the fonts files on a regular basis. + * This way font files will get updated regularly, + * and we avoid edge cases where unused files remain in the server. + * + * @access public + * @since 1.1.0 + * @return void + */ + public function schedule_cleanup() { + if ( ! is_multisite() || ( is_multisite() && is_main_site() ) ) { + if ( ! wp_next_scheduled( 'delete_fonts_folder' ) && ! wp_installing() ) { + wp_schedule_event( time(), self::CLEANUP_FREQUENCY, 'delete_fonts_folder' ); + } + } + } + + /** + * Delete the fonts folder. + * + * This runs as part of a cleanup routine. + * + * @access public + * @since 1.1.0 + * @return bool + */ + public function delete_fonts_folder() { + return $this->get_filesystem()->delete( $this->get_fonts_folder(), true ); + } + + /** + * Get the filesystem. + * + * @access protected + * @since 1.0.0 + * @return \WP_Filesystem_Base + */ + protected function get_filesystem() { + global $wp_filesystem; + + // If the filesystem has not been instantiated yet, do it here. + if ( ! $wp_filesystem ) { + if ( ! function_exists( 'WP_Filesystem' ) ) { + require_once wp_normalize_path( ABSPATH . '/wp-admin/includes/file.php' ); + } + WP_Filesystem(); + } + return $wp_filesystem; + } + + /** + * Get an absolute URL from a relative URL. + * + * @access protected + * + * @param string $url The URL. + * + * @return string + */ + protected function get_absolute_path( $url ) { + + // If dealing with a root-relative URL. + if ( 0 === stripos( $url, '/' ) ) { + $parsed_url = parse_url( $this->remote_url ); + return $parsed_url['scheme'] . '://' . $parsed_url['hostname'] . $url; + } + + return $url; + } + } +} + +if ( ! function_exists( 'wptt_get_webfont_styles' ) ) { + /** + * Get styles for a webfont. + * + * This will get the CSS from the remote API, + * download any fonts it contains, + * replace references to remote URLs with locally-downloaded assets, + * and finally return the resulting CSS. + * + * @since 1.0.0 + * + * @param string $url The URL of the remote webfont. + * @param string $format The font-format. If you need to support IE, change this to "woff". + * + * @return string Returns the CSS. + */ + function wptt_get_webfont_styles( $url, $format = 'woff2' ) { + $font = new WPTT_WebFont_Loader( $url ); + $font->set_font_format( $format ); + return $font->get_styles(); + } +} + +if ( ! function_exists( 'wptt_get_webfont_url' ) ) { + /** + * Get a stylesheet URL for a webfont. + * + * @since 1.1.0 + * + * @param string $url The URL of the remote webfont. + * @param string $format The font-format. If you need to support IE, change this to "woff". + * + * @return string Returns the CSS. + */ + function wptt_get_webfont_url( $url, $format = 'woff2' ) { + $font = new WPTT_WebFont_Loader( $url ); + $font->set_font_format( $format ); + return $font->get_url(); + } +} diff --git a/wp-content/themes/kenta/page.php b/wp-content/themes/kenta/page.php new file mode 100644 index 0000000000..e9267501af --- /dev/null +++ b/wp-content/themes/kenta/page.php @@ -0,0 +1,14 @@ + [data-builder-element], +.kenta-builder-column-tablet-dir-row > [data-builder-element], +.kenta-builder-column-mobile-dir-row > [data-builder-element] { + margin-right: unset; + margin-left: var(--kenta-builder-elements-gap, 12px); +} + +.kenta-builder-column-desktop-dir-row > [data-builder-element]:last-child, +.kenta-builder-column-tablet-dir-row > [data-builder-element]:last-child, +.kenta-builder-column-mobile-dir-row > [data-builder-element]:last-child { + margin-right: unset; + margin-left: 0; +} + +/* Menu Element */ +.kenta-menu.kenta-menu-has-arrow .menu-item-has-children > a > .kenta-menu-icon { + margin-left: 0; + margin-right: 0.5em; +} + +/* Socials Element */ +.kenta-socials .kenta-social-link { + margin-right: 0; + margin-left: var(--kenta-social-icons-spacing, 0); +} + +.kenta-socials .kenta-social-link:last-of-type { + margin-left: 0; +} + +/* Logo Element */ +.kenta-site-branding[data-logo="left"] .site-logo { + margin-right: 0; + margin-left: var(--logo-spacing); +} + +.kenta-site-branding[data-logo="right"] .site-logo { + margin-left: 0; + margin-right: var(--logo-spacing); +} + +/* Sidebars */ +@media (min-width: 1024px) { + .kenta-right-sidebar .kenta-sidebar { + margin-left: auto; + margin-right: var(--kenta-sidebar-gap, 0); + } + + .kenta-left-sidebar .kenta-sidebar { + margin-right: auto; + margin-left: var(--kenta-sidebar-gap, 0); + } +} + +/* Buttons */ +.woocommerce a.button .has-text-align-right, +.kenta-button .has-text-align-right, +.wp-block-button .has-text-align-right { + justify-content: flex-start; +} + +.woocommerce a.button .has-text-align-left, +.kenta-button .has-text-align-left, +.wp-block-button .has-text-align-left { + justify-content: flex-end; +} diff --git a/wp-content/themes/kenta/screenshot.png b/wp-content/themes/kenta/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..44b8fe6141e2f6e91b6759103a0a06d9108f80bb GIT binary patch literal 201554 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 azZPDNT-E8f|N1{T6fw&H literal 0 HcmV?d00001 diff --git a/wp-content/themes/kenta/searchform.php b/wp-content/themes/kenta/searchform.php new file mode 100644 index 0000000000..9dafc3c76e --- /dev/null +++ b/wp-content/themes/kenta/searchform.php @@ -0,0 +1,36 @@ + +

    method="get" + action="" + class="search-form" +> +
    + +
    + diff --git a/wp-content/themes/kenta/sidebar.php b/wp-content/themes/kenta/sidebar.php new file mode 100644 index 0000000000..ef774fcb1c --- /dev/null +++ b/wp-content/themes/kenta/sidebar.php @@ -0,0 +1,39 @@ + Utils::clsx( [ + 'kenta-sidebar sidebar-primary shrink-0', + 'no-underline' => ! CZ::checked( 'kenta_global_sidebar_link-underline' ), + 'kenta-heading kenta-heading-' . CZ::get( 'kenta_global_sidebar_title-style' ), + ] ), + 'role' => 'complementary', +]; + +if ( is_customize_preview() ) { + $attrs['data-shortcut'] = 'border'; + $attrs['data-shortcut-location'] = 'kenta_global:kenta_global_sidebar_section'; +} + +?> + + +
    > + +
    + diff --git a/wp-content/themes/kenta/style.css b/wp-content/themes/kenta/style.css new file mode 100644 index 0000000000..96cc00d276 --- /dev/null +++ b/wp-content/themes/kenta/style.css @@ -0,0 +1,14 @@ +/*! +Theme Name: Kenta +Theme URI: https://kentatheme.com +Description: The Powerful and Multipurpose Kenta Theme provides endless possibilities to create your site visually in minutes, without coding skills. We have tons of options for you to customize every part of your site. We also provide Starter Sites to help you create your sites with one click instead of starting from scratch. You can build any kind of websites, like blog, business, portfolio, WooCommerce storefronts etc. Whether you're bloggers, editors, online magazines, newspaper, news portals, content publishers, creative business, small businesses, startups and freelancers, we can help you build an amazing website. +Author: WP Moose +Author URI: https://www.wpmoose.com +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Version: 1.4.4 +Tested up to: 6.7 +Requires PHP: 7.4 +Text Domain: kenta +Tags: blog, portfolio, e-commerce, grid-layout, one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, block-styles, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-image-header, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, threaded-comments, theme-options, translation-ready, wide-blocks +*/ diff --git a/wp-content/themes/kenta/template-parts/admin-cmp-upgrade.php b/wp-content/themes/kenta/template-parts/admin-cmp-upgrade.php new file mode 100644 index 0000000000..18fd2a1fef --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-cmp-upgrade.php @@ -0,0 +1,59 @@ +ID; + +if ( get_user_meta( $user_id, 'kenta_dismissed_upgrade_' . MIN_KENTA_CMP_VERSION ) ) { + return; +} + +$dismiss_url = add_query_arg( array( 'kenta_dismiss' => 'upgrade_' . MIN_KENTA_CMP_VERSION, ), admin_url() ); +?> + +
    + diff --git a/wp-content/themes/kenta/template-parts/admin-container.php b/wp-content/themes/kenta/template-parts/admin-container.php new file mode 100644 index 0000000000..a0200bb0aa --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-container.php @@ -0,0 +1,76 @@ + [ + 'label' => __( 'Customize', 'kenta' ), + ], + 'starter-sites' => [ + 'label' => __( 'Starter Sites', 'kenta' ), + ], +] ); + +$active_tab = $_GET['kenta-tab'] ?? 'customize'; +$active_tab = in_array( $active_tab, array_keys( $tabs ) ) ? $active_tab : 'customize'; +?> + +
    + + +
    +
    +
      + $tab ): ?> + + +
    • + + + +
    • + +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    + + +
    diff --git a/wp-content/themes/kenta/template-parts/admin-customize.php b/wp-content/themes/kenta/template-parts/admin-customize.php new file mode 100644 index 0000000000..9e70504de6 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-customize.php @@ -0,0 +1,99 @@ + __( 'Site Logo', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_header:logo', + ], + [ + 'label' => __( 'Colors Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_colors', + ], + [ + 'label' => __( 'Typography Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_content:kenta_content_typography', + ], + [ + 'label' => __( 'Menu Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_header', + ], + [ + 'label' => __( 'Header Builder', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_header', + ], + [ + 'label' => __( 'Footer Builder', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_footer', + ], + [ + 'label' => __( 'Content Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_content', + ], + [ + 'label' => __( 'Single Post Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_single_post', + ], + [ + 'label' => __( 'Page Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_pages', + ], + [ + 'label' => __( 'Archive Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_archive', + ], + [ + 'label' => __( 'Sidebar Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_global:kenta_global_sidebar_section', + ], + [ + 'label' => __( 'Copyright Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_footer:copyright', + ], + [ + 'label' => __( 'Social Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_global:kenta_global_socials', + ], + [ + 'label' => __( 'Scroll Top Settings', 'kenta' ), + 'icon' => '', + 'location' => 'kenta_global:kenta_global_scroll_top', + ], +] ); +?> + + diff --git a/wp-content/themes/kenta/template-parts/admin-recommend-plugins.php b/wp-content/themes/kenta/template-parts/admin-recommend-plugins.php new file mode 100644 index 0000000000..a11b4fb683 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-recommend-plugins.php @@ -0,0 +1,55 @@ + + +
    +

    + + $plugin ): ?> +
    + +
    +

    + + + +

    +

    + +

    + + +
    +
    + +
    diff --git a/wp-content/themes/kenta/template-parts/admin-sidebar.php b/wp-content/themes/kenta/template-parts/admin-sidebar.php new file mode 100644 index 0000000000..d888b8b163 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-sidebar.php @@ -0,0 +1,104 @@ + __( 'Install Companion Plugin', 'kenta' ), +// 'content' => __( "Do you want to get the best experience with Kenta Theme? Click the \"Get Started\" button to install the companion plugin and then you'll have access to our carefully pre-built starter sites and 10+ powerful Blocks and Gutenberg Pattern Library. They provide you with almost everything you need to create a website quickly.", 'kenta' ), +// 'icon' => '', +// 'url' => esc_url( add_query_arg( array( 'action' => 'kenta_install_companion' ), admin_url( 'admin.php' ) ) ), +// 'label' => __( 'Get Started', 'kenta' ), +// 'target' => '_blank', +// 'enable' => ! KENTA_CMP_ACTIVE +// ], + [ + 'title' => __( 'Upgrade to Premium', 'kenta' ), + 'content' => __( 'Upgrade to Premium Edition to support our development and get more features and functionality to help you create powerful and feature-rich websites.', 'kenta' ), + 'icon' => '', + 'url' => kenta_upsell_url(), + 'label' => __( 'Upgrade', 'kenta' ), + 'target' => '_blank', + 'enable' => ! KENTA_CMP_PRO_ACTIVE + ], + [ + 'title' => __( 'Support Forum', 'kenta' ), + 'content' => __( "If you have any question about using this theme, feel free to create a new topic in the support forum.", 'kenta' ), + 'icon' => '', + 'url' => 'https://wordpress.org/support/theme/kenta/', + 'target' => '_blank', + 'label' => __( 'Create a Topic', 'kenta' ), + 'enable' => true + ], + // [ + // 'title' => __( 'Affiliation', 'kenta' ), + // 'content' => __( "Like this theme? Become our ambassador and earn cash ;-)", 'kenta' ), + // 'icon' => '', + // 'url' => , + // 'label' => __( 'Learn More', 'kenta' ), + // ] +] ); + +$links = apply_filters( 'kenta_admin_page_links', [ + [ + 'title' => __( 'Kenta Theme Homepage', 'kenta' ), + 'url' => 'https://kentatheme.com', + 'icon' => '', + ], + [ + 'title' => __( 'Kenta Documention', 'kenta' ), + 'url' => 'https://kentatheme.com/docs/', + 'icon' => '', + ], + [ + 'title' => __( 'Kenta Support Forum', 'kenta' ), + 'url' => 'https://wordpress.org/support/theme/kenta/', + 'icon' => '', + ], + [ + 'title' => __( 'Rate Us 5 Stars', 'kenta' ), + 'url' => 'https://wordpress.org/support/theme/kenta/reviews/?rate=5#new-post', + 'icon' => '', + ], +] ); +?> + +
    +
    +

    + +

    +
    + +
    +
    + + +
    +

    + +

    +

    + +

    + + + + +
    + + +
    diff --git a/wp-content/themes/kenta/template-parts/admin-start.php b/wp-content/themes/kenta/template-parts/admin-start.php new file mode 100644 index 0000000000..f5238a5b32 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-start.php @@ -0,0 +1,143 @@ +ID; + +if ( get_user_meta( $user_id, 'kenta_dismissed_start' ) ) { + return; +} + +$dismiss_url = add_query_arg( + array( + 'kenta_dismiss' => 'start', + '_wpnonce' => wp_create_nonce( 'kenta_dismiss' ) + ), admin_url() +); + +$demo_name = apply_filters( 'kenta_welcome_demo_name', 'Kenta' ); +$demo_screenshot = apply_filters( 'kenta_welcome_demo_screenshot', get_template_directory_uri() . '/screenshot.png' ); +$demo_slug = apply_filters( 'kenta_welcome_demo_slug', 'kenta-agency' ); +$demo_preview = 'https://kentatheme.com/' . $demo_slug; +?> + +
    + +
    +
    + +
    +

    +

    + +

    +
    +
    + + + + <?php echo esc_html( $demo_name ) ?> + + + + +
    +
    + + + + + +
    + + + + + +
    +

    + +

    + + '; + esc_html_e( 'Would you like to import pre-designed demo like the screenshot?', 'kenta' ); + echo ''; + } + ?> +

    + +
    + + + + + + + +
    +

    +
    +
    +
    + + + + + +
    +

    + +

    + +

    + +
    + +
    +
    +
    +
    + + + + + +
    +

    + +

    + +

    + +
    + +
    +
    +
    +
    +
    diff --git a/wp-content/themes/kenta/template-parts/admin-starter-sites.php b/wp-content/themes/kenta/template-parts/admin-starter-sites.php new file mode 100644 index 0000000000..abfe280775 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/admin-starter-sites.php @@ -0,0 +1,21 @@ + + +
    +

    + + +
    diff --git a/wp-content/themes/kenta/template-parts/content-entry.php b/wp-content/themes/kenta/template-parts/content-entry.php new file mode 100644 index 0000000000..98f0544127 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/content-entry.php @@ -0,0 +1,38 @@ + 'post-' . get_the_ID(), + 'class' => Utils::clsx( + get_post_class( [ 'card overflow-hidden h-full' ] ), + [ 'kenta-scroll-reveal' => CZ::checked( 'kenta_card_scroll_reveal' ) ] + ), + 'data-card-layout' => $layout, +]; + +if ( is_customize_preview() ) { + $card_attrs['data-shortcut'] = 'dashed-border'; + $card_attrs['data-shortcut-location'] = 'kenta_archive:kenta_archive_card_section'; +} + +?> + +
    +
    > + true, + 'title_tag' => CZ::get( 'kenta_entry_title_tag' ), + 'excerpt_type' => CZ::get( 'kenta_entry_excerpt_type' ), + ] ); ?> +
    +
    diff --git a/wp-content/themes/kenta/template-parts/content-none.php b/wp-content/themes/kenta/template-parts/content-none.php new file mode 100644 index 0000000000..8d6b06e7d5 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/content-none.php @@ -0,0 +1,54 @@ + +
    +
    +

    + +

    +
    + +
    + + +

    + Get started here.', 'kenta' ), + array( 'a' => array( 'href' => array(), 'class' => array() ) ) ), + esc_url( admin_url( 'post-new.php' ) ) + ); + ?> +

    + + +

    + +

    +
    + +
    + + +

    + +

    +
    + +
    + +
    +
    diff --git a/wp-content/themes/kenta/template-parts/document-close.php b/wp-content/themes/kenta/template-parts/document-close.php new file mode 100644 index 0000000000..02ccb107dc --- /dev/null +++ b/wp-content/themes/kenta/template-parts/document-close.php @@ -0,0 +1,12 @@ + + +
    + + + diff --git a/wp-content/themes/kenta/template-parts/document-open.php b/wp-content/themes/kenta/template-parts/document-open.php new file mode 100644 index 0000000000..e7faa9b423 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/document-open.php @@ -0,0 +1,31 @@ + + + + > + + + + + + + + + data-kenta-scroll-reveal=""> + + +
    diff --git a/wp-content/themes/kenta/template-parts/special-archive.php b/wp-content/themes/kenta/template-parts/special-archive.php new file mode 100644 index 0000000000..812174b31a --- /dev/null +++ b/wp-content/themes/kenta/template-parts/special-archive.php @@ -0,0 +1,14 @@ + $sidebar, + 'style' => 'boxed', + 'layout' => 'narrow', + 'css' => [ 'kenta-posts-container' ] +) ); +?> +
    +
    + +
    + + +
    diff --git a/wp-content/themes/kenta/template-parts/special-page.php b/wp-content/themes/kenta/template-parts/special-page.php new file mode 100644 index 0000000000..aecd34b1eb --- /dev/null +++ b/wp-content/themes/kenta/template-parts/special-page.php @@ -0,0 +1,56 @@ + $sidebar, + 'style' => $container_style, + 'layout' => kenta_get_container_layout( 'page' ), +) ); + +/** + * Hook - kenta_action_before_page_container. + */ +do_action( 'kenta_action_before_page_container', $sidebar ); +?> + +
    +
    + +
    + + +
    diff --git a/wp-content/themes/kenta/template-parts/special-single.php b/wp-content/themes/kenta/template-parts/special-single.php new file mode 100644 index 0000000000..f085308237 --- /dev/null +++ b/wp-content/themes/kenta/template-parts/special-single.php @@ -0,0 +1,56 @@ + $sidebar, + 'style' => $container_style, + 'layout' => kenta_get_container_layout( 'post' ), +) ); + +/** + * Hook - kenta_action_before_single_post_container. + */ +do_action( 'kenta_action_before_single_post_container', $sidebar ); +?> + +
    +
    + +
    + + +
    diff --git a/wp-content/themes/kenta/templates/boxed-page-builder.php b/wp-content/themes/kenta/templates/boxed-page-builder.php new file mode 100644 index 0000000000..ecc180dd97 --- /dev/null +++ b/wp-content/themes/kenta/templates/boxed-page-builder.php @@ -0,0 +1,19 @@ +