From 1cea7a970164ed5fe3e326adfca82bc7f0766eb6 Mon Sep 17 00:00:00 2001 From: Ruslan Garaev Date: Mon, 6 Nov 2023 23:39:11 +0300 Subject: [PATCH] v2.0 --- README.md | 6 +- dist/accordion.js | 2 + ...s.LICENSE.txt => accordion.js.LICENSE.txt} | 16 +- dist/carousel.js | 2 + dist/carousel.js.LICENSE.txt | 15 + dist/collapse.js | 2 + ...js.LICENSE.txt => collapse.js.LICENSE.txt} | 14 +- dist/components/hs-accordion/hs-accordion.js | 2 - dist/components/hs-collapse/hs-collapse.js | 2 - dist/components/hs-dropdown/hs-dropdown.js | 2 - .../hs-dropdown/hs-dropdown.js.LICENSE.txt | 24 - dist/components/hs-overlay/hs-overlay.js | 2 - .../hs-overlay/hs-overlay.js.LICENSE.txt | 15 - .../hs-remove-element/hs-remove-element.js | 2 - dist/components/hs-scrollspy/hs-scrollspy.js | 2 - dist/components/hs-tabs/hs-tabs.js | 2 - dist/components/hs-tooltip/hs-tooltip.js | 2 - .../hs-tooltip/hs-tooltip.js.LICENSE.txt | 16 - dist/copy-markup.js | 2 + dist/copy-markup.js.LICENSE.txt | 15 + dist/dropdown.js | 2 + dist/dropdown.js.LICENSE.txt | 23 + dist/index.js.LICENSE.txt | 159 + dist/input-mask.js | 2 + dist/input-number.js | 2 + dist/input-number.js.LICENSE.txt | 15 + dist/overlay.js | 2 + dist/overlay.js.LICENSE.txt | 15 + dist/pin-input.js | 2 + dist/pin-input.js.LICENSE.txt | 15 + dist/preline.js | 4 +- dist/preline.js.LICENSE.txt | 81 - dist/remove-element.js | 2 + ...ENSE.txt => remove-element.js.LICENSE.txt} | 14 +- dist/scrollspy.js | 2 + ...s.LICENSE.txt => scrollspy.js.LICENSE.txt} | 14 +- dist/select.js | 2 + dist/select.js.LICENSE.txt | 15 + dist/stepper.js | 2 + dist/stepper.js.LICENSE.txt | 15 + dist/strong-password.js | 2 + dist/strong-password.js.LICENSE.txt | 15 + dist/tabs.js | 2 + ...abs.js.LICENSE.txt => tabs.js.LICENSE.txt} | 14 +- dist/toggle-count.js | 2 + dist/toggle-count.js.LICENSE.txt | 15 + dist/toggle-password.js | 2 + dist/toggle-password.js.LICENSE.txt | 15 + dist/toggle-switch.js | 215 + dist/tooltip.js | 2 + dist/tooltip.js.LICENSE.txt | 15 + examples/html/ab-a-button-on-gradient-bg.html | 76 - ...ed-in-container-size-with-bg-elements.html | 65 - ...-width-center-aligned-link-on-gray-bg.html | 65 - ...-width-with-dismiss-button-on-blue-bg.html | 70 - examples/html/ab-light-pilled-style-link.html | 66 - examples/html/ab-links-in-gradient-bg.html | 83 - ...ab-media-object-style-with-blurred-bg.html | 88 - examples/html/af-account.html | 233 - examples/html/af-payment.html | 136 - examples/html/af-submit-app.html | 165 - examples/html/af-submit-application.html | 316 - examples/html/ai-chat.html | 1341 --- examples/html/ai-classic.html | 1345 --- examples/html/ai-modal.html | 192 - examples/html/ai-offcanvas.html | 187 - examples/html/ai-simple-and-compact.html | 278 - examples/html/ai-welcome-page.html | 97 - examples/html/ai-with-sidebar.html | 1432 --- .../html/application-layout-dark-header.html | 212 - examples/html/application-layout-header.html | 209 - ...-layout-sidebar-and-header-with-modal.html | 411 - ...application-layout-sidebar-and-header.html | 389 - .../application-layout-sidebar-brand.html | 307 - .../html/application-layout-sidebar-dark.html | 307 - examples/html/application-layout-sidebar.html | 307 - examples/html/as-card-with-icon-and-link.html | 190 - examples/html/as-center-aligned-in-card.html | 156 - examples/html/as-grouped-card.html | 186 - examples/html/as-simple-in-card.html | 156 - .../html/as-simple-with-add-more-button.html | 143 - examples/html/as-simple-with-dividers.html | 200 - .../as-with-soft-icon-and-badge-in-card.html | 196 - examples/html/at-api-keys.html | 674 -- examples/html/at-empty-state.html | 140 - examples/html/at-invoices.html | 847 -- examples/html/at-product-review.html | 566 -- examples/html/at-sales.html | 770 -- examples/html/at-teams.html | 938 -- examples/html/at-traffic-analytics.html | 689 -- examples/html/at-transactions.html | 1393 --- examples/html/at-users.html | 542 - examples/html/base-header.html | 150 - examples/html/blog-2-grids-list.html | 157 - .../blog-3-grids-with-an-overlay-card.html | 129 - ...articles-center-aligned-in-small-size.html | 296 - examples/html/blog-articles-with-sidebar.html | 306 - .../blog-bordered-cards-with-authors.html | 141 - examples/html/blog-brand-color-on-hover.html | 120 - ...og-card-image-with-subtitle-and-title.html | 146 - .../html/blog-card-with-bg-gray-on-hover.html | 115 - examples/html/blog-hero-style.html | 103 - examples/html/blog-horizontal-style.html | 140 - examples/html/blog-image-overlay.html | 135 - examples/html/boxed-layout.html | 150 - ...ge-and-content-with-stretched-buttons.html | 169 - ...-link-with-icon-title-and-description.html | 121 - ...rds-simple-link-with-avatar-and-title.html | 211 - ...imple-link-with-title-and-description.html | 233 - examples/html/clients-in-card.html | 151 - .../clients-simple-with-heading-and-link.html | 142 - .../html/clients-simple-with-heading.html | 80 - examples/html/clients-with-stats.html | 192 - ...-center-aligned-with-info-card-blocks.html | 181 - ...form-in-left-and-description-in-right.html | 192 - ...okies-blurred-bg-with-stacked-buttons.html | 109 - .../cookies-full-width-with-switchers.html | 125 - .../cookies-fullwidth-centered-content.html | 73 - .../html/cookies-inline-with-buttons.html | 75 - .../cookies-inline-with-icon-and-buttons.html | 108 - ...kies-modal-style-with-select-language.html | 213 - examples/html/cookies-on-gradient-bg.html | 73 - ...kies-scrollable-content-with-collapse.html | 163 - .../cookies-simple-with-dismiss-button.html | 67 - ...s-simple-with-icon-and-dismiss-button.html | 104 - examples/html/cover-page-with-form.html | 109 - examples/html/cover-page.html | 106 - examples/html/double-header.html | 180 - examples/html/error-404.html | 88 - ...aq-center-aligned-with-active-bg-gray.html | 168 - .../faq-right-aligned-with-border-bottom.html | 174 - examples/html/faq-simple-2-cols-grid.html | 127 - .../faq-simple-with-divider-and-icon.html | 169 - .../html/feedback-hero-format-hire-us.html | 240 - .../html/feedback-post-comment-in-card.html | 88 - .../html/feedback-simple-center-aligned.html | 132 - .../html/fg-cards-on-a-background-image.html | 76 - ...container-size-image-with-icon-blocks.html | 142 - .../html/fg-simple-with-a-single-image.html | 121 - ...-center-aligned-images-with-a-content.html | 138 - ...center-aligned-images-and-icon-blocks.html | 135 - ...zontal-tabs-with-icon-and-description.html | 191 - ...ical-tabs-with-overlapping-background.html | 144 - .../footer-5-cols-with-language-dropdown.html | 233 - ...r-center-aligned-3-links-with-socials.html | 104 - .../footer-dark-bg-with-subscribe-form.html | 140 - .../html/footer-simple-center-aligned.html | 88 - .../fs-one-main-with-three-follow-ups.html | 101 - .../fs-simple-3-cols-with-primary-color.html | 81 - examples/html/header-floating.html | 150 - examples/html/header-offcanvas.html | 180 - examples/html/header-primary-bg.html | 150 - examples/html/header-with-topbar.html | 158 - .../html/hero-center-aligned-in-dark-bg.html | 93 - .../hero-center-aligned-search-with-tags.html | 144 - .../html/hero-center-aligned-with-a-form.html | 133 - ...igned-with-video-play-button-on-image.html | 83 - examples/html/hero-gradient-bg.html | 103 - ...plit-section-with-an-image-and-a-form.html | 106 - examples/html/hero-with-email-input.html | 121 - .../html/hero-with-image-and-reviews.html | 186 - .../html/hero-with-polygon-bg-element.html | 115 - .../html/hero-with-squared-bg-element.html | 92 - examples/html/icon-2-cols-grid.html | 162 - .../icon-blue-bg-with-gray-bg-on-hover.html | 140 - examples/html/icon-border-gradient.html | 116 - examples/html/icon-center-aligned.html | 116 - ...cription-on-left-icon-blocks-on-right.html | 135 - examples/html/icon-gray-bg-on-hover.html | 122 - ...ium-size-description-with-icon-blocks.html | 119 - examples/html/icon-simple-left-aligned.html | 120 - examples/html/icon-square-shape-bordered.html | 202 - examples/html/icon-stacked-cards.html | 153 - examples/html/invoice.html | 259 - examples/html/left-aligned-header.html | 152 - examples/html/masonry-cards-on-images.html | 137 - ...-with-icon-text-link-and-bg-gray-card.html | 265 - ...pdown-style-with-icon-and-description.html | 164 - examples/html/mega-menu-header.html | 216 - .../html/modal-bg-gray-on-hover-cards.html | 303 - ...modal-card-style-switch-notifications.html | 156 - examples/html/modal-cookies.html | 122 - examples/html/modal-danger-alert.html | 100 - examples/html/modal-recover-account.html | 98 - .../modal-sign-out-alert-small-window.html | 96 - examples/html/modal-sign-out-alert.html | 96 - examples/html/modal-signin.html | 139 - examples/html/modal-signup.html | 151 - .../html/modal-subscription-with-image.html | 92 - examples/html/modal-task-created-alert.html | 93 - examples/html/modal-upgrade-to-pro.html | 151 - examples/html/page-demos-pricing.html | 2191 ----- ...ricing-blocks-with-bordered-gradients.html | 1677 ---- examples/html/pricing-card-header-style.html | 1702 ---- examples/html/pricing-cards.html | 1716 ---- examples/html/pricing-with-2-cards.html | 1635 ---- examples/html/recover-account.html | 103 - examples/html/scrollspy-onepage-menu.html | 170 - examples/html/scrollspy-sticky-sidebar.html | 153 - examples/html/signin.html | 144 - examples/html/signup.html | 156 - examples/html/sticky-floating-header.html | 150 - examples/html/sticky-footer-header.html | 109 - examples/html/sticky-footer.html | 81 - examples/html/sticky-header.html | 150 - .../html/subscribe-simple-center-aligned.html | 71 - .../html/subscribe-simple-right-aligned.html | 79 - ...rd-style-with-description-and-socials.html | 391 - ...line-small-squared-image-with-socials.html | 366 - .../html/team-small-circular-image-size.html | 275 - .../html/team-squared-medium-image-size.html | 180 - ...monials-cards-with-stats-in-a-dark-bg.html | 192 - examples/html/testimonials-cards.html | 163 - ...ials-short-review-with-logo-and-stars.html | 266 - ...nials-simple-center-aligned-with-logo.html | 75 - .../html/testimonials-with-big-image.html | 159 - .../html/testimonials-with-small-image.html | 101 - examples/html/testimonials-with-stats.html | 148 - index.d.ts | 688 ++ package-lock.json | 8708 +++++------------ package.json | 108 +- plugin.js | 537 +- preline.js | 4 +- prettier.config.js | 8 + src/components/hs-accordion/index.js | 87 - src/components/hs-accordion/plugin.js | 30 - src/components/hs-collapse/index.js | 92 - src/components/hs-collapse/plugin.js | 35 - src/components/hs-dropdown/index.js | 347 - src/components/hs-dropdown/plugin.js | 25 - src/components/hs-mode/plugin.js | 28 - src/components/hs-overlay/index.js | 197 - src/components/hs-overlay/plugin.js | 37 - src/components/hs-remove-element/index.js | 33 - src/components/hs-remove-element/plugin.js | 18 - src/components/hs-scrollspy/index.js | 103 - src/components/hs-scrollspy/plugin.js | 18 - src/components/hs-tabs/index.js | 153 - src/components/hs-tabs/plugin.js | 25 - src/components/hs-tooltip/index.js | 159 - src/components/hs-tooltip/plugin.js | 18 - src/constants.ts | 49 + src/core/Component.js | 55 - src/core/utils/MenuSearchHistory.js | 23 - src/index.js | 16 - src/index.ts | 47 + src/interfaces.ts | 4 + src/plugins/accordion/index.ts | 175 + src/plugins/accordion/interfaces.ts | 7 + src/plugins/accordion/types.ts | 1 + src/plugins/base-plugin/index.ts | 238 + src/plugins/base-plugin/interfaces.ts | 5 + src/plugins/base-plugin/types.ts | 1 + src/plugins/carousel/index.ts | 333 + src/plugins/carousel/interfaces.ts | 19 + src/plugins/carousel/types.ts | 1 + src/plugins/collapse/index.ts | 183 + src/plugins/collapse/interfaces.ts | 7 + src/plugins/collapse/types.ts | 1 + src/plugins/copy-markup/index.ts | 159 + src/plugins/copy-markup/interfaces.ts | 9 + src/plugins/copy-markup/types.ts | 1 + src/plugins/dropdown/index.ts | 545 ++ src/plugins/dropdown/interfaces.ts | 13 + src/plugins/dropdown/types.ts | 1 + src/plugins/input-number/index.ts | 171 + src/plugins/input-number/interfaces.ts | 6 + src/plugins/input-number/types.ts | 1 + src/plugins/overlay/index.ts | 412 + src/plugins/overlay/interfaces.ts | 11 + src/plugins/overlay/types.ts | 1 + src/plugins/pin-input/index.ts | 189 + src/plugins/pin-input/interfaces.ts | 7 + src/plugins/pin-input/types.ts | 1 + src/plugins/remove-element/index.ts | 76 + src/plugins/remove-element/interfaces.ts | 7 + src/plugins/remove-element/types.ts | 1 + src/plugins/scrollspy/index.ts | 188 + src/plugins/scrollspy/interfaces.ts | 3 + src/plugins/scrollspy/types.ts | 1 + src/plugins/select/index.ts | 967 ++ src/plugins/select/interfaces.ts | 63 + src/plugins/select/types.ts | 1 + src/plugins/stepper/index.ts | 750 ++ src/plugins/stepper/interfaces.ts | 33 + src/plugins/stepper/types.ts | 1 + src/plugins/strong-password/index.ts | 359 + src/plugins/strong-password/interfaces.ts | 16 + src/plugins/strong-password/types.ts | 1 + src/plugins/tabs/index.ts | 242 + src/plugins/tabs/interfaces.ts | 3 + src/plugins/tabs/types.ts | 1 + src/plugins/theme-switch/index.ts | 149 + src/plugins/theme-switch/interfaces.ts | 9 + src/plugins/theme-switch/types.ts | 1 + src/plugins/toggle-count/index.ts | 127 + src/plugins/toggle-count/interfaces.ts | 14 + src/plugins/toggle-count/types.ts | 1 + src/plugins/toggle-password/index.ts | 182 + src/plugins/toggle-password/interfaces.ts | 11 + src/plugins/toggle-password/types.ts | 1 + src/plugins/tooltip/index.ts | 247 + src/plugins/tooltip/interfaces.ts | 7 + src/plugins/tooltip/types.ts | 1 + src/types.ts | 1 + src/utils/index.ts | 3 + src/utils/interfaces.ts | 9 + src/utils/menu-search-history.ts | 23 + src/utils/types.ts | 1 + tsconfig.json | 11 + webpack.config.js | 88 +- 311 files changed, 10481 insertions(+), 51000 deletions(-) create mode 100644 dist/accordion.js rename dist/{components/hs-accordion/hs-accordion.js.LICENSE.txt => accordion.js.LICENSE.txt} (52%) create mode 100644 dist/carousel.js create mode 100644 dist/carousel.js.LICENSE.txt create mode 100644 dist/collapse.js rename dist/{components/hs-collapse/hs-collapse.js.LICENSE.txt => collapse.js.LICENSE.txt} (51%) delete mode 100644 dist/components/hs-accordion/hs-accordion.js delete mode 100644 dist/components/hs-collapse/hs-collapse.js delete mode 100644 dist/components/hs-dropdown/hs-dropdown.js delete mode 100644 dist/components/hs-dropdown/hs-dropdown.js.LICENSE.txt delete mode 100644 dist/components/hs-overlay/hs-overlay.js delete mode 100644 dist/components/hs-overlay/hs-overlay.js.LICENSE.txt delete mode 100644 dist/components/hs-remove-element/hs-remove-element.js delete mode 100644 dist/components/hs-scrollspy/hs-scrollspy.js delete mode 100644 dist/components/hs-tabs/hs-tabs.js delete mode 100644 dist/components/hs-tooltip/hs-tooltip.js delete mode 100644 dist/components/hs-tooltip/hs-tooltip.js.LICENSE.txt create mode 100644 dist/copy-markup.js create mode 100644 dist/copy-markup.js.LICENSE.txt create mode 100644 dist/dropdown.js create mode 100644 dist/dropdown.js.LICENSE.txt create mode 100644 dist/index.js.LICENSE.txt create mode 100644 dist/input-mask.js create mode 100644 dist/input-number.js create mode 100644 dist/input-number.js.LICENSE.txt create mode 100644 dist/overlay.js create mode 100644 dist/overlay.js.LICENSE.txt create mode 100644 dist/pin-input.js create mode 100644 dist/pin-input.js.LICENSE.txt delete mode 100644 dist/preline.js.LICENSE.txt create mode 100644 dist/remove-element.js rename dist/{components/hs-remove-element/hs-remove-element.js.LICENSE.txt => remove-element.js.LICENSE.txt} (52%) create mode 100644 dist/scrollspy.js rename dist/{components/hs-scrollspy/hs-scrollspy.js.LICENSE.txt => scrollspy.js.LICENSE.txt} (52%) create mode 100644 dist/select.js create mode 100644 dist/select.js.LICENSE.txt create mode 100644 dist/stepper.js create mode 100644 dist/stepper.js.LICENSE.txt create mode 100644 dist/strong-password.js create mode 100644 dist/strong-password.js.LICENSE.txt create mode 100644 dist/tabs.js rename dist/{components/hs-tabs/hs-tabs.js.LICENSE.txt => tabs.js.LICENSE.txt} (51%) create mode 100644 dist/toggle-count.js create mode 100644 dist/toggle-count.js.LICENSE.txt create mode 100644 dist/toggle-password.js create mode 100644 dist/toggle-password.js.LICENSE.txt create mode 100644 dist/toggle-switch.js create mode 100644 dist/tooltip.js create mode 100644 dist/tooltip.js.LICENSE.txt delete mode 100644 examples/html/ab-a-button-on-gradient-bg.html delete mode 100644 examples/html/ab-center-aligned-in-container-size-with-bg-elements.html delete mode 100644 examples/html/ab-full-width-center-aligned-link-on-gray-bg.html delete mode 100644 examples/html/ab-full-width-with-dismiss-button-on-blue-bg.html delete mode 100644 examples/html/ab-light-pilled-style-link.html delete mode 100644 examples/html/ab-links-in-gradient-bg.html delete mode 100644 examples/html/ab-media-object-style-with-blurred-bg.html delete mode 100644 examples/html/af-account.html delete mode 100644 examples/html/af-payment.html delete mode 100644 examples/html/af-submit-app.html delete mode 100644 examples/html/af-submit-application.html delete mode 100644 examples/html/ai-chat.html delete mode 100644 examples/html/ai-classic.html delete mode 100644 examples/html/ai-modal.html delete mode 100644 examples/html/ai-offcanvas.html delete mode 100644 examples/html/ai-simple-and-compact.html delete mode 100644 examples/html/ai-welcome-page.html delete mode 100644 examples/html/ai-with-sidebar.html delete mode 100644 examples/html/application-layout-dark-header.html delete mode 100644 examples/html/application-layout-header.html delete mode 100644 examples/html/application-layout-sidebar-and-header-with-modal.html delete mode 100644 examples/html/application-layout-sidebar-and-header.html delete mode 100644 examples/html/application-layout-sidebar-brand.html delete mode 100644 examples/html/application-layout-sidebar-dark.html delete mode 100644 examples/html/application-layout-sidebar.html delete mode 100644 examples/html/as-card-with-icon-and-link.html delete mode 100644 examples/html/as-center-aligned-in-card.html delete mode 100644 examples/html/as-grouped-card.html delete mode 100644 examples/html/as-simple-in-card.html delete mode 100644 examples/html/as-simple-with-add-more-button.html delete mode 100644 examples/html/as-simple-with-dividers.html delete mode 100644 examples/html/as-with-soft-icon-and-badge-in-card.html delete mode 100644 examples/html/at-api-keys.html delete mode 100644 examples/html/at-empty-state.html delete mode 100644 examples/html/at-invoices.html delete mode 100644 examples/html/at-product-review.html delete mode 100644 examples/html/at-sales.html delete mode 100644 examples/html/at-teams.html delete mode 100644 examples/html/at-traffic-analytics.html delete mode 100644 examples/html/at-transactions.html delete mode 100644 examples/html/at-users.html delete mode 100644 examples/html/base-header.html delete mode 100644 examples/html/blog-2-grids-list.html delete mode 100644 examples/html/blog-3-grids-with-an-overlay-card.html delete mode 100644 examples/html/blog-articles-center-aligned-in-small-size.html delete mode 100644 examples/html/blog-articles-with-sidebar.html delete mode 100644 examples/html/blog-bordered-cards-with-authors.html delete mode 100644 examples/html/blog-brand-color-on-hover.html delete mode 100644 examples/html/blog-card-image-with-subtitle-and-title.html delete mode 100644 examples/html/blog-card-with-bg-gray-on-hover.html delete mode 100644 examples/html/blog-hero-style.html delete mode 100644 examples/html/blog-horizontal-style.html delete mode 100644 examples/html/blog-image-overlay.html delete mode 100644 examples/html/boxed-layout.html delete mode 100644 examples/html/cards-image-and-content-with-stretched-buttons.html delete mode 100644 examples/html/cards-simple-card-link-with-icon-title-and-description.html delete mode 100644 examples/html/cards-simple-link-with-avatar-and-title.html delete mode 100644 examples/html/cards-simple-link-with-title-and-description.html delete mode 100644 examples/html/clients-in-card.html delete mode 100644 examples/html/clients-simple-with-heading-and-link.html delete mode 100644 examples/html/clients-simple-with-heading.html delete mode 100644 examples/html/clients-with-stats.html delete mode 100644 examples/html/contacts-center-aligned-with-info-card-blocks.html delete mode 100644 examples/html/contacts-form-in-left-and-description-in-right.html delete mode 100644 examples/html/cookies-blurred-bg-with-stacked-buttons.html delete mode 100644 examples/html/cookies-full-width-with-switchers.html delete mode 100644 examples/html/cookies-fullwidth-centered-content.html delete mode 100644 examples/html/cookies-inline-with-buttons.html delete mode 100644 examples/html/cookies-inline-with-icon-and-buttons.html delete mode 100644 examples/html/cookies-modal-style-with-select-language.html delete mode 100644 examples/html/cookies-on-gradient-bg.html delete mode 100644 examples/html/cookies-scrollable-content-with-collapse.html delete mode 100644 examples/html/cookies-simple-with-dismiss-button.html delete mode 100644 examples/html/cookies-simple-with-icon-and-dismiss-button.html delete mode 100644 examples/html/cover-page-with-form.html delete mode 100644 examples/html/cover-page.html delete mode 100644 examples/html/double-header.html delete mode 100644 examples/html/error-404.html delete mode 100644 examples/html/faq-center-aligned-with-active-bg-gray.html delete mode 100644 examples/html/faq-right-aligned-with-border-bottom.html delete mode 100644 examples/html/faq-simple-2-cols-grid.html delete mode 100644 examples/html/faq-simple-with-divider-and-icon.html delete mode 100644 examples/html/feedback-hero-format-hire-us.html delete mode 100644 examples/html/feedback-post-comment-in-card.html delete mode 100644 examples/html/feedback-simple-center-aligned.html delete mode 100644 examples/html/fg-cards-on-a-background-image.html delete mode 100644 examples/html/fg-container-size-image-with-icon-blocks.html delete mode 100644 examples/html/fg-simple-with-a-single-image.html delete mode 100644 examples/html/fg-three-center-aligned-images-with-a-content.html delete mode 100644 examples/html/fg-with-4-center-aligned-images-and-icon-blocks.html delete mode 100644 examples/html/fn-horizontal-tabs-with-icon-and-description.html delete mode 100644 examples/html/fn-vertical-tabs-with-overlapping-background.html delete mode 100644 examples/html/footer-5-cols-with-language-dropdown.html delete mode 100644 examples/html/footer-center-aligned-3-links-with-socials.html delete mode 100644 examples/html/footer-dark-bg-with-subscribe-form.html delete mode 100644 examples/html/footer-simple-center-aligned.html delete mode 100644 examples/html/fs-one-main-with-three-follow-ups.html delete mode 100644 examples/html/fs-simple-3-cols-with-primary-color.html delete mode 100644 examples/html/header-floating.html delete mode 100644 examples/html/header-offcanvas.html delete mode 100644 examples/html/header-primary-bg.html delete mode 100644 examples/html/header-with-topbar.html delete mode 100644 examples/html/hero-center-aligned-in-dark-bg.html delete mode 100644 examples/html/hero-center-aligned-search-with-tags.html delete mode 100644 examples/html/hero-center-aligned-with-a-form.html delete mode 100644 examples/html/hero-center-aligned-with-video-play-button-on-image.html delete mode 100644 examples/html/hero-gradient-bg.html delete mode 100644 examples/html/hero-split-section-with-an-image-and-a-form.html delete mode 100644 examples/html/hero-with-email-input.html delete mode 100644 examples/html/hero-with-image-and-reviews.html delete mode 100644 examples/html/hero-with-polygon-bg-element.html delete mode 100644 examples/html/hero-with-squared-bg-element.html delete mode 100644 examples/html/icon-2-cols-grid.html delete mode 100644 examples/html/icon-blue-bg-with-gray-bg-on-hover.html delete mode 100644 examples/html/icon-border-gradient.html delete mode 100644 examples/html/icon-center-aligned.html delete mode 100644 examples/html/icon-description-on-left-icon-blocks-on-right.html delete mode 100644 examples/html/icon-gray-bg-on-hover.html delete mode 100644 examples/html/icon-medium-size-description-with-icon-blocks.html delete mode 100644 examples/html/icon-simple-left-aligned.html delete mode 100644 examples/html/icon-square-shape-bordered.html delete mode 100644 examples/html/icon-stacked-cards.html delete mode 100644 examples/html/invoice.html delete mode 100644 examples/html/left-aligned-header.html delete mode 100644 examples/html/masonry-cards-on-images.html delete mode 100644 examples/html/mega-menu-custom-size-with-icon-text-link-and-bg-gray-card.html delete mode 100644 examples/html/mega-menu-dropdown-style-with-icon-and-description.html delete mode 100644 examples/html/mega-menu-header.html delete mode 100644 examples/html/modal-bg-gray-on-hover-cards.html delete mode 100644 examples/html/modal-card-style-switch-notifications.html delete mode 100644 examples/html/modal-cookies.html delete mode 100644 examples/html/modal-danger-alert.html delete mode 100644 examples/html/modal-recover-account.html delete mode 100644 examples/html/modal-sign-out-alert-small-window.html delete mode 100644 examples/html/modal-sign-out-alert.html delete mode 100644 examples/html/modal-signin.html delete mode 100644 examples/html/modal-signup.html delete mode 100644 examples/html/modal-subscription-with-image.html delete mode 100644 examples/html/modal-task-created-alert.html delete mode 100644 examples/html/modal-upgrade-to-pro.html delete mode 100644 examples/html/page-demos-pricing.html delete mode 100644 examples/html/pricing-blocks-with-bordered-gradients.html delete mode 100644 examples/html/pricing-card-header-style.html delete mode 100644 examples/html/pricing-cards.html delete mode 100644 examples/html/pricing-with-2-cards.html delete mode 100644 examples/html/recover-account.html delete mode 100644 examples/html/scrollspy-onepage-menu.html delete mode 100644 examples/html/scrollspy-sticky-sidebar.html delete mode 100644 examples/html/signin.html delete mode 100644 examples/html/signup.html delete mode 100644 examples/html/sticky-floating-header.html delete mode 100644 examples/html/sticky-footer-header.html delete mode 100644 examples/html/sticky-footer.html delete mode 100644 examples/html/sticky-header.html delete mode 100644 examples/html/subscribe-simple-center-aligned.html delete mode 100644 examples/html/subscribe-simple-right-aligned.html delete mode 100644 examples/html/team-card-style-with-description-and-socials.html delete mode 100644 examples/html/team-inline-small-squared-image-with-socials.html delete mode 100644 examples/html/team-small-circular-image-size.html delete mode 100644 examples/html/team-squared-medium-image-size.html delete mode 100644 examples/html/testimonials-cards-with-stats-in-a-dark-bg.html delete mode 100644 examples/html/testimonials-cards.html delete mode 100644 examples/html/testimonials-short-review-with-logo-and-stars.html delete mode 100644 examples/html/testimonials-simple-center-aligned-with-logo.html delete mode 100644 examples/html/testimonials-with-big-image.html delete mode 100644 examples/html/testimonials-with-small-image.html delete mode 100644 examples/html/testimonials-with-stats.html create mode 100644 index.d.ts create mode 100644 prettier.config.js delete mode 100644 src/components/hs-accordion/index.js delete mode 100644 src/components/hs-accordion/plugin.js delete mode 100644 src/components/hs-collapse/index.js delete mode 100644 src/components/hs-collapse/plugin.js delete mode 100644 src/components/hs-dropdown/index.js delete mode 100644 src/components/hs-dropdown/plugin.js delete mode 100644 src/components/hs-mode/plugin.js delete mode 100644 src/components/hs-overlay/index.js delete mode 100644 src/components/hs-overlay/plugin.js delete mode 100644 src/components/hs-remove-element/index.js delete mode 100644 src/components/hs-remove-element/plugin.js delete mode 100644 src/components/hs-scrollspy/index.js delete mode 100644 src/components/hs-scrollspy/plugin.js delete mode 100644 src/components/hs-tabs/index.js delete mode 100644 src/components/hs-tabs/plugin.js delete mode 100644 src/components/hs-tooltip/index.js delete mode 100644 src/components/hs-tooltip/plugin.js create mode 100644 src/constants.ts delete mode 100644 src/core/Component.js delete mode 100644 src/core/utils/MenuSearchHistory.js delete mode 100644 src/index.js create mode 100644 src/index.ts create mode 100644 src/interfaces.ts create mode 100644 src/plugins/accordion/index.ts create mode 100644 src/plugins/accordion/interfaces.ts create mode 100644 src/plugins/accordion/types.ts create mode 100644 src/plugins/base-plugin/index.ts create mode 100644 src/plugins/base-plugin/interfaces.ts create mode 100644 src/plugins/base-plugin/types.ts create mode 100644 src/plugins/carousel/index.ts create mode 100644 src/plugins/carousel/interfaces.ts create mode 100644 src/plugins/carousel/types.ts create mode 100644 src/plugins/collapse/index.ts create mode 100644 src/plugins/collapse/interfaces.ts create mode 100644 src/plugins/collapse/types.ts create mode 100644 src/plugins/copy-markup/index.ts create mode 100644 src/plugins/copy-markup/interfaces.ts create mode 100644 src/plugins/copy-markup/types.ts create mode 100644 src/plugins/dropdown/index.ts create mode 100644 src/plugins/dropdown/interfaces.ts create mode 100644 src/plugins/dropdown/types.ts create mode 100644 src/plugins/input-number/index.ts create mode 100644 src/plugins/input-number/interfaces.ts create mode 100644 src/plugins/input-number/types.ts create mode 100644 src/plugins/overlay/index.ts create mode 100644 src/plugins/overlay/interfaces.ts create mode 100644 src/plugins/overlay/types.ts create mode 100644 src/plugins/pin-input/index.ts create mode 100644 src/plugins/pin-input/interfaces.ts create mode 100644 src/plugins/pin-input/types.ts create mode 100644 src/plugins/remove-element/index.ts create mode 100644 src/plugins/remove-element/interfaces.ts create mode 100644 src/plugins/remove-element/types.ts create mode 100644 src/plugins/scrollspy/index.ts create mode 100644 src/plugins/scrollspy/interfaces.ts create mode 100644 src/plugins/scrollspy/types.ts create mode 100644 src/plugins/select/index.ts create mode 100644 src/plugins/select/interfaces.ts create mode 100644 src/plugins/select/types.ts create mode 100644 src/plugins/stepper/index.ts create mode 100644 src/plugins/stepper/interfaces.ts create mode 100644 src/plugins/stepper/types.ts create mode 100644 src/plugins/strong-password/index.ts create mode 100644 src/plugins/strong-password/interfaces.ts create mode 100644 src/plugins/strong-password/types.ts create mode 100644 src/plugins/tabs/index.ts create mode 100644 src/plugins/tabs/interfaces.ts create mode 100644 src/plugins/tabs/types.ts create mode 100644 src/plugins/theme-switch/index.ts create mode 100644 src/plugins/theme-switch/interfaces.ts create mode 100644 src/plugins/theme-switch/types.ts create mode 100644 src/plugins/toggle-count/index.ts create mode 100644 src/plugins/toggle-count/interfaces.ts create mode 100644 src/plugins/toggle-count/types.ts create mode 100644 src/plugins/toggle-password/index.ts create mode 100644 src/plugins/toggle-password/interfaces.ts create mode 100644 src/plugins/toggle-password/types.ts create mode 100644 src/plugins/tooltip/index.ts create mode 100644 src/plugins/tooltip/interfaces.ts create mode 100644 src/plugins/tooltip/types.ts create mode 100644 src/types.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/interfaces.ts create mode 100644 src/utils/menu-search-history.ts create mode 100644 src/utils/types.ts create mode 100644 tsconfig.json diff --git a/README.md b/README.md index 558192b..30e85b0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -Hero Image +[![Hero Image](https://preline.co/hero-image-2.jpg)](https://preline.co) -Logo +Logo Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework. @@ -63,4 +63,4 @@ All brand icons are trademarks of their respective owners. The use of these trad Preline UI is built and maintend by [Htmlstream](https://htmlstream.com) team. Over the last decade at Htmlstream, our journey has involved crafting UI Components and Templates. This process has allowed us to understand and explore a range of strategies for developing versatile UI designs that can adapt to a variety of needs. -Share about Preline on [Twitter](https://twitter.com/prelineUI) and keep an eye on [Dribbble](https://dribbble.com/Htmlstream) for teasers of our upcoming UIs. +Share your thoughts about Preline on [Twitter](https://twitter.com/prelineUI) or leave supportive review on [ProductHunt](https://www.producthunt.com/products/preline-ui/reviews). diff --git a/dist/accordion.js b/dist/accordion.js new file mode 100644 index 0000000..b4e535b --- /dev/null +++ b/dist/accordion.js @@ -0,0 +1,2 @@ +/*! For license information please see accordion.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 n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{"use strict";var t={460:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){function e(e,n,o){var i=t.call(this,e,n,o)||this;return i.toggle=i.el.querySelector(".hs-accordion-toggle")||null,i.content=i.el.querySelector(".hs-accordion-content")||null,i.group=i.el.closest(".hs-accordion-group")||null,i.isAlwaysOpened=i.group.hasAttribute("data-hs-accordion-always-open")||!1,i.toggle&&i.content&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsAccordionCollection,this),this.toggle.addEventListener("click",(function(){t.el.classList.contains("active")?t.hide():t.show()}))},e.prototype.show=function(){var t=this;if(this.group&&!this.isAlwaysOpened&&this.group.querySelector(".hs-accordion.active")&&this.group.querySelector(".hs-accordion.active")!==this.el&&window.$hsAccordionCollection.find((function(e){return e.element.el===t.group.querySelector(".hs-accordion.active")})).element.hide(),this.el.classList.contains("active"))return!1;this.el.classList.add("active"),this.content.style.display="block",this.content.style.height="0",setTimeout((function(){t.content.style.height="".concat(t.content.scrollHeight,"px")})),this.afterTransition(this.content,(function(){t.content.style.height="",t.fireEvent("open",t.el),t.dispatch("open.hs.accordion",t.el,t.el)}))},e.prototype.hide=function(){var t=this;if(!this.el.classList.contains("active"))return!1;this.el.classList.remove("active"),this.content.style.height="".concat(this.content.scrollHeight,"px"),setTimeout((function(){t.content.style.height="0"})),this.afterTransition(this.content,(function(){t.content.style.display="",t.fireEvent("close",t.el),t.dispatch("close.hs.accordion",t.el,t.el)}))},e.getInstance=function(t,e){var n=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.show=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"!==e.element.content.style.display&&e.element.show()},e.hide=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"===e.element.content.style.display&&e.element.hide()},e.on=function(t,e,n){var o=window.$hsAccordionCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsAccordionCollection||(window.$hsAccordionCollection=[]),document.querySelectorAll(".hs-accordion:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSAccordion=r,e.default=r},737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],r=0;r=u:"top"===n?l>=u:l>=u||a>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}}},e={};return function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}(460)})())); \ No newline at end of file diff --git a/dist/components/hs-accordion/hs-accordion.js.LICENSE.txt b/dist/accordion.js.LICENSE.txt similarity index 52% rename from dist/components/hs-accordion/hs-accordion.js.LICENSE.txt rename to dist/accordion.js.LICENSE.txt index fdb4807..e1c7972 100644 --- a/dist/components/hs-accordion/hs-accordion.js.LICENSE.txt +++ b/dist/accordion.js.LICENSE.txt @@ -1,15 +1,15 @@ /* - * Component - * @version: 1.3.0 - * @author: HtmlStream + * HSAccordion + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ /* - * HSAccordion - * @version: 1.3.0 - * @author: HtmlStream + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ diff --git a/dist/carousel.js b/dist/carousel.js new file mode 100644 index 0000000..66efb2d --- /dev/null +++ b/dist/carousel.js @@ -0,0 +1,2 @@ +/*! For license information please see carousel.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 n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var i=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(i)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(i){i.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,i=this;return void 0===e&&(e=200),function(){for(var s=[],o=0;o=c:"top"===n?l>=c:l>=c||d>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},629:function(t,e,n){var i,s=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),o=this&&this.__assign||function(){return o=Object.assign||function(t){for(var e,n=1,i=arguments.length;n *")||null,a.sliderWidth=a.inner.parentElement.clientWidth,a.touchX={start:0,end:0},a.init(),a}return s(e,t),e.prototype.init=function(){var t,e,n=this;this.createCollection(window.$hsCarouselCollection,this),this.inner&&(this.calculateWidth(),this.loadingClassesRemove&&("string"==typeof this.loadingClassesRemove?this.inner.classList.remove(this.loadingClassesRemove):(t=this.inner.classList).remove.apply(t,this.loadingClassesRemove)),this.loadingClassesAdd&&("string"==typeof this.loadingClassesAdd?this.inner.classList.add(this.loadingClassesAdd):(e=this.inner.classList).add.apply(e,this.loadingClassesAdd))),this.prev&&this.prev.addEventListener("click",(function(){n.goToPrev(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.next&&this.next.addEventListener("click",(function(){n.goToNext(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.dots&&this.dots.forEach((function(t,e){return t.addEventListener("click",(function(){n.goTo(e),n.isAutoPlay&&(n.resetTimer(),n.setTimer())}))})),this.slides.length&&(this.addCurrentClass(),this.isInfiniteLoop||this.addDisabledClass(),this.isAutoPlay&&this.autoPlay()),this.inner&&this.afterLoadingClassesAdd&&setTimeout((function(){var t;"string"==typeof n.afterLoadingClassesAdd?n.inner.classList.add(n.afterLoadingClassesAdd):(t=n.inner.classList).add.apply(t,n.afterLoadingClassesAdd)})),this.el.classList.add("init"),document.addEventListener("touchstart",(function(t){n.touchX.start=t.changedTouches[0].screenX})),document.addEventListener("touchend",(function(t){n.touchX.end=t.changedTouches[0].screenX,n.detectDirection()})),this.observeResize()},e.prototype.observeResize=function(){var t=this;new ResizeObserver((function(){return t.recalculateWidth()})).observe(document.querySelector("body"))},e.prototype.calculateWidth=function(){var t=this;this.inner.style.width="".concat(this.sliderWidth*this.slides.length,"px"),this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.slides.forEach((function(e){e.style.width="".concat(t.sliderWidth,"px")}))},e.prototype.addCurrentClass=function(){var t=this;this.slides.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")})),this.dots&&this.dots.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")}))},e.prototype.addDisabledClass=function(){if(!this.prev||!this.next)return!1;0===this.currentIndex?(this.next.classList.remove("disabled"),this.prev.classList.add("disabled")):this.currentIndex===this.slides.length-1?(this.prev.classList.remove("disabled"),this.next.classList.add("disabled")):(this.prev.classList.remove("disabled"),this.next.classList.remove("disabled"))},e.prototype.autoPlay=function(){this.setTimer()},e.prototype.setTimer=function(){var t=this;this.timer=setInterval((function(){t.currentIndex===t.slides.length-1?t.goTo(0):t.goToNext()}),this.speed)},e.prototype.resetTimer=function(){clearInterval(this.timer)},e.prototype.detectDirection=function(){var t=this.touchX,e=t.start,n=t.end;ne&&this.goToPrev()},e.prototype.recalculateWidth=function(){this.sliderWidth=this.inner.parentElement.clientWidth,this.calculateWidth()},e.prototype.goToPrev=function(){0===this.currentIndex&&this.isInfiniteLoop?(this.currentIndex=this.slides.length-1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):0!==this.currentIndex&&(this.currentIndex-=1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass(),this.addDisabledClass())},e.prototype.goToNext=function(){this.currentIndex===this.slides.length-1&&this.isInfiniteLoop?(this.currentIndex=0,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):this.currentIndex(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],s=0;s=u:"top"===n?c>=u:c>=u||a>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},652:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(e,n,o){var i=t.call(this,e,n,o)||this;return i.contentId=i.el.dataset.hsCollapse,i.content=document.querySelector(i.contentId),i.animationInProcess=!1,i.content&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsCollapseCollection,this),this.el.addEventListener("click",(function(){t.content.classList.contains("open")?t.hide():t.show()}))},e.prototype.hideAllMegaMenuItems=function(){this.content.querySelectorAll(".hs-mega-menu-content.block").forEach((function(t){t.classList.remove("block"),t.classList.add("hidden")}))},e.prototype.show=function(){var t=this;if(this.animationInProcess||this.el.classList.contains("open"))return!1;this.animationInProcess=!0,this.el.classList.add("open"),this.content.classList.add("open"),this.content.classList.remove("hidden"),this.content.style.height="0",setTimeout((function(){t.content.style.height="".concat(t.content.scrollHeight,"px")})),this.afterTransition(this.content,(function(){t.content.style.height="",t.fireEvent("open",t.el),t.dispatch("open.hs.collapse",t.el,t.el),t.animationInProcess=!1}))},e.prototype.hide=function(){var t=this;if(this.animationInProcess||!this.el.classList.contains("open"))return!1;this.animationInProcess=!0,this.el.classList.remove("open"),this.content.style.height="".concat(this.content.scrollHeight,"px"),setTimeout((function(){t.content.style.height="0"})),this.content.classList.remove("open"),this.afterTransition(this.content,(function(){t.content.classList.add("hidden"),t.content.style.height="",t.fireEvent("hide",t.el),t.dispatch("hide.hs.collapse",t.el,t.el),t.animationInProcess=!1})),this.content.querySelectorAll(".hs-mega-menu-content.block").length&&this.hideAllMegaMenuItems()},e.getInstance=function(t,e){void 0===e&&(e=!1);var n=window.$hsCollapseCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.show=function(t){var e=window.$hsCollapseCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.content.classList.contains("hidden")&&e.element.show()},e.hide=function(t){var e=window.$hsCollapseCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&!e.element.content.classList.contains("hidden")&&e.element.hide()},e.on=function(t,e,n){var o=window.$hsCollapseCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsCollapseCollection||(window.$hsCollapseCollection=[]),document.querySelectorAll(".hs-collapse-toggle:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSCollapse=s,e.default=s}},e={};return function n(o){var i=e[o];if(void 0!==i)return i.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}(652)})())); \ No newline at end of file diff --git a/dist/components/hs-collapse/hs-collapse.js.LICENSE.txt b/dist/collapse.js.LICENSE.txt similarity index 51% rename from dist/components/hs-collapse/hs-collapse.js.LICENSE.txt rename to dist/collapse.js.LICENSE.txt index 5cca4a5..5fa54b2 100644 --- a/dist/components/hs-collapse/hs-collapse.js.LICENSE.txt +++ b/dist/collapse.js.LICENSE.txt @@ -1,15 +1,15 @@ /* - * Component - * @version: 1.3.0 - * @author: HtmlStream + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ /* * HSCollapse - * @version: 1.3.0 - * @author: HtmlStream + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ diff --git a/dist/components/hs-accordion/hs-accordion.js b/dist/components/hs-accordion/hs-accordion.js deleted file mode 100644 index b830a7b..0000000 --- a/dist/components/hs-accordion/hs-accordion.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see hs-accordion.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(function(){return(()=>{"use strict";var e={765:(e,t,n)=>{function o(e,t){for(var n=0;nr});var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=n,this.events={}}var t,n;return t=e,n=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function n(){t(),e.removeEventListener("transitionend",n,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","");return o}}],n&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n{"use strict";var e={765:(e,t,n)=>{function o(e,t){for(var n=0;nr});var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=n,this.events={}}var t,n;return t=e,n=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function n(){t(),e.removeEventListener("transitionend",n,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","");return o}}],n&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n{"use strict";var e={765:(e,t,n)=>{function o(e,t){for(var n=0;nr});var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=n,this.events={}}var t,n;return t=e,n=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function n(){t(),e.removeEventListener("transitionend",n,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","");return o}}],n&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},714:(e,t,n)=>{function o(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function r(e){return e instanceof o(e).Element||e instanceof Element}function i(e){return e instanceof o(e).HTMLElement||e instanceof HTMLElement}function a(e){return"undefined"!=typeof ShadowRoot&&(e instanceof o(e).ShadowRoot||e instanceof ShadowRoot)}n.d(t,{fi:()=>ce});var s=Math.max,c=Math.min,f=Math.round;function l(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,r=1;if(i(e)&&t){var a=e.offsetHeight,s=e.offsetWidth;s>0&&(o=f(n.width)/s||1),a>0&&(r=f(n.height)/a||1)}return{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function u(e){var t=o(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((r(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return l(d(e)).left+u(e).scrollLeft}function y(e){return o(e).getComputedStyle(e)}function m(e){var t=y(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function v(e,t,n){void 0===n&&(n=!1);var r,a,s=i(t),c=i(t)&&function(e){var t=e.getBoundingClientRect(),n=f(t.width)/e.offsetWidth||1,o=f(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),y=d(t),v=l(e,c),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(s||!s&&!n)&&(("body"!==p(t)||m(y))&&(g=(r=t)!==o(r)&&i(r)?{scrollLeft:(a=r).scrollLeft,scrollTop:a.scrollTop}:u(r)),i(t)?((b=l(t,!0)).x+=t.clientLeft,b.y+=t.clientTop):y&&(b.x=h(y))),{x:v.left+g.scrollLeft-b.x,y:v.top+g.scrollTop-b.y,width:v.width,height:v.height}}function g(e){var t=l(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function b(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(a(e)?e.host:null)||d(e)}function w(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:i(e)&&m(e)?e:w(b(e))}function x(e,t){var n;void 0===t&&(t=[]);var r=w(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),a=o(r),s=i?[a].concat(a.visualViewport||[],m(r)?r:[]):r,c=t.concat(s);return i?c:c.concat(x(b(s)))}function O(e){return["table","td","th"].indexOf(p(e))>=0}function S(e){return i(e)&&"fixed"!==y(e).position?e.offsetParent:null}function j(e){for(var t=o(e),n=S(e);n&&O(n)&&"static"===y(n).position;)n=S(n);return n&&("html"===p(n)||"body"===p(n)&&"static"===y(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&i(e)&&"fixed"===y(e).position)return null;for(var n=b(e);i(n)&&["html","body"].indexOf(p(n))<0;){var o=y(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}var E="top",k="bottom",P="right",_="left",L="auto",A=[E,k,P,_],D="start",C="end",q="viewport",T="popper",M=A.reduce((function(e,t){return e.concat([t+"-"+D,t+"-"+C])}),[]),H=[].concat(A,[L]).reduce((function(e,t){return e.concat([t,t+"-"+D,t+"-"+C])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function V(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}var I={placement:"bottom",modifiers:[],strategy:"absolute"};function B(){for(var e=arguments.length,t=new Array(e),n=0;n=0?"x":"y"}function X(e){var t,n=e.reference,o=e.element,r=e.placement,i=r?U(r):null,a=r?z(r):null,s=n.x+n.width/2-o.width/2,c=n.y+n.height/2-o.height/2;switch(i){case E:t={x:s,y:n.y-o.height};break;case k:t={x:s,y:n.y+n.height};break;case P:t={x:n.x+n.width,y:c};break;case _:t={x:n.x-o.width,y:c};break;default:t={x:n.x,y:n.y}}var f=i?F(i):null;if(null!=f){var l="y"===f?"height":"width";switch(a){case D:t[f]=t[f]-(n[l]/2-o[l]/2);break;case C:t[f]=t[f]+(n[l]/2-o[l]/2)}}return t}var Y={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Z(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,c=e.position,l=e.gpuAcceleration,u=e.adaptive,p=e.roundOffsets,h=e.isFixed,m=s.x,v=void 0===m?0:m,g=s.y,b=void 0===g?0:g,w="function"==typeof p?p({x:v,y:b}):{x:v,y:b};v=w.x,b=w.y;var x=s.hasOwnProperty("x"),O=s.hasOwnProperty("y"),S=_,L=E,A=window;if(u){var D=j(n),q="clientHeight",T="clientWidth";D===o(n)&&"static"!==y(D=d(n)).position&&"absolute"===c&&(q="scrollHeight",T="scrollWidth"),D=D,(i===E||(i===_||i===P)&&a===C)&&(L=k,b-=(h&&A.visualViewport?A.visualViewport.height:D[q])-r.height,b*=l?1:-1),i!==_&&(i!==E&&i!==k||a!==C)||(S=P,v-=(h&&A.visualViewport?A.visualViewport.width:D[T])-r.width,v*=l?1:-1)}var M,H=Object.assign({position:c},u&&Y),R=!0===p?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:f(t*o)/o||0,y:f(n*o)/o||0}}({x:v,y:b}):{x:v,y:b};return v=R.x,b=R.y,l?Object.assign({},H,((M={})[L]=O?"0":"",M[S]=x?"0":"",M.transform=(A.devicePixelRatio||1)<=1?"translate("+v+"px, "+b+"px)":"translate3d("+v+"px, "+b+"px, 0)",M)):Object.assign({},H,((t={})[L]=O?b+"px":"",t[S]=x?v+"px":"",t.transform="",t))}var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,(function(e){return $[e]}))}var J={start:"end",end:"start"};function K(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function Q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&a(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ee(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function te(e,t){return t===q?ee(function(e){var t=o(e),n=d(e),r=t.visualViewport,i=n.clientWidth,a=n.clientHeight,s=0,c=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,c=r.offsetTop)),{width:i,height:a,x:s+h(e),y:c}}(e)):r(t)?function(e){var t=l(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):ee(function(e){var t,n=d(e),o=u(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=s(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=s(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-o.scrollLeft+h(e),f=-o.scrollTop;return"rtl"===y(r||n).direction&&(c+=s(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:c,y:f}}(d(e)))}function ne(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function oe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function re(e,t){void 0===t&&(t={});var n=t,o=n.placement,a=void 0===o?e.placement:o,f=n.boundary,u=void 0===f?"clippingParents":f,h=n.rootBoundary,m=void 0===h?q:h,v=n.elementContext,g=void 0===v?T:v,w=n.altBoundary,O=void 0!==w&&w,S=n.padding,_=void 0===S?0:S,L=ne("number"!=typeof _?_:oe(_,A)),D=g===T?"reference":T,C=e.rects.popper,M=e.elements[O?D:g],H=function(e,t,n){var o="clippingParents"===t?function(e){var t=x(b(e)),n=["absolute","fixed"].indexOf(y(e).position)>=0&&i(e)?j(e):e;return r(n)?t.filter((function(e){return r(e)&&Q(e,n)&&"body"!==p(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),f=a[0],l=a.reduce((function(t,n){var o=te(e,n);return t.top=s(o.top,t.top),t.right=c(o.right,t.right),t.bottom=c(o.bottom,t.bottom),t.left=s(o.left,t.left),t}),te(e,f));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}(r(M)?M:M.contextElement||d(e.elements.popper),u,m),R=l(e.elements.reference),V=X({reference:R,element:C,strategy:"absolute",placement:a}),I=ee(Object.assign({},C,V)),B=g===T?I:R,W={top:H.top-B.top+L.top,bottom:B.bottom-H.bottom+L.bottom,left:H.left-B.left+L.left,right:B.right-H.right+L.right},N=e.modifiersData.offset;if(g===T&&N){var U=N[a];Object.keys(W).forEach((function(e){var t=[P,k].indexOf(e)>=0?1:-1,n=[E,k].indexOf(e)>=0?"y":"x";W[e]+=U[n]*t}))}return W}function ie(e,t,n){return s(e,c(t,n))}function ae(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function se(e){return[E,P,k,_].some((function(t){return e[t]>=0}))}var ce=W({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,c=void 0===s||s,f=o(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach((function(e){e.addEventListener("scroll",n.update,N)})),c&&f.addEventListener("resize",n.update,N),function(){a&&l.forEach((function(e){e.removeEventListener("scroll",n.update,N)})),c&&f.removeEventListener("resize",n.update,N)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,c=void 0===s||s,f={placement:U(t.placement),variation:z(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Z(Object.assign({},f,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Z(Object.assign({},f,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];i(r)&&p(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});i(o)&&p(o)&&(Object.assign(o.style,a),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,i=void 0===r?[0,0]:r,a=H.reduce((function(e,n){return e[n]=function(e,t,n){var o=U(e),r=[_,E].indexOf(o)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[_,P].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],c=s.x,f=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=f),t.modifiersData[o]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,i=void 0===r||r,a=n.altAxis,s=void 0===a||a,c=n.fallbackPlacements,f=n.padding,l=n.boundary,u=n.rootBoundary,p=n.altBoundary,d=n.flipVariations,h=void 0===d||d,y=n.allowedAutoPlacements,m=t.options.placement,v=U(m),g=c||(v!==m&&h?function(e){if(U(e)===L)return[];var t=G(e);return[K(e),t,K(t)]}(m):[G(m)]),b=[m].concat(g).reduce((function(e,n){return e.concat(U(n)===L?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,c=n.allowedAutoPlacements,f=void 0===c?H:c,l=z(o),u=l?s?M:M.filter((function(e){return z(e)===l})):A,p=u.filter((function(e){return f.indexOf(e)>=0}));0===p.length&&(p=u);var d=p.reduce((function(t,n){return t[n]=re(e,{placement:n,boundary:r,rootBoundary:i,padding:a})[U(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:n,boundary:l,rootBoundary:u,padding:f,flipVariations:h,allowedAutoPlacements:y}):n)}),[]),w=t.rects.reference,x=t.rects.popper,O=new Map,S=!0,j=b[0],C=0;C=0,I=V?"width":"height",B=re(t,{placement:q,boundary:l,rootBoundary:u,altBoundary:p,padding:f}),W=V?R?P:_:R?k:E;w[I]>x[I]&&(W=G(W));var N=G(W),F=[];if(i&&F.push(B[T]<=0),s&&F.push(B[W]<=0,B[N]<=0),F.every((function(e){return e}))){j=q,S=!1;break}O.set(q,F)}if(S)for(var X=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return j=t,"break"},Y=h?3:1;Y>0&&"break"!==X(Y);Y--);t.placement!==j&&(t.modifiersData[o]._skip=!0,t.placement=j,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,i=void 0===r||r,a=n.altAxis,f=void 0!==a&&a,l=n.boundary,u=n.rootBoundary,p=n.altBoundary,d=n.padding,h=n.tether,y=void 0===h||h,m=n.tetherOffset,v=void 0===m?0:m,b=re(t,{boundary:l,rootBoundary:u,padding:d,altBoundary:p}),w=U(t.placement),x=z(t.placement),O=!x,S=F(w),L="x"===S?"y":"x",A=t.modifiersData.popperOffsets,C=t.rects.reference,q=t.rects.popper,T="function"==typeof v?v(Object.assign({},t.rects,{placement:t.placement})):v,M="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),H=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(A){if(i){var V,I="y"===S?E:_,B="y"===S?k:P,W="y"===S?"height":"width",N=A[S],X=N+b[I],Y=N-b[B],Z=y?-q[W]/2:0,$=x===D?C[W]:q[W],G=x===D?-q[W]:-C[W],J=t.elements.arrow,K=y&&J?g(J):{width:0,height:0},Q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=Q[I],te=Q[B],ne=ie(0,C[W],K[W]),oe=O?C[W]/2-Z-ne-ee-M.mainAxis:$-ne-ee-M.mainAxis,ae=O?-C[W]/2+Z+ne+te+M.mainAxis:G+ne+te+M.mainAxis,se=t.elements.arrow&&j(t.elements.arrow),ce=se?"y"===S?se.clientTop||0:se.clientLeft||0:0,fe=null!=(V=null==H?void 0:H[S])?V:0,le=N+ae-fe,ue=ie(y?c(X,N+oe-fe-ce):X,N,y?s(Y,le):Y);A[S]=ue,R[S]=ue-N}if(f){var pe,de="x"===S?E:_,he="x"===S?k:P,ye=A[L],me="y"===L?"height":"width",ve=ye+b[de],ge=ye-b[he],be=-1!==[E,_].indexOf(w),we=null!=(pe=null==H?void 0:H[L])?pe:0,xe=be?ve:ye-C[me]-q[me]-we+M.altAxis,Oe=be?ye+C[me]+q[me]-we-M.altAxis:ge,Se=y&&be?function(e,t,n){var o=ie(e,t,n);return o>n?n:o}(xe,ye,Oe):ie(y?xe:ve,ye,y?Oe:ge);A[L]=Se,R[L]=Se-ye}t.modifiersData[o]=R}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,r=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=U(n.placement),c=F(s),f=[_,P].indexOf(s)>=0?"height":"width";if(i&&a){var l=function(e,t){return ne("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:oe(e,A))}(r.padding,n),u=g(i),p="y"===c?E:_,d="y"===c?k:P,h=n.rects.reference[f]+n.rects.reference[c]-a[c]-n.rects.popper[f],y=a[c]-n.rects.reference[c],m=j(i),v=m?"y"===c?m.clientHeight||0:m.clientWidth||0:0,b=h/2-y/2,w=l[p],x=v-u[f]-l[d],O=v/2-u[f]/2+b,S=ie(w,O,x),L=c;n.modifiersData[o]=((t={})[L]=S,t.centerOffset=S-O,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&Q(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,a=re(t,{elementContext:"reference"}),s=re(t,{altBoundary:!0}),c=ae(a,o),f=ae(s,r,i),l=se(c),u=se(f);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:f,isReferenceHidden:l,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":u})}}]})}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.r(o);var e=n(714),t=n(765);const r={historyIndex:-1,addHistory:function(e){this.historyIndex=e},existsInHistory:function(e){return e>this.historyIndex},clearHistory:function(){this.historyIndex=-1}};function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n2&&/MacIntel/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)||e._hover(n)}})),document.addEventListener("keydown",this._keyboardSupport.bind(this)),window.addEventListener("resize",(function(){document.querySelectorAll(".hs-dropdown.open").forEach((function(t){e.close(t,!0)}))}))}},{key:"_closeOthers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=document.querySelectorAll("".concat(this.selector,".open"));n.forEach((function(n){if(!t||t.closest(".hs-dropdown.open")!==n){var o=(window.getComputedStyle(n).getPropertyValue("--auto-close")||"").replace(" ","");"false"!=o&&"outside"!=o&&e.close(n)}}))}},{key:"_hover",value:function(e){var t=this,n=e.closest(this.selector);this.open(n),document.addEventListener("mousemove",(function e(o){o.target.closest(t.selector)&&o.target.closest(t.selector)!==n.parentElement.closest(t.selector)||(t.close(n),document.removeEventListener("mousemove",e,!0))}),!0)}},{key:"close",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.querySelector(".hs-dropdown-menu"),r=function(){e.classList.contains("open")||(o.classList.remove("block"),o.classList.add("hidden"),o.style.inset=null,o.style.position=null,e._popper&&e._popper.destroy())};n||this.afterTransition(e.querySelector("[data-hs-dropdown-transition]")||o,(function(){r()})),o.style.margin=null,e.classList.remove("open"),n&&r(),this._fireEvent("close",e),this._dispatch("close.hs.dropdown",e,e);var i=o.querySelectorAll(".hs-dropdown.open");i.forEach((function(e){t.close(e,!0)}))}},{key:"open",value:function(t){var n=t.querySelector(".hs-dropdown-menu"),o=(window.getComputedStyle(t).getPropertyValue("--placement")||"").replace(" ",""),r=(window.getComputedStyle(t).getPropertyValue("--strategy")||"fixed").replace(" ",""),i=((window.getComputedStyle(t).getPropertyValue("--adaptive")||"adaptive").replace(" ",""),parseInt((window.getComputedStyle(t).getPropertyValue("--offset")||"10").replace(" ","")));if("static"!==r){t._popper&&t._popper.destroy();var s=(0,e.fi)(t,n,{placement:this.positions[o]||"bottom-start",strategy:r,modifiers:[].concat(a("fixed"!==r?this.absoluteStrategyModifiers(t):[]),[{name:"offset",options:{offset:[0,i]}}])});t._popper=s}n.style.margin=null,n.classList.add("block"),n.classList.remove("hidden"),setTimeout((function(){t.classList.add("open")})),this._fireEvent("open",t),this._dispatch("open.hs.dropdown",t,t)}},{key:"_keyboardSupport",value:function(e){var t=document.querySelector(".hs-dropdown.open");if(t)return 27===e.keyCode?(e.preventDefault(),this._esc(t)):40===e.keyCode?(e.preventDefault(),this._down(t)):38===e.keyCode?(e.preventDefault(),this._up(t)):36===e.keyCode?(e.preventDefault(),this._start(t)):35===e.keyCode?(e.preventDefault(),this._end(t)):void this._byChar(t,e.key)}},{key:"_esc",value:function(e){this.close(e)}},{key:"_up",value:function(e){var t=e.querySelector(".hs-dropdown-menu"),n=a(t.querySelectorAll("a")).reverse().filter((function(e){return!e.disabled})),o=t.querySelector("a:focus"),r=n.findIndex((function(e){return e===o}));r+1{"use strict";var e={765:(e,t,o)=>{function r(e,t){for(var o=0;on});var n=function(){function e(t,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=o,this.events={}}var t,o;return t=e,o=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=new CustomEvent(e,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(r)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function o(){t(),e.removeEventListener("transitionend",o,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=(window.getComputedStyle(e).getPropertyValue(t)||o).replace(" ","");return r}}],o&&r(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=new Array(t);o=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,c=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return c=e.done,e},e:function(e){s=!0,a=e},f:function(){try{c||null==r.return||r.return()}finally{if(s)throw a}}}}(e.classList.values());try{for(c.s();!(o=c.n()).done;){var s=o.value;s.startsWith("hs-overlay-backdrop-open:")&&(a+=" ".concat(s))}}catch(e){c.e(e)}finally{c.f()}var u="static"!==this.getClassProperty(e,"--overlay-backdrop","true");"false"===this.getClassProperty(e,"--overlay-backdrop","true")||(n&&((i=document.querySelector(n).cloneNode(!0)).classList.remove("hidden"),a=i.classList,i.classList=""),u&&i.addEventListener("click",(function(){return r.close(e)}),!0),i.setAttribute("data-hs-overlay-backdrop-template",""),document.body.appendChild(i),setTimeout((function(){i.classList=a})))}},{key:"_destroyBackdrop",value:function(){var e=document.querySelector("[data-hs-overlay-backdrop-template]");e&&(this.openNextOverlay&&(e.style.transitionDuration="".concat(1.8*parseFloat(window.getComputedStyle(e).transitionDuration.replace(/[^\d.-]/g,"")),"s")),e.classList.add("opacity-0"),this.afterTransition(e,(function(){e.remove()})))}},{key:"_focusInput",value:function(e){var t=e.querySelector("[autofocus]");t&&t.focus()}}])&&n(o.prototype,r),Object.defineProperty(o,"prototype",{writable:!1}),f}(o(765).Z);window.HSOverlay=new s,document.addEventListener("load",window.HSOverlay.init())})(),r})()})); \ No newline at end of file diff --git a/dist/components/hs-overlay/hs-overlay.js.LICENSE.txt b/dist/components/hs-overlay/hs-overlay.js.LICENSE.txt deleted file mode 100644 index 5c3c9e8..0000000 --- a/dist/components/hs-overlay/hs-overlay.js.LICENSE.txt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Component - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSOverlay - * @version: 1.3.0 - * @author: HtmlStream - * @license: Htmlstream Libraries (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ diff --git a/dist/components/hs-remove-element/hs-remove-element.js b/dist/components/hs-remove-element/hs-remove-element.js deleted file mode 100644 index 03c0a01..0000000 --- a/dist/components/hs-remove-element/hs-remove-element.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see hs-remove-element.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(function(){return(()=>{"use strict";var e={765:(e,t,n)=>{function o(e,t){for(var n=0;nr});var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=n,this.events={}}var t,n;return t=e,n=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function n(){t(),e.removeEventListener("transitionend",n,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","");return o}}],n&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var n=0;n{"use strict";var e={765:(e,t,r)=>{function o(e,t){for(var r=0;rn});var n=function(){function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=r,this.events={}}var t,r;return t=e,r=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:r},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function r(){t(),e.removeEventListener("transitionend",r,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||r).replace(" ","");return o}}],r&&o(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){for(var r=0;r0){if(this.activeSection===n)return;o.forEach((function(e){e.classList.remove("active")}));var u=r.querySelector('[href="#'.concat(n.getAttribute("id"),'"]'));if(u){u.classList.add("active");var f=u.closest("[data-hs-scrollspy-group]");if(f){var p=f.querySelector("[href]");p&&p.classList.add("active")}}this.activeSection=n}}},{key:"_scrollTo",value:function(e){var t=e.$scrollspyEl,r=e.$scrollableEl,o=e.$link,n=document.querySelector(o.getAttribute("href")),i=parseInt(this.getClassProperty(t,"--scrollspy-offset","0")),l=this.getClassProperty(n,"--scrollspy-offset")||i,c=r===document?0:r.offsetTop,s=n.offsetTop-l-c,a=r===document?window:r;this._fireEvent("scroll",t),this._dispatch("scroll.hs.scrollspy",t,t),window.history.replaceState(null,null,o.getAttribute("href")),a.scrollTo({top:s,left:0,behavior:"smooth"})}}])&&t(r.prototype,o),Object.defineProperty(r,"prototype",{writable:!1}),u}(r(765).Z);window.HSScrollspy=new c,document.addEventListener("load",window.HSScrollspy.init())})(),o})()})); \ No newline at end of file diff --git a/dist/components/hs-tabs/hs-tabs.js b/dist/components/hs-tabs/hs-tabs.js deleted file mode 100644 index 1e4aeed..0000000 --- a/dist/components/hs-tabs/hs-tabs.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see hs-tabs.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return(()=>{"use strict";var e={765:(e,t,r)=>{function n(e,t){for(var r=0;ro});var o=function(){function e(t,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=r,this.events={}}var t,r;return t=e,r=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new CustomEvent(e,{detail:{payload:r},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(n)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function r(){t(),e.removeEventListener("transitionend",r,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=(window.getComputedStyle(e).getPropertyValue(t)||r).replace(" ","");return n}}],r&&n(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),e}()}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}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),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";var e={765:(e,t,n)=>{function o(e,t){for(var n=0;nr});var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=n,this.events={}}var t,n;return t=e,n=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function n(){t(),e.removeEventListener("transitionend",n,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","");return o}}],n&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},714:(e,t,n)=>{function o(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function r(e){return e instanceof o(e).Element||e instanceof Element}function i(e){return e instanceof o(e).HTMLElement||e instanceof HTMLElement}function a(e){return"undefined"!=typeof ShadowRoot&&(e instanceof o(e).ShadowRoot||e instanceof ShadowRoot)}n.d(t,{fi:()=>fe});var s=Math.max,f=Math.min,c=Math.round;function u(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,r=1;if(i(e)&&t){var a=e.offsetHeight,s=e.offsetWidth;s>0&&(o=c(n.width)/s||1),a>0&&(r=c(n.height)/a||1)}return{width:n.width/o,height:n.height/r,top:n.top/r,right:n.right/o,bottom:n.bottom/r,left:n.left/o,x:n.left/o,y:n.top/r}}function l(e){var t=o(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((r(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return u(d(e)).left+l(e).scrollLeft}function v(e){return o(e).getComputedStyle(e)}function m(e){var t=v(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function y(e,t,n){void 0===n&&(n=!1);var r,a,s=i(t),f=i(t)&&function(e){var t=e.getBoundingClientRect(),n=c(t.width)/e.offsetWidth||1,o=c(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),v=d(t),y=u(e,f),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(s||!s&&!n)&&(("body"!==p(t)||m(v))&&(g=(r=t)!==o(r)&&i(r)?{scrollLeft:(a=r).scrollLeft,scrollTop:a.scrollTop}:l(r)),i(t)?((b=u(t,!0)).x+=t.clientLeft,b.y+=t.clientTop):v&&(b.x=h(v))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=u(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function b(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(a(e)?e.host:null)||d(e)}function w(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:i(e)&&m(e)?e:w(b(e))}function x(e,t){var n;void 0===t&&(t=[]);var r=w(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),a=o(r),s=i?[a].concat(a.visualViewport||[],m(r)?r:[]):r,f=t.concat(s);return i?f:f.concat(x(b(s)))}function O(e){return["table","td","th"].indexOf(p(e))>=0}function E(e){return i(e)&&"fixed"!==v(e).position?e.offsetParent:null}function j(e){for(var t=o(e),n=E(e);n&&O(n)&&"static"===v(n).position;)n=E(n);return n&&("html"===p(n)||"body"===p(n)&&"static"===v(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&i(e)&&"fixed"===v(e).position)return null;for(var n=b(e);i(n)&&["html","body"].indexOf(p(n))<0;){var o=v(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}var P="top",L="bottom",k="right",S="left",D="auto",T=[P,L,k,S],A="start",C="end",_="viewport",M="popper",R=T.reduce((function(e,t){return e.concat([t+"-"+A,t+"-"+C])}),[]),B=[].concat(T,[D]).reduce((function(e,t){return e.concat([t,t+"-"+A,t+"-"+C])}),[]),W=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}var H={placement:"bottom",modifiers:[],strategy:"absolute"};function V(){for(var e=arguments.length,t=new Array(e),n=0;n=0?"x":"y"}function X(e){var t,n=e.reference,o=e.element,r=e.placement,i=r?F(r):null,a=r?U(r):null,s=n.x+n.width/2-o.width/2,f=n.y+n.height/2-o.height/2;switch(i){case P:t={x:s,y:n.y-o.height};break;case L:t={x:s,y:n.y+n.height};break;case k:t={x:n.x+n.width,y:f};break;case S:t={x:n.x-o.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var u="y"===c?"height":"width";switch(a){case A:t[c]=t[c]-(n[u]/2-o[u]/2);break;case C:t[c]=t[c]+(n[u]/2-o[u]/2)}}return t}var Y={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Z(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,f=e.position,u=e.gpuAcceleration,l=e.adaptive,p=e.roundOffsets,h=e.isFixed,m=s.x,y=void 0===m?0:m,g=s.y,b=void 0===g?0:g,w="function"==typeof p?p({x:y,y:b}):{x:y,y:b};y=w.x,b=w.y;var x=s.hasOwnProperty("x"),O=s.hasOwnProperty("y"),E=S,D=P,T=window;if(l){var A=j(n),_="clientHeight",M="clientWidth";A===o(n)&&"static"!==v(A=d(n)).position&&"absolute"===f&&(_="scrollHeight",M="scrollWidth"),A=A,(i===P||(i===S||i===k)&&a===C)&&(D=L,b-=(h&&T.visualViewport?T.visualViewport.height:A[_])-r.height,b*=u?1:-1),i!==S&&(i!==P&&i!==L||a!==C)||(E=k,y-=(h&&T.visualViewport?T.visualViewport.width:A[M])-r.width,y*=u?1:-1)}var R,B=Object.assign({position:f},l&&Y),W=!0===p?function(e){var t=e.x,n=e.y,o=window.devicePixelRatio||1;return{x:c(t*o)/o||0,y:c(n*o)/o||0}}({x:y,y:b}):{x:y,y:b};return y=W.x,b=W.y,u?Object.assign({},B,((R={})[D]=O?"0":"",R[E]=x?"0":"",R.transform=(T.devicePixelRatio||1)<=1?"translate("+y+"px, "+b+"px)":"translate3d("+y+"px, "+b+"px, 0)",R)):Object.assign({},B,((t={})[D]=O?b+"px":"",t[E]=x?y+"px":"",t.transform="",t))}var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,(function(e){return $[e]}))}var J={start:"end",end:"start"};function K(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function Q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&a(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function ee(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function te(e,t){return t===_?ee(function(e){var t=o(e),n=d(e),r=t.visualViewport,i=n.clientWidth,a=n.clientHeight,s=0,f=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,f=r.offsetTop)),{width:i,height:a,x:s+h(e),y:f}}(e)):r(t)?function(e){var t=u(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):ee(function(e){var t,n=d(e),o=l(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=s(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=s(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),f=-o.scrollLeft+h(e),c=-o.scrollTop;return"rtl"===v(r||n).direction&&(f+=s(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:f,y:c}}(d(e)))}function ne(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function oe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function re(e,t){void 0===t&&(t={});var n=t,o=n.placement,a=void 0===o?e.placement:o,c=n.boundary,l=void 0===c?"clippingParents":c,h=n.rootBoundary,m=void 0===h?_:h,y=n.elementContext,g=void 0===y?M:y,w=n.altBoundary,O=void 0!==w&&w,E=n.padding,S=void 0===E?0:E,D=ne("number"!=typeof S?S:oe(S,T)),A=g===M?"reference":M,C=e.rects.popper,R=e.elements[O?A:g],B=function(e,t,n){var o="clippingParents"===t?function(e){var t=x(b(e)),n=["absolute","fixed"].indexOf(v(e).position)>=0&&i(e)?j(e):e;return r(n)?t.filter((function(e){return r(e)&&Q(e,n)&&"body"!==p(e)})):[]}(e):[].concat(t),a=[].concat(o,[n]),c=a[0],u=a.reduce((function(t,n){var o=te(e,n);return t.top=s(o.top,t.top),t.right=f(o.right,t.right),t.bottom=f(o.bottom,t.bottom),t.left=s(o.left,t.left),t}),te(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}(r(R)?R:R.contextElement||d(e.elements.popper),l,m),W=u(e.elements.reference),q=X({reference:W,element:C,strategy:"absolute",placement:a}),H=ee(Object.assign({},C,q)),V=g===M?H:W,N={top:B.top-V.top+D.top,bottom:V.bottom-B.bottom+D.bottom,left:B.left-V.left+D.left,right:V.right-B.right+D.right},I=e.modifiersData.offset;if(g===M&&I){var F=I[a];Object.keys(N).forEach((function(e){var t=[k,L].indexOf(e)>=0?1:-1,n=[P,L].indexOf(e)>=0?"y":"x";N[e]+=F[n]*t}))}return N}function ie(e,t,n){return s(e,f(t,n))}function ae(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function se(e){return[P,k,L,S].some((function(t){return e[t]>=0}))}var fe=N({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,f=void 0===s||s,c=o(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",n.update,I)})),f&&c.addEventListener("resize",n.update,I),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",n.update,I)})),f&&c.removeEventListener("resize",n.update,I)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,f=void 0===s||s,c={placement:F(t.placement),variation:U(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Z(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:f})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Z(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];i(r)&&p(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});i(o)&&p(o)&&(Object.assign(o.style,a),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.offset,i=void 0===r?[0,0]:r,a=B.reduce((function(e,n){return e[n]=function(e,t,n){var o=F(e),r=[S,P].indexOf(o)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[S,k].indexOf(o)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[o]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var r=n.mainAxis,i=void 0===r||r,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,u=n.boundary,l=n.rootBoundary,p=n.altBoundary,d=n.flipVariations,h=void 0===d||d,v=n.allowedAutoPlacements,m=t.options.placement,y=F(m),g=f||(y!==m&&h?function(e){if(F(e)===D)return[];var t=G(e);return[K(e),t,K(t)]}(m):[G(m)]),b=[m].concat(g).reduce((function(e,n){return e.concat(F(n)===D?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?B:f,u=U(o),l=u?s?R:R.filter((function(e){return U(e)===u})):T,p=l.filter((function(e){return c.indexOf(e)>=0}));0===p.length&&(p=l);var d=p.reduce((function(t,n){return t[n]=re(e,{placement:n,boundary:r,rootBoundary:i,padding:a})[F(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:n,boundary:u,rootBoundary:l,padding:c,flipVariations:h,allowedAutoPlacements:v}):n)}),[]),w=t.rects.reference,x=t.rects.popper,O=new Map,E=!0,j=b[0],C=0;C=0,H=q?"width":"height",V=re(t,{placement:_,boundary:u,rootBoundary:l,altBoundary:p,padding:c}),N=q?W?k:S:W?L:P;w[H]>x[H]&&(N=G(N));var I=G(N),z=[];if(i&&z.push(V[M]<=0),s&&z.push(V[N]<=0,V[I]<=0),z.every((function(e){return e}))){j=_,E=!1;break}O.set(_,z)}if(E)for(var X=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return j=t,"break"},Y=h?3:1;Y>0&&"break"!==X(Y);Y--);t.placement!==j&&(t.modifiersData[o]._skip=!0,t.placement=j,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,o=e.name,r=n.mainAxis,i=void 0===r||r,a=n.altAxis,c=void 0!==a&&a,u=n.boundary,l=n.rootBoundary,p=n.altBoundary,d=n.padding,h=n.tether,v=void 0===h||h,m=n.tetherOffset,y=void 0===m?0:m,b=re(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:p}),w=F(t.placement),x=U(t.placement),O=!x,E=z(w),D="x"===E?"y":"x",T=t.modifiersData.popperOffsets,C=t.rects.reference,_=t.rects.popper,M="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof M?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),B=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if(T){if(i){var q,H="y"===E?P:S,V="y"===E?L:k,N="y"===E?"height":"width",I=T[E],X=I+b[H],Y=I-b[V],Z=v?-_[N]/2:0,$=x===A?C[N]:_[N],G=x===A?-_[N]:-C[N],J=t.elements.arrow,K=v&&J?g(J):{width:0,height:0},Q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=Q[H],te=Q[V],ne=ie(0,C[N],K[N]),oe=O?C[N]/2-Z-ne-ee-R.mainAxis:$-ne-ee-R.mainAxis,ae=O?-C[N]/2+Z+ne+te+R.mainAxis:G+ne+te+R.mainAxis,se=t.elements.arrow&&j(t.elements.arrow),fe=se?"y"===E?se.clientTop||0:se.clientLeft||0:0,ce=null!=(q=null==B?void 0:B[E])?q:0,ue=I+ae-ce,le=ie(v?f(X,I+oe-ce-fe):X,I,v?s(Y,ue):Y);T[E]=le,W[E]=le-I}if(c){var pe,de="x"===E?P:S,he="x"===E?L:k,ve=T[D],me="y"===D?"height":"width",ye=ve+b[de],ge=ve-b[he],be=-1!==[P,S].indexOf(w),we=null!=(pe=null==B?void 0:B[D])?pe:0,xe=be?ye:ve-C[me]-_[me]-we+R.altAxis,Oe=be?ve+C[me]+_[me]-we-R.altAxis:ge,Ee=v&&be?function(e,t,n){var o=ie(e,t,n);return o>n?n:o}(xe,ve,Oe):ie(v?xe:ye,ve,v?Oe:ge);T[D]=Ee,W[D]=Ee-ve}t.modifiersData[o]=W}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,o=e.name,r=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=F(n.placement),f=z(s),c=[S,k].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(e,t){return ne("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:oe(e,T))}(r.padding,n),l=g(i),p="y"===f?P:S,d="y"===f?L:k,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],v=a[f]-n.rects.reference[f],m=j(i),y=m?"y"===f?m.clientHeight||0:m.clientWidth||0:0,b=h/2-v/2,w=u[p],x=y-l[c]-u[d],O=y/2-l[c]/2+b,E=ie(w,O,x),D=f;n.modifiersData[o]=((t={})[D]=E,t.centerOffset=E-O,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&Q(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,a=re(t,{elementContext:"reference"}),s=re(t,{altBoundary:!0}),f=ae(a,o),c=ae(s,r,i),u=se(f),l=se(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:l},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":l})}}]})}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{n.r(o);var e=n(765),t=n(714);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){for(var n=0;n(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var r=[],i=0;i=p:"top"===n?l>=p:l>=p||c>=p},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},413:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__assign||function(){return i=Object.assign||function(t){for(var e,n=1,o=arguments.length;n=this.limit)return!1;this.el.hasAttribute("disabled")&&this.el.setAttribute("disabled","");var t=this.target.cloneNode(!0);this.addToItems(t),this.limit&&this.items.length>=this.limit&&this.el.setAttribute("disabled","disabled"),this.fireEvent("copy",t),this.dispatch("copy.hs.copyMarkup",t,t)},e.prototype.addPredefinedItems=function(){var t=this;Array.from(this.wrapper.children).filter((function(t){return!t.classList.contains("[--ignore-for-count]")})).forEach((function(e){t.addToItems(e)}))},e.prototype.setTarget=function(){var t="string"==typeof this.targetSelector?document.querySelector(this.targetSelector).cloneNode(!0):this.targetSelector.cloneNode(!0);t.removeAttribute("id"),this.target=t},e.prototype.setWrapper=function(){this.wrapper="string"==typeof this.wrapperSelector?document.querySelector(this.wrapperSelector):this.wrapperSelector},e.prototype.addToItems=function(t){var e=this,n=t.querySelector("[data-hs-copy-markup-delete-item]");this.wrapper?this.wrapper.append(t):this.el.before(t),n&&n.addEventListener("click",(function(){return e.delete(t)})),this.items.push(t)},e.prototype.delete=function(t){var e=this.items.indexOf(t);-1!==e&&this.items.splice(e,1),t.remove(),this.fireEvent("delete",t),this.dispatch("delete.hs.copyMarkup",t,t)},e.getInstance=function(t,e){var n=window.$hsCopyMarkupCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsCopyMarkupCollection||(window.$hsCopyMarkupCollection=[]),document.querySelectorAll("[data-hs-copy-markup]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-copy-markup"),n=e?JSON.parse(e):{};new s(t,n)}))})),t.exports.HSCopyMarkup=s,e.default=s}},e={};return function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o].call(i.exports,i,i.exports,n),i.exports}(413)})())); \ No newline at end of file diff --git a/dist/copy-markup.js.LICENSE.txt b/dist/copy-markup.js.LICENSE.txt new file mode 100644 index 0000000..4964dce --- /dev/null +++ b/dist/copy-markup.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSCopyMarkup + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/dropdown.js b/dist/dropdown.js new file mode 100644 index 0000000..f5f6bfa --- /dev/null +++ b/dist/dropdown.js @@ -0,0 +1,2 @@ +/*! For license information please see dropdown.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(()=>(()=>{"use strict";var e={492:(e,t,n)=>{n.r(t),n.d(t,{afterMain:()=>E,afterRead:()=>g,afterWrite:()=>L,applyStyles:()=>_,arrow:()=>J,auto:()=>a,basePlacements:()=>l,beforeMain:()=>b,beforeRead:()=>y,beforeWrite:()=>O,bottom:()=>r,clippingParents:()=>u,computeStyles:()=>ne,createPopper:()=>Ie,createPopperBase:()=>Te,createPopperLite:()=>_e,detectOverflow:()=>ye,end:()=>f,eventListeners:()=>re,flip:()=>we,hide:()=>xe,left:()=>s,main:()=>x,modifierPhases:()=>C,offset:()=>Ee,placements:()=>v,popper:()=>d,popperGenerator:()=>De,popperOffsets:()=>Oe,preventOverflow:()=>Se,read:()=>w,reference:()=>h,right:()=>i,start:()=>c,top:()=>o,variationPlacements:()=>m,viewport:()=>p,write:()=>S});var o="top",r="bottom",i="right",s="left",a="auto",l=[o,r,i,s],c="start",f="end",u="clippingParents",p="viewport",d="popper",h="reference",m=l.reduce((function(e,t){return e.concat([t+"-"+c,t+"-"+f])}),[]),v=[].concat(l,[a]).reduce((function(e,t){return e.concat([t,t+"-"+c,t+"-"+f])}),[]),y="beforeRead",w="read",g="afterRead",b="beforeMain",x="main",E="afterMain",O="beforeWrite",S="write",L="afterWrite",C=[y,w,g,b,x,E,O,S,L];function P(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function D(e){return e instanceof A(e).Element||e instanceof Element}function T(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function I(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}const _={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];T(r)&&P(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});T(o)&&P(o)&&(Object.assign(o.style,i),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function j(e){return e.split("-")[0]}var M=Math.max,H=Math.min,k=Math.round;function B(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function q(){return!/^((?!chrome|android).)*safari/i.test(B())}function W(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),r=1,i=1;t&&T(e)&&(r=e.offsetWidth>0&&k(o.width)/e.offsetWidth||1,i=e.offsetHeight>0&&k(o.height)/e.offsetHeight||1);var s=(D(e)?A(e):window).visualViewport,a=!q()&&n,l=(o.left+(a&&s?s.offsetLeft:0))/r,c=(o.top+(a&&s?s.offsetTop:0))/i,f=o.width/r,u=o.height/i;return{width:f,height:u,top:c,right:l+f,bottom:c+u,left:l,x:l,y:c}}function R(e){var t=W(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function V(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&I(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Y(e){return A(e).getComputedStyle(e)}function $(e){return["table","td","th"].indexOf(P(e))>=0}function N(e){return((D(e)?e.ownerDocument:e.document)||window.document).documentElement}function K(e){return"html"===P(e)?e:e.assignedSlot||e.parentNode||(I(e)?e.host:null)||N(e)}function U(e){return T(e)&&"fixed"!==Y(e).position?e.offsetParent:null}function z(e){for(var t=A(e),n=U(e);n&&$(n)&&"static"===Y(n).position;)n=U(n);return n&&("html"===P(n)||"body"===P(n)&&"static"===Y(n).position)?t:n||function(e){var t=/firefox/i.test(B());if(/Trident/i.test(B())&&T(e)&&"fixed"===Y(e).position)return null;var n=K(e);for(I(n)&&(n=n.host);T(n)&&["html","body"].indexOf(P(n))<0;){var o=Y(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e,t,n){return M(e,H(t,n))}function G(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Z(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}const J={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,a=e.name,c=e.options,f=n.elements.arrow,u=n.modifiersData.popperOffsets,p=j(n.placement),d=F(p),h=[s,i].indexOf(p)>=0?"height":"width";if(f&&u){var m=function(e,t){return G("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Z(e,l))}(c.padding,n),v=R(f),y="y"===d?o:s,w="y"===d?r:i,g=n.rects.reference[h]+n.rects.reference[d]-u[d]-n.rects.popper[h],b=u[d]-n.rects.reference[d],x=z(f),E=x?"y"===d?x.clientHeight||0:x.clientWidth||0:0,O=g/2-b/2,S=m[y],L=E-v[h]-m[w],C=E/2-v[h]/2+O,P=X(S,C,L),A=d;n.modifiersData[a]=((t={})[A]=P,t.centerOffset=P-C,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&V(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Q(e){return e.split("-")[1]}var ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var t,n=e.popper,a=e.popperRect,l=e.placement,c=e.variation,u=e.offsets,p=e.position,d=e.gpuAcceleration,h=e.adaptive,m=e.roundOffsets,v=e.isFixed,y=u.x,w=void 0===y?0:y,g=u.y,b=void 0===g?0:g,x="function"==typeof m?m({x:w,y:b}):{x:w,y:b};w=x.x,b=x.y;var E=u.hasOwnProperty("x"),O=u.hasOwnProperty("y"),S=s,L=o,C=window;if(h){var P=z(n),D="clientHeight",T="clientWidth";P===A(n)&&"static"!==Y(P=N(n)).position&&"absolute"===p&&(D="scrollHeight",T="scrollWidth"),(l===o||(l===s||l===i)&&c===f)&&(L=r,b-=(v&&P===C&&C.visualViewport?C.visualViewport.height:P[D])-a.height,b*=d?1:-1),l!==s&&(l!==o&&l!==r||c!==f)||(S=i,w-=(v&&P===C&&C.visualViewport?C.visualViewport.width:P[T])-a.width,w*=d?1:-1)}var I,_=Object.assign({position:p},h&&ee),j=!0===m?function(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:k(n*r)/r||0,y:k(o*r)/r||0}}({x:w,y:b},A(n)):{x:w,y:b};return w=j.x,b=j.y,d?Object.assign({},_,((I={})[L]=O?"0":"",I[S]=E?"0":"",I.transform=(C.devicePixelRatio||1)<=1?"translate("+w+"px, "+b+"px)":"translate3d("+w+"px, "+b+"px, 0)",I)):Object.assign({},_,((t={})[L]=O?b+"px":"",t[S]=E?w+"px":"",t.transform="",t))}const ne={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,s=void 0===i||i,a=n.roundOffsets,l=void 0===a||a,c={placement:j(t.placement),variation:Q(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var oe={passive:!0};const re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,i=void 0===r||r,s=o.resize,a=void 0===s||s,l=A(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&c.forEach((function(e){e.addEventListener("scroll",n.update,oe)})),a&&l.addEventListener("resize",n.update,oe),function(){i&&c.forEach((function(e){e.removeEventListener("scroll",n.update,oe)})),a&&l.removeEventListener("resize",n.update,oe)}},data:{}};var ie={left:"right",right:"left",bottom:"top",top:"bottom"};function se(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var ae={start:"end",end:"start"};function le(e){return e.replace(/start|end/g,(function(e){return ae[e]}))}function ce(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function fe(e){return W(N(e)).left+ce(e).scrollLeft}function ue(e){var t=Y(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function pe(e){return["html","body","#document"].indexOf(P(e))>=0?e.ownerDocument.body:T(e)&&ue(e)?e:pe(K(e))}function de(e,t){var n;void 0===t&&(t=[]);var o=pe(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),i=A(o),s=r?[i].concat(i.visualViewport||[],ue(o)?o:[]):o,a=t.concat(s);return r?a:a.concat(de(K(s)))}function he(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function me(e,t,n){return t===p?he(function(e,t){var n=A(e),o=N(e),r=n.visualViewport,i=o.clientWidth,s=o.clientHeight,a=0,l=0;if(r){i=r.width,s=r.height;var c=q();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop)}return{width:i,height:s,x:a+fe(e),y:l}}(e,n)):D(t)?function(e,t){var n=W(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):he(function(e){var t,n=N(e),o=ce(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=M(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=M(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-o.scrollLeft+fe(e),l=-o.scrollTop;return"rtl"===Y(r||n).direction&&(a+=M(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:s,x:a,y:l}}(N(e)))}function ve(e){var t,n=e.reference,a=e.element,l=e.placement,u=l?j(l):null,p=l?Q(l):null,d=n.x+n.width/2-a.width/2,h=n.y+n.height/2-a.height/2;switch(u){case o:t={x:d,y:n.y-a.height};break;case r:t={x:d,y:n.y+n.height};break;case i:t={x:n.x+n.width,y:h};break;case s:t={x:n.x-a.width,y:h};break;default:t={x:n.x,y:n.y}}var m=u?F(u):null;if(null!=m){var v="y"===m?"height":"width";switch(p){case c:t[m]=t[m]-(n[v]/2-a[v]/2);break;case f:t[m]=t[m]+(n[v]/2-a[v]/2)}}return t}function ye(e,t){void 0===t&&(t={});var n=t,s=n.placement,a=void 0===s?e.placement:s,c=n.strategy,f=void 0===c?e.strategy:c,m=n.boundary,v=void 0===m?u:m,y=n.rootBoundary,w=void 0===y?p:y,g=n.elementContext,b=void 0===g?d:g,x=n.altBoundary,E=void 0!==x&&x,O=n.padding,S=void 0===O?0:O,L=G("number"!=typeof S?S:Z(S,l)),C=b===d?h:d,A=e.rects.popper,I=e.elements[E?C:b],_=function(e,t,n,o){var r="clippingParents"===t?function(e){var t=de(K(e)),n=["absolute","fixed"].indexOf(Y(e).position)>=0&&T(e)?z(e):e;return D(n)?t.filter((function(e){return D(e)&&V(e,n)&&"body"!==P(e)})):[]}(e):[].concat(t),i=[].concat(r,[n]),s=i[0],a=i.reduce((function(t,n){var r=me(e,n,o);return t.top=M(r.top,t.top),t.right=H(r.right,t.right),t.bottom=H(r.bottom,t.bottom),t.left=M(r.left,t.left),t}),me(e,s,o));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(D(I)?I:I.contextElement||N(e.elements.popper),v,w,f),j=W(e.elements.reference),k=ve({reference:j,element:A,strategy:"absolute",placement:a}),B=he(Object.assign({},A,k)),q=b===d?B:j,R={top:_.top-q.top+L.top,bottom:q.bottom-_.bottom+L.bottom,left:_.left-q.left+L.left,right:q.right-_.right+L.right},$=e.modifiersData.offset;if(b===d&&$){var U=$[a];Object.keys(R).forEach((function(e){var t=[i,r].indexOf(e)>=0?1:-1,n=[o,r].indexOf(e)>=0?"y":"x";R[e]+=U[n]*t}))}return R}const we={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,f=e.name;if(!t.modifiersData[f]._skip){for(var u=n.mainAxis,p=void 0===u||u,d=n.altAxis,h=void 0===d||d,y=n.fallbackPlacements,w=n.padding,g=n.boundary,b=n.rootBoundary,x=n.altBoundary,E=n.flipVariations,O=void 0===E||E,S=n.allowedAutoPlacements,L=t.options.placement,C=j(L),P=y||(C!==L&&O?function(e){if(j(e)===a)return[];var t=se(e);return[le(e),t,le(t)]}(L):[se(L)]),A=[L].concat(P).reduce((function(e,n){return e.concat(j(n)===a?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,i=n.rootBoundary,s=n.padding,a=n.flipVariations,c=n.allowedAutoPlacements,f=void 0===c?v:c,u=Q(o),p=u?a?m:m.filter((function(e){return Q(e)===u})):l,d=p.filter((function(e){return f.indexOf(e)>=0}));0===d.length&&(d=p);var h=d.reduce((function(t,n){return t[n]=ye(e,{placement:n,boundary:r,rootBoundary:i,padding:s})[j(n)],t}),{});return Object.keys(h).sort((function(e,t){return h[e]-h[t]}))}(t,{placement:n,boundary:g,rootBoundary:b,padding:w,flipVariations:O,allowedAutoPlacements:S}):n)}),[]),D=t.rects.reference,T=t.rects.popper,I=new Map,_=!0,M=A[0],H=0;H=0,R=W?"width":"height",V=ye(t,{placement:k,boundary:g,rootBoundary:b,altBoundary:x,padding:w}),Y=W?q?i:s:q?r:o;D[R]>T[R]&&(Y=se(Y));var $=se(Y),N=[];if(p&&N.push(V[B]<=0),h&&N.push(V[Y]<=0,V[$]<=0),N.every((function(e){return e}))){M=k,_=!1;break}I.set(k,N)}if(_)for(var K=function(e){var t=A.find((function(t){var n=I.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return M=t,"break"},U=O?3:1;U>0&&"break"!==K(U);U--);t.placement!==M&&(t.modifiersData[f]._skip=!0,t.placement=M,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ge(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function be(e){return[o,i,r,s].some((function(t){return e[t]>=0}))}const xe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,s=ye(t,{elementContext:"reference"}),a=ye(t,{altBoundary:!0}),l=ge(s,o),c=ge(a,r,i),f=be(l),u=be(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:f,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":u})}},Ee={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,a=n.offset,l=void 0===a?[0,0]:a,c=v.reduce((function(e,n){return e[n]=function(e,t,n){var r=j(e),a=[s,o].indexOf(r)>=0?-1:1,l="function"==typeof n?n(Object.assign({},t,{placement:e})):n,c=l[0],f=l[1];return c=c||0,f=(f||0)*a,[s,i].indexOf(r)>=0?{x:f,y:c}:{x:c,y:f}}(n,t.rects,l),e}),{}),f=c[t.placement],u=f.x,p=f.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=p),t.modifiersData[r]=c}},Oe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=ve({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},Se={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,a=e.name,l=n.mainAxis,f=void 0===l||l,u=n.altAxis,p=void 0!==u&&u,d=n.boundary,h=n.rootBoundary,m=n.altBoundary,v=n.padding,y=n.tether,w=void 0===y||y,g=n.tetherOffset,b=void 0===g?0:g,x=ye(t,{boundary:d,rootBoundary:h,padding:v,altBoundary:m}),E=j(t.placement),O=Q(t.placement),S=!O,L=F(E),C="x"===L?"y":"x",P=t.modifiersData.popperOffsets,A=t.rects.reference,D=t.rects.popper,T="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,I="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),_=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,k={x:0,y:0};if(P){if(f){var B,q="y"===L?o:s,W="y"===L?r:i,V="y"===L?"height":"width",Y=P[L],$=Y+x[q],N=Y-x[W],K=w?-D[V]/2:0,U=O===c?A[V]:D[V],G=O===c?-D[V]:-A[V],Z=t.elements.arrow,J=w&&Z?R(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[q],ne=ee[W],oe=X(0,A[V],J[V]),re=S?A[V]/2-K-oe-te-I.mainAxis:U-oe-te-I.mainAxis,ie=S?-A[V]/2+K+oe+ne+I.mainAxis:G+oe+ne+I.mainAxis,se=t.elements.arrow&&z(t.elements.arrow),ae=se?"y"===L?se.clientTop||0:se.clientLeft||0:0,le=null!=(B=null==_?void 0:_[L])?B:0,ce=Y+ie-le,fe=X(w?H($,Y+re-le-ae):$,Y,w?M(N,ce):N);P[L]=fe,k[L]=fe-Y}if(p){var ue,pe="x"===L?o:s,de="x"===L?r:i,he=P[C],me="y"===C?"height":"width",ve=he+x[pe],we=he-x[de],ge=-1!==[o,s].indexOf(E),be=null!=(ue=null==_?void 0:_[C])?ue:0,xe=ge?ve:he-A[me]-D[me]-be+I.altAxis,Ee=ge?he+A[me]+D[me]-be-I.altAxis:we,Oe=w&&ge?function(e,t,n){var o=X(e,t,n);return o>n?n:o}(xe,he,Ee):X(w?xe:ve,he,w?Ee:we);P[C]=Oe,k[C]=Oe-he}t.modifiersData[a]=k}},requiresIfExists:["offset"]};function Le(e,t,n){void 0===n&&(n=!1);var o,r,i=T(t),s=T(t)&&function(e){var t=e.getBoundingClientRect(),n=k(t.width)/e.offsetWidth||1,o=k(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),a=N(t),l=W(e,s,n),c={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(i||!i&&!n)&&(("body"!==P(t)||ue(a))&&(c=(o=t)!==A(o)&&T(o)?{scrollLeft:(r=o).scrollLeft,scrollTop:r.scrollTop}:ce(o)),T(t)?((f=W(t,!0)).x+=t.clientLeft,f.y+=t.clientTop):a&&(f.x=fe(a))),{x:l.left+c.scrollLeft-f.x,y:l.top+c.scrollTop-f.y,width:l.width,height:l.height}}function Ce(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}var Pe={placement:"bottom",modifiers:[],strategy:"absolute"};function Ae(){for(var e=arguments.length,t=new Array(e),n=0;n{Object.defineProperty(t,"__esModule",{value:!0}),t.SELECT_ACCESSIBILITY_KEY_SET=t.TABS_ACCESSIBILITY_KEY_SET=t.OVERLAY_ACCESSIBILITY_KEY_SET=t.DROPDOWN_ACCESSIBILITY_KEY_SET=t.POSITIONS=void 0,t.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},t.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],t.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],t.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],t.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},737:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t,n){this.el=e,this.options=t,this.events=n,this.el=e,this.options=t,this.events={}}return e.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.createCollection=function(e,t){var n;e.push({id:(null===(n=null==t?void 0:t.el)||void 0===n?void 0:n.id)||e.length+1,element:t})},e.prototype.fireEvent=function(e,t){if(void 0===t&&(t=null),this.events.hasOwnProperty(e))return this.events[e](t)},e.prototype.dispatch=function(e,t,n){void 0===n&&(n=null);var o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)},e.prototype.on=function(e,t){this.events[e]=t},e.prototype.afterTransition=function(e,t){var n=function(){t(),e.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",n,!0):t()},e.prototype.onTransitionEnd=function(e,t){e.addEventListener("transitionend",(function n(o){o.target===e&&(e.removeEventListener("transitionend",n),t())}))},e.prototype.getClassProperty=function(e,t,n){return void 0===n&&(n=""),(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","")},e.prototype.getClassPropertyAlt=function(e,t,n){void 0===n&&(n="");var o="";return e.classList.forEach((function(e){e.includes(t)&&(o=e)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},e.prototype.htmlToElement=function(e){var t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild},e.prototype.classToClassList=function(e,t,n){void 0===n&&(n=" "),e.split(n).forEach((function(e){return t.classList.add(e)}))},e.prototype.debounce=function(e,t){var n,o=this;return void 0===t&&(t=200),function(){for(var r=[],i=0;i=f:"top"===n?l>=f:l>=f||c>=f},e.isParentOrElementHidden=function(e){return!!e&&("none"===window.getComputedStyle(e).display||this.isParentOrElementHidden(e.parentElement))},e}();t.default=n,window.HSStaticMethods={afterTransition:function(e,t){var n=function(){t(),e.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",n,!0):t()},getClassPropertyAlt:function(e,t,n){void 0===n&&(n="");var o="";return e.classList.forEach((function(e){e.includes(t)&&(o=e)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(e,t,n){return void 0===n&&(n=""),(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","")}}},610:function(e,t,n){var o,r=this&&this.__extends||(o=function(e,t){return o=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])},o(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}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),i=this&&this.__spreadArray||function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r .hs-dropdown-toggle")||r.el.children[0],r.menu=r.el.querySelector(":scope > .hs-dropdown-menu"),r.eventMode=r.getClassProperty(r.el,"--trigger","click"),r.closeMode=r.getClassProperty(r.el,"--auto-close","true"),r.animationInProcess=!1,r.toggle&&r.menu&&r.init(),r}return r(t,e),t.prototype.init=function(){var e=this;if(this.createCollection(window.$hsDropdownCollection,this),this.toggle.disabled)return!1;this.toggle.addEventListener("click",(function(){return e.onClickHandler()})),this.isIOS()||this.isIpadOS()||(this.el.addEventListener("mouseenter",(function(){return e.onMouseEnterHandler()})),this.el.addEventListener("mouseleave",(function(){return e.onMouseLeaveHandler()})))},t.prototype.resizeHandler=function(){this.eventMode=this.getClassProperty(this.el,"--trigger","click")},t.prototype.onClickHandler=function(){this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")?this.close():this.open()},t.prototype.onMouseEnterHandler=function(){if("hover"!==this.eventMode)return!1;this.el._popper&&this.forceClearState(),!this.el.classList.contains("open")&&this.menu.classList.contains("hidden")&&this.open()},t.prototype.onMouseLeaveHandler=function(){if("hover"!==this.eventMode)return!1;this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")&&this.close()},t.prototype.destroyPopper=function(){this.menu.classList.remove("block"),this.menu.classList.add("hidden"),this.menu.style.inset=null,this.menu.style.position=null,this.el&&this.el._popper&&this.el._popper.destroy(),this.animationInProcess=!1},t.prototype.absoluteStrategyModifiers=function(){var e=this;return[{name:"applyStyles",fn:function(t){var n=(window.getComputedStyle(e.el).getPropertyValue("--strategy")||"absolute").replace(" ",""),o=(window.getComputedStyle(e.el).getPropertyValue("--adaptive")||"adaptive").replace(" ","");t.state.elements.popper.style.position=n,t.state.elements.popper.style.transform="adaptive"===o?t.state.styles.popper.transform:null,t.state.elements.popper.style.top=null,t.state.elements.popper.style.bottom=null,t.state.elements.popper.style.left=null,t.state.elements.popper.style.right=null,t.state.elements.popper.style.margin=0}},{name:"computeStyles",options:{adaptive:!1}}]},t.prototype.open=function(){var e=this;if(this.el.classList.contains("open"))return!1;if(this.animationInProcess)return!1;this.animationInProcess=!0;var t=(window.getComputedStyle(this.el).getPropertyValue("--placement")||"").replace(" ",""),n=(window.getComputedStyle(this.el).getPropertyValue("--flip")||"true").replace(" ",""),o=(window.getComputedStyle(this.el).getPropertyValue("--strategy")||"fixed").replace(" ",""),r=parseInt((window.getComputedStyle(this.el).getPropertyValue("--offset")||"10").replace(" ",""));"static"!==o&&(this.el._popper=(0,l.createPopper)(this.el,this.menu,{placement:a.POSITIONS[t]||"bottom-start",strategy:o,modifiers:i(i([],"fixed"!==o?this.absoluteStrategyModifiers():[],!0),[{name:"flip",enabled:"true"===n},{name:"offset",options:{offset:[0,r]}}],!1)})),this.menu.style.margin=null,this.menu.classList.remove("hidden"),this.menu.classList.add("block"),setTimeout((function(){e.el.classList.add("open"),e.animationInProcess=!1})),this.fireEvent("open",this.el),this.dispatch("open.hs.dropdown",this.el,this.el)},t.prototype.close=function(e){var t=this;if(void 0===e&&(e=!0),this.animationInProcess||!this.el.classList.contains("open"))return!1;if(this.animationInProcess=!0,e){var n=this.el.querySelector("[data-hs-dropdown-transition]")||this.menu;this.afterTransition(n,(function(){return t.destroyPopper()}))}else this.destroyPopper();this.menu.style.margin=null,this.el.classList.remove("open"),this.fireEvent("close",this.el),this.dispatch("close.hs.dropdown",this.el,this.el)},t.prototype.forceClearState=function(){this.destroyPopper(),this.menu.style.margin=null,this.el.classList.remove("open")},t.getInstance=function(e,t){var n=window.$hsDropdownCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));return n?t?n:n.element.el:null},t.open=function(e){var t=window.$hsDropdownCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));t&&t.element.menu.classList.contains("hidden")&&t.element.open()},t.close=function(e){var t=window.$hsDropdownCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));t&&!t.element.menu.classList.contains("hidden")&&t.element.close()},t.accessibility=function(e){this.history=c.menuSearchHistory;var t=window.$hsDropdownCollection.find((function(e){return e.element.el.classList.contains("open")}));if(t&&(a.DROPDOWN_ACCESSIBILITY_KEY_SET.includes(e.code)||4===e.code.length&&e.code[e.code.length-1].match(/^[A-Z]*$/))&&!e.metaKey&&!t.element.menu.querySelector("input:focus"))switch(console.log("Key code:",e.code),e.code){case"Escape":t.element.menu.querySelector(".hs-select.active")||(e.preventDefault(),this.onEscape(e));break;case"Enter":t.element.menu.querySelector(".hs-select button:focus")||t.element.menu.querySelector(".hs-collapse-toggle:focus")||this.onEnter(e);break;case"ArrowUp":e.preventDefault(),this.onArrow();break;case"ArrowDown":e.preventDefault(),this.onArrow(!1);break;case"Home":e.preventDefault(),this.onStartEnd();break;case"End":e.preventDefault(),this.onStartEnd(!1);break;default:e.preventDefault(),this.onFirstLetter(e.key)}},t.onEscape=function(e){var t=e.target.closest(".hs-dropdown.open");if(window.$hsDropdownCollection.find((function(e){return e.element.el===t}))){var n=window.$hsDropdownCollection.find((function(e){return e.element.el===t}));n&&(n.element.close(),n.element.toggle.focus())}else this.closeCurrentlyOpened()},t.onEnter=function(e){var t=e.target.parentElement;if(window.$hsDropdownCollection.find((function(e){return e.element.el===t}))){e.preventDefault();var n=window.$hsDropdownCollection.find((function(e){return e.element.el===t}));n&&n.element.open()}},t.onArrow=function(e){void 0===e&&(e=!0);var t=window.$hsDropdownCollection.find((function(e){return e.element.el.classList.contains("open")}));if(t){var n=t.element.menu;if(!n)return!1;var o=(e?Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])")).reverse():Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])"))).filter((function(e){return!e.classList.contains("disabled")})),r=n.querySelector("a:focus, button:focus"),i=o.findIndex((function(e){return e===r}));i+1{Object.defineProperty(t,"__esModule",{value:!0}),t.menuSearchHistory=void 0;var o=n(489);t.menuSearchHistory=o.default},489:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={historyIndex:-1,addHistory:function(e){this.historyIndex=e},existsInHistory:function(e){return e>this.historyIndex},clearHistory:function(){this.historyIndex=-1}}}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o].call(i.exports,i,i.exports,n),i.exports}return n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(610)})())); \ No newline at end of file diff --git a/dist/dropdown.js.LICENSE.txt b/dist/dropdown.js.LICENSE.txt new file mode 100644 index 0000000..bd41d21 --- /dev/null +++ b/dist/dropdown.js.LICENSE.txt @@ -0,0 +1,23 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSDropdown + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * Menu Search History + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/index.js.LICENSE.txt b/dist/index.js.LICENSE.txt new file mode 100644 index 0000000..07d1499 --- /dev/null +++ b/dist/index.js.LICENSE.txt @@ -0,0 +1,159 @@ +/* + * HSAccordion + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSCarousel + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSCollapse + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSCopyMarkup + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSDropdown + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSInputNumber + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSOverlay + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSPinInput + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSRemoveElement + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSScrollspy + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSSelect + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSStepper + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSStrongPassword + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSTabs + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSThemeSwitch + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSToggleCount + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSTogglePassword + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSTooltip + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * Menu Search History + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/input-mask.js b/dist/input-mask.js new file mode 100644 index 0000000..02dd254 --- /dev/null +++ b/dist/input-mask.js @@ -0,0 +1,2 @@ +/*! For license information please see input-mask.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 n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],s=0;s=p:"top"===n?l>=p:l>=p||u>=p},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},433:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n=this.mask.length?(this.el.value=this.pseudoValue,!1):((/^\d+$/.test(e)&&/^\d+$/.test(this.mask[n.length-1])||/^[A-Z]+$/.test(e)&&/^[A-Z]+$/.test(this.mask[n.length-1])||/^[a-z]+$/.test(e)&&/^[a-z]+$/.test(this.mask[n.length-1]))&&(this.pseudoValue+=e),/^[a-zA-Z0-9]+$/.test(this.mask[n.length])||(this.pseudoValue+=this.mask[n.length]),this.el.value=this.pseudoValue,void(this.el.selectionStart=this.el.selectionEnd=this.pseudoValue.length))},e.getInstance=function(t){var e=window.$hsInputMaskCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return e?e.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsInputMaskCollection||(window.$hsInputMaskCollection=[]),document.querySelectorAll("[data-hs-input-mask]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-input-mask"),n=e?JSON.parse(e):{};new r(t,n)}))})),t.exports.HSInputMask=r,e.default=r}},e={};return function n(o){var i=e[o];if(void 0!==i)return i.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}(433)})())); \ No newline at end of file diff --git a/dist/input-number.js b/dist/input-number.js new file mode 100644 index 0000000..133bbd8 --- /dev/null +++ b/dist/input-number.js @@ -0,0 +1,2 @@ +/*! For license information please see input-number.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 n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var i=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(i)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(i){i.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,i=this;return void 0===e&&(e=200),function(){for(var o=[],r=0;r=c:"top"===n?u>=c:u>=c||l>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},371:function(t,e,n){var i,o=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){function e(e,n){var i=t.call(this,e,n)||this;return i.input=i.el.querySelector("[data-hs-input-number-input]")||null,i.increment=i.el.querySelector("[data-hs-input-number-increment]")||null,i.decrement=i.el.querySelector("[data-hs-input-number-decrement]")||null,i.inputValue=i.input?parseInt(i.input.value):0,i.init(),i}return o(e,t),e.prototype.init=function(){this.createCollection(window.$hsInputNumberCollection,this),this.input&&this.increment&&this.build()},e.prototype.build=function(){this.input&&this.buildInput(),this.increment&&this.buildIncrement(),this.decrement&&this.buildDecrement(),this.inputValue<=0&&(this.inputValue=0,this.input.value="0",this.changeValue()),this.input.hasAttribute("disabled")&&this.disableButtons()},e.prototype.buildInput=function(){var t=this;this.input.addEventListener("input",(function(){return t.changeValue()}))},e.prototype.buildIncrement=function(){var t=this;this.increment.addEventListener("click",(function(){t.changeValue("increment")}))},e.prototype.buildDecrement=function(){var t=this;this.decrement.addEventListener("click",(function(){t.changeValue("decrement")}))},e.prototype.changeValue=function(t){void 0===t&&(t="none");var e={inputValue:this.inputValue};switch(t){case"increment":this.inputValue+=1,this.input.value=this.inputValue.toString();break;case"decrement":this.inputValue-=this.inputValue<=0?0:1,this.input.value=this.inputValue.toString();break;default:this.inputValue=parseInt(this.input.value)<=0?0:parseInt(this.input.value),this.inputValue<=0&&(this.input.value=this.inputValue.toString())}e.inputValue=this.inputValue,0===this.inputValue?(this.el.classList.add("disabled"),this.decrement&&this.disableButtons("decrement")):(this.el.classList.remove("disabled"),this.decrement&&this.enableButtons("decrement")),this.fireEvent("change",e),this.dispatch("change.hs.inputNumber",this.el,e)},e.prototype.disableButtons=function(t){void 0===t&&(t="all"),"all"===t?("BUTTON"!==this.increment.tagName&&"INPUT"!==this.increment.tagName||this.increment.setAttribute("disabled","disabled"),"BUTTON"!==this.decrement.tagName&&"INPUT"!==this.decrement.tagName||this.decrement.setAttribute("disabled","disabled")):"increment"===t?"BUTTON"!==this.increment.tagName&&"INPUT"!==this.increment.tagName||this.increment.setAttribute("disabled","disabled"):"decrement"===t&&("BUTTON"!==this.decrement.tagName&&"INPUT"!==this.decrement.tagName||this.decrement.setAttribute("disabled","disabled"))},e.prototype.enableButtons=function(t){void 0===t&&(t="all"),"all"===t?("BUTTON"!==this.increment.tagName&&"INPUT"!==this.increment.tagName||this.increment.removeAttribute("disabled"),"BUTTON"!==this.decrement.tagName&&"INPUT"!==this.decrement.tagName||this.decrement.removeAttribute("disabled")):"increment"===t?"BUTTON"!==this.increment.tagName&&"INPUT"!==this.increment.tagName||this.increment.removeAttribute("disabled"):"decrement"===t&&("BUTTON"!==this.decrement.tagName&&"INPUT"!==this.decrement.tagName||this.decrement.removeAttribute("disabled"))},e.getInstance=function(t,e){var n=window.$hsInputNumberCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsInputNumberCollection||(window.$hsInputNumberCollection=[]),document.querySelectorAll("[data-hs-input-number]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSInputNumber=r,e.default=r}},e={};return function n(i){var o=e[i];if(void 0!==o)return o.exports;var r=e[i]={exports:{}};return t[i].call(r.exports,r,r.exports,n),r.exports}(371)})())); \ No newline at end of file diff --git a/dist/input-number.js.LICENSE.txt b/dist/input-number.js.LICENSE.txt new file mode 100644 index 0000000..7e714b2 --- /dev/null +++ b/dist/input-number.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSInputNumber + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/overlay.js b/dist/overlay.js new file mode 100644 index 0000000..a59a602 --- /dev/null +++ b/dist/overlay.js @@ -0,0 +1,2 @@ +/*! For license information please see overlay.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(self,(()=>(()=>{"use strict";var e={737:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t,o){this.el=e,this.options=t,this.events=o,this.el=e,this.options=t,this.events={}}return e.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.createCollection=function(e,t){var o;e.push({id:(null===(o=null==t?void 0:t.el)||void 0===o?void 0:o.id)||e.length+1,element:t})},e.prototype.fireEvent=function(e,t){if(void 0===t&&(t=null),this.events.hasOwnProperty(e))return this.events[e](t)},e.prototype.dispatch=function(e,t,o){void 0===o&&(o=null);var n=new CustomEvent(e,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(n)},e.prototype.on=function(e,t){this.events[e]=t},e.prototype.afterTransition=function(e,t){var o=function(){t(),e.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",o,!0):t()},e.prototype.onTransitionEnd=function(e,t){e.addEventListener("transitionend",(function o(n){n.target===e&&(e.removeEventListener("transitionend",o),t())}))},e.prototype.getClassProperty=function(e,t,o){return void 0===o&&(o=""),(window.getComputedStyle(e).getPropertyValue(t)||o).replace(" ","")},e.prototype.getClassPropertyAlt=function(e,t,o){void 0===o&&(o="");var n="";return e.classList.forEach((function(e){e.includes(t)&&(n=e)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},e.prototype.htmlToElement=function(e){var t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild},e.prototype.classToClassList=function(e,t,o){void 0===o&&(o=" "),e.split(o).forEach((function(e){return t.classList.add(e)}))},e.prototype.debounce=function(e,t){var o,n=this;return void 0===t&&(t=200),function(){for(var r=[],i=0;i=u:"top"===o?s>=u:s>=u||c>=u},e.isParentOrElementHidden=function(e){return!!e&&("none"===window.getComputedStyle(e).display||this.isParentOrElementHidden(e.parentElement))},e}();t.default=o,window.HSStaticMethods={afterTransition:function(e,t){var o=function(){t(),e.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",o,!0):t()},getClassPropertyAlt:function(e,t,o){void 0===o&&(o="");var n="";return e.classList.forEach((function(e){e.includes(t)&&(n=e)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},getClassProperty:function(e,t,o){return void 0===o&&(o=""),(window.getComputedStyle(e).getPropertyValue(t)||o).replace(" ","")}}},770:function(e,t,o){var n,r=this&&this.__extends||(n=function(e,t){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},n(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 o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,o=1,n=arguments.length;o-1?t[(n+1)%t.length].focus():t[0].focus()},t.on=function(e,t,o){var n=window.$hsOverlayCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)||e.element.overlay===("string"==typeof t?document.querySelector(t):t)}));n&&(n.element.events[e]=o)},t}(o(737).default);window.addEventListener("load",(function(){window.$hsOverlayCollection||(window.$hsOverlayCollection=[]),document.querySelectorAll("[data-hs-overlay]:not(.--prevent-on-load-init)").forEach((function(e){return new a(e)})),window.$hsOverlayCollection&&document.addEventListener("keydown",(function(e){return a.accessibility(e)}))})),e.exports.HSOverlay=a,t.default=a}},t={};return function o(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,o),i.exports}(770)})())); \ No newline at end of file diff --git a/dist/overlay.js.LICENSE.txt b/dist/overlay.js.LICENSE.txt new file mode 100644 index 0000000..8a57a2d --- /dev/null +++ b/dist/overlay.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSOverlay + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/pin-input.js b/dist/pin-input.js new file mode 100644 index 0000000..d4cbfdc --- /dev/null +++ b/dist/pin-input.js @@ -0,0 +1,2 @@ +/*! For license information please see pin-input.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 n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],r=0;r=c:"top"===n?a>=c:a>=c||l>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},659:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&this.items[e-1].focus()},e.prototype.onKeydown=function(t,e){"Backspace"===t.key&&e>0&&(""===this.items[e].value?(this.items[e-1].value="",this.items[e-1].focus()):this.items[e].value=""),this.setCurrentValue(),this.toggleCompleted()},e.prototype.onFocusIn=function(t){this.items[t].setAttribute("placeholder","")},e.prototype.onFocusOut=function(t){this.items[t].setAttribute("placeholder",this.placeholders[t])},e.prototype.onPaste=function(t){var e=this;t.preventDefault(),this.items.forEach((function(n){document.activeElement===n&&e.autoFillAll(t.clipboardData.getData("text"))}))},e.getInstance=function(t,e){var n=window.$hsPinInputCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsPinInputCollection||(window.$hsPinInputCollection=[]),document.querySelectorAll("[data-hs-pin-input]:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSPinInput=s,e.default=s}},e={};return function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o].call(r.exports,r,r.exports,n),r.exports}(659)})())); \ No newline at end of file diff --git a/dist/pin-input.js.LICENSE.txt b/dist/pin-input.js.LICENSE.txt new file mode 100644 index 0000000..dfd288c --- /dev/null +++ b/dist/pin-input.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSPinInput + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/preline.js b/dist/preline.js index c4072dd..dddaab1 100644 --- a/dist/preline.js +++ b/dist/preline.js @@ -1,2 +1,2 @@ -/*! For license information please see preline.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(self,(function(){return(()=>{"use strict";var e={661:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o{var n=o(714),r=o(765);const i={historyIndex:-1,addHistory:function(e){this.historyIndex=e},existsInHistory:function(e){return e>this.historyIndex},clearHistory:function(){this.historyIndex=-1}};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(e,t):void 0}}(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 c(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o2&&/MacIntel/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)||e._hover(o)}})),document.addEventListener("keydown",this._keyboardSupport.bind(this)),window.addEventListener("resize",(function(){document.querySelectorAll(".hs-dropdown.open").forEach((function(t){e.close(t,!0)}))}))}},{key:"_closeOthers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=document.querySelectorAll("".concat(this.selector,".open"));o.forEach((function(o){if(!t||t.closest(".hs-dropdown.open")!==o){var n=(window.getComputedStyle(o).getPropertyValue("--auto-close")||"").replace(" ","");"false"!=n&&"outside"!=n&&e.close(o)}}))}},{key:"_hover",value:function(e){var t=this,o=e.closest(this.selector);this.open(o),document.addEventListener("mousemove",(function e(n){n.target.closest(t.selector)&&n.target.closest(t.selector)!==o.parentElement.closest(t.selector)||(t.close(o),document.removeEventListener("mousemove",e,!0))}),!0)}},{key:"close",value:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.querySelector(".hs-dropdown-menu"),r=function(){e.classList.contains("open")||(n.classList.remove("block"),n.classList.add("hidden"),n.style.inset=null,n.style.position=null,e._popper&&e._popper.destroy())};o||this.afterTransition(e.querySelector("[data-hs-dropdown-transition]")||n,(function(){r()})),n.style.margin=null,e.classList.remove("open"),o&&r(),this._fireEvent("close",e),this._dispatch("close.hs.dropdown",e,e);var i=n.querySelectorAll(".hs-dropdown.open");i.forEach((function(e){t.close(e,!0)}))}},{key:"open",value:function(e){var t=e.querySelector(".hs-dropdown-menu"),o=(window.getComputedStyle(e).getPropertyValue("--placement")||"").replace(" ",""),r=(window.getComputedStyle(e).getPropertyValue("--strategy")||"fixed").replace(" ",""),i=((window.getComputedStyle(e).getPropertyValue("--adaptive")||"adaptive").replace(" ",""),parseInt((window.getComputedStyle(e).getPropertyValue("--offset")||"10").replace(" ","")));if("static"!==r){e._popper&&e._popper.destroy();var a=(0,n.fi)(e,t,{placement:this.positions[o]||"bottom-start",strategy:r,modifiers:[].concat(s("fixed"!==r?this.absoluteStrategyModifiers(e):[]),[{name:"offset",options:{offset:[0,i]}}])});e._popper=a}t.style.margin=null,t.classList.add("block"),t.classList.remove("hidden"),setTimeout((function(){e.classList.add("open")})),this._fireEvent("open",e),this._dispatch("open.hs.dropdown",e,e)}},{key:"_keyboardSupport",value:function(e){var t=document.querySelector(".hs-dropdown.open");if(t)return 27===e.keyCode?(e.preventDefault(),this._esc(t)):40===e.keyCode?(e.preventDefault(),this._down(t)):38===e.keyCode?(e.preventDefault(),this._up(t)):36===e.keyCode?(e.preventDefault(),this._start(t)):35===e.keyCode?(e.preventDefault(),this._end(t)):void this._byChar(t,e.key)}},{key:"_esc",value:function(e){this.close(e)}},{key:"_up",value:function(e){var t=e.querySelector(".hs-dropdown-menu"),o=s(t.querySelectorAll("a")).reverse().filter((function(e){return!e.disabled})),n=t.querySelector("a:focus"),r=o.findIndex((function(e){return e===n}));r+1{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,s=!0,c=!1;return{s:function(){o=o.call(e)},n:function(){var e=o.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==o.return||o.return()}finally{if(c)throw a}}}}(e.classList.values());try{for(s.s();!(t=s.n()).done;){var c=t.value;c.startsWith("hs-overlay-backdrop-open:")&&(a+=" ".concat(c))}}catch(e){s.e(e)}finally{s.f()}var l="static"!==this.getClassProperty(e,"--overlay-backdrop","true");"false"===this.getClassProperty(e,"--overlay-backdrop","true")||(n&&((i=document.querySelector(n).cloneNode(!0)).classList.remove("hidden"),a=i.classList,i.classList=""),l&&i.addEventListener("click",(function(){return o.close(e)}),!0),i.setAttribute("data-hs-overlay-backdrop-template",""),document.body.appendChild(i),setTimeout((function(){i.classList=a})))}},{key:"_destroyBackdrop",value:function(){var e=document.querySelector("[data-hs-overlay-backdrop-template]");e&&(this.openNextOverlay&&(e.style.transitionDuration="".concat(1.8*parseFloat(window.getComputedStyle(e).transitionDuration.replace(/[^\d.-]/g,"")),"s")),e.classList.add("opacity-0"),this.afterTransition(e,(function(){e.remove()})))}},{key:"_focusInput",value:function(e){var t=e.querySelector("[autofocus]");t&&t.focus()}}])&&i(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),f}(o(765).Z);window.HSOverlay=new l,document.addEventListener("load",window.HSOverlay.init())},181:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o0){if(this.activeSection===r)return;n.forEach((function(e){e.classList.remove("active")}));var u=o.querySelector('[href="#'.concat(r.getAttribute("id"),'"]'));if(u){u.classList.add("active");var f=u.closest("[data-hs-scrollspy-group]");if(f){var p=f.querySelector("[href]");p&&p.classList.add("active")}}this.activeSection=r}}},{key:"_scrollTo",value:function(e){var t=e.$scrollspyEl,o=e.$scrollableEl,n=e.$link,r=document.querySelector(n.getAttribute("href")),i=parseInt(this.getClassProperty(t,"--scrollspy-offset","0")),a=this.getClassProperty(r,"--scrollspy-offset")||i,s=o===document?0:o.offsetTop,c=r.offsetTop-a-s,l=o===document?window:o;this._fireEvent("scroll",t),this._dispatch("scroll.hs.scrollspy",t,t),window.history.replaceState(null,null,n.getAttribute("href")),l.scrollTo({top:c,left:0,behavior:"smooth"})}}])&&r(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),u}(o(765).Z);window.HSScrollspy=new c,document.addEventListener("load",window.HSScrollspy.init())},51:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?i(e,t):void 0}}(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 i(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o{var n=o(765),r=o(714);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){for(var o=0;o{function n(e,t){for(var o=0;or});var r=function(){function e(t,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=o,this.events={}}var t,o;return t=e,o=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new CustomEvent(e,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(n)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function o(){t(),e.removeEventListener("transitionend",o,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=(window.getComputedStyle(e).getPropertyValue(t)||o).replace(" ","");return n}}],o&&n(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e}()},714:(e,t,o)=>{function n(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function r(e){return e instanceof n(e).Element||e instanceof Element}function i(e){return e instanceof n(e).HTMLElement||e instanceof HTMLElement}function a(e){return"undefined"!=typeof ShadowRoot&&(e instanceof n(e).ShadowRoot||e instanceof ShadowRoot)}o.d(t,{fi:()=>ce});var s=Math.max,c=Math.min,l=Math.round;function u(e,t){void 0===t&&(t=!1);var o=e.getBoundingClientRect(),n=1,r=1;if(i(e)&&t){var a=e.offsetHeight,s=e.offsetWidth;s>0&&(n=l(o.width)/s||1),a>0&&(r=l(o.height)/a||1)}return{width:o.width/n,height:o.height/r,top:o.top/r,right:o.right/n,bottom:o.bottom/r,left:o.left/n,x:o.left/n,y:o.top/r}}function f(e){var t=n(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((r(e)?e.ownerDocument:e.document)||window.document).documentElement}function y(e){return u(d(e)).left+f(e).scrollLeft}function h(e){return n(e).getComputedStyle(e)}function v(e){var t=h(e),o=t.overflow,n=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(o+r+n)}function m(e,t,o){void 0===o&&(o=!1);var r,a,s=i(t),c=i(t)&&function(e){var t=e.getBoundingClientRect(),o=l(t.width)/e.offsetWidth||1,n=l(t.height)/e.offsetHeight||1;return 1!==o||1!==n}(t),h=d(t),m=u(e,c),b={scrollLeft:0,scrollTop:0},g={x:0,y:0};return(s||!s&&!o)&&(("body"!==p(t)||v(h))&&(b=(r=t)!==n(r)&&i(r)?{scrollLeft:(a=r).scrollLeft,scrollTop:a.scrollTop}:f(r)),i(t)?((g=u(t,!0)).x+=t.clientLeft,g.y+=t.clientTop):h&&(g.x=y(h))),{x:m.left+b.scrollLeft-g.x,y:m.top+b.scrollTop-g.y,width:m.width,height:m.height}}function b(e){var t=u(e),o=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-o)<=1&&(o=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:o,height:n}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(a(e)?e.host:null)||d(e)}function w(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:i(e)&&v(e)?e:w(g(e))}function O(e,t){var o;void 0===t&&(t=[]);var r=w(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),a=n(r),s=i?[a].concat(a.visualViewport||[],v(r)?r:[]):r,c=t.concat(s);return i?c:c.concat(O(g(s)))}function S(e){return["table","td","th"].indexOf(p(e))>=0}function x(e){return i(e)&&"fixed"!==h(e).position?e.offsetParent:null}function _(e){for(var t=n(e),o=x(e);o&&S(o)&&"static"===h(o).position;)o=x(o);return o&&("html"===p(o)||"body"===p(o)&&"static"===h(o).position)?t:o||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&i(e)&&"fixed"===h(e).position)return null;for(var o=g(e);i(o)&&["html","body"].indexOf(p(o))<0;){var n=h(o);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return o;o=o.parentNode}return null}(e)||t}var E="top",k="bottom",j="right",P="left",L="auto",A=[E,k,j,P],T="start",C="end",q="viewport",R="popper",D=A.reduce((function(e,t){return e.concat([t+"-"+T,t+"-"+C])}),[]),H=[].concat(A,[L]).reduce((function(e,t){return e.concat([t,t+"-"+T,t+"-"+C])}),[]),B=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function I(e){var t=new Map,o=new Set,n=[];function r(e){o.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!o.has(e)){var n=t.get(e);n&&r(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){o.has(e.name)||r(e)})),n}var M={placement:"bottom",modifiers:[],strategy:"absolute"};function V(){for(var e=arguments.length,t=new Array(e),o=0;o=0?"x":"y"}function z(e){var t,o=e.reference,n=e.element,r=e.placement,i=r?N(r):null,a=r?Z(r):null,s=o.x+o.width/2-n.width/2,c=o.y+o.height/2-n.height/2;switch(i){case E:t={x:s,y:o.y-n.height};break;case k:t={x:s,y:o.y+o.height};break;case j:t={x:o.x+o.width,y:c};break;case P:t={x:o.x-n.width,y:c};break;default:t={x:o.x,y:o.y}}var l=i?U(i):null;if(null!=l){var u="y"===l?"height":"width";switch(a){case T:t[l]=t[l]-(o[u]/2-n[u]/2);break;case C:t[l]=t[l]+(o[u]/2-n[u]/2)}}return t}var F={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(e){var t,o=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,c=e.position,u=e.gpuAcceleration,f=e.adaptive,p=e.roundOffsets,y=e.isFixed,v=s.x,m=void 0===v?0:v,b=s.y,g=void 0===b?0:b,w="function"==typeof p?p({x:m,y:g}):{x:m,y:g};m=w.x,g=w.y;var O=s.hasOwnProperty("x"),S=s.hasOwnProperty("y"),x=P,L=E,A=window;if(f){var T=_(o),q="clientHeight",R="clientWidth";T===n(o)&&"static"!==h(T=d(o)).position&&"absolute"===c&&(q="scrollHeight",R="scrollWidth"),T=T,(i===E||(i===P||i===j)&&a===C)&&(L=k,g-=(y&&A.visualViewport?A.visualViewport.height:T[q])-r.height,g*=u?1:-1),i!==P&&(i!==E&&i!==k||a!==C)||(x=j,m-=(y&&A.visualViewport?A.visualViewport.width:T[R])-r.width,m*=u?1:-1)}var D,H=Object.assign({position:c},f&&F),B=!0===p?function(e){var t=e.x,o=e.y,n=window.devicePixelRatio||1;return{x:l(t*n)/n||0,y:l(o*n)/n||0}}({x:m,y:g}):{x:m,y:g};return m=B.x,g=B.y,u?Object.assign({},H,((D={})[L]=S?"0":"",D[x]=O?"0":"",D.transform=(A.devicePixelRatio||1)<=1?"translate("+m+"px, "+g+"px)":"translate3d("+m+"px, "+g+"px, 0)",D)):Object.assign({},H,((t={})[L]=S?g+"px":"",t[x]=O?m+"px":"",t.transform="",t))}var Y={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,(function(e){return Y[e]}))}var J={start:"end",end:"start"};function K(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function Q(e,t){var o=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(o&&a(o)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function ee(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function te(e,t){return t===q?ee(function(e){var t=n(e),o=d(e),r=t.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,c=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,c=r.offsetTop)),{width:i,height:a,x:s+y(e),y:c}}(e)):r(t)?function(e){var t=u(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):ee(function(e){var t,o=d(e),n=f(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=s(o.scrollWidth,o.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=s(o.scrollHeight,o.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-n.scrollLeft+y(e),l=-n.scrollTop;return"rtl"===h(r||o).direction&&(c+=s(o.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:c,y:l}}(d(e)))}function oe(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function ne(e,t){return t.reduce((function(t,o){return t[o]=e,t}),{})}function re(e,t){void 0===t&&(t={});var o=t,n=o.placement,a=void 0===n?e.placement:n,l=o.boundary,f=void 0===l?"clippingParents":l,y=o.rootBoundary,v=void 0===y?q:y,m=o.elementContext,b=void 0===m?R:m,w=o.altBoundary,S=void 0!==w&&w,x=o.padding,P=void 0===x?0:x,L=oe("number"!=typeof P?P:ne(P,A)),T=b===R?"reference":R,C=e.rects.popper,D=e.elements[S?T:b],H=function(e,t,o){var n="clippingParents"===t?function(e){var t=O(g(e)),o=["absolute","fixed"].indexOf(h(e).position)>=0&&i(e)?_(e):e;return r(o)?t.filter((function(e){return r(e)&&Q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),a=[].concat(n,[o]),l=a[0],u=a.reduce((function(t,o){var n=te(e,o);return t.top=s(n.top,t.top),t.right=c(n.right,t.right),t.bottom=c(n.bottom,t.bottom),t.left=s(n.left,t.left),t}),te(e,l));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}(r(D)?D:D.contextElement||d(e.elements.popper),f,v),B=u(e.elements.reference),I=z({reference:B,element:C,strategy:"absolute",placement:a}),M=ee(Object.assign({},C,I)),V=b===R?M:B,W={top:H.top-V.top+L.top,bottom:V.bottom-H.bottom+L.bottom,left:H.left-V.left+L.left,right:V.right-H.right+L.right},$=e.modifiersData.offset;if(b===R&&$){var N=$[a];Object.keys(W).forEach((function(e){var t=[j,k].indexOf(e)>=0?1:-1,o=[E,k].indexOf(e)>=0?"y":"x";W[e]+=N[o]*t}))}return W}function ie(e,t,o){return s(e,c(t,o))}function ae(e,t,o){return void 0===o&&(o={x:0,y:0}),{top:e.top-t.height-o.y,right:e.right-t.width+o.x,bottom:e.bottom-t.height+o.y,left:e.left-t.width-o.x}}function se(e){return[E,j,k,P].some((function(t){return e[t]>=0}))}var ce=W({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,o=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,c=void 0===s||s,l=n(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",o.update,$)})),c&&l.addEventListener("resize",o.update,$),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",o.update,$)})),c&&l.removeEventListener("resize",o.update,$)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,o=e.name;t.modifiersData[o]=z({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,o=e.options,n=o.gpuAcceleration,r=void 0===n||n,i=o.adaptive,a=void 0===i||i,s=o.roundOffsets,c=void 0===s||s,l={placement:N(t.placement),variation:Z(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var o=t.styles[e]||{},n=t.attributes[e]||{},r=t.elements[e];i(r)&&p(r)&&(Object.assign(r.style,o),Object.keys(n).forEach((function(e){var t=n[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,o={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,o.popper),t.styles=o,t.elements.arrow&&Object.assign(t.elements.arrow.style,o.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],r=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:o[e]).reduce((function(e,t){return e[t]="",e}),{});i(n)&&p(n)&&(Object.assign(n.style,a),Object.keys(r).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,o=e.options,n=e.name,r=o.offset,i=void 0===r?[0,0]:r,a=H.reduce((function(e,o){return e[o]=function(e,t,o){var n=N(e),r=[P,E].indexOf(n)>=0?-1:1,i="function"==typeof o?o(Object.assign({},t,{placement:e})):o,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[P,j].indexOf(n)>=0?{x:s,y:a}:{x:a,y:s}}(o,t.rects,i),e}),{}),s=a[t.placement],c=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[n]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var r=o.mainAxis,i=void 0===r||r,a=o.altAxis,s=void 0===a||a,c=o.fallbackPlacements,l=o.padding,u=o.boundary,f=o.rootBoundary,p=o.altBoundary,d=o.flipVariations,y=void 0===d||d,h=o.allowedAutoPlacements,v=t.options.placement,m=N(v),b=c||(m!==v&&y?function(e){if(N(e)===L)return[];var t=G(e);return[K(e),t,K(t)]}(v):[G(v)]),g=[v].concat(b).reduce((function(e,o){return e.concat(N(o)===L?function(e,t){void 0===t&&(t={});var o=t,n=o.placement,r=o.boundary,i=o.rootBoundary,a=o.padding,s=o.flipVariations,c=o.allowedAutoPlacements,l=void 0===c?H:c,u=Z(n),f=u?s?D:D.filter((function(e){return Z(e)===u})):A,p=f.filter((function(e){return l.indexOf(e)>=0}));0===p.length&&(p=f);var d=p.reduce((function(t,o){return t[o]=re(e,{placement:o,boundary:r,rootBoundary:i,padding:a})[N(o)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:o,boundary:u,rootBoundary:f,padding:l,flipVariations:y,allowedAutoPlacements:h}):o)}),[]),w=t.rects.reference,O=t.rects.popper,S=new Map,x=!0,_=g[0],C=0;C=0,M=I?"width":"height",V=re(t,{placement:q,boundary:u,rootBoundary:f,altBoundary:p,padding:l}),W=I?B?j:P:B?k:E;w[M]>O[M]&&(W=G(W));var $=G(W),U=[];if(i&&U.push(V[R]<=0),s&&U.push(V[W]<=0,V[$]<=0),U.every((function(e){return e}))){_=q,x=!1;break}S.set(q,U)}if(x)for(var z=function(e){var t=g.find((function(t){var o=S.get(t);if(o)return o.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},F=y?3:1;F>0&&"break"!==z(F);F--);t.placement!==_&&(t.modifiersData[n]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,n=e.name,r=o.mainAxis,i=void 0===r||r,a=o.altAxis,l=void 0!==a&&a,u=o.boundary,f=o.rootBoundary,p=o.altBoundary,d=o.padding,y=o.tether,h=void 0===y||y,v=o.tetherOffset,m=void 0===v?0:v,g=re(t,{boundary:u,rootBoundary:f,padding:d,altBoundary:p}),w=N(t.placement),O=Z(t.placement),S=!O,x=U(w),L="x"===x?"y":"x",A=t.modifiersData.popperOffsets,C=t.rects.reference,q=t.rects.popper,R="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,D="number"==typeof R?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),H=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,B={x:0,y:0};if(A){if(i){var I,M="y"===x?E:P,V="y"===x?k:j,W="y"===x?"height":"width",$=A[x],z=$+g[M],F=$-g[V],X=h?-q[W]/2:0,Y=O===T?C[W]:q[W],G=O===T?-q[W]:-C[W],J=t.elements.arrow,K=h&&J?b(J):{width:0,height:0},Q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=Q[M],te=Q[V],oe=ie(0,C[W],K[W]),ne=S?C[W]/2-X-oe-ee-D.mainAxis:Y-oe-ee-D.mainAxis,ae=S?-C[W]/2+X+oe+te+D.mainAxis:G+oe+te+D.mainAxis,se=t.elements.arrow&&_(t.elements.arrow),ce=se?"y"===x?se.clientTop||0:se.clientLeft||0:0,le=null!=(I=null==H?void 0:H[x])?I:0,ue=$+ae-le,fe=ie(h?c(z,$+ne-le-ce):z,$,h?s(F,ue):F);A[x]=fe,B[x]=fe-$}if(l){var pe,de="x"===x?E:P,ye="x"===x?k:j,he=A[L],ve="y"===L?"height":"width",me=he+g[de],be=he-g[ye],ge=-1!==[E,P].indexOf(w),we=null!=(pe=null==H?void 0:H[L])?pe:0,Oe=ge?me:he-C[ve]-q[ve]-we+D.altAxis,Se=ge?he+C[ve]+q[ve]-we-D.altAxis:be,xe=h&&ge?function(e,t,o){var n=ie(e,t,o);return n>o?o:n}(Oe,he,Se):ie(h?Oe:me,he,h?Se:be);A[L]=xe,B[L]=xe-he}t.modifiersData[n]=B}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,o=e.state,n=e.name,r=e.options,i=o.elements.arrow,a=o.modifiersData.popperOffsets,s=N(o.placement),c=U(s),l=[P,j].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(e,t){return oe("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:ne(e,A))}(r.padding,o),f=b(i),p="y"===c?E:P,d="y"===c?k:j,y=o.rects.reference[l]+o.rects.reference[c]-a[c]-o.rects.popper[l],h=a[c]-o.rects.reference[c],v=_(i),m=v?"y"===c?v.clientHeight||0:v.clientWidth||0:0,g=y/2-h/2,w=u[p],O=m-f[l]-u[d],S=m/2-f[l]/2+g,x=ie(w,S,O),L=c;o.modifiersData[n]=((t={})[L]=x,t.centerOffset=x-S,t)}},effect:function(e){var t=e.state,o=e.options.element,n=void 0===o?"[data-popper-arrow]":o;null!=n&&("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&Q(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,o=e.name,n=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,a=re(t,{elementContext:"reference"}),s=re(t,{altBoundary:!0}),c=ae(a,n),l=ae(s,r,i),u=se(c),f=se(l);t.modifiersData[o]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}}]})}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return o.r(n),o(661),o(795),o(682),o(284),o(181),o(778),o(51),o(185),n})()})); \ No newline at end of file +/*! For license information please see index.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 n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{var t={492:(t,e,n)=>{"use strict";n.r(e),n.d(e,{afterMain:()=>S,afterRead:()=>w,afterWrite:()=>T,applyStyles:()=>P,arrow:()=>G,auto:()=>l,basePlacements:()=>a,beforeMain:()=>b,beforeRead:()=>y,beforeWrite:()=>I,bottom:()=>i,clippingParents:()=>d,computeStyles:()=>nt,createPopper:()=>kt,createPopperBase:()=>_t,createPopperLite:()=>Pt,detectOverflow:()=>yt,end:()=>u,eventListeners:()=>it,flip:()=>gt,hide:()=>Ct,left:()=>r,main:()=>C,modifierPhases:()=>E,offset:()=>St,placements:()=>v,popper:()=>h,popperGenerator:()=>At,popperOffsets:()=>It,preventOverflow:()=>xt,read:()=>g,reference:()=>f,right:()=>s,start:()=>c,top:()=>o,variationPlacements:()=>m,viewport:()=>p,write:()=>x});var o="top",i="bottom",s="right",r="left",l="auto",a=[o,i,s,r],c="start",u="end",d="clippingParents",p="viewport",h="popper",f="reference",m=a.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+u])}),[]),v=[].concat(a,[l]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+u])}),[]),y="beforeRead",g="read",w="afterRead",b="beforeMain",C="main",S="afterMain",I="beforeWrite",x="write",T="afterWrite",E=[y,g,w,b,C,S,I,x,T];function L(t){return t?(t.nodeName||"").toLowerCase():null}function O(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function A(t){return t instanceof O(t).Element||t instanceof Element}function _(t){return t instanceof O(t).HTMLElement||t instanceof HTMLElement}function k(t){return"undefined"!=typeof ShadowRoot&&(t instanceof O(t).ShadowRoot||t instanceof ShadowRoot)}const P={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]||{},o=e.attributes[t]||{},i=e.elements[t];_(i)&&L(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(t){var e=o[t];!1===e?i.removeAttribute(t):i.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 o=e.elements[t],i=e.attributes[t]||{},s=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});_(o)&&L(o)&&(Object.assign(o.style,s),Object.keys(i).forEach((function(t){o.removeAttribute(t)})))}))}},requires:["computeStyles"]};function B(t){return t.split("-")[0]}var q=Math.max,j=Math.min,N=Math.round;function D(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function $(){return!/^((?!chrome|android).)*safari/i.test(D())}function H(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var o=t.getBoundingClientRect(),i=1,s=1;e&&_(t)&&(i=t.offsetWidth>0&&N(o.width)/t.offsetWidth||1,s=t.offsetHeight>0&&N(o.height)/t.offsetHeight||1);var r=(A(t)?O(t):window).visualViewport,l=!$()&&n,a=(o.left+(l&&r?r.offsetLeft:0))/i,c=(o.top+(l&&r?r.offsetTop:0))/s,u=o.width/i,d=o.height/s;return{width:u,height:d,top:c,right:a+u,bottom:c+d,left:a,x:a,y:c}}function M(t){var e=H(t),n=t.offsetWidth,o=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:o}}function W(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&k(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function V(t){return O(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(L(t))>=0}function F(t){return((A(t)?t.ownerDocument:t.document)||window.document).documentElement}function U(t){return"html"===L(t)?t:t.assignedSlot||t.parentNode||(k(t)?t.host:null)||F(t)}function J(t){return _(t)&&"fixed"!==V(t).position?t.offsetParent:null}function Y(t){for(var e=O(t),n=J(t);n&&R(n)&&"static"===V(n).position;)n=J(n);return n&&("html"===L(n)||"body"===L(n)&&"static"===V(n).position)?e:n||function(t){var e=/firefox/i.test(D());if(/Trident/i.test(D())&&_(t)&&"fixed"===V(t).position)return null;var n=U(t);for(k(n)&&(n=n.host);_(n)&&["html","body"].indexOf(L(n))<0;){var o=V(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||e&&"filter"===o.willChange||e&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(t)||e}function K(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function z(t,e,n){return q(t,j(e,n))}function X(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Z(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}const G={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,l=t.name,c=t.options,u=n.elements.arrow,d=n.modifiersData.popperOffsets,p=B(n.placement),h=K(p),f=[r,s].indexOf(p)>=0?"height":"width";if(u&&d){var m=function(t,e){return X("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Z(t,a))}(c.padding,n),v=M(u),y="y"===h?o:r,g="y"===h?i:s,w=n.rects.reference[f]+n.rects.reference[h]-d[h]-n.rects.popper[f],b=d[h]-n.rects.reference[h],C=Y(u),S=C?"y"===h?C.clientHeight||0:C.clientWidth||0:0,I=w/2-b/2,x=m[y],T=S-v[f]-m[g],E=S/2-v[f]/2+I,L=z(x,E,T),O=h;n.modifiersData[l]=((e={})[O]=L,e.centerOffset=L-E,e)}},effect:function(t){var e=t.state,n=t.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=e.elements.popper.querySelector(o)))&&W(e.elements.popper,o)&&(e.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Q(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,n=t.popper,l=t.popperRect,a=t.placement,c=t.variation,d=t.offsets,p=t.position,h=t.gpuAcceleration,f=t.adaptive,m=t.roundOffsets,v=t.isFixed,y=d.x,g=void 0===y?0:y,w=d.y,b=void 0===w?0:w,C="function"==typeof m?m({x:g,y:b}):{x:g,y:b};g=C.x,b=C.y;var S=d.hasOwnProperty("x"),I=d.hasOwnProperty("y"),x=r,T=o,E=window;if(f){var L=Y(n),A="clientHeight",_="clientWidth";L===O(n)&&"static"!==V(L=F(n)).position&&"absolute"===p&&(A="scrollHeight",_="scrollWidth"),(a===o||(a===r||a===s)&&c===u)&&(T=i,b-=(v&&L===E&&E.visualViewport?E.visualViewport.height:L[A])-l.height,b*=h?1:-1),a!==r&&(a!==o&&a!==i||c!==u)||(x=s,g-=(v&&L===E&&E.visualViewport?E.visualViewport.width:L[_])-l.width,g*=h?1:-1)}var k,P=Object.assign({position:p},f&&tt),B=!0===m?function(t,e){var n=t.x,o=t.y,i=e.devicePixelRatio||1;return{x:N(n*i)/i||0,y:N(o*i)/i||0}}({x:g,y:b},O(n)):{x:g,y:b};return g=B.x,b=B.y,h?Object.assign({},P,((k={})[T]=I?"0":"",k[x]=S?"0":"",k.transform=(E.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",k)):Object.assign({},P,((e={})[T]=I?b+"px":"",e[x]=S?g+"px":"",e.transform="",e))}const nt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,o=n.gpuAcceleration,i=void 0===o||o,s=n.adaptive,r=void 0===s||s,l=n.roundOffsets,a=void 0===l||l,c={placement:B(e.placement),variation:Q(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:a})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ot={passive:!0};const it={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,o=t.options,i=o.scroll,s=void 0===i||i,r=o.resize,l=void 0===r||r,a=O(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach((function(t){t.addEventListener("scroll",n.update,ot)})),l&&a.addEventListener("resize",n.update,ot),function(){s&&c.forEach((function(t){t.removeEventListener("scroll",n.update,ot)})),l&&a.removeEventListener("resize",n.update,ot)}},data:{}};var st={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return st[t]}))}var lt={start:"end",end:"start"};function at(t){return t.replace(/start|end/g,(function(t){return lt[t]}))}function ct(t){var e=O(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ut(t){return H(F(t)).left+ct(t).scrollLeft}function dt(t){var e=V(t),n=e.overflow,o=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function pt(t){return["html","body","#document"].indexOf(L(t))>=0?t.ownerDocument.body:_(t)&&dt(t)?t:pt(U(t))}function ht(t,e){var n;void 0===e&&(e=[]);var o=pt(t),i=o===(null==(n=t.ownerDocument)?void 0:n.body),s=O(o),r=i?[s].concat(s.visualViewport||[],dt(o)?o:[]):o,l=e.concat(r);return i?l:l.concat(ht(U(r)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,n){return e===p?ft(function(t,e){var n=O(t),o=F(t),i=n.visualViewport,s=o.clientWidth,r=o.clientHeight,l=0,a=0;if(i){s=i.width,r=i.height;var c=$();(c||!c&&"fixed"===e)&&(l=i.offsetLeft,a=i.offsetTop)}return{width:s,height:r,x:l+ut(t),y:a}}(t,n)):A(e)?function(t,e){var n=H(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=F(t),o=ct(t),i=null==(e=t.ownerDocument)?void 0:e.body,s=q(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=q(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-o.scrollLeft+ut(t),a=-o.scrollTop;return"rtl"===V(i||n).direction&&(l+=q(n.clientWidth,i?i.clientWidth:0)-s),{width:s,height:r,x:l,y:a}}(F(t)))}function vt(t){var e,n=t.reference,l=t.element,a=t.placement,d=a?B(a):null,p=a?Q(a):null,h=n.x+n.width/2-l.width/2,f=n.y+n.height/2-l.height/2;switch(d){case o:e={x:h,y:n.y-l.height};break;case i:e={x:h,y:n.y+n.height};break;case s:e={x:n.x+n.width,y:f};break;case r:e={x:n.x-l.width,y:f};break;default:e={x:n.x,y:n.y}}var m=d?K(d):null;if(null!=m){var v="y"===m?"height":"width";switch(p){case c:e[m]=e[m]-(n[v]/2-l[v]/2);break;case u:e[m]=e[m]+(n[v]/2-l[v]/2)}}return e}function yt(t,e){void 0===e&&(e={});var n=e,r=n.placement,l=void 0===r?t.placement:r,c=n.strategy,u=void 0===c?t.strategy:c,m=n.boundary,v=void 0===m?d:m,y=n.rootBoundary,g=void 0===y?p:y,w=n.elementContext,b=void 0===w?h:w,C=n.altBoundary,S=void 0!==C&&C,I=n.padding,x=void 0===I?0:I,T=X("number"!=typeof x?x:Z(x,a)),E=b===h?f:h,O=t.rects.popper,k=t.elements[S?E:b],P=function(t,e,n,o){var i="clippingParents"===e?function(t){var e=ht(U(t)),n=["absolute","fixed"].indexOf(V(t).position)>=0&&_(t)?Y(t):t;return A(n)?e.filter((function(t){return A(t)&&W(t,n)&&"body"!==L(t)})):[]}(t):[].concat(e),s=[].concat(i,[n]),r=s[0],l=s.reduce((function(e,n){var i=mt(t,n,o);return e.top=q(i.top,e.top),e.right=j(i.right,e.right),e.bottom=j(i.bottom,e.bottom),e.left=q(i.left,e.left),e}),mt(t,r,o));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}(A(k)?k:k.contextElement||F(t.elements.popper),v,g,u),B=H(t.elements.reference),N=vt({reference:B,element:O,strategy:"absolute",placement:l}),D=ft(Object.assign({},O,N)),$=b===h?D:B,M={top:P.top-$.top+T.top,bottom:$.bottom-P.bottom+T.bottom,left:P.left-$.left+T.left,right:$.right-P.right+T.right},R=t.modifiersData.offset;if(b===h&&R){var J=R[l];Object.keys(M).forEach((function(t){var e=[s,i].indexOf(t)>=0?1:-1,n=[o,i].indexOf(t)>=0?"y":"x";M[t]+=J[n]*e}))}return M}const gt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,u=t.name;if(!e.modifiersData[u]._skip){for(var d=n.mainAxis,p=void 0===d||d,h=n.altAxis,f=void 0===h||h,y=n.fallbackPlacements,g=n.padding,w=n.boundary,b=n.rootBoundary,C=n.altBoundary,S=n.flipVariations,I=void 0===S||S,x=n.allowedAutoPlacements,T=e.options.placement,E=B(T),L=y||(E!==T&&I?function(t){if(B(t)===l)return[];var e=rt(t);return[at(t),e,at(e)]}(T):[rt(T)]),O=[T].concat(L).reduce((function(t,n){return t.concat(B(n)===l?function(t,e){void 0===e&&(e={});var n=e,o=n.placement,i=n.boundary,s=n.rootBoundary,r=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?v:c,d=Q(o),p=d?l?m:m.filter((function(t){return Q(t)===d})):a,h=p.filter((function(t){return u.indexOf(t)>=0}));0===h.length&&(h=p);var f=h.reduce((function(e,n){return e[n]=yt(t,{placement:n,boundary:i,rootBoundary:s,padding:r})[B(n)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}(e,{placement:n,boundary:w,rootBoundary:b,padding:g,flipVariations:I,allowedAutoPlacements:x}):n)}),[]),A=e.rects.reference,_=e.rects.popper,k=new Map,P=!0,q=O[0],j=0;j=0,M=H?"width":"height",W=yt(e,{placement:N,boundary:w,rootBoundary:b,altBoundary:C,padding:g}),V=H?$?s:r:$?i:o;A[M]>_[M]&&(V=rt(V));var R=rt(V),F=[];if(p&&F.push(W[D]<=0),f&&F.push(W[V]<=0,W[R]<=0),F.every((function(t){return t}))){q=N,P=!1;break}k.set(N,F)}if(P)for(var U=function(t){var e=O.find((function(e){var n=k.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return q=e,"break"},J=I?3:1;J>0&&"break"!==U(J);J--);e.placement!==q&&(e.modifiersData[u]._skip=!0,e.placement=q,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function wt(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 bt(t){return[o,s,i,r].some((function(e){return t[e]>=0}))}const Ct={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,o=e.rects.reference,i=e.rects.popper,s=e.modifiersData.preventOverflow,r=yt(e,{elementContext:"reference"}),l=yt(e,{altBoundary:!0}),a=wt(r,o),c=wt(l,i,s),u=bt(a),d=bt(c);e.modifiersData[n]={referenceClippingOffsets:a,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}},St={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,i=t.name,l=n.offset,a=void 0===l?[0,0]:l,c=v.reduce((function(t,n){return t[n]=function(t,e,n){var i=B(t),l=[r,o].indexOf(i)>=0?-1:1,a="function"==typeof n?n(Object.assign({},e,{placement:t})):n,c=a[0],u=a[1];return c=c||0,u=(u||0)*l,[r,s].indexOf(i)>=0?{x:u,y:c}:{x:c,y:u}}(n,e.rects,a),t}),{}),u=c[e.placement],d=u.x,p=u.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=p),e.modifiersData[i]=c}},It={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=vt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},xt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,l=t.name,a=n.mainAxis,u=void 0===a||a,d=n.altAxis,p=void 0!==d&&d,h=n.boundary,f=n.rootBoundary,m=n.altBoundary,v=n.padding,y=n.tether,g=void 0===y||y,w=n.tetherOffset,b=void 0===w?0:w,C=yt(e,{boundary:h,rootBoundary:f,padding:v,altBoundary:m}),S=B(e.placement),I=Q(e.placement),x=!I,T=K(S),E="x"===T?"y":"x",L=e.modifiersData.popperOffsets,O=e.rects.reference,A=e.rects.popper,_="function"==typeof b?b(Object.assign({},e.rects,{placement:e.placement})):b,k="number"==typeof _?{mainAxis:_,altAxis:_}:Object.assign({mainAxis:0,altAxis:0},_),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,N={x:0,y:0};if(L){if(u){var D,$="y"===T?o:r,H="y"===T?i:s,W="y"===T?"height":"width",V=L[T],R=V+C[$],F=V-C[H],U=g?-A[W]/2:0,J=I===c?O[W]:A[W],X=I===c?-A[W]:-O[W],Z=e.elements.arrow,G=g&&Z?M(Z):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[$],nt=tt[H],ot=z(0,O[W],G[W]),it=x?O[W]/2-U-ot-et-k.mainAxis:J-ot-et-k.mainAxis,st=x?-O[W]/2+U+ot+nt+k.mainAxis:X+ot+nt+k.mainAxis,rt=e.elements.arrow&&Y(e.elements.arrow),lt=rt?"y"===T?rt.clientTop||0:rt.clientLeft||0:0,at=null!=(D=null==P?void 0:P[T])?D:0,ct=V+st-at,ut=z(g?j(R,V+it-at-lt):R,V,g?q(F,ct):F);L[T]=ut,N[T]=ut-V}if(p){var dt,pt="x"===T?o:r,ht="x"===T?i:s,ft=L[E],mt="y"===E?"height":"width",vt=ft+C[pt],gt=ft-C[ht],wt=-1!==[o,r].indexOf(S),bt=null!=(dt=null==P?void 0:P[E])?dt:0,Ct=wt?vt:ft-O[mt]-A[mt]-bt+k.altAxis,St=wt?ft+O[mt]+A[mt]-bt-k.altAxis:gt,It=g&&wt?function(t,e,n){var o=z(t,e,n);return o>n?n:o}(Ct,ft,St):z(g?Ct:vt,ft,g?St:gt);L[E]=It,N[E]=It-ft}e.modifiersData[l]=N}},requiresIfExists:["offset"]};function Tt(t,e,n){void 0===n&&(n=!1);var o,i,s=_(e),r=_(e)&&function(t){var e=t.getBoundingClientRect(),n=N(e.width)/t.offsetWidth||1,o=N(e.height)/t.offsetHeight||1;return 1!==n||1!==o}(e),l=F(e),a=H(t,r,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(s||!s&&!n)&&(("body"!==L(e)||dt(l))&&(c=(o=e)!==O(o)&&_(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:ct(o)),_(e)?((u=H(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):l&&(u.x=ut(l))),{x:a.left+c.scrollLeft-u.x,y:a.top+c.scrollTop-u.y,width:a.width,height:a.height}}function Et(t){var e=new Map,n=new Set,o=[];function i(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var o=e.get(t);o&&i(o)}})),o.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||i(t)})),o}var Lt={placement:"bottom",modifiers:[],strategy:"absolute"};function Ot(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SELECT_ACCESSIBILITY_KEY_SET=e.TABS_ACCESSIBILITY_KEY_SET=e.OVERLAY_ACCESSIBILITY_KEY_SET=e.DROPDOWN_ACCESSIBILITY_KEY_SET=e.POSITIONS=void 0,e.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},e.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],e.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],e.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],e.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},700:(t,e,n)=>{var o=n(413),i=n(460),s=n(629),r=n(652),l=n(610),a=n(371),c=n(770),u=n(659),d=n(139),p=n(961),h=n(591),f=n(233),m=n(957),v=n(983),y=n(949),g=n(557),w=n(87),b=n(366),C=n(679);t.exports={HSCopyMarkup:o.HSCopyMarkup,HSAccordion:i.HSAccordion,HSCarousel:s.HSCarousel,HSCollapse:r.HSCollapse,HSDropdown:l.HSDropdown,HSInputNumber:a.HSInputNumber,HSOverlay:c.HSOverlay,HSPinInput:u.HSPinInput,HSRemoveElement:d.HSRemoveElement,HSSearchByJson:p.HSSearchByJson,HSScrollspy:h.HSScrollspy,HSSelect:f.HSSelect,HSStepper:m.HSStepper,HSStrongPassword:v.HSStrongPassword,HSTabs:y.HSTabs,HSThemeSwitch:g.HSThemeSwitch,HSToggleCount:w.HSToggleCount,HSTogglePassword:b.HSTogglePassword,HSTooltip:C.HSTooltip}},460:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(e,n,o){var i=t.call(this,e,n,o)||this;return i.toggle=i.el.querySelector(".hs-accordion-toggle")||null,i.content=i.el.querySelector(".hs-accordion-content")||null,i.group=i.el.closest(".hs-accordion-group")||null,i.isAlwaysOpened=i.group.hasAttribute("data-hs-accordion-always-open")||!1,i.toggle&&i.content&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsAccordionCollection,this),this.toggle.addEventListener("click",(function(){t.el.classList.contains("active")?t.hide():t.show()}))},e.prototype.show=function(){var t=this;if(this.group&&!this.isAlwaysOpened&&this.group.querySelector(".hs-accordion.active")&&this.group.querySelector(".hs-accordion.active")!==this.el&&window.$hsAccordionCollection.find((function(e){return e.element.el===t.group.querySelector(".hs-accordion.active")})).element.hide(),this.el.classList.contains("active"))return!1;this.el.classList.add("active"),this.content.style.display="block",this.content.style.height="0",setTimeout((function(){t.content.style.height="".concat(t.content.scrollHeight,"px")})),this.afterTransition(this.content,(function(){t.content.style.height="",t.fireEvent("open",t.el),t.dispatch("open.hs.accordion",t.el,t.el)}))},e.prototype.hide=function(){var t=this;if(!this.el.classList.contains("active"))return!1;this.el.classList.remove("active"),this.content.style.height="".concat(this.content.scrollHeight,"px"),setTimeout((function(){t.content.style.height="0"})),this.afterTransition(this.content,(function(){t.content.style.display="",t.fireEvent("close",t.el),t.dispatch("close.hs.accordion",t.el,t.el)}))},e.getInstance=function(t,e){var n=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.show=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"!==e.element.content.style.display&&e.element.show()},e.hide=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"===e.element.content.style.display&&e.element.hide()},e.on=function(t,e,n){var o=window.$hsAccordionCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsAccordionCollection||(window.$hsAccordionCollection=[]),document.querySelectorAll(".hs-accordion:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSAccordion=s,e.default=s},737:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],s=0;s=u:"top"===n?a>=u:a>=u||c>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},629:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n *")||null,l.sliderWidth=l.inner.parentElement.clientWidth,l.touchX={start:0,end:0},l.init(),l}return i(e,t),e.prototype.init=function(){var t,e,n=this;this.createCollection(window.$hsCarouselCollection,this),this.inner&&(this.calculateWidth(),this.loadingClassesRemove&&("string"==typeof this.loadingClassesRemove?this.inner.classList.remove(this.loadingClassesRemove):(t=this.inner.classList).remove.apply(t,this.loadingClassesRemove)),this.loadingClassesAdd&&("string"==typeof this.loadingClassesAdd?this.inner.classList.add(this.loadingClassesAdd):(e=this.inner.classList).add.apply(e,this.loadingClassesAdd))),this.prev&&this.prev.addEventListener("click",(function(){n.goToPrev(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.next&&this.next.addEventListener("click",(function(){n.goToNext(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.dots&&this.dots.forEach((function(t,e){return t.addEventListener("click",(function(){n.goTo(e),n.isAutoPlay&&(n.resetTimer(),n.setTimer())}))})),this.slides.length&&(this.addCurrentClass(),this.isInfiniteLoop||this.addDisabledClass(),this.isAutoPlay&&this.autoPlay()),this.inner&&this.afterLoadingClassesAdd&&setTimeout((function(){var t;"string"==typeof n.afterLoadingClassesAdd?n.inner.classList.add(n.afterLoadingClassesAdd):(t=n.inner.classList).add.apply(t,n.afterLoadingClassesAdd)})),this.el.classList.add("init"),document.addEventListener("touchstart",(function(t){n.touchX.start=t.changedTouches[0].screenX})),document.addEventListener("touchend",(function(t){n.touchX.end=t.changedTouches[0].screenX,n.detectDirection()})),this.observeResize()},e.prototype.observeResize=function(){var t=this;new ResizeObserver((function(){return t.recalculateWidth()})).observe(document.querySelector("body"))},e.prototype.calculateWidth=function(){var t=this;this.inner.style.width="".concat(this.sliderWidth*this.slides.length,"px"),this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.slides.forEach((function(e){e.style.width="".concat(t.sliderWidth,"px")}))},e.prototype.addCurrentClass=function(){var t=this;this.slides.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")})),this.dots&&this.dots.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")}))},e.prototype.addDisabledClass=function(){if(!this.prev||!this.next)return!1;0===this.currentIndex?(this.next.classList.remove("disabled"),this.prev.classList.add("disabled")):this.currentIndex===this.slides.length-1?(this.prev.classList.remove("disabled"),this.next.classList.add("disabled")):(this.prev.classList.remove("disabled"),this.next.classList.remove("disabled"))},e.prototype.autoPlay=function(){this.setTimer()},e.prototype.setTimer=function(){var t=this;this.timer=setInterval((function(){t.currentIndex===t.slides.length-1?t.goTo(0):t.goToNext()}),this.speed)},e.prototype.resetTimer=function(){clearInterval(this.timer)},e.prototype.detectDirection=function(){var t=this.touchX,e=t.start,n=t.end;ne&&this.goToPrev()},e.prototype.recalculateWidth=function(){this.sliderWidth=this.inner.parentElement.clientWidth,this.calculateWidth()},e.prototype.goToPrev=function(){0===this.currentIndex&&this.isInfiniteLoop?(this.currentIndex=this.slides.length-1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):0!==this.currentIndex&&(this.currentIndex-=1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass(),this.addDisabledClass())},e.prototype.goToNext=function(){this.currentIndex===this.slides.length-1&&this.isInfiniteLoop?(this.currentIndex=0,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):this.currentIndex=this.limit)return!1;this.el.hasAttribute("disabled")&&this.el.setAttribute("disabled","");var t=this.target.cloneNode(!0);this.addToItems(t),this.limit&&this.items.length>=this.limit&&this.el.setAttribute("disabled","disabled"),this.fireEvent("copy",t),this.dispatch("copy.hs.copyMarkup",t,t)},e.prototype.addPredefinedItems=function(){var t=this;Array.from(this.wrapper.children).filter((function(t){return!t.classList.contains("[--ignore-for-count]")})).forEach((function(e){t.addToItems(e)}))},e.prototype.setTarget=function(){var t="string"==typeof this.targetSelector?document.querySelector(this.targetSelector).cloneNode(!0):this.targetSelector.cloneNode(!0);t.removeAttribute("id"),this.target=t},e.prototype.setWrapper=function(){this.wrapper="string"==typeof this.wrapperSelector?document.querySelector(this.wrapperSelector):this.wrapperSelector},e.prototype.addToItems=function(t){var e=this,n=t.querySelector("[data-hs-copy-markup-delete-item]");this.wrapper?this.wrapper.append(t):this.el.before(t),n&&n.addEventListener("click",(function(){return e.delete(t)})),this.items.push(t)},e.prototype.delete=function(t){var e=this.items.indexOf(t);-1!==e&&this.items.splice(e,1),t.remove(),this.fireEvent("delete",t),this.dispatch("delete.hs.copyMarkup",t,t)},e.getInstance=function(t,e){var n=window.$hsCopyMarkupCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsCopyMarkupCollection||(window.$hsCopyMarkupCollection=[]),document.querySelectorAll("[data-hs-copy-markup]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-copy-markup"),n=e?JSON.parse(e):{};new r(t,n)}))})),t.exports.HSCopyMarkup=r,e.default=r},610:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__spreadArray||function(t,e,n){if(n||2===arguments.length)for(var o,i=0,s=e.length;i .hs-dropdown-toggle")||i.el.children[0],i.menu=i.el.querySelector(":scope > .hs-dropdown-menu"),i.eventMode=i.getClassProperty(i.el,"--trigger","click"),i.closeMode=i.getClassProperty(i.el,"--auto-close","true"),i.animationInProcess=!1,i.toggle&&i.menu&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;if(this.createCollection(window.$hsDropdownCollection,this),this.toggle.disabled)return!1;this.toggle.addEventListener("click",(function(){return t.onClickHandler()})),this.isIOS()||this.isIpadOS()||(this.el.addEventListener("mouseenter",(function(){return t.onMouseEnterHandler()})),this.el.addEventListener("mouseleave",(function(){return t.onMouseLeaveHandler()})))},e.prototype.resizeHandler=function(){this.eventMode=this.getClassProperty(this.el,"--trigger","click")},e.prototype.onClickHandler=function(){this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")?this.close():this.open()},e.prototype.onMouseEnterHandler=function(){if("hover"!==this.eventMode)return!1;this.el._popper&&this.forceClearState(),!this.el.classList.contains("open")&&this.menu.classList.contains("hidden")&&this.open()},e.prototype.onMouseLeaveHandler=function(){if("hover"!==this.eventMode)return!1;this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")&&this.close()},e.prototype.destroyPopper=function(){this.menu.classList.remove("block"),this.menu.classList.add("hidden"),this.menu.style.inset=null,this.menu.style.position=null,this.el&&this.el._popper&&this.el._popper.destroy(),this.animationInProcess=!1},e.prototype.absoluteStrategyModifiers=function(){var t=this;return[{name:"applyStyles",fn:function(e){var n=(window.getComputedStyle(t.el).getPropertyValue("--strategy")||"absolute").replace(" ",""),o=(window.getComputedStyle(t.el).getPropertyValue("--adaptive")||"adaptive").replace(" ","");e.state.elements.popper.style.position=n,e.state.elements.popper.style.transform="adaptive"===o?e.state.styles.popper.transform:null,e.state.elements.popper.style.top=null,e.state.elements.popper.style.bottom=null,e.state.elements.popper.style.left=null,e.state.elements.popper.style.right=null,e.state.elements.popper.style.margin=0}},{name:"computeStyles",options:{adaptive:!1}}]},e.prototype.open=function(){var t=this;if(this.el.classList.contains("open"))return!1;if(this.animationInProcess)return!1;this.animationInProcess=!0;var e=(window.getComputedStyle(this.el).getPropertyValue("--placement")||"").replace(" ",""),n=(window.getComputedStyle(this.el).getPropertyValue("--flip")||"true").replace(" ",""),o=(window.getComputedStyle(this.el).getPropertyValue("--strategy")||"fixed").replace(" ",""),i=parseInt((window.getComputedStyle(this.el).getPropertyValue("--offset")||"10").replace(" ",""));"static"!==o&&(this.el._popper=(0,a.createPopper)(this.el,this.menu,{placement:l.POSITIONS[e]||"bottom-start",strategy:o,modifiers:s(s([],"fixed"!==o?this.absoluteStrategyModifiers():[],!0),[{name:"flip",enabled:"true"===n},{name:"offset",options:{offset:[0,i]}}],!1)})),this.menu.style.margin=null,this.menu.classList.remove("hidden"),this.menu.classList.add("block"),setTimeout((function(){t.el.classList.add("open"),t.animationInProcess=!1})),this.fireEvent("open",this.el),this.dispatch("open.hs.dropdown",this.el,this.el)},e.prototype.close=function(t){var e=this;if(void 0===t&&(t=!0),this.animationInProcess||!this.el.classList.contains("open"))return!1;if(this.animationInProcess=!0,t){var n=this.el.querySelector("[data-hs-dropdown-transition]")||this.menu;this.afterTransition(n,(function(){return e.destroyPopper()}))}else this.destroyPopper();this.menu.style.margin=null,this.el.classList.remove("open"),this.fireEvent("close",this.el),this.dispatch("close.hs.dropdown",this.el,this.el)},e.prototype.forceClearState=function(){this.destroyPopper(),this.menu.style.margin=null,this.el.classList.remove("open")},e.getInstance=function(t,e){var n=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.open=function(t){var e=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.menu.classList.contains("hidden")&&e.element.open()},e.close=function(t){var e=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&!e.element.menu.classList.contains("hidden")&&e.element.close()},e.accessibility=function(t){this.history=c.menuSearchHistory;var e=window.$hsDropdownCollection.find((function(t){return t.element.el.classList.contains("open")}));if(e&&(l.DROPDOWN_ACCESSIBILITY_KEY_SET.includes(t.code)||4===t.code.length&&t.code[t.code.length-1].match(/^[A-Z]*$/))&&!t.metaKey&&!e.element.menu.querySelector("input:focus"))switch(console.log("Key code:",t.code),t.code){case"Escape":e.element.menu.querySelector(".hs-select.active")||(t.preventDefault(),this.onEscape(t));break;case"Enter":e.element.menu.querySelector(".hs-select button:focus")||e.element.menu.querySelector(".hs-collapse-toggle:focus")||this.onEnter(t);break;case"ArrowUp":t.preventDefault(),this.onArrow();break;case"ArrowDown":t.preventDefault(),this.onArrow(!1);break;case"Home":t.preventDefault(),this.onStartEnd();break;case"End":t.preventDefault(),this.onStartEnd(!1);break;default:t.preventDefault(),this.onFirstLetter(t.key)}},e.onEscape=function(t){var e=t.target.closest(".hs-dropdown.open");if(window.$hsDropdownCollection.find((function(t){return t.element.el===e}))){var n=window.$hsDropdownCollection.find((function(t){return t.element.el===e}));n&&(n.element.close(),n.element.toggle.focus())}else this.closeCurrentlyOpened()},e.onEnter=function(t){var e=t.target.parentElement;if(window.$hsDropdownCollection.find((function(t){return t.element.el===e}))){t.preventDefault();var n=window.$hsDropdownCollection.find((function(t){return t.element.el===e}));n&&n.element.open()}},e.onArrow=function(t){void 0===t&&(t=!0);var e=window.$hsDropdownCollection.find((function(t){return t.element.el.classList.contains("open")}));if(e){var n=e.element.menu;if(!n)return!1;var o=(t?Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])")).reverse():Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector("a:focus, button:focus"),s=o.findIndex((function(t){return t===i}));s+1-1?e[(o+1)%e.length].focus():e[0].focus()},e.on=function(t,e,n){var o=window.$hsOverlayCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)||t.element.overlay===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsOverlayCollection||(window.$hsOverlayCollection=[]),document.querySelectorAll("[data-hs-overlay]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)})),window.$hsOverlayCollection&&document.addEventListener("keydown",(function(t){return r.accessibility(t)}))})),t.exports.HSOverlay=r,e.default=r},659:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&this.items[e-1].focus()},e.prototype.onKeydown=function(t,e){"Backspace"===t.key&&e>0&&(""===this.items[e].value?(this.items[e-1].value="",this.items[e-1].focus()):this.items[e].value=""),this.setCurrentValue(),this.toggleCompleted()},e.prototype.onFocusIn=function(t){this.items[t].setAttribute("placeholder","")},e.prototype.onFocusOut=function(t){this.items[t].setAttribute("placeholder",this.placeholders[t])},e.prototype.onPaste=function(t){var e=this;t.preventDefault(),this.items.forEach((function(n){document.activeElement===n&&e.autoFillAll(t.clipboardData.getData("text"))}))},e.getInstance=function(t,e){var n=window.$hsPinInputCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsPinInputCollection||(window.$hsPinInputCollection=[]),document.querySelectorAll("[data-hs-pin-input]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSPinInput=r,e.default=r},139:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0){if(this.activeSection===e)return!1;this.links.forEach((function(t){t.classList.remove("active")}));var l=this.el.querySelector('[href="#'.concat(e.getAttribute("id"),'"]'));if(l){l.classList.add("active");var a=l.closest("[data-hs-scrollspy-group]");if(a){var c=a.querySelector("[href]");c&&c.classList.add("active")}}this.activeSection=e}},e.prototype.scrollTo=function(t){var e=t.getAttribute("href"),n=document.querySelector(e),o=parseInt(this.getClassProperty(this.el,"--scrollspy-offset","0")),i=parseInt(this.getClassProperty(n,"--scrollspy-offset"))||o,s=this.scrollable===document?0:this.scrollable.offsetTop,r=n.offsetTop-i-s,l=this.scrollable===document?window:this.scrollable,a=function(){window.history.replaceState(null,null,t.getAttribute("href")),"scrollTo"in l&&l.scrollTo({top:r,left:0,behavior:"smooth"})},c=this.fireEvent("beforeScroll",this.el);this.dispatch("beforeScroll.hs.scrollspy",this.el,this.el),c instanceof Promise?c.then((function(){return a()})):a()},e.getInstance=function(t,e){void 0===e&&(e=!1);var n=window.$hsScrollspyCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsScrollspyCollection||(window.$hsScrollspyCollection=[]),document.querySelectorAll("[data-hs-scrollspy]:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSScrollspy=s,e.default=s},961:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&i[i.length-1])||6!==l[0]&&2!==l[0])){r=0;continue}if(3===l[0]&&(!i||l[1]>i[0]&&l[1]",o.dropdownClasses=l.dropdownClasses||"absolute top-full z-[1] w-full bg-white border border-gray-200 rounded-md hidden mt-2",o.dropdownItemTemplate=l.dropdownItemTemplate||"
",o.dropdownItemTemplatesByType=l.dropdownItemTemplatesByType||null,o.dropdownItemClasses=l.dropdownItemClasses||"py-2 px-4 w-full cursor-pointer text-sm hover:bg-gray-300 hover:text-black",o.highlightedTextTagName=l.highlightedTextTagName||"u",o.highlightedTextClasses=l.highlightedTextClasses||"bg-green-200",o.jsonUrl&&o.fetchData().then((function(){return o.init()})),o}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsSearchByJsonCollection,this),this.buildDropdown(),this.el.addEventListener("input",this.debounce((function(e){t.val=e.target.value,t.val.length>t.minChars?t.searchData(t.val):t.result=[],t.result.length?t.dropdown.classList.remove("hidden"):t.dropdown.classList.add("hidden"),t.buildItems(),console.log("result:",t.result)})))},e.prototype.fetchData=function(){return r(this,void 0,void 0,(function(){var t=this;return l(this,(function(e){switch(e.label){case 0:return[4,fetch(this.jsonUrl).then((function(t){return t.json()})).then((function(e){return t.json=e}))];case 1:return e.sent(),[2]}}))}))},e.prototype.searchData=function(t){this.result=this.json.filter((function(e){var n=t.toLowerCase(),o=e.title.toLowerCase(),i=e.description.toLowerCase();return o.includes(n)||i.includes(n)}))},e.prototype.buildDropdown=function(){this.dropdown=this.htmlToElement(this.dropdownTemplate),this.dropdownClasses&&this.classToClassList(this.dropdownClasses,this.dropdown),this.el.after(this.dropdown)},e.prototype.buildItems=function(){var t=this;this.dropdown.innerHTML="",this.result.forEach((function(e){var n=t.htmlToElement(''));n.append(t.itemTemplate(e)),t.dropdown.append(n)}))},e.prototype.itemTemplate=function(t){var e=new RegExp(this.val,"gi"),n=t.title.replace(e,"<".concat(this.highlightedTextTagName,' class="inline-block ').concat(this.highlightedTextClasses,'">').concat(this.val,"")),o=t.description.replace(e,"<".concat(this.highlightedTextTagName,' class="inline-block ').concat(this.highlightedTextClasses,'">').concat(this.val,"")),i=this.dropdownItemTemplatesByType?this.dropdownItemTemplatesByType.find((function(e){return e.type===t.type})):null,s=i?this.htmlToElement(i.markup):this.htmlToElement(this.dropdownItemTemplate);this.dropdownItemClasses&&this.classToClassList(this.dropdownItemClasses,s);var r=s.querySelector("[data-title]");r?r.append(this.htmlToElement("".concat(n,""))):s.append(this.htmlToElement("".concat(n,"")));var l=s.querySelector("[data-description]");if(l)l.append(this.htmlToElement("".concat(o,"")));else if(!i){var a=this.htmlToElement("
");s.append(a),s.append(this.htmlToElement("".concat(o,"")))}return s},e.getInstance=function(t){var e=window.$hsSearchByJsonCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return e?e.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsSearchByJsonCollection||(window.$hsSearchByJsonCollection=[]),document.querySelectorAll("[data-hs-search-by-json]:not(.--prevent-on-load-init)").forEach((function(t){return new a(t)}))})),t.exports.HSSearchByJson=a,e.default=a},233:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n"),e=this.toggle.querySelector("[data-icon]"),n=this.toggle.querySelector("[data-title]"),!this.isMultiple&&e&&this.setToggleIcon(),!this.isMultiple&&n&&this.setToggleTitle(),this.isMultiple?this.toggleTextWrapper.innerHTML=this.value.length?this.stringFromValue():this.placeholder:this.toggleTextWrapper.innerHTML=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder,n||this.toggle.append(this.toggleTextWrapper),this.toggleClasses&&this.classToClassList(this.toggleClasses,this.toggle),this.isDisabled&&this.toggle.classList.add("disabled"),this.wrapper&&this.wrapper.append(this.toggle),this.toggle.addEventListener("click",(function(){if(o.isDisabled)return!1;o.isOpened?o.close():o.open()}))},e.prototype.setToggleIcon=function(){var t,e,n=this.toggle.querySelector("[data-icon]");if(n.innerHTML="",n){var o=this.htmlToElement((null===(e=null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.options)||void 0===e?void 0:e.icon)||"");n.append(o),o?n.classList.remove("hidden"):n.classList.add("hidden")}},e.prototype.setToggleTitle=function(){var t,e=this.toggle.querySelector("[data-title]");if(e.classList.add("truncate"),e.innerHTML="",e){var n=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder;e.innerHTML=n,this.toggle.append(e)}},e.prototype.buildTags=function(){this.tags=document.createElement("div"),this.tags.classList.add("flex"),this.tagsClasses&&this.classToClassList(this.tagsClasses,this.tags),this.buildTagsInput(),this.buildTagsItems(),this.setTagsItems(),this.wrapper&&this.wrapper.append(this.tags)},e.prototype.buildTagsItems=function(){this.tagsItems=document.createElement("div"),this.tagsItems.classList.add("flex","flex-wrap","flex-0","items-center"),this.setTagsItems(),this.tags.append(this.tagsItems)},e.prototype.buildTagsItem=function(t){var e,n,o,i,s,r,l,a=this,c=this.getItemByValue(t),u=document.createElement("div");if(this.tagsItemClasses&&this.classToClassList(this.tagsItemClasses,u),this.tagsItemTemplate&&(i=this.htmlToElement(this.tagsItemTemplate),u.append(i)),null===(e=null==c?void 0:c.options)||void 0===e?void 0:e.icon){var d=this.htmlToElement(null===(n=null==c?void 0:c.options)||void 0===n?void 0:n.icon);(l=i?i.querySelector("[data-icon]"):document.createElement("span")).append(d),i||u.append(l)}i&&i.querySelector("[data-icon]")&&!(null===(o=null==c?void 0:c.options)||void 0===o?void 0:o.icon)&&i.querySelector("[data-icon]").classList.add("hidden"),(s=i?i.querySelector("[data-title]"):document.createElement("span")).textContent=c.title||"",i||u.append(s),i?r=i.querySelector("[data-remove]"):((r=document.createElement("span")).textContent="X",u.append(r)),r.addEventListener("click",(function(){a.value=a.value.filter((function(e){return e!==t})),a.unselectMultipleItems(),a.setTagsItems(),a.selectMultipleItems()})),this.tagsItems.append(u)},e.prototype.getItemByValue=function(t){return this.selectOptions.find((function(e){return e.val===t}))},e.prototype.setTagsItems=function(){var t=this;this.tagsItems.innerHTML="",this.value&&this.value.forEach((function(e){t.buildTagsItem(e)})),this.value.length||(this.tagsInput.placeholder=this.placeholder)},e.prototype.buildTagsInput=function(){var t=this;this.tagsInput=document.createElement("input"),this.tagsInput.placeholder=this.placeholder,this.tagsInputClasses&&this.classToClassList(this.tagsInputClasses,this.tagsInput),this.tagsInput.addEventListener("focus",(function(){return t.open()})),this.tagsInput.addEventListener("input",this.debounce((function(e){return t.searchOptions(e.target.value)}))),this.tagsInput.addEventListener("keydown",(function(e){if("Enter"===e.key){var n=e.target.value;if(t.selectOptions.find((function(t){return t.val===n})))return!1;t.addSelectOption(n,n),t.buildOption(n,n),t.dropdown.querySelector('[data-value="'.concat(n,'"]')).click(),t.resetTagsInputField(),t.close()}})),this.tags.append(this.tagsInput)},e.prototype.buildDropdown=function(){var t=this;this.dropdown=this.htmlToElement(this.dropdownTag||"
"),this.dropdown.classList.add("absolute","top-full"),this.isOpened||this.dropdown.classList.add("hidden"),this.dropdownClasses&&this.classToClassList(this.dropdownClasses,this.dropdown),this.wrapper&&this.wrapper.append(this.dropdown),this.dropdown&&this.hasSearch&&this.buildSearch(),this.selectOptions&&this.selectOptions.forEach((function(e,n){return t.buildOption(e.title,e.val,e.options,"".concat(n))}))},e.prototype.buildSearch=function(){var t,e=this;this.searchWrapper=this.htmlToElement(this.searchWrapperTemplate||"
"),this.searchWrapperClasses&&this.classToClassList(this.searchWrapperClasses,this.searchWrapper),t=this.searchWrapper.querySelector("[data-input]"),this.search=this.htmlToElement(''),this.search.placeholder=this.searchPlaceholder,this.searchClasses&&this.classToClassList(this.searchClasses,this.search),this.search.addEventListener("input",this.debounce((function(t){return e.searchOptions(t.target.value)}))),t?t.append(this.search):this.searchWrapper.append(this.search),this.dropdown.append(this.searchWrapper)},e.prototype.buildOption=function(t,e,n,o){var i=this;void 0===o&&(o="1");var s=null,r=this.htmlToElement(this.optionTag||"
");if(r.setAttribute("data-value",e),r.setAttribute("data-title-value",t),r.setAttribute("tabIndex",o),r.classList.add("cursor-pointer"),this.optionTemplate&&(s=this.htmlToElement(this.optionTemplate),r.append(s)),s?s.querySelector("[data-title]").textContent=t||"":r.textContent=t||"",n){if(n.icon){var l=this.htmlToElement(n.icon);if(l.classList.add("mw-full"),s)s.querySelector("[data-icon]").append(l);else{var a=this.htmlToElement("
");this.iconClasses&&this.classToClassList(this.iconClasses,a),a.append(l),r.append(a)}}if(n.description)if(s)s.querySelector("[data-description]").append(n.description);else{var c=this.htmlToElement("
");c.textContent=n.description,this.descriptionClasses&&this.classToClassList(this.descriptionClasses,c),r.append(c)}}s&&s.querySelector("[data-icon]")&&!n&&!(null==n?void 0:n.icon)&&s.querySelector("[data-icon]").classList.add("hidden"),this.value&&(this.isMultiple?this.value.includes(e):this.value===e)&&r.classList.add("selected"),r.addEventListener("click",(function(){return i.onSelectOption(e)})),this.optionClasses&&this.classToClassList(this.optionClasses,r),this.dropdown&&this.dropdown.append(r)},e.prototype.onSelectOption=function(t){this.clearSelections(),this.isMultiple?(this.value=this.value.includes(t)?Array.from(this.value).filter((function(e){return e!==t})):r(r([],Array.from(this.value),!0),[t],!1),this.selectMultipleItems(),this.setNewValue()):(this.value=t,this.selectSingleItem(),this.setNewValue()),this.fireEvent("change",this.value),this.dispatch("change.hs.select",this.el,this.value),"tags"===this.mode&&this.resetTagsInputField(),this.isMultiple||(this.toggle.querySelector("[data-icon]")&&this.setToggleIcon(),this.toggle.querySelector("[data-title]")&&this.setToggleTitle(),this.close()),this.value.length||"tags"!==this.mode||(this.tagsInput.placeholder=this.placeholder)},e.prototype.addSelectOption=function(t,e,n){this.selectOptions=r(r([],this.selectOptions,!0),[{title:t,val:e,options:n}],!1)},e.prototype.resetTagsInputField=function(){this.tagsInput.value="",this.tagsInput.placeholder="",this.searchOptions("")},e.prototype.clearSelections=function(){Array.from(this.dropdown.children).forEach((function(t){t.classList.contains("selected")&&t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){t.selected&&(t.selected=!1)}))},e.prototype.setNewValue=function(){"tags"===this.mode?this.setTagsItems():this.value.length?this.toggleTextWrapper.innerHTML=this.stringFromValue():this.toggleTextWrapper.innerHTML=this.placeholder},e.prototype.stringFromValue=function(){var t=this,e=[];return this.selectOptions.forEach((function(n){t.isMultiple?t.value.includes(n.val)&&e.push(n.title):t.value===n.val&&e.push(n.title)})),this.toggleCountText&&""!==this.toggleCountText&&e.length>=this.toggleCountTextMinItems?"".concat(e.length," ").concat(this.toggleCountText):e.join(", ")},e.prototype.selectSingleItem=function(){var t=this;Array.from(this.el.children).find((function(e){return t.value===e.value})).selected=!0,Array.from(this.dropdown.children).find((function(e){return t.value===e.getAttribute("data-value")})).classList.add("selected")},e.prototype.selectMultipleItems=function(){var t=this;Array.from(this.dropdown.children).filter((function(e){return t.value.includes(e.getAttribute("data-value"))})).forEach((function(t){return t.classList.add("selected")})),Array.from(this.el.children).filter((function(e){return t.value.includes(e.value)})).forEach((function(t){return t.selected=!0}))},e.prototype.unselectMultipleItems=function(){Array.from(this.dropdown.children).forEach((function(t){return t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){return t.selected=!1}))},e.prototype.searchOptions=function(t){this.dropdown.querySelectorAll("[data-value]").forEach((function(e){e.getAttribute("data-title-value").toLowerCase().includes(t.toLowerCase())?e.classList.remove("hidden"):e.classList.add("hidden")}))},e.prototype.open=function(){var t=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.dropdown.classList.remove("hidden"),this.recalculateDirection(),setTimeout((function(){t.wrapper.classList.add("active"),t.dropdown.classList.add("opened"),t.hasSearch&&t.search.focus(),t.animationInProcess=!1})),this.isOpened=!0},e.prototype.close=function(){var t,e,n,o=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.wrapper.classList.remove("active"),this.dropdown.classList.remove("opened","bottom-full","top-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),(null===(e=this.dropdownDirectionClasses)||void 0===e?void 0:e.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.style.marginBottom="",this.afterTransition(this.dropdown,(function(){o.dropdown.classList.add("hidden"),o.hasSearch&&(o.search.value="",o.search.dispatchEvent(new Event("input",{bubbles:!0})),o.search.blur()),o.animationInProcess=!1})),null===(n=this.dropdown.querySelector(".hs-select-option-highlighted"))||void 0===n||n.classList.remove("hs-select-option-highlighted"),this.isOpened=!1},e.prototype.recalculateDirection=function(){var t,n,o,i;e.isEnoughSpace(this.dropdown,this.toggle||this.tagsInput,"bottom",this.dropdownSpace,this.viewport)?(this.dropdown.classList.remove("bottom-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="",this.dropdown.classList.add("top-full"),(null===(n=this.dropdownDirectionClasses)||void 0===n?void 0:n.top)&&this.dropdown.classList.add(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="".concat(this.dropdownSpace,"px")):(this.dropdown.classList.remove("top-full"),(null===(o=this.dropdownDirectionClasses)||void 0===o?void 0:o.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.classList.add("bottom-full"),(null===(i=this.dropdownDirectionClasses)||void 0===i?void 0:i.bottom)&&this.dropdown.classList.add(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="".concat(this.dropdownSpace,"px"))},e.getInstance=function(t,e){var n=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e.close=function(t){var e=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.isOpened&&e.element.close()},e.closeCurrentlyOpened=function(t){if(void 0===t&&(t=null),!t.closest(".hs-select.active")){var e=window.$hsSelectCollection.filter((function(t){return t.element.isOpened}))||null;e&&e.forEach((function(t){t.element.close()}))}},e.accessibility=function(t){var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e&&a.SELECT_ACCESSIBILITY_KEY_SET.includes(t.code)&&!t.metaKey)switch(console.log(e),console.log("Key code:",t.code),t.code){case"Escape":t.preventDefault(),this.onEscape();break;case"ArrowUp":t.preventDefault(),this.onArrow();break;case"ArrowDown":t.preventDefault(),this.onArrow(!1);break;case"Tab":t.preventDefault(),this.onTab(t.shiftKey);break;case"Home":t.preventDefault(),this.onStartEnd();break;case"End":t.preventDefault(),this.onStartEnd(!1);break;case"Enter":t.preventDefault(),this.onEnter(t)}},e.onEscape=function(){var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.close()},e.onArrow=function(t){void 0===t&&(t=!0);var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e){var n=e.element.dropdown;if(!n)return!1;var o=(t?Array.from(n.querySelectorAll(":scope > *")).reverse():Array.from(n.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");i||o[0].classList.add("hs-select-option-highlighted");var s=o.findIndex((function(t){return t===i}));s+1 *")).reverse():Array.from(n.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");i||o[0].classList.add("hs-select-option-highlighted");var s=o.findIndex((function(t){return t===i}));if(!(s+1 *")):Array.from(n.querySelectorAll(":scope > *")).reverse()).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");o.length&&(o[0].focus(),i&&i.classList.remove("hs-select-option-highlighted"),o[0].classList.add("hs-select-option-highlighted"))}},e.onEnter=function(t){var e=t.target.previousSibling;if(window.$hsSelectCollection.find((function(t){return t.element.el===e}))){var n=window.$hsSelectCollection.find((function(t){return t.element.isOpened})),o=window.$hsSelectCollection.find((function(t){return t.element.el===e}));n.element.close(),o.element.open()}else(o=window.$hsSelectCollection.find((function(t){return t.element.isOpened})))&&o.element.onSelectOption(t.target.dataset.value||"")},e}(l.default);window.addEventListener("load",(function(){window.$hsSelectCollection||(window.$hsSelectCollection=[]),document.querySelectorAll("[data-hs-select]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-select"),n=e?JSON.parse(e):{};new c(t,n)})),window.$hsSelectCollection&&(window.addEventListener("click",(function(t){var e=t.target;c.closeCurrentlyOpened(e)})),document.addEventListener("keydown",(function(t){return c.accessibility(t)})))})),document.addEventListener("scroll",(function(){if(!window.$hsSelectCollection)return!1;var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.recalculateDirection()})),t.exports.HSSelect=c,e.default=c},957:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;nt.totalSteps&&(t.totalSteps=n)}))},e.prototype.buildNav=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-nav-item]").forEach((function(e){return t.addNavItem(e)})),this.navItems.forEach((function(e){return t.buildNavItem(e)}))},e.prototype.buildNavItem=function(t){var e=this,n=t.index,o=t.isDisabled,i=t.el;n===this.currentIndex&&this.setCurrentNavItem(),("linear"!==this.mode||o)&&i.addEventListener("click",(function(){return e.handleNavItemClick(t)}))},e.prototype.addNavItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-nav-item")),n=e.index,o=e.isFinal,i=void 0!==o&&o,s=e.isCompleted,r=void 0!==s&&s,l=e.isSkip,a=void 0!==l&&l,c=e.isOptional,u=void 0!==c&&c,d=e.isDisabled,p=void 0!==d&&d,h=e.isProcessed,f=void 0!==h&&h,m=e.hasError,v=void 0!==m&&m;r&&t.classList.add("success"),a&&t.classList.add("skipped"),p&&("BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")),v&&t.classList.add("error"),this.navItems.push({index:n,isFinal:i,isCompleted:r,isSkip:a,isOptional:u,isDisabled:p,isProcessed:f,hasError:v,el:t})},e.prototype.setCurrentNavItem=function(){var t=this;this.navItems.forEach((function(e){var n=e.index,o=e.el;n===t.currentIndex?t.setCurrentNavItemActions(o):t.unsetCurrentNavItemActions(o)}))},e.prototype.setCurrentNavItemActions=function(t){t.classList.add("active"),this.fireEvent("active",this.currentIndex),this.dispatch("active.hs.stepper",this.el,this.currentIndex)},e.prototype.getNavItem=function(t){return void 0===t&&(t=this.currentIndex),this.navItems.find((function(e){return e.index===t}))},e.prototype.setProcessedNavItemActions=function(t){t.isProcessed=!0,t.el.classList.add("processed")},e.prototype.setErrorNavItemActions=function(t){t.hasError=!0,t.el.classList.add("error")},e.prototype.unsetCurrentNavItemActions=function(t){t.classList.remove("active")},e.prototype.handleNavItemClick=function(t){var e=t.index;this.currentIndex=e,this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep()},e.prototype.buildContent=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-content-item]").forEach((function(e){return t.addContentItem(e)})),this.navItems.forEach((function(e){return t.buildContentItem(e)}))},e.prototype.buildContentItem=function(t){t.index===this.currentIndex&&this.setCurrentContentItem()},e.prototype.addContentItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-content-item")),n=e.index,o=e.isFinal,i=void 0!==o&&o,s=e.isCompleted,r=void 0!==s&&s,l=e.isSkip,a=void 0!==l&&l;r&&t.classList.add("success"),a&&t.classList.add("skipped"),this.contentItems.push({index:n,isFinal:i,isCompleted:r,isSkip:a,el:t})},e.prototype.setCurrentContentItem=function(){var t=this;if(this.isCompleted){var e=this.contentItems.find((function(t){return t.isFinal})),n=this.contentItems.filter((function(t){return!t.isFinal}));return e.el.style.display="",n.forEach((function(t){return t.el.style.display="none"})),!1}this.contentItems.forEach((function(e){var n=e.index,o=e.el;n===t.currentIndex?t.setCurrentContentItemActions(o):t.unsetCurrentContentItemActions(o)}))},e.prototype.hideAllContentItems=function(){this.contentItems.forEach((function(t){return t.el.style.display="none"}))},e.prototype.setCurrentContentItemActions=function(t){t.style.display=""},e.prototype.unsetCurrentContentItemActions=function(t){t.style.display="none"},e.prototype.disableAll=function(){var t=this.getNavItem(this.currentIndex);t.hasError=!1,t.isCompleted=!1,t.isDisabled=!1,t.el.classList.remove("error","success"),this.disableButtons()},e.prototype.disableNavItemActions=function(t){t.isDisabled=!0,t.el.classList.add("disabled")},e.prototype.enableNavItemActions=function(t){t.isDisabled=!1,t.el.classList.remove("disabled")},e.prototype.buildButtons=function(){this.backBtn=this.el.querySelector("[data-hs-stepper-back-btn]"),this.nextBtn=this.el.querySelector("[data-hs-stepper-next-btn]"),this.skipBtn=this.el.querySelector("[data-hs-stepper-skip-btn]"),this.completeStepBtn=this.el.querySelector("[data-hs-stepper-complete-step-btn]"),this.finishBtn=this.el.querySelector("[data-hs-stepper-finish-btn]"),this.resetBtn=this.el.querySelector("[data-hs-stepper-reset-btn]"),this.buildBackButton(),this.buildNextButton(),this.buildSkipButton(),this.buildCompleteStepButton(),this.buildFinishButton(),this.buildResetButton()},e.prototype.buildBackButton=function(){var t=this;this.backBtn&&(this.checkForTheFirstStep(),this.backBtn.addEventListener("click",(function(){if(t.handleBackButtonClick(),"linear"===t.mode){var e=t.navItems.find((function(e){return e.index===t.currentIndex})),n=t.contentItems.find((function(e){return e.index===t.currentIndex}));if(!e||!n)return;e.isCompleted&&(e.isCompleted=!1,e.isSkip=!1,e.el.classList.remove("success","skipped")),n.isCompleted&&(n.isCompleted=!1,n.isSkip=!1,n.el.classList.remove("success","skipped")),"linear"===t.mode&&t.currentIndex!==t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display=""),t.completeStepBtn&&(t.completeStepBtn.style.display="")),t.showSkipButton(),t.showFinishButton(),t.showCompleteStepButton()}})))},e.prototype.handleBackButtonClick=function(){1!==this.currentIndex&&("linear"===this.mode&&this.removeOptionalClasses(),this.currentIndex--,"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.fireEvent("back",this.currentIndex),this.dispatch("back.hs.stepper",this.el,this.currentIndex))},e.prototype.checkForTheFirstStep=function(){1===this.currentIndex?this.setToDisabled(this.backBtn):this.setToNonDisabled(this.backBtn)},e.prototype.setToDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")},e.prototype.setToNonDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.removeAttribute("disabled"),t.classList.remove("disabled")},e.prototype.buildNextButton=function(){var t=this;this.nextBtn&&this.nextBtn.addEventListener("click",(function(){var e;if(t.fireEvent("beforeNext",t.currentIndex),t.dispatch("beforeNext.hs.stepper",t.el,t.currentIndex),null===(e=t.getNavItem(t.currentIndex))||void 0===e?void 0:e.isProcessed)return t.disableAll(),!1;t.goToNext()}))},e.prototype.unsetProcessedNavItemActions=function(t){t.isProcessed=!1,t.el.classList.remove("processed")},e.prototype.handleNextButtonClick=function(t){if(void 0===t&&(t=!0),t)this.currentIndex===this.totalSteps?this.currentIndex=1:this.currentIndex++;else{var e=this.getUncompletedSteps();if(1===e.length){var n=e[0].index;this.currentIndex=n}else{if(this.currentIndex===this.totalSteps)return;this.currentIndex++}}"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton(),this.showFinishButton(),this.showCompleteStepButton(),this.fireEvent("next",this.currentIndex),this.dispatch("next.hs.stepper",this.el,this.currentIndex)},e.prototype.removeOptionalClasses=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=this.contentItems.find((function(e){return e.index===t.currentIndex}));e.isSkip=!1,e.hasError=!1,e.isDisabled=!1,n.isSkip=!1,e.el.classList.remove("skipped","success","error"),n.el.classList.remove("skipped","success","error")},e.prototype.buildSkipButton=function(){var t=this;this.skipBtn&&(this.showSkipButton(),this.skipBtn.addEventListener("click",(function(){t.handleSkipButtonClick(),"linear"===t.mode&&t.currentIndex===t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display="none"),t.completeStepBtn&&(t.completeStepBtn.style.display="none"),t.finishBtn&&(t.finishBtn.style.display=""))})))},e.prototype.setSkipItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),o=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&o&&(this.setSkipItemActions(n),this.setSkipItemActions(o))},e.prototype.setSkipItemActions=function(t){t.isSkip=!0,t.el.classList.add("skipped")},e.prototype.showSkipButton=function(){var t=this;if(this.skipBtn){var e=this.navItems.find((function(e){return e.index===t.currentIndex})).isOptional;this.skipBtn.style.display=e?"":"none"}},e.prototype.handleSkipButtonClick=function(){this.setSkipItem(),this.handleNextButtonClick(),this.fireEvent("skip",this.currentIndex),this.dispatch("skip.hs.stepper",this.el,this.currentIndex)},e.prototype.buildCompleteStepButton=function(){var t=this;this.completeStepBtn&&(this.completeStepBtnDefaultText=this.completeStepBtn.innerText,this.completeStepBtn.addEventListener("click",(function(){return t.handleCompleteStepButtonClick()})))},e.prototype.changeTextAndDisableCompleteButtonIfStepCompleted=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=JSON.parse(this.completeStepBtn.getAttribute("data-hs-stepper-complete-step-btn")).completedText;e&&(e.isCompleted?(this.completeStepBtn.innerText=n||this.completeStepBtnDefaultText,this.completeStepBtn.setAttribute("disabled","disabled"),this.completeStepBtn.classList.add("disabled")):(this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")))},e.prototype.setCompleteItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),o=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&o&&(this.setCompleteItemActions(n),this.setCompleteItemActions(o))},e.prototype.setCompleteItemActions=function(t){t.isCompleted=!0,t.el.classList.add("success")},e.prototype.showCompleteStepButton=function(){this.completeStepBtn&&(1===this.getUncompletedSteps().length?this.completeStepBtn.style.display="none":this.completeStepBtn.style.display="")},e.prototype.handleCompleteStepButtonClick=function(){this.setCompleteItem(),this.fireEvent("complete",this.currentIndex),this.dispatch("complete.hs.stepper",this.el,this.currentIndex),this.handleNextButtonClick(!1),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton()},e.prototype.buildFinishButton=function(){var t=this;this.finishBtn&&(this.isCompleted&&this.setCompleted(),this.finishBtn.addEventListener("click",(function(){return t.handleFinishButtonClick()})))},e.prototype.setCompleted=function(){this.el.classList.add("completed")},e.prototype.unsetCompleted=function(){this.el.classList.remove("completed")},e.prototype.showFinishButton=function(){this.finishBtn&&(1===this.getUncompletedSteps().length?this.finishBtn.style.display="":this.finishBtn.style.display="none")},e.prototype.handleFinishButtonClick=function(){var t=this,e=this.getUncompletedSteps(),n=this.getUncompletedSteps(!0),o=this.contentItems.find((function(t){return t.isFinal})).el;e.length&&e.forEach((function(e){var n=e.index;return t.setCompleteItem(n)})),this.currentIndex=this.totalSteps,this.setCurrentNavItem(),this.hideAllContentItems();var i=this.navItems.find((function(e){return e.index===t.currentIndex}));(i?i.el:null).classList.remove("active"),o.style.display="block",this.backBtn&&(this.backBtn.style.display="none"),this.nextBtn&&(this.nextBtn.style.display="none"),this.skipBtn&&(this.skipBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"),this.finishBtn&&(this.finishBtn.style.display="none"),this.resetBtn&&(this.resetBtn.style.display=""),n.length<=1&&(this.isCompleted=!0,this.setCompleted()),this.fireEvent("finish",this.currentIndex),this.dispatch("finish.hs.stepper",this.el,this.currentIndex)},e.prototype.buildResetButton=function(){var t=this;this.resetBtn&&this.resetBtn.addEventListener("click",(function(){return t.handleResetButtonClick()}))},e.prototype.handleResetButtonClick=function(){var t=this;this.backBtn&&(this.backBtn.style.display=""),this.nextBtn&&(this.nextBtn.style.display=""),this.completeStepBtn&&(this.completeStepBtn.style.display="",this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")),this.resetBtn&&(this.resetBtn.style.display="none"),this.navItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentNavItemActions(n),n.classList.remove("success","skipped")})),this.contentItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentContentItemActions(n),n.classList.remove("success","skipped")})),this.currentIndex=1,this.setCurrentNavItem(),this.setCurrentContentItem(),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.unsetCompleted(),this.isCompleted=!1,this.fireEvent("reset",this.currentIndex),this.dispatch("reset.hs.stepper",this.el,this.currentIndex)},e.prototype.setProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.setProcessedNavItemActions(e)},e.prototype.unsetProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.unsetProcessedNavItemActions(e)},e.prototype.goToNext=function(){"linear"===this.mode&&this.setCompleteItem(),this.handleNextButtonClick("linear"!==this.mode),"linear"===this.mode&&this.currentIndex===this.totalSteps&&(this.nextBtn&&(this.nextBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"))},e.prototype.disableButtons=function(){this.backBtn&&this.setToDisabled(this.backBtn),this.nextBtn&&this.setToDisabled(this.nextBtn)},e.prototype.enableButtons=function(){this.backBtn&&this.setToNonDisabled(this.backBtn),this.nextBtn&&this.setToNonDisabled(this.nextBtn)},e.prototype.setErrorNavItem=function(t){var e=this.getNavItem(t);e&&this.setErrorNavItemActions(e)},e.getInstance=function(t,e){var n=window.$hsStepperCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsStepperCollection||(window.$hsStepperCollection=[]),document.querySelectorAll("[data-hs-stepper]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSStepper=r,e.default=r},983:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n?@[\\\\\\]^_`{|}~",o.target&&o.init(),o}return i(e,t),e.prototype.init=function(){this.createCollection(window.$hsStrongPasswordCollection,this),this.availableChecks.length&&this.build()},e.prototype.build=function(){var t=this;this.buildStrips(),this.hints&&this.buildHints(),this.setStrength(this.target.value),this.target.addEventListener("input",(function(e){t.setStrength(e.target.value)}))},e.prototype.buildStrips=function(){if(this.stripClasses)for(var t=0;t");this.classToClassList(this.stripClasses,e),this.el.append(e)}},e.prototype.buildHints=function(){var t=this;this.weakness=this.hints.querySelector("[data-hs-strong-password-hints-weakness-text]")||null,this.rules=Array.from(this.hints.querySelectorAll("[data-hs-strong-password-hints-rule-text]"))||null,this.rules.forEach((function(e){var n,o=e.getAttribute("data-hs-strong-password-hints-rule-text");(null===(n=t.checksExclude)||void 0===n?void 0:n.includes(o))&&e.remove()})),this.weakness&&this.buildWeakness(),this.rules&&this.buildRules(),"popover"===this.mode&&(this.target.addEventListener("focus",(function(){t.isOpened=!0,t.hints.classList.remove("hidden"),t.hints.classList.add("block"),t.recalculateDirection()})),this.target.addEventListener("blur",(function(){t.isOpened=!1,t.hints.classList.remove("block","bottom-full","top-full"),t.hints.classList.add("hidden"),t.hints.style.marginTop="",t.hints.style.marginBottom=""})))},e.prototype.buildWeakness=function(){var t=this;this.checkStrength(this.target.value),this.setWeaknessText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setWeaknessText()}))}))},e.prototype.buildRules=function(){var t=this;this.setRulesText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setRulesText()}))}))},e.prototype.setWeaknessText=function(){var t=this.weakness.getAttribute("data-hs-strong-password-hints-weakness-text"),e=JSON.parse(t);this.weakness.textContent=e[this.strength]},e.prototype.setRulesText=function(){var t=this;this.rules.forEach((function(e){var n=e.getAttribute("data-hs-strong-password-hints-rule-text");t.checkIfPassed(e,t.passedRules.has(n))}))},e.prototype.togglePopover=function(){var t=this.el.querySelector(".popover");t&&t.classList.toggle("show")},e.prototype.checkStrength=function(t){var e=new Set,n={lowercase:/[a-z]+/,uppercase:/[A-Z]+/,numbers:/[0-9]+/,"special-characters":new RegExp("[".concat(this.specialCharactersSet,"]"))},o=0;return this.availableChecks.includes("lowercase")&&t.match(n.lowercase)&&(o+=1,e.add("lowercase")),this.availableChecks.includes("uppercase")&&t.match(n.uppercase)&&(o+=1,e.add("uppercase")),this.availableChecks.includes("numbers")&&t.match(n.numbers)&&(o+=1,e.add("numbers")),this.availableChecks.includes("special-characters")&&t.match(n["special-characters"])&&(o+=1,e.add("special-characters")),this.availableChecks.includes("min-length")&&t.length>=this.minLength&&(o+=1,e.add("min-length")),t.length||(o=0),o===this.availableChecks.length?this.el.classList.add("accepted"):this.el.classList.remove("accepted"),this.strength=o,this.passedRules=e,{strength:this.strength,rules:this.passedRules}},e.prototype.checkIfPassed=function(t,e){void 0===e&&(e=!1);var n=t.querySelector("[data-check]"),o=t.querySelector("[data-uncheck]");e?(t.classList.add("active"),n.classList.remove("hidden"),o.classList.add("hidden")):(t.classList.remove("active"),n.classList.add("hidden"),o.classList.remove("hidden"))},e.prototype.setStrength=function(t){var e=this.checkStrength(t),n=e.strength,o={strength:n,rules:e.rules};this.hideStrips(n),this.fireEvent("change",o),this.dispatch("change.hs.strongPassword",this.el,o)},e.prototype.hideStrips=function(t){Array.from(this.el.children).forEach((function(e,n){n1&&!!o.el.closest("[data-hs-toggle-password-group]"),o.target&&o.init(),o}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsTogglePasswordCollection,this),this.isShown?this.show():this.hide(),this.el.addEventListener(this.eventType,(function(){t.isShown?t.hide():t.show(),t.fireEvent("toggle",t.target),t.dispatch("toggle.hs.toggle-select",t.el,t.target)}))},e.prototype.getMultipleToggles=function(){var t=this.el.closest("[data-hs-toggle-password-group]").querySelectorAll("[data-hs-toggle-password]"),n=[];return t.forEach((function(t){n.push(e.getInstance(t))})),n},e.prototype.show=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!0)})),this.el.closest("[data-hs-toggle-password-group]").classList.add("active")):(this.isShown=!0,this.el.classList.add("active")),this.target.forEach((function(t){t.type="text"}))},e.prototype.hide=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!1)})),this.el.closest("[data-hs-toggle-password-group]").classList.remove("active")):(this.isShown=!1,this.el.classList.remove("active")),this.target.forEach((function(t){t.type="password"}))},e.getInstance=function(t,e){var n=window.$hsTogglePasswordCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsTogglePasswordCollection||(window.$hsTogglePasswordCollection=[]),document.querySelectorAll("[data-hs-toggle-password]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSTogglePassword=r,e.default=r},679:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.menuSearchHistory=void 0;var o=n(489);e.menuSearchHistory=o.default},489:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={historyIndex:-1,addHistory:function(t){this.historyIndex=t},existsInHistory:function(t){return t>this.historyIndex},clearHistory:function(){this.historyIndex=-1}}}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}return 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),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n(700)})())); \ No newline at end of file diff --git a/dist/preline.js.LICENSE.txt b/dist/preline.js.LICENSE.txt deleted file mode 100644 index 2c63cf2..0000000 --- a/dist/preline.js.LICENSE.txt +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Component - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSAccordion - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSCollapse - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSDropdown - * @version: 1.3.0 - * @author: HtmlStream - * @requires: @popperjs/core ^2.11.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSOverlay - * @version: 1.3.0 - * @author: HtmlStream - * @license: Htmlstream Libraries (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSRemoveElement - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSScrollspy - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * HSTabs - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* - * Util - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -/* -* HSTooltips -* @version: 1.4.0 -* @author: HtmlStream -* @requires: @popperjs/core ^2.11.2 -* @license: Licensed under MIT (https://preline.co/docs/license.html) -* Copyright 2023 Htmlstream -*/ diff --git a/dist/remove-element.js b/dist/remove-element.js new file mode 100644 index 0000000..b557aaf --- /dev/null +++ b/dist/remove-element.js @@ -0,0 +1,2 @@ +/*! For license information please see remove-element.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 n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var r=[],i=0;i=c:"top"===n?l>=c:l>=c||u>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},139:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__assign||function(){return i=Object.assign||function(t){for(var e,n=1,o=arguments.length;n(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e,o){this.el=t,this.options=e,this.events=o,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var o;t.push({id:(null===(o=null==e?void 0:e.el)||void 0===o?void 0:o.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,o){void 0===o&&(o=null);var n=new CustomEvent(t,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(n)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var o=function(){e(),t.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",o,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function o(n){n.target===t&&(t.removeEventListener("transitionend",o),e())}))},t.prototype.getClassProperty=function(t,e,o){return void 0===o&&(o=""),(window.getComputedStyle(t).getPropertyValue(e)||o).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,o){void 0===o&&(o="");var n="";return t.classList.forEach((function(t){t.includes(e)&&(n=t)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,o){void 0===o&&(o=" "),t.split(o).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var o,n=this;return void 0===e&&(e=200),function(){for(var r=[],i=0;i=u:"top"===o?c>=u:c>=u||a>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=o,window.HSStaticMethods={afterTransition:function(t,e){var o=function(){e(),t.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",o,!0):e()},getClassPropertyAlt:function(t,e,o){void 0===o&&(o="");var n="";return t.classList.forEach((function(t){t.includes(e)&&(n=t)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},getClassProperty:function(t,e,o){return void 0===o&&(o=""),(window.getComputedStyle(t).getPropertyValue(e)||o).replace(" ","")}}},591:function(t,e,o){var n,r=this&&this.__extends||(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)});Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(e,o){void 0===o&&(o={});var n=t.call(this,e,o)||this;return n.activeSection=null,n.contentId=n.el.getAttribute("data-hs-scrollspy"),n.content=document.querySelector(n.contentId),n.links=n.el.querySelectorAll("[href]"),n.sections=[],n.scrollableId=n.el.getAttribute("data-hs-scrollspy-scrollable-parent"),n.scrollable=n.scrollableId?document.querySelector(n.scrollableId):document,n.init(),n}return r(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsScrollspyCollection,this),this.links.forEach((function(e){t.sections.push(t.scrollable.querySelector(e.getAttribute("href")))})),Array.from(this.sections).forEach((function(e){if(!e.getAttribute("id"))return!1;t.scrollable.addEventListener("scroll",(function(o){return t.update(o,e)}))})),this.links.forEach((function(e){e.addEventListener("click",(function(o){if(o.preventDefault(),"javascript:;"===e.getAttribute("href"))return!1;t.scrollTo(e)}))}))},e.prototype.update=function(t,e){var o=parseInt(this.getClassProperty(this.el,"--scrollspy-offset","0")),n=parseInt(this.getClassProperty(e,"--scrollspy-offset"))||o,r=t.target===document?0:parseInt(String(t.target.getBoundingClientRect().top)),i=parseInt(String(e.getBoundingClientRect().top))-n-r,s=e.offsetHeight;if(i<=0&&i+s>0){if(this.activeSection===e)return!1;this.links.forEach((function(t){t.classList.remove("active")}));var l=this.el.querySelector('[href="#'.concat(e.getAttribute("id"),'"]'));if(l){l.classList.add("active");var c=l.closest("[data-hs-scrollspy-group]");if(c){var a=c.querySelector("[href]");a&&a.classList.add("active")}}this.activeSection=e}},e.prototype.scrollTo=function(t){var e=t.getAttribute("href"),o=document.querySelector(e),n=parseInt(this.getClassProperty(this.el,"--scrollspy-offset","0")),r=parseInt(this.getClassProperty(o,"--scrollspy-offset"))||n,i=this.scrollable===document?0:this.scrollable.offsetTop,s=o.offsetTop-r-i,l=this.scrollable===document?window:this.scrollable,c=function(){window.history.replaceState(null,null,t.getAttribute("href")),"scrollTo"in l&&l.scrollTo({top:s,left:0,behavior:"smooth"})},a=this.fireEvent("beforeScroll",this.el);this.dispatch("beforeScroll.hs.scrollspy",this.el,this.el),a instanceof Promise?a.then((function(){return c()})):c()},e.getInstance=function(t,e){void 0===e&&(e=!1);var o=window.$hsScrollspyCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return o?e?o:o.element.el:null},e}(o(737).default);window.addEventListener("load",(function(){window.$hsScrollspyCollection||(window.$hsScrollspyCollection=[]),document.querySelectorAll("[data-hs-scrollspy]:not(.--prevent-on-load-init)").forEach((function(t){return new i(t)}))})),t.exports.HSScrollspy=i,e.default=i}},e={};return function o(n){var r=e[n];if(void 0!==r)return r.exports;var i=e[n]={exports:{}};return t[n].call(i.exports,i,i.exports,o),i.exports}(591)})())); \ No newline at end of file diff --git a/dist/components/hs-scrollspy/hs-scrollspy.js.LICENSE.txt b/dist/scrollspy.js.LICENSE.txt similarity index 52% rename from dist/components/hs-scrollspy/hs-scrollspy.js.LICENSE.txt rename to dist/scrollspy.js.LICENSE.txt index 8a4b12e..e8b52bc 100644 --- a/dist/components/hs-scrollspy/hs-scrollspy.js.LICENSE.txt +++ b/dist/scrollspy.js.LICENSE.txt @@ -1,15 +1,15 @@ /* - * Component - * @version: 1.3.0 - * @author: HtmlStream + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ /* * HSScrollspy - * @version: 1.3.0 - * @author: HtmlStream + * @version: 2.0.0 + * @author: HTMLStream * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ diff --git a/dist/select.js b/dist/select.js new file mode 100644 index 0000000..ad6f906 --- /dev/null +++ b/dist/select.js @@ -0,0 +1,2 @@ +/*! For license information please see select.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 s=e();for(var i in s)("object"==typeof exports?exports:t)[i]=s[i]}}(self,(()=>(()=>{"use strict";var t={190:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SELECT_ACCESSIBILITY_KEY_SET=e.TABS_ACCESSIBILITY_KEY_SET=e.OVERLAY_ACCESSIBILITY_KEY_SET=e.DROPDOWN_ACCESSIBILITY_KEY_SET=e.POSITIONS=void 0,e.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},e.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],e.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],e.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],e.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e,s){this.el=t,this.options=e,this.events=s,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var s;t.push({id:(null===(s=null==e?void 0:e.el)||void 0===s?void 0:s.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,s){void 0===s&&(s=null);var i=new CustomEvent(t,{detail:{payload:s},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(i)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var s=function(){e(),t.removeEventListener("transitionend",s,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",s,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function s(i){i.target===t&&(t.removeEventListener("transitionend",s),e())}))},t.prototype.getClassProperty=function(t,e,s){return void 0===s&&(s=""),(window.getComputedStyle(t).getPropertyValue(e)||s).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,s){void 0===s&&(s="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:s},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,s){void 0===s&&(s=" "),t.split(s).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var s,i=this;return void 0===e&&(e=200),function(){for(var o=[],n=0;n=c:"top"===s?a>=c:a>=c||d>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=s,window.HSStaticMethods={afterTransition:function(t,e){var s=function(){e(),t.removeEventListener("transitionend",s,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",s,!0):e()},getClassPropertyAlt:function(t,e,s){void 0===s&&(s="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:s},getClassProperty:function(t,e,s){return void 0===s&&(s=""),(window.getComputedStyle(t).getPropertyValue(e)||s).replace(" ","")}}},233:function(t,e,s){var i,o=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function s(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(s.prototype=e.prototype,new s)}),n=this&&this.__assign||function(){return n=Object.assign||function(t){for(var e,s=1,i=arguments.length;s"),e=this.toggle.querySelector("[data-icon]"),s=this.toggle.querySelector("[data-title]"),!this.isMultiple&&e&&this.setToggleIcon(),!this.isMultiple&&s&&this.setToggleTitle(),this.isMultiple?this.toggleTextWrapper.innerHTML=this.value.length?this.stringFromValue():this.placeholder:this.toggleTextWrapper.innerHTML=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder,s||this.toggle.append(this.toggleTextWrapper),this.toggleClasses&&this.classToClassList(this.toggleClasses,this.toggle),this.isDisabled&&this.toggle.classList.add("disabled"),this.wrapper&&this.wrapper.append(this.toggle),this.toggle.addEventListener("click",(function(){if(i.isDisabled)return!1;i.isOpened?i.close():i.open()}))},e.prototype.setToggleIcon=function(){var t,e,s=this.toggle.querySelector("[data-icon]");if(s.innerHTML="",s){var i=this.htmlToElement((null===(e=null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.options)||void 0===e?void 0:e.icon)||"");s.append(i),i?s.classList.remove("hidden"):s.classList.add("hidden")}},e.prototype.setToggleTitle=function(){var t,e=this.toggle.querySelector("[data-title]");if(e.classList.add("truncate"),e.innerHTML="",e){var s=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder;e.innerHTML=s,this.toggle.append(e)}},e.prototype.buildTags=function(){this.tags=document.createElement("div"),this.tags.classList.add("flex"),this.tagsClasses&&this.classToClassList(this.tagsClasses,this.tags),this.buildTagsInput(),this.buildTagsItems(),this.setTagsItems(),this.wrapper&&this.wrapper.append(this.tags)},e.prototype.buildTagsItems=function(){this.tagsItems=document.createElement("div"),this.tagsItems.classList.add("flex","flex-wrap","flex-0","items-center"),this.setTagsItems(),this.tags.append(this.tagsItems)},e.prototype.buildTagsItem=function(t){var e,s,i,o,n,l,r,a=this,d=this.getItemByValue(t),c=document.createElement("div");if(this.tagsItemClasses&&this.classToClassList(this.tagsItemClasses,c),this.tagsItemTemplate&&(o=this.htmlToElement(this.tagsItemTemplate),c.append(o)),null===(e=null==d?void 0:d.options)||void 0===e?void 0:e.icon){var u=this.htmlToElement(null===(s=null==d?void 0:d.options)||void 0===s?void 0:s.icon);(r=o?o.querySelector("[data-icon]"):document.createElement("span")).append(u),o||c.append(r)}o&&o.querySelector("[data-icon]")&&!(null===(i=null==d?void 0:d.options)||void 0===i?void 0:i.icon)&&o.querySelector("[data-icon]").classList.add("hidden"),(n=o?o.querySelector("[data-title]"):document.createElement("span")).textContent=d.title||"",o||c.append(n),o?l=o.querySelector("[data-remove]"):((l=document.createElement("span")).textContent="X",c.append(l)),l.addEventListener("click",(function(){a.value=a.value.filter((function(e){return e!==t})),a.unselectMultipleItems(),a.setTagsItems(),a.selectMultipleItems()})),this.tagsItems.append(c)},e.prototype.getItemByValue=function(t){return this.selectOptions.find((function(e){return e.val===t}))},e.prototype.setTagsItems=function(){var t=this;this.tagsItems.innerHTML="",this.value&&this.value.forEach((function(e){t.buildTagsItem(e)})),this.value.length||(this.tagsInput.placeholder=this.placeholder)},e.prototype.buildTagsInput=function(){var t=this;this.tagsInput=document.createElement("input"),this.tagsInput.placeholder=this.placeholder,this.tagsInputClasses&&this.classToClassList(this.tagsInputClasses,this.tagsInput),this.tagsInput.addEventListener("focus",(function(){return t.open()})),this.tagsInput.addEventListener("input",this.debounce((function(e){return t.searchOptions(e.target.value)}))),this.tagsInput.addEventListener("keydown",(function(e){if("Enter"===e.key){var s=e.target.value;if(t.selectOptions.find((function(t){return t.val===s})))return!1;t.addSelectOption(s,s),t.buildOption(s,s),t.dropdown.querySelector('[data-value="'.concat(s,'"]')).click(),t.resetTagsInputField(),t.close()}})),this.tags.append(this.tagsInput)},e.prototype.buildDropdown=function(){var t=this;this.dropdown=this.htmlToElement(this.dropdownTag||"
"),this.dropdown.classList.add("absolute","top-full"),this.isOpened||this.dropdown.classList.add("hidden"),this.dropdownClasses&&this.classToClassList(this.dropdownClasses,this.dropdown),this.wrapper&&this.wrapper.append(this.dropdown),this.dropdown&&this.hasSearch&&this.buildSearch(),this.selectOptions&&this.selectOptions.forEach((function(e,s){return t.buildOption(e.title,e.val,e.options,"".concat(s))}))},e.prototype.buildSearch=function(){var t,e=this;this.searchWrapper=this.htmlToElement(this.searchWrapperTemplate||"
"),this.searchWrapperClasses&&this.classToClassList(this.searchWrapperClasses,this.searchWrapper),t=this.searchWrapper.querySelector("[data-input]"),this.search=this.htmlToElement(''),this.search.placeholder=this.searchPlaceholder,this.searchClasses&&this.classToClassList(this.searchClasses,this.search),this.search.addEventListener("input",this.debounce((function(t){return e.searchOptions(t.target.value)}))),t?t.append(this.search):this.searchWrapper.append(this.search),this.dropdown.append(this.searchWrapper)},e.prototype.buildOption=function(t,e,s,i){var o=this;void 0===i&&(i="1");var n=null,l=this.htmlToElement(this.optionTag||"
");if(l.setAttribute("data-value",e),l.setAttribute("data-title-value",t),l.setAttribute("tabIndex",i),l.classList.add("cursor-pointer"),this.optionTemplate&&(n=this.htmlToElement(this.optionTemplate),l.append(n)),n?n.querySelector("[data-title]").textContent=t||"":l.textContent=t||"",s){if(s.icon){var r=this.htmlToElement(s.icon);if(r.classList.add("mw-full"),n)n.querySelector("[data-icon]").append(r);else{var a=this.htmlToElement("
");this.iconClasses&&this.classToClassList(this.iconClasses,a),a.append(r),l.append(a)}}if(s.description)if(n)n.querySelector("[data-description]").append(s.description);else{var d=this.htmlToElement("
");d.textContent=s.description,this.descriptionClasses&&this.classToClassList(this.descriptionClasses,d),l.append(d)}}n&&n.querySelector("[data-icon]")&&!s&&!(null==s?void 0:s.icon)&&n.querySelector("[data-icon]").classList.add("hidden"),this.value&&(this.isMultiple?this.value.includes(e):this.value===e)&&l.classList.add("selected"),l.addEventListener("click",(function(){return o.onSelectOption(e)})),this.optionClasses&&this.classToClassList(this.optionClasses,l),this.dropdown&&this.dropdown.append(l)},e.prototype.onSelectOption=function(t){this.clearSelections(),this.isMultiple?(this.value=this.value.includes(t)?Array.from(this.value).filter((function(e){return e!==t})):l(l([],Array.from(this.value),!0),[t],!1),this.selectMultipleItems(),this.setNewValue()):(this.value=t,this.selectSingleItem(),this.setNewValue()),this.fireEvent("change",this.value),this.dispatch("change.hs.select",this.el,this.value),"tags"===this.mode&&this.resetTagsInputField(),this.isMultiple||(this.toggle.querySelector("[data-icon]")&&this.setToggleIcon(),this.toggle.querySelector("[data-title]")&&this.setToggleTitle(),this.close()),this.value.length||"tags"!==this.mode||(this.tagsInput.placeholder=this.placeholder)},e.prototype.addSelectOption=function(t,e,s){this.selectOptions=l(l([],this.selectOptions,!0),[{title:t,val:e,options:s}],!1)},e.prototype.resetTagsInputField=function(){this.tagsInput.value="",this.tagsInput.placeholder="",this.searchOptions("")},e.prototype.clearSelections=function(){Array.from(this.dropdown.children).forEach((function(t){t.classList.contains("selected")&&t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){t.selected&&(t.selected=!1)}))},e.prototype.setNewValue=function(){"tags"===this.mode?this.setTagsItems():this.value.length?this.toggleTextWrapper.innerHTML=this.stringFromValue():this.toggleTextWrapper.innerHTML=this.placeholder},e.prototype.stringFromValue=function(){var t=this,e=[];return this.selectOptions.forEach((function(s){t.isMultiple?t.value.includes(s.val)&&e.push(s.title):t.value===s.val&&e.push(s.title)})),this.toggleCountText&&""!==this.toggleCountText&&e.length>=this.toggleCountTextMinItems?"".concat(e.length," ").concat(this.toggleCountText):e.join(", ")},e.prototype.selectSingleItem=function(){var t=this;Array.from(this.el.children).find((function(e){return t.value===e.value})).selected=!0,Array.from(this.dropdown.children).find((function(e){return t.value===e.getAttribute("data-value")})).classList.add("selected")},e.prototype.selectMultipleItems=function(){var t=this;Array.from(this.dropdown.children).filter((function(e){return t.value.includes(e.getAttribute("data-value"))})).forEach((function(t){return t.classList.add("selected")})),Array.from(this.el.children).filter((function(e){return t.value.includes(e.value)})).forEach((function(t){return t.selected=!0}))},e.prototype.unselectMultipleItems=function(){Array.from(this.dropdown.children).forEach((function(t){return t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){return t.selected=!1}))},e.prototype.searchOptions=function(t){this.dropdown.querySelectorAll("[data-value]").forEach((function(e){e.getAttribute("data-title-value").toLowerCase().includes(t.toLowerCase())?e.classList.remove("hidden"):e.classList.add("hidden")}))},e.prototype.open=function(){var t=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.dropdown.classList.remove("hidden"),this.recalculateDirection(),setTimeout((function(){t.wrapper.classList.add("active"),t.dropdown.classList.add("opened"),t.hasSearch&&t.search.focus(),t.animationInProcess=!1})),this.isOpened=!0},e.prototype.close=function(){var t,e,s,i=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.wrapper.classList.remove("active"),this.dropdown.classList.remove("opened","bottom-full","top-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),(null===(e=this.dropdownDirectionClasses)||void 0===e?void 0:e.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.style.marginBottom="",this.afterTransition(this.dropdown,(function(){i.dropdown.classList.add("hidden"),i.hasSearch&&(i.search.value="",i.search.dispatchEvent(new Event("input",{bubbles:!0})),i.search.blur()),i.animationInProcess=!1})),null===(s=this.dropdown.querySelector(".hs-select-option-highlighted"))||void 0===s||s.classList.remove("hs-select-option-highlighted"),this.isOpened=!1},e.prototype.recalculateDirection=function(){var t,s,i,o;e.isEnoughSpace(this.dropdown,this.toggle||this.tagsInput,"bottom",this.dropdownSpace,this.viewport)?(this.dropdown.classList.remove("bottom-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="",this.dropdown.classList.add("top-full"),(null===(s=this.dropdownDirectionClasses)||void 0===s?void 0:s.top)&&this.dropdown.classList.add(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="".concat(this.dropdownSpace,"px")):(this.dropdown.classList.remove("top-full"),(null===(i=this.dropdownDirectionClasses)||void 0===i?void 0:i.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.classList.add("bottom-full"),(null===(o=this.dropdownDirectionClasses)||void 0===o?void 0:o.bottom)&&this.dropdown.classList.add(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="".concat(this.dropdownSpace,"px"))},e.getInstance=function(t,e){var s=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return s?e?s:s.element:null},e.close=function(t){var e=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.isOpened&&e.element.close()},e.closeCurrentlyOpened=function(t){if(void 0===t&&(t=null),!t.closest(".hs-select.active")){var e=window.$hsSelectCollection.filter((function(t){return t.element.isOpened}))||null;e&&e.forEach((function(t){t.element.close()}))}},e.accessibility=function(t){var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e&&a.SELECT_ACCESSIBILITY_KEY_SET.includes(t.code)&&!t.metaKey)switch(console.log(e),console.log("Key code:",t.code),t.code){case"Escape":t.preventDefault(),this.onEscape();break;case"ArrowUp":t.preventDefault(),this.onArrow();break;case"ArrowDown":t.preventDefault(),this.onArrow(!1);break;case"Tab":t.preventDefault(),this.onTab(t.shiftKey);break;case"Home":t.preventDefault(),this.onStartEnd();break;case"End":t.preventDefault(),this.onStartEnd(!1);break;case"Enter":t.preventDefault(),this.onEnter(t)}},e.onEscape=function(){var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.close()},e.onArrow=function(t){void 0===t&&(t=!0);var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e){var s=e.element.dropdown;if(!s)return!1;var i=(t?Array.from(s.querySelectorAll(":scope > *")).reverse():Array.from(s.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),o=s.querySelector(".hs-select-option-highlighted");o||i[0].classList.add("hs-select-option-highlighted");var n=i.findIndex((function(t){return t===o}));n+1 *")).reverse():Array.from(s.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),o=s.querySelector(".hs-select-option-highlighted");o||i[0].classList.add("hs-select-option-highlighted");var n=i.findIndex((function(t){return t===o}));if(!(n+1 *")):Array.from(s.querySelectorAll(":scope > *")).reverse()).filter((function(t){return!t.classList.contains("disabled")})),o=s.querySelector(".hs-select-option-highlighted");i.length&&(i[0].focus(),o&&o.classList.remove("hs-select-option-highlighted"),i[0].classList.add("hs-select-option-highlighted"))}},e.onEnter=function(t){var e=t.target.previousSibling;if(window.$hsSelectCollection.find((function(t){return t.element.el===e}))){var s=window.$hsSelectCollection.find((function(t){return t.element.isOpened})),i=window.$hsSelectCollection.find((function(t){return t.element.el===e}));s.element.close(),i.element.open()}else(i=window.$hsSelectCollection.find((function(t){return t.element.isOpened})))&&i.element.onSelectOption(t.target.dataset.value||"")},e}(r.default);window.addEventListener("load",(function(){window.$hsSelectCollection||(window.$hsSelectCollection=[]),document.querySelectorAll("[data-hs-select]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-select"),s=e?JSON.parse(e):{};new d(t,s)})),window.$hsSelectCollection&&(window.addEventListener("click",(function(t){var e=t.target;d.closeCurrentlyOpened(e)})),document.addEventListener("keydown",(function(t){return d.accessibility(t)})))})),document.addEventListener("scroll",(function(){if(!window.$hsSelectCollection)return!1;var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.recalculateDirection()})),t.exports.HSSelect=d,e.default=d}},e={};return function s(i){var o=e[i];if(void 0!==o)return o.exports;var n=e[i]={exports:{}};return t[i].call(n.exports,n,n.exports,s),n.exports}(233)})())); \ No newline at end of file diff --git a/dist/select.js.LICENSE.txt b/dist/select.js.LICENSE.txt new file mode 100644 index 0000000..83d2d28 --- /dev/null +++ b/dist/select.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSSelect + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/stepper.js b/dist/stepper.js new file mode 100644 index 0000000..62d3107 --- /dev/null +++ b/dist/stepper.js @@ -0,0 +1,2 @@ +/*! For license information please see stepper.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 n=e();for(var i in n)("object"==typeof exports?exports:t)[i]=n[i]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var i=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(i)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(i){i.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,i=this;return void 0===e&&(e=200),function(){for(var s=[],o=0;o=c:"top"===n?p>=c:p>=c||a>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var i="";return t.classList.forEach((function(t){t.includes(e)&&(i=t)})),i.match(/:(.*)]/)?i.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},957:function(t,e,n){var i,s=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),o=this&&this.__assign||function(){return o=Object.assign||function(t){for(var e,n=1,i=arguments.length;nt.totalSteps&&(t.totalSteps=n)}))},e.prototype.buildNav=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-nav-item]").forEach((function(e){return t.addNavItem(e)})),this.navItems.forEach((function(e){return t.buildNavItem(e)}))},e.prototype.buildNavItem=function(t){var e=this,n=t.index,i=t.isDisabled,s=t.el;n===this.currentIndex&&this.setCurrentNavItem(),("linear"!==this.mode||i)&&s.addEventListener("click",(function(){return e.handleNavItemClick(t)}))},e.prototype.addNavItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-nav-item")),n=e.index,i=e.isFinal,s=void 0!==i&&i,o=e.isCompleted,r=void 0!==o&&o,l=e.isSkip,p=void 0!==l&&l,a=e.isOptional,c=void 0!==a&&a,d=e.isDisabled,h=void 0!==d&&d,u=e.isProcessed,m=void 0!==u&&u,f=e.hasError,v=void 0!==f&&f;r&&t.classList.add("success"),p&&t.classList.add("skipped"),h&&("BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")),v&&t.classList.add("error"),this.navItems.push({index:n,isFinal:s,isCompleted:r,isSkip:p,isOptional:c,isDisabled:h,isProcessed:m,hasError:v,el:t})},e.prototype.setCurrentNavItem=function(){var t=this;this.navItems.forEach((function(e){var n=e.index,i=e.el;n===t.currentIndex?t.setCurrentNavItemActions(i):t.unsetCurrentNavItemActions(i)}))},e.prototype.setCurrentNavItemActions=function(t){t.classList.add("active"),this.fireEvent("active",this.currentIndex),this.dispatch("active.hs.stepper",this.el,this.currentIndex)},e.prototype.getNavItem=function(t){return void 0===t&&(t=this.currentIndex),this.navItems.find((function(e){return e.index===t}))},e.prototype.setProcessedNavItemActions=function(t){t.isProcessed=!0,t.el.classList.add("processed")},e.prototype.setErrorNavItemActions=function(t){t.hasError=!0,t.el.classList.add("error")},e.prototype.unsetCurrentNavItemActions=function(t){t.classList.remove("active")},e.prototype.handleNavItemClick=function(t){var e=t.index;this.currentIndex=e,this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep()},e.prototype.buildContent=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-content-item]").forEach((function(e){return t.addContentItem(e)})),this.navItems.forEach((function(e){return t.buildContentItem(e)}))},e.prototype.buildContentItem=function(t){t.index===this.currentIndex&&this.setCurrentContentItem()},e.prototype.addContentItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-content-item")),n=e.index,i=e.isFinal,s=void 0!==i&&i,o=e.isCompleted,r=void 0!==o&&o,l=e.isSkip,p=void 0!==l&&l;r&&t.classList.add("success"),p&&t.classList.add("skipped"),this.contentItems.push({index:n,isFinal:s,isCompleted:r,isSkip:p,el:t})},e.prototype.setCurrentContentItem=function(){var t=this;if(this.isCompleted){var e=this.contentItems.find((function(t){return t.isFinal})),n=this.contentItems.filter((function(t){return!t.isFinal}));return e.el.style.display="",n.forEach((function(t){return t.el.style.display="none"})),!1}this.contentItems.forEach((function(e){var n=e.index,i=e.el;n===t.currentIndex?t.setCurrentContentItemActions(i):t.unsetCurrentContentItemActions(i)}))},e.prototype.hideAllContentItems=function(){this.contentItems.forEach((function(t){return t.el.style.display="none"}))},e.prototype.setCurrentContentItemActions=function(t){t.style.display=""},e.prototype.unsetCurrentContentItemActions=function(t){t.style.display="none"},e.prototype.disableAll=function(){var t=this.getNavItem(this.currentIndex);t.hasError=!1,t.isCompleted=!1,t.isDisabled=!1,t.el.classList.remove("error","success"),this.disableButtons()},e.prototype.disableNavItemActions=function(t){t.isDisabled=!0,t.el.classList.add("disabled")},e.prototype.enableNavItemActions=function(t){t.isDisabled=!1,t.el.classList.remove("disabled")},e.prototype.buildButtons=function(){this.backBtn=this.el.querySelector("[data-hs-stepper-back-btn]"),this.nextBtn=this.el.querySelector("[data-hs-stepper-next-btn]"),this.skipBtn=this.el.querySelector("[data-hs-stepper-skip-btn]"),this.completeStepBtn=this.el.querySelector("[data-hs-stepper-complete-step-btn]"),this.finishBtn=this.el.querySelector("[data-hs-stepper-finish-btn]"),this.resetBtn=this.el.querySelector("[data-hs-stepper-reset-btn]"),this.buildBackButton(),this.buildNextButton(),this.buildSkipButton(),this.buildCompleteStepButton(),this.buildFinishButton(),this.buildResetButton()},e.prototype.buildBackButton=function(){var t=this;this.backBtn&&(this.checkForTheFirstStep(),this.backBtn.addEventListener("click",(function(){if(t.handleBackButtonClick(),"linear"===t.mode){var e=t.navItems.find((function(e){return e.index===t.currentIndex})),n=t.contentItems.find((function(e){return e.index===t.currentIndex}));if(!e||!n)return;e.isCompleted&&(e.isCompleted=!1,e.isSkip=!1,e.el.classList.remove("success","skipped")),n.isCompleted&&(n.isCompleted=!1,n.isSkip=!1,n.el.classList.remove("success","skipped")),"linear"===t.mode&&t.currentIndex!==t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display=""),t.completeStepBtn&&(t.completeStepBtn.style.display="")),t.showSkipButton(),t.showFinishButton(),t.showCompleteStepButton()}})))},e.prototype.handleBackButtonClick=function(){1!==this.currentIndex&&("linear"===this.mode&&this.removeOptionalClasses(),this.currentIndex--,"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.fireEvent("back",this.currentIndex),this.dispatch("back.hs.stepper",this.el,this.currentIndex))},e.prototype.checkForTheFirstStep=function(){1===this.currentIndex?this.setToDisabled(this.backBtn):this.setToNonDisabled(this.backBtn)},e.prototype.setToDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")},e.prototype.setToNonDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.removeAttribute("disabled"),t.classList.remove("disabled")},e.prototype.buildNextButton=function(){var t=this;this.nextBtn&&this.nextBtn.addEventListener("click",(function(){var e;if(t.fireEvent("beforeNext",t.currentIndex),t.dispatch("beforeNext.hs.stepper",t.el,t.currentIndex),null===(e=t.getNavItem(t.currentIndex))||void 0===e?void 0:e.isProcessed)return t.disableAll(),!1;t.goToNext()}))},e.prototype.unsetProcessedNavItemActions=function(t){t.isProcessed=!1,t.el.classList.remove("processed")},e.prototype.handleNextButtonClick=function(t){if(void 0===t&&(t=!0),t)this.currentIndex===this.totalSteps?this.currentIndex=1:this.currentIndex++;else{var e=this.getUncompletedSteps();if(1===e.length){var n=e[0].index;this.currentIndex=n}else{if(this.currentIndex===this.totalSteps)return;this.currentIndex++}}"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton(),this.showFinishButton(),this.showCompleteStepButton(),this.fireEvent("next",this.currentIndex),this.dispatch("next.hs.stepper",this.el,this.currentIndex)},e.prototype.removeOptionalClasses=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=this.contentItems.find((function(e){return e.index===t.currentIndex}));e.isSkip=!1,e.hasError=!1,e.isDisabled=!1,n.isSkip=!1,e.el.classList.remove("skipped","success","error"),n.el.classList.remove("skipped","success","error")},e.prototype.buildSkipButton=function(){var t=this;this.skipBtn&&(this.showSkipButton(),this.skipBtn.addEventListener("click",(function(){t.handleSkipButtonClick(),"linear"===t.mode&&t.currentIndex===t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display="none"),t.completeStepBtn&&(t.completeStepBtn.style.display="none"),t.finishBtn&&(t.finishBtn.style.display=""))})))},e.prototype.setSkipItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),i=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&i&&(this.setSkipItemActions(n),this.setSkipItemActions(i))},e.prototype.setSkipItemActions=function(t){t.isSkip=!0,t.el.classList.add("skipped")},e.prototype.showSkipButton=function(){var t=this;if(this.skipBtn){var e=this.navItems.find((function(e){return e.index===t.currentIndex})).isOptional;this.skipBtn.style.display=e?"":"none"}},e.prototype.handleSkipButtonClick=function(){this.setSkipItem(),this.handleNextButtonClick(),this.fireEvent("skip",this.currentIndex),this.dispatch("skip.hs.stepper",this.el,this.currentIndex)},e.prototype.buildCompleteStepButton=function(){var t=this;this.completeStepBtn&&(this.completeStepBtnDefaultText=this.completeStepBtn.innerText,this.completeStepBtn.addEventListener("click",(function(){return t.handleCompleteStepButtonClick()})))},e.prototype.changeTextAndDisableCompleteButtonIfStepCompleted=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=JSON.parse(this.completeStepBtn.getAttribute("data-hs-stepper-complete-step-btn")).completedText;e&&(e.isCompleted?(this.completeStepBtn.innerText=n||this.completeStepBtnDefaultText,this.completeStepBtn.setAttribute("disabled","disabled"),this.completeStepBtn.classList.add("disabled")):(this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")))},e.prototype.setCompleteItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),i=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&i&&(this.setCompleteItemActions(n),this.setCompleteItemActions(i))},e.prototype.setCompleteItemActions=function(t){t.isCompleted=!0,t.el.classList.add("success")},e.prototype.showCompleteStepButton=function(){this.completeStepBtn&&(1===this.getUncompletedSteps().length?this.completeStepBtn.style.display="none":this.completeStepBtn.style.display="")},e.prototype.handleCompleteStepButtonClick=function(){this.setCompleteItem(),this.fireEvent("complete",this.currentIndex),this.dispatch("complete.hs.stepper",this.el,this.currentIndex),this.handleNextButtonClick(!1),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton()},e.prototype.buildFinishButton=function(){var t=this;this.finishBtn&&(this.isCompleted&&this.setCompleted(),this.finishBtn.addEventListener("click",(function(){return t.handleFinishButtonClick()})))},e.prototype.setCompleted=function(){this.el.classList.add("completed")},e.prototype.unsetCompleted=function(){this.el.classList.remove("completed")},e.prototype.showFinishButton=function(){this.finishBtn&&(1===this.getUncompletedSteps().length?this.finishBtn.style.display="":this.finishBtn.style.display="none")},e.prototype.handleFinishButtonClick=function(){var t=this,e=this.getUncompletedSteps(),n=this.getUncompletedSteps(!0),i=this.contentItems.find((function(t){return t.isFinal})).el;e.length&&e.forEach((function(e){var n=e.index;return t.setCompleteItem(n)})),this.currentIndex=this.totalSteps,this.setCurrentNavItem(),this.hideAllContentItems();var s=this.navItems.find((function(e){return e.index===t.currentIndex}));(s?s.el:null).classList.remove("active"),i.style.display="block",this.backBtn&&(this.backBtn.style.display="none"),this.nextBtn&&(this.nextBtn.style.display="none"),this.skipBtn&&(this.skipBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"),this.finishBtn&&(this.finishBtn.style.display="none"),this.resetBtn&&(this.resetBtn.style.display=""),n.length<=1&&(this.isCompleted=!0,this.setCompleted()),this.fireEvent("finish",this.currentIndex),this.dispatch("finish.hs.stepper",this.el,this.currentIndex)},e.prototype.buildResetButton=function(){var t=this;this.resetBtn&&this.resetBtn.addEventListener("click",(function(){return t.handleResetButtonClick()}))},e.prototype.handleResetButtonClick=function(){var t=this;this.backBtn&&(this.backBtn.style.display=""),this.nextBtn&&(this.nextBtn.style.display=""),this.completeStepBtn&&(this.completeStepBtn.style.display="",this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")),this.resetBtn&&(this.resetBtn.style.display="none"),this.navItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentNavItemActions(n),n.classList.remove("success","skipped")})),this.contentItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentContentItemActions(n),n.classList.remove("success","skipped")})),this.currentIndex=1,this.setCurrentNavItem(),this.setCurrentContentItem(),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.unsetCompleted(),this.isCompleted=!1,this.fireEvent("reset",this.currentIndex),this.dispatch("reset.hs.stepper",this.el,this.currentIndex)},e.prototype.setProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.setProcessedNavItemActions(e)},e.prototype.unsetProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.unsetProcessedNavItemActions(e)},e.prototype.goToNext=function(){"linear"===this.mode&&this.setCompleteItem(),this.handleNextButtonClick("linear"!==this.mode),"linear"===this.mode&&this.currentIndex===this.totalSteps&&(this.nextBtn&&(this.nextBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"))},e.prototype.disableButtons=function(){this.backBtn&&this.setToDisabled(this.backBtn),this.nextBtn&&this.setToDisabled(this.nextBtn)},e.prototype.enableButtons=function(){this.backBtn&&this.setToNonDisabled(this.backBtn),this.nextBtn&&this.setToNonDisabled(this.nextBtn)},e.prototype.setErrorNavItem=function(t){var e=this.getNavItem(t);e&&this.setErrorNavItemActions(e)},e.getInstance=function(t,e){var n=window.$hsStepperCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsStepperCollection||(window.$hsStepperCollection=[]),document.querySelectorAll("[data-hs-stepper]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSStepper=r,e.default=r}},e={};return function n(i){var s=e[i];if(void 0!==s)return s.exports;var o=e[i]={exports:{}};return t[i].call(o.exports,o,o.exports,n),o.exports}(957)})())); \ No newline at end of file diff --git a/dist/stepper.js.LICENSE.txt b/dist/stepper.js.LICENSE.txt new file mode 100644 index 0000000..59a3a9e --- /dev/null +++ b/dist/stepper.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSStepper + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/strong-password.js b/dist/strong-password.js new file mode 100644 index 0000000..b2f48e3 --- /dev/null +++ b/dist/strong-password.js @@ -0,0 +1,2 @@ +/*! For license information please see strong-password.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 n=e();for(var s in n)("object"==typeof exports?exports:t)[s]=n[s]}}(self,(()=>(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var s=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(s)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(s){s.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var s="";return t.classList.forEach((function(t){t.includes(e)&&(s=t)})),s.match(/:(.*)]/)?s.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,s=this;return void 0===e&&(e=200),function(){for(var i=[],o=0;o=u:"top"===n?l>=u:l>=u||c>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var s="";return t.classList.forEach((function(t){t.includes(e)&&(s=t)})),s.match(/:(.*)]/)?s.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},983:function(t,e,n){var s,i=this&&this.__extends||(s=function(t,e){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},s(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),o=this&&this.__assign||function(){return o=Object.assign||function(t){for(var e,n=1,s=arguments.length;n?@[\\\\\\]^_`{|}~",s.target&&s.init(),s}return i(e,t),e.prototype.init=function(){this.createCollection(window.$hsStrongPasswordCollection,this),this.availableChecks.length&&this.build()},e.prototype.build=function(){var t=this;this.buildStrips(),this.hints&&this.buildHints(),this.setStrength(this.target.value),this.target.addEventListener("input",(function(e){t.setStrength(e.target.value)}))},e.prototype.buildStrips=function(){if(this.stripClasses)for(var t=0;t");this.classToClassList(this.stripClasses,e),this.el.append(e)}},e.prototype.buildHints=function(){var t=this;this.weakness=this.hints.querySelector("[data-hs-strong-password-hints-weakness-text]")||null,this.rules=Array.from(this.hints.querySelectorAll("[data-hs-strong-password-hints-rule-text]"))||null,this.rules.forEach((function(e){var n,s=e.getAttribute("data-hs-strong-password-hints-rule-text");(null===(n=t.checksExclude)||void 0===n?void 0:n.includes(s))&&e.remove()})),this.weakness&&this.buildWeakness(),this.rules&&this.buildRules(),"popover"===this.mode&&(this.target.addEventListener("focus",(function(){t.isOpened=!0,t.hints.classList.remove("hidden"),t.hints.classList.add("block"),t.recalculateDirection()})),this.target.addEventListener("blur",(function(){t.isOpened=!1,t.hints.classList.remove("block","bottom-full","top-full"),t.hints.classList.add("hidden"),t.hints.style.marginTop="",t.hints.style.marginBottom=""})))},e.prototype.buildWeakness=function(){var t=this;this.checkStrength(this.target.value),this.setWeaknessText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setWeaknessText()}))}))},e.prototype.buildRules=function(){var t=this;this.setRulesText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setRulesText()}))}))},e.prototype.setWeaknessText=function(){var t=this.weakness.getAttribute("data-hs-strong-password-hints-weakness-text"),e=JSON.parse(t);this.weakness.textContent=e[this.strength]},e.prototype.setRulesText=function(){var t=this;this.rules.forEach((function(e){var n=e.getAttribute("data-hs-strong-password-hints-rule-text");t.checkIfPassed(e,t.passedRules.has(n))}))},e.prototype.togglePopover=function(){var t=this.el.querySelector(".popover");t&&t.classList.toggle("show")},e.prototype.checkStrength=function(t){var e=new Set,n={lowercase:/[a-z]+/,uppercase:/[A-Z]+/,numbers:/[0-9]+/,"special-characters":new RegExp("[".concat(this.specialCharactersSet,"]"))},s=0;return this.availableChecks.includes("lowercase")&&t.match(n.lowercase)&&(s+=1,e.add("lowercase")),this.availableChecks.includes("uppercase")&&t.match(n.uppercase)&&(s+=1,e.add("uppercase")),this.availableChecks.includes("numbers")&&t.match(n.numbers)&&(s+=1,e.add("numbers")),this.availableChecks.includes("special-characters")&&t.match(n["special-characters"])&&(s+=1,e.add("special-characters")),this.availableChecks.includes("min-length")&&t.length>=this.minLength&&(s+=1,e.add("min-length")),t.length||(s=0),s===this.availableChecks.length?this.el.classList.add("accepted"):this.el.classList.remove("accepted"),this.strength=s,this.passedRules=e,{strength:this.strength,rules:this.passedRules}},e.prototype.checkIfPassed=function(t,e){void 0===e&&(e=!1);var n=t.querySelector("[data-check]"),s=t.querySelector("[data-uncheck]");e?(t.classList.add("active"),n.classList.remove("hidden"),s.classList.add("hidden")):(t.classList.remove("active"),n.classList.add("hidden"),s.classList.remove("hidden"))},e.prototype.setStrength=function(t){var e=this.checkStrength(t),n=e.strength,s={strength:n,rules:e.rules};this.hideStrips(n),this.fireEvent("change",s),this.dispatch("change.hs.strongPassword",this.el,s)},e.prototype.hideStrips=function(t){Array.from(this.el.children).forEach((function(e,n){n(()=>{"use strict";var t={190:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SELECT_ACCESSIBILITY_KEY_SET=e.TABS_ACCESSIBILITY_KEY_SET=e.OVERLAY_ACCESSIBILITY_KEY_SET=e.DROPDOWN_ACCESSIBILITY_KEY_SET=e.POSITIONS=void 0,e.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},e.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],e.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],e.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],e.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var r=[],i=0;i=u:"top"===n?c>=u:c>=u||l>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},949:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var i=n(737),s=n(190),a=function(t){function e(e,n,o){var r=t.call(this,e,n,o)||this;return r.toggles=r.el.querySelectorAll("[data-hs-tab]"),r.extraToggleId=r.el.getAttribute("hs-data-tab-select"),r.extraToggle=document.querySelector(r.extraToggleId),r.current=Array.from(r.toggles).find((function(t){return t.classList.contains("active")})),r.currentContentId=r.current.getAttribute("data-hs-tab"),r.currentContent=document.querySelector(r.currentContentId),r.prev=null,r.prevContentId=null,r.prevContent=null,r.init(),r}return r(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsTabsCollection,this),this.toggles.forEach((function(e){e.addEventListener("click",(function(){return t.open(e)}))})),this.extraToggle&&this.extraToggle.addEventListener("change",(function(e){return t.change(e)}))},e.prototype.open=function(t){this.prev=this.current,this.prevContentId=this.currentContentId,this.prevContent=this.currentContent,this.current=t,this.currentContentId=this.current.getAttribute("data-hs-tab"),this.currentContent=document.querySelector(this.currentContentId),this.prev.classList.remove("active"),this.prevContent.classList.add("hidden"),this.current.classList.add("active"),this.currentContent.classList.remove("hidden"),this.fireEvent("change",{el:t,prev:this.prevContentId,current:this.currentContentId}),this.dispatch("change.hs.tab",t,{el:t,prev:this.prevContentId,current:this.currentContentId})},e.prototype.change=function(t){var e=document.querySelector('[data-hs-tab="'.concat(t.target.value,'"]'));e&&e.click()},e.getInstance=function(t,e){var n=window.$hsTabsCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e.open=function(t){var e=window.$hsTabsCollection.find((function(e){return Array.from(e.element.toggles).includes("string"==typeof t?document.querySelector(t):t)})),n=Array.from(e.element.toggles).find((function(e){return e===("string"==typeof t?document.querySelector(t):t)}));n&&!n.classList.contains("active")&&e.element.open(n)},e.accessibility=function(t){var e=document.querySelector("[data-hs-tab]:focus");if(e&&s.TABS_ACCESSIBILITY_KEY_SET.includes(t.code)&&!t.metaKey){var n=e.closest('[role="tablist"]').getAttribute("data-hs-tabs-vertical");switch(t.preventDefault(),console.log("Key code:",t.code),t.code){case"true"===n?"ArrowUp":"ArrowLeft":this.onArrow();break;case"true"===n?"ArrowDown":"ArrowRight":this.onArrow(!1);break;case"Home":this.onStartEnd();break;case"End":this.onStartEnd(!1)}}},e.onArrow=function(t){void 0===t&&(t=!0);var e=document.querySelector("[data-hs-tab]:focus").closest('[role="tablist"]'),n=window.$hsTabsCollection.find((function(t){return t.element.el===e}));if(n){var o=t?Array.from(n.element.toggles).reverse():Array.from(n.element.toggles),r=o.find((function(t){return document.activeElement===t})),i=o.findIndex((function(t){return t===r}));o[i=i+1(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],r=0;r=c:"top"===n?u>=c:u>=c||l>=c},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},87:function(t,e,n){var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,o=arguments.length;n(()=>{"use strict";var t={737:(t,e)=>{Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e,o){this.el=t,this.options=e,this.events=o,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var o;t.push({id:(null===(o=null==e?void 0:e.el)||void 0===o?void 0:o.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,o){void 0===o&&(o=null);var n=new CustomEvent(t,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(n)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var o=function(){e(),t.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",o,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function o(n){n.target===t&&(t.removeEventListener("transitionend",o),e())}))},t.prototype.getClassProperty=function(t,e,o){return void 0===o&&(o=""),(window.getComputedStyle(t).getPropertyValue(e)||o).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,o){void 0===o&&(o="");var n="";return t.classList.forEach((function(t){t.includes(e)&&(n=t)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,o){void 0===o&&(o=" "),t.split(o).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var o,n=this;return void 0===e&&(e=200),function(){for(var i=[],r=0;r=u:"top"===o?l>=u:l>=u||c>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=o,window.HSStaticMethods={afterTransition:function(t,e){var o=function(){e(),t.removeEventListener("transitionend",o,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",o,!0):e()},getClassPropertyAlt:function(t,e,o){void 0===o&&(o="");var n="";return t.classList.forEach((function(t){t.includes(e)&&(n=t)})),n.match(/:(.*)]/)?n.match(/:(.*)]/)[1]:o},getClassProperty:function(t,e,o){return void 0===o&&(o=""),(window.getComputedStyle(t).getPropertyValue(e)||o).replace(" ","")}}},366:function(t,e,o){var n,i=this&&this.__extends||(n=function(t,e){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])},n(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,o=1,n=arguments.length;o1&&!!n.el.closest("[data-hs-toggle-password-group]"),n.target&&n.init(),n}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsTogglePasswordCollection,this),this.isShown?this.show():this.hide(),this.el.addEventListener(this.eventType,(function(){t.isShown?t.hide():t.show(),t.fireEvent("toggle",t.target),t.dispatch("toggle.hs.toggle-select",t.el,t.target)}))},e.prototype.getMultipleToggles=function(){var t=this.el.closest("[data-hs-toggle-password-group]").querySelectorAll("[data-hs-toggle-password]"),o=[];return t.forEach((function(t){o.push(e.getInstance(t))})),o},e.prototype.show=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!0)})),this.el.closest("[data-hs-toggle-password-group]").classList.add("active")):(this.isShown=!0,this.el.classList.add("active")),this.target.forEach((function(t){t.type="text"}))},e.prototype.hide=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!1)})),this.el.closest("[data-hs-toggle-password-group]").classList.remove("active")):(this.isShown=!1,this.el.classList.remove("active")),this.target.forEach((function(t){t.type="password"}))},e.getInstance=function(t,e){var o=window.$hsTogglePasswordCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return o?e?o:o.element:null},e}(o(737).default);window.addEventListener("load",(function(){window.$hsTogglePasswordCollection||(window.$hsTogglePasswordCollection=[]),document.querySelectorAll("[data-hs-toggle-password]:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSTogglePassword=s,e.default=s}},e={};return function o(n){var i=e[n];if(void 0!==i)return i.exports;var r=e[n]={exports:{}};return t[n].call(r.exports,r,r.exports,o),r.exports}(366)})())); \ No newline at end of file diff --git a/dist/toggle-password.js.LICENSE.txt b/dist/toggle-password.js.LICENSE.txt new file mode 100644 index 0000000..2ea11bf --- /dev/null +++ b/dist/toggle-password.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSTogglePassword + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/dist/toggle-switch.js b/dist/toggle-switch.js new file mode 100644 index 0000000..03650f5 --- /dev/null +++ b/dist/toggle-switch.js @@ -0,0 +1,215 @@ +/*! For license information please see toggle-switch.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 o = e(); + for (var n in o) ('object' == typeof exports ? exports : t)[n] = o[n]; + } +})(self, () => + (() => { + 'use strict'; + var t = { + 737: (t, e) => { + Object.defineProperty(e, '__esModule', { value: !0 }); + var o = (function () { + function t(t, e, o) { + (this.el = t), + (this.options = e), + (this.events = o), + (this.el = t), + (this.options = e), + (this.events = {}); + } + return ( + (t.prototype.isIOS = function () { + return ( + !!/iPad|iPhone|iPod/.test(navigator.platform) || + (navigator.maxTouchPoints && + navigator.maxTouchPoints > 2 && + /MacIntel/.test(navigator.platform)) + ); + }), + (t.prototype.isIpadOS = function () { + return ( + navigator.maxTouchPoints && + navigator.maxTouchPoints > 2 && + /MacIntel/.test(navigator.platform) + ); + }), + (t.prototype.fireEvent = function (t, e) { + void 0 === e && (e = null), + this.events.hasOwnProperty(t) && this.events[t](e); + }), + (t.prototype.dispatch = function (t, e, o) { + void 0 === o && (o = null); + var n = new CustomEvent(t, { + detail: { payload: o }, + bubbles: !0, + cancelable: !0, + composed: !1, + }); + e.dispatchEvent(n); + }), + (t.prototype.on = function (t, e) { + this.events[t] = e; + }), + (t.prototype.afterTransition = function (t, e) { + var o = function () { + e(), t.removeEventListener('transitionend', o, !0); + }; + 'all 0s ease 0s' !== + window.getComputedStyle(t, null).getPropertyValue('transition') + ? t.addEventListener('transitionend', o, !0) + : e(); + }), + (t.prototype.getClassProperty = function (t, e, o) { + return ( + void 0 === o && (o = ''), + (window.getComputedStyle(t).getPropertyValue(e) || o).replace( + ' ', + '', + ) + ); + }), + (t.prototype.getClassPropertyAlt = function (t, e, o) { + void 0 === o && (o = ''); + var n = ''; + return ( + t.classList.forEach(function (t) { + t.includes(e) && (n = t); + }), + n.match(/:(.*)]/) ? n.match(/:(.*)]/)[1] : o + ); + }), + t + ); + })(); + (e.default = o), + (window.HSStaticMethods = { + getClassPropertyAlt: function (t, e, o) { + void 0 === o && (o = ''); + var n = ''; + return ( + t.classList.forEach(function (t) { + t.includes(e) && (n = t); + }), + n.match(/:(.*)]/) ? n.match(/:(.*)]/)[1] : o + ); + }, + }); + }, + 677: function (t, e, o) { + var n, + i = + (this && this.__extends) || + ((n = function (t, e) { + return ( + (n = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (t, e) { + t.__proto__ = e; + }) || + function (t, e) { + for (var o in e) + Object.prototype.hasOwnProperty.call(e, o) && + (t[o] = e[o]); + }), + n(t, e) + ); + }), + function (t, e) { + if ('function' != typeof e && null !== e) + throw new TypeError( + 'Class extends value ' + + String(e) + + ' is not a constructor or null', + ); + function o() { + this.constructor = t; + } + n(t, e), + (t.prototype = + null === e + ? Object.create(e) + : ((o.prototype = e.prototype), new o())); + }), + r = + (this && this.__assign) || + function () { + return ( + (r = + Object.assign || + function (t) { + for (var e, o = 1, n = arguments.length; o < n; o++) + for (var i in (e = arguments[o])) + Object.prototype.hasOwnProperty.call(e, i) && + (t[i] = e[i]); + return t; + }), + r.apply(this, arguments) + ); + }; + Object.defineProperty(e, '__esModule', { value: !0 }); + var s = (function (t) { + function e(e, o) { + var n = t.call(this, e, o) || this, + i = e.getAttribute('data-hs-toggle-switch'), + s = i ? JSON.parse(i) : {}, + a = r(r({}, s), o); + return ( + (n.target = (null == a ? void 0 : a.target) || null), + n.target && n.init(), + n + ); + } + return ( + i(e, t), + (e.prototype.init = function () { + window.$hsToggleSwitchCollection.push({ + id: window.$hsToggleSwitchCollection.length + 1, + element: this, + }); + }), + (e.getInstance = function (t) { + var e = window.$hsToggleSwitchCollection.find(function (e) { + return ( + e.element.el === + ('string' == typeof t ? document.querySelector(t) : t) + ); + }); + return e ? e.element : null; + }), + e + ); + })(o(737).default); + window.addEventListener('load', function () { + window.$hsToggleSwitchCollection || + (window.$hsToggleSwitchCollection = []), + document + .querySelectorAll( + '[data-hs-toggle-switch]:not(.--prevent-on-load-init)', + ) + .forEach(function (t) { + return new s(t); + }), + console.log( + 'Toggle switch collection:', + window.$hsToggleSwitchCollection, + ); + }), + (t.exports.HSToggleSwitch = s), + (e.default = s); + }, + }, + e = {}; + return (function o(n) { + var i = e[n]; + if (void 0 !== i) return i.exports; + var r = (e[n] = { exports: {} }); + return t[n].call(r.exports, r, r.exports, o), r.exports; + })(677); + })(), +); diff --git a/dist/tooltip.js b/dist/tooltip.js new file mode 100644 index 0000000..7172e56 --- /dev/null +++ b/dist/tooltip.js @@ -0,0 +1,2 @@ +/*! For license information please see tooltip.js.LICENSE.txt */ +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(self,(()=>(()=>{"use strict";var e={492:(e,t,n)=>{n.r(t),n.d(t,{afterMain:()=>O,afterRead:()=>b,afterWrite:()=>L,applyStyles:()=>I,arrow:()=>Q,auto:()=>s,basePlacements:()=>c,beforeMain:()=>w,beforeRead:()=>g,beforeWrite:()=>E,bottom:()=>r,clippingParents:()=>p,computeStyles:()=>ne,createPopper:()=>_e,createPopperBase:()=>je,createPopperLite:()=>Ie,detectOverflow:()=>ge,end:()=>l,eventListeners:()=>re,flip:()=>ye,hide:()=>xe,left:()=>a,main:()=>x,modifierPhases:()=>P,offset:()=>Oe,placements:()=>v,popper:()=>d,popperGenerator:()=>Ce,popperOffsets:()=>Ee,preventOverflow:()=>Se,read:()=>y,reference:()=>h,right:()=>i,start:()=>f,top:()=>o,variationPlacements:()=>m,viewport:()=>u,write:()=>S});var o="top",r="bottom",i="right",a="left",s="auto",c=[o,r,i,a],f="start",l="end",p="clippingParents",u="viewport",d="popper",h="reference",m=c.reduce((function(e,t){return e.concat([t+"-"+f,t+"-"+l])}),[]),v=[].concat(c,[s]).reduce((function(e,t){return e.concat([t,t+"-"+f,t+"-"+l])}),[]),g="beforeRead",y="read",b="afterRead",w="beforeMain",x="main",O="afterMain",E="beforeWrite",S="write",L="afterWrite",P=[g,y,b,w,x,O,E,S,L];function T(e){return e?(e.nodeName||"").toLowerCase():null}function A(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function C(e){return e instanceof A(e).Element||e instanceof Element}function j(e){return e instanceof A(e).HTMLElement||e instanceof HTMLElement}function _(e){return"undefined"!=typeof ShadowRoot&&(e instanceof A(e).ShadowRoot||e instanceof ShadowRoot)}const I={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},o=t.attributes[e]||{},r=t.elements[e];j(r)&&T(r)&&(Object.assign(r.style,n),Object.keys(o).forEach((function(e){var t=o[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var o=t.elements[e],r=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});j(o)&&T(o)&&(Object.assign(o.style,i),Object.keys(r).forEach((function(e){o.removeAttribute(e)})))}))}},requires:["computeStyles"]};function M(e){return e.split("-")[0]}var D=Math.max,k=Math.min,B=Math.round;function H(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function R(){return!/^((?!chrome|android).)*safari/i.test(H())}function W(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var o=e.getBoundingClientRect(),r=1,i=1;t&&j(e)&&(r=e.offsetWidth>0&&B(o.width)/e.offsetWidth||1,i=e.offsetHeight>0&&B(o.height)/e.offsetHeight||1);var a=(C(e)?A(e):window).visualViewport,s=!R()&&n,c=(o.left+(s&&a?a.offsetLeft:0))/r,f=(o.top+(s&&a?a.offsetTop:0))/i,l=o.width/r,p=o.height/i;return{width:l,height:p,top:f,right:c+l,bottom:f+p,left:c,x:c,y:f}}function Y(e){var t=W(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&_(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function V(e){return A(e).getComputedStyle(e)}function N(e){return["table","td","th"].indexOf(T(e))>=0}function K(e){return((C(e)?e.ownerDocument:e.document)||window.document).documentElement}function U(e){return"html"===T(e)?e:e.assignedSlot||e.parentNode||(_(e)?e.host:null)||K(e)}function $(e){return j(e)&&"fixed"!==V(e).position?e.offsetParent:null}function F(e){for(var t=A(e),n=$(e);n&&N(n)&&"static"===V(n).position;)n=$(n);return n&&("html"===T(n)||"body"===T(n)&&"static"===V(n).position)?t:n||function(e){var t=/firefox/i.test(H());if(/Trident/i.test(H())&&j(e)&&"fixed"===V(e).position)return null;var n=U(e);for(_(n)&&(n=n.host);j(n)&&["html","body"].indexOf(T(n))<0;){var o=V(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||t&&"filter"===o.willChange||t&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(e)||t}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e,t,n){return D(e,k(t,n))}function G(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function J(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}const Q={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,s=e.name,f=e.options,l=n.elements.arrow,p=n.modifiersData.popperOffsets,u=M(n.placement),d=z(u),h=[a,i].indexOf(u)>=0?"height":"width";if(l&&p){var m=function(e,t){return G("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:J(e,c))}(f.padding,n),v=Y(l),g="y"===d?o:a,y="y"===d?r:i,b=n.rects.reference[h]+n.rects.reference[d]-p[d]-n.rects.popper[h],w=p[d]-n.rects.reference[d],x=F(l),O=x?"y"===d?x.clientHeight||0:x.clientWidth||0:0,E=b/2-w/2,S=m[g],L=O-v[h]-m[y],P=O/2-v[h]/2+E,T=X(S,P,L),A=d;n.modifiersData[s]=((t={})[A]=T,t.centerOffset=T-P,t)}},effect:function(e){var t=e.state,n=e.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=t.elements.popper.querySelector(o)))&&q(t.elements.popper,o)&&(t.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(e){return e.split("-")[1]}var ee={top:"auto",right:"auto",bottom:"auto",left:"auto"};function te(e){var t,n=e.popper,s=e.popperRect,c=e.placement,f=e.variation,p=e.offsets,u=e.position,d=e.gpuAcceleration,h=e.adaptive,m=e.roundOffsets,v=e.isFixed,g=p.x,y=void 0===g?0:g,b=p.y,w=void 0===b?0:b,x="function"==typeof m?m({x:y,y:w}):{x:y,y:w};y=x.x,w=x.y;var O=p.hasOwnProperty("x"),E=p.hasOwnProperty("y"),S=a,L=o,P=window;if(h){var T=F(n),C="clientHeight",j="clientWidth";T===A(n)&&"static"!==V(T=K(n)).position&&"absolute"===u&&(C="scrollHeight",j="scrollWidth"),(c===o||(c===a||c===i)&&f===l)&&(L=r,w-=(v&&T===P&&P.visualViewport?P.visualViewport.height:T[C])-s.height,w*=d?1:-1),c!==a&&(c!==o&&c!==r||f!==l)||(S=i,y-=(v&&T===P&&P.visualViewport?P.visualViewport.width:T[j])-s.width,y*=d?1:-1)}var _,I=Object.assign({position:u},h&&ee),M=!0===m?function(e,t){var n=e.x,o=e.y,r=t.devicePixelRatio||1;return{x:B(n*r)/r||0,y:B(o*r)/r||0}}({x:y,y:w},A(n)):{x:y,y:w};return y=M.x,w=M.y,d?Object.assign({},I,((_={})[L]=E?"0":"",_[S]=O?"0":"",_.transform=(P.devicePixelRatio||1)<=1?"translate("+y+"px, "+w+"px)":"translate3d("+y+"px, "+w+"px, 0)",_)):Object.assign({},I,((t={})[L]=E?w+"px":"",t[S]=O?y+"px":"",t.transform="",t))}const ne={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,o=n.gpuAcceleration,r=void 0===o||o,i=n.adaptive,a=void 0===i||i,s=n.roundOffsets,c=void 0===s||s,f={placement:M(t.placement),variation:Z(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,te(Object.assign({},f,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,te(Object.assign({},f,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var oe={passive:!0};const re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,o=e.options,r=o.scroll,i=void 0===r||r,a=o.resize,s=void 0===a||a,c=A(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach((function(e){e.addEventListener("scroll",n.update,oe)})),s&&c.addEventListener("resize",n.update,oe),function(){i&&f.forEach((function(e){e.removeEventListener("scroll",n.update,oe)})),s&&c.removeEventListener("resize",n.update,oe)}},data:{}};var ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function ce(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function fe(e){var t=A(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function le(e){return W(K(e)).left+fe(e).scrollLeft}function pe(e){var t=V(e),n=t.overflow,o=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+o)}function ue(e){return["html","body","#document"].indexOf(T(e))>=0?e.ownerDocument.body:j(e)&&pe(e)?e:ue(U(e))}function de(e,t){var n;void 0===t&&(t=[]);var o=ue(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),i=A(o),a=r?[i].concat(i.visualViewport||[],pe(o)?o:[]):o,s=t.concat(a);return r?s:s.concat(de(U(a)))}function he(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function me(e,t,n){return t===u?he(function(e,t){var n=A(e),o=K(e),r=n.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,c=0;if(r){i=r.width,a=r.height;var f=R();(f||!f&&"fixed"===t)&&(s=r.offsetLeft,c=r.offsetTop)}return{width:i,height:a,x:s+le(e),y:c}}(e,n)):C(t)?function(e,t){var n=W(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):he(function(e){var t,n=K(e),o=fe(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=D(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=D(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-o.scrollLeft+le(e),c=-o.scrollTop;return"rtl"===V(r||n).direction&&(s+=D(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:s,y:c}}(K(e)))}function ve(e){var t,n=e.reference,s=e.element,c=e.placement,p=c?M(c):null,u=c?Z(c):null,d=n.x+n.width/2-s.width/2,h=n.y+n.height/2-s.height/2;switch(p){case o:t={x:d,y:n.y-s.height};break;case r:t={x:d,y:n.y+n.height};break;case i:t={x:n.x+n.width,y:h};break;case a:t={x:n.x-s.width,y:h};break;default:t={x:n.x,y:n.y}}var m=p?z(p):null;if(null!=m){var v="y"===m?"height":"width";switch(u){case f:t[m]=t[m]-(n[v]/2-s[v]/2);break;case l:t[m]=t[m]+(n[v]/2-s[v]/2)}}return t}function ge(e,t){void 0===t&&(t={});var n=t,a=n.placement,s=void 0===a?e.placement:a,f=n.strategy,l=void 0===f?e.strategy:f,m=n.boundary,v=void 0===m?p:m,g=n.rootBoundary,y=void 0===g?u:g,b=n.elementContext,w=void 0===b?d:b,x=n.altBoundary,O=void 0!==x&&x,E=n.padding,S=void 0===E?0:E,L=G("number"!=typeof S?S:J(S,c)),P=w===d?h:d,A=e.rects.popper,_=e.elements[O?P:w],I=function(e,t,n,o){var r="clippingParents"===t?function(e){var t=de(U(e)),n=["absolute","fixed"].indexOf(V(e).position)>=0&&j(e)?F(e):e;return C(n)?t.filter((function(e){return C(e)&&q(e,n)&&"body"!==T(e)})):[]}(e):[].concat(t),i=[].concat(r,[n]),a=i[0],s=i.reduce((function(t,n){var r=me(e,n,o);return t.top=D(r.top,t.top),t.right=k(r.right,t.right),t.bottom=k(r.bottom,t.bottom),t.left=D(r.left,t.left),t}),me(e,a,o));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(C(_)?_:_.contextElement||K(e.elements.popper),v,y,l),M=W(e.elements.reference),B=ve({reference:M,element:A,strategy:"absolute",placement:s}),H=he(Object.assign({},A,B)),R=w===d?H:M,Y={top:I.top-R.top+L.top,bottom:R.bottom-I.bottom+L.bottom,left:I.left-R.left+L.left,right:R.right-I.right+L.right},N=e.modifiersData.offset;if(w===d&&N){var $=N[s];Object.keys(Y).forEach((function(e){var t=[i,r].indexOf(e)>=0?1:-1,n=[o,r].indexOf(e)>=0?"y":"x";Y[e]+=$[n]*t}))}return Y}const ye={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,l=e.name;if(!t.modifiersData[l]._skip){for(var p=n.mainAxis,u=void 0===p||p,d=n.altAxis,h=void 0===d||d,g=n.fallbackPlacements,y=n.padding,b=n.boundary,w=n.rootBoundary,x=n.altBoundary,O=n.flipVariations,E=void 0===O||O,S=n.allowedAutoPlacements,L=t.options.placement,P=M(L),T=g||(P!==L&&E?function(e){if(M(e)===s)return[];var t=ae(e);return[ce(e),t,ce(t)]}(L):[ae(L)]),A=[L].concat(T).reduce((function(e,n){return e.concat(M(n)===s?function(e,t){void 0===t&&(t={});var n=t,o=n.placement,r=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,l=void 0===f?v:f,p=Z(o),u=p?s?m:m.filter((function(e){return Z(e)===p})):c,d=u.filter((function(e){return l.indexOf(e)>=0}));0===d.length&&(d=u);var h=d.reduce((function(t,n){return t[n]=ge(e,{placement:n,boundary:r,rootBoundary:i,padding:a})[M(n)],t}),{});return Object.keys(h).sort((function(e,t){return h[e]-h[t]}))}(t,{placement:n,boundary:b,rootBoundary:w,padding:y,flipVariations:E,allowedAutoPlacements:S}):n)}),[]),C=t.rects.reference,j=t.rects.popper,_=new Map,I=!0,D=A[0],k=0;k=0,Y=W?"width":"height",q=ge(t,{placement:B,boundary:b,rootBoundary:w,altBoundary:x,padding:y}),V=W?R?i:a:R?r:o;C[Y]>j[Y]&&(V=ae(V));var N=ae(V),K=[];if(u&&K.push(q[H]<=0),h&&K.push(q[V]<=0,q[N]<=0),K.every((function(e){return e}))){D=B,I=!1;break}_.set(B,K)}if(I)for(var U=function(e){var t=A.find((function(t){var n=_.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return D=t,"break"},$=E?3:1;$>0&&"break"!==U($);$--);t.placement!==D&&(t.modifiersData[l]._skip=!0,t.placement=D,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function we(e){return[o,i,r,a].some((function(t){return e[t]>=0}))}const xe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,o=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,a=ge(t,{elementContext:"reference"}),s=ge(t,{altBoundary:!0}),c=be(a,o),f=be(s,r,i),l=we(c),p=we(f);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:f,isReferenceHidden:l,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":p})}},Oe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,s=n.offset,c=void 0===s?[0,0]:s,f=v.reduce((function(e,n){return e[n]=function(e,t,n){var r=M(e),s=[a,o].indexOf(r)>=0?-1:1,c="function"==typeof n?n(Object.assign({},t,{placement:e})):n,f=c[0],l=c[1];return f=f||0,l=(l||0)*s,[a,i].indexOf(r)>=0?{x:l,y:f}:{x:f,y:l}}(n,t.rects,c),e}),{}),l=f[t.placement],p=l.x,u=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=p,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=f}},Ee={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=ve({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},Se={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,s=e.name,c=n.mainAxis,l=void 0===c||c,p=n.altAxis,u=void 0!==p&&p,d=n.boundary,h=n.rootBoundary,m=n.altBoundary,v=n.padding,g=n.tether,y=void 0===g||g,b=n.tetherOffset,w=void 0===b?0:b,x=ge(t,{boundary:d,rootBoundary:h,padding:v,altBoundary:m}),O=M(t.placement),E=Z(t.placement),S=!E,L=z(O),P="x"===L?"y":"x",T=t.modifiersData.popperOffsets,A=t.rects.reference,C=t.rects.popper,j="function"==typeof w?w(Object.assign({},t.rects,{placement:t.placement})):w,_="number"==typeof j?{mainAxis:j,altAxis:j}:Object.assign({mainAxis:0,altAxis:0},j),I=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,B={x:0,y:0};if(T){if(l){var H,R="y"===L?o:a,W="y"===L?r:i,q="y"===L?"height":"width",V=T[L],N=V+x[R],K=V-x[W],U=y?-C[q]/2:0,$=E===f?A[q]:C[q],G=E===f?-C[q]:-A[q],J=t.elements.arrow,Q=y&&J?Y(J):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[R],ne=ee[W],oe=X(0,A[q],Q[q]),re=S?A[q]/2-U-oe-te-_.mainAxis:$-oe-te-_.mainAxis,ie=S?-A[q]/2+U+oe+ne+_.mainAxis:G+oe+ne+_.mainAxis,ae=t.elements.arrow&&F(t.elements.arrow),se=ae?"y"===L?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(H=null==I?void 0:I[L])?H:0,fe=V+ie-ce,le=X(y?k(N,V+re-ce-se):N,V,y?D(K,fe):K);T[L]=le,B[L]=le-V}if(u){var pe,ue="x"===L?o:a,de="x"===L?r:i,he=T[P],me="y"===P?"height":"width",ve=he+x[ue],ye=he-x[de],be=-1!==[o,a].indexOf(O),we=null!=(pe=null==I?void 0:I[P])?pe:0,xe=be?ve:he-A[me]-C[me]-we+_.altAxis,Oe=be?he+A[me]+C[me]-we-_.altAxis:ye,Ee=y&&be?function(e,t,n){var o=X(e,t,n);return o>n?n:o}(xe,he,Oe):X(y?xe:ve,he,y?Oe:ye);T[P]=Ee,B[P]=Ee-he}t.modifiersData[s]=B}},requiresIfExists:["offset"]};function Le(e,t,n){void 0===n&&(n=!1);var o,r,i=j(t),a=j(t)&&function(e){var t=e.getBoundingClientRect(),n=B(t.width)/e.offsetWidth||1,o=B(t.height)/e.offsetHeight||1;return 1!==n||1!==o}(t),s=K(t),c=W(e,a,n),f={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(i||!i&&!n)&&(("body"!==T(t)||pe(s))&&(f=(o=t)!==A(o)&&j(o)?{scrollLeft:(r=o).scrollLeft,scrollTop:r.scrollTop}:fe(o)),j(t)?((l=W(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=le(s))),{x:c.left+f.scrollLeft-l.x,y:c.top+f.scrollTop-l.y,width:c.width,height:c.height}}function Pe(e){var t=new Map,n=new Set,o=[];function r(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var o=t.get(e);o&&r(o)}})),o.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||r(e)})),o}var Te={placement:"bottom",modifiers:[],strategy:"absolute"};function Ae(){for(var e=arguments.length,t=new Array(e),n=0;n{Object.defineProperty(t,"__esModule",{value:!0}),t.SELECT_ACCESSIBILITY_KEY_SET=t.TABS_ACCESSIBILITY_KEY_SET=t.OVERLAY_ACCESSIBILITY_KEY_SET=t.DROPDOWN_ACCESSIBILITY_KEY_SET=t.POSITIONS=void 0,t.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},t.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],t.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],t.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],t.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},737:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t,n){this.el=e,this.options=t,this.events=n,this.el=e,this.options=t,this.events={}}return e.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},e.prototype.createCollection=function(e,t){var n;e.push({id:(null===(n=null==t?void 0:t.el)||void 0===n?void 0:n.id)||e.length+1,element:t})},e.prototype.fireEvent=function(e,t){if(void 0===t&&(t=null),this.events.hasOwnProperty(e))return this.events[e](t)},e.prototype.dispatch=function(e,t,n){void 0===n&&(n=null);var o=new CustomEvent(e,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(o)},e.prototype.on=function(e,t){this.events[e]=t},e.prototype.afterTransition=function(e,t){var n=function(){t(),e.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",n,!0):t()},e.prototype.onTransitionEnd=function(e,t){e.addEventListener("transitionend",(function n(o){o.target===e&&(e.removeEventListener("transitionend",n),t())}))},e.prototype.getClassProperty=function(e,t,n){return void 0===n&&(n=""),(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","")},e.prototype.getClassPropertyAlt=function(e,t,n){void 0===n&&(n="");var o="";return e.classList.forEach((function(e){e.includes(t)&&(o=e)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},e.prototype.htmlToElement=function(e){var t=document.createElement("template");return e=e.trim(),t.innerHTML=e,t.content.firstChild},e.prototype.classToClassList=function(e,t,n){void 0===n&&(n=" "),e.split(n).forEach((function(e){return t.classList.add(e)}))},e.prototype.debounce=function(e,t){var n,o=this;return void 0===t&&(t=200),function(){for(var r=[],i=0;i=l:"top"===n?c>=l:c>=l||f>=l},e.isParentOrElementHidden=function(e){return!!e&&("none"===window.getComputedStyle(e).display||this.isParentOrElementHidden(e.parentElement))},e}();t.default=n,window.HSStaticMethods={afterTransition:function(e,t){var n=function(){t(),e.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",n,!0):t()},getClassPropertyAlt:function(e,t,n){void 0===n&&(n="");var o="";return e.classList.forEach((function(e){e.includes(t)&&(o=e)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(e,t,n){return void 0===n&&(n=""),(window.getComputedStyle(e).getPropertyValue(t)||n).replace(" ","")}}},679:function(e,t,n){var o,r=this&&this.__extends||(o=function(e,t){return o=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])},o(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}o(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,o=arguments.length;n{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(679)})())); \ No newline at end of file diff --git a/dist/tooltip.js.LICENSE.txt b/dist/tooltip.js.LICENSE.txt new file mode 100644 index 0000000..d82d66c --- /dev/null +++ b/dist/tooltip.js.LICENSE.txt @@ -0,0 +1,15 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +/* + * HSTooltip + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ diff --git a/examples/html/ab-a-button-on-gradient-bg.html b/examples/html/ab-a-button-on-gradient-bg.html deleted file mode 100644 index b753703..0000000 --- a/examples/html/ab-a-button-on-gradient-bg.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - A Button on Gradient Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-

- Preview of Preline -

-

- Sign up to get unlimited updates. No credit card required. -

-
- - - - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-center-aligned-in-container-size-with-bg-elements.html b/examples/html/ab-center-aligned-in-container-size-with-bg-elements.html deleted file mode 100644 index 17b5606..0000000 --- a/examples/html/ab-center-aligned-in-container-size-with-bg-elements.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Center Aligned Announcement Banner in Container Size with Background Elements using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-

- Preline UI Figma is live. -

- - Learn more - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-full-width-center-aligned-link-on-gray-bg.html b/examples/html/ab-full-width-center-aligned-link-on-gray-bg.html deleted file mode 100644 index 155c9a5..0000000 --- a/examples/html/ab-full-width-center-aligned-link-on-gray-bg.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Full Width Center Aligned Link on Gray Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - -
-

- Shop for everyone on your list with the Preline Guide. -

- - Shop now - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-full-width-with-dismiss-button-on-blue-bg.html b/examples/html/ab-full-width-with-dismiss-button-on-blue-bg.html deleted file mode 100644 index e21621f..0000000 --- a/examples/html/ab-full-width-with-dismiss-button-on-blue-bg.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Full Width Announcement Banner with Dismiss Button on Blue Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Preline Figma is live. Learn more -

- -
- -
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-light-pilled-style-link.html b/examples/html/ab-light-pilled-style-link.html deleted file mode 100644 index 817637f..0000000 --- a/examples/html/ab-light-pilled-style-link.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Light Pilled Style Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-links-in-gradient-bg.html b/examples/html/ab-links-in-gradient-bg.html deleted file mode 100644 index 6f7fd60..0000000 --- a/examples/html/ab-links-in-gradient-bg.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Links in Gradient Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-

- Ready to get started? -

- - Sign up - -
- - - - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ab-media-object-style-with-blurred-bg.html b/examples/html/ab-media-object-style-with-blurred-bg.html deleted file mode 100644 index 75dbb7f..0000000 --- a/examples/html/ab-media-object-style-with-blurred-bg.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Media Object Style with Blurred Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
- - - - - - - -
-

- Get started today. -

-

- Sign up to get unlimited updates. -

-
-
- - - - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/af-account.html b/examples/html/af-account.html deleted file mode 100644 index 7756c38..0000000 --- a/examples/html/af-account.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Account Application Form Layouts using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

- Profile -

-

- Manage your name, password and account settings. -

-
- -
- -
-
- -
- - -
-
- Image Description -
-
- -
-
-
-
- - -
- -
- - -
-
- - -
-
- - -
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
- - -
-
- - -
-
- - - (Optional) - -
-
- - -
-
- - -
- -

- - - - - - Add phone - -

-
- - -
- -
- - -
-
- - - - - -
-
- - -
- -
- - -
- -
- -
- - -
- - -
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/af-payment.html b/examples/html/af-payment.html deleted file mode 100644 index d3007d8..0000000 --- a/examples/html/af-payment.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Payment Application Form Layouts using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

- Payment -

-

- Manage your payment methods. -

-
- -
- -
- - -
- - - -
-
- - - -
- - -
- - -
- - - -
-
-
- - - -
- - -
- - -
- - -
-
-
- -
- -
- - -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/af-submit-app.html b/examples/html/af-submit-app.html deleted file mode 100644 index 59f4baa..0000000 --- a/examples/html/af-submit-app.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Account Application Form Layouts using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-
- -
-
- -
- -
-
- - -
- Image Description - -
- - -
-
-
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
- -
- - - -
-
- - -
- -
-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/af-submit-application.html b/examples/html/af-submit-application.html deleted file mode 100644 index 0d99d10..0000000 --- a/examples/html/af-submit-application.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Submit Application Application Forms using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
- -
-
-

- Submit your application -

-
- - -
- -
- - -
-
- - -
-
- - -
- -
- - -
- -
- - -
-
- -
-
- - - - - -
-
- -
-
- - -
- -
- -
- - - -
-
-

- Profile -

-
- - -
- -
- - -
- - -
- - -
-
- -
-
- - -
- -
- -
- - - -
-
-

- Links -

-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - - -
- - - -
-
-

- Before sending your application, please let us know... -

-
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
- - - -
-

- Submit application -

-

- In order to contact you with future jobs that you may be interested in, we need to store your personal data. -

-

- If you are happy for us to do so please click the checkbox below. -

- -
- - -
-
- - - -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-chat.html b/examples/html/ai-chat.html deleted file mode 100644 index 82e4a5c..0000000 --- a/examples/html/ai-chat.html +++ /dev/null @@ -1,1341 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Chat Application AI Prompt using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
- - - - - - - -

- Welcome to Preline AI -

-

- Your AI-powered copilot for the web -

-
- - -
    - -
  • - - - - - - - - -
    -

    - How can we help? -

    -
    -

    - You can ask questions like: -

    -
      -
    • - What's Preline UI? -
    • - -
    • - How many Starter Pages & Examples are there? -
    • - -
    • - Is there a PRO version? -
    • -
    -
    -
    - -
  • - - - -
  • -
    - -
    -

    - what's preline ui? -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework. -

    -
    -

    - Here're some links to get started -

    - -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - what's preline ui figma? -

    -
    - -
    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI Figma is the largest free design system for Figma, crafted with Tailwind CSS styles and Preline UI components with extra top-notch additions. -

    -
    -

    - With the features like: -

    -
      -
    • - 12-column Grid System -
    • - -
    • - Easily find UI elements -
    • - -
    • - Variants and Properties -
    • - -
    • - Tailwind CSS Color styles -
    • - -
    • - Auto layout and constraints -
    • -
    -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - create a table example with preline using avatars, badges and progress bars -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Hold on a sec... -

    -
    - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - Name - -
    -
    -
    - - Status - -
    -
    -
    - - Portfolio - -
    -
    -
    - - Created - -
    -
    -
    -
    - Image Description -
    - Christina Bersh - christina@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 1/5 -
    -
    -
    -
    -
    -
    -
    - 28 Dec, 12:12 -
    -
    -
    -
    - Image Description -
    - David Harrison - david@site.com -
    -
    -
    -
    -
    - - - - - Warning - -
    -
    -
    -
    - 3/5 -
    -
    -
    -
    -
    -
    -
    - 20 Dec, 09:27 -
    -
    -
    -
    - - A - -
    - Anne Richard - anne@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 5/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - Image Description -
    - Samia Kartoon - samia@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 0/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - show me its code -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Of course! -

    -
    - - - -
    -                
    -                  <!-- Table Section -->
    -                  <div class="border border-gray-200 rounded-xl shadow-sm overflow-hidden dark:border-gray-700">
    -                    <!-- Table -->
    -                    <table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
    -                      <thead class="bg-gray-50 dark:bg-slate-800">
    -                        <tr>
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Name
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Status
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Portfolio
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Created
    -                              </span>
    -                            </div>
    -                          </th>
    -                        </tr>
    -                      </thead>
    -
    -                      <tbody class="divide-y divide-gray-200 dark:divide-gray-700">
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1531927557220-a9e23c1e4794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Christina Bersh</span>
    -                                  <span class="block text-sm text-gray-500">christina@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">1/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">28 Dec, 12:12</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1568602471122-7832951cc4c5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">David Harrison</span>
    -                                  <span class="block text-sm text-gray-500">david@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
    -                                </svg>
    -                                Warning
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">3/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 78%" aria-valuenow="78" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">20 Dec, 09:27</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="inline-flex items-center justify-center h-[2.375rem] w-[2.375rem] rounded-full bg-gray-300 dark:bg-gray-700">
    -                                  <span class="font-medium text-gray-800 leading-none dark:text-gray-200">A</span>
    -                                </span>
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Anne Richard</span>
    -                                  <span class="block text-sm text-gray-500">anne@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">5/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1541101767792-f9b2b1c4f127?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&&auto=format&fit=facearea&facepad=3&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Samia Kartoon</span>
    -                                  <span class="block text-sm text-gray-500">samia@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">0/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 1%" aria-valuenow="1" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -                      </tbody>
    -                    </table>
    -                    <!-- End Table -->
    -                  </div>
    -                  <!-- End Table Section -->
    -                
    -              
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - quiz me about tailwindcss -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Sure! -

    -
    - - -
    - - - -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - generate 3-dimensional abstract images -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Here you go... -

    -
    - - -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    - -
    -

    - what's tailwindcss? -

    -
    - -
    - - - AZ - -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Tailwind CSS is an open source CSS framework. The main feature of this library is that, unlike other CSS frameworks like Bootstrap, it does not provide a series of predefined classes for elements such as buttons or tables. -

    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - -
    -
    -
  • - - - -
  • -
    - -
    -

    - 2 files uploaded -

    -
    - - - -
    - - - AZ - -
  • - -
-
- - -
-
- - - -
- - -
- - - -
-
- -
- - - - - - - -
- - - -
- - - - - - - -
- -
-
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-classic.html b/examples/html/ai-classic.html deleted file mode 100644 index 6fd2167..0000000 --- a/examples/html/ai-classic.html +++ /dev/null @@ -1,1345 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Classic Application AI Prompt using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
- - - - - - - -

- Welcome to Preline AI -

-

- Your AI-powered copilot for the web -

-
- - -
    - -
  • - - - - - - - -
    -

    - How can we help? -

    -
    -

    - You can ask questions like: -

    -
      -
    • - What's Preline UI? -
    • - -
    • - How many Starter Pages & Examples are there? -
    • - -
    • - Is there a PRO version? -
    • -
    -
    -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's preline ui? -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework. -

    -
    -

    - Here're some links to get started -

    - -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's preline ui figma? -

    -
    - -
    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI Figma is the largest free design system for Figma, crafted with Tailwind CSS styles and Preline UI components with extra top-notch additions. -

    -
    -

    - With the features like: -

    -
      -
    • - 12-column Grid System -
    • - -
    • - Easily find UI elements -
    • - -
    • - Variants and Properties -
    • - -
    • - Tailwind CSS Color styles -
    • - -
    • - Auto layout and constraints -
    • -
    -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - create a table example with preline using avatars, badges and progress bars -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Hold on a sec... -

    -
    - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - Name - -
    -
    -
    - - Status - -
    -
    -
    - - Portfolio - -
    -
    -
    - - Created - -
    -
    -
    -
    - Image Description -
    - Christina Bersh - christina@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 1/5 -
    -
    -
    -
    -
    -
    -
    - 28 Dec, 12:12 -
    -
    -
    -
    - Image Description -
    - David Harrison - david@site.com -
    -
    -
    -
    -
    - - - - - Warning - -
    -
    -
    -
    - 3/5 -
    -
    -
    -
    -
    -
    -
    - 20 Dec, 09:27 -
    -
    -
    -
    - - A - -
    - Anne Richard - anne@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 5/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - Image Description -
    - Samia Kartoon - samia@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 0/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - show me its code -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Of course! -

    -
    - - - -
    -                
    -                  <!-- Table Section -->
    -                  <div class="border border-gray-200 rounded-xl shadow-sm overflow-hidden dark:border-gray-700">
    -                    <!-- Table -->
    -                    <table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
    -                      <thead class="bg-gray-50 dark:bg-slate-800">
    -                        <tr>
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Name
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Status
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Portfolio
    -                              </span>
    -                            </div>
    -                          </th>
    -
    -                          <th scope="col" class="px-6 py-3 text-left">
    -                            <div class="flex items-center gap-x-2">
    -                              <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                                Created
    -                              </span>
    -                            </div>
    -                          </th>
    -                        </tr>
    -                      </thead>
    -
    -                      <tbody class="divide-y divide-gray-200 dark:divide-gray-700">
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1531927557220-a9e23c1e4794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Christina Bersh</span>
    -                                  <span class="block text-sm text-gray-500">christina@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">1/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">28 Dec, 12:12</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1568602471122-7832951cc4c5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">David Harrison</span>
    -                                  <span class="block text-sm text-gray-500">david@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
    -                                </svg>
    -                                Warning
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">3/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 78%" aria-valuenow="78" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">20 Dec, 09:27</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="inline-flex items-center justify-center h-[2.375rem] w-[2.375rem] rounded-full bg-gray-300 dark:bg-gray-700">
    -                                  <span class="font-medium text-gray-800 leading-none dark:text-gray-200">A</span>
    -                                </span>
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Anne Richard</span>
    -                                  <span class="block text-sm text-gray-500">anne@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">5/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -
    -                        <tr>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1541101767792-f9b2b1c4f127?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&&auto=format&fit=facearea&facepad=3&w=300&h=300&q=80" alt="Image Description">
    -                                <div class="grow">
    -                                  <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Samia Kartoon</span>
    -                                  <span class="block text-sm text-gray-500">samia@site.com</span>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                                <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                  <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                                </svg>
    -                                Active
    -                              </span>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <div class="flex items-center gap-x-3">
    -                                <span class="text-xs text-gray-500">0/5</span>
    -                                <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                  <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 1%" aria-valuenow="1" aria-valuemin="0" aria-valuemax="100"></div>
    -                                </div>
    -                              </div>
    -                            </div>
    -                          </td>
    -                          <td class="h-px w-px whitespace-nowrap">
    -                            <div class="px-6 py-3">
    -                              <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                            </div>
    -                          </td>
    -                        </tr>
    -                      </tbody>
    -                    </table>
    -                    <!-- End Table -->
    -                  </div>
    -                  <!-- End Table Section -->
    -                
    -              
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - quiz me about tailwindcss -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Sure! -

    -
    - - -
    - - - -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - generate 3-dimensional abstract images -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Here you go... -

    -
    - - -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's tailwindcss? -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Tailwind CSS is an open source CSS framework. The main feature of this library is that, unlike other CSS frameworks like Bootstrap, it does not provide a series of predefined classes for elements such as buttons or tables. -

    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    -
    -
    - - -
    -
    -
    -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - 2 files uploaded -

    - - -
    -
    -
    -
  • - -
-
- - -
-
-
- - - -
- - -
- - - -
-
- -
- - - - - - - -
- - - -
- - - - - - - -
- -
-
- -
- -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-modal.html b/examples/html/ai-modal.html deleted file mode 100644 index 961000c..0000000 --- a/examples/html/ai-modal.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Modal Invoice using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-offcanvas.html b/examples/html/ai-offcanvas.html deleted file mode 100644 index da46bc7..0000000 --- a/examples/html/ai-offcanvas.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Offcanvas Invoice using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
- - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-simple-and-compact.html b/examples/html/ai-simple-and-compact.html deleted file mode 100644 index 32d8429..0000000 --- a/examples/html/ai-simple-and-compact.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple and Compact Invoice using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - - -
-
-
-
-
- Billed to: -
-
- - sara@site.com - -
-
- -
-
- Billing details: -
-
- Sara Williams -
- 280 Suzanne Throughway,
- Breannabury, OR 45801,
- United States
-
-
-
- -
-
- Shipping details: -
-
- Sara Williams -
- 280 Suzanne Throughway,
- Breannabury, OR 45801,
- United States
-
-
-
-
-
- - -
-
-
-
- Invoice number: -
-
- ADUQ2189H1-0038 -
-
- -
-
- Currency: -
-
- USD - US Dollar -
-
- -
-
- Due date: -
-
- 10 Jan 2023 -
-
- -
-
- Billing method: -
-
- Send invoice -
-
-
-
- -
- - - -
- - - - -
-
-
Item
-

Design UX and UI

-
-
-
Qty
-

1

-
-
-
Rate
-

5

-
-
-
Amount
-

$500

-
-
- -
- -
-
-
Item
-

Web project

-
-
-
Qty
-

1

-
-
-
Rate
-

24

-
-
-
Amount
-

$1250

-
-
- -
- -
-
-
Item
-

SEO

-
-
-
Qty
-

1

-
-
-
Rate
-

6

-
-
-
Amount
-

$2000

-
-
-
- - - -
-
- -
-
-
Subotal:
-
$2750.00
-
- -
-
Total:
-
$2750.00
-
- -
-
Tax:
-
$39.00
-
- -
-
Amount paid:
-
$2789.00
-
- -
-
Due balance:
-
$0.00
-
-
- -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-welcome-page.html b/examples/html/ai-welcome-page.html deleted file mode 100644 index ba1085e..0000000 --- a/examples/html/ai-welcome-page.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Welcome Page Application AI Prompt using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
- - - - - - - -

- Welcome to Preline AI -

-

- Your AI-powered copilot for the web -

-
- - -
-
- -
- - -
-
-
- -
- - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/ai-with-sidebar.html b/examples/html/ai-with-sidebar.html deleted file mode 100644 index 321d2c8..0000000 --- a/examples/html/ai-with-sidebar.html +++ /dev/null @@ -1,1432 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sidebar Application AI Prompt using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
-

- Welcome to Preline AI -

-

- Your AI-powered copilot for the web -

-
- - -
    - -
  • - - - - - - - -
    -

    - How can we help? -

    -
    -

    - You can ask questions like: -

    -
      -
    • - What's Preline UI? -
    • - -
    • - How many Starter Pages & Examples are there? -
    • - -
    • - Is there a PRO version? -
    • -
    -
    -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's preline ui? -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework. -

    -
    -

    - Here're some links to get started -

    - -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's preline ui figma? -

    -
    - -
    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Preline UI Figma is the largest free design system for Figma, crafted with Tailwind CSS styles and Preline UI components with extra top-notch additions. -

    -
    -

    - With the features like: -

    -
      -
    • - 12-column Grid System -
    • - -
    • - Easily find UI elements -
    • - -
    • - Variants and Properties -
    • - -
    • - Tailwind CSS Color styles -
    • - -
    • - Auto layout and constraints -
    • -
    -
    -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - create a table example with preline using avatars, badges and progress bars -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Hold on a sec... -

    -
    - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - Name - -
    -
    -
    - - Status - -
    -
    -
    - - Portfolio - -
    -
    -
    - - Created - -
    -
    -
    -
    - Image Description -
    - Christina Bersh - christina@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 1/5 -
    -
    -
    -
    -
    -
    -
    - 28 Dec, 12:12 -
    -
    -
    -
    - Image Description -
    - David Harrison - david@site.com -
    -
    -
    -
    -
    - - - - - Warning - -
    -
    -
    -
    - 3/5 -
    -
    -
    -
    -
    -
    -
    - 20 Dec, 09:27 -
    -
    -
    -
    - - A - -
    - Anne Richard - anne@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 5/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - Image Description -
    - Samia Kartoon - samia@site.com -
    -
    -
    -
    -
    - - - - - Active - -
    -
    -
    -
    - 0/5 -
    -
    -
    -
    -
    -
    -
    - 18 Dec, 15:20 -
    -
    -
    -
    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - show me its code -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Of course! -

    -
    - - - -
    -              
    -                <!-- Table Section -->
    -                <div class="border border-gray-200 rounded-xl shadow-sm overflow-hidden dark:border-gray-700">
    -                  <!-- Table -->
    -                  <table class="min-w-full divide-y divide-gray-200 dark:divide-gray-700">
    -                    <thead class="bg-gray-50 dark:bg-slate-800">
    -                      <tr>
    -                        <th scope="col" class="px-6 py-3 text-left">
    -                          <div class="flex items-center gap-x-2">
    -                            <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                              Name
    -                            </span>
    -                          </div>
    -                        </th>
    -
    -                        <th scope="col" class="px-6 py-3 text-left">
    -                          <div class="flex items-center gap-x-2">
    -                            <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                              Status
    -                            </span>
    -                          </div>
    -                        </th>
    -
    -                        <th scope="col" class="px-6 py-3 text-left">
    -                          <div class="flex items-center gap-x-2">
    -                            <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                              Portfolio
    -                            </span>
    -                          </div>
    -                        </th>
    -
    -                        <th scope="col" class="px-6 py-3 text-left">
    -                          <div class="flex items-center gap-x-2">
    -                            <span class="text-xs font-semibold uppercase tracking-wide text-gray-800 dark:text-gray-200">
    -                              Created
    -                            </span>
    -                          </div>
    -                        </th>
    -                      </tr>
    -                    </thead>
    -
    -                    <tbody class="divide-y divide-gray-200 dark:divide-gray-700">
    -                      <tr>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1531927557220-a9e23c1e4794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                              <div class="grow">
    -                                <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Christina Bersh</span>
    -                                <span class="block text-sm text-gray-500">christina@site.com</span>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                              <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                              </svg>
    -                              Active
    -                            </span>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <span class="text-xs text-gray-500">1/5</span>
    -                              <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="text-sm text-gray-500">28 Dec, 12:12</span>
    -                          </div>
    -                        </td>
    -                      </tr>
    -
    -                      <tr>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1568602471122-7832951cc4c5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80" alt="Image Description">
    -                              <div class="grow">
    -                                <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">David Harrison</span>
    -                                <span class="block text-sm text-gray-500">david@site.com</span>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200">
    -                              <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
    -                              </svg>
    -                              Warning
    -                            </span>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <span class="text-xs text-gray-500">3/5</span>
    -                              <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 78%" aria-valuenow="78" aria-valuemin="0" aria-valuemax="100"></div>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="text-sm text-gray-500">20 Dec, 09:27</span>
    -                          </div>
    -                        </td>
    -                      </tr>
    -
    -                      <tr>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <span class="inline-flex items-center justify-center h-[2.375rem] w-[2.375rem] rounded-full bg-gray-300 dark:bg-gray-700">
    -                                <span class="font-medium text-gray-800 leading-none dark:text-gray-200">A</span>
    -                              </span>
    -                              <div class="grow">
    -                                <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Anne Richard</span>
    -                                <span class="block text-sm text-gray-500">anne@site.com</span>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                              <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                              </svg>
    -                              Active
    -                            </span>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <span class="text-xs text-gray-500">5/5</span>
    -                              <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 100%" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100"></div>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                          </div>
    -                        </td>
    -                      </tr>
    -
    -                      <tr>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <img class="inline-block h-[2.375rem] w-[2.375rem] rounded-full" src="https://images.unsplash.com/photo-1541101767792-f9b2b1c4f127?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&&auto=format&fit=facearea&facepad=3&w=300&h=300&q=80" alt="Image Description">
    -                              <div class="grow">
    -                                <span class="block text-sm font-semibold text-gray-800 dark:text-gray-200">Samia Kartoon</span>
    -                                <span class="block text-sm text-gray-500">samia@site.com</span>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="inline-flex items-center gap-1.5 py-0.5 px-2 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200">
    -                              <svg class="w-2.5 h-2.5" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
    -                                <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
    -                              </svg>
    -                              Active
    -                            </span>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <div class="flex items-center gap-x-3">
    -                              <span class="text-xs text-gray-500">0/5</span>
    -                              <div class="flex w-full h-1.5 bg-gray-200 rounded-full overflow-hidden dark:bg-gray-700">
    -                                <div class="flex flex-col justify-center overflow-hidden bg-gray-800 dark:bg-gray-200" role="progressbar" style="width: 1%" aria-valuenow="1" aria-valuemin="0" aria-valuemax="100"></div>
    -                              </div>
    -                            </div>
    -                          </div>
    -                        </td>
    -                        <td class="h-px w-px whitespace-nowrap">
    -                          <div class="px-6 py-3">
    -                            <span class="text-sm text-gray-500">18 Dec, 15:20</span>
    -                          </div>
    -                        </td>
    -                      </tr>
    -                    </tbody>
    -                  </table>
    -                  <!-- End Table -->
    -                </div>
    -                <!-- End Table Section -->
    -              
    -            
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - quiz me about tailwindcss -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Sure! -

    -
    - - -
    - - - -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - generate 3-dimensional abstract images -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Here you go... -

    -
    - - -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - Deep Learning -
    -
    - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - what's tailwindcss? -

    -
    -
    -
    -
  • - - - -
  • - - - - - - - -
    - -
    -

    - Tailwind CSS is an open source CSS framework. The main feature of this library is that, unlike other CSS frameworks like Bootstrap, it does not provide a series of predefined classes for elements such as buttons or tables. -

    - -
    - - - -
    -
    -
    -
    - - -
    - - -
    - -
    - -
    -
    -
    - -
    -
  • - - - -
  • -
    -
    -
    -
    - - -
    -
    -
    -
    -
  • - - - -
  • -
    -
    - - AZ - - -
    -

    - 2 files uploaded -

    - - -
    -
    -
    -
  • - -
-
- - -
-
- - - -
- - -
- - - -
-
- -
- - - - - - - -
- - - -
- - - - - - - -
- -
-
- -
- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-dark-header.html b/examples/html/application-layout-dark-header.html deleted file mode 100644 index 9c84f28..0000000 --- a/examples/html/application-layout-dark-header.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark Application Layout Navbar/Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
- - - - -
- -
-

Starter Pages & Examples

-

Dark Application Layout Navbar/Header using Tailwind CSS

-

This is a simple application layout with header only example using Tailwind CSS.

- -
- -
-
- - - -
-
-

- Offcanvas title -

- -
-
-

- Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc. -

-
-
- - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-header.html b/examples/html/application-layout-header.html deleted file mode 100644 index 29c2257..0000000 --- a/examples/html/application-layout-header.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout Navbar: Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
- - - - -
- -
-

Starter Pages & Examples

-

Application Layout Navbar: Header using Tailwind CSS

-

This is a simple application layout with header only example using Tailwind CSS.

- -
- -
-
- - - -
-
-

- Offcanvas title -

- -
-
-

- Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc. -

-
-
- - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-sidebar-and-header-with-modal.html b/examples/html/application-layout-sidebar-and-header-with-modal.html deleted file mode 100644 index 0fe5cf4..0000000 --- a/examples/html/application-layout-sidebar-and-header-with-modal.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout: Sidebar & Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - -
-
- - - - - -
    -
  1. - Application Layout - - - -
  2. -
  3. - Dashboard -
  4. -
- -
-
- - - - - - - -
- -
-

Starter Pages & Examples

-

Application Layout: Sidebar & Header with Modal

-
- -
-
- - - - -
- - - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-sidebar-and-header.html b/examples/html/application-layout-sidebar-and-header.html deleted file mode 100644 index 7c4dd27..0000000 --- a/examples/html/application-layout-sidebar-and-header.html +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout: Sidebar & Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - -
-
- - - - - -
    -
  1. - Application Layout - - - -
  2. -
  3. - Dashboard -
  4. -
- -
-
- - - - - - - -
- -
-

Starter Pages & Examples

-

Application Layout: Sidebar & Header using Tailwind CSS

-

This is a simple application layout with sidebar and header examples using Tailwind CSS.

- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-sidebar-brand.html b/examples/html/application-layout-sidebar-brand.html deleted file mode 100644 index f0c993d..0000000 --- a/examples/html/application-layout-sidebar-brand.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout: Sidebar Brand using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
    -
  1. - Application Layout - - - -
  2. -
  3. - Dashboard -
  4. -
- -
-
- - - - - - - -
- -
-

Starter Pages & Examples

-

Application Layout: Sidebar Brand using Tailwind CSS

-

This is a simple application layout with sidebar and header examples using Tailwind CSS.

- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-sidebar-dark.html b/examples/html/application-layout-sidebar-dark.html deleted file mode 100644 index 4a97dc9..0000000 --- a/examples/html/application-layout-sidebar-dark.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout: Sidebar Dark using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
    -
  1. - Application Layout - - - -
  2. -
  3. - Dashboard -
  4. -
- -
-
- - - - - - - -
- -
-

Starter Pages & Examples

-

Application Layout: Sidebar Dark using Tailwind CSS

-

This is a simple application layout with sidebar and header examples using Tailwind CSS.

- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/html/application-layout-sidebar.html b/examples/html/application-layout-sidebar.html deleted file mode 100644 index fd02f6d..0000000 --- a/examples/html/application-layout-sidebar.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Layout: Sidebar using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - -
    -
  1. - Application Layout - - - -
  2. -
  3. - Dashboard -
  4. -
- -
-
- - - - - - - -
- -
-

Starter Pages & Examples

-

Application Layout: Sidebar using Tailwind CSS

-

This is a simple application layout with sidebar and header examples using Tailwind CSS.

- -
- -
- - - - - - - \ No newline at end of file diff --git a/examples/html/as-card-with-icon-and-link.html b/examples/html/as-card-with-icon-and-link.html deleted file mode 100644 index 5462946..0000000 --- a/examples/html/as-card-with-icon-and-link.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Stats Card with Icon and Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
-
-

- Total users -

-
-

- 72,540 -

- - - - - - 1.7% - - -
-
-
- - - -
-
- - - View reports - - - - -
- - - -
-
-
-

- Sessions -

-
-

- 29.4% -

-
-
-
- - - -
-
- - - View reports - - - - -
- - - -
-
-
-

- Avg. Click Rate -

-
-

- 56.8% -

- - - - - - 1.7% - - -
-
-
- - - -
-
- - - View reports - - - - -
- - - -
-
-
-

- Pageviews -

-
-

- 92,913 -

-
-
-
- - - - -
-
- - - View reports - - - - -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-center-aligned-in-card.html b/examples/html/as-center-aligned-in-card.html deleted file mode 100644 index 30d4681..0000000 --- a/examples/html/as-center-aligned-in-card.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Center Aligned Card Stats using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - Projects -
- -
-

- 150 -

-
- -
-
- - - - - - 1.7% - - - change -
-
- 5 - last week -
-
-
- - - -
-
- - Successful conversions -
- -
-

- 25 -

-
- -
-
- - - - - - 5.6% - - - change -
-
- 7 - last week -
-
-
- - - -
-
- - Failed conversions -
- -
-

- 4 -

-
- -
-
- - - - - - 5.6% - - - change -
-
- 7 - last week -
-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-grouped-card.html b/examples/html/as-grouped-card.html deleted file mode 100644 index 602945f..0000000 --- a/examples/html/as-grouped-card.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Grouped Card Stats using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-simple-in-card.html b/examples/html/as-simple-in-card.html deleted file mode 100644 index 0a97acb..0000000 --- a/examples/html/as-simple-in-card.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Simple Stats in Card using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
-
-

- Total users -

-
-
- - - - - -
-
-
- -
-

- 72,540 -

- - - - - - 1.7% - - -
-
-
- - - -
-
-
-

- Sessions -

-
- -
-

- 29.4% -

-
-
-
- - - -
-
-
-

- Avg. Click Rate -

-
- -
-

- 56.8% -

- - - - - - 1.7% - - -
-
-
- - - -
-
-
-

- Pageviews -

-
- -
-

- 92,913 -

-
-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-simple-with-add-more-button.html b/examples/html/as-simple-with-add-more-button.html deleted file mode 100644 index eb41c70..0000000 --- a/examples/html/as-simple-with-add-more-button.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Simple Stats with Add More Button using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
-
-

- Domains -

-
-
- - - - - -
-
-
- -

- 24 / 100 -

-
-
- - - -
-
-
-

- Current Builds -

-
- -

- 1 / 1 -

-
-
- - - -
-
-
-

- Requests -

-
-
- - - - - -
-
-
- -

- 10 / 10 -

-
-
- - - -
-
-
-

- Acquisition -

-
- -

- 8 / 10 -

-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-simple-with-dividers.html b/examples/html/as-simple-with-dividers.html deleted file mode 100644 index c0a795e..0000000 --- a/examples/html/as-simple-with-dividers.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Simple with Dividers using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - -
-
-

- Total users -

-
-
- - - - - -
-
-
-
-

- 72,540 -

- - - - - - 12.5% - - -
-
-
-
- - - -
-
- - - - -
-

- Sessions -

-
-

- 29.4% -

- - - - - - 2.25% - - -
-
-
-
- - - -
-
- - - - -
-
-

- Avg. Click Rate -

-
-
- - - - - -
-
-
- -
-
-
- - - -
-
- - - - - -
-

- Pageviews -

- -
-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/as-with-soft-icon-and-badge-in-card.html b/examples/html/as-with-soft-icon-and-badge-in-card.html deleted file mode 100644 index 967c0ce..0000000 --- a/examples/html/as-with-soft-icon-and-badge-in-card.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Stats with Soft Icon and Badge in Card using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
-
- - - -
- -
-
-

- Total users -

-
-
- - - - - -
-
-
-
-

- 72,540 -

- - - - - - 12.5% - - -
-
-
-
- - - -
-
-
- - - -
- -
-
-

- Sessions -

-
-
-

- 29.4% -

-
-
-
-
- - - -
-
-
- - - -
- -
-
-

- Avg. Click Rate -

-
-
-

- 56.8% -

- - - - - - 1.7% - - -
-
-
-
- - - -
-
-
- - - - -
- -
-
-

- Pageviews -

-
-
- - - - - -
-
-
-
-

- 92,913 -

-
-
-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-api-keys.html b/examples/html/at-api-keys.html deleted file mode 100644 index 438e403..0000000 --- a/examples/html/at-api-keys.html +++ /dev/null @@ -1,674 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - API Keys Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-
-

- API Keys -

-

- Keys you have generated to connect with third-party clients or access the Preline API. -

-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - Name - -
-
-
- - Created by - -
-
-
- - API Key - -
-
-
- - Status - -
-
-
- - Created - -
-
-
- -
-
-
- Streamlab -
-
-
-
- Image Description -
- Christina Bersh -
-
-
-
-
- -
-
-
- - - - - Successful - -
-
-
- 28 Dec, 12:12 -
-
- -
-
- -
-
-
- Node -
-
-
-
- Image Description -
- David Harrison -
-
-
-
-
- -
-
-
- - - - - Warning - -
-
-
- 20 Dec, 09:27 -
-
- -
-
- -
-
-
- FrontMail -
-
-
-
- - A - -
- Anne Richard -
-
-
-
-
- -
-
-
- - - - - Successful - -
-
-
- 18 Dec, 15:20 -
-
- -
-
- -
-
-
- MobileAPI -
-
-
-
- Image Description -
- Samia Kartoon -
-
-
-
-
- -
-
-
- - - - - Successful - -
-
-
- 18 Dec, 15:20 -
-
- -
-
- -
-
-
- RachelsKey -
-
-
-
- - D - -
- David Harrison -
-
-
-
-
- -
-
-
- - - - - Danger - -
-
-
- 15 Dec, 14:41 -
-
- -
-
- -
-
-
- Gulp -
-
-
-
- Image Description -
- Brian Halligan -
-
-
-
-
- -
-
-
- - - - - Successful - -
-
-
- 11 Dec, 18:51 -
-
- -
- - - -
-
-

- 6 results -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-empty-state.html b/examples/html/at-empty-state.html deleted file mode 100644 index 1082eaf..0000000 --- a/examples/html/at-empty-state.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Card Style Table with Striped Rows using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-

- Invoices -

-

- Create invoices, edit, download and more. -

-
- - - -
-
- - - - -
- -

- No draft test invoices -

-

- Draft an invoice and send it to a customer. -

- - -
- - -
-
- - - -
-
-

- 0 results -

-
- -
-
-
- - - - Prev -
- -
- Next - - - -
-
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-invoices.html b/examples/html/at-invoices.html deleted file mode 100644 index 3380277..0000000 --- a/examples/html/at-invoices.html +++ /dev/null @@ -1,847 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Invoices Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-
-

- Invoices -

-

- Create invoices, edit, download and more. -

-
- - -
- - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - Invoice number - -
-
- - - - - -
-
-
-
-
- - Amount - -
-
-
- - Status - -
-
-
- - Due - -
-
-
- - Created - -
-
- -
- #ADUQ2189H1-0038 -
-
-
- -
- US $400.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 10 Jan 2023 -
-
-
- -
- 28 Dec, 12:12 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ218ADD-0099 -
-
-
- -
- US $200.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 06 Jan 2023 -
-
-
- -
- 20 Dec, 09:27 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ218F94-0061 -
-
-
- -
- US $994.00 -
-
-
- -
- - - - - Declined - -
-
-
- -
- 01 Jan 2023 -
-
-
- -
- 14 Dec, 09:45 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ2138D4-0038 -
-
-
- -
- US $4,150.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 29 Dec -
-
-
- -
- 01 Dec, 16:59 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ2138R2-0012 -
-
-
- -
- US $2,489.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 29 Dec -
-
-
- -
- 01 Dec, 16:59 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ2131GS-0010 -
-
-
- -
- US $47.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 28 Dec -
-
-
- -
- 28 Nov, 11:00 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ288UUE-3892 -
-
-
- -
- US $2,220.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 24 Dec -
-
-
- -
- 20 Dec, 09:27 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ2189C7-3822 -
-
-
- -
- US $80.00 -
-
-
- -
- - - - - Declined - -
-
-
- -
- 29 Nov -
-
-
- -
- 28 Nov, 12:04 -
-
-
- -
-
- - - - - View -
-
-
-
- -
- #ADUQ2138F2-0099 -
-
-
- -
- US $1,249.00 -
-
-
- -
- - - - - Paid - -
-
-
- -
- 29 Nov -
-
-
- -
- 01 Nov, 14:32 -
-
-
- -
-
- - - - - View -
-
-
-
- - - -
-
-

- 9 results -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- - - - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-product-review.html b/examples/html/at-product-review.html deleted file mode 100644 index d9f56af..0000000 --- a/examples/html/at-product-review.html +++ /dev/null @@ -1,566 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Products Review Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
- -
- -
- -
- - - -
-
-
- - -
-
-
- - -
- -
- - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - Product - -
-
-
- - Reviewer - -
-
-
- - Review - -
-
-
- - Date - -
-
-
- - Status - -
-
- -
- Image Description -
- Brown Hat -
-
-
-
- -
- Image Description -
- Christina Bersh - christina@site.com -
-
-
-
- -
- - - - - - - - - - - - - - - -
- I just love it! - I bought this hat for my boyfriend, but then i found out he cheated on me so I kept it and I love it!! I wear it all the time and there is no problem with the fit even though its a mens" hat. -
-
- - 10 Jan 2022 - - - - - - - - Published - - -
- -
- Image Description -
- Calvin Klein T-shirts -
-
-
-
- -
- Image Description -
- David Harrison - david@site.com -
-
-
-
- -
- - - - - - - - - - - - - - - -
- Really nice - Material is great and very comfortable and stylish. -
-
- - 04 Aug 2020 - - - - - - - - Rejected - - -
- -
- Image Description -
- Clarks shoes -
-
-
-
- -
- - A - -
- Anne Richard - anne@site.com -
-
-
-
- -
- - - - - - - - - - - - - - - -
- Good product - A really well built shoe. It looks great and wears just as well. A great staple in ball caps. -
-
- - June 18 2022 - - - - - - - - Published - - -
- -
- Image Description -
- Levis women's jeans -
-
-
-
- -
- Image Description -
- Samia Kartoon - samia@site.com -
-
-
-
- -
- - - - - - - - - - - - - - - -
- Buy the product, you will not regret it! - Don't let this merchandise get away! It's a must buy and you will look good in it while working out. -
-
- - 10 Jan 2022 - - - - - - - - Published - - -
- -
- Image Description -
- Asos T-shirts -
-
-
-
- -
- - D - -
- David Harrison - david@site.com -
-
-
-
- -
- - - - - - - - - - - - - - - -
- Ready for the heat! - As good as the heat Rdy T-shirt but without the sleeves. Love the stripes on the back. -
-
- - 07 May 2022 - - - - - - - - Published - - -
- - - -
-
- -
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-sales.html b/examples/html/at-sales.html deleted file mode 100644 index a4e86f6..0000000 --- a/examples/html/at-sales.html +++ /dev/null @@ -1,770 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sales Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - Lead - -
-
-
- - Next Meeting - -
-
-
- - Last Interaction - -
-
-
- - Email - -
-
-
- - Rating - -
-
-
- -
-
-
-
- - - - - - -
- Guideline -
-
-
-
-
- In 2 days -
-
-
- 45 minutes ago -
-
-
- - amanda@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - - - - - - - - - -
- Facebook -
-
-
-
-
- Yesterday 09:12 am -
-
-
- In 1 hour -
-
-
- - christina@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - - - - - - - - - - -
- Mailchimp -
-
-
-
-
- Monday 12:12 pm -
-
-
- In 3 days -
-
-
- - brian@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - -
- Apple -
-
-
-
-
- Wednesday 06:45 pm -
-
-
- In 3 days -
-
-
- - jackob@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - - - - - - - - - - - - - -
- Capsule -
-
-
-
-
- January 15 -
-
-
- In 1 week -
-
-
- - amanda@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - -
- Dropbox -
-
-
-
-
- January 19 -
-
-
- In 2 weeks -
-
-
- - baba@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - -
- Airbnb -
-
-
-
-
- In 2 days -
-
-
- 45 minutes ago -
-
-
- - amanda@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - - -
- Prosperops -
-
-
-
-
- January 19 -
-
-
- In 2 weeks -
-
-
- - baba@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
-
- -
-
-
-
- - - - - - - - - - - - - - - -
- Astro -
-
-
-
-
- Monday 12:12 pm -
-
-
- In 3 days -
-
-
- - brian@site.com - -
-
-
- - - - - - - - - - - - - - - -
-
- - - -
-
-

- Showing: -

-
- -
-

- of 20 -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-teams.html b/examples/html/at-teams.html deleted file mode 100644 index e988dd0..0000000 --- a/examples/html/at-teams.html +++ /dev/null @@ -1,938 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Teams Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-
-

- Teams -

-

- Create teams, edit, download and more. -

-
- -
-
-
- - -
- -
- - -
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - Team - -
- - - - -
-
-
- - - Description - -
- - - - -
-
-
- - - Industry - -
- - - - -
-
-
- - - Rated - -
- - - - -
-
-
- - - Members - -
- - - - -
-
-
- -
-
#digitalmarketing
-
-
-
- -
-

Our group promotes and sells products and services by leveraging online marketing tactics

-
-
-
- -
- - Marketing team - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- Image Description - -
-
- Image Description - -
-
- Image Description - -
-
-
-
-
- -
-
- -
-
#ethereum
-
-
-
- -
-

Focusing on innovative and disruptive business models

-
-
-
- -
- - Blockchain - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- - A - - -
-
- Image Description - -
-
- - J - - -
-
- - 9+ - - -
-
-
-
-
- -
-
- -
-
#conference
-
-
-
- -
-

Online meeting services group

-
-
-
- -
- - Marketing team - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- - A - - -
-
- Image Description - -
-
- Image Description - -
-
- Image Description - -
-
-
-
-
- -
-
- -
-
#invoices
-
-
-
- -
-

This group serves online money transfers as an electronic alternative to paper methods

-
-
-
- -
- - Online payment - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- - A - - -
-
- - O - - -
-
-
-
-
- -
-
- -
-
#event
-
-
-
- -
-

This group serves online money transfers as an electronic alternative to paper methods

-
-
-
- -
- - Organize - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- - A - - -
-
- Image Description - -
-
- - T - - -
-
- - 2+ - - -
-
-
-
-
- -
-
- -
-
#softwaretester
-
-
-
- -
-

Software testers play a critical role in application development. They are quality assurance experts who put applications

-
-
-
- -
- - Software - -
-
-
- -
- - - - - - - - - - - - - - - -
-
-
- -
-
- Image Description - -
-
- Image Description - -
-
- Image Description - -
-
-
-
-
- -
-
- - - -
-
-

- 6 results -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-traffic-analytics.html b/examples/html/at-traffic-analytics.html deleted file mode 100644 index ba60f8a..0000000 --- a/examples/html/at-traffic-analytics.html +++ /dev/null @@ -1,689 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Traffic Analytics Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-
-

- Visitors -

-

- Visitors overview by country. -

-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Country - - - - Users - - - - New Users - - - - Sessions - - - - Bounce Rate - - - - Pages / Session - - - - Avg. Session Duration - -
- - -
- 195 - (23.16%) -
-
-
- 172 - (24.50%) -
-
-
- 208 - (21.67%) -
-
-
- 68.75% -
-
-
- 1.45% -
-
-
- 00:00:16 -
-
- - -
- 99 - (11.76%) -
-
-
- 80 - (11.40%) -
-
-
- 111 - (11.56%) -
-
-
- 45.05% -
-
-
- 2.50% -
-
-
- 00:01:39 -
-
- - -
- 96 - (11.40%) -
-
-
- 82 - (11.68%) -
-
-
- 108 - (11.25%) -
-
-
- 61.11% -
-
-
- 2.05% -
-
-
- 00:00:39 -
-
- - -
- 32 - (3.80%) -
-
-
- 28 - (3.99%) -
-
-
- 38 - (3.96%) -
-
-
- 34.21% -
-
-
- 3.37% -
-
-
- 00:02:51 -
-
- - -
- 25 - (2.97%) -
-
-
- 22 - (3.13%) -
-
-
- 31 - (3.23%) -
-
-
- 64.52% -
-
-
- 1.58% -
-
-
- 00:00:05 -
-
- - -
- 24 - (2.85%) -
-
-
- 22 - (3.13%) -
-
-
- 26 - (2.71%) -
-
-
- 50.00% -
-
-
- 2.73% -
-
-
- 00:01:00 -
-
- - -
- 46 - (2.78%) -
-
-
- 19 - (2.67%) -
-
-
- 19 - (2.67%) -
-
-
- 44.90% -
-
-
- 2.29% -
-
-
- 00:01:32 -
-
- - -
- 42 - (2.54%) -
-
-
- 16 - (1.54%) -
-
-
- 15 - (1.56%) -
-
-
- 39.34% -
-
-
- 1.79% -
-
-
- 00:00:58 -
-
- - -
- 30 - (1.93%) -
-
-
- 14 - (1.30%) -
-
-
- 11 - (1.22%) -
-
-
- 38.88% -
-
-
- 1.64% -
-
-
- 00:00:55 -
-
- - - -
-
-

- 9 results -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-transactions.html b/examples/html/at-transactions.html deleted file mode 100644 index b121f60..0000000 --- a/examples/html/at-transactions.html +++ /dev/null @@ -1,1393 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Transactions Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
- -
- -
- -
- - - -
-
-
- - -
-
-
- - -
- -
- - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - Order - -
-
-
- - Date - -
-
-
- - Customer - -
-
-
- - Payment Status - -
-
-
- - Payment Method - -
-
-
- -
-
-
- #35463 -
-
-
- Aug 17, 2020, 5:48 (ET) -
-
-
- Jase Marley -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - •••• 4242 -
-
-
-
- -
-
-
- -
-
-
- #23513 -
-
-
- Aug 17, 2020, 2:01 (ET) -
-
-
- Mathew Gustaffson -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - •••• 2390 -
-
-
-
- -
-
-
- -
-
-
- #12453 -
-
-
- Aug 17, 2020, 1:54 (ET) -
-
-
- Nicky Olvsson -
-
-
- - - - - Pending - -
-
-
-
- - - - - - - - - - - - - •••• 3535 -
-
-
-
- -
-
-
- -
-
-
- #84223 -
-
-
- Aug 17, 2020, 1:04 (ET) -
-
-
- David Nunez -
-
-
- - - - - Declined - -
-
-
-
- - - - - - - - - - - - - - ••••@gmail.com -
-
-
-
- -
-
-
- -
-
-
- #46542 -
-
-
- Aug 17, 2020, 1:01 (ET) -
-
-
- Brian Jackson -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - •••• 9901 -
-
-
-
- -
-
-
- -
-
-
- #46542 -
-
-
- Aug 17, 2020, 1:01 (ET) -
-
-
- David Nunez -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - - ••••@gmail.com -
-
-
-
- -
-
-
- -
-
-
- #45422 -
-
-
- Aug 17, 2020, 5:48 (ET) -
-
-
- Jase Marley -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - •••• 4242 -
-
-
-
- -
-
-
- -
-
-
- #12912 -
-
-
- Aug 17, 2020, 2:01 (ET) -
-
-
- Mathew Gustaffson -
-
-
- - - - - Paid - -
-
-
-
- - - - - - - - - - - - - - ••••@gmail.com -
-
-
-
- -
-
-
- -
-
-
- #29292 -
-
-
- Aug 17, 2020, 1:54 (ET) -
-
-
- Nicky Olvsson -
-
-
- - - - - Pending - -
-
-
-
- - - - - - - - - - - - - •••• 3535 -
-
-
-
- -
-
- - - -
-
- -
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/at-users.html b/examples/html/at-users.html deleted file mode 100644 index 05b367f..0000000 --- a/examples/html/at-users.html +++ /dev/null @@ -1,542 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Users Application Table using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- -
-
-

- Users -

-

- Add users, edit and more. -

-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - Name - -
-
-
- - Position - -
-
-
- - Status - -
-
-
- - Portfolio - -
-
-
- - Created - -
-
-
- -
-
-
-
- Image Description -
- Christina Bersh - christina@site.com -
-
-
-
-
- Director - Human resources -
-
-
- - - - - Active - -
-
-
-
- 1/5 -
-
-
-
-
-
-
- 28 Dec, 12:12 -
-
- -
-
- -
-
-
-
- Image Description -
- David Harrison - david@site.com -
-
-
-
-
- Seller - Branding products -
-
-
- - - - - Warning - -
-
-
-
- 3/5 -
-
-
-
-
-
-
- 20 Dec, 09:27 -
-
- -
-
- -
-
-
-
- - A - -
- Anne Richard - anne@site.com -
-
-
-
-
- Designer - IT department -
-
-
- - - - - Active - -
-
-
-
- 5/5 -
-
-
-
-
-
-
- 18 Dec, 15:20 -
-
- -
-
- -
-
-
-
- Image Description -
- Samia Kartoon - samia@site.com -
-
-
-
-
- Executive director - Marketing -
-
-
- - - - - Active - -
-
-
-
- 0/5 -
-
-
-
-
-
-
- 18 Dec, 15:20 -
-
- -
-
- -
-
-
-
- - D - -
- David Harrison - david@site.com -
-
-
-
-
- Developer - Mobile app -
-
-
- - - - - Danger - -
-
-
-
- 3/5 -
-
-
-
-
-
-
- 15 Dec, 14:41 -
-
- -
-
- -
-
-
-
- Image Description -
- Brian Halligan - brian@site.com -
-
-
-
-
- Accountant - Finance -
-
-
- - - - - Active - -
-
-
-
- 2/5 -
-
-
-
-
-
-
- 11 Dec, 18:51 -
-
- -
- - - -
-
-

- 6 results -

-
- -
-
- - - -
-
-
- -
-
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/base-header.html b/examples/html/base-header.html deleted file mode 100644 index 10ed8fd..0000000 --- a/examples/html/base-header.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Base Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Base Header using Tailwind CSS

-

This is a base navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-2-grids-list.html b/examples/html/blog-2-grids-list.html deleted file mode 100644 index 0c59eb5..0000000 --- a/examples/html/blog-2-grids-list.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 2-grids Blog List using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-3-grids-with-an-overlay-card.html b/examples/html/blog-3-grids-with-an-overlay-card.html deleted file mode 100644 index 4ba7e5a..0000000 --- a/examples/html/blog-3-grids-with-an-overlay-card.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 3-grids Blog with an Overlay Card using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-articles-center-aligned-in-small-size.html b/examples/html/blog-articles-center-aligned-in-small-size.html deleted file mode 100644 index bc76e77..0000000 --- a/examples/html/blog-articles-center-aligned-in-small-size.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Center Aligned Blog Article in Small Size using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-
- Image Description -
- -
-
-
- -
-
- - Leyla Ludic - - - - - -
-
- - -
    -
  • - Jan 18 -
  • -
  • - 8 min read -
  • -
-
- - -
- -
- -
-
-
-
- - - -
-
-

Announcing a free plan for small teams

- -

At preline, our mission has always been focused on bringing openness and transparency to the design process. We've always believed that by providing a space where designers can share ongoing work not only empowers them to make better products, it also helps them grow.

-
- -

We're proud to be a part of creating a more open culture and to continue building a product that supports this vision.

- -
- Image Description -
- A woman sitting at a table. -
-
- -

As we've grown, we've seen how Preline has helped companies such as Spotify, Microsoft, Airbnb, Facebook, and Intercom bring their designers closer together to create amazing things. We've also learned that when the culture of sharing is brought in earlier, the better teams adapt and communicate with one another.

- -

That's why we are excited to share that we now have a free version of Preline, which will allow individual designers, startups and other small teams a chance to create a culture of openness early on.

- -
-

- To say that switching to Preline has been life-changing is an understatement. My business has tripled and I got my life back. -

-

- Nicole Grazioso -

-
- -
- Image Description -
- A man and a woman looking at a cell phone. -
-
- -
-

Bringing the culture of sharing to everyone

- -

We know the power of sharing is real, and we want to create an opportunity for everyone to try Preline and explore how transformative open communication can be. Now you can have a team of one or two designers and unlimited spectators (think PMs, management, marketing, etc.) share work and explore the design process earlier.

-
- -
    -
  • Preline allows us to collaborate in real time and is a really great way for leadership on the team to stay up-to-date with what everybody is working on," said Stewart Scott-Curran, Intercom's Director of Brand Design.
  • -
  • Preline opened a new way of sharing. It's a persistent way for everyone to see and absorb each other's work," said David Scott, Creative Director at Eventbrite.
  • -
- -

Small teams and individual designers need a space where they can watch the design process unfold, both for themselves and for the people they work with – no matter if it's a fellow designer, product manager, developer or client. Preline allows you to invite more people into the process, creating a central place for conversation around design. As those teams grow, transparency and collaboration becomes integrated in how they communicate and work together.

- - -
- -
-
- - - -
-
-
- -
- -
- - -
- - -
- -
- - -
- - - - -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-articles-with-sidebar.html b/examples/html/blog-articles-with-sidebar.html deleted file mode 100644 index 28d7ba5..0000000 --- a/examples/html/blog-articles-with-sidebar.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Blog Article with Sidebar using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-
- - - - - Back to Blog - - -

Announcing a free plan for small teams

- -
- - Company News - -

January 18, 2023

-
- -

At preline, our mission has always been focused on bringing openness and transparency to the design process. We've always believed that by providing a space where designers can share ongoing work not only empowers them to make better products, it also helps them grow.

- -

We're proud to be a part of creating a more open culture and to continue building a product that supports this vision.

- -
-
-
-
- Image Description -
-
- Image Description -
-
-
- Image Description -
-
- - - Working process - -
- -

As we've grown, we've seen how Preline has helped companies such as Spotify, Microsoft, Airbnb, Facebook, and Intercom bring their designers closer together to create amazing things. We've also learned that when the culture of sharing is brought in earlier, the better teams adapt and communicate with one another.

- -

That's why we are excited to share that we now have a free version of Preline, which will allow individual designers, startups and other small teams a chance to create a culture of openness early on.

- -
-

- To say that switching to Preline has been life-changing is an understatement. My business has tripled and I got my life back. -

-

- Nicole Grazioso -

-
- -
- Image Description -
- A man and a woman looking at a cell phone. -
-
- -
-

Bringing the culture of sharing to everyone

- -

We know the power of sharing is real, and we want to create an opportunity for everyone to try Preline and explore how transformative open communication can be. Now you can have a team of one or two designers and unlimited spectators (think PMs, management, marketing, etc.) share work and explore the design process earlier.

-
- -
    -
  • Preline allows us to collaborate in real time and is a really great way for leadership on the team to stay up-to-date with what everybody is working on," said Stewart Scott-Curran, Intercom's Director of Brand Design.
  • -
  • Preline opened a new way of sharing. It's a persistent way for everyone to see and absorb each other's work," said David Scott, Creative Director at Eventbrite.
  • -
- -

Small teams and individual designers need a space where they can watch the design process unfold, both for themselves and for the people they work with – no matter if it's a fellow designer, product manager, developer or client. Preline allows you to invite more people into the process, creating a central place for conversation around design. As those teams grow, transparency and collaboration becomes integrated in how they communicate and work together.

- -
- - - - -
- -
- -
- - - -
- -
- - -
- - - - -
-
-
-
-
- - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-bordered-cards-with-authors.html b/examples/html/blog-bordered-cards-with-authors.html deleted file mode 100644 index 217c81b..0000000 --- a/examples/html/blog-bordered-cards-with-authors.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Blog Bordered Cards with Authors using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-brand-color-on-hover.html b/examples/html/blog-brand-color-on-hover.html deleted file mode 100644 index 59e849b..0000000 --- a/examples/html/blog-brand-color-on-hover.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Blog Brand color on Hover using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-card-image-with-subtitle-and-title.html b/examples/html/blog-card-image-with-subtitle-and-title.html deleted file mode 100644 index 43729c4..0000000 --- a/examples/html/blog-card-image-with-subtitle-and-title.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Image Card with Subtitle and Title using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-card-with-bg-gray-on-hover.html b/examples/html/blog-card-with-bg-gray-on-hover.html deleted file mode 100644 index b8c3118..0000000 --- a/examples/html/blog-card-with-bg-gray-on-hover.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Blog Card with Background Gray on Hover using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-hero-style.html b/examples/html/blog-hero-style.html deleted file mode 100644 index 9394aef..0000000 --- a/examples/html/blog-hero-style.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Style Blog using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
- Image Description -
-
- - -
-

- Business insight -

- -

- - How to get buy-in and budget for direct hiring - -

- - -
-
- Image Description -
- -
-

- Louise Donadieu -

-

- Strategic Marketing Consultant -

-
-
- - - -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-horizontal-style.html b/examples/html/blog-horizontal-style.html deleted file mode 100644 index 1ccfa57..0000000 --- a/examples/html/blog-horizontal-style.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Horizontal Blog Style using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/blog-image-overlay.html b/examples/html/blog-image-overlay.html deleted file mode 100644 index d933170..0000000 --- a/examples/html/blog-image-overlay.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Image Overlay Blog using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/boxed-layout.html b/examples/html/boxed-layout.html deleted file mode 100644 index 47905bf..0000000 --- a/examples/html/boxed-layout.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Boxed Layout using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Boxed Layout using Tailwind CSS

-

This is a boxed layout example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cards-image-and-content-with-stretched-buttons.html b/examples/html/cards-image-and-content-with-stretched-buttons.html deleted file mode 100644 index 1c26c6b..0000000 --- a/examples/html/cards-image-and-content-with-stretched-buttons.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Image and Content with Stretched Buttons using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - - - - - - - - -
-
- - Atlassian API - -

- Atlassian -

-

- A software that develops products for software developers and developments. -

-
- -
- - - -
-
- - - - - - - - - - - - - - - - -
-
- - Asana API - -

- Asana -

-

- Track tasks and projects, use agile boards, measure progress. -

-
- -
- - - -
-
- - - - - - - -
-
- - Slack API - -

- Slack -

-

- Email collaboration and email service desk made easy. -

-
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/cards-simple-card-link-with-icon-title-and-description.html b/examples/html/cards-simple-card-link-with-icon-title-and-description.html deleted file mode 100644 index 190ade3..0000000 --- a/examples/html/cards-simple-card-link-with-icon-title-and-description.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple Card Link with Icon, Title and Description using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/cards-simple-link-with-avatar-and-title.html b/examples/html/cards-simple-link-with-avatar-and-title.html deleted file mode 100644 index a528031..0000000 --- a/examples/html/cards-simple-link-with-avatar-and-title.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple Card Link with Avatar and Title using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/cards-simple-link-with-title-and-description.html b/examples/html/cards-simple-link-with-title-and-description.html deleted file mode 100644 index 6ca6e0a..0000000 --- a/examples/html/cards-simple-link-with-title-and-description.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple Card Link with Title and Description using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/clients-in-card.html b/examples/html/clients-in-card.html deleted file mode 100644 index 2e64926..0000000 --- a/examples/html/clients-in-card.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple with Heading and Link Clients Section and Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Trusted by Open Source, enterprise, and more than 99,000 of you

-
- - - -
-
- - - -
- -
- - - -
- -
- - - -
- -
- - - - - - -
- -
- - - - - - - - -
- -
- - - - -
- -
- - - - - - - -
- -
- - - -
- -
- - - - - - -
- -
- - - - - - - - - - - - - - - -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/clients-simple-with-heading-and-link.html b/examples/html/clients-simple-with-heading-and-link.html deleted file mode 100644 index 97fca33..0000000 --- a/examples/html/clients-simple-with-heading-and-link.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple with Heading and Link Clients Section and Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Trusted by Open Source, enterprise, and more than 99,000 of you

-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/clients-simple-with-heading.html b/examples/html/clients-simple-with-heading.html deleted file mode 100644 index a4fa2d4..0000000 --- a/examples/html/clients-simple-with-heading.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple with Heading Clients Section and Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Trusted by Open Source, enterprise, and more than 99,000 of you

-
- - -
- - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/clients-with-stats.html b/examples/html/clients-with-stats.html deleted file mode 100644 index 21f0dce..0000000 --- a/examples/html/clients-with-stats.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Clients Section with Stats and Link using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Trusted by Open Source, enterprise, and more than 99,000 of you

-
- - - - - - - -
-
-

- 250+ -

-

- Components -

-
- - -
-

- 160+ -

-

- Starter Pages & Examples -

-
- - -
-

- 10+ -

-

- Tailwind CSS Plugins -

-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/contacts-center-aligned-with-info-card-blocks.html b/examples/html/contacts-center-aligned-with-info-card-blocks.html deleted file mode 100644 index 0db58ce..0000000 --- a/examples/html/contacts-center-aligned-with-info-card-blocks.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Contacts Center Aligned with Info Card Blocks using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Contact us -

-

- We'd love to talk about how we can help you. -

-
-
- -
- -
-

- Fill in the form -

- -
-
- -
-
- - -
- -
- - -
-
- - - -
-
- - -
- -
- - -
-
- - -
- - -
-
- - -
- -
- -
-

- We'll get back to you in 1-2 business days. -

-
-
-
- -
- - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/contacts-form-in-left-and-description-in-right.html b/examples/html/contacts-form-in-left-and-description-in-right.html deleted file mode 100644 index b88bbaa..0000000 --- a/examples/html/contacts-form-in-left-and-description-in-right.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Contacts Form in Left and Description in Right using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Contact us -

-

- We'd love to talk about how we can help you. -

-
- -
- -
-

- Fill in the form -

- -
-
- -
-
- - -
- -
- - -
-
- - -
- - -
- -
- - -
- -
- - -
-
- - -
- -
- -
-

- We'll get back to you in 1-2 business days. -

-
-
-
- - -
- -
- - - - -
-

Knowledgebase

-

We're here to help with any questions or code.

- - Contact support - - - - -
-
- - - -
- - - - -
-

FAQ

-

Search our FAQ for answers to anything you might ask.

- - Visit FAQ - - - - -
-
- - - -
- - - - -
-

Developer APIs

-

Check out our development quickstart guide.

- - Contact sales - - - - -
-
- - - -
- - - -
-

Contact us by email

-

If you wish to write us an email instead please use

- - example@site.com - -
-
- -
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-blurred-bg-with-stacked-buttons.html b/examples/html/cookies-blurred-bg-with-stacked-buttons.html deleted file mode 100644 index a482746..0000000 --- a/examples/html/cookies-blurred-bg-with-stacked-buttons.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookie Blurred Background With Stacked Buttons using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-

- Cookie Settings -

- -
-

- We use cookies to improve your experience and for marketing. Visit our Cookies Policy to learn more. -

-
-
- -
-
- -
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-full-width-with-switchers.html b/examples/html/cookies-full-width-with-switchers.html deleted file mode 100644 index 408a97e..0000000 --- a/examples/html/cookies-full-width-with-switchers.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Full Width with Switchers using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-
- - - -
-

- We use cookies -

-

- We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. -

-
-
- - -
- -
- - -
- -
- - -
- -
- - -
-
-
- - -
-
- - - -
-
- -
-
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-fullwidth-centered-content.html b/examples/html/cookies-fullwidth-centered-content.html deleted file mode 100644 index 5651546..0000000 --- a/examples/html/cookies-fullwidth-centered-content.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookie Full Width - Centered Content using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-

- Cookie Settings -

-

- We use cookies to improve your experience and for marketing. Visit our Cookies Policy to learn more. -

- -
- - -
-
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-inline-with-buttons.html b/examples/html/cookies-inline-with-buttons.html deleted file mode 100644 index 17bc78b..0000000 --- a/examples/html/cookies-inline-with-buttons.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookie Inline with Buttons using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-
-

- We use cookies to analyze our traffic and create a smooth user experience. -

-
-
-
- -
-
- -
-
-
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-inline-with-icon-and-buttons.html b/examples/html/cookies-inline-with-icon-and-buttons.html deleted file mode 100644 index eb7ef58..0000000 --- a/examples/html/cookies-inline-with-icon-and-buttons.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookie Inline with Icon and Buttons using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
- - -
-

- We are using cookies to improve your experience! -

-

- By clicking "Allow all", you agree to use of all cookies. Visit our Cookies Policy to learn more. -

-
- - -
-
-
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-modal-style-with-select-language.html b/examples/html/cookies-modal-style-with-select-language.html deleted file mode 100644 index f5cd011..0000000 --- a/examples/html/cookies-modal-style-with-select-language.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Modal Style Cookie with Select Language using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- -
-
- - - - - - - -
-
- - - -
-
-

- Before you continue to use Preline -

-
- -

- We use cookies and data to -

- -
- -
- - - -
-

- Deliver and maintain Preline services -

-
-
- - - -
- - - - -
-

- Track outages and protect against spam, fraud and abuse -

-
-
- - - -
- - - -
-

- Measure audience engagement and site statistics to understand how our services are used and enhance the quality of those services -

-
-
- -
- -

- If you choose to 'Accept all', we will also use cookies and data to -

- -
- -
- - - -
-

- Develop and improve new services -

-
-
- - - -
- - - -
-

- Deliver and measure the effectiveness of ads -

-
-
- - - -
- - - -
-

- Show personalised content, depending on your settings -

-
-
- - - -
- - - - -
-

- Show personalised ads, depending on your settings -

-
-
- -
- -

- If you choose to 'Reject all', we will not use cookies for these additional purposes. -

- -

- Non-personalised content is influenced by things like the content that you’re currently viewing, activity in your active Search session, and your location. Non-personalised ads are influenced by the content that you’re currently viewing and your general location. -

-
- - - -
-
-
- - -
-
-
- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-on-gradient-bg.html b/examples/html/cookies-on-gradient-bg.html deleted file mode 100644 index 23b442f..0000000 --- a/examples/html/cookies-on-gradient-bg.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookie on Gradient Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-

- This website uses cookies to enhance your browsing experience. -

- - Learn more - - - - -
- - -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-scrollable-content-with-collapse.html b/examples/html/cookies-scrollable-content-with-collapse.html deleted file mode 100644 index 7f4296f..0000000 --- a/examples/html/cookies-scrollable-content-with-collapse.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Scrollable Cookie Content with Collapse using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-

- Allow the use of cookies? -

- -

- We use cookies and similar technologies to help: -

- -
- -
- - - -
-

- Provide and improve content on Htmlstream Products -

-
-
- - - -
- - - -
-

- Provide a safer experience by using information that we receive from cookies on and off Preline -

-
-
- - - -
- - - -
-

- Provide and improve Htmlstream Products for people who have an account -

-
-
- -
- -

- For analytics and to provide certain features and improve our services for you, we use tools from other companies on Preline. -

- -

- You can allow the use of all cookies, just essential cookies or you can choose more options below. You can learn more about cookies and how we use them, and review or change your choice at any time in our Cookies Policy. -

- -
- -
- - -
- - - -
- - -
- -
-
- - - - -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-simple-with-dismiss-button.html b/examples/html/cookies-simple-with-dismiss-button.html deleted file mode 100644 index 13ff70b..0000000 --- a/examples/html/cookies-simple-with-dismiss-button.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple Cookie with Dismiss button using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
-

- By continuing to use this site you consent to the use of cookies in accordance with our Cookies Policy. -

- -
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cookies-simple-with-icon-and-dismiss-button.html b/examples/html/cookies-simple-with-icon-and-dismiss-button.html deleted file mode 100644 index 5a15ab1..0000000 --- a/examples/html/cookies-simple-with-icon-and-dismiss-button.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple with Icon and Dismiss Button using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- By browsing this website, you accept our Cookies Policy -

- -
- -
-
-
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cover-page-with-form.html b/examples/html/cover-page-with-form.html deleted file mode 100644 index 237870a..0000000 --- a/examples/html/cover-page-with-form.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cover Page with Form using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- - - - - - -

- Get notified when we launch -

-

- Preline PRO -

- -
-
-
- -
- -
- - - -
-
-
- -
- -
- -
- - - -
-
-
- -
- -
-
-
-
-
- - - -
-
-

© 2023 Preline. A product of Htmlstream

-
-
- - - - - - \ No newline at end of file diff --git a/examples/html/cover-page.html b/examples/html/cover-page.html deleted file mode 100644 index 27e845e..0000000 --- a/examples/html/cover-page.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cover Page using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - -
- -
- -
- - - -
-
-

Cover Page

-

Cover is a one-page template for building simple and beautiful home pages using Tailwind CSS.

- -
-
- - - -
-
-

Cover template for Preline

-
-
- -
- - - - - \ No newline at end of file diff --git a/examples/html/double-header.html b/examples/html/double-header.html deleted file mode 100644 index da431ee..0000000 --- a/examples/html/double-header.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Double Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - -
- -
- -
- - - -
- - - - -
- -
-

Starter Pages & Examples

-

Double Header using Tailwind CSS

-

This is a double navbar example using Tailwind CSS.

- -
- -
-
- -
- - - - - \ No newline at end of file diff --git a/examples/html/error-404.html b/examples/html/error-404.html deleted file mode 100644 index 235cac2..0000000 --- a/examples/html/error-404.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Error 404 using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - -
- -
- -
- - - -
-
-

404

-

-

Oops, something went wrong.

-

Sorry, we couldn't find your page.

- -
-
- - - -
-
-

© All Rights Reserved. 2022.

-
-
- -
- - - - - \ No newline at end of file diff --git a/examples/html/faq-center-aligned-with-active-bg-gray.html b/examples/html/faq-center-aligned-with-active-bg-gray.html deleted file mode 100644 index dc4dde2..0000000 --- a/examples/html/faq-center-aligned-with-active-bg-gray.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - FAQ Section with Center Aligned with Active Background Gray using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Your questions, answered

-

Answers to the most frequently asked questions.

-
- - -
- -
-
- -
-

- Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback. -

-
-
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/faq-right-aligned-with-border-bottom.html b/examples/html/faq-right-aligned-with-border-bottom.html deleted file mode 100644 index 2e0dc78..0000000 --- a/examples/html/faq-right-aligned-with-border-bottom.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - FAQ Section with Right Aligned with Border Bottom using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-
-

Frequently
asked questions

- -
-
- - -
- -
-
- -
-

- Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback. -

-
-
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/faq-simple-2-cols-grid.html b/examples/html/faq-simple-2-cols-grid.html deleted file mode 100644 index 335c585..0000000 --- a/examples/html/faq-simple-2-cols-grid.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple FAQ Section with 2-cols Grid using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

- Frequently Asked Questions -

-
- - -
- -
-
-

- Can I cancel at anytime? -

-

- Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback. -

-
- - -
-

- My team has credits. How do we use them? -

-

- Once your team signs up for a subscription plan. This is where we sit down, grab a cup of coffee and dial in the details. -

-
- - -
-

- How does Preline's pricing work? -

-

- Our subscriptions are tiered. Understanding the task at hand and ironing out the wrinkles is key. -

-
- - -
-

- How secure is Preline? -

-

- Protecting the data you trust to Preline is our first priority. This part is really crucial in keeping the project in line to completion. -

-
- - -
-

- Do you offer discounts? -

-

- We've built in discounts at each tier for teams. The time has come to bring those ideas and plans to life. -

-
- - -
-

- What is your refund policy? -

-

- We offer refunds. We aim high at being focused on building relationships with our clients and community. -

-
- -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/faq-simple-with-divider-and-icon.html b/examples/html/faq-simple-with-divider-and-icon.html deleted file mode 100644 index 919beae..0000000 --- a/examples/html/faq-simple-with-divider-and-icon.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple FAQ with Divider and Icon using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

You might be wondering...

-
- - -
-
-
- - - - - -
-

- Can I cancel at anytime? -

-

- Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback. -

-
-
-
- -
-
- - - - - -
-

- My team has credits. How do we use them? -

-

- Once your team signs up for a subscription plan. This is where we sit down, grab a cup of coffee and dial in the details. -

-
-
-
- -
-
- - - - - -
-

- How does Preline's pricing work? -

-

- Our subscriptions are tiered. Understanding the task at hand and ironing out the wrinkles is key. -

-
-
-
- -
-
- - - - - -
-

- How secure is Preline? -

-

- Protecting the data you trust to Preline is our first priority. This part is really crucial in keeping the project in line to completion. -

-
-
-
- -
-
- - - - - -
-

- How do I get access to a theme I purchased? -

-

- If you lose the link for a theme you purchased, don't panic! We've got you covered. You can login to your account, tap your avatar in the upper right corner, and tap Purchases. If you didn't create a login or can't remember the information, you can use our handy Redownload page, just remember to use the same email you originally made your purchases with. -

-
-
-
- -
-
- - - - - -
-

- Upgrade License Type -

-

- There may be times when you need to upgrade your license from the original type you purchased and we have a solution that ensures you can apply your original purchase cost to the new license purchase. -

-
-
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/feedback-hero-format-hire-us.html b/examples/html/feedback-hero-format-hire-us.html deleted file mode 100644 index 6975f0a..0000000 --- a/examples/html/feedback-hero-format-hire-us.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Format Hire Us using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

- Hire us -

-

- We help brands and platforms turn big ideas into beautiful digital products and experiences. -

- -
-

- What can I expect? -

- -
    -
  • - - - - - Industry-leading design - -
  • - -
  • - - - - - Developer community support - -
  • - -
  • - - - - - Simple and affordable - -
  • -
-
- - -
-

- Enjoyed by: -

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
- -
- Image Description - Image Description - Image Description - - - - - -
- - - Trusted by over 37k customer - -
-
- - -
- -
-

- Fill in the form -

- -
-
- -
-
- - -
- -
- - -
-
- - -
- - -
- - -
-
- - -
- -
- - -
-
- - -
- - -
-
- - - -
-
- -
-
- -
-
- - -
- -
-
- -
-

- We'll get back to you in 1-2 business days. -

-
-
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/feedback-post-comment-in-card.html b/examples/html/feedback-post-comment-in-card.html deleted file mode 100644 index 794bd7a..0000000 --- a/examples/html/feedback-post-comment-in-card.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Post Comment in Card using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Post a comment -

-
- - -
-
-
- - -
- -
- - -
- -
- -
- -
-
- -
- -
-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/feedback-simple-center-aligned.html b/examples/html/feedback-simple-center-aligned.html deleted file mode 100644 index 51e4ea3..0000000 --- a/examples/html/feedback-simple-center-aligned.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Format Hire Us using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Ready to hire us? -

-

- Tell us your story and we’ll be in touch. -

-
- -
- -
-
- -
-
- - -
- -
- - -
-
- - -
- - -
- - -
-
- - -
- -
- - -
-
- - -
- - -
-
- - - -
-
- -
-
- -
-
- - -
- -
- -
-

- We'll get back to you in 1-2 business days. -

-
-
- -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fg-cards-on-a-background-image.html b/examples/html/fg-cards-on-a-background-image.html deleted file mode 100644 index 158faa9..0000000 --- a/examples/html/fg-cards-on-a-background-image.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Features Cards on a Background Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
- -
- - - -
- -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fg-container-size-image-with-icon-blocks.html b/examples/html/fg-container-size-image-with-icon-blocks.html deleted file mode 100644 index 60db79d..0000000 --- a/examples/html/fg-container-size-image-with-icon-blocks.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Container Size Image with Icon Blocks Features Section using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- Image Description -
- - -
-
-

- We tackle the challenges start-ups face -

-

- Besides working with start-up enterprises as a partner for digitalization, we have built enterprise products for common pain points that we have encountered in various products and projects. -

-
- - -
-
- -
- - - - -
-

- Creative minds -

-

- We choose our teams carefully. Our people are the secret to great work. -

-
-
- - - -
- - - -
-

- Simple and affordable -

-

- From boarding passes to movie tickets, there's pretty much nothing you can't store with Preline. -

-
-
- - - -
- - - - -
-

- Industry-leading documentation -

-

- Our documentation and extensive Client libraries contain everything a business needs to build a custom integration. -

-
-
- - - -
- - - -
-

- Designing for people -

-

- We actively pursue the right balance between functionality and aesthetics, creating delightful experiences. -

-
-
- -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fg-simple-with-a-single-image.html b/examples/html/fg-simple-with-a-single-image.html deleted file mode 100644 index 2ef70c8..0000000 --- a/examples/html/fg-simple-with-a-single-image.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simnple Features Section with a Single Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
- Image Description -
- - -
-
- -
-

- We tackle the challenges start-ups face -

-

- Besides working with start-up enterprises as a partner for digitalization, we have built enterprise products for common pain points that we have encountered in various products and projects. -

-
- - - -
    -
  • - - - - - - - - - Easy & fast designing - -
  • - -
  • - - - - - - - - - Powerful features - -
  • - -
  • - - - - - - - - - User Experience Design - -
  • -
- -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fg-three-center-aligned-images-with-a-content.html b/examples/html/fg-three-center-aligned-images-with-a-content.html deleted file mode 100644 index a5e5a42..0000000 --- a/examples/html/fg-three-center-aligned-images-with-a-content.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Three Center Aligned Images Features Section with a Content using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
- -
-
- Image Description -
- - -
- Image Description -
- - -
- Image Description -
- -
- -
- - -
-
- -
-

- Collaborative tools to design user experience -

-

- Use our tools to explore your ideas and make your vision come true. Then share your work easily. -

-
- - - -
    -
  • - - - - - - - - - Less routine – more creativity - -
  • - -
  • - - - - - - - - - Hundreds of thousands saved - -
  • - -
  • - - - - - - - - - Scale budgets efficiently - -
  • -
- -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fg-with-4-center-aligned-images-and-icon-blocks.html b/examples/html/fg-with-4-center-aligned-images-and-icon-blocks.html deleted file mode 100644 index 10a4374..0000000 --- a/examples/html/fg-with-4-center-aligned-images-and-icon-blocks.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Features With 4 Center Aligned Images and Icon Blocks using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

- Explore tools -

-

- The powerful and flexible theme for all kinds of businesses. -

-
- - - -
- -
- - - - -
-

- Responsive -

-
-
- - - -
- - - - - -
-

- Customizable -

-
-
- - - -
- - - - -
-

- 24/7 Support -

-
-
- -
- - - -
- - - -
- Image Description -
- - -
- Image Description -
- - -
- Image Description -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fn-horizontal-tabs-with-icon-and-description.html b/examples/html/fn-horizontal-tabs-with-icon-and-description.html deleted file mode 100644 index 1d95cf0..0000000 --- a/examples/html/fn-horizontal-tabs-with-icon-and-description.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Horizontal Tabs with Icon and Description using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - - -
-
- -
- - - - - -
-
-
- - - -
-
www.preline.co
-
- -
- Image Description -
-
- -
- -
- - - - -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fn-vertical-tabs-with-overlapping-background.html b/examples/html/fn-vertical-tabs-with-overlapping-background.html deleted file mode 100644 index 3ec5d26..0000000 --- a/examples/html/fn-vertical-tabs-with-overlapping-background.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Vertical Tabs with Overlapping Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-

- Fully customizable rules to match your unique needs -

- - - - -
- - -
-
- -
-
- Image Description -
- - - - -
- - - - - -
-
- -
- - - -
-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/footer-5-cols-with-language-dropdown.html b/examples/html/footer-5-cols-with-language-dropdown.html deleted file mode 100644 index 6ed39b7..0000000 --- a/examples/html/footer-5-cols-with-language-dropdown.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 5-cols Footer with Language Dropdown using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/footer-center-aligned-3-links-with-socials.html b/examples/html/footer-center-aligned-3-links-with-socials.html deleted file mode 100644 index cb56187..0000000 --- a/examples/html/footer-center-aligned-3-links-with-socials.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Footer Center Aligned 3 Links with Socials using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/footer-dark-bg-with-subscribe-form.html b/examples/html/footer-dark-bg-with-subscribe-form.html deleted file mode 100644 index 78d64e4..0000000 --- a/examples/html/footer-dark-bg-with-subscribe-form.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Dark Footer Background with 5-cols using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/footer-simple-center-aligned.html b/examples/html/footer-simple-center-aligned.html deleted file mode 100644 index 73ca179..0000000 --- a/examples/html/footer-simple-center-aligned.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Footer Simple Center Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/fs-one-main-with-three-follow-ups.html b/examples/html/fs-one-main-with-three-follow-ups.html deleted file mode 100644 index 6f219ff..0000000 --- a/examples/html/fs-one-main-with-three-follow-ups.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - One Main Stats with Three Follow Ups using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
- -
-

- 92% - - - - - +7% this month - -

-

of U.S. adults have bought from businesses using Space

-
- -
- - -
-
- -
-

99.95%

-

in fulfilling orders

-
- - - -
-

2,000+

-

partner with Preline

-
- - - -
-

85%

-

this year alone

-
- -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/fs-simple-3-cols-with-primary-color.html b/examples/html/fs-simple-3-cols-with-primary-color.html deleted file mode 100644 index b482ca5..0000000 --- a/examples/html/fs-simple-3-cols-with-primary-color.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Simple 3-cols Stats with Primary Color using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-

Accuracy rate

-

99.95%

-

in fulfilling orders

-
- - - -
-

Startup businesses

-

2,000+

-

partner with Preline

-
- - - -
-

Happy customer

-

85%

-

this year alone

-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/header-floating.html b/examples/html/header-floating.html deleted file mode 100644 index 72ccbcb..0000000 --- a/examples/html/header-floating.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Floating Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Floating Header using Tailwind CSS

-

This is a floating navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/header-offcanvas.html b/examples/html/header-offcanvas.html deleted file mode 100644 index 845ce57..0000000 --- a/examples/html/header-offcanvas.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Header Offcanvas using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Header Offcanvas using Tailwind CSS

-

This example shows how responsive offcanvas menus work within the navbar using Tailwind CSS.

-

You'll see an offcanvas and a responsive navbar—each with offcanvases built in. Resize your browser window to the small breakpoint to see the toggle for the offcanvas.

- -
- -
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/header-primary-bg.html b/examples/html/header-primary-bg.html deleted file mode 100644 index 56e3236..0000000 --- a/examples/html/header-primary-bg.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Primary Background Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Primary Background Header using Tailwind CSS

-

This is a primary background navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/header-with-topbar.html b/examples/html/header-with-topbar.html deleted file mode 100644 index 1965790..0000000 --- a/examples/html/header-with-topbar.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Header with Topbar using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - - - -
- - - -
-
- -
-

Starter Pages & Examples

-

Header with Topbar using Tailwind CSS

-

This is a base navbar example with topbar using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-center-aligned-in-dark-bg.html b/examples/html/hero-center-aligned-in-dark-bg.html deleted file mode 100644 index 7d17a2f..0000000 --- a/examples/html/hero-center-aligned-in-dark-bg.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Center Aligned Hero in Dark Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- - - - - -
-

- Now it's easier than ever to build products -

-
- - -
-

Preline is a large open-source project, crafted with Tailwind CSS framework by Hmlstream.

-
- - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-center-aligned-search-with-tags.html b/examples/html/hero-center-aligned-search-with-tags.html deleted file mode 100644 index 018efe6..0000000 --- a/examples/html/hero-center-aligned-search-with-tags.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Center Aligned Search with Tags Hero using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

- Insights -

- -

- Stay in the know with insights from industry experts. -

- -
- -
-
-
- - -
- -
-
- - - - - - - - - -
- - -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-center-aligned-with-a-form.html b/examples/html/hero-center-aligned-with-a-form.html deleted file mode 100644 index a7d3190..0000000 --- a/examples/html/hero-center-aligned-with-a-form.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Center Aligned with a Form using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
- -
-

- Small business solutions -

-

- Turn online shoppers into lifetime customers -

-
- - - -
-
- -
- Image Description - Image Description - Image Description - Image Description - - 7k+ - -
- -
- -
- -
-
Trust pilot
-
Rated best over 37k reviews
-
-
- - - -
-
-
- - -
-
- - -
- -
-
- - - - - - - - - -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-center-aligned-with-video-play-button-on-image.html b/examples/html/hero-center-aligned-with-video-play-button-on-image.html deleted file mode 100644 index c3908da..0000000 --- a/examples/html/hero-center-aligned-with-video-play-button-on-image.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Center Aligned with Video Play Button on Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

Designed for you to get more simple

-

Build your business here. Take it anywhere.

-
- -
-
- - - -
-
-
- -
-
-
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-gradient-bg.html b/examples/html/hero-gradient-bg.html deleted file mode 100644 index 6c3f2fc..0000000 --- a/examples/html/hero-gradient-bg.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Gradient Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - - -
-
-
-

- Preline: A vision for 2023 -

- - -
-

- The Intuitive Web Solutions -

-
- - -
-

Preline UI is an open-source set of prebuilt UI components, ready-to-use examples and Figma design system based on the utility-first Tailwind CSS framework.

-
- - - - -
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-split-section-with-an-image-and-a-form.html b/examples/html/hero-split-section-with-an-image-and-a-form.html deleted file mode 100644 index 75fa8a9..0000000 --- a/examples/html/hero-split-section-with-an-image-and-a-form.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Split Hero Section with an Image and a Form using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
- -

- Solving problems for every team -

-

- Built on standard web technology, teams use Preline to build beautiful cross-platform hybrid apps in a fraction of the time. -

- - -
- -
- -
Or
- - -
-
- - -
- -
- - -
- -
- - -
- -
- -
-
- -
-
- - - -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-with-email-input.html b/examples/html/hero-with-email-input.html deleted file mode 100644 index 5871a4b..0000000 --- a/examples/html/hero-with-email-input.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Section with Email Input using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

Build Better Products

-

Introducing a new way for your brand to reach the creative community.

- -
-
- - -
- - Request demo - -
- - -
- Trusted by: - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
- - -
- Image Description -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-with-image-and-reviews.html b/examples/html/hero-with-image-and-reviews.html deleted file mode 100644 index 4649cb0..0000000 --- a/examples/html/hero-with-image-and-reviews.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Section with Email Input using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

Start your journey with Preline

-

Hand-picked professionals and expertly crafted components, designed for any kind of entrepreneur.

- - - - - - -
- -
-
- - - - - - - - - - - - - - - -
- -

- 4.6 /5 - from 12k reviews -

- -
- - - - - - - - - - -
-
- - - -
-
- - - - - - - - - - - - - - - - -
- -

- 4.8 /5 - from 5k reviews -

- -
- - - - - - -
-
- -
- -
- - -
- Image Description -
- - -
- - - - - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-with-polygon-bg-element.html b/examples/html/hero-with-polygon-bg-element.html deleted file mode 100644 index 80cb0d9..0000000 --- a/examples/html/hero-with-polygon-bg-element.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Polygon Background Element using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- - - - - -
-

- Let's Build - Together -

-
- - -
-

Preline UI is an open-source set of prebuilt UI components, ready-to-use examples and Figma design system based on the utility-first Tailwind CSS framework.

-
- - - - - -
- Package Manager: - npm - - - Installation Guide - - - - -
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/hero-with-squared-bg-element.html b/examples/html/hero-with-squared-bg-element.html deleted file mode 100644 index 988c3d2..0000000 --- a/examples/html/hero-with-squared-bg-element.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Hero Squared Background Element using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- - - - - -
-

- Supercharged Preline Experience -

-
- - -
-

Preline is a large open-source project, crafted with Tailwind CSS framework by Hmlstream.

-
- - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-2-cols-grid.html b/examples/html/icon-2-cols-grid.html deleted file mode 100644 index a23e6e0..0000000 --- a/examples/html/icon-2-cols-grid.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section 2-cols Grid using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
- -
- - - - -
-

- Creative minds -

-

- We choose our teams carefully. Our people are the secret to great work. -

-
-
- - - -
- - - -
-

- Effortless updates -

-

- Benefit from automatic updates to all boards any time you need to make a change to your website. -

-
-
- - - -
- - - -
-

- Strong empathy -

-

- We've user tested our own process by shipping over 1k products for clients. -

-
-
- -
- - -
- -
- - - -
-

- Conquer the best -

-

- We stay lean and help your product do one thing well. -

-
-
- - - -
- - - -
-

- Designing for people -

-

- We actively pursue the right balance between functionality and aesthetics, creating delightful experiences. -

-
-
- - - -
- - - -
-

- Simple and affordable -

-

- From boarding passes to movie tickets, there's pretty much nothing you can't store with Preline. -

-
-
- -
- -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-blue-bg-with-gray-bg-on-hover.html b/examples/html/icon-blue-bg-with-gray-bg-on-hover.html deleted file mode 100644 index c1ffcee..0000000 --- a/examples/html/icon-blue-bg-with-gray-bg-on-hover.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Solid Blue Backgrond Icon with Gray Background on Hover using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-border-gradient.html b/examples/html/icon-border-gradient.html deleted file mode 100644 index 37908a5..0000000 --- a/examples/html/icon-border-gradient.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Border Gradient using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
- - - - -
-
-

Responsive

-

Responsive, and mobile-first project on the web

-
-
- - - -
-
- - - - - -
-
-

Customizable

-

Components are easily customized and extendable

-
-
- - - -
-
- - - - -
-
-

Documentation

-

Every component and plugin is well documented

-
-
- - - -
-
- - - - -
-
-

24/7 Support

-

Contact us 24 hours a day, 7 days a week

-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-center-aligned.html b/examples/html/icon-center-aligned.html deleted file mode 100644 index a3d168a..0000000 --- a/examples/html/icon-center-aligned.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section Center Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
- - - - -
-
-

Responsive

-

Responsive, and mobile-first project on the web

-
-
- - - -
-
- - - - - -
-
-

Customizable

-

Components are easily customized and extendable

-
-
- - - -
-
- - - - -
-
-

Documentation

-

Every component and plugin is well documented

-
-
- - - -
-
- - - - -
-
-

24/7 Support

-

Contact us 24 hours a day, 7 days a week

-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-description-on-left-icon-blocks-on-right.html b/examples/html/icon-description-on-left-icon-blocks-on-right.html deleted file mode 100644 index 8617dd5..0000000 --- a/examples/html/icon-description-on-left-icon-blocks-on-right.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section Center Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
-

- Collaborative tools to design better user experience -

-

- We help businesses bring ideas to life in the digital world, by designing and implementing the technology tools that they need to win. -

-

- Contact sales to learn more - - - -

-
- - -
- -
- - - - - - - -
-

- Industry-leading documentation -

-

- Our documentation and extensive Client libraries contain everything a business needs to build a custom integration in a fraction of the time. -

-
-
- - - -
- - - - - - - -
-

- Developer community support -

-

- We actively contribute to open-source projects—giving back to the community through development, patches, and sponsorships. -

-
-
- - - -
- - - - - - -
-

- Simple and affordable -

-

- From boarding passes to movie tickets, there's pretty much nothing you can't store with Preline. -

-
-
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-gray-bg-on-hover.html b/examples/html/icon-gray-bg-on-hover.html deleted file mode 100644 index aeb19e6..0000000 --- a/examples/html/icon-gray-bg-on-hover.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section with Gray Background on Hover using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-medium-size-description-with-icon-blocks.html b/examples/html/icon-medium-size-description-with-icon-blocks.html deleted file mode 100644 index 14138c7..0000000 --- a/examples/html/icon-medium-size-description-with-icon-blocks.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section Medium Size Desription with Icon Blocks using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-

- Our vision -

-

- For as long as there have been cities, the public square has been a fundamental part of the urban landscape - an open, approachable space to meet and engage with friends and neighbours. Space aims to capture this spirit of bringing people together in an exciting, welcoming environment. -

-
- -
- -
- - - - -
-

- High quality Co-Living spaces -

-

- Our fully furnished spaces are designed and purpose-built with Co-Living in mind, featuring high-end finishes and amenities that go far beyond traditional apartment buildings. -

-
-
- - - -
- - - -
-

- Fostering vibrant communities -

-

- Our passion is bringing people together. Beyond creating beautiful spaces, we provide shared experiences. -

-
-
- - - -
- - - -
-

- Simple and all-inclusive -

-

- We worry about the details so that our residents don't have to. From our online application process to simple, all-inclusive billing we aim to make the living experience as effortless as possible. -

-
-
- -
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-simple-left-aligned.html b/examples/html/icon-simple-left-aligned.html deleted file mode 100644 index a6db0df..0000000 --- a/examples/html/icon-simple-left-aligned.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Icon Section Simple Left Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
- - - - -
-
-
-
-

Responsive

-

Responsive, and mobile-first project on the web

-
-
- - - -
- - - - - -
-
-
-
-

Customizable

-

Components are easily customized and extendable

-
-
- - - -
- - - - -
-
-
-
-

Documentation

-

Every component and plugin is well documented

-
-
- - - -
- - - - -
-
-
-
-

24/7 Support

-

Contact us 24 hours a day, 7 days a week

-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-square-shape-bordered.html b/examples/html/icon-square-shape-bordered.html deleted file mode 100644 index f06b304..0000000 --- a/examples/html/icon-square-shape-bordered.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Square Shape Bordered Icon Section using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- - - - -
- - -
-

- Creative minds -

-
-
- - - -
- -
- - - -
- - -
-

- Effortless updates -

-
-
- - - -
- -
- - - -
- - -
-

- Strong empathy -

-
-
- - - -
- -
- - - -
- - -
-

- Conquer the best -

-
-
- - - -
- -
- - - -
- - -
-

- Designing for people -

-
-
- - - -
- -
- - - -
- - -
-

- Simple and affordable -

-
-
- - - -
- -
- - - -
- - -
-

- Get freelance work -

-
-
- - - -
- -
- - - -
- - -
-

- Sell your goods -

-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/icon-stacked-cards.html b/examples/html/icon-stacked-cards.html deleted file mode 100644 index c9d5543..0000000 --- a/examples/html/icon-stacked-cards.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Stacked Icons Cards using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-
-
- - - - -
-
-

Build your portfolio

-
-
-

The simplest way to keep your portfolio always up-to-date.

-
- - - -
-
-
- - - -
-
-

Get freelance work

-
-
-

New design projects delivered to your inbox each morning.

-
- - - -
-
-
- - - -
-
-

Sell your goods

-
-
-

Get your goods in front of millions of potential customers with ease.

-
- - - -
-
-
- - - -
-
-

Get freelance work

-
-
-

New design projects delivered to your inbox each morning.

-
- - - -
-
-
- - - -
-
-

Sell your goods

-
-
-

Get your goods in front of millions of potential customers with ease.

-
- - - -
-
-
- - - - -
-
-

Build your portfolio

-
-
-

The simplest way to keep your portfolio always up-to-date.

-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/invoice.html b/examples/html/invoice.html deleted file mode 100644 index 7236278..0000000 --- a/examples/html/invoice.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Invoice using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
- -
-
- - - - - - -

Preline Inc.

-
- - -
-

Invoice #

- 3682303 - -
- 45 Roker Terrace
- Latheronwheel
- KW5 8NW, London
- United Kingdom
-
-
- -
- - - -
-
-

Bill to:

-

Sara Williams

-
- 280 Suzanne Throughway,
- Breannabury, OR 45801,
- United States
-
-
- - -
- -
-
-
Invoice date:
-
03/10/2018
-
-
-
Due date:
-
03/11/2018
-
-
- -
- -
- - - -
-
- - - - -
-
-
Item
-

Design UX and UI

-
-
-
Qty
-

1

-
-
-
Rate
-

5

-
-
-
Amount
-

$500

-
-
- -
- -
-
-
Item
-

Web project

-
-
-
Qty
-

1

-
-
-
Rate
-

24

-
-
-
Amount
-

$1250

-
-
- -
- -
-
-
Item
-

SEO

-
-
-
Qty
-

1

-
-
-
Rate
-

6

-
-
-
Amount
-

$2000

-
-
-
-
- - - -
-
- -
-
-
Subtotal:
-
$2750.00
-
- -
-
Total:
-
$2750.00
-
- -
-
Tax:
-
$39.00
-
- -
-
Amount paid:
-
$2789.00
-
- -
-
Due balance:
-
$0.00
-
-
- -
-
- - -
-

Thank you!

-

If you have any questions concerning this invoice, use the following contact information:

-
-

example@site.com

-

+1 (062) 109-9222

-
-
- -

© 2022 Preline.

-
- - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/left-aligned-header.html b/examples/html/left-aligned-header.html deleted file mode 100644 index 32f98a7..0000000 --- a/examples/html/left-aligned-header.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Left Aligned Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Left Aligned Header using Tailwind CSS

-

This example is a quick exercise to illustrate how left aligned navbar works using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/masonry-cards-on-images.html b/examples/html/masonry-cards-on-images.html deleted file mode 100644 index 53295cb..0000000 --- a/examples/html/masonry-cards-on-images.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Masonry Cards on Images using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/mega-menu-custom-size-with-icon-text-link-and-bg-gray-card.html b/examples/html/mega-menu-custom-size-with-icon-text-link-and-bg-gray-card.html deleted file mode 100644 index 4b5577f..0000000 --- a/examples/html/mega-menu-custom-size-with-icon-text-link-and-bg-gray-card.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Custom Size with Icon Text Link and Bg Gray Card Mega Menu using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Custom Size with Icon Text Link and Bg Gray Card Mega Menu using Tailwind CSS

-

This is a mega menu navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/mega-menu-dropdown-style-with-icon-and-description.html b/examples/html/mega-menu-dropdown-style-with-icon-and-description.html deleted file mode 100644 index 7c3d1a3..0000000 --- a/examples/html/mega-menu-dropdown-style-with-icon-and-description.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Dropdown Style with Icon and Description Mega Menu using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Dropdown Style with Icon and Description Mega Menu using Tailwind CSS

-

This is a mega menu navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/mega-menu-header.html b/examples/html/mega-menu-header.html deleted file mode 100644 index 5de2632..0000000 --- a/examples/html/mega-menu-header.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Mega Menu Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Mega Menu Header using Tailwind CSS

-

This is a mega menu navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-bg-gray-on-hover-cards.html b/examples/html/modal-bg-gray-on-hover-cards.html deleted file mode 100644 index a3c6178..0000000 --- a/examples/html/modal-bg-gray-on-hover-cards.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Background Gray on hover Cards Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-card-style-switch-notifications.html b/examples/html/modal-card-style-switch-notifications.html deleted file mode 100644 index fa21dea..0000000 --- a/examples/html/modal-card-style-switch-notifications.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Card Style Switch Notifications Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-cookies.html b/examples/html/modal-cookies.html deleted file mode 100644 index 53f256c..0000000 --- a/examples/html/modal-cookies.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cookies Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-danger-alert.html b/examples/html/modal-danger-alert.html deleted file mode 100644 index d1153f7..0000000 --- a/examples/html/modal-danger-alert.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Danger Alert Notifications Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-recover-account.html b/examples/html/modal-recover-account.html deleted file mode 100644 index c1008b5..0000000 --- a/examples/html/modal-recover-account.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Recover Account Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-sign-out-alert-small-window.html b/examples/html/modal-sign-out-alert-small-window.html deleted file mode 100644 index efe66aa..0000000 --- a/examples/html/modal-sign-out-alert-small-window.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign Out Alert Small Window Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-sign-out-alert.html b/examples/html/modal-sign-out-alert.html deleted file mode 100644 index c96e676..0000000 --- a/examples/html/modal-sign-out-alert.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign Out Alert Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-signin.html b/examples/html/modal-signin.html deleted file mode 100644 index bbb5cee..0000000 --- a/examples/html/modal-signin.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign in Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-signup.html b/examples/html/modal-signup.html deleted file mode 100644 index a9df695..0000000 --- a/examples/html/modal-signup.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign up Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-subscription-with-image.html b/examples/html/modal-subscription-with-image.html deleted file mode 100644 index 09d46c5..0000000 --- a/examples/html/modal-subscription-with-image.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Subscription with Image Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-task-created-alert.html b/examples/html/modal-task-created-alert.html deleted file mode 100644 index 17c9c48..0000000 --- a/examples/html/modal-task-created-alert.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Task Created Alert Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - -
- - - - - - \ No newline at end of file diff --git a/examples/html/modal-upgrade-to-pro.html b/examples/html/modal-upgrade-to-pro.html deleted file mode 100644 index 1896ba2..0000000 --- a/examples/html/modal-upgrade-to-pro.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Upgrade to Pro Modal using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- - - - -
- - - - - - \ No newline at end of file diff --git a/examples/html/page-demos-pricing.html b/examples/html/page-demos-pricing.html deleted file mode 100644 index e708677..0000000 --- a/examples/html/page-demos-pricing.html +++ /dev/null @@ -1,2191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Pricing Page using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
- -
- - - -
- - - - -
- -
-

Simple, transparent pricing

-

Whatever your status, our offers evolve according to your needs.

-
- - - -
- - - - - -
- - - -
- -
-

Free

- Free -

Get started with basic features

- -
    -
  • - - - - - 1 user - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Get started - -
- - - -
-

Most popular

-

Startup

- - $39 - -

All the basics for starting a new business

- -
    -
  • - - - - - 2 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Get started - -
- - - -
-

Team

- - $89 - -

Everything you need for a growing business

- -
    -
  • - - - - - 5 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Get started - -
- - - -
-

Enterprise

- - $149 - -

Advanced features for scaling your business

- -
    -
  • - - - - - 10 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Get started - -
- -
- - - -
-

Trusted by Open Source, enterprise, and more than 99,000 of you

-
- - - -
- - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
-
- -
- - -
-
-
-

Compare plans

-
- - - - - - -
- -
    - -
  • - - General - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Number of seats - -
  • - - - -
  • -
    - - Free - - - 1 - -
    -
  • - - - -
  • -
    - - Startup - - - Up to 3 - -
    -
  • - - - -
  • -
    - - Team - - - Up to 10 - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Storage - -
  • - - - -
  • -
    - - Free - - - 15 GB - -
    -
  • - - - -
  • -
    - - Startup - - - 1 TB - -
    -
  • - - - -
  • -
    - - Team - - - 15 TB - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Email sharing - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Any time, anywhere access - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Financial data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Open/High/Low/Close - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Price-volume difference indicator - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - On-chain data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Network growth - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Average token age consumed - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Exchange flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total ERC20 exchange funds flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Transaction volume - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total circulation (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Velocity of tokens (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - ETH gas used - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Social data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Dev activity - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Topic search - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Relative social dominance - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - - - - - -
-

- Need a custom plan? -

- - -
- -
-
- - - -
-
- - - - - -
- - - -
- -
- - - - -

- To say that switching to Preline has been life-changing is an understatement. My business has tripled and I got my life back. -

- -
-
-
- Image Description -
-
-

- Nicole Grazioso -

-

- Head of Finance -

-
-
-
-
- -
- -
- -
-
- - - -
- -
-
-
-

Frequently
asked questions

- -
-
- - -
- -
-
- -
-
-

- Yes, you can cancel anytime no questions are asked while you cancel but we would highly appreciate if you will give us some feedback. -

-
-
-
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -
- -
- -
- - - - - - - - - - \ No newline at end of file diff --git a/examples/html/pricing-blocks-with-bordered-gradients.html b/examples/html/pricing-blocks-with-bordered-gradients.html deleted file mode 100644 index 192e540..0000000 --- a/examples/html/pricing-blocks-with-bordered-gradients.html +++ /dev/null @@ -1,1677 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Pricing Blocks with Bordered Gradients using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Find the right plan for your team

-

Pay as you go service, cancel anytime.

-
- - - -
-
- -
-
-

Free

-
- -
- - Free - -
- -
-
    -
  • - 1 user -
  • - -
  • - Plan features -
  • - -
  • - Product support -
  • -
-
- - -
- - - -
-
-

Startup

-
- -
- - $ - 39 - -
- -
-
    -
  • - 2 users -
  • - -
  • - Plan features -
  • - -
  • - Product support -
  • -
-
- - -
- - - -
-
-

Team

-
- -
- - $ - 89 - -
- -
-
    -
  • - 5 users -
  • - -
  • - Plan features -
  • - -
  • - Product support -
  • -
-
- - -
- - - -
-
-

Enterprise

-
- -
- - $ - 149 - -
- -
-
    -
  • - 10 users -
  • - -
  • - Plan features -
  • - -
  • - Product support -
  • -
-
- - -
- -
-
- - - -
- - -
- -
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/pricing-card-header-style.html b/examples/html/pricing-card-header-style.html deleted file mode 100644 index adc50ea..0000000 --- a/examples/html/pricing-card-header-style.html +++ /dev/null @@ -1,1702 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Card Header style Pricing using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

Simple, transparent pricing

-

Increase your teams productivity. Get things done in rapid time.

-
- -
- - - - - -
- -
    - -
  • - - General - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Number of seats - -
  • - - - -
  • -
    - - Free - - - 1 - -
    -
  • - - - -
  • -
    - - Startup - - - Up to 3 - -
    -
  • - - - -
  • -
    - - Team - - - Up to 10 - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Storage - -
  • - - - -
  • -
    - - Free - - - 15 GB - -
    -
  • - - - -
  • -
    - - Startup - - - 1 TB - -
    -
  • - - - -
  • -
    - - Team - - - 15 TB - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Email sharing - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Any time, anywhere access - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Financial data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Open/High/Low/Close - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Price-volume difference indicator - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - On-chain data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Network growth - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Average token age consumed - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Exchange flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total ERC20 exchange funds flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Transaction volume - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total circulation (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Velocity of tokens (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - ETH gas used - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Social data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Dev activity - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Topic search - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Relative social dominance - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - - - -
- - -
- -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/pricing-cards.html b/examples/html/pricing-cards.html deleted file mode 100644 index 476a6cc..0000000 --- a/examples/html/pricing-cards.html +++ /dev/null @@ -1,1716 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Pricing Cards using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Pricing

-

Whatever your status, our offers evolve according to your needs.

-
- - - -
- - - - - -
- - - -
- -
-

Free

- Free -

Forever free

- -
    -
  • - - - - - 1 user - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Sign up - -
- - - -
-

Most popular

-

Startup

- - $ - 39 - -

All the basics for starting a new business

- -
    -
  • - - - - - 2 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Sign up - -
- - - -
-

Team

- - $ - 89 - -

Everything you need for a growing business

- -
    -
  • - - - - - 5 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Sign up - -
- - - -
-

Enterprise

- - $ - 149 - -

Advanced features for scaling your business

- -
    -
  • - - - - - 10 users - -
  • - -
  • - - - - - Plan features - -
  • - -
  • - - - - - Product support - -
  • -
- - - Sign up - -
- -
- - - -
-
-

Compare plans

-
- - -
-
-
-

Free

-
- - - - - - - - - - - - - - - - - - - -
- Financial data -
FeatureIncluded
Open/High/Low/Close - - - - - - Yes -
Price-volume difference indicator - - - - - - No -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- On-chain data -
FeatureIncluded
Network growth - - - - - - No -
Average token age consumed - - - - - - Yes -
Exchange flow - - - - - - No -
Total ERC20 exchange funds flow - - - - - - No -
Transaction volume - - - - - - Yes -
Total circulation (beta) - - - - - - No -
Velocity of tokens (beta) - - - - - - Yes -
ETH gas used - - - - - - No -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Social data -
FeatureIncluded
Dev activity - - - - - - No -
Topic search - - - - - - Yes -
Relative social dominance - - - - - - No -
Total social volume - - - - - - No -
-
- -
-
-

Startup

-
- - - - - - - - - - - - - - - - - - - -
- Financial data -
FeatureIncluded
Open/High/Low/Close - - - - - - Yes -
Price-volume difference indicator - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- On-chain data -
FeatureIncluded
Network growth - - - - - - No -
Average token age consumed - - - - - - No -
Exchange flow - - - - - - No -
Total ERC20 exchange funds flow - - - - - - No -
Transaction volume - - - - - - Yes -
Total circulation (beta) - - - - - - Yes -
Velocity of tokens (beta) - - - - - - Yes -
ETH gas used - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Social data -
FeatureIncluded
Dev activity - - - - - - Yes -
Topic search - - - - - - Yes -
Relative social dominance - - - - - - No -
Total social volume - - - - - - Yes -
-
- -
-
-

Team

-
- - - - - - - - - - - - - - - - - - - -
- Financial data -
FeatureIncluded
Open/High/Low/Close - - - - - - Yes -
Price-volume difference indicator - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- On-chain data -
FeatureIncluded
Network growth - - - - - - Yes -
Average token age consumed - - - - - - Yes -
Exchange flow - - - - - - Yes -
Total ERC20 exchange funds flow - - - - - - Yes -
Transaction volume - - - - - - Yes -
Total circulation (beta) - - - - - - Yes -
Velocity of tokens (beta) - - - - - - No -
ETH gas used - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Social data -
FeatureIncluded
Dev activity - - - - - - No -
Topic search - - - - - - Yes -
Relative social dominance - - - - - - Yes -
Total social volume - - - - - - No -
-
- -
-
-

Enterprise

-
- - - - - - - - - - - - - - - - - - - -
- Financial data -
FeatureIncluded
Open/High/Low/Close - - - - - - Yes -
Price-volume difference indicator - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- On-chain data -
FeatureIncluded
Network growth - - - - - - Yes -
Average token age consumed - - - - - - Yes -
Exchange flow - - - - - - Yes -
Total ERC20 exchange funds flow - - - - - - Yes -
Transaction volume - - - - - - Yes -
Total circulation (beta) - - - - - - Yes -
Velocity of tokens (beta) - - - - - - Yes -
ETH gas used - - - - - - Yes -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Social data -
FeatureIncluded
Dev activity - - - - - - Yes -
Topic search - - - - - - Yes -
Relative social dominance - - - - - - Yes -
Total social volume - - - - - - Yes -
-
-
- - - - - -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/pricing-with-2-cards.html b/examples/html/pricing-with-2-cards.html deleted file mode 100644 index e27b60a..0000000 --- a/examples/html/pricing-with-2-cards.html +++ /dev/null @@ -1,1635 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Pricing with 2 Cards using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-

- Solo, agency or team? We’ve got you covered. -

-
- - -
- -
-
- -
-

Professional

-
Everything a small team needs.
- -
- $18 - .00 - USD / monthly -
- -
- -
    -
  • - - - - - - Up to 10 people - -
  • - -
  • - - - - - - Collect data - -
  • - -
  • - - - - - - Code extensibility - -
  • -
- - - -
    -
  • - - - - - - Custom reports - -
  • - -
  • - - - - - - Product support - -
  • - -
  • - - - - - - Activity reporting - -
  • -
- -
- -
-
-

Cancel anytime.

-

No card required.

-
- -
- -
-
-
- -
- -
- -
-

Teams

-
For growing businesses.
- Most popular - -
- $36 - .99 - USD / monthly -
- -
- -
    -
  • - - - - - - Up to 10 people - -
  • - -
  • - - - - - - Collect data - -
  • - -
  • - - - - - - Code extensibility - -
  • -
- - - -
    -
  • - - - - - - Custom reports - -
  • - -
  • - - - - - - Product support - -
  • - -
  • - - - - - - Activity reporting - -
  • -
- -
- -
-
-

Cancel anytime.

-

No card required.

-
- -
- -
-
-
- -
-
- - - - - - - - - -
- -
-

- Prices in USD. Taxes may apply. -

-
-
-
- - - -
-
-
-

Compare plans

-
- - - - - - -
- -
    - -
  • - - General - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Number of seats - -
  • - - - -
  • -
    - - Free - - - 1 - -
    -
  • - - - -
  • -
    - - Startup - - - Up to 3 - -
    -
  • - - - -
  • -
    - - Team - - - Up to 10 - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Storage - -
  • - - - -
  • -
    - - Free - - - 15 GB - -
    -
  • - - - -
  • -
    - - Startup - - - 1 TB - -
    -
  • - - - -
  • -
    - - Team - - - 15 TB - -
    -
  • - - - -
  • -
    - - Enterprise - - - Unlimited - -
    -
  • - -
- - - -
    - -
  • - - Email sharing - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Any time, anywhere access - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Financial data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Open/High/Low/Close - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Price-volume difference indicator - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - On-chain data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Network growth - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Average token age consumed - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Exchange flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total ERC20 exchange funds flow - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Transaction volume - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Total circulation (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Velocity of tokens (beta) - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - ETH gas used - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - -
- -
    - -
  • - - Social data - -
  • - - - - - - - - - - - - - - - - - -
- - - -
    - -
  • - - Dev activity - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Topic search - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- - - -
    - -
  • - - Relative social dominance - -
  • - - - -
  • -
    - - Free - - - - -
    -
  • - - - -
  • -
    - - Startup - - - - -
    -
  • - - - -
  • -
    - - Team - - - - -
    -
  • - - - -
  • -
    - - Enterprise - - - - -
    -
  • - -
- -
- - - - - - - -
-

- Need a custom plan? -

- - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/recover-account.html b/examples/html/recover-account.html deleted file mode 100644 index c7ee7e1..0000000 --- a/examples/html/recover-account.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Recover Account using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
-
-
-

Forgot password?

-

- Remember your password? - - Sign in here - -

-
- -
- -
-
- -
- -
- - -
- -
- - - -
-
- -
-
-
- -

- - - - - Get the source code - - - - - - Back to examples - -

-
- - - - - - \ No newline at end of file diff --git a/examples/html/scrollspy-onepage-menu.html b/examples/html/scrollspy-onepage-menu.html deleted file mode 100644 index d8eacae..0000000 --- a/examples/html/scrollspy-onepage-menu.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Scrollspy: Onepage Menu using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
-
- -
-

Starter Pages & Examples

-

Scrollspy: Onepage Menu using Tailwind CSS

-

This example is a quick exercise to illustrate how scrollspy works with navbar using Tailwind CSS. It will automatically update navigation or list group components based on scroll position to indicate which link is currently active in the viewport.

- -
- -
- -
-

Account section

-
- -
-

Work section

-
- -
-

Blog section

-
- -
-

Dropdown: First section

-
- -
-

Dropdown: Second section

-
- -
-

Dropdown: Third section

-
-
-
- - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/html/scrollspy-sticky-sidebar.html b/examples/html/scrollspy-sticky-sidebar.html deleted file mode 100644 index ad3ccd4..0000000 --- a/examples/html/scrollspy-sticky-sidebar.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Scrollspy: Sticky Sidebar using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - - - - - -
- -
-
- - - -
-
- - - - - - - -
-
- -
-

Starter Pages & Examples

-

Scrollspy: Sticky Sidebar using Tailwind CSS

-

This example is a quick exercise to illustrate how scrollspy works with fixed sidebar using Tailwind CSS. It will automatically update navigation or list group components based on scroll position to indicate which link is currently active in the viewport.

- -
- - - -
-
-
-

First section

-
- -
-

Second section

-
- -
-

Third section

-
- -
-

Fourth section

-
- -
-

Fifth section

-
- -
-

Sixth section

-
-
-
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/signin.html b/examples/html/signin.html deleted file mode 100644 index a97a764..0000000 --- a/examples/html/signin.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign in using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
-
-
-

Sign in

-

- Don't have an account yet? - - Sign up here - -

-
- -
- - -
Or
- - -
-
- -
- -
- - -
- -
- - - -
-
- - Forgot password? -
-
- - -
- -
- - - -
-
- -
-
- -
-
- - - -
-
- -
-
-
- -

- - - - - Get the source code - - - - - - Back to examples - -

-
- - - - - - \ No newline at end of file diff --git a/examples/html/signup.html b/examples/html/signup.html deleted file mode 100644 index 4d8213b..0000000 --- a/examples/html/signup.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sign up using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
-
-
-

Sign up

-

- Already have an account? - - Sign in here - -

-
- -
- - -
Or
- - -
-
- -
- -
- - -
- -
- - - -
- -
- - -
- -
- - - -
- -
- - -
- -
- - - -
-
- -
-
- -
-
- - - -
-
- -
-
-
- -

- - - - - Get the source code - - - - - - Back to examples - -

-
- - - - - - \ No newline at end of file diff --git a/examples/html/sticky-floating-header.html b/examples/html/sticky-floating-header.html deleted file mode 100644 index a1dcc25..0000000 --- a/examples/html/sticky-floating-header.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sticky Floating Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Sticky Floating Header using Tailwind CSS

-

This is a floating navbar example using Tailwind CSS.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/sticky-footer-header.html b/examples/html/sticky-footer-header.html deleted file mode 100644 index 98553b8..0000000 --- a/examples/html/sticky-footer-header.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sticky Footer & Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Sticky Footer & Header using Tailwind CSS

-

Attach a navbar to the top and a footer to the bottom of the viewport using Tailwind CSS.

- -
- -
-
- - - -
-
-

Place sticky footer content here.

-
-
- - - - - - \ No newline at end of file diff --git a/examples/html/sticky-footer.html b/examples/html/sticky-footer.html deleted file mode 100644 index e3b24d2..0000000 --- a/examples/html/sticky-footer.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sticky Footer using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
-
- -
-

Starter Pages & Examples

-

Sticky Footer using Tailwind CSS

-

Pin a footer to the bottom of the viewport in desktop browsers with this custom HTML and CSS using Tailwind CSS.

- -
- -
-
- - - -
-
-

Place sticky footer content here.

-
-
- - - - - - \ No newline at end of file diff --git a/examples/html/sticky-header.html b/examples/html/sticky-header.html deleted file mode 100644 index 3e79ad3..0000000 --- a/examples/html/sticky-header.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Sticky Header using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- - - -
-
- -
-

Starter Pages & Examples

-

Sticky Header using Tailwind CSS

-

This example is a quick exercise to illustrate how fixed to top navbar works using Tailwind CSS. As you scroll, it will remain fixed to the top of your browser's viewport.

- -
- -
-
- - - - - - \ No newline at end of file diff --git a/examples/html/subscribe-simple-center-aligned.html b/examples/html/subscribe-simple-center-aligned.html deleted file mode 100644 index 792f65d..0000000 --- a/examples/html/subscribe-simple-center-aligned.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Subscribe Form with Simple Center Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

Sign up to our newsletter

-
- -
-
-
- - -
- - Subscribe - -
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/subscribe-simple-right-aligned.html b/examples/html/subscribe-simple-right-aligned.html deleted file mode 100644 index ed9f722..0000000 --- a/examples/html/subscribe-simple-right-aligned.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Subscribe Form with Simple Right Aligned using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
-
-

Subscribe

-

- Subscribe and start making the most of every engagement. -

-
- -
-
-
-
- - -
- - Subscribe - -
-

- No spam, unsubscribe at any time -

-
-
-
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/team-card-style-with-description-and-socials.html b/examples/html/team-card-style-with-description-and-socials.html deleted file mode 100644 index 56b8439..0000000 --- a/examples/html/team-card-style-with-description-and-socials.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Card style Team with Description and Socials using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Our leadership

-

Creative people

-
- - - -
-
-
- Image Description -
-

- David Forren -

-

- Founder / CEO -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Amil Evara -

-

- UI/UX Designer -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Ebele Egbuna -

-

- Support Consultant -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Maria Powers -

-

- Director of sales -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Delia Pawelke -

-

- Front-end Developer -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Tom Lowry -

-

- UI/UX Designer -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Louise Donadieu -

-

- Support Consultant -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - -
-
- Image Description -
-

- Jeff Fisher -

-

- Project Manager -

-
-
- -

- I am an ambitious workaholic, but apart from that, pretty simple person. -

- - - - -
- - - -

- We are hiring! -

-
- - See all opening positions - - - - -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/team-inline-small-squared-image-with-socials.html b/examples/html/team-inline-small-squared-image-with-socials.html deleted file mode 100644 index b053d1a..0000000 --- a/examples/html/team-inline-small-squared-image-with-socials.html +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Inline Small Squared Image with Socials Team Section using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Meet the crew

-

Creative people

-
- - - -
-
- Image Description - -
-
-

- David Forren -

-

- Founder / CEO -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Amil Evara -

-

- UI/UX Designer -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Ebele Egbuna -

-

- Support Consultant -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Maria Powers -

-

- Director of sales -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Delia Pawelke -

-

- Front-end Developer -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Tom Lowry -

-

- UI/UX Designer -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Louise Donadieu -

-

- Support Consultant -

-
- - - - -
-
- - -
- Image Description - -
-
-

- Jeff Fisher -

-

- Project Manager -

-
- - - - -
-
- - -
- Image Description - -
-

- We are hiring! -

- - Check out / Careers - -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/team-small-circular-image-size.html b/examples/html/team-small-circular-image-size.html deleted file mode 100644 index 9a8d31d..0000000 --- a/examples/html/team-small-circular-image-size.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Team Section with Small Circular Image Size using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Our team

-

Creative people

-
- - - -
-
- Image Description -
-

- David Forren -

-

- Founder / CEO -

-
-
- - -
- Image Description -
-

- Amil Evara -

-

- UI/UX Designer -

-
-
- - -
- Image Description -
-

- Ebele Egbuna -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Maria Powers -

-

- Director of sales -

-
-
- - -
- Image Description -
-

- Delia Pawelke -

-

- Front-end Developer -

-
-
- - -
- Image Description -
-

- Tom Lowry -

-

- UI/UX Designer -

-
-
- - -
- Image Description -
-

- Louise Donadieu -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Jeff Fisher -

-

- Project Manager -

-
-
- - -
- Image Description -
-

- Sophia Harrington -

-

- Project Manager -

-
-
- - -
- Image Description -
-

- Christina Kray -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Amy Forren -

-

- Product Designer -

-
-
- - -
- Image Description -
-

- Philip Williams -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Brian Lofoten -

-

- UI/UX Designer -

-
-
- - -
- Image Description -
-

- Jessica Dorsey -

-

- Director of sales -

-
-
- - -
- Image Description -
-

- Nick Jackson -

-

- UI/UX Designer -

-
-
- -
- - - -
-
-
- Want to work with us? - - We are hiring - - - - -
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/team-squared-medium-image-size.html b/examples/html/team-squared-medium-image-size.html deleted file mode 100644 index d5a5fcd..0000000 --- a/examples/html/team-squared-medium-image-size.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Team Section with Squared Medium Size Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-

Our leadership

-
- - - -
-
- Image Description -
-

- David Forren -

-

- Founder / CEO -

-
-
- - -
- Image Description -
-

- Amil Evara -

-

- UI/UX Designer -

-
-
- - -
- Image Description -
-

- Ebele Egbuna -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Maria Powers -

-

- Director of sales -

-
-
- - -
- Image Description -
-

- Delia Pawelke -

-

- Front-end Developer -

-
-
- - -
- Image Description -
-

- Tom Lowry -

-

- UI/UX Designer -

-
-
- - -
- Image Description -
-

- Louise Donadieu -

-

- Support Consultant -

-
-
- - -
- Image Description -
-

- Jeff Fisher -

-

- Project Manager -

-
-
- - -
- Image Description -
-

- Sophia Harrington -

-

- Project Manager -

-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-cards-with-stats-in-a-dark-bg.html b/examples/html/testimonials-cards-with-stats-in-a-dark-bg.html deleted file mode 100644 index 60d86b9..0000000 --- a/examples/html/testimonials-cards-with-stats-in-a-dark-bg.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Cards with Stats in a Dark Background using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- -
-

- Loved by business and individuals across the globe -

-
- - - -
- -
-
-
-

- " With Preline, we're able to easily track our performance in full detail. It's become an essential tool for us to grow and engage with our audience. " -

-
- -
-
-
- Image Description -
- -
-

- Josh Tyson -

-

- Product Manager | Capsule -

-
-
-
-
-
- - - -
-
-
-

- " In September, I will be using this theme for 2 years. I went through multiple updates and changes and I'm very glad to see the consistency and effort made by the team. " -

-
- -
-
-
- Image Description -
- -
-

- Luisa -

-

- Senior Director of Operations | Fitbit -

-
-
-
-
-
- - - -
-
-
-

- " Refreshing and Thought provoking design and it changes my view about how I design the websites. Great typography, modern clean white design, nice tones of the color. " -

-
- -
-
-
- Image Description -
- -
-

- Alisa Williams -

-

- Entrepreneur | Happy customer -

-
-
-
-
-
- -
- - - -
- -
-

Accuracy rate

-

99.95%

-

in fulfilling orders

-
- - - -
-

Startup businesses

-

2,000+

-

partner with Preline

-
- - - -
-

Happy customer

-

85%

-

this year alone

-
- -
- - - - - -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-cards.html b/examples/html/testimonials-cards.html deleted file mode 100644 index cfd6a16..0000000 --- a/examples/html/testimonials-cards.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Cards using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - - - - - - - - - - - -

- " I'm absolutely floored by the level of care and attention to detail the team at HS have put into this theme and for one can guarantee that I will be a return customer. " -

-
- -
-

- Nicole Grazioso -

-

- Director Payments & Risk | HubSpot -

-
-
- - - -
-
- - - - -

- " With Preline, we're able to easily track our performance in full detail. It's become an essential tool for us to grow and engage with our audience. " -

-
- -
-

- Josh Tyson -

-

- Product Manager | Capsule -

-
-
- - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- " In September, I will be using this theme for 2 years. I went through multiple updates and changes and I'm very glad to see the consistency and effort made by the team. " -

-
- -
-

- Luisa -

-

- Senior Director of Operations | Fitbit -

-
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-short-review-with-logo-and-stars.html b/examples/html/testimonials-short-review-with-logo-and-stars.html deleted file mode 100644 index 1cb8f1d..0000000 --- a/examples/html/testimonials-short-review-with-logo-and-stars.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Short Review with Logo and Stars using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- -
- - - - -
-

- " Truly great template and costumer support. " -

-
- - -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - - -
-

- " The best one I've ever come across. " -

-
- - -
- - - - - - - - - - - - - - - - -
- -
- - - -
- - - - -
-

- " This is a truly beautiful template. " -

-
- - -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- " There one theme that you want. " -

-
- - -
- - - - - - - - - - - - - - - -
- -
- - - -
- - - - - - - - - - - - - - -
-

- " Great design and thorough documentation. " -

-
- - -
- - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-simple-center-aligned-with-logo.html b/examples/html/testimonials-simple-center-aligned-with-logo.html deleted file mode 100644 index 859d59d..0000000 --- a/examples/html/testimonials-simple-center-aligned-with-logo.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Simple Center Aligned with Logo using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- - - - -
-

- - I just wanted to say that I'm very happy with my purchase of Preline so far. The documentation is outstanding - clear and detailed. -

-
- -
-
Philip
-
Product Manager | Airbnb
-
-
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-with-big-image.html b/examples/html/testimonials-with-big-image.html deleted file mode 100644 index 26008e3..0000000 --- a/examples/html/testimonials-with-big-image.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Big Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
- - - -
- -
- - -
-

- Featured client -

- -

- To say that switching to Preline has been life-changing is an understatement. My business has tripled and I got my life back. -

-
- -
-
-
- Image Description -
-
-
Nicole Grazioso
-
Director Payments & Risk | Airbnb
-
-
-
- - -
- -
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-with-small-image.html b/examples/html/testimonials-with-small-image.html deleted file mode 100644 index 0d9b9ab..0000000 --- a/examples/html/testimonials-with-small-image.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Small Image using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
-
- - - - - -
- - - -
- -
- - - - -

- To say that switching to Preline has been life-changing is an understatement. My business has tripled and I got my life back. -

- -
-
-
- Image Description -
-
-

- Nicole Grazioso -

-

- Head of Finance -

-
-
-
-
- -
- -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/examples/html/testimonials-with-stats.html b/examples/html/testimonials-with-stats.html deleted file mode 100644 index 9a892e8..0000000 --- a/examples/html/testimonials-with-stats.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Testimonials with Stats using Tailwind CSS | Preline UI, crafted with Tailwind CSS - - - - - - - - - - - - - - - -
- -
- -
-
- -
-

- It's all about speed -

-

- We provide you with a test account that can be set up in seconds. Our main focus is getting responses to you as soon as we can. -

-
- - - -
- - -
-

- Amazing people to work with. Very fast and professional partner. -

-
- -
-
-
- Image Description -
-
-
Josh Grazioso
-
Director Payments & Risk | Airbnb
-
-
-
-
- -
- - -
-
- -
    -
  • -
    - 45k+ -
    -

    - users - from new startups to public companies -

    -
  • - -
  • -
    - - - - 23% -
    -

    - increase in traffic on webpages with Looms -

    -
  • - -
  • -
    - - - - 9.3% -
    -

    - boost in reply rates across sales outreach -

    -
  • - -
  • -
    - 2x -
    -

    - faster than previous Preline versions -

    -
  • -
- -
-
- -
- -
- -
- - - - - - \ No newline at end of file diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..8ac63c3 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,688 @@ +export interface ICopyMarkupOptions { + targetSelector: string; + wrapperSelector: string; + limit?: number; +} +export interface ICopyMarkup { + options?: ICopyMarkupOptions; +} +export interface IBasePlugin { + el: E; + options?: O; + events?: {}; +} +declare class HSBasePlugin implements IBasePlugin { + el: E; + options: O; + events?: any; + constructor(el: E, options: O, events?: any); + isIOS(): boolean; + isIpadOS(): boolean; + createCollection(collection: any[], element: any): void; + fireEvent(evt: string, payload?: any): any; + dispatch(evt: string, element: any, payload?: any): void; + on(evt: string, cb: Function): void; + afterTransition(el: HTMLElement, callback: Function): void; + onTransitionEnd(el: HTMLElement, cb: Function): void; + getClassProperty(el: HTMLElement, prop: string, val?: string): string; + getClassPropertyAlt(el: HTMLElement, prop?: string, val?: string): string; + htmlToElement(html: string): HTMLElement; + classToClassList(classes: string, target: HTMLElement, splitter?: string): void; + debounce(func: Function, timeout?: number): (...args: any[]) => void; + checkIfFormElement(target: HTMLElement): boolean; + static isEnoughSpace(el: HTMLElement, toggle: HTMLElement, preferredPosition?: "top" | "bottom" | "auto", space?: number, wrapper?: HTMLElement | null): boolean; + static isParentOrElementHidden(element: any): any; +} +export declare class HSCopyMarkup extends HSBasePlugin implements ICopyMarkup { + private readonly targetSelector; + private readonly wrapperSelector; + private readonly limit; + private target; + private wrapper; + private items; + constructor(el: HTMLElement, options?: ICopyMarkupOptions); + private init; + private copy; + private addPredefinedItems; + private setTarget; + private setWrapper; + private addToItems; + delete(target: HTMLElement): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HSCopyMarkup | { + id: number; + element: HSCopyMarkup; + }; +} +export interface IAccordion { + options?: {}; + show(): void; + hide(): void; +} +export declare class HSAccordion extends HSBasePlugin<{}> implements IAccordion { + private readonly toggle; + content: HTMLElement | null; + private readonly group; + private readonly isAlwaysOpened; + constructor(el: HTMLElement, options?: {}, events?: {}); + private init; + show(): boolean; + hide(): boolean; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HTMLElement | { + id: number; + element: HSAccordion; + }; + static show(target: HTMLElement): void; + static hide(target: HTMLElement): void; + static on(evt: string, target: HTMLElement, cb: Function): void; +} +export interface ICarouselOptions { + currentIndex: number; + loadingClasses?: string | string[]; + isAutoPlay?: boolean; + speed?: number; + isInfiniteLoop?: boolean; +} +export interface ICarousel { + options?: ICarouselOptions; + recalculateWidth(): void; + goToPrev(): void; + goToNext(): void; + goTo(i: number): void; +} +export declare class HSCarousel extends HSBasePlugin implements ICarousel { + private readonly inner; + private readonly slides; + private readonly prev; + private readonly next; + private readonly dots; + private sliderWidth; + private currentIndex; + private readonly loadingClasses; + private readonly loadingClassesRemove; + private readonly loadingClassesAdd; + private readonly afterLoadingClassesAdd; + private readonly isAutoPlay; + private readonly speed; + private readonly isInfiniteLoop; + private timer; + private readonly touchX; + constructor(el: HTMLElement, options?: ICarouselOptions); + private init; + private observeResize; + private calculateWidth; + private addCurrentClass; + private addDisabledClass; + private autoPlay; + private setTimer; + private resetTimer; + private detectDirection; + recalculateWidth(): void; + goToPrev(): void; + goToNext(): void; + goTo(i: number): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HSCarousel | { + id: number; + element: HSCarousel; + }; +} +export interface ICollapse { + options?: {}; + show(): void; + hide(): void; +} +export declare class HSCollapse extends HSBasePlugin<{}> implements ICollapse { + private readonly contentId; + content: HTMLElement | null; + private animationInProcess; + constructor(el: HTMLElement, options?: {}, events?: {}); + private init; + private hideAllMegaMenuItems; + show(): boolean; + hide(): boolean; + static getInstance(target: HTMLElement, isInstance?: boolean): HTMLElement | { + id: number; + element: HSCollapse; + }; + static show(target: HTMLElement): void; + static hide(target: HTMLElement): void; + static on(evt: string, target: HTMLElement, cb: Function): void; +} +export interface IDropdown { + options?: {}; + open(): void; + close(isAnimated: boolean): void; + forceClearState(): void; +} +export interface IHTMLElementPopper extends HTMLElement { + _popper: any; +} +export declare class HSDropdown extends HSBasePlugin<{}, IHTMLElementPopper> implements IDropdown { + private static history; + private readonly toggle; + menu: HTMLElement | null; + private eventMode; + private readonly closeMode; + private animationInProcess; + constructor(el: IHTMLElementPopper, options?: {}, events?: {}); + private init; + resizeHandler(): void; + private onClickHandler; + private onMouseEnterHandler; + private onMouseLeaveHandler; + private destroyPopper; + private absoluteStrategyModifiers; + open(): boolean; + close(isAnimated?: boolean): boolean; + forceClearState(): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): IHTMLElementPopper | { + id: number; + element: HSDropdown; + }; + static open(target: HTMLElement): void; + static close(target: HTMLElement): void; + static accessibility(evt: KeyboardEvent): void; + static onEscape(evt: KeyboardEvent): void; + static onEnter(evt: KeyboardEvent): void; + static onArrow(isArrowUp?: boolean): boolean; + static onStartEnd(isStart?: boolean): boolean; + static onFirstLetter(code: string): boolean; + static closeCurrentlyOpened(evtTarget?: HTMLElement | null, isAnimated?: boolean): void; + static on(evt: string, target: HTMLElement, cb: Function): void; +} +export interface IInputNumberOptions { +} +export interface IInputNumber { + options?: IInputNumberOptions; +} +export declare class HSInputNumber extends HSBasePlugin implements IInputNumber { + private readonly input; + private readonly increment; + private readonly decrement; + private inputValue; + constructor(el: HTMLElement, options?: IInputNumberOptions); + private init; + private build; + private buildInput; + private buildIncrement; + private buildDecrement; + private changeValue; + private disableButtons; + private enableButtons; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HSInputNumber | { + id: number; + element: HSInputNumber; + }; +} +export interface IOverlayOptions { + hiddenClass?: string | null; +} +export interface IOverlay { + options?: IOverlayOptions; + open(): void; + close(): void; +} +export interface ICollectionItem { + id: string | number; + element: T; +} +export declare class HSOverlay extends HSBasePlugin<{}> implements IOverlay { + private openNextOverlay; + private autoHide; + private readonly overlayId; + private readonly hiddenClass; + overlay: HTMLElement | null; + isCloseWhenClickInside: string; + isTabAccessibilityLimited: string; + hasAutofocus: string; + hasAbilityToCloseOnBackdropClick: string; + constructor(el: HTMLElement, options?: IOverlayOptions, events?: {}); + private init; + private hideAuto; + private checkTimer; + private buildBackdrop; + private destroyBackdrop; + private focusElement; + open(): false | Promise; + close(): Promise; + static getInstance(target: HTMLElement, isInstance?: boolean): HTMLElement | ICollectionItem; + static open(target: HTMLElement): void; + static close(target: HTMLElement): void; + static accessibility(evt: KeyboardEvent): boolean; + static onEscape(target: ICollectionItem): void; + static onTab(target: ICollectionItem, focusableElements: HTMLElement[]): boolean; + static on(evt: string, target: HTMLElement, cb: Function): void; +} +export interface IPinInputOptions { + availableCharsRE?: RegExp; +} +export interface IPinInput { + options?: IPinInputOptions; +} +export declare class HSPinInput extends HSBasePlugin implements IPinInput { + private items; + private currentItem; + private currentValue; + private readonly placeholders; + private readonly availableCharsRE; + constructor(el: HTMLElement, options?: IPinInputOptions); + private init; + private build; + private buildInputItems; + private checkIfNumber; + private autoFillAll; + private setCurrentValue; + private toggleCompleted; + private onInput; + private onKeydown; + private onFocusIn; + private onFocusOut; + private onPaste; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HSPinInput | { + id: number; + element: HSPinInput; + }; +} +export interface IRemoveElementOptions { + removeTargetAnimationClass: string; +} +export interface IRemoveElement { + options?: IRemoveElementOptions; +} +export declare class HSRemoveElement extends HSBasePlugin implements IRemoveElement { + private readonly removeTargetId; + private readonly removeTarget; + private readonly removeTargetAnimationClass; + constructor(el: HTMLElement, options?: IRemoveElementOptions); + private init; + private remove; +} +export interface IScrollspy { + options?: {}; +} +export declare class HSScrollspy extends HSBasePlugin<{}> implements IScrollspy { + private activeSection; + private readonly contentId; + private readonly content; + private readonly links; + private readonly sections; + private readonly scrollableId; + private readonly scrollable; + constructor(el: HTMLElement, options?: {}); + private init; + private update; + private scrollTo; + static getInstance(target: HTMLElement, isInstance?: boolean): HTMLElement | { + id: number; + element: HSScrollspy; + }; +} +export interface ISelectOptions { + value?: string | string[]; + isOpened?: boolean; + placeholder?: string; + hasSearch?: boolean; + mode?: string; + viewport?: string; + toggleTag?: string; + toggleClasses?: string; + toggleCountText?: string; + toggleCountTextMinItems?: number; + tagsClasses?: string; + tagsItemTemplate?: string; + tagsItemClasses?: string; + tagsInputClasses?: string; + dropdownTag?: string; + dropdownClasses?: string; + dropdownDirectionClasses?: { + top?: string; + bottom?: string; + }; + dropdownSpace: number; + searchWrapperTemplate?: string; + searchClasses?: string; + searchWrapperClasses?: string; + searchPlaceholder?: string; + searchNoItemsText?: string; + searchNoItemsClasses?: string; + optionTemplate?: string; + optionTag?: string; + optionClasses?: string; + descriptionClasses?: string; + iconClasses?: string; +} +export interface ISelect { + options?: ISelectOptions; + open(): void; + close(): void; + recalculateDirection(): void; +} +export declare class HSSelect extends HSBasePlugin implements ISelect { + value: string | string[] | null; + private readonly placeholder; + private readonly hasSearch; + private readonly mode; + private readonly viewport; + isOpened: boolean | null; + isMultiple: boolean | null; + isDisabled: boolean | null; + private readonly toggleTag; + private readonly toggleClasses; + private readonly toggleCountText; + private readonly toggleCountTextMinItems; + private readonly tagsClasses; + private readonly tagsItemTemplate; + private readonly tagsItemClasses; + private readonly tagsInputClasses; + private readonly dropdownTag; + private readonly dropdownClasses; + private readonly dropdownDirectionClasses; + dropdownSpace: number | null; + private readonly searchWrapperTemplate; + private readonly searchPlaceholder; + private readonly searchClasses; + private readonly searchWrapperClasses; + private readonly optionTag; + private readonly optionTemplate; + private readonly optionClasses; + private readonly descriptionClasses; + private readonly iconClasses; + private animationInProcess; + private wrapper; + private toggle; + private toggleTextWrapper; + private tags; + private tagsItems; + private tagsInput; + private dropdown; + private searchWrapper; + private search; + private selectOptions; + constructor(el: HTMLElement, options?: ISelectOptions); + private init; + private build; + private buildWrapper; + private buildToggle; + private setToggleIcon; + private setToggleTitle; + private buildTags; + private buildTagsItems; + private buildTagsItem; + private getItemByValue; + private setTagsItems; + private buildTagsInput; + private buildDropdown; + private buildSearch; + private buildOption; + private onSelectOption; + private addSelectOption; + private resetTagsInputField; + private clearSelections; + private setNewValue; + private stringFromValue; + private selectSingleItem; + private selectMultipleItems; + private unselectMultipleItems; + private searchOptions; + open(): boolean; + close(): boolean; + recalculateDirection(): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): { + id: number; + element: HSSelect; + } | HSSelect; + static close(target: HTMLElement | string): void; + static closeCurrentlyOpened(evtTarget?: HTMLElement | null): void; + static accessibility(evt: KeyboardEvent): void; + static onEscape(): void; + static onArrow(isArrowUp?: boolean): boolean; + static onTab(isArrowUp?: boolean): boolean; + static onStartEnd(isStart?: boolean): boolean; + static onEnter(evt: Event): void; +} +export interface IStepperOptions { + currentIndex?: number; + isCompleted?: boolean; + mode?: string; +} +export interface IStepper { + options?: IStepperOptions; + setProcessedNavItem(n?: number): void; + unsetProcessedNavItem(n?: number): void; + goToNext(): void; + disableButtons(): void; + enableButtons(): void; + setErrorNavItem(n?: number): void; +} +export declare class HSStepper extends HSBasePlugin<{}> implements IStepper { + private currentIndex; + private readonly mode; + private isCompleted; + private totalSteps; + private navItems; + private contentItems; + private backBtn; + private nextBtn; + private skipBtn; + private completeStepBtn; + private completeStepBtnDefaultText; + private finishBtn; + private resetBtn; + constructor(el: HTMLElement, options?: IStepperOptions); + private init; + private getUncompletedSteps; + private setTotalSteps; + private buildNav; + private buildNavItem; + private addNavItem; + private setCurrentNavItem; + private setCurrentNavItemActions; + private getNavItem; + private setProcessedNavItemActions; + private setErrorNavItemActions; + private unsetCurrentNavItemActions; + private handleNavItemClick; + private buildContent; + private buildContentItem; + private addContentItem; + private setCurrentContentItem; + private hideAllContentItems; + private setCurrentContentItemActions; + private unsetCurrentContentItemActions; + private disableAll; + private disableNavItemActions; + private enableNavItemActions; + private buildButtons; + private buildBackButton; + private handleBackButtonClick; + private checkForTheFirstStep; + private setToDisabled; + private setToNonDisabled; + private buildNextButton; + private unsetProcessedNavItemActions; + private handleNextButtonClick; + private removeOptionalClasses; + private buildSkipButton; + private setSkipItem; + private setSkipItemActions; + private showSkipButton; + private handleSkipButtonClick; + private buildCompleteStepButton; + private changeTextAndDisableCompleteButtonIfStepCompleted; + private setCompleteItem; + private setCompleteItemActions; + private showCompleteStepButton; + private handleCompleteStepButtonClick; + private buildFinishButton; + private setCompleted; + private unsetCompleted; + private showFinishButton; + private handleFinishButtonClick; + private buildResetButton; + private handleResetButtonClick; + setProcessedNavItem(n?: number): void; + unsetProcessedNavItem(n?: number): void; + goToNext(): void; + disableButtons(): void; + enableButtons(): void; + setErrorNavItem(n?: number): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): { + id: string | number; + element: HSStepper; + } | HSStepper; +} +export interface IStrongPasswordOptions { + target: string | HTMLInputElement; + hints?: string; + stripClasses?: string; + minLength?: number; + mode?: string; + popoverSpace?: number; + checksExclude?: string[]; + specialCharactersSet?: string; +} +export interface IStrongPassword { + options?: IStrongPasswordOptions; + recalculateDirection(): void; +} +export declare class HSStrongPassword extends HSBasePlugin implements IStrongPassword { + private readonly target; + private readonly hints; + private readonly stripClasses; + private readonly minLength; + private readonly mode; + private readonly popoverSpace; + private readonly checksExclude; + private readonly specialCharactersSet; + isOpened: boolean; + private strength; + private passedRules; + private weakness; + private rules; + private availableChecks; + constructor(el: HTMLElement, options?: IStrongPasswordOptions); + private init; + private build; + private buildStrips; + private buildHints; + private buildWeakness; + private buildRules; + private setWeaknessText; + private setRulesText; + private togglePopover; + private checkStrength; + private checkIfPassed; + private setStrength; + private hideStrips; + recalculateDirection(): void; + static getInstance(target: HTMLElement | string): HSStrongPassword; +} +export interface ITabs { + options?: {}; +} +export declare class HSTabs extends HSBasePlugin<{}> implements ITabs { + toggles: NodeListOf | null; + private readonly extraToggleId; + private readonly extraToggle; + private current; + private currentContentId; + currentContent: HTMLElement | null; + private prev; + private prevContentId; + private prevContent; + constructor(el: HTMLElement, options?: {}, events?: {}); + private init; + private open; + private change; + static getInstance(target: HTMLElement | string, isInstance?: boolean): { + id: number; + element: HSTabs; + } | HSTabs; + static open(target: HTMLElement): void; + static accessibility(evt: KeyboardEvent): void; + static onArrow(isOpposite?: boolean): void; + static onStartEnd(isOpposite?: boolean): void; + static on(evt: string, target: HTMLElement, cb: Function): void; +} +export interface IToggleCountOptions { + target: string | HTMLInputElement; + min: number; + max: number; + duration: number; +} +export interface IToggleCount { + options?: IToggleCountOptions; + countUp(): void; + countDown(): void; +} +export declare class HSToggleCount extends HSBasePlugin implements IToggleCount { + private readonly target; + private readonly min; + private readonly max; + private readonly duration; + private isChecked; + constructor(el: HTMLElement, options?: IToggleCountOptions); + private init; + private toggle; + private animate; + countUp(): void; + countDown(): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): { + id: number; + element: HSToggleCount; + } | HSToggleCount; +} +export interface ITogglePasswordOptions { + target: string | string[] | HTMLInputElement | HTMLInputElement[]; +} +export interface ITogglePassword { + options?: ITogglePasswordOptions; + show(): void; + hide(): void; +} +export declare class HSTogglePassword extends HSBasePlugin implements ITogglePassword { + private readonly target; + private isShown; + private isMultiple; + private eventType; + constructor(el: HTMLElement, options?: ITogglePasswordOptions); + private init; + private getMultipleToggles; + show(): void; + hide(): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): { + id: number; + element: HSTogglePassword; + } | HSTogglePassword; +} +export interface ITooltip { + options?: {}; + show(): void; + hide(): void; +} +export declare class HSTooltip extends HSBasePlugin<{}> implements ITooltip { + private readonly toggle; + content: HTMLElement | null; + readonly eventMode: string; + private readonly preventPopper; + private popperInstance; + private readonly placement; + private readonly strategy; + constructor(el: HTMLElement, options?: {}, events?: {}); + private init; + private enter; + private leave; + private click; + private focus; + private buildPopper; + show(): void; + hide(): void; + static getInstance(target: HTMLElement | string, isInstance?: boolean): HTMLElement | { + id: number; + element: HSTooltip; + }; + static show(target: HTMLElement): void; + static hide(target: HTMLElement): void; + static on(evt: string, target: HTMLElement, cb: Function): void; +} + +export {}; diff --git a/package-lock.json b/package-lock.json index 23e0fed..4a61a6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6187 +1,2525 @@ { - "name": "preline", - "version": "1.3.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "preline", - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@popperjs/core": "^2.11.2" - }, - "devDependencies": { - "@babel/core": "^7.17.5", - "@babel/preset-env": "^7.16.11", - "babel-loader": "^8.2.3", - "source-map-loader": "^3.0.1", - "webpack": "^5.69.1", - "webpack-cli": "^4.9.2" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.19.tgz", - "integrity": "sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dev": true, - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, - "dependencies": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", - "dev": true - }, - "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz", - "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" - }, - "@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.19.tgz", - "integrity": "sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", - "dev": true, - "requires": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dev": true, - "requires": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webpack": { - "version": "5.69.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.1.tgz", - "integrity": "sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - } - }, - "webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - } - } + "name": "preline", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "preline", + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.11.2" + }, + "devDependencies": { + "javascript-obfuscator": "^4.0.2", + "prettier": "^3.0.0", + "source-map-loader": "^4.0.1", + "ts-loader": "^9.4.2", + "typescript": "^5.0.2", + "webpack-cli": "^5.0.1", + "webpack-obfuscator": "^3.5.1" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@javascript-obfuscator/escodegen": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz", + "integrity": "sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==", + "dev": true, + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true, + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", + "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz", + "integrity": "sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "dev": true, + "peer": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.1.tgz", + "integrity": "sha512-DqJociPbZP1lbZ5SQPk4oag6W7AyaGMO6gSfRwq3PWl4PXTwJpRQJhDq4W0kzrg3w6tJ1SwlvGZ5uKFHY13LIg==", + "dev": true, + "peer": true + }, + "node_modules/@types/validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-NclP0IbzHj/4tJZKFqKh8E7kZdgss+MCUYV9G+TLltFfDA4lFgE4PKPpDIyS2FlcdANIfSx273emkupvChigbw==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.0.tgz", + "integrity": "sha512-K/vuv72vpfSEZoo5KIU0a2FsEoYdW0DUMtMpB5X3LlUwshetMZRZRxB7sCsVji/lFaSxtQQ3aM9O4eMolXkU9w==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", + "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.4.tgz", + "integrity": "sha512-0xRgjgDLdz6G7+vvDLlaRpFatJaJ69uTalZLRSMX5B3VUrDmXcrVA3+6fXXQgmYz7bY9AAgs348XQdmtLsK41A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dev": true, + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001488", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001488.tgz", + "integrity": "sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chance": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz", + "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==", + "dev": true + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/class-validator": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz", + "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==", + "dev": true, + "dependencies": { + "@types/validator": "^13.7.10", + "libphonenumber-js": "^1.10.14", + "validator": "^13.7.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.401", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.401.tgz", + "integrity": "sha512-AswqHsYyEbfSn0x87n31Na/xttUqEAg7NUjpiyxC20MaWKLyadOYHMzyLdF78N1iw+FK8/2KHLpZxRdyRILgtA==", + "dev": true, + "peer": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz", + "integrity": "sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz", + "integrity": "sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==", + "dev": true, + "peer": true + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "peer": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/inversify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz", + "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==", + "dev": true + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/javascript-obfuscator": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.0.2.tgz", + "integrity": "sha512-MRBQREvjEwqEGdwNGG7yp0te5uZBFzrPZdxEs4rDYkPpHhhOQu+E0IhSXP7bO9dIUWXZU0Kkdohsuws525aVGQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.0", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.8.2", + "assert": "2.0.0", + "chalk": "4.1.2", + "chance": "1.1.9", + "class-validator": "0.14.0", + "commander": "10.0.0", + "eslint-scope": "7.1.1", + "eslint-visitor-keys": "3.3.0", + "fast-deep-equal": "3.1.3", + "inversify": "6.0.1", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "2.1.3", + "multimatch": "5.0.0", + "opencollective-postinstall": "2.0.3", + "process": "0.11.10", + "reflect-metadata": "0.1.13", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.5.0" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": "^12.22.0 || ^14.0.0 || ^16.0.0 || ^17.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/javascript-obfuscator" + } + }, + "node_modules/javascript-obfuscator/node_modules/commander": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/javascript-obfuscator/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "peer": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.10.38", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.38.tgz", + "integrity": "sha512-4NjVXVUmpZ9Zsqq6FXa2+MKI+KAI3tOqA0pxXgXGluhpj4ge5didmbWJpMBqGB3AVGv1SnEtKdGTbxjSEG1kCQ==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "peer": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/multi-stage-sourcemap": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/multi-stage-sourcemap/-/multi-stage-sourcemap-0.3.1.tgz", + "integrity": "sha512-UiTLYjqeIoVnJHyWGskwMKIhtZKK9uXUjSTWuwatarrc0d2H/6MAVFdwvEA/aKOHamIn7z4tfvxjz+FYucFpNQ==", + "dev": true, + "dependencies": { + "source-map": "^0.1.34" + } + }, + "node_modules/multi-stage-sourcemap/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true, + "peer": true + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "peer": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", + "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz", + "integrity": "sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", + "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "dev": true + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.17.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.4.tgz", + "integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/validator": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", + "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.83.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.83.1.tgz", + "integrity": "sha512-TNsG9jDScbNuB+Lb/3+vYolPplCS3bbEaJf+Bj0Gw4DhP3ioAflBb1flcRt9zsWITyvOhM96wMQNRWlSX52DgA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.14.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.1.tgz", + "integrity": "sha512-OLJwVMoXnXYH2ncNGU8gxVpUtm3ybvdioiTvHgUyBuyMLKiVvWy+QObzBsMtp5pH7qQoEuWgeEUQ/sU3ZJFzAw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.0", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.4", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-obfuscator": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/webpack-obfuscator/-/webpack-obfuscator-3.5.1.tgz", + "integrity": "sha512-vztsD8oNdkX9FY/K4GTuylNWLGlc0n07vt7sCa+SlixKe/8iGejlxb/ZiKARmaZ2c8AbiBZcB/5hYqeNPydVZA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "multi-stage-sourcemap": "^0.3.1", + "multimatch": "^5.0.0", + "webpack-sources": "^2.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/javascript-obfuscator" + }, + "peerDependencies": { + "javascript-obfuscator": "^2.8.0 || ^3.0.0 || ^4.0.0", + "webpack": "^5.1.0" + } + }, + "node_modules/webpack-obfuscator/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } } diff --git a/package.json b/package.json index 2a013d5..ce48876 100644 --- a/package.json +++ b/package.json @@ -1,54 +1,58 @@ { - "name": "preline", - "version": "1.9.0", - "description": "Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.", - "main": "dist/preline.js", - "repository": "https://github.com/htmlstreamofficial/preline.git", - "homepage": "https://preline.co", - "keywords": [ - "preline", - "html", - "css", - "javascript", - "tailwind", - "tailwind examples", - "tailwind components", - "tailwind components library", - "tailwind elements", - "tailwind library", - "tailwind sections", - "tailwind css", - "tailwind ui", - "tailwind css react", - "tailwind css nextjs", - "tailwind css vue", - "tailwind css nuxtjs", - "tailwind css angular", - "tailwind css astro", - "tailwind css solidjs", - "tailwind css qwik", - "tailwind css svelte", - "tailwind css remix", - "tailwind css laravel" - ], - "author": "Htmlstream", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "build": "webpack" - }, - "devDependencies": { - "@babel/core": "^7.17.5", - "@babel/preset-env": "^7.16.11", - "babel-loader": "^8.2.3", - "source-map-loader": "^3.0.1", - "webpack": "^5.69.1", - "webpack-cli": "^4.9.2" - }, - "dependencies": { - "@popperjs/core": "^2.11.2" - } + "name": "preline", + "version": "2.0.0", + "description": "Preline UI is an open-source set of prebuilt UI components based on the utility-first Tailwind CSS framework.", + "main": "dist/preline.js", + "repository": "https://github.com/htmlstreamofficial/preline.git", + "homepage": "https://preline.co", + "keywords": [ + "preline", + "html", + "css", + "javascript", + "typescript", + "tailwind", + "tailwind examples", + "tailwind components", + "tailwind components library", + "tailwind elements", + "tailwind library", + "tailwind sections", + "tailwind css", + "tailwind ui", + "tailwind css react", + "tailwind css next", + "tailwind css nextjs", + "tailwind css vue", + "tailwind css nuxtjs", + "tailwind css angular", + "tailwind css astro", + "tailwind css solidjs", + "tailwind css qwik", + "tailwind css svelte", + "tailwind css remix", + "tailwind css laravel" + ], + "author": "HtmlStream", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "scripts": { + "watch": "webpack --config-name regular", + "obfuscate": "webpack --config-name obfuscate", + "pretty": "prettier --write \"./**/*.{js,jsx,ts,tsx,json}\"" + }, + "devDependencies": { + "javascript-obfuscator": "^4.0.2", + "prettier": "^3.0.0", + "source-map-loader": "^4.0.1", + "ts-loader": "^9.4.2", + "typescript": "^5.0.2", + "webpack-cli": "^5.0.1", + "webpack-obfuscator": "^3.5.1" + }, + "dependencies": { + "@popperjs/core": "^2.11.2" + } } diff --git a/plugin.js b/plugin.js index f128ef8..a999ec7 100644 --- a/plugin.js +++ b/plugin.js @@ -1,141 +1,416 @@ /* * Plugin - * @version: 1.3.0 - * @author: HtmlStream + * @version: 2.0.0 + * @author: HTMLStream * @requires: tailwindcss ^3.1.2 * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream + * Copyright 2023 HTMLStream */ const plugin = require('tailwindcss/plugin'); module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-dropdown-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-dropdown.open > .${e(`hs-dropdown-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-dropdown.open > .hs-dropdown-menu > .${e(`hs-dropdown-open${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-removing', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-removing.${e(`hs-removing${separator}${className}`)}`; - }); - }); - - addVariant('hs-tooltip-shown', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-tooltip.show .${e(`hs-tooltip-shown${separator}${className}`)}`; - }); - }); - - addVariant('hs-accordion-active', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active.${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active > .hs-accordion-toggle .${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active > .hs-accordion-toggle.${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-collapse-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse.open .${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse.open.${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse-toggle.open .${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse-toggle.open.${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-tab-active', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `[data-hs-tab].active.${e(`hs-tab-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `[data-hs-tab].active .${e(`hs-tab-active${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-overlay-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.open.${e(`hs-overlay-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.open .${e(`hs-overlay-open${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-overlay-backdrop-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-overlay-backdrop.${e(`hs-overlay-backdrop-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-overlay-backdrop .${e(`hs-overlay-backdrop-open${separator}${className}`)}`; - }); - }, - ]); - - addVariant('hs-dark-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.dark .${e(`hs-dark-mode-active${separator}${className}`)}`; - }); - }); - - addVariant('hs-auto-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.auto .${e(`hs-auto-mode-active${separator}${className}`)}`; - }); - }); - - addVariant('hs-scrollspy-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.active.${e(`hs-scrollspy-active${separator}${className}`)}`; - }); - }); - - addVariant('hs-default-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.default .${e(`hs-default-mode-active${separator}${className}`)}`; - }); - }); + addVariant('hs-dropdown-open', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-dropdown.open > .${e( + `hs-dropdown-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-dropdown.open .hs-dropdown-toggle .${e( + `hs-dropdown-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-dropdown.open > .hs-dropdown-menu > .${e( + `hs-dropdown-open${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-removing', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-removing.${e(`hs-removing${separator}${className}`)}`; + }); + }); + + addVariant('hs-tooltip-shown', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-tooltip.show .${e( + `hs-tooltip-shown${separator}${className}`, + )}`; + }); + }); + + addVariant('hs-accordion-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-accordion.active.${e( + `hs-accordion-active${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-accordion.active > .hs-accordion-toggle .${e( + `hs-accordion-active${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-accordion.active > .hs-accordion-toggle.${e( + `hs-accordion-active${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-collapse-open', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-collapse.open .${e( + `hs-collapse-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-collapse.open.${e( + `hs-collapse-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-collapse-toggle.open .${e( + `hs-collapse-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-collapse-toggle.open.${e( + `hs-collapse-open${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-tab-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `[data-hs-tab].active.${e(`hs-tab-active${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `[data-hs-tab].active .${e(`hs-tab-active${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-overlay-open', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.open.${e(`hs-overlay-open${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.open .${e(`hs-overlay-open${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-overlay-backdrop-open', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-overlay-backdrop.${e( + `hs-overlay-backdrop-open${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.hs-overlay-backdrop .${e( + `hs-overlay-backdrop-open${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-scrollspy-active', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e(`hs-scrollspy-active${separator}${className}`)}`; + }); + }); + + addVariant('hs-carousel-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e(`hs-carousel-active${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active .${e(`hs-carousel-active${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-carousel-disabled', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled.${e( + `hs-carousel${separator}disabled${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled .${e( + `hs-carousel${separator}disabled${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-selected', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.selected.${e(`hs-selected${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.selected .${e(`hs-selected${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-select-disabled', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled.${e(`hs-select-disabled${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled .${e(`hs-select-disabled${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-input-number-disabled', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled.${e(`hs-input-number-disabled${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled .${e(`hs-input-number-disabled${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-pin-input-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e(`hs-pin-input-active${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active .${e(`hs-pin-input-active${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-select-opened', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.opened.${e(`hs-select-opened${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-password-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e(`hs-password-active${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active .${e(`hs-password-active${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e(`hs-stepper-active${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active .${e(`hs-stepper-active${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-success', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.success.${e(`hs-stepper-success${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.success .${e(`hs-stepper-success${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-completed', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.completed.${e(`hs-stepper-completed${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.completed .${e(`hs-stepper-completed${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-error', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.error.${e(`hs-stepper-error${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.error .${e(`hs-stepper-error${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-processed', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.processed.${e(`hs-stepper-processed${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.processed .${e(`hs-stepper-processed${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-disabled', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled.${e(`hs-stepper-disabled${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.disabled .${e(`hs-stepper-disabled${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-stepper-skipped', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.skipped.${e(`hs-stepper-skipped${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.skipped .${e(`hs-stepper-skipped${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-strong-password', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.passed.${e(`hs-strong-password${separator}${className}`)}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.passed .${e(`hs-strong-password${separator}${className}`)}`; + }); + }, + ]); + + addVariant('hs-strong-password-accepted', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.accepted.${e( + `hs-strong-password-accepted${separator}${className}`, + )}`; + }); + }, + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.accepted .${e( + `hs-strong-password-accepted${separator}${className}`, + )}`; + }); + }, + ]); + + addVariant('hs-strong-password-active', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.active.${e( + `hs-strong-password-active${separator}${className}`, + )}`; + }); + } + ]); + + addVariant('hs-apexcharts-tooltip-dark', [ + ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.dark.${e( + `hs-apexcharts-tooltip-dark${separator}${className}`, + )}`; + }); + } + ]); + + addVariant('hs-default-mode-active', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.default .${e(`hs-default-mode-active${separator}${className}`)}`; + }); + }); + + addVariant('hs-dark-mode-active', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.dark .${e(`hs-dark-mode-active${separator}${className}`)}`; + }); + }); + + addVariant('hs-auto-mode-active', ({ modifySelectors, separator }) => { + modifySelectors(({ className }) => { + return `.auto .${e(`hs-auto-mode-active${separator}${className}`)}`; + }); + }); }); diff --git a/preline.js b/preline.js index c4072dd..0bf2711 100644 --- a/preline.js +++ b/preline.js @@ -1,2 +1,2 @@ -/*! For license information please see preline.js.LICENSE.txt */ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(self,(function(){return(()=>{"use strict";var e={661:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o{var n=o(714),r=o(765);const i={historyIndex:-1,addHistory:function(e){this.historyIndex=e},existsInHistory:function(e){return e>this.historyIndex},clearHistory:function(){this.historyIndex=-1}};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function s(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(e,t):void 0}}(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 c(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o2&&/MacIntel/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)||e._hover(o)}})),document.addEventListener("keydown",this._keyboardSupport.bind(this)),window.addEventListener("resize",(function(){document.querySelectorAll(".hs-dropdown.open").forEach((function(t){e.close(t,!0)}))}))}},{key:"_closeOthers",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=document.querySelectorAll("".concat(this.selector,".open"));o.forEach((function(o){if(!t||t.closest(".hs-dropdown.open")!==o){var n=(window.getComputedStyle(o).getPropertyValue("--auto-close")||"").replace(" ","");"false"!=n&&"outside"!=n&&e.close(o)}}))}},{key:"_hover",value:function(e){var t=this,o=e.closest(this.selector);this.open(o),document.addEventListener("mousemove",(function e(n){n.target.closest(t.selector)&&n.target.closest(t.selector)!==o.parentElement.closest(t.selector)||(t.close(o),document.removeEventListener("mousemove",e,!0))}),!0)}},{key:"close",value:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.querySelector(".hs-dropdown-menu"),r=function(){e.classList.contains("open")||(n.classList.remove("block"),n.classList.add("hidden"),n.style.inset=null,n.style.position=null,e._popper&&e._popper.destroy())};o||this.afterTransition(e.querySelector("[data-hs-dropdown-transition]")||n,(function(){r()})),n.style.margin=null,e.classList.remove("open"),o&&r(),this._fireEvent("close",e),this._dispatch("close.hs.dropdown",e,e);var i=n.querySelectorAll(".hs-dropdown.open");i.forEach((function(e){t.close(e,!0)}))}},{key:"open",value:function(e){var t=e.querySelector(".hs-dropdown-menu"),o=(window.getComputedStyle(e).getPropertyValue("--placement")||"").replace(" ",""),r=(window.getComputedStyle(e).getPropertyValue("--strategy")||"fixed").replace(" ",""),i=((window.getComputedStyle(e).getPropertyValue("--adaptive")||"adaptive").replace(" ",""),parseInt((window.getComputedStyle(e).getPropertyValue("--offset")||"10").replace(" ","")));if("static"!==r){e._popper&&e._popper.destroy();var a=(0,n.fi)(e,t,{placement:this.positions[o]||"bottom-start",strategy:r,modifiers:[].concat(s("fixed"!==r?this.absoluteStrategyModifiers(e):[]),[{name:"offset",options:{offset:[0,i]}}])});e._popper=a}t.style.margin=null,t.classList.add("block"),t.classList.remove("hidden"),setTimeout((function(){e.classList.add("open")})),this._fireEvent("open",e),this._dispatch("open.hs.dropdown",e,e)}},{key:"_keyboardSupport",value:function(e){var t=document.querySelector(".hs-dropdown.open");if(t)return 27===e.keyCode?(e.preventDefault(),this._esc(t)):40===e.keyCode?(e.preventDefault(),this._down(t)):38===e.keyCode?(e.preventDefault(),this._up(t)):36===e.keyCode?(e.preventDefault(),this._start(t)):35===e.keyCode?(e.preventDefault(),this._end(t)):void this._byChar(t,e.key)}},{key:"_esc",value:function(e){this.close(e)}},{key:"_up",value:function(e){var t=e.querySelector(".hs-dropdown-menu"),o=s(t.querySelectorAll("a")).reverse().filter((function(e){return!e.disabled})),n=t.querySelector("a:focus"),r=o.findIndex((function(e){return e===n}));r+1{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}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,s=!0,c=!1;return{s:function(){o=o.call(e)},n:function(){var e=o.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==o.return||o.return()}finally{if(c)throw a}}}}(e.classList.values());try{for(s.s();!(t=s.n()).done;){var c=t.value;c.startsWith("hs-overlay-backdrop-open:")&&(a+=" ".concat(c))}}catch(e){s.e(e)}finally{s.f()}var l="static"!==this.getClassProperty(e,"--overlay-backdrop","true");"false"===this.getClassProperty(e,"--overlay-backdrop","true")||(n&&((i=document.querySelector(n).cloneNode(!0)).classList.remove("hidden"),a=i.classList,i.classList=""),l&&i.addEventListener("click",(function(){return o.close(e)}),!0),i.setAttribute("data-hs-overlay-backdrop-template",""),document.body.appendChild(i),setTimeout((function(){i.classList=a})))}},{key:"_destroyBackdrop",value:function(){var e=document.querySelector("[data-hs-overlay-backdrop-template]");e&&(this.openNextOverlay&&(e.style.transitionDuration="".concat(1.8*parseFloat(window.getComputedStyle(e).transitionDuration.replace(/[^\d.-]/g,"")),"s")),e.classList.add("opacity-0"),this.afterTransition(e,(function(){e.remove()})))}},{key:"_focusInput",value:function(e){var t=e.querySelector("[autofocus]");t&&t.focus()}}])&&i(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),f}(o(765).Z);window.HSOverlay=new l,document.addEventListener("load",window.HSOverlay.init())},181:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){for(var o=0;o0){if(this.activeSection===r)return;n.forEach((function(e){e.classList.remove("active")}));var u=o.querySelector('[href="#'.concat(r.getAttribute("id"),'"]'));if(u){u.classList.add("active");var f=u.closest("[data-hs-scrollspy-group]");if(f){var p=f.querySelector("[href]");p&&p.classList.add("active")}}this.activeSection=r}}},{key:"_scrollTo",value:function(e){var t=e.$scrollspyEl,o=e.$scrollableEl,n=e.$link,r=document.querySelector(n.getAttribute("href")),i=parseInt(this.getClassProperty(t,"--scrollspy-offset","0")),a=this.getClassProperty(r,"--scrollspy-offset")||i,s=o===document?0:o.offsetTop,c=r.offsetTop-a-s,l=o===document?window:o;this._fireEvent("scroll",t),this._dispatch("scroll.hs.scrollspy",t,t),window.history.replaceState(null,null,n.getAttribute("href")),l.scrollTo({top:c,left:0,behavior:"smooth"})}}])&&r(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),u}(o(765).Z);window.HSScrollspy=new c,document.addEventListener("load",window.HSScrollspy.init())},51:(e,t,o)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?i(e,t):void 0}}(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 i(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o{var n=o(765),r=o(714);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e,t){for(var o=0;o{function n(e,t){for(var o=0;or});var r=function(){function e(t,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$collection=[],this.selector=t,this.config=o,this.events={}}var t,o;return t=e,o=[{key:"_fireEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.events.hasOwnProperty(e)&&this.events[e](t)}},{key:"_dispatch",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new CustomEvent(e,{detail:{payload:o},bubbles:!0,cancelable:!0,composed:!1});t.dispatchEvent(n)}},{key:"on",value:function(e,t){this.events[e]=t}},{key:"afterTransition",value:function(e,t){"all 0s ease 0s"!==window.getComputedStyle(e,null).getPropertyValue("transition")?e.addEventListener("transitionend",(function o(){t(),e.removeEventListener("transitionend",o,!0)}),!0):t()}},{key:"getClassProperty",value:function(e,t){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=(window.getComputedStyle(e).getPropertyValue(t)||o).replace(" ","");return n}}],o&&n(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e}()},714:(e,t,o)=>{function n(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function r(e){return e instanceof n(e).Element||e instanceof Element}function i(e){return e instanceof n(e).HTMLElement||e instanceof HTMLElement}function a(e){return"undefined"!=typeof ShadowRoot&&(e instanceof n(e).ShadowRoot||e instanceof ShadowRoot)}o.d(t,{fi:()=>ce});var s=Math.max,c=Math.min,l=Math.round;function u(e,t){void 0===t&&(t=!1);var o=e.getBoundingClientRect(),n=1,r=1;if(i(e)&&t){var a=e.offsetHeight,s=e.offsetWidth;s>0&&(n=l(o.width)/s||1),a>0&&(r=l(o.height)/a||1)}return{width:o.width/n,height:o.height/r,top:o.top/r,right:o.right/n,bottom:o.bottom/r,left:o.left/n,x:o.left/n,y:o.top/r}}function f(e){var t=n(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((r(e)?e.ownerDocument:e.document)||window.document).documentElement}function y(e){return u(d(e)).left+f(e).scrollLeft}function h(e){return n(e).getComputedStyle(e)}function v(e){var t=h(e),o=t.overflow,n=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(o+r+n)}function m(e,t,o){void 0===o&&(o=!1);var r,a,s=i(t),c=i(t)&&function(e){var t=e.getBoundingClientRect(),o=l(t.width)/e.offsetWidth||1,n=l(t.height)/e.offsetHeight||1;return 1!==o||1!==n}(t),h=d(t),m=u(e,c),b={scrollLeft:0,scrollTop:0},g={x:0,y:0};return(s||!s&&!o)&&(("body"!==p(t)||v(h))&&(b=(r=t)!==n(r)&&i(r)?{scrollLeft:(a=r).scrollLeft,scrollTop:a.scrollTop}:f(r)),i(t)?((g=u(t,!0)).x+=t.clientLeft,g.y+=t.clientTop):h&&(g.x=y(h))),{x:m.left+b.scrollLeft-g.x,y:m.top+b.scrollTop-g.y,width:m.width,height:m.height}}function b(e){var t=u(e),o=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-o)<=1&&(o=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:o,height:n}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(a(e)?e.host:null)||d(e)}function w(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:i(e)&&v(e)?e:w(g(e))}function O(e,t){var o;void 0===t&&(t=[]);var r=w(e),i=r===(null==(o=e.ownerDocument)?void 0:o.body),a=n(r),s=i?[a].concat(a.visualViewport||[],v(r)?r:[]):r,c=t.concat(s);return i?c:c.concat(O(g(s)))}function S(e){return["table","td","th"].indexOf(p(e))>=0}function x(e){return i(e)&&"fixed"!==h(e).position?e.offsetParent:null}function _(e){for(var t=n(e),o=x(e);o&&S(o)&&"static"===h(o).position;)o=x(o);return o&&("html"===p(o)||"body"===p(o)&&"static"===h(o).position)?t:o||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&i(e)&&"fixed"===h(e).position)return null;for(var o=g(e);i(o)&&["html","body"].indexOf(p(o))<0;){var n=h(o);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return o;o=o.parentNode}return null}(e)||t}var E="top",k="bottom",j="right",P="left",L="auto",A=[E,k,j,P],T="start",C="end",q="viewport",R="popper",D=A.reduce((function(e,t){return e.concat([t+"-"+T,t+"-"+C])}),[]),H=[].concat(A,[L]).reduce((function(e,t){return e.concat([t,t+"-"+T,t+"-"+C])}),[]),B=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function I(e){var t=new Map,o=new Set,n=[];function r(e){o.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!o.has(e)){var n=t.get(e);n&&r(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){o.has(e.name)||r(e)})),n}var M={placement:"bottom",modifiers:[],strategy:"absolute"};function V(){for(var e=arguments.length,t=new Array(e),o=0;o=0?"x":"y"}function z(e){var t,o=e.reference,n=e.element,r=e.placement,i=r?N(r):null,a=r?Z(r):null,s=o.x+o.width/2-n.width/2,c=o.y+o.height/2-n.height/2;switch(i){case E:t={x:s,y:o.y-n.height};break;case k:t={x:s,y:o.y+o.height};break;case j:t={x:o.x+o.width,y:c};break;case P:t={x:o.x-n.width,y:c};break;default:t={x:o.x,y:o.y}}var l=i?U(i):null;if(null!=l){var u="y"===l?"height":"width";switch(a){case T:t[l]=t[l]-(o[u]/2-n[u]/2);break;case C:t[l]=t[l]+(o[u]/2-n[u]/2)}}return t}var F={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(e){var t,o=e.popper,r=e.popperRect,i=e.placement,a=e.variation,s=e.offsets,c=e.position,u=e.gpuAcceleration,f=e.adaptive,p=e.roundOffsets,y=e.isFixed,v=s.x,m=void 0===v?0:v,b=s.y,g=void 0===b?0:b,w="function"==typeof p?p({x:m,y:g}):{x:m,y:g};m=w.x,g=w.y;var O=s.hasOwnProperty("x"),S=s.hasOwnProperty("y"),x=P,L=E,A=window;if(f){var T=_(o),q="clientHeight",R="clientWidth";T===n(o)&&"static"!==h(T=d(o)).position&&"absolute"===c&&(q="scrollHeight",R="scrollWidth"),T=T,(i===E||(i===P||i===j)&&a===C)&&(L=k,g-=(y&&A.visualViewport?A.visualViewport.height:T[q])-r.height,g*=u?1:-1),i!==P&&(i!==E&&i!==k||a!==C)||(x=j,m-=(y&&A.visualViewport?A.visualViewport.width:T[R])-r.width,m*=u?1:-1)}var D,H=Object.assign({position:c},f&&F),B=!0===p?function(e){var t=e.x,o=e.y,n=window.devicePixelRatio||1;return{x:l(t*n)/n||0,y:l(o*n)/n||0}}({x:m,y:g}):{x:m,y:g};return m=B.x,g=B.y,u?Object.assign({},H,((D={})[L]=S?"0":"",D[x]=O?"0":"",D.transform=(A.devicePixelRatio||1)<=1?"translate("+m+"px, "+g+"px)":"translate3d("+m+"px, "+g+"px, 0)",D)):Object.assign({},H,((t={})[L]=S?g+"px":"",t[x]=O?m+"px":"",t.transform="",t))}var Y={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,(function(e){return Y[e]}))}var J={start:"end",end:"start"};function K(e){return e.replace(/start|end/g,(function(e){return J[e]}))}function Q(e,t){var o=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(o&&a(o)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function ee(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function te(e,t){return t===q?ee(function(e){var t=n(e),o=d(e),r=t.visualViewport,i=o.clientWidth,a=o.clientHeight,s=0,c=0;return r&&(i=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,c=r.offsetTop)),{width:i,height:a,x:s+y(e),y:c}}(e)):r(t)?function(e){var t=u(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):ee(function(e){var t,o=d(e),n=f(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=s(o.scrollWidth,o.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=s(o.scrollHeight,o.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-n.scrollLeft+y(e),l=-n.scrollTop;return"rtl"===h(r||o).direction&&(c+=s(o.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:c,y:l}}(d(e)))}function oe(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function ne(e,t){return t.reduce((function(t,o){return t[o]=e,t}),{})}function re(e,t){void 0===t&&(t={});var o=t,n=o.placement,a=void 0===n?e.placement:n,l=o.boundary,f=void 0===l?"clippingParents":l,y=o.rootBoundary,v=void 0===y?q:y,m=o.elementContext,b=void 0===m?R:m,w=o.altBoundary,S=void 0!==w&&w,x=o.padding,P=void 0===x?0:x,L=oe("number"!=typeof P?P:ne(P,A)),T=b===R?"reference":R,C=e.rects.popper,D=e.elements[S?T:b],H=function(e,t,o){var n="clippingParents"===t?function(e){var t=O(g(e)),o=["absolute","fixed"].indexOf(h(e).position)>=0&&i(e)?_(e):e;return r(o)?t.filter((function(e){return r(e)&&Q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),a=[].concat(n,[o]),l=a[0],u=a.reduce((function(t,o){var n=te(e,o);return t.top=s(n.top,t.top),t.right=c(n.right,t.right),t.bottom=c(n.bottom,t.bottom),t.left=s(n.left,t.left),t}),te(e,l));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}(r(D)?D:D.contextElement||d(e.elements.popper),f,v),B=u(e.elements.reference),I=z({reference:B,element:C,strategy:"absolute",placement:a}),M=ee(Object.assign({},C,I)),V=b===R?M:B,W={top:H.top-V.top+L.top,bottom:V.bottom-H.bottom+L.bottom,left:H.left-V.left+L.left,right:V.right-H.right+L.right},$=e.modifiersData.offset;if(b===R&&$){var N=$[a];Object.keys(W).forEach((function(e){var t=[j,k].indexOf(e)>=0?1:-1,o=[E,k].indexOf(e)>=0?"y":"x";W[e]+=N[o]*t}))}return W}function ie(e,t,o){return s(e,c(t,o))}function ae(e,t,o){return void 0===o&&(o={x:0,y:0}),{top:e.top-t.height-o.y,right:e.right-t.width+o.x,bottom:e.bottom-t.height+o.y,left:e.left-t.width-o.x}}function se(e){return[E,j,k,P].some((function(t){return e[t]>=0}))}var ce=W({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,o=e.instance,r=e.options,i=r.scroll,a=void 0===i||i,s=r.resize,c=void 0===s||s,l=n(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach((function(e){e.addEventListener("scroll",o.update,$)})),c&&l.addEventListener("resize",o.update,$),function(){a&&u.forEach((function(e){e.removeEventListener("scroll",o.update,$)})),c&&l.removeEventListener("resize",o.update,$)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,o=e.name;t.modifiersData[o]=z({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,o=e.options,n=o.gpuAcceleration,r=void 0===n||n,i=o.adaptive,a=void 0===i||i,s=o.roundOffsets,c=void 0===s||s,l={placement:N(t.placement),variation:Z(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var o=t.styles[e]||{},n=t.attributes[e]||{},r=t.elements[e];i(r)&&p(r)&&(Object.assign(r.style,o),Object.keys(n).forEach((function(e){var t=n[e];!1===t?r.removeAttribute(e):r.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,o={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,o.popper),t.styles=o,t.elements.arrow&&Object.assign(t.elements.arrow.style,o.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],r=t.attributes[e]||{},a=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:o[e]).reduce((function(e,t){return e[t]="",e}),{});i(n)&&p(n)&&(Object.assign(n.style,a),Object.keys(r).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,o=e.options,n=e.name,r=o.offset,i=void 0===r?[0,0]:r,a=H.reduce((function(e,o){return e[o]=function(e,t,o){var n=N(e),r=[P,E].indexOf(n)>=0?-1:1,i="function"==typeof o?o(Object.assign({},t,{placement:e})):o,a=i[0],s=i[1];return a=a||0,s=(s||0)*r,[P,j].indexOf(n)>=0?{x:s,y:a}:{x:a,y:s}}(o,t.rects,i),e}),{}),s=a[t.placement],c=s.x,l=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=l),t.modifiersData[n]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var r=o.mainAxis,i=void 0===r||r,a=o.altAxis,s=void 0===a||a,c=o.fallbackPlacements,l=o.padding,u=o.boundary,f=o.rootBoundary,p=o.altBoundary,d=o.flipVariations,y=void 0===d||d,h=o.allowedAutoPlacements,v=t.options.placement,m=N(v),b=c||(m!==v&&y?function(e){if(N(e)===L)return[];var t=G(e);return[K(e),t,K(t)]}(v):[G(v)]),g=[v].concat(b).reduce((function(e,o){return e.concat(N(o)===L?function(e,t){void 0===t&&(t={});var o=t,n=o.placement,r=o.boundary,i=o.rootBoundary,a=o.padding,s=o.flipVariations,c=o.allowedAutoPlacements,l=void 0===c?H:c,u=Z(n),f=u?s?D:D.filter((function(e){return Z(e)===u})):A,p=f.filter((function(e){return l.indexOf(e)>=0}));0===p.length&&(p=f);var d=p.reduce((function(t,o){return t[o]=re(e,{placement:o,boundary:r,rootBoundary:i,padding:a})[N(o)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:o,boundary:u,rootBoundary:f,padding:l,flipVariations:y,allowedAutoPlacements:h}):o)}),[]),w=t.rects.reference,O=t.rects.popper,S=new Map,x=!0,_=g[0],C=0;C=0,M=I?"width":"height",V=re(t,{placement:q,boundary:u,rootBoundary:f,altBoundary:p,padding:l}),W=I?B?j:P:B?k:E;w[M]>O[M]&&(W=G(W));var $=G(W),U=[];if(i&&U.push(V[R]<=0),s&&U.push(V[W]<=0,V[$]<=0),U.every((function(e){return e}))){_=q,x=!1;break}S.set(q,U)}if(x)for(var z=function(e){var t=g.find((function(t){var o=S.get(t);if(o)return o.slice(0,e).every((function(e){return e}))}));if(t)return _=t,"break"},F=y?3:1;F>0&&"break"!==z(F);F--);t.placement!==_&&(t.modifiersData[n]._skip=!0,t.placement=_,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,o=e.options,n=e.name,r=o.mainAxis,i=void 0===r||r,a=o.altAxis,l=void 0!==a&&a,u=o.boundary,f=o.rootBoundary,p=o.altBoundary,d=o.padding,y=o.tether,h=void 0===y||y,v=o.tetherOffset,m=void 0===v?0:v,g=re(t,{boundary:u,rootBoundary:f,padding:d,altBoundary:p}),w=N(t.placement),O=Z(t.placement),S=!O,x=U(w),L="x"===x?"y":"x",A=t.modifiersData.popperOffsets,C=t.rects.reference,q=t.rects.popper,R="function"==typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,D="number"==typeof R?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),H=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,B={x:0,y:0};if(A){if(i){var I,M="y"===x?E:P,V="y"===x?k:j,W="y"===x?"height":"width",$=A[x],z=$+g[M],F=$-g[V],X=h?-q[W]/2:0,Y=O===T?C[W]:q[W],G=O===T?-q[W]:-C[W],J=t.elements.arrow,K=h&&J?b(J):{width:0,height:0},Q=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=Q[M],te=Q[V],oe=ie(0,C[W],K[W]),ne=S?C[W]/2-X-oe-ee-D.mainAxis:Y-oe-ee-D.mainAxis,ae=S?-C[W]/2+X+oe+te+D.mainAxis:G+oe+te+D.mainAxis,se=t.elements.arrow&&_(t.elements.arrow),ce=se?"y"===x?se.clientTop||0:se.clientLeft||0:0,le=null!=(I=null==H?void 0:H[x])?I:0,ue=$+ae-le,fe=ie(h?c(z,$+ne-le-ce):z,$,h?s(F,ue):F);A[x]=fe,B[x]=fe-$}if(l){var pe,de="x"===x?E:P,ye="x"===x?k:j,he=A[L],ve="y"===L?"height":"width",me=he+g[de],be=he-g[ye],ge=-1!==[E,P].indexOf(w),we=null!=(pe=null==H?void 0:H[L])?pe:0,Oe=ge?me:he-C[ve]-q[ve]-we+D.altAxis,Se=ge?he+C[ve]+q[ve]-we-D.altAxis:be,xe=h&&ge?function(e,t,o){var n=ie(e,t,o);return n>o?o:n}(Oe,he,Se):ie(h?Oe:me,he,h?Se:be);A[L]=xe,B[L]=xe-he}t.modifiersData[n]=B}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,o=e.state,n=e.name,r=e.options,i=o.elements.arrow,a=o.modifiersData.popperOffsets,s=N(o.placement),c=U(s),l=[P,j].indexOf(s)>=0?"height":"width";if(i&&a){var u=function(e,t){return oe("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:ne(e,A))}(r.padding,o),f=b(i),p="y"===c?E:P,d="y"===c?k:j,y=o.rects.reference[l]+o.rects.reference[c]-a[c]-o.rects.popper[l],h=a[c]-o.rects.reference[c],v=_(i),m=v?"y"===c?v.clientHeight||0:v.clientWidth||0:0,g=y/2-h/2,w=u[p],O=m-f[l]-u[d],S=m/2-f[l]/2+g,x=ie(w,S,O),L=c;o.modifiersData[n]=((t={})[L]=x,t.centerOffset=x-S,t)}},effect:function(e){var t=e.state,o=e.options.element,n=void 0===o?"[data-popper-arrow]":o;null!=n&&("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&Q(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,o=e.name,n=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,a=re(t,{elementContext:"reference"}),s=re(t,{altBoundary:!0}),c=ae(a,n),l=ae(s,r,i),u=se(c),f=se(l);t.modifiersData[o]={referenceClippingOffsets:c,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":f})}}]})}},t={};function o(n){var r=t[n];if(void 0!==r)return r.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return o.r(n),o(661),o(795),o(682),o(284),o(181),o(778),o(51),o(185),n})()})); \ No newline at end of file +/*! For license information please see LICENSE */ +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(self,(()=>(()=>{var t={492:(t,e,n)=>{"use strict";n.r(e),n.d(e,{afterMain:()=>S,afterRead:()=>w,afterWrite:()=>T,applyStyles:()=>P,arrow:()=>G,auto:()=>l,basePlacements:()=>a,beforeMain:()=>b,beforeRead:()=>y,beforeWrite:()=>I,bottom:()=>i,clippingParents:()=>d,computeStyles:()=>nt,createPopper:()=>kt,createPopperBase:()=>_t,createPopperLite:()=>Pt,detectOverflow:()=>yt,end:()=>u,eventListeners:()=>it,flip:()=>gt,hide:()=>Ct,left:()=>r,main:()=>C,modifierPhases:()=>E,offset:()=>St,placements:()=>v,popper:()=>h,popperGenerator:()=>At,popperOffsets:()=>It,preventOverflow:()=>xt,read:()=>g,reference:()=>f,right:()=>s,start:()=>c,top:()=>o,variationPlacements:()=>m,viewport:()=>p,write:()=>x});var o="top",i="bottom",s="right",r="left",l="auto",a=[o,i,s,r],c="start",u="end",d="clippingParents",p="viewport",h="popper",f="reference",m=a.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+u])}),[]),v=[].concat(a,[l]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+u])}),[]),y="beforeRead",g="read",w="afterRead",b="beforeMain",C="main",S="afterMain",I="beforeWrite",x="write",T="afterWrite",E=[y,g,w,b,C,S,I,x,T];function L(t){return t?(t.nodeName||"").toLowerCase():null}function O(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function A(t){return t instanceof O(t).Element||t instanceof Element}function _(t){return t instanceof O(t).HTMLElement||t instanceof HTMLElement}function k(t){return"undefined"!=typeof ShadowRoot&&(t instanceof O(t).ShadowRoot||t instanceof ShadowRoot)}const P={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]||{},o=e.attributes[t]||{},i=e.elements[t];_(i)&&L(i)&&(Object.assign(i.style,n),Object.keys(o).forEach((function(t){var e=o[t];!1===e?i.removeAttribute(t):i.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 o=e.elements[t],i=e.attributes[t]||{},s=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:n[t]).reduce((function(t,e){return t[e]="",t}),{});_(o)&&L(o)&&(Object.assign(o.style,s),Object.keys(i).forEach((function(t){o.removeAttribute(t)})))}))}},requires:["computeStyles"]};function B(t){return t.split("-")[0]}var q=Math.max,j=Math.min,N=Math.round;function D(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function $(){return!/^((?!chrome|android).)*safari/i.test(D())}function H(t,e,n){void 0===e&&(e=!1),void 0===n&&(n=!1);var o=t.getBoundingClientRect(),i=1,s=1;e&&_(t)&&(i=t.offsetWidth>0&&N(o.width)/t.offsetWidth||1,s=t.offsetHeight>0&&N(o.height)/t.offsetHeight||1);var r=(A(t)?O(t):window).visualViewport,l=!$()&&n,a=(o.left+(l&&r?r.offsetLeft:0))/i,c=(o.top+(l&&r?r.offsetTop:0))/s,u=o.width/i,d=o.height/s;return{width:u,height:d,top:c,right:a+u,bottom:c+d,left:a,x:a,y:c}}function M(t){var e=H(t),n=t.offsetWidth,o=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-o)<=1&&(o=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:o}}function W(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&k(n)){var o=e;do{if(o&&t.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function V(t){return O(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(L(t))>=0}function F(t){return((A(t)?t.ownerDocument:t.document)||window.document).documentElement}function U(t){return"html"===L(t)?t:t.assignedSlot||t.parentNode||(k(t)?t.host:null)||F(t)}function J(t){return _(t)&&"fixed"!==V(t).position?t.offsetParent:null}function Y(t){for(var e=O(t),n=J(t);n&&R(n)&&"static"===V(n).position;)n=J(n);return n&&("html"===L(n)||"body"===L(n)&&"static"===V(n).position)?e:n||function(t){var e=/firefox/i.test(D());if(/Trident/i.test(D())&&_(t)&&"fixed"===V(t).position)return null;var n=U(t);for(k(n)&&(n=n.host);_(n)&&["html","body"].indexOf(L(n))<0;){var o=V(n);if("none"!==o.transform||"none"!==o.perspective||"paint"===o.contain||-1!==["transform","perspective"].indexOf(o.willChange)||e&&"filter"===o.willChange||e&&o.filter&&"none"!==o.filter)return n;n=n.parentNode}return null}(t)||e}function K(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function z(t,e,n){return q(t,j(e,n))}function X(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Z(t,e){return e.reduce((function(e,n){return e[n]=t,e}),{})}const G={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,n=t.state,l=t.name,c=t.options,u=n.elements.arrow,d=n.modifiersData.popperOffsets,p=B(n.placement),h=K(p),f=[r,s].indexOf(p)>=0?"height":"width";if(u&&d){var m=function(t,e){return X("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Z(t,a))}(c.padding,n),v=M(u),y="y"===h?o:r,g="y"===h?i:s,w=n.rects.reference[f]+n.rects.reference[h]-d[h]-n.rects.popper[f],b=d[h]-n.rects.reference[h],C=Y(u),S=C?"y"===h?C.clientHeight||0:C.clientWidth||0:0,I=w/2-b/2,x=m[y],T=S-v[f]-m[g],E=S/2-v[f]/2+I,L=z(x,E,T),O=h;n.modifiersData[l]=((e={})[O]=L,e.centerOffset=L-E,e)}},effect:function(t){var e=t.state,n=t.options.element,o=void 0===n?"[data-popper-arrow]":n;null!=o&&("string"!=typeof o||(o=e.elements.popper.querySelector(o)))&&W(e.elements.popper,o)&&(e.elements.arrow=o)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Q(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,n=t.popper,l=t.popperRect,a=t.placement,c=t.variation,d=t.offsets,p=t.position,h=t.gpuAcceleration,f=t.adaptive,m=t.roundOffsets,v=t.isFixed,y=d.x,g=void 0===y?0:y,w=d.y,b=void 0===w?0:w,C="function"==typeof m?m({x:g,y:b}):{x:g,y:b};g=C.x,b=C.y;var S=d.hasOwnProperty("x"),I=d.hasOwnProperty("y"),x=r,T=o,E=window;if(f){var L=Y(n),A="clientHeight",_="clientWidth";L===O(n)&&"static"!==V(L=F(n)).position&&"absolute"===p&&(A="scrollHeight",_="scrollWidth"),(a===o||(a===r||a===s)&&c===u)&&(T=i,b-=(v&&L===E&&E.visualViewport?E.visualViewport.height:L[A])-l.height,b*=h?1:-1),a!==r&&(a!==o&&a!==i||c!==u)||(x=s,g-=(v&&L===E&&E.visualViewport?E.visualViewport.width:L[_])-l.width,g*=h?1:-1)}var k,P=Object.assign({position:p},f&&tt),B=!0===m?function(t,e){var n=t.x,o=t.y,i=e.devicePixelRatio||1;return{x:N(n*i)/i||0,y:N(o*i)/i||0}}({x:g,y:b},O(n)):{x:g,y:b};return g=B.x,b=B.y,h?Object.assign({},P,((k={})[T]=I?"0":"",k[x]=S?"0":"",k.transform=(E.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",k)):Object.assign({},P,((e={})[T]=I?b+"px":"",e[x]=S?g+"px":"",e.transform="",e))}const nt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,n=t.options,o=n.gpuAcceleration,i=void 0===o||o,s=n.adaptive,r=void 0===s||s,l=n.roundOffsets,a=void 0===l||l,c={placement:B(e.placement),variation:Q(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:i,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:a})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ot={passive:!0};const it={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,n=t.instance,o=t.options,i=o.scroll,s=void 0===i||i,r=o.resize,l=void 0===r||r,a=O(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return s&&c.forEach((function(t){t.addEventListener("scroll",n.update,ot)})),l&&a.addEventListener("resize",n.update,ot),function(){s&&c.forEach((function(t){t.removeEventListener("scroll",n.update,ot)})),l&&a.removeEventListener("resize",n.update,ot)}},data:{}};var st={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return st[t]}))}var lt={start:"end",end:"start"};function at(t){return t.replace(/start|end/g,(function(t){return lt[t]}))}function ct(t){var e=O(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ut(t){return H(F(t)).left+ct(t).scrollLeft}function dt(t){var e=V(t),n=e.overflow,o=e.overflowX,i=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+o)}function pt(t){return["html","body","#document"].indexOf(L(t))>=0?t.ownerDocument.body:_(t)&&dt(t)?t:pt(U(t))}function ht(t,e){var n;void 0===e&&(e=[]);var o=pt(t),i=o===(null==(n=t.ownerDocument)?void 0:n.body),s=O(o),r=i?[s].concat(s.visualViewport||[],dt(o)?o:[]):o,l=e.concat(r);return i?l:l.concat(ht(U(r)))}function ft(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,n){return e===p?ft(function(t,e){var n=O(t),o=F(t),i=n.visualViewport,s=o.clientWidth,r=o.clientHeight,l=0,a=0;if(i){s=i.width,r=i.height;var c=$();(c||!c&&"fixed"===e)&&(l=i.offsetLeft,a=i.offsetTop)}return{width:s,height:r,x:l+ut(t),y:a}}(t,n)):A(e)?function(t,e){var n=H(t,!1,"fixed"===e);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}(e,n):ft(function(t){var e,n=F(t),o=ct(t),i=null==(e=t.ownerDocument)?void 0:e.body,s=q(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),r=q(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-o.scrollLeft+ut(t),a=-o.scrollTop;return"rtl"===V(i||n).direction&&(l+=q(n.clientWidth,i?i.clientWidth:0)-s),{width:s,height:r,x:l,y:a}}(F(t)))}function vt(t){var e,n=t.reference,l=t.element,a=t.placement,d=a?B(a):null,p=a?Q(a):null,h=n.x+n.width/2-l.width/2,f=n.y+n.height/2-l.height/2;switch(d){case o:e={x:h,y:n.y-l.height};break;case i:e={x:h,y:n.y+n.height};break;case s:e={x:n.x+n.width,y:f};break;case r:e={x:n.x-l.width,y:f};break;default:e={x:n.x,y:n.y}}var m=d?K(d):null;if(null!=m){var v="y"===m?"height":"width";switch(p){case c:e[m]=e[m]-(n[v]/2-l[v]/2);break;case u:e[m]=e[m]+(n[v]/2-l[v]/2)}}return e}function yt(t,e){void 0===e&&(e={});var n=e,r=n.placement,l=void 0===r?t.placement:r,c=n.strategy,u=void 0===c?t.strategy:c,m=n.boundary,v=void 0===m?d:m,y=n.rootBoundary,g=void 0===y?p:y,w=n.elementContext,b=void 0===w?h:w,C=n.altBoundary,S=void 0!==C&&C,I=n.padding,x=void 0===I?0:I,T=X("number"!=typeof x?x:Z(x,a)),E=b===h?f:h,O=t.rects.popper,k=t.elements[S?E:b],P=function(t,e,n,o){var i="clippingParents"===e?function(t){var e=ht(U(t)),n=["absolute","fixed"].indexOf(V(t).position)>=0&&_(t)?Y(t):t;return A(n)?e.filter((function(t){return A(t)&&W(t,n)&&"body"!==L(t)})):[]}(t):[].concat(e),s=[].concat(i,[n]),r=s[0],l=s.reduce((function(e,n){var i=mt(t,n,o);return e.top=q(i.top,e.top),e.right=j(i.right,e.right),e.bottom=j(i.bottom,e.bottom),e.left=q(i.left,e.left),e}),mt(t,r,o));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}(A(k)?k:k.contextElement||F(t.elements.popper),v,g,u),B=H(t.elements.reference),N=vt({reference:B,element:O,strategy:"absolute",placement:l}),D=ft(Object.assign({},O,N)),$=b===h?D:B,M={top:P.top-$.top+T.top,bottom:$.bottom-P.bottom+T.bottom,left:P.left-$.left+T.left,right:$.right-P.right+T.right},R=t.modifiersData.offset;if(b===h&&R){var J=R[l];Object.keys(M).forEach((function(t){var e=[s,i].indexOf(t)>=0?1:-1,n=[o,i].indexOf(t)>=0?"y":"x";M[t]+=J[n]*e}))}return M}const gt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,u=t.name;if(!e.modifiersData[u]._skip){for(var d=n.mainAxis,p=void 0===d||d,h=n.altAxis,f=void 0===h||h,y=n.fallbackPlacements,g=n.padding,w=n.boundary,b=n.rootBoundary,C=n.altBoundary,S=n.flipVariations,I=void 0===S||S,x=n.allowedAutoPlacements,T=e.options.placement,E=B(T),L=y||(E!==T&&I?function(t){if(B(t)===l)return[];var e=rt(t);return[at(t),e,at(e)]}(T):[rt(T)]),O=[T].concat(L).reduce((function(t,n){return t.concat(B(n)===l?function(t,e){void 0===e&&(e={});var n=e,o=n.placement,i=n.boundary,s=n.rootBoundary,r=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?v:c,d=Q(o),p=d?l?m:m.filter((function(t){return Q(t)===d})):a,h=p.filter((function(t){return u.indexOf(t)>=0}));0===h.length&&(h=p);var f=h.reduce((function(e,n){return e[n]=yt(t,{placement:n,boundary:i,rootBoundary:s,padding:r})[B(n)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}(e,{placement:n,boundary:w,rootBoundary:b,padding:g,flipVariations:I,allowedAutoPlacements:x}):n)}),[]),A=e.rects.reference,_=e.rects.popper,k=new Map,P=!0,q=O[0],j=0;j=0,M=H?"width":"height",W=yt(e,{placement:N,boundary:w,rootBoundary:b,altBoundary:C,padding:g}),V=H?$?s:r:$?i:o;A[M]>_[M]&&(V=rt(V));var R=rt(V),F=[];if(p&&F.push(W[D]<=0),f&&F.push(W[V]<=0,W[R]<=0),F.every((function(t){return t}))){q=N,P=!1;break}k.set(N,F)}if(P)for(var U=function(t){var e=O.find((function(e){var n=k.get(e);if(n)return n.slice(0,t).every((function(t){return t}))}));if(e)return q=e,"break"},J=I?3:1;J>0&&"break"!==U(J);J--);e.placement!==q&&(e.modifiersData[u]._skip=!0,e.placement=q,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function wt(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 bt(t){return[o,s,i,r].some((function(e){return t[e]>=0}))}const Ct={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,n=t.name,o=e.rects.reference,i=e.rects.popper,s=e.modifiersData.preventOverflow,r=yt(e,{elementContext:"reference"}),l=yt(e,{altBoundary:!0}),a=wt(r,o),c=wt(l,i,s),u=bt(a),d=bt(c);e.modifiersData[n]={referenceClippingOffsets:a,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}},St={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,n=t.options,i=t.name,l=n.offset,a=void 0===l?[0,0]:l,c=v.reduce((function(t,n){return t[n]=function(t,e,n){var i=B(t),l=[r,o].indexOf(i)>=0?-1:1,a="function"==typeof n?n(Object.assign({},e,{placement:t})):n,c=a[0],u=a[1];return c=c||0,u=(u||0)*l,[r,s].indexOf(i)>=0?{x:u,y:c}:{x:c,y:u}}(n,e.rects,a),t}),{}),u=c[e.placement],d=u.x,p=u.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=p),e.modifiersData[i]=c}},It={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,n=t.name;e.modifiersData[n]=vt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},xt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,n=t.options,l=t.name,a=n.mainAxis,u=void 0===a||a,d=n.altAxis,p=void 0!==d&&d,h=n.boundary,f=n.rootBoundary,m=n.altBoundary,v=n.padding,y=n.tether,g=void 0===y||y,w=n.tetherOffset,b=void 0===w?0:w,C=yt(e,{boundary:h,rootBoundary:f,padding:v,altBoundary:m}),S=B(e.placement),I=Q(e.placement),x=!I,T=K(S),E="x"===T?"y":"x",L=e.modifiersData.popperOffsets,O=e.rects.reference,A=e.rects.popper,_="function"==typeof b?b(Object.assign({},e.rects,{placement:e.placement})):b,k="number"==typeof _?{mainAxis:_,altAxis:_}:Object.assign({mainAxis:0,altAxis:0},_),P=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,N={x:0,y:0};if(L){if(u){var D,$="y"===T?o:r,H="y"===T?i:s,W="y"===T?"height":"width",V=L[T],R=V+C[$],F=V-C[H],U=g?-A[W]/2:0,J=I===c?O[W]:A[W],X=I===c?-A[W]:-O[W],Z=e.elements.arrow,G=g&&Z?M(Z):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[$],nt=tt[H],ot=z(0,O[W],G[W]),it=x?O[W]/2-U-ot-et-k.mainAxis:J-ot-et-k.mainAxis,st=x?-O[W]/2+U+ot+nt+k.mainAxis:X+ot+nt+k.mainAxis,rt=e.elements.arrow&&Y(e.elements.arrow),lt=rt?"y"===T?rt.clientTop||0:rt.clientLeft||0:0,at=null!=(D=null==P?void 0:P[T])?D:0,ct=V+st-at,ut=z(g?j(R,V+it-at-lt):R,V,g?q(F,ct):F);L[T]=ut,N[T]=ut-V}if(p){var dt,pt="x"===T?o:r,ht="x"===T?i:s,ft=L[E],mt="y"===E?"height":"width",vt=ft+C[pt],gt=ft-C[ht],wt=-1!==[o,r].indexOf(S),bt=null!=(dt=null==P?void 0:P[E])?dt:0,Ct=wt?vt:ft-O[mt]-A[mt]-bt+k.altAxis,St=wt?ft+O[mt]+A[mt]-bt-k.altAxis:gt,It=g&&wt?function(t,e,n){var o=z(t,e,n);return o>n?n:o}(Ct,ft,St):z(g?Ct:vt,ft,g?St:gt);L[E]=It,N[E]=It-ft}e.modifiersData[l]=N}},requiresIfExists:["offset"]};function Tt(t,e,n){void 0===n&&(n=!1);var o,i,s=_(e),r=_(e)&&function(t){var e=t.getBoundingClientRect(),n=N(e.width)/t.offsetWidth||1,o=N(e.height)/t.offsetHeight||1;return 1!==n||1!==o}(e),l=F(e),a=H(t,r,n),c={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(s||!s&&!n)&&(("body"!==L(e)||dt(l))&&(c=(o=e)!==O(o)&&_(o)?{scrollLeft:(i=o).scrollLeft,scrollTop:i.scrollTop}:ct(o)),_(e)?((u=H(e,!0)).x+=e.clientLeft,u.y+=e.clientTop):l&&(u.x=ut(l))),{x:a.left+c.scrollLeft-u.x,y:a.top+c.scrollTop-u.y,width:a.width,height:a.height}}function Et(t){var e=new Map,n=new Set,o=[];function i(t){n.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!n.has(t)){var o=e.get(t);o&&i(o)}})),o.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){n.has(t.name)||i(t)})),o}var Lt={placement:"bottom",modifiers:[],strategy:"absolute"};function Ot(){for(var t=arguments.length,e=new Array(t),n=0;n{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SELECT_ACCESSIBILITY_KEY_SET=e.TABS_ACCESSIBILITY_KEY_SET=e.OVERLAY_ACCESSIBILITY_KEY_SET=e.DROPDOWN_ACCESSIBILITY_KEY_SET=e.POSITIONS=void 0,e.POSITIONS={auto:"auto","auto-start":"auto-start","auto-end":"auto-end",top:"top","top-left":"top-start","top-right":"top-end",bottom:"bottom","bottom-left":"bottom-start","bottom-right":"bottom-end",right:"right","right-start":"right-start","right-end":"right-end",left:"left","left-start":"left-start","left-end":"left-end"},e.DROPDOWN_ACCESSIBILITY_KEY_SET=["Escape","ArrowUp","ArrowDown","Home","End","Enter"],e.OVERLAY_ACCESSIBILITY_KEY_SET=["Escape","Tab"],e.TABS_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End"],e.SELECT_ACCESSIBILITY_KEY_SET=["ArrowUp","ArrowLeft","ArrowDown","ArrowRight","Home","End","Escape","Enter","Tab"]},700:(t,e,n)=>{var o=n(413),i=n(460),s=n(629),r=n(652),l=n(610),a=n(371),c=n(770),u=n(659),d=n(139),p=n(961),h=n(591),f=n(233),m=n(957),v=n(983),y=n(949),g=n(557),w=n(87),b=n(366),C=n(679);t.exports={HSCopyMarkup:o.HSCopyMarkup,HSAccordion:i.HSAccordion,HSCarousel:s.HSCarousel,HSCollapse:r.HSCollapse,HSDropdown:l.HSDropdown,HSInputNumber:a.HSInputNumber,HSOverlay:c.HSOverlay,HSPinInput:u.HSPinInput,HSRemoveElement:d.HSRemoveElement,HSSearchByJson:p.HSSearchByJson,HSScrollspy:h.HSScrollspy,HSSelect:f.HSSelect,HSStepper:m.HSStepper,HSStrongPassword:v.HSStrongPassword,HSTabs:y.HSTabs,HSThemeSwitch:g.HSThemeSwitch,HSToggleCount:w.HSToggleCount,HSTogglePassword:b.HSTogglePassword,HSTooltip:C.HSTooltip}},460:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){function e(e,n,o){var i=t.call(this,e,n,o)||this;return i.toggle=i.el.querySelector(".hs-accordion-toggle")||null,i.content=i.el.querySelector(".hs-accordion-content")||null,i.group=i.el.closest(".hs-accordion-group")||null,i.isAlwaysOpened=i.group.hasAttribute("data-hs-accordion-always-open")||!1,i.toggle&&i.content&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsAccordionCollection,this),this.toggle.addEventListener("click",(function(){t.el.classList.contains("active")?t.hide():t.show()}))},e.prototype.show=function(){var t=this;if(this.group&&!this.isAlwaysOpened&&this.group.querySelector(".hs-accordion.active")&&this.group.querySelector(".hs-accordion.active")!==this.el&&window.$hsAccordionCollection.find((function(e){return e.element.el===t.group.querySelector(".hs-accordion.active")})).element.hide(),this.el.classList.contains("active"))return!1;this.el.classList.add("active"),this.content.style.display="block",this.content.style.height="0",setTimeout((function(){t.content.style.height="".concat(t.content.scrollHeight,"px")})),this.afterTransition(this.content,(function(){t.content.style.height="",t.fireEvent("open",t.el),t.dispatch("open.hs.accordion",t.el,t.el)}))},e.prototype.hide=function(){var t=this;if(!this.el.classList.contains("active"))return!1;this.el.classList.remove("active"),this.content.style.height="".concat(this.content.scrollHeight,"px"),setTimeout((function(){t.content.style.height="0"})),this.afterTransition(this.content,(function(){t.content.style.display="",t.fireEvent("close",t.el),t.dispatch("close.hs.accordion",t.el,t.el)}))},e.getInstance=function(t,e){var n=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.show=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"!==e.element.content.style.display&&e.element.show()},e.hide=function(t){var e=window.$hsAccordionCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&"block"===e.element.content.style.display&&e.element.hide()},e.on=function(t,e,n){var o=window.$hsAccordionCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsAccordionCollection||(window.$hsAccordionCollection=[]),document.querySelectorAll(".hs-accordion:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSAccordion=s,e.default=s},737:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e,n){this.el=t,this.options=e,this.events=n,this.el=t,this.options=e,this.events={}}return t.prototype.isIOS=function(){return!!/iPad|iPhone|iPod/.test(navigator.platform)||navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.isIpadOS=function(){return navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&/MacIntel/.test(navigator.platform)},t.prototype.createCollection=function(t,e){var n;t.push({id:(null===(n=null==e?void 0:e.el)||void 0===n?void 0:n.id)||t.length+1,element:e})},t.prototype.fireEvent=function(t,e){if(void 0===e&&(e=null),this.events.hasOwnProperty(t))return this.events[t](e)},t.prototype.dispatch=function(t,e,n){void 0===n&&(n=null);var o=new CustomEvent(t,{detail:{payload:n},bubbles:!0,cancelable:!0,composed:!1});e.dispatchEvent(o)},t.prototype.on=function(t,e){this.events[t]=e},t.prototype.afterTransition=function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},t.prototype.onTransitionEnd=function(t,e){t.addEventListener("transitionend",(function n(o){o.target===t&&(t.removeEventListener("transitionend",n),e())}))},t.prototype.getClassProperty=function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")},t.prototype.getClassPropertyAlt=function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},t.prototype.htmlToElement=function(t){var e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild},t.prototype.classToClassList=function(t,e,n){void 0===n&&(n=" "),t.split(n).forEach((function(t){return e.classList.add(t)}))},t.prototype.debounce=function(t,e){var n,o=this;return void 0===e&&(e=200),function(){for(var i=[],s=0;s=u:"top"===n?a>=u:a>=u||c>=u},t.isParentOrElementHidden=function(t){return!!t&&("none"===window.getComputedStyle(t).display||this.isParentOrElementHidden(t.parentElement))},t}();e.default=n,window.HSStaticMethods={afterTransition:function(t,e){var n=function(){e(),t.removeEventListener("transitionend",n,!0)};"all 0s ease 0s"!==window.getComputedStyle(t,null).getPropertyValue("transition")?t.addEventListener("transitionend",n,!0):e()},getClassPropertyAlt:function(t,e,n){void 0===n&&(n="");var o="";return t.classList.forEach((function(t){t.includes(e)&&(o=t)})),o.match(/:(.*)]/)?o.match(/:(.*)]/)[1]:n},getClassProperty:function(t,e,n){return void 0===n&&(n=""),(window.getComputedStyle(t).getPropertyValue(e)||n).replace(" ","")}}},629:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n *")||null,l.sliderWidth=l.inner.parentElement.clientWidth,l.touchX={start:0,end:0},l.init(),l}return i(e,t),e.prototype.init=function(){var t,e,n=this;this.createCollection(window.$hsCarouselCollection,this),this.inner&&(this.calculateWidth(),this.loadingClassesRemove&&("string"==typeof this.loadingClassesRemove?this.inner.classList.remove(this.loadingClassesRemove):(t=this.inner.classList).remove.apply(t,this.loadingClassesRemove)),this.loadingClassesAdd&&("string"==typeof this.loadingClassesAdd?this.inner.classList.add(this.loadingClassesAdd):(e=this.inner.classList).add.apply(e,this.loadingClassesAdd))),this.prev&&this.prev.addEventListener("click",(function(){n.goToPrev(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.next&&this.next.addEventListener("click",(function(){n.goToNext(),n.isAutoPlay&&(n.resetTimer(),n.setTimer())})),this.dots&&this.dots.forEach((function(t,e){return t.addEventListener("click",(function(){n.goTo(e),n.isAutoPlay&&(n.resetTimer(),n.setTimer())}))})),this.slides.length&&(this.addCurrentClass(),this.isInfiniteLoop||this.addDisabledClass(),this.isAutoPlay&&this.autoPlay()),this.inner&&this.afterLoadingClassesAdd&&setTimeout((function(){var t;"string"==typeof n.afterLoadingClassesAdd?n.inner.classList.add(n.afterLoadingClassesAdd):(t=n.inner.classList).add.apply(t,n.afterLoadingClassesAdd)})),this.el.classList.add("init"),document.addEventListener("touchstart",(function(t){n.touchX.start=t.changedTouches[0].screenX})),document.addEventListener("touchend",(function(t){n.touchX.end=t.changedTouches[0].screenX,n.detectDirection()})),this.observeResize()},e.prototype.observeResize=function(){var t=this;new ResizeObserver((function(){return t.recalculateWidth()})).observe(document.querySelector("body"))},e.prototype.calculateWidth=function(){var t=this;this.inner.style.width="".concat(this.sliderWidth*this.slides.length,"px"),this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.slides.forEach((function(e){e.style.width="".concat(t.sliderWidth,"px")}))},e.prototype.addCurrentClass=function(){var t=this;this.slides.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")})),this.dots&&this.dots.forEach((function(e,n){n===t.currentIndex?e.classList.add("active"):e.classList.remove("active")}))},e.prototype.addDisabledClass=function(){if(!this.prev||!this.next)return!1;0===this.currentIndex?(this.next.classList.remove("disabled"),this.prev.classList.add("disabled")):this.currentIndex===this.slides.length-1?(this.prev.classList.remove("disabled"),this.next.classList.add("disabled")):(this.prev.classList.remove("disabled"),this.next.classList.remove("disabled"))},e.prototype.autoPlay=function(){this.setTimer()},e.prototype.setTimer=function(){var t=this;this.timer=setInterval((function(){t.currentIndex===t.slides.length-1?t.goTo(0):t.goToNext()}),this.speed)},e.prototype.resetTimer=function(){clearInterval(this.timer)},e.prototype.detectDirection=function(){var t=this.touchX,e=t.start,n=t.end;ne&&this.goToPrev()},e.prototype.recalculateWidth=function(){this.sliderWidth=this.inner.parentElement.clientWidth,this.calculateWidth()},e.prototype.goToPrev=function(){0===this.currentIndex&&this.isInfiniteLoop?(this.currentIndex=this.slides.length-1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):0!==this.currentIndex&&(this.currentIndex-=1,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass(),this.addDisabledClass())},e.prototype.goToNext=function(){this.currentIndex===this.slides.length-1&&this.isInfiniteLoop?(this.currentIndex=0,this.inner.style.transform="translate(-".concat(this.currentIndex*this.sliderWidth,"px, 0px)"),this.addCurrentClass()):this.currentIndex=this.limit)return!1;this.el.hasAttribute("disabled")&&this.el.setAttribute("disabled","");var t=this.target.cloneNode(!0);this.addToItems(t),this.limit&&this.items.length>=this.limit&&this.el.setAttribute("disabled","disabled"),this.fireEvent("copy",t),this.dispatch("copy.hs.copyMarkup",t,t)},e.prototype.addPredefinedItems=function(){var t=this;Array.from(this.wrapper.children).filter((function(t){return!t.classList.contains("[--ignore-for-count]")})).forEach((function(e){t.addToItems(e)}))},e.prototype.setTarget=function(){var t="string"==typeof this.targetSelector?document.querySelector(this.targetSelector).cloneNode(!0):this.targetSelector.cloneNode(!0);t.removeAttribute("id"),this.target=t},e.prototype.setWrapper=function(){this.wrapper="string"==typeof this.wrapperSelector?document.querySelector(this.wrapperSelector):this.wrapperSelector},e.prototype.addToItems=function(t){var e=this,n=t.querySelector("[data-hs-copy-markup-delete-item]");this.wrapper?this.wrapper.append(t):this.el.before(t),n&&n.addEventListener("click",(function(){return e.delete(t)})),this.items.push(t)},e.prototype.delete=function(t){var e=this.items.indexOf(t);-1!==e&&this.items.splice(e,1),t.remove(),this.fireEvent("delete",t),this.dispatch("delete.hs.copyMarkup",t,t)},e.getInstance=function(t,e){var n=window.$hsCopyMarkupCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsCopyMarkupCollection||(window.$hsCopyMarkupCollection=[]),document.querySelectorAll("[data-hs-copy-markup]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-copy-markup"),n=e?JSON.parse(e):{};new r(t,n)}))})),t.exports.HSCopyMarkup=r,e.default=r},610:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__spreadArray||function(t,e,n){if(n||2===arguments.length)for(var o,i=0,s=e.length;i .hs-dropdown-toggle")||i.el.children[0],i.menu=i.el.querySelector(":scope > .hs-dropdown-menu"),i.eventMode=i.getClassProperty(i.el,"--trigger","click"),i.closeMode=i.getClassProperty(i.el,"--auto-close","true"),i.animationInProcess=!1,i.toggle&&i.menu&&i.init(),i}return i(e,t),e.prototype.init=function(){var t=this;if(this.createCollection(window.$hsDropdownCollection,this),this.toggle.disabled)return!1;this.toggle.addEventListener("click",(function(){return t.onClickHandler()})),this.isIOS()||this.isIpadOS()||(this.el.addEventListener("mouseenter",(function(){return t.onMouseEnterHandler()})),this.el.addEventListener("mouseleave",(function(){return t.onMouseLeaveHandler()})))},e.prototype.resizeHandler=function(){this.eventMode=this.getClassProperty(this.el,"--trigger","click")},e.prototype.onClickHandler=function(){this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")?this.close():this.open()},e.prototype.onMouseEnterHandler=function(){if("hover"!==this.eventMode)return!1;this.el._popper&&this.forceClearState(),!this.el.classList.contains("open")&&this.menu.classList.contains("hidden")&&this.open()},e.prototype.onMouseLeaveHandler=function(){if("hover"!==this.eventMode)return!1;this.el.classList.contains("open")&&!this.menu.classList.contains("hidden")&&this.close()},e.prototype.destroyPopper=function(){this.menu.classList.remove("block"),this.menu.classList.add("hidden"),this.menu.style.inset=null,this.menu.style.position=null,this.el&&this.el._popper&&this.el._popper.destroy(),this.animationInProcess=!1},e.prototype.absoluteStrategyModifiers=function(){var t=this;return[{name:"applyStyles",fn:function(e){var n=(window.getComputedStyle(t.el).getPropertyValue("--strategy")||"absolute").replace(" ",""),o=(window.getComputedStyle(t.el).getPropertyValue("--adaptive")||"adaptive").replace(" ","");e.state.elements.popper.style.position=n,e.state.elements.popper.style.transform="adaptive"===o?e.state.styles.popper.transform:null,e.state.elements.popper.style.top=null,e.state.elements.popper.style.bottom=null,e.state.elements.popper.style.left=null,e.state.elements.popper.style.right=null,e.state.elements.popper.style.margin=0}},{name:"computeStyles",options:{adaptive:!1}}]},e.prototype.open=function(){var t=this;if(this.el.classList.contains("open"))return!1;if(this.animationInProcess)return!1;this.animationInProcess=!0;var e=(window.getComputedStyle(this.el).getPropertyValue("--placement")||"").replace(" ",""),n=(window.getComputedStyle(this.el).getPropertyValue("--flip")||"true").replace(" ",""),o=(window.getComputedStyle(this.el).getPropertyValue("--strategy")||"fixed").replace(" ",""),i=parseInt((window.getComputedStyle(this.el).getPropertyValue("--offset")||"10").replace(" ",""));"static"!==o&&(this.el._popper=(0,a.createPopper)(this.el,this.menu,{placement:l.POSITIONS[e]||"bottom-start",strategy:o,modifiers:s(s([],"fixed"!==o?this.absoluteStrategyModifiers():[],!0),[{name:"flip",enabled:"true"===n},{name:"offset",options:{offset:[0,i]}}],!1)})),this.menu.style.margin=null,this.menu.classList.remove("hidden"),this.menu.classList.add("block"),setTimeout((function(){t.el.classList.add("open"),t.animationInProcess=!1})),this.fireEvent("open",this.el),this.dispatch("open.hs.dropdown",this.el,this.el)},e.prototype.close=function(t){var e=this;if(void 0===t&&(t=!0),this.animationInProcess||!this.el.classList.contains("open"))return!1;if(this.animationInProcess=!0,t){var n=this.el.querySelector("[data-hs-dropdown-transition]")||this.menu;this.afterTransition(n,(function(){return e.destroyPopper()}))}else this.destroyPopper();this.menu.style.margin=null,this.el.classList.remove("open"),this.fireEvent("close",this.el),this.dispatch("close.hs.dropdown",this.el,this.el)},e.prototype.forceClearState=function(){this.destroyPopper(),this.menu.style.margin=null,this.el.classList.remove("open")},e.getInstance=function(t,e){var n=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e.open=function(t){var e=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.menu.classList.contains("hidden")&&e.element.open()},e.close=function(t){var e=window.$hsDropdownCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&!e.element.menu.classList.contains("hidden")&&e.element.close()},e.accessibility=function(t){this.history=c.menuSearchHistory;var e=window.$hsDropdownCollection.find((function(t){return t.element.el.classList.contains("open")}));if(e&&(l.DROPDOWN_ACCESSIBILITY_KEY_SET.includes(t.code)||4===t.code.length&&t.code[t.code.length-1].match(/^[A-Z]*$/))&&!t.metaKey&&!e.element.menu.querySelector("input:focus"))switch(console.log("Key code:",t.code),t.code){case"Escape":e.element.menu.querySelector(".hs-select.active")||(t.preventDefault(),this.onEscape(t));break;case"Enter":e.element.menu.querySelector(".hs-select button:focus")||e.element.menu.querySelector(".hs-collapse-toggle:focus")||this.onEnter(t);break;case"ArrowUp":t.preventDefault(),this.onArrow();break;case"ArrowDown":t.preventDefault(),this.onArrow(!1);break;case"Home":t.preventDefault(),this.onStartEnd();break;case"End":t.preventDefault(),this.onStartEnd(!1);break;default:t.preventDefault(),this.onFirstLetter(t.key)}},e.onEscape=function(t){var e=t.target.closest(".hs-dropdown.open");if(window.$hsDropdownCollection.find((function(t){return t.element.el===e}))){var n=window.$hsDropdownCollection.find((function(t){return t.element.el===e}));n&&(n.element.close(),n.element.toggle.focus())}else this.closeCurrentlyOpened()},e.onEnter=function(t){var e=t.target.parentElement;if(window.$hsDropdownCollection.find((function(t){return t.element.el===e}))){t.preventDefault();var n=window.$hsDropdownCollection.find((function(t){return t.element.el===e}));n&&n.element.open()}},e.onArrow=function(t){void 0===t&&(t=!0);var e=window.$hsDropdownCollection.find((function(t){return t.element.el.classList.contains("open")}));if(e){var n=e.element.menu;if(!n)return!1;var o=(t?Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])")).reverse():Array.from(n.querySelectorAll("a:not([hidden]), .hs-dropdown > button:not([hidden])"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector("a:focus, button:focus"),s=o.findIndex((function(t){return t===i}));s+1-1?e[(o+1)%e.length].focus():e[0].focus()},e.on=function(t,e,n){var o=window.$hsOverlayCollection.find((function(t){return t.element.el===("string"==typeof e?document.querySelector(e):e)||t.element.overlay===("string"==typeof e?document.querySelector(e):e)}));o&&(o.element.events[t]=n)},e}(n(737).default);window.addEventListener("load",(function(){window.$hsOverlayCollection||(window.$hsOverlayCollection=[]),document.querySelectorAll("[data-hs-overlay]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)})),window.$hsOverlayCollection&&document.addEventListener("keydown",(function(t){return r.accessibility(t)}))})),t.exports.HSOverlay=r,e.default=r},659:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&this.items[e-1].focus()},e.prototype.onKeydown=function(t,e){"Backspace"===t.key&&e>0&&(""===this.items[e].value?(this.items[e-1].value="",this.items[e-1].focus()):this.items[e].value=""),this.setCurrentValue(),this.toggleCompleted()},e.prototype.onFocusIn=function(t){this.items[t].setAttribute("placeholder","")},e.prototype.onFocusOut=function(t){this.items[t].setAttribute("placeholder",this.placeholders[t])},e.prototype.onPaste=function(t){var e=this;t.preventDefault(),this.items.forEach((function(n){document.activeElement===n&&e.autoFillAll(t.clipboardData.getData("text"))}))},e.getInstance=function(t,e){var n=window.$hsPinInputCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsPinInputCollection||(window.$hsPinInputCollection=[]),document.querySelectorAll("[data-hs-pin-input]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSPinInput=r,e.default=r},139:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0){if(this.activeSection===e)return!1;this.links.forEach((function(t){t.classList.remove("active")}));var l=this.el.querySelector('[href="#'.concat(e.getAttribute("id"),'"]'));if(l){l.classList.add("active");var a=l.closest("[data-hs-scrollspy-group]");if(a){var c=a.querySelector("[href]");c&&c.classList.add("active")}}this.activeSection=e}},e.prototype.scrollTo=function(t){var e=t.getAttribute("href"),n=document.querySelector(e),o=parseInt(this.getClassProperty(this.el,"--scrollspy-offset","0")),i=parseInt(this.getClassProperty(n,"--scrollspy-offset"))||o,s=this.scrollable===document?0:this.scrollable.offsetTop,r=n.offsetTop-i-s,l=this.scrollable===document?window:this.scrollable,a=function(){window.history.replaceState(null,null,t.getAttribute("href")),"scrollTo"in l&&l.scrollTo({top:r,left:0,behavior:"smooth"})},c=this.fireEvent("beforeScroll",this.el);this.dispatch("beforeScroll.hs.scrollspy",this.el,this.el),c instanceof Promise?c.then((function(){return a()})):a()},e.getInstance=function(t,e){void 0===e&&(e=!1);var n=window.$hsScrollspyCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element.el:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsScrollspyCollection||(window.$hsScrollspyCollection=[]),document.querySelectorAll("[data-hs-scrollspy]:not(.--prevent-on-load-init)").forEach((function(t){return new s(t)}))})),t.exports.HSScrollspy=s,e.default=s},961:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&i[i.length-1])||6!==l[0]&&2!==l[0])){r=0;continue}if(3===l[0]&&(!i||l[1]>i[0]&&l[1]",o.dropdownClasses=l.dropdownClasses||"absolute top-full z-[1] w-full bg-white border border-gray-200 rounded-md hidden mt-2",o.dropdownItemTemplate=l.dropdownItemTemplate||"
",o.dropdownItemTemplatesByType=l.dropdownItemTemplatesByType||null,o.dropdownItemClasses=l.dropdownItemClasses||"py-2 px-4 w-full cursor-pointer text-sm hover:bg-gray-300 hover:text-black",o.highlightedTextTagName=l.highlightedTextTagName||"u",o.highlightedTextClasses=l.highlightedTextClasses||"bg-green-200",o.jsonUrl&&o.fetchData().then((function(){return o.init()})),o}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsSearchByJsonCollection,this),this.buildDropdown(),this.el.addEventListener("input",this.debounce((function(e){t.val=e.target.value,t.val.length>t.minChars?t.searchData(t.val):t.result=[],t.result.length?t.dropdown.classList.remove("hidden"):t.dropdown.classList.add("hidden"),t.buildItems(),console.log("result:",t.result)})))},e.prototype.fetchData=function(){return r(this,void 0,void 0,(function(){var t=this;return l(this,(function(e){switch(e.label){case 0:return[4,fetch(this.jsonUrl).then((function(t){return t.json()})).then((function(e){return t.json=e}))];case 1:return e.sent(),[2]}}))}))},e.prototype.searchData=function(t){this.result=this.json.filter((function(e){var n=t.toLowerCase(),o=e.title.toLowerCase(),i=e.description.toLowerCase();return o.includes(n)||i.includes(n)}))},e.prototype.buildDropdown=function(){this.dropdown=this.htmlToElement(this.dropdownTemplate),this.dropdownClasses&&this.classToClassList(this.dropdownClasses,this.dropdown),this.el.after(this.dropdown)},e.prototype.buildItems=function(){var t=this;this.dropdown.innerHTML="",this.result.forEach((function(e){var n=t.htmlToElement(''));n.append(t.itemTemplate(e)),t.dropdown.append(n)}))},e.prototype.itemTemplate=function(t){var e=new RegExp(this.val,"gi"),n=t.title.replace(e,"<".concat(this.highlightedTextTagName,' class="inline-block ').concat(this.highlightedTextClasses,'">').concat(this.val,"")),o=t.description.replace(e,"<".concat(this.highlightedTextTagName,' class="inline-block ').concat(this.highlightedTextClasses,'">').concat(this.val,"")),i=this.dropdownItemTemplatesByType?this.dropdownItemTemplatesByType.find((function(e){return e.type===t.type})):null,s=i?this.htmlToElement(i.markup):this.htmlToElement(this.dropdownItemTemplate);this.dropdownItemClasses&&this.classToClassList(this.dropdownItemClasses,s);var r=s.querySelector("[data-title]");r?r.append(this.htmlToElement("".concat(n,""))):s.append(this.htmlToElement("".concat(n,"")));var l=s.querySelector("[data-description]");if(l)l.append(this.htmlToElement("".concat(o,"")));else if(!i){var a=this.htmlToElement("
");s.append(a),s.append(this.htmlToElement("".concat(o,"")))}return s},e.getInstance=function(t){var e=window.$hsSearchByJsonCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return e?e.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsSearchByJsonCollection||(window.$hsSearchByJsonCollection=[]),document.querySelectorAll("[data-hs-search-by-json]:not(.--prevent-on-load-init)").forEach((function(t){return new a(t)}))})),t.exports.HSSearchByJson=a,e.default=a},233:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n"),e=this.toggle.querySelector("[data-icon]"),n=this.toggle.querySelector("[data-title]"),!this.isMultiple&&e&&this.setToggleIcon(),!this.isMultiple&&n&&this.setToggleTitle(),this.isMultiple?this.toggleTextWrapper.innerHTML=this.value.length?this.stringFromValue():this.placeholder:this.toggleTextWrapper.innerHTML=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder,n||this.toggle.append(this.toggleTextWrapper),this.toggleClasses&&this.classToClassList(this.toggleClasses,this.toggle),this.isDisabled&&this.toggle.classList.add("disabled"),this.wrapper&&this.wrapper.append(this.toggle),this.toggle.addEventListener("click",(function(){if(o.isDisabled)return!1;o.isOpened?o.close():o.open()}))},e.prototype.setToggleIcon=function(){var t,e,n=this.toggle.querySelector("[data-icon]");if(n.innerHTML="",n){var o=this.htmlToElement((null===(e=null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.options)||void 0===e?void 0:e.icon)||"");n.append(o),o?n.classList.remove("hidden"):n.classList.add("hidden")}},e.prototype.setToggleTitle=function(){var t,e=this.toggle.querySelector("[data-title]");if(e.classList.add("truncate"),e.innerHTML="",e){var n=(null===(t=this.getItemByValue(this.value))||void 0===t?void 0:t.title)||this.placeholder;e.innerHTML=n,this.toggle.append(e)}},e.prototype.buildTags=function(){this.tags=document.createElement("div"),this.tags.classList.add("flex"),this.tagsClasses&&this.classToClassList(this.tagsClasses,this.tags),this.buildTagsInput(),this.buildTagsItems(),this.setTagsItems(),this.wrapper&&this.wrapper.append(this.tags)},e.prototype.buildTagsItems=function(){this.tagsItems=document.createElement("div"),this.tagsItems.classList.add("flex","flex-wrap","flex-0","items-center"),this.setTagsItems(),this.tags.append(this.tagsItems)},e.prototype.buildTagsItem=function(t){var e,n,o,i,s,r,l,a=this,c=this.getItemByValue(t),u=document.createElement("div");if(this.tagsItemClasses&&this.classToClassList(this.tagsItemClasses,u),this.tagsItemTemplate&&(i=this.htmlToElement(this.tagsItemTemplate),u.append(i)),null===(e=null==c?void 0:c.options)||void 0===e?void 0:e.icon){var d=this.htmlToElement(null===(n=null==c?void 0:c.options)||void 0===n?void 0:n.icon);(l=i?i.querySelector("[data-icon]"):document.createElement("span")).append(d),i||u.append(l)}i&&i.querySelector("[data-icon]")&&!(null===(o=null==c?void 0:c.options)||void 0===o?void 0:o.icon)&&i.querySelector("[data-icon]").classList.add("hidden"),(s=i?i.querySelector("[data-title]"):document.createElement("span")).textContent=c.title||"",i||u.append(s),i?r=i.querySelector("[data-remove]"):((r=document.createElement("span")).textContent="X",u.append(r)),r.addEventListener("click",(function(){a.value=a.value.filter((function(e){return e!==t})),a.unselectMultipleItems(),a.setTagsItems(),a.selectMultipleItems()})),this.tagsItems.append(u)},e.prototype.getItemByValue=function(t){return this.selectOptions.find((function(e){return e.val===t}))},e.prototype.setTagsItems=function(){var t=this;this.tagsItems.innerHTML="",this.value&&this.value.forEach((function(e){t.buildTagsItem(e)})),this.value.length||(this.tagsInput.placeholder=this.placeholder)},e.prototype.buildTagsInput=function(){var t=this;this.tagsInput=document.createElement("input"),this.tagsInput.placeholder=this.placeholder,this.tagsInputClasses&&this.classToClassList(this.tagsInputClasses,this.tagsInput),this.tagsInput.addEventListener("focus",(function(){return t.open()})),this.tagsInput.addEventListener("input",this.debounce((function(e){return t.searchOptions(e.target.value)}))),this.tagsInput.addEventListener("keydown",(function(e){if("Enter"===e.key){var n=e.target.value;if(t.selectOptions.find((function(t){return t.val===n})))return!1;t.addSelectOption(n,n),t.buildOption(n,n),t.dropdown.querySelector('[data-value="'.concat(n,'"]')).click(),t.resetTagsInputField(),t.close()}})),this.tags.append(this.tagsInput)},e.prototype.buildDropdown=function(){var t=this;this.dropdown=this.htmlToElement(this.dropdownTag||"
"),this.dropdown.classList.add("absolute","top-full"),this.isOpened||this.dropdown.classList.add("hidden"),this.dropdownClasses&&this.classToClassList(this.dropdownClasses,this.dropdown),this.wrapper&&this.wrapper.append(this.dropdown),this.dropdown&&this.hasSearch&&this.buildSearch(),this.selectOptions&&this.selectOptions.forEach((function(e,n){return t.buildOption(e.title,e.val,e.options,"".concat(n))}))},e.prototype.buildSearch=function(){var t,e=this;this.searchWrapper=this.htmlToElement(this.searchWrapperTemplate||"
"),this.searchWrapperClasses&&this.classToClassList(this.searchWrapperClasses,this.searchWrapper),t=this.searchWrapper.querySelector("[data-input]"),this.search=this.htmlToElement(''),this.search.placeholder=this.searchPlaceholder,this.searchClasses&&this.classToClassList(this.searchClasses,this.search),this.search.addEventListener("input",this.debounce((function(t){return e.searchOptions(t.target.value)}))),t?t.append(this.search):this.searchWrapper.append(this.search),this.dropdown.append(this.searchWrapper)},e.prototype.buildOption=function(t,e,n,o){var i=this;void 0===o&&(o="1");var s=null,r=this.htmlToElement(this.optionTag||"
");if(r.setAttribute("data-value",e),r.setAttribute("data-title-value",t),r.setAttribute("tabIndex",o),r.classList.add("cursor-pointer"),this.optionTemplate&&(s=this.htmlToElement(this.optionTemplate),r.append(s)),s?s.querySelector("[data-title]").textContent=t||"":r.textContent=t||"",n){if(n.icon){var l=this.htmlToElement(n.icon);if(l.classList.add("mw-full"),s)s.querySelector("[data-icon]").append(l);else{var a=this.htmlToElement("
");this.iconClasses&&this.classToClassList(this.iconClasses,a),a.append(l),r.append(a)}}if(n.description)if(s)s.querySelector("[data-description]").append(n.description);else{var c=this.htmlToElement("
");c.textContent=n.description,this.descriptionClasses&&this.classToClassList(this.descriptionClasses,c),r.append(c)}}s&&s.querySelector("[data-icon]")&&!n&&!(null==n?void 0:n.icon)&&s.querySelector("[data-icon]").classList.add("hidden"),this.value&&(this.isMultiple?this.value.includes(e):this.value===e)&&r.classList.add("selected"),r.addEventListener("click",(function(){return i.onSelectOption(e)})),this.optionClasses&&this.classToClassList(this.optionClasses,r),this.dropdown&&this.dropdown.append(r)},e.prototype.onSelectOption=function(t){this.clearSelections(),this.isMultiple?(this.value=this.value.includes(t)?Array.from(this.value).filter((function(e){return e!==t})):r(r([],Array.from(this.value),!0),[t],!1),this.selectMultipleItems(),this.setNewValue()):(this.value=t,this.selectSingleItem(),this.setNewValue()),this.fireEvent("change",this.value),this.dispatch("change.hs.select",this.el,this.value),"tags"===this.mode&&this.resetTagsInputField(),this.isMultiple||(this.toggle.querySelector("[data-icon]")&&this.setToggleIcon(),this.toggle.querySelector("[data-title]")&&this.setToggleTitle(),this.close()),this.value.length||"tags"!==this.mode||(this.tagsInput.placeholder=this.placeholder)},e.prototype.addSelectOption=function(t,e,n){this.selectOptions=r(r([],this.selectOptions,!0),[{title:t,val:e,options:n}],!1)},e.prototype.resetTagsInputField=function(){this.tagsInput.value="",this.tagsInput.placeholder="",this.searchOptions("")},e.prototype.clearSelections=function(){Array.from(this.dropdown.children).forEach((function(t){t.classList.contains("selected")&&t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){t.selected&&(t.selected=!1)}))},e.prototype.setNewValue=function(){"tags"===this.mode?this.setTagsItems():this.value.length?this.toggleTextWrapper.innerHTML=this.stringFromValue():this.toggleTextWrapper.innerHTML=this.placeholder},e.prototype.stringFromValue=function(){var t=this,e=[];return this.selectOptions.forEach((function(n){t.isMultiple?t.value.includes(n.val)&&e.push(n.title):t.value===n.val&&e.push(n.title)})),this.toggleCountText&&""!==this.toggleCountText&&e.length>=this.toggleCountTextMinItems?"".concat(e.length," ").concat(this.toggleCountText):e.join(", ")},e.prototype.selectSingleItem=function(){var t=this;Array.from(this.el.children).find((function(e){return t.value===e.value})).selected=!0,Array.from(this.dropdown.children).find((function(e){return t.value===e.getAttribute("data-value")})).classList.add("selected")},e.prototype.selectMultipleItems=function(){var t=this;Array.from(this.dropdown.children).filter((function(e){return t.value.includes(e.getAttribute("data-value"))})).forEach((function(t){return t.classList.add("selected")})),Array.from(this.el.children).filter((function(e){return t.value.includes(e.value)})).forEach((function(t){return t.selected=!0}))},e.prototype.unselectMultipleItems=function(){Array.from(this.dropdown.children).forEach((function(t){return t.classList.remove("selected")})),Array.from(this.el.children).forEach((function(t){return t.selected=!1}))},e.prototype.searchOptions=function(t){this.dropdown.querySelectorAll("[data-value]").forEach((function(e){e.getAttribute("data-title-value").toLowerCase().includes(t.toLowerCase())?e.classList.remove("hidden"):e.classList.add("hidden")}))},e.prototype.open=function(){var t=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.dropdown.classList.remove("hidden"),this.recalculateDirection(),setTimeout((function(){t.wrapper.classList.add("active"),t.dropdown.classList.add("opened"),t.hasSearch&&t.search.focus(),t.animationInProcess=!1})),this.isOpened=!0},e.prototype.close=function(){var t,e,n,o=this;if(this.animationInProcess)return!1;this.animationInProcess=!0,this.wrapper.classList.remove("active"),this.dropdown.classList.remove("opened","bottom-full","top-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),(null===(e=this.dropdownDirectionClasses)||void 0===e?void 0:e.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.style.marginBottom="",this.afterTransition(this.dropdown,(function(){o.dropdown.classList.add("hidden"),o.hasSearch&&(o.search.value="",o.search.dispatchEvent(new Event("input",{bubbles:!0})),o.search.blur()),o.animationInProcess=!1})),null===(n=this.dropdown.querySelector(".hs-select-option-highlighted"))||void 0===n||n.classList.remove("hs-select-option-highlighted"),this.isOpened=!1},e.prototype.recalculateDirection=function(){var t,n,o,i;e.isEnoughSpace(this.dropdown,this.toggle||this.tagsInput,"bottom",this.dropdownSpace,this.viewport)?(this.dropdown.classList.remove("bottom-full"),(null===(t=this.dropdownDirectionClasses)||void 0===t?void 0:t.bottom)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="",this.dropdown.classList.add("top-full"),(null===(n=this.dropdownDirectionClasses)||void 0===n?void 0:n.top)&&this.dropdown.classList.add(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="".concat(this.dropdownSpace,"px")):(this.dropdown.classList.remove("top-full"),(null===(o=this.dropdownDirectionClasses)||void 0===o?void 0:o.top)&&this.dropdown.classList.remove(this.dropdownDirectionClasses.top),this.dropdown.style.marginTop="",this.dropdown.classList.add("bottom-full"),(null===(i=this.dropdownDirectionClasses)||void 0===i?void 0:i.bottom)&&this.dropdown.classList.add(this.dropdownDirectionClasses.bottom),this.dropdown.style.marginBottom="".concat(this.dropdownSpace,"px"))},e.getInstance=function(t,e){var n=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e.close=function(t){var e=window.$hsSelectCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));e&&e.element.isOpened&&e.element.close()},e.closeCurrentlyOpened=function(t){if(void 0===t&&(t=null),!t.closest(".hs-select.active")){var e=window.$hsSelectCollection.filter((function(t){return t.element.isOpened}))||null;e&&e.forEach((function(t){t.element.close()}))}},e.accessibility=function(t){var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e&&a.SELECT_ACCESSIBILITY_KEY_SET.includes(t.code)&&!t.metaKey)switch(console.log(e),console.log("Key code:",t.code),t.code){case"Escape":t.preventDefault(),this.onEscape();break;case"ArrowUp":t.preventDefault(),this.onArrow();break;case"ArrowDown":t.preventDefault(),this.onArrow(!1);break;case"Tab":t.preventDefault(),this.onTab(t.shiftKey);break;case"Home":t.preventDefault(),this.onStartEnd();break;case"End":t.preventDefault(),this.onStartEnd(!1);break;case"Enter":t.preventDefault(),this.onEnter(t)}},e.onEscape=function(){var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.close()},e.onArrow=function(t){void 0===t&&(t=!0);var e=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));if(e){var n=e.element.dropdown;if(!n)return!1;var o=(t?Array.from(n.querySelectorAll(":scope > *")).reverse():Array.from(n.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");i||o[0].classList.add("hs-select-option-highlighted");var s=o.findIndex((function(t){return t===i}));s+1 *")).reverse():Array.from(n.querySelectorAll(":scope > *"))).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");i||o[0].classList.add("hs-select-option-highlighted");var s=o.findIndex((function(t){return t===i}));if(!(s+1 *")):Array.from(n.querySelectorAll(":scope > *")).reverse()).filter((function(t){return!t.classList.contains("disabled")})),i=n.querySelector(".hs-select-option-highlighted");o.length&&(o[0].focus(),i&&i.classList.remove("hs-select-option-highlighted"),o[0].classList.add("hs-select-option-highlighted"))}},e.onEnter=function(t){var e=t.target.previousSibling;if(window.$hsSelectCollection.find((function(t){return t.element.el===e}))){var n=window.$hsSelectCollection.find((function(t){return t.element.isOpened})),o=window.$hsSelectCollection.find((function(t){return t.element.el===e}));n.element.close(),o.element.open()}else(o=window.$hsSelectCollection.find((function(t){return t.element.isOpened})))&&o.element.onSelectOption(t.target.dataset.value||"")},e}(l.default);window.addEventListener("load",(function(){window.$hsSelectCollection||(window.$hsSelectCollection=[]),document.querySelectorAll("[data-hs-select]:not(.--prevent-on-load-init)").forEach((function(t){var e=t.getAttribute("data-hs-select"),n=e?JSON.parse(e):{};new c(t,n)})),window.$hsSelectCollection&&(window.addEventListener("click",(function(t){var e=t.target;c.closeCurrentlyOpened(e)})),document.addEventListener("keydown",(function(t){return c.accessibility(t)})))})),document.addEventListener("scroll",(function(){if(!window.$hsSelectCollection)return!1;var t=window.$hsSelectCollection.find((function(t){return t.element.isOpened}));t&&t.element.recalculateDirection()})),t.exports.HSSelect=c,e.default=c},957:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;nt.totalSteps&&(t.totalSteps=n)}))},e.prototype.buildNav=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-nav-item]").forEach((function(e){return t.addNavItem(e)})),this.navItems.forEach((function(e){return t.buildNavItem(e)}))},e.prototype.buildNavItem=function(t){var e=this,n=t.index,o=t.isDisabled,i=t.el;n===this.currentIndex&&this.setCurrentNavItem(),("linear"!==this.mode||o)&&i.addEventListener("click",(function(){return e.handleNavItemClick(t)}))},e.prototype.addNavItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-nav-item")),n=e.index,o=e.isFinal,i=void 0!==o&&o,s=e.isCompleted,r=void 0!==s&&s,l=e.isSkip,a=void 0!==l&&l,c=e.isOptional,u=void 0!==c&&c,d=e.isDisabled,p=void 0!==d&&d,h=e.isProcessed,f=void 0!==h&&h,m=e.hasError,v=void 0!==m&&m;r&&t.classList.add("success"),a&&t.classList.add("skipped"),p&&("BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")),v&&t.classList.add("error"),this.navItems.push({index:n,isFinal:i,isCompleted:r,isSkip:a,isOptional:u,isDisabled:p,isProcessed:f,hasError:v,el:t})},e.prototype.setCurrentNavItem=function(){var t=this;this.navItems.forEach((function(e){var n=e.index,o=e.el;n===t.currentIndex?t.setCurrentNavItemActions(o):t.unsetCurrentNavItemActions(o)}))},e.prototype.setCurrentNavItemActions=function(t){t.classList.add("active"),this.fireEvent("active",this.currentIndex),this.dispatch("active.hs.stepper",this.el,this.currentIndex)},e.prototype.getNavItem=function(t){return void 0===t&&(t=this.currentIndex),this.navItems.find((function(e){return e.index===t}))},e.prototype.setProcessedNavItemActions=function(t){t.isProcessed=!0,t.el.classList.add("processed")},e.prototype.setErrorNavItemActions=function(t){t.hasError=!0,t.el.classList.add("error")},e.prototype.unsetCurrentNavItemActions=function(t){t.classList.remove("active")},e.prototype.handleNavItemClick=function(t){var e=t.index;this.currentIndex=e,this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep()},e.prototype.buildContent=function(){var t=this;this.el.querySelectorAll("[data-hs-stepper-content-item]").forEach((function(e){return t.addContentItem(e)})),this.navItems.forEach((function(e){return t.buildContentItem(e)}))},e.prototype.buildContentItem=function(t){t.index===this.currentIndex&&this.setCurrentContentItem()},e.prototype.addContentItem=function(t){var e=JSON.parse(t.getAttribute("data-hs-stepper-content-item")),n=e.index,o=e.isFinal,i=void 0!==o&&o,s=e.isCompleted,r=void 0!==s&&s,l=e.isSkip,a=void 0!==l&&l;r&&t.classList.add("success"),a&&t.classList.add("skipped"),this.contentItems.push({index:n,isFinal:i,isCompleted:r,isSkip:a,el:t})},e.prototype.setCurrentContentItem=function(){var t=this;if(this.isCompleted){var e=this.contentItems.find((function(t){return t.isFinal})),n=this.contentItems.filter((function(t){return!t.isFinal}));return e.el.style.display="",n.forEach((function(t){return t.el.style.display="none"})),!1}this.contentItems.forEach((function(e){var n=e.index,o=e.el;n===t.currentIndex?t.setCurrentContentItemActions(o):t.unsetCurrentContentItemActions(o)}))},e.prototype.hideAllContentItems=function(){this.contentItems.forEach((function(t){return t.el.style.display="none"}))},e.prototype.setCurrentContentItemActions=function(t){t.style.display=""},e.prototype.unsetCurrentContentItemActions=function(t){t.style.display="none"},e.prototype.disableAll=function(){var t=this.getNavItem(this.currentIndex);t.hasError=!1,t.isCompleted=!1,t.isDisabled=!1,t.el.classList.remove("error","success"),this.disableButtons()},e.prototype.disableNavItemActions=function(t){t.isDisabled=!0,t.el.classList.add("disabled")},e.prototype.enableNavItemActions=function(t){t.isDisabled=!1,t.el.classList.remove("disabled")},e.prototype.buildButtons=function(){this.backBtn=this.el.querySelector("[data-hs-stepper-back-btn]"),this.nextBtn=this.el.querySelector("[data-hs-stepper-next-btn]"),this.skipBtn=this.el.querySelector("[data-hs-stepper-skip-btn]"),this.completeStepBtn=this.el.querySelector("[data-hs-stepper-complete-step-btn]"),this.finishBtn=this.el.querySelector("[data-hs-stepper-finish-btn]"),this.resetBtn=this.el.querySelector("[data-hs-stepper-reset-btn]"),this.buildBackButton(),this.buildNextButton(),this.buildSkipButton(),this.buildCompleteStepButton(),this.buildFinishButton(),this.buildResetButton()},e.prototype.buildBackButton=function(){var t=this;this.backBtn&&(this.checkForTheFirstStep(),this.backBtn.addEventListener("click",(function(){if(t.handleBackButtonClick(),"linear"===t.mode){var e=t.navItems.find((function(e){return e.index===t.currentIndex})),n=t.contentItems.find((function(e){return e.index===t.currentIndex}));if(!e||!n)return;e.isCompleted&&(e.isCompleted=!1,e.isSkip=!1,e.el.classList.remove("success","skipped")),n.isCompleted&&(n.isCompleted=!1,n.isSkip=!1,n.el.classList.remove("success","skipped")),"linear"===t.mode&&t.currentIndex!==t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display=""),t.completeStepBtn&&(t.completeStepBtn.style.display="")),t.showSkipButton(),t.showFinishButton(),t.showCompleteStepButton()}})))},e.prototype.handleBackButtonClick=function(){1!==this.currentIndex&&("linear"===this.mode&&this.removeOptionalClasses(),this.currentIndex--,"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.fireEvent("back",this.currentIndex),this.dispatch("back.hs.stepper",this.el,this.currentIndex))},e.prototype.checkForTheFirstStep=function(){1===this.currentIndex?this.setToDisabled(this.backBtn):this.setToNonDisabled(this.backBtn)},e.prototype.setToDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.setAttribute("disabled","disabled"),t.classList.add("disabled")},e.prototype.setToNonDisabled=function(t){"BUTTON"!==t.tagName&&"INPUT"!==t.tagName||t.removeAttribute("disabled"),t.classList.remove("disabled")},e.prototype.buildNextButton=function(){var t=this;this.nextBtn&&this.nextBtn.addEventListener("click",(function(){var e;if(t.fireEvent("beforeNext",t.currentIndex),t.dispatch("beforeNext.hs.stepper",t.el,t.currentIndex),null===(e=t.getNavItem(t.currentIndex))||void 0===e?void 0:e.isProcessed)return t.disableAll(),!1;t.goToNext()}))},e.prototype.unsetProcessedNavItemActions=function(t){t.isProcessed=!1,t.el.classList.remove("processed")},e.prototype.handleNextButtonClick=function(t){if(void 0===t&&(t=!0),t)this.currentIndex===this.totalSteps?this.currentIndex=1:this.currentIndex++;else{var e=this.getUncompletedSteps();if(1===e.length){var n=e[0].index;this.currentIndex=n}else{if(this.currentIndex===this.totalSteps)return;this.currentIndex++}}"linear"===this.mode&&this.removeOptionalClasses(),this.setCurrentNavItem(),this.setCurrentContentItem(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton(),this.showFinishButton(),this.showCompleteStepButton(),this.fireEvent("next",this.currentIndex),this.dispatch("next.hs.stepper",this.el,this.currentIndex)},e.prototype.removeOptionalClasses=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=this.contentItems.find((function(e){return e.index===t.currentIndex}));e.isSkip=!1,e.hasError=!1,e.isDisabled=!1,n.isSkip=!1,e.el.classList.remove("skipped","success","error"),n.el.classList.remove("skipped","success","error")},e.prototype.buildSkipButton=function(){var t=this;this.skipBtn&&(this.showSkipButton(),this.skipBtn.addEventListener("click",(function(){t.handleSkipButtonClick(),"linear"===t.mode&&t.currentIndex===t.totalSteps&&(t.nextBtn&&(t.nextBtn.style.display="none"),t.completeStepBtn&&(t.completeStepBtn.style.display="none"),t.finishBtn&&(t.finishBtn.style.display=""))})))},e.prototype.setSkipItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),o=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&o&&(this.setSkipItemActions(n),this.setSkipItemActions(o))},e.prototype.setSkipItemActions=function(t){t.isSkip=!0,t.el.classList.add("skipped")},e.prototype.showSkipButton=function(){var t=this;if(this.skipBtn){var e=this.navItems.find((function(e){return e.index===t.currentIndex})).isOptional;this.skipBtn.style.display=e?"":"none"}},e.prototype.handleSkipButtonClick=function(){this.setSkipItem(),this.handleNextButtonClick(),this.fireEvent("skip",this.currentIndex),this.dispatch("skip.hs.stepper",this.el,this.currentIndex)},e.prototype.buildCompleteStepButton=function(){var t=this;this.completeStepBtn&&(this.completeStepBtnDefaultText=this.completeStepBtn.innerText,this.completeStepBtn.addEventListener("click",(function(){return t.handleCompleteStepButtonClick()})))},e.prototype.changeTextAndDisableCompleteButtonIfStepCompleted=function(){var t=this,e=this.navItems.find((function(e){return e.index===t.currentIndex})),n=JSON.parse(this.completeStepBtn.getAttribute("data-hs-stepper-complete-step-btn")).completedText;e&&(e.isCompleted?(this.completeStepBtn.innerText=n||this.completeStepBtnDefaultText,this.completeStepBtn.setAttribute("disabled","disabled"),this.completeStepBtn.classList.add("disabled")):(this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")))},e.prototype.setCompleteItem=function(t){var e=this,n=this.navItems.find((function(n){return n.index===(t||e.currentIndex)})),o=this.contentItems.find((function(n){return n.index===(t||e.currentIndex)}));n&&o&&(this.setCompleteItemActions(n),this.setCompleteItemActions(o))},e.prototype.setCompleteItemActions=function(t){t.isCompleted=!0,t.el.classList.add("success")},e.prototype.showCompleteStepButton=function(){this.completeStepBtn&&(1===this.getUncompletedSteps().length?this.completeStepBtn.style.display="none":this.completeStepBtn.style.display="")},e.prototype.handleCompleteStepButtonClick=function(){this.setCompleteItem(),this.fireEvent("complete",this.currentIndex),this.dispatch("complete.hs.stepper",this.el,this.currentIndex),this.handleNextButtonClick(!1),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.completeStepBtn&&this.changeTextAndDisableCompleteButtonIfStepCompleted(),this.showSkipButton()},e.prototype.buildFinishButton=function(){var t=this;this.finishBtn&&(this.isCompleted&&this.setCompleted(),this.finishBtn.addEventListener("click",(function(){return t.handleFinishButtonClick()})))},e.prototype.setCompleted=function(){this.el.classList.add("completed")},e.prototype.unsetCompleted=function(){this.el.classList.remove("completed")},e.prototype.showFinishButton=function(){this.finishBtn&&(1===this.getUncompletedSteps().length?this.finishBtn.style.display="":this.finishBtn.style.display="none")},e.prototype.handleFinishButtonClick=function(){var t=this,e=this.getUncompletedSteps(),n=this.getUncompletedSteps(!0),o=this.contentItems.find((function(t){return t.isFinal})).el;e.length&&e.forEach((function(e){var n=e.index;return t.setCompleteItem(n)})),this.currentIndex=this.totalSteps,this.setCurrentNavItem(),this.hideAllContentItems();var i=this.navItems.find((function(e){return e.index===t.currentIndex}));(i?i.el:null).classList.remove("active"),o.style.display="block",this.backBtn&&(this.backBtn.style.display="none"),this.nextBtn&&(this.nextBtn.style.display="none"),this.skipBtn&&(this.skipBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"),this.finishBtn&&(this.finishBtn.style.display="none"),this.resetBtn&&(this.resetBtn.style.display=""),n.length<=1&&(this.isCompleted=!0,this.setCompleted()),this.fireEvent("finish",this.currentIndex),this.dispatch("finish.hs.stepper",this.el,this.currentIndex)},e.prototype.buildResetButton=function(){var t=this;this.resetBtn&&this.resetBtn.addEventListener("click",(function(){return t.handleResetButtonClick()}))},e.prototype.handleResetButtonClick=function(){var t=this;this.backBtn&&(this.backBtn.style.display=""),this.nextBtn&&(this.nextBtn.style.display=""),this.completeStepBtn&&(this.completeStepBtn.style.display="",this.completeStepBtn.innerText=this.completeStepBtnDefaultText,this.completeStepBtn.removeAttribute("disabled"),this.completeStepBtn.classList.remove("disabled")),this.resetBtn&&(this.resetBtn.style.display="none"),this.navItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentNavItemActions(n),n.classList.remove("success","skipped")})),this.contentItems.forEach((function(e){var n=e.el;e.isSkip=!1,e.isCompleted=!1,t.unsetCurrentContentItemActions(n),n.classList.remove("success","skipped")})),this.currentIndex=1,this.setCurrentNavItem(),this.setCurrentContentItem(),this.showFinishButton(),this.showCompleteStepButton(),this.checkForTheFirstStep(),this.unsetCompleted(),this.isCompleted=!1,this.fireEvent("reset",this.currentIndex),this.dispatch("reset.hs.stepper",this.el,this.currentIndex)},e.prototype.setProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.setProcessedNavItemActions(e)},e.prototype.unsetProcessedNavItem=function(t){var e=this.getNavItem(t);e&&this.unsetProcessedNavItemActions(e)},e.prototype.goToNext=function(){"linear"===this.mode&&this.setCompleteItem(),this.handleNextButtonClick("linear"!==this.mode),"linear"===this.mode&&this.currentIndex===this.totalSteps&&(this.nextBtn&&(this.nextBtn.style.display="none"),this.completeStepBtn&&(this.completeStepBtn.style.display="none"))},e.prototype.disableButtons=function(){this.backBtn&&this.setToDisabled(this.backBtn),this.nextBtn&&this.setToDisabled(this.nextBtn)},e.prototype.enableButtons=function(){this.backBtn&&this.setToNonDisabled(this.backBtn),this.nextBtn&&this.setToNonDisabled(this.nextBtn)},e.prototype.setErrorNavItem=function(t){var e=this.getNavItem(t);e&&this.setErrorNavItemActions(e)},e.getInstance=function(t,e){var n=window.$hsStepperCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsStepperCollection||(window.$hsStepperCollection=[]),document.querySelectorAll("[data-hs-stepper]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSStepper=r,e.default=r},983:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n?@[\\\\\\]^_`{|}~",o.target&&o.init(),o}return i(e,t),e.prototype.init=function(){this.createCollection(window.$hsStrongPasswordCollection,this),this.availableChecks.length&&this.build()},e.prototype.build=function(){var t=this;this.buildStrips(),this.hints&&this.buildHints(),this.setStrength(this.target.value),this.target.addEventListener("input",(function(e){t.setStrength(e.target.value)}))},e.prototype.buildStrips=function(){if(this.stripClasses)for(var t=0;t");this.classToClassList(this.stripClasses,e),this.el.append(e)}},e.prototype.buildHints=function(){var t=this;this.weakness=this.hints.querySelector("[data-hs-strong-password-hints-weakness-text]")||null,this.rules=Array.from(this.hints.querySelectorAll("[data-hs-strong-password-hints-rule-text]"))||null,this.rules.forEach((function(e){var n,o=e.getAttribute("data-hs-strong-password-hints-rule-text");(null===(n=t.checksExclude)||void 0===n?void 0:n.includes(o))&&e.remove()})),this.weakness&&this.buildWeakness(),this.rules&&this.buildRules(),"popover"===this.mode&&(this.target.addEventListener("focus",(function(){t.isOpened=!0,t.hints.classList.remove("hidden"),t.hints.classList.add("block"),t.recalculateDirection()})),this.target.addEventListener("blur",(function(){t.isOpened=!1,t.hints.classList.remove("block","bottom-full","top-full"),t.hints.classList.add("hidden"),t.hints.style.marginTop="",t.hints.style.marginBottom=""})))},e.prototype.buildWeakness=function(){var t=this;this.checkStrength(this.target.value),this.setWeaknessText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setWeaknessText()}))}))},e.prototype.buildRules=function(){var t=this;this.setRulesText(),this.target.addEventListener("input",(function(){return setTimeout((function(){return t.setRulesText()}))}))},e.prototype.setWeaknessText=function(){var t=this.weakness.getAttribute("data-hs-strong-password-hints-weakness-text"),e=JSON.parse(t);this.weakness.textContent=e[this.strength]},e.prototype.setRulesText=function(){var t=this;this.rules.forEach((function(e){var n=e.getAttribute("data-hs-strong-password-hints-rule-text");t.checkIfPassed(e,t.passedRules.has(n))}))},e.prototype.togglePopover=function(){var t=this.el.querySelector(".popover");t&&t.classList.toggle("show")},e.prototype.checkStrength=function(t){var e=new Set,n={lowercase:/[a-z]+/,uppercase:/[A-Z]+/,numbers:/[0-9]+/,"special-characters":new RegExp("[".concat(this.specialCharactersSet,"]"))},o=0;return this.availableChecks.includes("lowercase")&&t.match(n.lowercase)&&(o+=1,e.add("lowercase")),this.availableChecks.includes("uppercase")&&t.match(n.uppercase)&&(o+=1,e.add("uppercase")),this.availableChecks.includes("numbers")&&t.match(n.numbers)&&(o+=1,e.add("numbers")),this.availableChecks.includes("special-characters")&&t.match(n["special-characters"])&&(o+=1,e.add("special-characters")),this.availableChecks.includes("min-length")&&t.length>=this.minLength&&(o+=1,e.add("min-length")),t.length||(o=0),o===this.availableChecks.length?this.el.classList.add("accepted"):this.el.classList.remove("accepted"),this.strength=o,this.passedRules=e,{strength:this.strength,rules:this.passedRules}},e.prototype.checkIfPassed=function(t,e){void 0===e&&(e=!1);var n=t.querySelector("[data-check]"),o=t.querySelector("[data-uncheck]");e?(t.classList.add("active"),n.classList.remove("hidden"),o.classList.add("hidden")):(t.classList.remove("active"),n.classList.add("hidden"),o.classList.remove("hidden"))},e.prototype.setStrength=function(t){var e=this.checkStrength(t),n=e.strength,o={strength:n,rules:e.rules};this.hideStrips(n),this.fireEvent("change",o),this.dispatch("change.hs.strongPassword",this.el,o)},e.prototype.hideStrips=function(t){Array.from(this.el.children).forEach((function(e,n){n1&&!!o.el.closest("[data-hs-toggle-password-group]"),o.target&&o.init(),o}return i(e,t),e.prototype.init=function(){var t=this;this.createCollection(window.$hsTogglePasswordCollection,this),this.isShown?this.show():this.hide(),this.el.addEventListener(this.eventType,(function(){t.isShown?t.hide():t.show(),t.fireEvent("toggle",t.target),t.dispatch("toggle.hs.toggle-select",t.el,t.target)}))},e.prototype.getMultipleToggles=function(){var t=this.el.closest("[data-hs-toggle-password-group]").querySelectorAll("[data-hs-toggle-password]"),n=[];return t.forEach((function(t){n.push(e.getInstance(t))})),n},e.prototype.show=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!0)})),this.el.closest("[data-hs-toggle-password-group]").classList.add("active")):(this.isShown=!0,this.el.classList.add("active")),this.target.forEach((function(t){t.type="text"}))},e.prototype.hide=function(){this.isMultiple?(this.getMultipleToggles().forEach((function(t){return!!t&&(t.isShown=!1)})),this.el.closest("[data-hs-toggle-password-group]").classList.remove("active")):(this.isShown=!1,this.el.classList.remove("active")),this.target.forEach((function(t){t.type="password"}))},e.getInstance=function(t,e){var n=window.$hsTogglePasswordCollection.find((function(e){return e.element.el===("string"==typeof t?document.querySelector(t):t)}));return n?e?n:n.element:null},e}(n(737).default);window.addEventListener("load",(function(){window.$hsTogglePasswordCollection||(window.$hsTogglePasswordCollection=[]),document.querySelectorAll("[data-hs-toggle-password]:not(.--prevent-on-load-init)").forEach((function(t){return new r(t)}))})),t.exports.HSTogglePassword=r,e.default=r},679:function(t,e,n){"use strict";var o,i=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(t){for(var e,n=1,o=arguments.length;n{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.menuSearchHistory=void 0;var o=n(489);e.menuSearchHistory=o.default},489:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={historyIndex:-1,addHistory:function(t){this.historyIndex=t},existsInHistory:function(t){return t>this.historyIndex},clearHistory:function(){this.historyIndex=-1}}}},e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var s=e[o]={exports:{}};return t[o].call(s.exports,s,s.exports,n),s.exports}return 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),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n(700)})())); \ No newline at end of file diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..94638ca --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,8 @@ +const config = { + useTabs: true, + singleQuote: true, + bracketSameLine: true, + arrowParens: 'always', +}; + +module.exports = config; diff --git a/src/components/hs-accordion/index.js b/src/components/hs-accordion/index.js deleted file mode 100644 index d68ef42..0000000 --- a/src/components/hs-accordion/index.js +++ /dev/null @@ -1,87 +0,0 @@ -/* - * HSAccordion - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSAccordion extends Component { - constructor() { - super('.hs-accordion'); - } - - init() { - document.addEventListener('click', (e) => { - const $targetEl = e.target; - const $accordionEl = $targetEl.closest(this.selector); - const $accordionToggleEl = $targetEl.closest('.hs-accordion-toggle'); - const $accordionGroupEl = $targetEl.closest('.hs-accordion-group'); - if ($accordionEl && $accordionGroupEl && $accordionToggleEl) { - this._hideAll($accordionEl); - - this.show($accordionEl); - } - }); - } - - show($accordionEl) { - if ($accordionEl.classList.contains('active')) { - return this.hide($accordionEl); - } - - $accordionEl.classList.add('active'); - - const $accordionContentEl = $accordionEl.querySelector('.hs-accordion-content'); - - $accordionContentEl.style.display = 'block'; - $accordionContentEl.style.height = 0; - setTimeout(() => { - $accordionContentEl.style.height = `${$accordionContentEl.scrollHeight}px`; - }); - - this.afterTransition($accordionContentEl, () => { - if (!$accordionEl.classList.contains('active')) return; - $accordionContentEl.style.height = ''; - - this._fireEvent('open', $accordionEl); - this._dispatch('open.hs.accordion', $accordionEl, $accordionEl); - }); - } - - hide($accordionEl) { - const $accordionContentEl = $accordionEl.querySelector('.hs-accordion-content'); - - $accordionContentEl.style.height = `${$accordionContentEl.scrollHeight}px`; - setTimeout(() => { - $accordionContentEl.style.height = 0; - }); - - this.afterTransition($accordionContentEl, () => { - if ($accordionEl.classList.contains('active')) return; - $accordionContentEl.style.display = ''; - - this._fireEvent('hide', $accordionEl); - this._dispatch('hide.hs.accordion', $accordionEl, $accordionEl); - }); - - $accordionEl.classList.remove('active'); - } - - _hideAll($currentaccordionEl) { - const $accordionGroupEl = $currentaccordionEl.closest('.hs-accordion-group'); - - if ($accordionGroupEl.hasAttribute('data-hs-accordion-always-open')) return; - - $accordionGroupEl.querySelectorAll(this.selector).forEach(($accordionEl) => { - if ($currentaccordionEl !== $accordionEl) { - this.hide($accordionEl); - } - }); - } -} - -window.HSAccordion = new HSAccordion(); -document.addEventListener('load', window.HSAccordion.init()); diff --git a/src/components/hs-accordion/plugin.js b/src/components/hs-accordion/plugin.js deleted file mode 100644 index 3c1f94c..0000000 --- a/src/components/hs-accordion/plugin.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Plugin - Accordion - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-accordion-active', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active.${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active > .hs-accordion-toggle .${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-accordion.active > .hs-accordion-toggle.${e(`hs-accordion-active${separator}${className}`)}`; - }); - }, - ]); -}); diff --git a/src/components/hs-collapse/index.js b/src/components/hs-collapse/index.js deleted file mode 100644 index 59d4f12..0000000 --- a/src/components/hs-collapse/index.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * HSCollapse - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSCollapse extends Component { - constructor() { - super('[data-hs-collapse]'); - } - - init() { - document.addEventListener('click', (e) => { - const $targetEl = e.target; - const $collapseToggleEl = $targetEl.closest(this.selector); - - if ($collapseToggleEl) { - const collapseEls = document.querySelectorAll($collapseToggleEl.getAttribute('data-hs-collapse')); - - this.toggle(collapseEls); - } - }); - } - - toggle($collapseEls) { - if (!$collapseEls.length) return; - - [...$collapseEls].forEach(($collapseEl) => { - $collapseEl.classList.contains('hidden') ? this.show($collapseEl) : this.hide($collapseEl); - }); - } - - show($collapseEl) { - $collapseEl.classList.add('open'); - $collapseEl.classList.remove('hidden'); - $collapseEl.style.height = 0; - - document.querySelectorAll(this.selector).forEach(($toggleEl) => { - if ($collapseEl.closest($toggleEl.getAttribute('data-hs-collapse'))) { - $toggleEl.classList.add('open'); - } - }); - - $collapseEl.style.height = `${$collapseEl.scrollHeight}px`; - - this.afterTransition($collapseEl, () => { - if (!$collapseEl.classList.contains('open')) return; - - $collapseEl.style.height = ''; - - this._fireEvent('open', $collapseEl); - this._dispatch('open.hs.collapse', $collapseEl, $collapseEl); - }); - } - - hide($collapseEl) { - $collapseEl.style.height = `${$collapseEl.scrollHeight}px`; - - setTimeout(() => { - $collapseEl.style.height = 0; - }); - - $collapseEl.classList.remove('open'); - - this.afterTransition($collapseEl, () => { - if ($collapseEl.classList.contains('open')) return; - $collapseEl.classList.add('hidden'); - $collapseEl.style.height = null; - - this._fireEvent('hide', $collapseEl); - this._dispatch('hide.hs.collapse', $collapseEl, $collapseEl); - - $collapseEl.querySelectorAll('.hs-mega-menu-content.block').forEach(($megaMenuEl) => { - $megaMenuEl.classList.remove('block'); - $megaMenuEl.classList.add('hidden'); - }); - }); - - document.querySelectorAll(this.selector).forEach(($toggleEl) => { - if ($collapseEl.closest($toggleEl.getAttribute('data-hs-collapse'))) { - $toggleEl.classList.remove('open'); - } - }); - } -} - -window.HSCollapse = new HSCollapse(); -document.addEventListener('load', window.HSCollapse.init()); diff --git a/src/components/hs-collapse/plugin.js b/src/components/hs-collapse/plugin.js deleted file mode 100644 index f1a2005..0000000 --- a/src/components/hs-collapse/plugin.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Plugin - Collapse - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-collapse-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse.open .${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse.open.${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse-toggle.open .${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-collapse-toggle.open.${e(`hs-collapse-open${separator}${className}`)}`; - }); - }, - ]); -}); diff --git a/src/components/hs-dropdown/index.js b/src/components/hs-dropdown/index.js deleted file mode 100644 index 40731d6..0000000 --- a/src/components/hs-dropdown/index.js +++ /dev/null @@ -1,347 +0,0 @@ -/* - * HSDropdown - * @version: 1.3.0 - * @author: HtmlStream - * @requires: @popperjs/core ^2.11.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import { createPopper } from '@popperjs/core'; -import Component from '../../core/Component'; -import MenuSearchHistory from '../../core/utils/MenuSearchHistory'; - -const isIOS = () => { - if (/iPad|iPhone|iPod/.test(navigator.platform)) { - return true; - } else { - return navigator.maxTouchPoints && navigator.maxTouchPoints > 2 && /MacIntel/.test(navigator.platform); - } -}; - -const isIpadOS = () => { - return navigator.maxTouchPoints && navigator.maxTouchPoints > 2 && /MacIntel/.test(navigator.platform); -}; - -class HSDropdown extends Component { - constructor() { - super('.hs-dropdown'); - - this.positions = { - top: 'top', - 'top-left': 'top-start', - 'top-right': 'top-end', - bottom: 'bottom', - 'bottom-left': 'bottom-start', - 'bottom-right': 'bottom-end', - right: 'right', - 'right-top': 'right-start', - 'right-bottom': 'right-end', - left: 'left', - 'left-top': 'left-start', - 'left-bottom': 'left-end', - }; - this.absoluteStrategyModifiers = ($dropdownEl) => { - return [ - { - name: 'applyStyles', - fn: (data) => { - const strategy = ( - window.getComputedStyle($dropdownEl).getPropertyValue('--strategy') || 'absolute' - ).replace(' ', ''); - const adaptive = ( - window.getComputedStyle($dropdownEl).getPropertyValue('--adaptive') || 'adaptive' - ).replace(' ', ''); - - data.state.elements.popper.style.position = strategy; - data.state.elements.popper.style.transform = - adaptive === 'adaptive' ? data.state.styles.popper.transform : null; - data.state.elements.popper.style.top = null; - data.state.elements.popper.style.bottom = null; - data.state.elements.popper.style.left = null; - data.state.elements.popper.style.right = null; - data.state.elements.popper.style.margin = 0; - }, - }, - { - name: 'computeStyles', - options: { - adaptive: false, - }, - }, - ]; - }; - this._history = MenuSearchHistory; - } - - init() { - document.addEventListener('click', (e) => { - const $targetEl = e.target; - const $dropdownEl = $targetEl.closest(this.selector); - const $menuEl = $targetEl.closest('.hs-dropdown-menu'); - - if (!$dropdownEl || !$dropdownEl.classList.contains('open')) this._closeOthers($dropdownEl); - - if ($menuEl) { - const autoClose = (window.getComputedStyle($dropdownEl).getPropertyValue('--auto-close') || '').replace( - ' ', - '' - ); - if ((autoClose == 'false' || autoClose == 'inside') && !$dropdownEl.parentElement.closest(this.selector)) - return; - } - - if ($dropdownEl) { - !$dropdownEl.classList.contains('open') ? this.open($dropdownEl) : this.close($dropdownEl); - } - }); - - document.addEventListener('mousemove', (e) => { - const $targetEl = e.target; - const $dropdownEl = $targetEl.closest(this.selector); - const $menuEl = $targetEl.closest('.hs-dropdown-menu'); - - if ($dropdownEl) { - const trigger = (window.getComputedStyle($dropdownEl).getPropertyValue('--trigger') || 'click').replace( - ' ', - '' - ); - if (trigger !== 'hover') return; - - if (!$dropdownEl || !$dropdownEl.classList.contains('open')) this._closeOthers($dropdownEl); - if (trigger === 'hover' && !$dropdownEl.classList.contains('open') && !isIOS() && !isIpadOS()) - this._hover($targetEl); - } - }); - - document.addEventListener('keydown', this._keyboardSupport.bind(this)); - - window.addEventListener('resize', () => { - const dropdownEls = document.querySelectorAll('.hs-dropdown.open'); - dropdownEls.forEach(($dropdownEl) => { - this.close($dropdownEl, true); - }); - }); - } - - _closeOthers($currentDropdownEl = null) { - const $collection = document.querySelectorAll(`${this.selector}.open`); - $collection.forEach(($dropdownEl) => { - if ($currentDropdownEl && $currentDropdownEl.closest('.hs-dropdown.open') === $dropdownEl) return; - - const autoClose = (window.getComputedStyle($dropdownEl).getPropertyValue('--auto-close') || '').replace(' ', ''); - if (autoClose == 'false' || autoClose == 'outside') return; - - this.close($dropdownEl); - }); - } - - _hover($targetEl) { - const $dropdownEl = $targetEl.closest(this.selector); - - this.open($dropdownEl); - - const handleMousmove = (e) => { - if ( - !e.target.closest(this.selector) || - e.target.closest(this.selector) === $dropdownEl.parentElement.closest(this.selector) - ) { - this.close($dropdownEl); - document.removeEventListener('mousemove', handleMousmove, true); - } - }; - - document.addEventListener('mousemove', handleMousmove, true); - } - - close($dropdownEl, noAnimation = false) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - - const destroy = () => { - if ($dropdownEl.classList.contains('open')) return; - $menuEl.classList.remove('block'); - $menuEl.classList.add('hidden'); - $menuEl.style.inset = null; - $menuEl.style.position = null; - - if ($dropdownEl._popper) { - $dropdownEl._popper.destroy(); - } - }; - - if (!noAnimation) { - this.afterTransition($dropdownEl.querySelector('[data-hs-dropdown-transition]') || $menuEl, () => { - destroy(); - }); - } - - $menuEl.style.margin = null; - $dropdownEl.classList.remove('open'); - - if (noAnimation) { - destroy(); - } - - this._fireEvent('close', $dropdownEl); - this._dispatch('close.hs.dropdown', $dropdownEl, $dropdownEl); - - const dropdownEls = $menuEl.querySelectorAll('.hs-dropdown.open'); - dropdownEls.forEach(($dropdownEl) => { - this.close($dropdownEl, true); - }); - } - - open($dropdownEl) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const placement = (window.getComputedStyle($dropdownEl).getPropertyValue('--placement') || '').replace(' ', ''); - const strategy = (window.getComputedStyle($dropdownEl).getPropertyValue('--strategy') || 'fixed').replace(' ', ''); - const adaptive = (window.getComputedStyle($dropdownEl).getPropertyValue('--adaptive') || 'adaptive').replace( - ' ', - '' - ); - const offset = parseInt( - (window.getComputedStyle($dropdownEl).getPropertyValue('--offset') || '10').replace(' ', '') - ); - - if (strategy !== 'static') { - if ($dropdownEl._popper) { - $dropdownEl._popper.destroy(); - } - - const $popper = createPopper($dropdownEl, $menuEl, { - placement: this.positions[placement] || 'bottom-start', - strategy: strategy, - modifiers: [ - ...(strategy !== 'fixed' ? this.absoluteStrategyModifiers($dropdownEl) : []), - { - name: 'offset', - options: { - offset: [0, offset], - }, - }, - ], - }); - - $dropdownEl._popper = $popper; - } - - $menuEl.style.margin = null; - $menuEl.classList.add('block'); - $menuEl.classList.remove('hidden'); - - setTimeout(() => { - $dropdownEl.classList.add('open'); - }); - - this._fireEvent('open', $dropdownEl); - this._dispatch('open.hs.dropdown', $dropdownEl, $dropdownEl); - } - - _keyboardSupport(e) { - const $dropdownEl = document.querySelector('.hs-dropdown.open'); - if (!$dropdownEl) return; - - if (e.keyCode === 27) { - e.preventDefault(); - return this._esc($dropdownEl); - } - if (e.keyCode === 40) { - e.preventDefault(); - return this._down($dropdownEl); - } - if (e.keyCode === 38) { - e.preventDefault(); - return this._up($dropdownEl); - } - - if (e.keyCode === 36) { - e.preventDefault(); - return this._start($dropdownEl); - } - - if (e.keyCode === 35) { - e.preventDefault(); - return this._end($dropdownEl); - } - - this._byChar($dropdownEl, e.key); - } - - _esc($dropdownEl) { - this.close($dropdownEl); - } - - _up($dropdownEl) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const links = [...$menuEl.querySelectorAll('a')].reverse().filter(($linkEl) => !$linkEl.disabled); - const $activeLinkEl = $menuEl.querySelector('a:focus'); - let acitveIndex = links.findIndex(($linkEl) => $linkEl === $activeLinkEl); - - if (acitveIndex + 1 < links.length) { - acitveIndex++; - } - - links[acitveIndex].focus(); - } - - _down($dropdownEl) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const links = [...$menuEl.querySelectorAll('a')].filter(($linkEl) => !$linkEl.disabled); - const $activeLinkEl = $menuEl.querySelector('a:focus'); - let acitveIndex = links.findIndex(($linkEl) => $linkEl === $activeLinkEl); - - if (acitveIndex + 1 < links.length) { - acitveIndex++; - } - - links[acitveIndex].focus(); - } - - _start($dropdownEl) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const links = [...$menuEl.querySelectorAll('a')].filter(($linkEl) => !$linkEl.disabled); - - if (links.length) { - links[0].focus(); - } - } - - _end($dropdownEl) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const links = [...$menuEl.querySelectorAll('a')].reverse().filter(($linkEl) => !$linkEl.disabled); - - if (links.length) { - links[0].focus(); - } - } - - _byChar($dropdownEl, char) { - const $menuEl = $dropdownEl.querySelector('.hs-dropdown-menu'); - const links = [...$menuEl.querySelectorAll('a')]; - const getActiveIndex = () => { - return links.findIndex( - ($linkEl, index) => - $linkEl.innerText.toLowerCase().charAt(0) === char.toLowerCase() && this._history.existsInHistory(index) - ); - }; - - let acitveIndex = getActiveIndex(); - - if (acitveIndex === -1) { - this._history.clearHistory(); - acitveIndex = getActiveIndex(); - } - - if (acitveIndex !== -1) { - links[acitveIndex].focus(); - this._history.addHistory(acitveIndex); - } - } - - toggle($dropdownEl) { - $dropdownEl.classList.contains('open') ? this.close($dropdownEl) : this.open($dropdownEl); - } -} - -window.HSDropdown = new HSDropdown(); -document.addEventListener('load', window.HSDropdown.init()); diff --git a/src/components/hs-dropdown/plugin.js b/src/components/hs-dropdown/plugin.js deleted file mode 100644 index 8c3b049..0000000 --- a/src/components/hs-dropdown/plugin.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Plugin - Dropdown - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-dropdown-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-dropdown.open > .${e(`hs-dropdown-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-dropdown.open > .hs-dropdown-menu > .${e(`hs-dropdown-open${separator}${className}`)}`; - }); - }, - ]); -}); diff --git a/src/components/hs-mode/plugin.js b/src/components/hs-mode/plugin.js deleted file mode 100644 index 31a4179..0000000 --- a/src/components/hs-mode/plugin.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Plugin - Mode - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-dark-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.dark .${e(`hs-dark-mode-active${separator}${className}`)}`; - }); - }); - addVariant('hs-auto-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.auto .${e(`hs-auto-mode-active${separator}${className}`)}`; - }); - }); - addVariant('hs-default-mode-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.default .${e(`hs-default-mode-active${separator}${className}`)}`; - }); - }); -}); diff --git a/src/components/hs-overlay/index.js b/src/components/hs-overlay/index.js deleted file mode 100644 index a4d44ba..0000000 --- a/src/components/hs-overlay/index.js +++ /dev/null @@ -1,197 +0,0 @@ -/* - * HSOverlay - * @version: 1.3.0 - * @author: HtmlStream - * @license: Htmlstream Libraries (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSOverlay extends Component { - constructor() { - super('[data-hs-overlay]'); - - this.openNextOverlay = false; - } - - init() { - document.addEventListener('click', (e) => { - const $targetEl = e.target; - const $overlayToggleEl = $targetEl.closest(this.selector); - const $closeOverlayTriggerEl = e.target.closest('[data-hs-overlay-close]'); - const $openedOverlayEl = e.target.getAttribute('aria-overlay') === 'true'; - - if ($closeOverlayTriggerEl) { - return this.close($closeOverlayTriggerEl.closest('.hs-overlay.open')); - } - - if ($overlayToggleEl) { - return this.toggle(document.querySelector($overlayToggleEl.getAttribute('data-hs-overlay'))); - } - - if ($openedOverlayEl) { - this._onBackdropClick(e.target); - } - }); - - document.addEventListener('keydown', (e) => { - if (e.keyCode === 27) { - const $openedOverlayEl = document.querySelector('.hs-overlay.open'); - if (!$openedOverlayEl) return; - - setTimeout(() => { - $openedOverlayEl.getAttribute('data-hs-overlay-keyboard') !== 'false' ? this.close($openedOverlayEl) : null; - }); - } - }); - } - - toggle($overlayEl) { - if (!$overlayEl) return; - - $overlayEl.classList.contains('hidden') ? this.open($overlayEl) : this.close($overlayEl); - } - - open($overlayEl) { - if (!$overlayEl) return; - - const $openedOverlayEl = document.querySelector('.hs-overlay.open'); - const disabledScroll = this.getClassProperty($overlayEl, '--body-scroll', 'false') !== 'true'; - - if ($openedOverlayEl) { - this.openNextOverlay = true; - return this.close($openedOverlayEl).then(() => { - this.open($overlayEl); - this.openNextOverlay = false; - }); - } - - if (disabledScroll) { - document.body.style.overflow = 'hidden'; - } - - this._buildBackdrop($overlayEl); - this._checkTimer($overlayEl); - this._autoHide($overlayEl); - - $overlayEl.classList.remove('hidden'); - $overlayEl.setAttribute('aria-overlay', 'true'); - $overlayEl.setAttribute('tabindex', '-1'); - - setTimeout(() => { - if ($overlayEl.classList.contains('hidden')) return; - $overlayEl.classList.add('open'); - this._fireEvent('open', $overlayEl); - this._dispatch('open.hs.overlay', $overlayEl, $overlayEl); - this._focusInput($overlayEl); - }, 50); - } - - close($overlayEl) { - return new Promise((resolve) => { - if (!$overlayEl) return; - - $overlayEl.classList.remove('open'); - $overlayEl.removeAttribute('aria-overlay'); - $overlayEl.removeAttribute('tabindex', '-1'); - - this.afterTransition($overlayEl, () => { - if ($overlayEl.classList.contains('open')) return; - $overlayEl.classList.add('hidden'); - this._destroyBackdrop(); - this._fireEvent('close', $overlayEl); - this._dispatch('close.hs.overlay', $overlayEl, $overlayEl); - document.body.style.overflow = ''; - resolve($overlayEl); - }); - }); - } - - _autoHide($overlayEl) { - const time = parseInt(this.getClassProperty($overlayEl, '--auto-hide', '0')); - - if (time) { - $overlayEl.autoHide = setTimeout(() => { - this.close($overlayEl); - }, time); - } - } - - _checkTimer($overlayEl) { - if ($overlayEl.autoHide) { - clearTimeout($overlayEl.autoHide); - delete $overlayEl.autoHide; - } - } - - _onBackdropClick($overlayEl) { - const closeOnBackdrop = this.getClassProperty($overlayEl, '--overlay-backdrop', 'true') !== 'static'; - - if (closeOnBackdrop) { - this.close($overlayEl); - } - } - - _buildBackdrop($overlayEl) { - const backdropSelector = $overlayEl.getAttribute('data-hs-overlay-backdrop-container') || false; - let $backdropEl = document.createElement('div'); - let backdropClasses = - 'transition duration fixed inset-0 z-50 bg-gray-900 bg-opacity-50 dark:bg-opacity-80 hs-overlay-backdrop'; - - for (const value of $overlayEl.classList.values()) { - if (value.startsWith('hs-overlay-backdrop-open:')) { - backdropClasses += ` ${value}`; - } - } - - const closeOnBackdrop = this.getClassProperty($overlayEl, '--overlay-backdrop', 'true') !== 'static'; - const disableBackdrop = this.getClassProperty($overlayEl, '--overlay-backdrop', 'true') === 'false'; - - if (disableBackdrop) return; - - if (backdropSelector) { - $backdropEl = document.querySelector(backdropSelector).cloneNode(true); - $backdropEl.classList.remove('hidden'); - backdropClasses = $backdropEl.classList; - $backdropEl.classList = ''; - } - - if (closeOnBackdrop) { - $backdropEl.addEventListener('click', () => this.close($overlayEl), true); - } - - $backdropEl.setAttribute('data-hs-overlay-backdrop-template', ''); - document.body.appendChild($backdropEl); - - setTimeout(() => { - $backdropEl.classList = backdropClasses; - }); - } - - _destroyBackdrop() { - const $backdropEl = document.querySelector('[data-hs-overlay-backdrop-template]'); - - if (!$backdropEl) return; - - if (this.openNextOverlay) { - $backdropEl.style.transitionDuration = `${ - parseFloat(window.getComputedStyle($backdropEl).transitionDuration.replace(/[^\d.-]/g, '')) * 1.8 - }s`; - } - - $backdropEl.classList.add('opacity-0'); - - this.afterTransition($backdropEl, () => { - $backdropEl.remove(); - }); - } - - _focusInput($overlayEl) { - const $inputWithAutoFocusEl = $overlayEl.querySelector('[autofocus]'); - if ($inputWithAutoFocusEl) $inputWithAutoFocusEl.focus(); - } -} - -window.HSOverlay = new HSOverlay(); -document.addEventListener('load', window.HSOverlay.init()); diff --git a/src/components/hs-overlay/plugin.js b/src/components/hs-overlay/plugin.js deleted file mode 100644 index 14c295a..0000000 --- a/src/components/hs-overlay/plugin.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Plugin - Overlay - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-overlay-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.open.${e(`hs-overlay-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.open .${e(`hs-overlay-open${separator}${className}`)}`; - }); - }, - ]); - addVariant('hs-overlay-backdrop-open', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-overlay-backdrop.${e(`hs-overlay-backdrop-open${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-overlay-backdrop .${e(`hs-overlay-backdrop-open${separator}${className}`)}`; - }); - }, - ]); -}); diff --git a/src/components/hs-remove-element/index.js b/src/components/hs-remove-element/index.js deleted file mode 100644 index 5963439..0000000 --- a/src/components/hs-remove-element/index.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * HSRemoveElement - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSRemoveElement extends Component { - constructor() { - super('[data-hs-remove-element]'); - } - - init() { - document.addEventListener('click', (e) => { - const $removeElementTrigger = e.target.closest(this.selector); - if (!$removeElementTrigger) return; - - const $removeEl = document.querySelector($removeElementTrigger.getAttribute('data-hs-remove-element')); - if ($removeEl) { - $removeEl.classList.add('hs-removing'); - this.afterTransition($removeEl, () => { - $removeEl.remove(); - }); - } - }); - } -} - -window.HSRemoveElement = new HSRemoveElement(); -document.addEventListener('load', window.HSRemoveElement.init()); diff --git a/src/components/hs-remove-element/plugin.js b/src/components/hs-remove-element/plugin.js deleted file mode 100644 index 9c2cae8..0000000 --- a/src/components/hs-remove-element/plugin.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Plugin - Remove Element - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-removing', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-removing.${e(`hs-removing${separator}${className}`)}`; - }); - }); -}); diff --git a/src/components/hs-scrollspy/index.js b/src/components/hs-scrollspy/index.js deleted file mode 100644 index 535b596..0000000 --- a/src/components/hs-scrollspy/index.js +++ /dev/null @@ -1,103 +0,0 @@ -/* - * HSScrollspy - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSScrollspy extends Component { - constructor() { - super('[data-hs-scrollspy] '); - - this.activeSection = null; - } - - init() { - document.querySelectorAll(this.selector).forEach(($scrollspyEl) => { - const $scrollspyContentEl = document.querySelector($scrollspyEl.getAttribute('data-hs-scrollspy')); - const links = $scrollspyEl.querySelectorAll('[href]'); - const sections = $scrollspyContentEl.children; - const $scrollableEl = $scrollspyEl.getAttribute('data-hs-scrollspy-scrollable-parent') - ? document.querySelector($scrollspyEl.getAttribute('data-hs-scrollspy-scrollable-parent')) - : document; - - Array.from(sections).forEach(($sectionEl) => { - if (!$sectionEl.getAttribute('id')) return; - - $scrollableEl.addEventListener('scroll', (ev) => - this._update({ - $scrollspyEl, - $scrollspyContentEl, - links, - $sectionEl, - sections, - ev, - }) - ); - }); - - links.forEach(($link) => { - $link.addEventListener('click', (e) => { - e.preventDefault(); - if ($link.getAttribute('href') === 'javascript:;') return; - this._scrollTo({ $scrollspyEl, $scrollableEl, $link }); - }); - }); - }); - } - - _update({ ev, $scrollspyEl, sections, links, $sectionEl }) { - const globalOffset = parseInt(this.getClassProperty($scrollspyEl, '--scrollspy-offset', '0')); - const userOffset = this.getClassProperty($sectionEl, '--scrollspy-offset') || globalOffset; - const offsetScrollableParent = ev.target === document ? 0 : parseInt(ev.target.getBoundingClientRect().top); - const topOffset = parseInt($sectionEl.getBoundingClientRect().top) - userOffset - offsetScrollableParent; - const height = $sectionEl.offsetHeight; - - if (topOffset <= 0 && topOffset + height > 0) { - if (this.activeSection === $sectionEl) return; - - links.forEach(($el) => { - $el.classList.remove('active'); - }); - - const $relatedLinkEl = $scrollspyEl.querySelector(`[href="#${$sectionEl.getAttribute('id')}"]`); - if ($relatedLinkEl) { - $relatedLinkEl.classList.add('active'); - - const $groupEl = $relatedLinkEl.closest('[data-hs-scrollspy-group]'); - if ($groupEl) { - const $parentLinkEl = $groupEl.querySelector('[href]'); - if ($parentLinkEl) $parentLinkEl.classList.add('active'); - } - } - - this.activeSection = $sectionEl; - } - } - - _scrollTo({ $scrollspyEl, $scrollableEl, $link }) { - const $sectionEl = document.querySelector($link.getAttribute('href')); - const globalOffset = parseInt(this.getClassProperty($scrollspyEl, '--scrollspy-offset', '0')); - const userOffset = this.getClassProperty($sectionEl, '--scrollspy-offset') || globalOffset; - const offsetScrollableParent = $scrollableEl === document ? 0 : $scrollableEl.offsetTop; - const topOffset = $sectionEl.offsetTop - userOffset - offsetScrollableParent; - const $viewEl = $scrollableEl === document ? window : $scrollableEl; - - this._fireEvent('scroll', $scrollspyEl); - this._dispatch('scroll.hs.scrollspy', $scrollspyEl, $scrollspyEl); - - window.history.replaceState(null, null, $link.getAttribute('href')); - - $viewEl.scrollTo({ - top: topOffset, - left: 0, - behavior: 'smooth', - }); - } -} - -window.HSScrollspy = new HSScrollspy(); -document.addEventListener('load', window.HSScrollspy.init()); diff --git a/src/components/hs-scrollspy/plugin.js b/src/components/hs-scrollspy/plugin.js deleted file mode 100644 index 9b8ef62..0000000 --- a/src/components/hs-scrollspy/plugin.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Plugin - Scrollspy - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-scrollspy-active', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.active.${e(`hs-scrollspy-active${separator}${className}`)}`; - }); - }); -}); diff --git a/src/components/hs-tabs/index.js b/src/components/hs-tabs/index.js deleted file mode 100644 index ef6b39c..0000000 --- a/src/components/hs-tabs/index.js +++ /dev/null @@ -1,153 +0,0 @@ -/* - * HSTabs - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import Component from '../../core/Component'; - -class HSTabs extends Component { - constructor() { - super('[data-hs-tab]'); - } - - init() { - document.addEventListener('keydown', this._keyboardSupport.bind(this)); - - document.addEventListener('click', (e) => { - const $targetEl = e.target; - const $tabToggleEl = $targetEl.closest(this.selector); - - if ($tabToggleEl) { - this.open($tabToggleEl); - } - }); - - document.querySelectorAll('[hs-data-tab-select]').forEach(($tabNavWithSelectEl) => { - const $selectEl = document.querySelector($tabNavWithSelectEl.getAttribute('hs-data-tab-select')); - if (!$selectEl) return; - - $selectEl.addEventListener('change', (e) => { - const $tabToggleEl = document.querySelector(`[data-hs-tab="${e.target.value}"]`); - if (!$tabToggleEl) return; - this.open($tabToggleEl); - }); - }); - } - - open($tabToggleEl) { - const $tabEl = document.querySelector($tabToggleEl.getAttribute('data-hs-tab')); - const $tabToggleEls = [...$tabToggleEl.parentElement.children]; - const $tabEls = [...$tabEl.parentElement.children]; - const $tabNavWithSelectEl = $tabToggleEl.closest('[hs-data-tab-select]'); - const $selectEl = $tabNavWithSelectEl - ? document.querySelector($tabNavWithSelectEl.getAttribute('data-hs-tab')) - : null; - - $tabToggleEls.forEach(($tab) => $tab.classList.remove('active')); - $tabEls.forEach(($tab) => $tab.classList.add('hidden')); - - $tabToggleEl.classList.add('active'); - $tabEl.classList.remove('hidden'); - - this._fireEvent('change', $tabToggleEl); - this._dispatch('change.hs.tab', $tabToggleEl, $tabToggleEl); - - if ($selectEl) { - $selectEl.value = $tabToggleEl.getAttribute('data-hs-tab'); - } - } - - _keyboardSupport(e) { - const $tabButtonEl = e.target.closest(this.selector); - if (!$tabButtonEl) return; - - const $navEl = $tabButtonEl.closest('[role="tablist"]'); - const vertical = $navEl.getAttribute('data-hs-tabs-vertical') === 'true'; - - if (vertical ? e.keyCode === 38 : e.keyCode === 37) { - e.preventDefault(); - return this._left($tabButtonEl); - } - - if (vertical ? e.keyCode === 40 : e.keyCode === 39) { - e.preventDefault(); - return this._right($tabButtonEl); - } - - if (e.keyCode === 36) { - e.preventDefault(); - return this._start($tabButtonEl); - } - - if (e.keyCode === 35) { - e.preventDefault(); - return this._end($tabButtonEl); - } - } - - _right($tabButtonEl) { - const $navEl = $tabButtonEl.closest('[role="tablist"]'); - if (!$navEl) return; - - const buttons = [...$navEl.querySelectorAll(this.selector)].filter(($buttonEl) => !$buttonEl.disabled); - const $activeButtonEl = $navEl.querySelector('button:focus'); - let acitveIndex = buttons.findIndex(($buttonEl) => $buttonEl === $activeButtonEl); - - if (acitveIndex + 1 < buttons.length) { - acitveIndex++; - } else { - acitveIndex = 0; - } - - buttons[acitveIndex].focus(); - this.open(buttons[acitveIndex]); - } - - _left($tabButtonEl) { - const $navEl = $tabButtonEl.closest('[role="tablist"]'); - if (!$navEl) return; - - const buttons = [...$navEl.querySelectorAll(this.selector)].filter(($buttonEl) => !$buttonEl.disabled).reverse(); - const $activeButtonEl = $navEl.querySelector('button:focus'); - let acitveIndex = buttons.findIndex(($buttonEl) => $buttonEl === $activeButtonEl); - - if (acitveIndex + 1 < buttons.length) { - acitveIndex++; - } else { - acitveIndex = 0; - } - - buttons[acitveIndex].focus(); - this.open(buttons[acitveIndex]); - } - - _start($tabButtonEl) { - const $navEl = $tabButtonEl.closest('[role="tablist"]'); - if (!$navEl) return; - - const buttons = [...$navEl.querySelectorAll(this.selector)].filter(($buttonEl) => !$buttonEl.disabled); - - if (buttons.length) { - buttons[0].focus(); - this.open(buttons[0]); - } - } - - _end($tabButtonEl) { - const $navEl = $tabButtonEl.closest('[role="tablist"]'); - if (!$navEl) return; - - const buttons = [...$navEl.querySelectorAll(this.selector)].reverse().filter(($buttonEl) => !$buttonEl.disabled); - - if (buttons.length) { - buttons[0].focus(); - this.open(buttons[0]); - } - } -} - -window.HSTabs = new HSTabs(); -document.addEventListener('load', window.HSTabs.init()); diff --git a/src/components/hs-tabs/plugin.js b/src/components/hs-tabs/plugin.js deleted file mode 100644 index 9e44c02..0000000 --- a/src/components/hs-tabs/plugin.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Plugin - Tabs - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-tab-active', [ - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `[data-hs-tab].active.${e(`hs-tab-active${separator}${className}`)}`; - }); - }, - ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `[data-hs-tab].active .${e(`hs-tab-active${separator}${className}`)}`; - }); - }, - ]); -}); diff --git a/src/components/hs-tooltip/index.js b/src/components/hs-tooltip/index.js deleted file mode 100644 index bde0150..0000000 --- a/src/components/hs-tooltip/index.js +++ /dev/null @@ -1,159 +0,0 @@ -/* -* HSTooltips -* @version: 1.4.0 -* @author: HtmlStream -* @requires: @popperjs/core ^2.11.2 -* @license: Licensed under MIT (https://preline.co/docs/license.html) -* Copyright 2023 Htmlstream -*/ - -import Component from "../../core/Component"; -import {createPopper} from "@popperjs/core"; - -class HSTooltip extends Component { - constructor () { - super('.hs-tooltip') - } - - init () { - document.addEventListener('click', e => { - const $targetEl = e.target - const $tooltipEl = $targetEl.closest(this.selector) - - if ($tooltipEl && this.getClassProperty($tooltipEl, '--trigger') === 'focus') this._focus($tooltipEl) - if ($tooltipEl && this.getClassProperty($tooltipEl, '--trigger') === 'click') this._click($tooltipEl) - }) - - document.addEventListener('mousemove', e => { - const $targetEl = e.target - const $tooltipEl = $targetEl.closest(this.selector) - - if ($tooltipEl && this.getClassProperty($tooltipEl, '--trigger') !== 'focus' && this.getClassProperty($tooltipEl, '--trigger') !== 'click') this._hover($tooltipEl) - }) - } - - _hover ($tooltipEl) { - if ($tooltipEl.classList.contains('show')) return - - const $tooltipToggleEl = $tooltipEl.querySelector('.hs-tooltip-toggle') - const $tooltipContentEl = $tooltipEl.querySelector('.hs-tooltip-content') - const placement = this.getClassProperty($tooltipEl, '--placement') - - createPopper($tooltipToggleEl, $tooltipContentEl, { - placement: placement || 'top', - strategy: 'fixed', - modifiers: [ - { - name: 'offset', - options: { - offset: [0, 5] - } - } - ] - }) - - this.show($tooltipEl) - - const handleMouseoverOnTooltip = (e) => { - if (e.relatedTarget.closest(this.selector) && e.relatedTarget.closest(this.selector) == $tooltipEl) return - this.hide($tooltipEl) - $tooltipEl.removeEventListener('mouseleave', handleMouseoverOnTooltip, true) - } - - $tooltipEl.addEventListener('mouseleave', handleMouseoverOnTooltip, true) - } - - _focus ($tooltipEl) { - const $tooltipToggleEl = $tooltipEl.querySelector('.hs-tooltip-toggle') - const $tooltipContentEl = $tooltipEl.querySelector('.hs-tooltip-content') - const placement = this.getClassProperty($tooltipEl, '--placement') - const strategy = this.getClassProperty($tooltipEl, '--strategy') - - createPopper($tooltipToggleEl, $tooltipContentEl, { - placement: placement || 'top', - strategy: strategy || 'fixed', - modifiers: [ - { - name: 'offset', - options: { - offset: [0, 5] - } - } - ] - }) - - this.show($tooltipEl) - - const handleMouseoverOnTooltip = () => { - this.hide($tooltipEl) - $tooltipEl.removeEventListener('blur', handleMouseoverOnTooltip, true) - } - - - $tooltipEl.addEventListener('blur', handleMouseoverOnTooltip, true) - } - - _click ($tooltipEl) { - if ($tooltipEl.classList.contains('show')) return - - const $tooltipToggleEl = $tooltipEl.querySelector('.hs-tooltip-toggle') - const $tooltipContentEl = $tooltipEl.querySelector('.hs-tooltip-content') - const placement = this.getClassProperty($tooltipEl, '--placement') - const strategy = this.getClassProperty($tooltipEl, '--strategy') - - createPopper($tooltipToggleEl, $tooltipContentEl, { - placement: placement || 'top', - strategy: strategy || 'fixed', - modifiers: [ - { - name: 'offset', - options: { - offset: [0, 5] - } - } - ] - }) - - this.show($tooltipEl) - - const handleMouseoverOnTooltip = (e) => { - setTimeout(() => { - this.hide($tooltipEl) - $tooltipEl.removeEventListener('click', handleMouseoverOnTooltip, true) - $tooltipEl.removeEventListener('blur', handleMouseoverOnTooltip, true) - }) - } - - $tooltipEl.addEventListener('blur', handleMouseoverOnTooltip, true) - $tooltipEl.addEventListener('click', handleMouseoverOnTooltip, true) - } - - show ($tooltipEl) { - const $tooltipContentEl = $tooltipEl.querySelector('.hs-tooltip-content') - $tooltipContentEl.classList.remove('hidden') - - setTimeout(() => { - $tooltipEl.classList.add('show') - - this._fireEvent('show', $tooltipEl) - this._dispatch('show.hs.tooltip', $tooltipEl, $tooltipEl) - }) - } - - hide ($tooltipEl) { - const $tooltipContentEl = $tooltipEl.querySelector('.hs-tooltip-content') - - $tooltipEl.classList.remove('show') - - this._fireEvent('hide', $tooltipEl) - this._dispatch('hide.hs.tooltip', $tooltipEl, $tooltipEl) - - this.afterTransition($tooltipContentEl, () => { - if ($tooltipEl.classList.contains('show')) return - $tooltipContentEl.classList.add('hidden') - }) - } -} - -window.HSTooltip = new HSTooltip() -document.addEventListener('load', window.HSTooltip.init()) \ No newline at end of file diff --git a/src/components/hs-tooltip/plugin.js b/src/components/hs-tooltip/plugin.js deleted file mode 100644 index c0c8f9f..0000000 --- a/src/components/hs-tooltip/plugin.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Plugin - Tooltip - * @version: 1.3.1 - * @author: HtmlStream - * @requires: tailwindcss ^3.1.2 - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addVariant, e }) { - addVariant('hs-tooltip-shown', ({ modifySelectors, separator }) => { - modifySelectors(({ className }) => { - return `.hs-tooltip.show .${e(`hs-tooltip-shown${separator}${className}`)}`; - }); - }); -}); diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..32d0c4b --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,49 @@ +export const POSITIONS: any = { + auto: 'auto', + 'auto-start': 'auto-start', + 'auto-end': 'auto-end', + top: 'top', + 'top-left': 'top-start', + 'top-right': 'top-end', + bottom: 'bottom', + 'bottom-left': 'bottom-start', + 'bottom-right': 'bottom-end', + right: 'right', + 'right-start': 'right-start', + 'right-end': 'right-end', + left: 'left', + 'left-start': 'left-start', + 'left-end': 'left-end', +}; + +export const DROPDOWN_ACCESSIBILITY_KEY_SET = [ + 'Escape', + 'ArrowUp', + 'ArrowDown', + 'Home', + 'End', + 'Enter', +]; + +export const OVERLAY_ACCESSIBILITY_KEY_SET = ['Escape', 'Tab']; + +export const TABS_ACCESSIBILITY_KEY_SET = [ + 'ArrowUp', + 'ArrowLeft', + 'ArrowDown', + 'ArrowRight', + 'Home', + 'End', +]; + +export const SELECT_ACCESSIBILITY_KEY_SET = [ + 'ArrowUp', + 'ArrowLeft', + 'ArrowDown', + 'ArrowRight', + 'Home', + 'End', + 'Escape', + 'Enter', + 'Tab', +]; diff --git a/src/core/Component.js b/src/core/Component.js deleted file mode 100644 index b7105d7..0000000 --- a/src/core/Component.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Component - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -export default class Component { - constructor(selector, config) { - this.$collection = []; - this.selector = selector; - this.config = config; - this.events = {}; - } - - _fireEvent(eventType, payload = null) { - if (this.events.hasOwnProperty(eventType)) { - this.events[eventType](payload); - } - } - - _dispatch(eventType, element, payload = null) { - const event = new CustomEvent(eventType, { - detail: { payload }, - bubbles: true, - cancelable: true, - composed: false, - }); - element.dispatchEvent(event); - } - - on(eventType, callback) { - this.events[eventType] = callback; - } - - afterTransition($element, callback) { - const handleEvent = () => { - callback(); - $element.removeEventListener('transitionend', handleEvent, true); - }; - - if (window.getComputedStyle($element, null).getPropertyValue('transition') !== 'all 0s ease 0s') { - $element.addEventListener('transitionend', handleEvent, true); - } else { - callback(); - } - } - - getClassProperty($element, propertyName, defaultValue = '') { - const value = (window.getComputedStyle($element).getPropertyValue(propertyName) || defaultValue).replace(' ', ''); - - return value; - } -} diff --git a/src/core/utils/MenuSearchHistory.js b/src/core/utils/MenuSearchHistory.js deleted file mode 100644 index 5492e79..0000000 --- a/src/core/utils/MenuSearchHistory.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Util - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -export default { - historyIndex: -1, - - addHistory(index) { - this.historyIndex = index; - }, - - existsInHistory(index) { - return index > this.historyIndex; - }, - - clearHistory() { - this.historyIndex = -1; - }, -}; diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 5c44ed8..0000000 --- a/src/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Index - * @version: 1.3.0 - * @author: HtmlStream - * @license: Licensed under MIT (https://preline.co/docs/license.html) - * Copyright 2023 Htmlstream - */ - -import './components/hs-accordion'; -import './components/hs-collapse'; -import './components/hs-dropdown'; -import './components/hs-overlay'; -import './components/hs-remove-element'; -import './components/hs-scrollspy'; -import './components/hs-tabs'; -import './components/hs-tooltip'; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..5169020 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,47 @@ +const CopyMarkup = require('./plugins/copy-markup'); + +const Accordion = require('./plugins/accordion'); +const BunchCheck = require('./plugins/bunch-check'); +const Carousel = require('./plugins/carousel'); +const Collapse = require('./plugins/collapse'); +const Dropdown = require('./plugins/dropdown'); +const InputMask = require('./plugins/input-mask'); +const InputNumber = require('./plugins/input-number'); +const Overlay = require('./plugins/overlay'); +const PinInput = require('./plugins/pin-input'); +const RemoveElement = require('./plugins/remove-element'); +const SearchByJson = require('./plugins/search-by-json'); +const Scrollspy = require('./plugins/scrollspy'); +const Select = require('./plugins/select'); +const Stepper = require('./plugins/stepper'); +const StrongPassword = require('./plugins/strong-password'); +const Tabs = require('./plugins/tabs'); +const ThemeSwitch = require('./plugins/theme-switch'); +const ToggleCount = require('./plugins/toggle-count'); +const TogglePassword = require('./plugins/toggle-password'); +const Tooltip = require('./plugins/tooltip'); + +module.exports = { + HSCopyMarkup: CopyMarkup.HSCopyMarkup, + + HSAccordion: Accordion.HSAccordion, + HSBunchCheck: BunchCheck.HSBunchCheck, + HSCarousel: Carousel.HSCarousel, + HSCollapse: Collapse.HSCollapse, + HSDropdown: Dropdown.HSDropdown, + HSInputMask: InputMask.HSInputMask, + HSInputNumber: InputNumber.HSInputNumber, + HSOverlay: Overlay.HSOverlay, + HSPinInput: PinInput.HSPinInput, + HSRemoveElement: RemoveElement.HSRemoveElement, + HSSearchByJson: SearchByJson.HSSearchByJson, + HSScrollspy: Scrollspy.HSScrollspy, + HSSelect: Select.HSSelect, + HSStepper: Stepper.HSStepper, + HSStrongPassword: StrongPassword.HSStrongPassword, + HSTabs: Tabs.HSTabs, + HSThemeSwitch: ThemeSwitch.HSThemeSwitch, + HSToggleCount: ToggleCount.HSToggleCount, + HSTogglePassword: TogglePassword.HSTogglePassword, + HSTooltip: Tooltip.HSTooltip, +}; diff --git a/src/interfaces.ts b/src/interfaces.ts new file mode 100644 index 0000000..ecaa76a --- /dev/null +++ b/src/interfaces.ts @@ -0,0 +1,4 @@ +export interface ICollectionItem { + id: string | number; + element: T; +} \ No newline at end of file diff --git a/src/plugins/accordion/index.ts b/src/plugins/accordion/index.ts new file mode 100644 index 0000000..8b5e47d --- /dev/null +++ b/src/plugins/accordion/index.ts @@ -0,0 +1,175 @@ +/* + * HSAccordion + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IAccordion } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSAccordion extends HSBasePlugin<{}> implements IAccordion { + private readonly toggle: HTMLElement | null; + public content: HTMLElement | null; + private readonly group: HTMLElement | null; + private readonly isAlwaysOpened: boolean; + + constructor(el: HTMLElement, options?: {}, events?: {}) { + super(el, options, events); + + this.toggle = this.el.querySelector('.hs-accordion-toggle') || null; + this.content = this.el.querySelector('.hs-accordion-content') || null; + this.group = this.el.closest('.hs-accordion-group') || null; + this.isAlwaysOpened = + this.group.hasAttribute('data-hs-accordion-always-open') || false; + + if (this.toggle && this.content) this.init(); + } + + private init() { + this.createCollection(window.$hsAccordionCollection, this); + + this.toggle.addEventListener('click', () => { + if (this.el.classList.contains('active')) { + this.hide(); + } else { + this.show(); + } + }); + } + + // Public methods + public show() { + if ( + this.group && + !this.isAlwaysOpened && + this.group.querySelector('.hs-accordion.active') && + this.group.querySelector('.hs-accordion.active') !== this.el + ) { + const currentlyOpened = window.$hsAccordionCollection.find( + (el) => + el.element.el === this.group.querySelector('.hs-accordion.active'), + ); + + currentlyOpened.element.hide(); + } + + if (this.el.classList.contains('active')) return false; + + this.el.classList.add('active'); + + this.content.style.display = 'block'; + this.content.style.height = '0'; + setTimeout(() => { + this.content.style.height = `${this.content.scrollHeight}px`; + }); + + this.afterTransition(this.content, () => { + this.content.style.height = ''; + + this.fireEvent('open', this.el); + this.dispatch('open.hs.accordion', this.el, this.el); + }); + } + + public hide() { + if (!this.el.classList.contains('active')) return false; + + this.el.classList.remove('active'); + + this.content.style.height = `${this.content.scrollHeight}px`; + setTimeout(() => { + this.content.style.height = '0'; + }); + + this.afterTransition(this.content, () => { + this.content.style.display = ''; + + this.fireEvent('close', this.el); + this.dispatch('close.hs.accordion', this.el, this.el); + }); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsAccordionCollection.find( + (el) => + el.element.el === + (typeof target === 'string' + ? document.querySelector(target) + : target) + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element.el + : null; + } + + static show(target: HTMLElement) { + const elInCollection = window.$hsAccordionCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + elInCollection.element.content.style.display !== 'block' + ) + elInCollection.element.show(); + } + + static hide(target: HTMLElement) { + const elInCollection = window.$hsAccordionCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + elInCollection.element.content.style.display === 'block' + ) + elInCollection.element.hide(); + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsAccordionCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all accordions +declare global { + interface Window { + $hsAccordionCollection: { + id: number; + element: HSAccordion; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsAccordionCollection) window.$hsAccordionCollection = []; + + document + .querySelectorAll('.hs-accordion:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSAccordion(el)); + + // Uncomment for debug + // console.log('Accordion collection:', window.$hsAccordionCollection); +}); + +module.exports.HSAccordion = HSAccordion; + +export default HSAccordion; diff --git a/src/plugins/accordion/interfaces.ts b/src/plugins/accordion/interfaces.ts new file mode 100644 index 0000000..a55a015 --- /dev/null +++ b/src/plugins/accordion/interfaces.ts @@ -0,0 +1,7 @@ +export interface IAccordion { + options?: {}; + + show(): void; + + hide(): void; +} diff --git a/src/plugins/accordion/types.ts b/src/plugins/accordion/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/accordion/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/base-plugin/index.ts b/src/plugins/base-plugin/index.ts new file mode 100644 index 0000000..efefb1a --- /dev/null +++ b/src/plugins/base-plugin/index.ts @@ -0,0 +1,238 @@ +/* + * HSBasePlugin + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IBasePlugin } from './interfaces'; + +export default class HSBasePlugin + implements IBasePlugin { + constructor( + public el: E, + public options: O, + public events?: any, + ) { + this.el = el; + this.options = options; + this.events = {}; + } + + public isIOS() { + if (/iPad|iPhone|iPod/.test(navigator.platform)) { + return true; + } else { + return ( + navigator.maxTouchPoints && + navigator.maxTouchPoints > 2 && + /MacIntel/.test(navigator.platform) + ); + } + } + + public isIpadOS() { + return ( + navigator.maxTouchPoints && + navigator.maxTouchPoints > 2 && + /MacIntel/.test(navigator.platform) + ); + } + + public createCollection(collection: any[], element: any) { + collection.push({ + id: element?.el?.id || collection.length + 1, + element, + }); + } + + public fireEvent(evt: string, payload: any = null) { + if (this.events.hasOwnProperty(evt)) return this.events[evt](payload); + } + + public dispatch(evt: string, element: any, payload: any = null) { + const event = new CustomEvent(evt, { + detail: { payload }, + bubbles: true, + cancelable: true, + composed: false, + }); + + element.dispatchEvent(event); + } + + public on(evt: string, cb: Function) { + this.events[evt] = cb; + } + + public afterTransition(el: HTMLElement, callback: Function) { + const handleEvent = () => { + callback(); + + el.removeEventListener('transitionend', handleEvent, true); + }; + + if ( + window.getComputedStyle(el, null).getPropertyValue('transition') !== + 'all 0s ease 0s' + ) { + el.addEventListener('transitionend', handleEvent, true); + } else { + callback(); + } + } + + public onTransitionEnd(el: HTMLElement, cb: Function) { + function transitionEndHandler(evt: Event) { + if (evt.target === el) { + el.removeEventListener('transitionend', transitionEndHandler); + + cb(); + } + } + + el.addEventListener('transitionend', transitionEndHandler); + } + + public getClassProperty(el: HTMLElement, prop: string, val = '') { + return (window.getComputedStyle(el).getPropertyValue(prop) || val).replace( + ' ', + '', + ); + } + + public getClassPropertyAlt(el: HTMLElement, prop?: string, val: string = '') { + let targetClass = ''; + + el.classList.forEach((c) => { + if (c.includes(prop)) { + targetClass = c; + } + }); + + return targetClass.match(/:(.*)]/) ? targetClass.match(/:(.*)]/)[1] : val; + } + + public htmlToElement(html: string) { + const template = document.createElement('template'); + html = html.trim(); + template.innerHTML = html; + + return template.content.firstChild as HTMLElement; + } + + public classToClassList( + classes: string, + target: HTMLElement, + splitter = ' ', + ) { + const classesToArray = classes.split(splitter); + classesToArray.forEach((cl) => target.classList.add(cl)); + } + + public debounce(func: Function, timeout = 200) { + let timer: any; + + return (...args: any[]) => { + clearTimeout(timer); + + timer = setTimeout(() => { + func.apply(this, args); + }, timeout); + }; + } + + public checkIfFormElement(target: HTMLElement) { + return ( + target instanceof HTMLInputElement || + target instanceof HTMLTextAreaElement || + target instanceof HTMLSelectElement + ); + } + + static isEnoughSpace( + el: HTMLElement, + toggle: HTMLElement, + preferredPosition: 'top' | 'bottom' | 'auto' = 'auto', + space = 10, + wrapper: HTMLElement | null = null, + ) { + const referenceRect = toggle.getBoundingClientRect(); + const wrapperRect = wrapper ? wrapper.getBoundingClientRect() : null; + const viewportHeight = window.innerHeight; + const spaceAbove = wrapperRect + ? referenceRect.top - wrapperRect.top + : referenceRect.top; + const spaceBelow = + (wrapper ? wrapperRect.bottom : viewportHeight) - referenceRect.bottom; + const minimumSpaceRequired = el.clientHeight + space; + + if (preferredPosition === 'bottom') { + return spaceBelow >= minimumSpaceRequired; + } else if (preferredPosition === 'top') { + return spaceAbove >= minimumSpaceRequired; + } else { + return ( + spaceAbove >= minimumSpaceRequired || spaceBelow >= minimumSpaceRequired + ); + } + } + + static isParentOrElementHidden(element: any): any { + if (!element) return false; + + const computedStyle = window.getComputedStyle(element); + + if (computedStyle.display === 'none') return true; + + return this.isParentOrElementHidden(element.parentElement); + } +} + +// Init all dropdowns +declare global { + interface Window { + HSStaticMethods: { + afterTransition(el: HTMLElement, cb: Function): void; + getClassPropertyAlt(el: HTMLElement, prop?: string, val?: string): string; + getClassProperty(el: HTMLElement, prop?: string, val?: string): string; + }; + } +} + +window.HSStaticMethods = { + afterTransition(el: HTMLElement, cb: Function) { + const handleEvent = () => { + cb(); + + el.removeEventListener('transitionend', handleEvent, true); + }; + + if ( + window.getComputedStyle(el, null).getPropertyValue('transition') !== + 'all 0s ease 0s' + ) { + el.addEventListener('transitionend', handleEvent, true); + } else { + cb(); + } + }, + getClassPropertyAlt(el: HTMLElement, prop?: string, val: string = '') { + let targetClass = ''; + + el.classList.forEach((c) => { + if (c.includes(prop)) { + targetClass = c; + } + }); + + return targetClass.match(/:(.*)]/) ? targetClass.match(/:(.*)]/)[1] : val; + }, + getClassProperty(el: HTMLElement, prop: string, val = '') { + return (window.getComputedStyle(el).getPropertyValue(prop) || val).replace( + ' ', + '', + ); + }, +}; diff --git a/src/plugins/base-plugin/interfaces.ts b/src/plugins/base-plugin/interfaces.ts new file mode 100644 index 0000000..eabcc29 --- /dev/null +++ b/src/plugins/base-plugin/interfaces.ts @@ -0,0 +1,5 @@ +export interface IBasePlugin { + el: E; + options?: O; + events?: {}; +} \ No newline at end of file diff --git a/src/plugins/base-plugin/types.ts b/src/plugins/base-plugin/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/base-plugin/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/carousel/index.ts b/src/plugins/carousel/index.ts new file mode 100644 index 0000000..8cef394 --- /dev/null +++ b/src/plugins/carousel/index.ts @@ -0,0 +1,333 @@ +/* + * HSCarousel + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ICarousel, ICarouselOptions } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSCarousel extends HSBasePlugin implements ICarousel { + private readonly inner: HTMLElement | null; + private readonly slides: NodeListOf | undefined[]; + private readonly prev: HTMLElement | null; + private readonly next: HTMLElement | null; + private readonly dots: NodeListOf | null; + private sliderWidth: number; + private currentIndex: number; + private readonly loadingClasses: string | string[]; + private readonly loadingClassesRemove: string | string[]; + private readonly loadingClassesAdd: string | string[]; + private readonly afterLoadingClassesAdd: string | string[]; + private readonly isAutoPlay: boolean; + private readonly speed: number; + private readonly isInfiniteLoop: boolean; + private timer: any; + + // Touch events' help variables + private readonly touchX: { + start: number; + end: number; + }; + + constructor(el: HTMLElement, options?: ICarouselOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-carousel'); + const dataOptions: ICarouselOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.currentIndex = concatOptions.currentIndex || 0; + this.loadingClasses = concatOptions.loadingClasses + ? `${concatOptions.loadingClasses}`.split(',') + : null; + this.loadingClassesRemove = this.loadingClasses?.[0] + ? this.loadingClasses[0].split(' ') + : 'opacity-0'; + this.loadingClassesAdd = this.loadingClasses?.[1] + ? this.loadingClasses[1].split(' ') + : ''; + this.afterLoadingClassesAdd = this.loadingClasses?.[2] + ? this.loadingClasses[2].split(' ') + : ''; + this.isAutoPlay = + typeof concatOptions.isAutoPlay !== 'undefined' + ? concatOptions.isAutoPlay + : false; + this.speed = concatOptions.speed || 4000; + this.isInfiniteLoop = + typeof concatOptions.isInfiniteLoop !== 'undefined' + ? concatOptions.isInfiniteLoop + : true; + this.inner = this.el.querySelector('.hs-carousel-body') || null; + this.slides = this.el.querySelectorAll('.hs-carousel-slide') || []; + this.prev = this.el.querySelector('.hs-carousel-prev') || null; + this.next = this.el.querySelector('.hs-carousel-next') || null; + this.dots = this.el.querySelectorAll('.hs-carousel-pagination > *') || null; + this.sliderWidth = this.inner.parentElement.clientWidth; + + // Touch events' help variables + this.touchX = { + start: 0, + end: 0, + }; + + this.init(); + } + + private init() { + this.createCollection(window.$hsCarouselCollection, this); + + if (this.inner) { + this.calculateWidth(); + if (this.loadingClassesRemove) { + if (typeof this.loadingClassesRemove === 'string') + this.inner.classList.remove(this.loadingClassesRemove); + else this.inner.classList.remove(...this.loadingClassesRemove); + } + if (this.loadingClassesAdd) { + if (typeof this.loadingClassesAdd === 'string') + this.inner.classList.add(this.loadingClassesAdd); + else this.inner.classList.add(...this.loadingClassesAdd); + } + } + if (this.prev) + this.prev.addEventListener('click', () => { + this.goToPrev(); + if (this.isAutoPlay) { + this.resetTimer(); + this.setTimer(); + } + }); + if (this.next) + this.next.addEventListener('click', () => { + this.goToNext(); + if (this.isAutoPlay) { + this.resetTimer(); + this.setTimer(); + } + }); + if (this.dots) { + this.dots.forEach((el, i) => + el.addEventListener('click', () => { + this.goTo(i); + if (this.isAutoPlay) { + this.resetTimer(); + this.setTimer(); + } + }), + ); + } + if (this.slides.length) { + this.addCurrentClass(); + if (!this.isInfiniteLoop) this.addDisabledClass(); + if (this.isAutoPlay) this.autoPlay(); + } + if (this.inner && this.afterLoadingClassesAdd) { + setTimeout(() => { + if (typeof this.afterLoadingClassesAdd === 'string') + this.inner.classList.add(this.afterLoadingClassesAdd); + else this.inner.classList.add(...this.afterLoadingClassesAdd); + }); + } + + this.el.classList.add('init'); + + document.addEventListener('touchstart', (evt) => { + this.touchX.start = evt.changedTouches[0].screenX; + }); + + document.addEventListener('touchend', (evt) => { + this.touchX.end = evt.changedTouches[0].screenX; + + this.detectDirection(); + }); + + this.observeResize(); + } + + private observeResize() { + const resizeObserver = new ResizeObserver(() => this.recalculateWidth()); + + resizeObserver.observe(document.querySelector('body')); + } + + private calculateWidth() { + // Set slider width + this.inner.style.width = `${this.sliderWidth * this.slides.length}px`; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + // Set width to each slide + this.slides.forEach((el) => { + el.style.width = `${this.sliderWidth}px`; + }); + } + + private addCurrentClass() { + this.slides.forEach((el, i) => { + if (i === this.currentIndex) { + el.classList.add('active'); + } else { + el.classList.remove('active'); + } + }); + + if (this.dots) { + this.dots.forEach((el, i) => { + if (i === this.currentIndex) { + el.classList.add('active'); + } else { + el.classList.remove('active'); + } + }); + } + } + + private addDisabledClass() { + if (!this.prev || !this.next) return false; + + if (this.currentIndex === 0) { + this.next.classList.remove('disabled'); + this.prev.classList.add('disabled'); + } else if (this.currentIndex === this.slides.length - 1) { + this.prev.classList.remove('disabled'); + this.next.classList.add('disabled'); + } else { + this.prev.classList.remove('disabled'); + this.next.classList.remove('disabled'); + } + } + + private autoPlay() { + this.setTimer(); + } + + private setTimer() { + this.timer = setInterval(() => { + if (this.currentIndex === this.slides.length - 1) this.goTo(0); + else this.goToNext(); + }, this.speed); + } + + private resetTimer() { + clearInterval(this.timer); + } + + private detectDirection() { + const { start, end } = this.touchX; + + if (end < start) this.goToNext(); + if (end > start) this.goToPrev(); + } + + // Public methods + public recalculateWidth() { + this.sliderWidth = this.inner.parentElement.clientWidth; + + this.calculateWidth(); + } + + public goToPrev() { + if (this.currentIndex === 0 && this.isInfiniteLoop) { + this.currentIndex = this.slides.length - 1; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + this.addCurrentClass(); + } else if (this.currentIndex !== 0) { + this.currentIndex -= 1; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + this.addCurrentClass(); + this.addDisabledClass(); + } + } + + public goToNext() { + if (this.currentIndex === this.slides.length - 1 && this.isInfiniteLoop) { + this.currentIndex = 0; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + this.addCurrentClass(); + } else if (this.currentIndex < this.slides.length - 1) { + this.currentIndex += 1; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + this.addCurrentClass(); + this.addDisabledClass(); + } + } + + public goTo(i: number) { + this.currentIndex = i; + this.inner.style.transform = `translate(-${ + this.currentIndex * this.sliderWidth + }px, 0px)`; + + this.addCurrentClass(); + if (!this.isInfiniteLoop) this.addDisabledClass(); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsCarouselCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all carousels +declare global { + interface Window { + $hsCarouselCollection: { + id: number; + element: HSCarousel; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsCarouselCollection) window.$hsCarouselCollection = []; + + document + .querySelectorAll('[data-hs-carousel]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSCarousel(el)); + + // Uncomment for debug + // console.log('Carousel collection:', window.$hsCarouselCollection); +}); + +window.addEventListener('resize', () => { + if (!window.$hsCarouselCollection) return false; + + window.$hsCarouselCollection.forEach((el) => { + el.element.recalculateWidth(); + }); +}); + +module.exports.HSCarousel = HSCarousel; + +export default HSCarousel; diff --git a/src/plugins/carousel/interfaces.ts b/src/plugins/carousel/interfaces.ts new file mode 100644 index 0000000..95903a9 --- /dev/null +++ b/src/plugins/carousel/interfaces.ts @@ -0,0 +1,19 @@ +export interface ICarouselOptions { + currentIndex: number; + loadingClasses?: string | string[]; + isAutoPlay?: boolean; + speed?: number; + isInfiniteLoop?: boolean; +} + +export interface ICarousel { + options?: ICarouselOptions; + + recalculateWidth(): void; + + goToPrev(): void; + + goToNext(): void; + + goTo(i: number): void; +} diff --git a/src/plugins/carousel/types.ts b/src/plugins/carousel/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/carousel/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/collapse/index.ts b/src/plugins/collapse/index.ts new file mode 100644 index 0000000..9fa090b --- /dev/null +++ b/src/plugins/collapse/index.ts @@ -0,0 +1,183 @@ +/* + * HSCollapse + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ICollapse } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSCollapse extends HSBasePlugin<{}> implements ICollapse { + private readonly contentId: string | null; + public content: HTMLElement | null; + private animationInProcess: boolean; + + constructor(el: HTMLElement, options?: {}, events?: {}) { + super(el, options, events); + + this.contentId = this.el.dataset.hsCollapse; + this.content = document.querySelector(this.contentId); + this.animationInProcess = false; + + if (this.content) this.init(); + } + + private init() { + this.createCollection(window.$hsCollapseCollection, this); + + this.el.addEventListener('click', () => { + if (this.content.classList.contains('open')) { + this.hide(); + } else { + this.show(); + } + }); + } + + private hideAllMegaMenuItems() { + this.content + .querySelectorAll('.hs-mega-menu-content.block') + .forEach((el) => { + el.classList.remove('block'); + el.classList.add('hidden'); + }); + } + + // Public methods + public show() { + if ( + this.animationInProcess + || this.el.classList.contains('open') + ) return false; + + this.animationInProcess = true; + + this.el.classList.add('open'); + this.content.classList.add('open'); + this.content.classList.remove('hidden'); + + this.content.style.height = '0'; + setTimeout(() => { + this.content.style.height = `${this.content.scrollHeight}px`; + }); + + this.afterTransition(this.content, () => { + this.content.style.height = ''; + + this.fireEvent('open', this.el); + this.dispatch('open.hs.collapse', this.el, this.el); + + this.animationInProcess = false; + }); + } + + public hide() { + if ( + this.animationInProcess + || !this.el.classList.contains('open') + ) return false; + + this.animationInProcess = true; + + this.el.classList.remove('open'); + + this.content.style.height = `${this.content.scrollHeight}px`; + setTimeout(() => { + this.content.style.height = '0'; + }); + + this.content.classList.remove('open'); + + this.afterTransition(this.content, () => { + this.content.classList.add('hidden'); + this.content.style.height = ''; + + this.fireEvent('hide', this.el); + this.dispatch('hide.hs.collapse', this.el, this.el); + + this.animationInProcess = false; + }); + + if (this.content.querySelectorAll('.hs-mega-menu-content.block').length) { + this.hideAllMegaMenuItems(); + } + } + + // Static methods + static getInstance(target: HTMLElement, isInstance = false) { + const elInCollection = window.$hsCollapseCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection ? (isInstance ? elInCollection : elInCollection.element.el) : null; + } + + static show(target: HTMLElement) { + const elInCollection = window.$hsCollapseCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + elInCollection.element.content.classList.contains('hidden') + ) + elInCollection.element.show(); + } + + static hide(target: HTMLElement) { + const elInCollection = window.$hsCollapseCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + !elInCollection.element.content.classList.contains('hidden') + ) + elInCollection.element.hide(); + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsCollapseCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all collapses +declare global { + interface Window { + $hsCollapseCollection: { + id: number; + element: HSCollapse; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsCollapseCollection) window.$hsCollapseCollection = []; + + document + .querySelectorAll('.hs-collapse-toggle:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSCollapse(el)); + + // Uncomment for debug + // console.log('Collapse collection:', window.$hsCollapseCollection); +}); + +module.exports.HSCollapse = HSCollapse; + +export default HSCollapse; diff --git a/src/plugins/collapse/interfaces.ts b/src/plugins/collapse/interfaces.ts new file mode 100644 index 0000000..5cdcaf1 --- /dev/null +++ b/src/plugins/collapse/interfaces.ts @@ -0,0 +1,7 @@ +export interface ICollapse { + options?: {}; + + show(): void; + + hide(): void; +} diff --git a/src/plugins/collapse/types.ts b/src/plugins/collapse/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/collapse/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/copy-markup/index.ts b/src/plugins/copy-markup/index.ts new file mode 100644 index 0000000..a33f82d --- /dev/null +++ b/src/plugins/copy-markup/index.ts @@ -0,0 +1,159 @@ +/* + * HSCopyMarkup + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ICopyMarkupOptions, ICopyMarkup } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSCopyMarkup extends HSBasePlugin implements ICopyMarkup { + private readonly targetSelector: string | null; + private readonly wrapperSelector: string | null; + private readonly limit: number | null; + + private target: HTMLElement | null; + private wrapper: HTMLElement | null; + private items: HTMLElement[] | null; + + constructor(el: HTMLElement, options?: ICopyMarkupOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-copy-markup'); + const dataOptions: ICopyMarkupOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.targetSelector = concatOptions?.targetSelector || null; + this.wrapperSelector = concatOptions?.wrapperSelector || null; + this.limit = concatOptions?.limit || null; + this.items = []; + + if (this.targetSelector) this.init(); + } + + private init() { + this.createCollection(window.$hsCopyMarkupCollection, this); + + this.setTarget(); + this.setWrapper(); + this.addPredefinedItems(); + this.el.addEventListener('click', () => this.copy()); + } + + private copy() { + if (this.limit && this.items.length >= this.limit) return false; + + if (this.el.hasAttribute('disabled')) this.el.setAttribute('disabled', ''); + + const copiedElement = this.target.cloneNode(true) as HTMLElement; + + this.addToItems(copiedElement); + + if (this.limit && this.items.length >= this.limit) this.el.setAttribute('disabled', 'disabled'); + + this.fireEvent('copy', copiedElement); + this.dispatch('copy.hs.copyMarkup', copiedElement, copiedElement); + } + + private addPredefinedItems() { + Array.from(this.wrapper.children) + .filter((el: HTMLElement) => !el.classList.contains('[--ignore-for-count]')) + .forEach((el: HTMLElement) => { + this.addToItems(el); + }); + } + + private setTarget() { + const target: HTMLElement = + typeof this.targetSelector === 'string' + ? (document + .querySelector(this.targetSelector) + .cloneNode(true) as HTMLElement) + : ((this.targetSelector as HTMLElement).cloneNode(true) as HTMLElement); + + target.removeAttribute('id'); + + this.target = target; + } + + private setWrapper() { + this.wrapper = + typeof this.wrapperSelector === 'string' + ? document.querySelector(this.wrapperSelector) + : this.wrapperSelector; + } + + private addToItems(item: HTMLElement) { + const deleteItemButton = item.querySelector('[data-hs-copy-markup-delete-item]'); + + if (this.wrapper) this.wrapper.append(item); + else this.el.before(item); + + if (deleteItemButton) deleteItemButton.addEventListener('click', () => this.delete(item)); + + this.items.push(item); + } + + // Public methods + public delete(target: HTMLElement) { + const index = this.items.indexOf(target); + + if (index !== -1) this.items.splice(index, 1); + + target.remove(); + + this.fireEvent('delete', target); + this.dispatch('delete.hs.copyMarkup', target, target); + } + + // Static method + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsCopyMarkupCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all carousels +declare global { + interface Window { + $hsCopyMarkupCollection: { + id: number; + element: HSCopyMarkup; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsCopyMarkupCollection) window.$hsCopyMarkupCollection = []; + + document + .querySelectorAll('[data-hs-copy-markup]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => { + const data = el.getAttribute('data-hs-copy-markup'); + const options: ICopyMarkupOptions = data ? JSON.parse(data) : {}; + + new HSCopyMarkup(el, options); + }); + + // Uncomment for debug + // console.log('Copy markup collection:', window.$hsCopyMarkupCollection); +}); + +module.exports.HSCopyMarkup = HSCopyMarkup; + +export default HSCopyMarkup; diff --git a/src/plugins/copy-markup/interfaces.ts b/src/plugins/copy-markup/interfaces.ts new file mode 100644 index 0000000..59b3b23 --- /dev/null +++ b/src/plugins/copy-markup/interfaces.ts @@ -0,0 +1,9 @@ +export interface ICopyMarkupOptions { + targetSelector: string; + wrapperSelector: string; + limit?: number; +} + +export interface ICopyMarkup { + options?: ICopyMarkupOptions; +} diff --git a/src/plugins/copy-markup/types.ts b/src/plugins/copy-markup/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/copy-markup/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/dropdown/index.ts b/src/plugins/dropdown/index.ts new file mode 100644 index 0000000..261db6d --- /dev/null +++ b/src/plugins/dropdown/index.ts @@ -0,0 +1,545 @@ +/* + * HSDropdown + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IDropdown, IHTMLElementPopper } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +import { POSITIONS, DROPDOWN_ACCESSIBILITY_KEY_SET } from '../../constants'; + +import { createPopper, PositioningStrategy } from '@popperjs/core'; +import { menuSearchHistory } from '../../utils'; +import { IMenuSearchHistory } from '../../utils/interfaces'; + +class HSDropdown + extends HSBasePlugin<{}, IHTMLElementPopper> + implements IDropdown { + private static history: IMenuSearchHistory; + private readonly toggle: HTMLElement | null; + public menu: HTMLElement | null; + private eventMode: string; + private readonly closeMode: string; + private animationInProcess: boolean; + + constructor(el: IHTMLElementPopper, options?: {}, events?: {}) { + super(el, options, events); + + this.toggle = + this.el.querySelector(':scope > .hs-dropdown-toggle') || + (this.el.children[0] as HTMLElement); + this.menu = this.el.querySelector(':scope > .hs-dropdown-menu'); + this.eventMode = this.getClassProperty(this.el, '--trigger', 'click'); + this.closeMode = this.getClassProperty(this.el, '--auto-close', 'true'); + this.animationInProcess = false; + + if (this.toggle && this.menu) this.init(); + } + + private init() { + this.createCollection(window.$hsDropdownCollection, this); + + if ((this.toggle as HTMLButtonElement).disabled) return false; + + this.toggle.addEventListener('click', () => this.onClickHandler()); + + if (!this.isIOS() && !this.isIpadOS()) { + this.el.addEventListener('mouseenter', () => this.onMouseEnterHandler()); + this.el.addEventListener('mouseleave', () => this.onMouseLeaveHandler()); + } + } + + resizeHandler() { + this.eventMode = this.getClassProperty(this.el, '--trigger', 'click'); + } + + private onClickHandler() { + if ( + this.el.classList.contains('open') && + !this.menu.classList.contains('hidden') + ) { + this.close(); + } else { + this.open(); + } + } + + private onMouseEnterHandler() { + if (this.eventMode !== 'hover') return false; + + if (this.el._popper) this.forceClearState(); + + if ( + !this.el.classList.contains('open') && + this.menu.classList.contains('hidden') + ) { + this.open(); + } + } + + private onMouseLeaveHandler() { + if (this.eventMode !== 'hover') return false; + + if ( + this.el.classList.contains('open') && + !this.menu.classList.contains('hidden') + ) { + this.close(); + } + } + + private destroyPopper() { + this.menu.classList.remove('block'); + this.menu.classList.add('hidden'); + + this.menu.style.inset = null; + this.menu.style.position = null; + + if (this.el && this.el._popper) this.el._popper.destroy(); + + this.animationInProcess = false; + } + + private absoluteStrategyModifiers() { + return [ + { + name: 'applyStyles', + fn: (data: any) => { + const strategy = ( + window.getComputedStyle(this.el).getPropertyValue('--strategy') || + 'absolute' + ).replace(' ', ''); + const adaptive = ( + window.getComputedStyle(this.el).getPropertyValue('--adaptive') || + 'adaptive' + ).replace(' ', ''); + + data.state.elements.popper.style.position = strategy; + data.state.elements.popper.style.transform = + adaptive === 'adaptive' ? data.state.styles.popper.transform : null; + data.state.elements.popper.style.top = null; + data.state.elements.popper.style.bottom = null; + data.state.elements.popper.style.left = null; + data.state.elements.popper.style.right = null; + data.state.elements.popper.style.margin = 0; + }, + }, + { + name: 'computeStyles', + options: { + adaptive: false, + }, + }, + ]; + } + + // Public methods + public open() { + if (this.el.classList.contains('open')) return false; + + if (this.animationInProcess) return false; + + this.animationInProcess = true; + + const placement = ( + window.getComputedStyle(this.el).getPropertyValue('--placement') || '' + ).replace(' ', ''); + const flip = ( + window.getComputedStyle(this.el).getPropertyValue('--flip') || 'true' + ).replace(' ', ''); + const strategy = ( + window.getComputedStyle(this.el).getPropertyValue('--strategy') || 'fixed' + ).replace(' ', '') as PositioningStrategy; + const offset = parseInt( + ( + window.getComputedStyle(this.el).getPropertyValue('--offset') || '10' + ).replace(' ', ''), + ); + + if (strategy !== ('static' as PositioningStrategy)) { + this.el._popper = createPopper(this.el, this.menu, { + placement: POSITIONS[placement] || 'bottom-start', + strategy: strategy, + modifiers: [ + ...(strategy !== 'fixed' ? this.absoluteStrategyModifiers() : []), + { + name: 'flip', + enabled: flip === 'true', + }, + { + name: 'offset', + options: { + offset: [0, offset], + }, + }, + ], + }); + } + + this.menu.style.margin = null; + + this.menu.classList.remove('hidden'); + this.menu.classList.add('block'); + + setTimeout(() => { + this.el.classList.add('open'); + + this.animationInProcess = false; + }); + + this.fireEvent('open', this.el); + this.dispatch('open.hs.dropdown', this.el, this.el); + } + + public close(isAnimated = true) { + if ( + this.animationInProcess + || !this.el.classList.contains('open') + ) return false; + + this.animationInProcess = true; + + if (isAnimated) { + const el: HTMLElement = + this.el.querySelector('[data-hs-dropdown-transition]') || this.menu; + + this.afterTransition(el, () => this.destroyPopper()); + } else this.destroyPopper(); + + this.menu.style.margin = null; + + this.el.classList.remove('open'); + + this.fireEvent('close', this.el); + this.dispatch('close.hs.dropdown', this.el, this.el); + } + + public forceClearState() { + this.destroyPopper(); + this.menu.style.margin = null; + this.el.classList.remove('open'); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsDropdownCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element.el + : null; + } + + static open(target: HTMLElement) { + const elInCollection = window.$hsDropdownCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + elInCollection.element.menu.classList.contains('hidden') + ) + elInCollection.element.open(); + } + + static close(target: HTMLElement) { + const elInCollection = window.$hsDropdownCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if ( + elInCollection && + !elInCollection.element.menu.classList.contains('hidden') + ) { + elInCollection.element.close(); + } + } + + // Accessibility methods + static accessibility(evt: KeyboardEvent) { + this.history = menuSearchHistory; + + const target = window.$hsDropdownCollection.find((el) => + el.element.el.classList.contains('open'), + ); + + if ( + target && + (DROPDOWN_ACCESSIBILITY_KEY_SET.includes(evt.code) || + (evt.code.length === 4 && + evt.code[evt.code.length - 1].match(/^[A-Z]*$/))) && + !evt.metaKey && + !target.element.menu.querySelector('input:focus') + ) { + console.log('Key code:', evt.code); + + switch (evt.code) { + case 'Escape': + if (!target.element.menu.querySelector('.hs-select.active')) { + evt.preventDefault(); + this.onEscape(evt); + } + break; + case 'Enter': + if (!target.element.menu.querySelector('.hs-select button:focus') && !target.element.menu.querySelector('.hs-collapse-toggle:focus')) { + this.onEnter(evt); + } + break; + case 'ArrowUp': + evt.preventDefault(); + this.onArrow(); + break; + case 'ArrowDown': + evt.preventDefault(); + this.onArrow(false); + break; + case 'Home': + evt.preventDefault(); + this.onStartEnd(); + break; + case 'End': + evt.preventDefault(); + this.onStartEnd(false); + break; + default: + evt.preventDefault(); + this.onFirstLetter(evt.key); + break; + } + } + } + + static onEscape(evt: KeyboardEvent) { + const dropdown = (evt.target as HTMLElement).closest('.hs-dropdown.open'); + + if (window.$hsDropdownCollection.find((el) => el.element.el === dropdown)) { + const target = window.$hsDropdownCollection.find((el) => el.element.el === dropdown); + + if (target) { + target.element.close(); + target.element.toggle.focus(); + } + } else { + this.closeCurrentlyOpened(); + } + } + + static onEnter(evt: KeyboardEvent) { + const dropdown = (evt.target as HTMLElement).parentElement; + + if (window.$hsDropdownCollection.find((el) => el.element.el === dropdown)) { + evt.preventDefault(); + + const target = window.$hsDropdownCollection.find((el) => el.element.el === dropdown); + + if (target) target.element.open(); + } + } + + static onArrow(isArrowUp = true) { + const target = window.$hsDropdownCollection.find((el) => + el.element.el.classList.contains('open'), + ); + + if (target) { + const menu = target.element.menu; + + if (!menu) return false; + + const preparedLinks = isArrowUp + ? Array.from(menu.querySelectorAll('a:not([hidden]), .hs-dropdown > button:not([hidden])')).reverse() + : Array.from(menu.querySelectorAll('a:not([hidden]), .hs-dropdown > button:not([hidden])')); + + const links = preparedLinks.filter( + (el: any) => !el.classList.contains('disabled'), + ); + const current = menu.querySelector('a:focus, button:focus'); + let currentInd = links.findIndex((el: any) => el === current); + + if (currentInd + 1 < links.length) { + currentInd++; + } + + (links[currentInd] as HTMLButtonElement | HTMLAnchorElement).focus(); + } + } + + static onStartEnd(isStart = true) { + const target = window.$hsDropdownCollection.find((el) => + el.element.el.classList.contains('open'), + ); + + if (target) { + const menu = target.element.menu; + + if (!menu) return false; + + const preparedLinks = isStart + ? Array.from(menu.querySelectorAll('a')) + : Array.from(menu.querySelectorAll('a')).reverse(); + const links = preparedLinks.filter( + (el: any) => !el.classList.contains('disabled'), + ); + + if (links.length) { + links[0].focus(); + } + } + } + + static onFirstLetter(code: string) { + const target = window.$hsDropdownCollection.find((el) => + el.element.el.classList.contains('open'), + ); + + if (target) { + const menu = target.element.menu; + + if (!menu) return false; + + const links = Array.from(menu.querySelectorAll('a')); + const getCurrentInd = () => + links.findIndex( + (el, i) => + el.innerText.toLowerCase().charAt(0) === code.toLowerCase() && + this.history.existsInHistory(i), + ); + let currentInd = getCurrentInd(); + + if (currentInd === -1) { + this.history.clearHistory(); + currentInd = getCurrentInd(); + } + + if (currentInd !== -1) { + links[currentInd].focus(); + this.history.addHistory(currentInd); + } + } + } + + static closeCurrentlyOpened( + evtTarget: HTMLElement | null = null, + isAnimated = true, + ) { + const parent = + evtTarget && + evtTarget.closest('.hs-dropdown') && + evtTarget.closest('.hs-dropdown').parentElement.closest('.hs-dropdown') + ? evtTarget + .closest('.hs-dropdown') + .parentElement.closest('.hs-dropdown') + : null; + let currentlyOpened = parent + ? window.$hsDropdownCollection.filter( + (el) => + el.element.el.classList.contains('open') && + el.element.menu + .closest('.hs-dropdown') + .parentElement.closest('.hs-dropdown') === parent, + ) + : window.$hsDropdownCollection.filter((el) => + el.element.el.classList.contains('open'), + ); + + if ( + evtTarget && + evtTarget.closest('.hs-dropdown') && + window.HSStaticMethods.getClassPropertyAlt( + evtTarget.closest('.hs-dropdown'), + '--auto-close', + ) === 'inside' + ) { + currentlyOpened = currentlyOpened.filter( + (el) => el.element.el !== evtTarget.closest('.hs-dropdown'), + ); + } + + if (currentlyOpened) { + currentlyOpened.forEach((el) => { + if ( + el.element.closeMode === 'false' || + el.element.closeMode === 'outside' + ) + return false; + + el.element.close(isAnimated); + }); + } + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsDropdownCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all dropdowns +declare global { + interface Window { + $hsDropdownCollection: { + id: number; + element: HSDropdown; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsDropdownCollection) window.$hsDropdownCollection = []; + + document + .querySelectorAll('.hs-dropdown:not(.--prevent-on-load-init)') + .forEach((el: IHTMLElementPopper) => new HSDropdown(el)); + + if (window.$hsDropdownCollection) { + document.addEventListener('keydown', (evt) => + HSDropdown.accessibility(evt), + ); + + window.addEventListener('click', (evt) => { + const evtTarget = evt.target; + + HSDropdown.closeCurrentlyOpened(evtTarget as HTMLElement); + }); + + let prevWidth = window.innerWidth; + window.addEventListener('resize', () => { + if (window.innerWidth !== prevWidth) { + prevWidth = innerWidth; + HSDropdown.closeCurrentlyOpened(null, false); + } + }) + } + + // Uncomment for debug + // console.log('Dropdown collection:', window.$hsDropdownCollection); +}); + +window.addEventListener('resize', () => { + if (!window.$hsDropdownCollection) window.$hsDropdownCollection = []; + + window.$hsDropdownCollection.forEach((el) => el.element.resizeHandler()); +}); + +module.exports.HSDropdown = HSDropdown; + +export default HSDropdown; diff --git a/src/plugins/dropdown/interfaces.ts b/src/plugins/dropdown/interfaces.ts new file mode 100644 index 0000000..b7caea6 --- /dev/null +++ b/src/plugins/dropdown/interfaces.ts @@ -0,0 +1,13 @@ +export interface IDropdown { + options?: {}; + + open(): void; + + close(isAnimated: boolean): void; + + forceClearState(): void; +} + +export interface IHTMLElementPopper extends HTMLElement { + _popper: any; +} diff --git a/src/plugins/dropdown/types.ts b/src/plugins/dropdown/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/dropdown/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/input-number/index.ts b/src/plugins/input-number/index.ts new file mode 100644 index 0000000..4a1b832 --- /dev/null +++ b/src/plugins/input-number/index.ts @@ -0,0 +1,171 @@ +/* + * HSInputNumber + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IInputNumberOptions, IInputNumber } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSInputNumber extends HSBasePlugin implements IInputNumber { + private readonly input: HTMLInputElement | null; + private readonly increment: HTMLElement | null; + private readonly decrement: HTMLElement | null; + private inputValue: number | null; + + constructor(el: HTMLElement, options?: IInputNumberOptions) { + super(el, options); + + this.input = this.el.querySelector('[data-hs-input-number-input]') || null; + this.increment = + this.el.querySelector('[data-hs-input-number-increment]') || null; + this.decrement = + this.el.querySelector('[data-hs-input-number-decrement]') || null; + this.inputValue = this.input ? parseInt(this.input.value) : 0; + + this.init(); + } + + private init() { + this.createCollection(window.$hsInputNumberCollection, this); + + if (this.input && this.increment) this.build(); + } + + private build() { + if (this.input) this.buildInput(); + if (this.increment) this.buildIncrement(); + if (this.decrement) this.buildDecrement(); + + if (this.inputValue <= 0) { + this.inputValue = 0; + this.input.value = '0'; + + this.changeValue(); + } + + if (this.input.hasAttribute('disabled')) this.disableButtons(); + } + + private buildInput() { + this.input.addEventListener('input', () => this.changeValue()); + } + + private buildIncrement() { + this.increment.addEventListener('click', () => { + this.changeValue('increment'); + }); + } + + private buildDecrement() { + this.decrement.addEventListener('click', () => { + this.changeValue('decrement'); + }); + } + + private changeValue(event = 'none') { + const payload = { inputValue: this.inputValue }; + + switch (event) { + case 'increment': + this.inputValue += 1; + this.input.value = this.inputValue.toString(); + break; + case 'decrement': + this.inputValue -= this.inputValue <= 0 ? 0 : 1; + this.input.value = this.inputValue.toString(); + break; + default: + this.inputValue = + parseInt(this.input.value) <= 0 ? 0 : parseInt(this.input.value); + if (this.inputValue <= 0) this.input.value = this.inputValue.toString(); + break; + } + + payload.inputValue = this.inputValue; + + if (this.inputValue === 0) { + this.el.classList.add('disabled'); + if (this.decrement) this.disableButtons('decrement'); + } else { + this.el.classList.remove('disabled'); + if (this.decrement) this.enableButtons('decrement'); + } + + this.fireEvent('change', payload); + this.dispatch('change.hs.inputNumber', this.el, payload); + } + + private disableButtons(mode = 'all') { + if (mode === 'all') { + if (this.increment.tagName === 'BUTTON' || this.increment.tagName === 'INPUT') + this.increment.setAttribute('disabled', 'disabled'); + if (this.decrement.tagName === 'BUTTON' || this.decrement.tagName === 'INPUT') + this.decrement.setAttribute('disabled', 'disabled'); + } else if (mode === 'increment') { + if (this.increment.tagName === 'BUTTON' || this.increment.tagName === 'INPUT') + this.increment.setAttribute('disabled', 'disabled'); + } else if (mode === 'decrement') { + if (this.decrement.tagName === 'BUTTON' || this.decrement.tagName === 'INPUT') + this.decrement.setAttribute('disabled', 'disabled'); + } + } + + private enableButtons(mode = 'all') { + if (mode === 'all') { + if (this.increment.tagName === 'BUTTON' || this.increment.tagName === 'INPUT') + this.increment.removeAttribute('disabled'); + if (this.decrement.tagName === 'BUTTON' || this.decrement.tagName === 'INPUT') + this.decrement.removeAttribute('disabled'); + } else if (mode === 'increment') { + if (this.increment.tagName === 'BUTTON' || this.increment.tagName === 'INPUT') + this.increment.removeAttribute('disabled'); + } else if (mode === 'decrement') { + if (this.decrement.tagName === 'BUTTON' || this.decrement.tagName === 'INPUT') + this.decrement.removeAttribute('disabled'); + } + } + + // Global method + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsInputNumberCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all toggle password +declare global { + interface Window { + $hsInputNumberCollection: { + id: number; + element: HSInputNumber; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsInputNumberCollection) window.$hsInputNumberCollection = []; + + document + .querySelectorAll('[data-hs-input-number]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSInputNumber(el)); + + // Uncomment for debug + // console.log('Input number collection:', window.$hsInputNumberCollection); +}); + +module.exports.HSInputNumber = HSInputNumber; + +export default HSInputNumber; \ No newline at end of file diff --git a/src/plugins/input-number/interfaces.ts b/src/plugins/input-number/interfaces.ts new file mode 100644 index 0000000..1a519b5 --- /dev/null +++ b/src/plugins/input-number/interfaces.ts @@ -0,0 +1,6 @@ +export interface IInputNumberOptions { +} + +export interface IInputNumber { + options?: IInputNumberOptions; +} \ No newline at end of file diff --git a/src/plugins/input-number/types.ts b/src/plugins/input-number/types.ts new file mode 100644 index 0000000..afc28b5 --- /dev/null +++ b/src/plugins/input-number/types.ts @@ -0,0 +1 @@ +// no types \ No newline at end of file diff --git a/src/plugins/overlay/index.ts b/src/plugins/overlay/index.ts new file mode 100644 index 0000000..3278205 --- /dev/null +++ b/src/plugins/overlay/index.ts @@ -0,0 +1,412 @@ +/* + * HSOverlay + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IOverlayOptions, IOverlay } from './interfaces'; +import { ICollectionItem } from '../../interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSOverlay extends HSBasePlugin<{}> implements IOverlay { + private openNextOverlay: boolean; + private autoHide: ReturnType | null; + private readonly overlayId: string | null; + private readonly hiddenClass: string | null; + public overlay: HTMLElement | null; + public isCloseWhenClickInside: string; + public isTabAccessibilityLimited: string; + public hasAutofocus: string; + public hasAbilityToCloseOnBackdropClick: string; + + constructor(el: HTMLElement, options?: IOverlayOptions, events?: {}) { + super(el, options, events); + + const data = el.getAttribute('data-hs-overlay-options'); + const dataOptions: IOverlayOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.hiddenClass = concatOptions?.hiddenClass || 'hidden'; + this.openNextOverlay = false; + this.autoHide = null; + this.overlayId = this.el.getAttribute('data-hs-overlay'); + this.overlay = document.querySelector(this.overlayId); + if (this.overlay) { + this.isCloseWhenClickInside = + this.getClassProperty( + this.overlay, + '--close-when-click-inside', + 'false', + ) || 'false'; + this.isTabAccessibilityLimited = + this.getClassProperty( + this.overlay, + '--tab-accessibility-limited', + 'true', + ) || 'true'; + this.hasAutofocus = + this.getClassProperty( + this.overlay, + '--has-autofocus', + 'true', + ) || 'true'; + this.hasAbilityToCloseOnBackdropClick = + this.overlay.getAttribute('data-hs-overlay-keyboard') || 'true'; + } + + if (this.overlay) this.init(); + } + + private init() { + this.createCollection(window.$hsOverlayCollection, this); + + this.el.addEventListener('click', () => { + if (this.overlay.classList.contains(this.hiddenClass)) { + this.open(); + } else { + this.close(); + } + }); + + this.overlay.addEventListener('click', (evt) => { + if ( + (evt.target as HTMLElement).id && + `#${(evt.target as HTMLElement).id}` === this.overlayId && + this.isCloseWhenClickInside === 'true' && + this.hasAbilityToCloseOnBackdropClick === 'true' + ) { + this.close(); + } + }); + } + + private hideAuto() { + const time = parseInt( + this.getClassProperty(this.overlay, '--auto-hide', '0'), + ); + + if (time) { + this.autoHide = setTimeout(() => { + this.close(); + }, time); + } + } + + private checkTimer() { + if (this.autoHide) { + clearTimeout(this.autoHide); + + this.autoHide = null; + } + } + + private buildBackdrop() { + const overlayClasses = this.overlay.classList.value.split(' '); + const overlayZIndex = parseInt( + window.getComputedStyle(this.overlay).getPropertyValue('z-index'), + ); + const backdropId = + this.overlay.getAttribute('data-hs-overlay-backdrop-container') || false; + let backdrop: HTMLElement | Node = document.createElement('div'); + let backdropClasses = `transition duration fixed inset-0 bg-gray-900 bg-opacity-50 dark:bg-opacity-80 hs-overlay-backdrop`; + const closeOnBackdrop = + this.getClassProperty(this.overlay, '--overlay-backdrop', 'true') !== + 'static'; + const disableBackdrop = + this.getClassProperty(this.overlay, '--overlay-backdrop', 'true') === + 'false'; + + if ('style' in backdrop) backdrop.style.zIndex = `${overlayZIndex - 1}`; + + for (const value of overlayClasses) { + if ( + value.startsWith('hs-overlay-backdrop-open:') || + value.includes(':hs-overlay-backdrop-open:') + ) { + backdropClasses += ` ${value}`; + } + } + + if (disableBackdrop) return; + + if (backdropId) { + backdrop = document.querySelector(backdropId).cloneNode(true); + (backdrop as HTMLElement).classList.remove('hidden'); + + backdropClasses = `${(backdrop as HTMLElement).classList.toString()}`; + (backdrop as HTMLElement).classList.value = ''; + } + + if (closeOnBackdrop) { + (backdrop as HTMLElement).addEventListener( + 'click', + () => this.close(), + true, + ); + } + + (backdrop as HTMLElement).setAttribute( + 'data-hs-overlay-backdrop-template', + '', + ); + + document.body.appendChild(backdrop); + + setTimeout(() => { + (backdrop as HTMLElement).classList.value = backdropClasses; + }); + } + + private destroyBackdrop() { + const backdrop: HTMLElement = document.querySelector( + '[data-hs-overlay-backdrop-template]', + ); + + if (!backdrop) return; + + if (this.openNextOverlay) { + backdrop.style.transitionDuration = `${ + parseFloat( + window + .getComputedStyle(backdrop) + .transitionDuration.replace(/[^\d.-]/g, ''), + ) * 1.8 + }s`; + } + + backdrop.classList.add('opacity-0'); + + this.afterTransition(backdrop, () => { + backdrop.remove(); + }); + } + + private focusElement() { + const input: HTMLInputElement = this.overlay.querySelector('[autofocus]'); + + if (!input) return false + else input.focus(); + } + + // Public methods + public open() { + if (!this.overlay) return false; + + const currentlyOpened = window.$hsOverlayCollection.find( + (el) => el.element.overlay === document.querySelector('.hs-overlay.open'), + ); + const disabledScroll = + this.getClassProperty(this.overlay, '--body-scroll', 'false') !== 'true'; + + if (currentlyOpened) { + this.openNextOverlay = true; + + return currentlyOpened.element.close().then(() => { + this.open(); + + this.openNextOverlay = false; + }); + } + + if (disabledScroll) { + document.body.style.overflow = 'hidden'; + } + + this.buildBackdrop(); + this.checkTimer(); + this.hideAuto(); + + this.overlay.classList.remove(this.hiddenClass); + this.overlay.setAttribute('aria-overlay', 'true'); + this.overlay.setAttribute('tabindex', '-1'); + + setTimeout(() => { + if (this.overlay.classList.contains(this.hiddenClass)) return false; + + this.overlay.classList.add('open'); + + this.fireEvent('open', this.el); + this.dispatch('open.hs.overlay', this.el, this.el); + + if (this.hasAutofocus === 'true') this.focusElement(); + }, 50); + } + + public close() { + return new Promise((resolve) => { + if (!this.overlay) return false; + + this.overlay.classList.remove('open'); + this.overlay.removeAttribute('aria-overlay'); + this.overlay.removeAttribute('tabindex'); + + this.afterTransition(this.overlay, () => { + if (this.overlay.classList.contains('open')) return false; + + this.overlay.classList.add(this.hiddenClass); + + this.destroyBackdrop(); + + this.fireEvent('close', this.el); + this.dispatch('close.hs.overlay', this.el, this.el); + + document.body.style.overflow = ''; + + resolve(this.overlay); + }); + }); + } + + // Static methods + static getInstance(target: HTMLElement, isInstance?: boolean) { + const elInCollection = window.$hsOverlayCollection.find( + (el) => + el.element.el === + (typeof target === 'string' + ? document.querySelector(target) + : target) || + el.element.overlay === + (typeof target === 'string' + ? document.querySelector(target) + : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element.el + : null; + } + + static open(target: HTMLElement) { + const elInCollection = window.$hsOverlayCollection.find( + (el) => + el.element.el === + (typeof target === 'string' + ? document.querySelector(target) + : target) || + el.element.overlay === + (typeof target === 'string' + ? document.querySelector(target) + : target), + ); + + if ( + elInCollection && + elInCollection.element.overlay.classList.contains(elInCollection.element.hiddenClass) + ) + elInCollection.element.open(); + } + + static close(target: HTMLElement) { + const elInCollection = window.$hsOverlayCollection.find( + (el) => + el.element.el === + (typeof target === 'string' + ? document.querySelector(target) + : target) || + el.element.overlay === + (typeof target === 'string' + ? document.querySelector(target) + : target), + ); + + if ( + elInCollection && + !elInCollection.element.overlay.classList.contains(elInCollection.element.hiddenClass) + ) + elInCollection.element.close(); + } + + // Accessibility methods + static accessibility(evt: KeyboardEvent) { + const target = window.$hsOverlayCollection.find((el) => + el.element.overlay.classList.contains('open'), + ); + const focusableElements = target?.element?.overlay?.querySelectorAll( + 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', + ); + const notHiddenFocusableElements: HTMLElement[] = []; + if (focusableElements?.length) focusableElements.forEach((el: HTMLElement) => { + if (!this.isParentOrElementHidden(el)) notHiddenFocusableElements.push(el); + }); + const basicCheck = target && !evt.metaKey; + + if (basicCheck && target.element.isTabAccessibilityLimited === 'false' && evt.code === 'Tab') return false; + + if (basicCheck && notHiddenFocusableElements.length && evt.code === 'Tab') { + evt.preventDefault(); + this.onTab(target, notHiddenFocusableElements); + } + if (basicCheck && evt.code === 'Escape') { + evt.preventDefault(); + this.onEscape(target); + } + } + + static onEscape(target: ICollectionItem) { + if (target) target.element.close(); + } + + static onTab(target: ICollectionItem, focusableElements: HTMLElement[]) { + if (!focusableElements.length) return false; + + const focused = target.element.overlay.querySelector(':focus'); + const focusedIndex = Array.from(focusableElements).indexOf(focused as HTMLElement); + + if (focusedIndex > -1) { + const nextIndex = (focusedIndex + 1) % focusableElements.length; + (focusableElements[nextIndex] as HTMLElement).focus(); + } else { + (focusableElements[0] as HTMLElement).focus(); + } + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsOverlayCollection.find( + (el) => + el.element.el === + (typeof target === 'string' + ? document.querySelector(target) + : target) || + el.element.overlay === + (typeof target === 'string' + ? document.querySelector(target) + : target), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all overlays +declare global { + interface Window { + $hsOverlayCollection: ICollectionItem[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsOverlayCollection) window.$hsOverlayCollection = []; + + document + .querySelectorAll('[data-hs-overlay]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSOverlay(el)); + + if (window.$hsOverlayCollection) + document.addEventListener('keydown', (evt) => HSOverlay.accessibility(evt)); + + // Uncomment for debug + // console.log('Overlay collection:', window.$hsOverlayCollection); +}); + +module.exports.HSOverlay = HSOverlay; + +export default HSOverlay; diff --git a/src/plugins/overlay/interfaces.ts b/src/plugins/overlay/interfaces.ts new file mode 100644 index 0000000..a19d410 --- /dev/null +++ b/src/plugins/overlay/interfaces.ts @@ -0,0 +1,11 @@ +export interface IOverlayOptions { + hiddenClass?: string | null; +} + +export interface IOverlay { + options?: IOverlayOptions; + + open(): void; + + close(): void; +} diff --git a/src/plugins/overlay/types.ts b/src/plugins/overlay/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/overlay/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/pin-input/index.ts b/src/plugins/pin-input/index.ts new file mode 100644 index 0000000..2ef6a10 --- /dev/null +++ b/src/plugins/pin-input/index.ts @@ -0,0 +1,189 @@ +/* + * HSPinInput + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IPinInputOptions, IPinInput } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSPinInput extends HSBasePlugin implements IPinInput { + private items: NodeListOf | null; + private currentItem: HTMLInputElement | null; + private currentValue: string[] | null; + private readonly placeholders: string[] | null; + private readonly availableCharsRE: RegExp | null; + + constructor(el: HTMLElement, options?: IPinInputOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-pin-input'); + const dataOptions: IPinInputOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.items = this.el.querySelectorAll('[data-hs-pin-input-item]'); + this.currentItem = null; + this.currentValue = new Array(this.items.length).fill(''); + this.placeholders = []; + this.availableCharsRE = new RegExp( + concatOptions?.availableCharsRE || '^[a-zA-Z0-9]+$', + ); // '^[0-9]+$' + + this.init(); + } + + private init() { + this.createCollection(window.$hsPinInputCollection, this); + + if (this.items.length) this.build(); + } + + private build() { + this.buildInputItems(); + } + + private buildInputItems() { + this.items.forEach((el, index) => { + this.placeholders.push(el.getAttribute('placeholder') || ''); + + if (el.hasAttribute('autofocus')) this.onFocusIn(index); + + el.addEventListener('input', (evt) => this.onInput(evt, index)); + el.addEventListener('paste', (evt) => this.onPaste(evt)); + el.addEventListener('keydown', (evt) => this.onKeydown(evt, index)); + el.addEventListener('focusin', () => this.onFocusIn(index)); + el.addEventListener('focusout', () => this.onFocusOut(index)); + }); + } + + private checkIfNumber(value: string) { + return value.match(this.availableCharsRE); + } + + private autoFillAll(text: string) { + Array.from(text).forEach((n, i) => { + if (!this?.items[i]) return false; + + (this.items[i] as HTMLInputElement).value = n; + + this.items[i].dispatchEvent(new Event('input', { bubbles: true })); + }); + } + + private setCurrentValue() { + this.currentValue = Array.from(this.items).map( + (el) => (el as HTMLInputElement).value, + ); + } + + private toggleCompleted() { + if (!this.currentValue.includes('')) this.el.classList.add('active'); + else this.el.classList.remove('active'); + } + + private onInput(evt: Event, index: number) { + const originalValue = (evt.target as HTMLInputElement).value; + this.currentItem = evt.target as HTMLInputElement; + this.currentItem.value = ''; + this.currentItem.value = originalValue[originalValue.length - 1]; + + if (!this.checkIfNumber(this.currentItem.value)) { + this.currentItem.value = this.currentValue[index] || ''; + + return false; + } + + this.setCurrentValue(); + + if (this.currentItem.value) { + if (index < this.items.length - 1) this.items[index + 1].focus(); + if (!this.currentValue.includes('')) { + const payload = { currentValue: this.currentValue }; + + this.fireEvent('completed', payload); + this.dispatch('completed.hs.pinInput', this.el, payload); + } + + this.toggleCompleted(); + } else { + if (index > 0) this.items[index - 1].focus(); + } + } + + private onKeydown(evt: KeyboardEvent, index: number) { + if (evt.key === 'Backspace' && index > 0) { + if ((this.items[index] as HTMLInputElement).value === '') { + (this.items[index - 1] as HTMLInputElement).value = ''; + (this.items[index - 1] as HTMLInputElement).focus(); + } else { + (this.items[index] as HTMLInputElement).value = ''; + } + } + + this.setCurrentValue(); + this.toggleCompleted(); + } + + private onFocusIn(index: number) { + this.items[index].setAttribute('placeholder', ''); + } + + private onFocusOut(index: number) { + this.items[index].setAttribute('placeholder', this.placeholders[index]); + } + + private onPaste(evt: ClipboardEvent) { + evt.preventDefault(); + + this.items.forEach((el) => { + if (document.activeElement === el) + this.autoFillAll(evt.clipboardData.getData('text')); + }); + } + + // Static method + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsPinInputCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all toggle password +declare global { + interface Window { + $hsPinInputCollection: { + id: number; + element: HSPinInput; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsPinInputCollection) window.$hsPinInputCollection = []; + + document + .querySelectorAll('[data-hs-pin-input]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSPinInput(el)); + + // Uncomment for debug + // console.log('PIN input collection:', window.$hsPinInputCollection); +}); + +module.exports.HSPinInput = HSPinInput; + +export default HSPinInput; diff --git a/src/plugins/pin-input/interfaces.ts b/src/plugins/pin-input/interfaces.ts new file mode 100644 index 0000000..b7b175d --- /dev/null +++ b/src/plugins/pin-input/interfaces.ts @@ -0,0 +1,7 @@ +export interface IPinInputOptions { + availableCharsRE?: RegExp; +} + +export interface IPinInput { + options?: IPinInputOptions; +} \ No newline at end of file diff --git a/src/plugins/pin-input/types.ts b/src/plugins/pin-input/types.ts new file mode 100644 index 0000000..afc28b5 --- /dev/null +++ b/src/plugins/pin-input/types.ts @@ -0,0 +1 @@ +// no types \ No newline at end of file diff --git a/src/plugins/remove-element/index.ts b/src/plugins/remove-element/index.ts new file mode 100644 index 0000000..c8a3bf0 --- /dev/null +++ b/src/plugins/remove-element/index.ts @@ -0,0 +1,76 @@ +/* + * HSRemoveElement + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IRemoveElementOptions, IRemoveElement } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSRemoveElement extends HSBasePlugin implements IRemoveElement { + private readonly removeTargetId: string | null; + private readonly removeTarget: HTMLElement | null; + private readonly removeTargetAnimationClass: string; + + constructor(el: HTMLElement, options?: IRemoveElementOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-remove-element-options'); + const dataOptions: IRemoveElementOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.removeTargetId = this.el.getAttribute('data-hs-remove-element'); + this.removeTarget = document.querySelector(this.removeTargetId); + this.removeTargetAnimationClass = concatOptions?.removeTargetAnimationClass || 'hs-removing'; + + if (this.removeTarget) this.init(); + } + + private init() { + this.createCollection(window.$hsRemoveElementCollection, this); + + this.el.addEventListener('click', () => this.remove()); + } + + private remove() { + if (!this.removeTarget) return false; + + this.removeTarget.classList.add(this.removeTargetAnimationClass); + + this.afterTransition(this.removeTarget, () => { + this.removeTarget.remove(); + }); + } +} + +// Init all remove elements +declare global { + interface Window { + $hsRemoveElementCollection: { + id: number; + element: HSRemoveElement; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsRemoveElementCollection) + window.$hsRemoveElementCollection = []; + + document + .querySelectorAll('[data-hs-remove-element]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSRemoveElement(el)); + + // Uncomment for debug + // console.log('Remove element collection:', window.$hsRemoveElementCollection); +}); + +module.exports.HSRemoveElement = HSRemoveElement; + +export default HSRemoveElement; diff --git a/src/plugins/remove-element/interfaces.ts b/src/plugins/remove-element/interfaces.ts new file mode 100644 index 0000000..a7ad162 --- /dev/null +++ b/src/plugins/remove-element/interfaces.ts @@ -0,0 +1,7 @@ +export interface IRemoveElementOptions { + removeTargetAnimationClass: string; +} + +export interface IRemoveElement { + options?: IRemoveElementOptions; +} diff --git a/src/plugins/remove-element/types.ts b/src/plugins/remove-element/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/remove-element/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/scrollspy/index.ts b/src/plugins/scrollspy/index.ts new file mode 100644 index 0000000..3a3d122 --- /dev/null +++ b/src/plugins/scrollspy/index.ts @@ -0,0 +1,188 @@ +/* + * HSScrollspy + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IScrollspy } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSScrollspy extends HSBasePlugin<{}> implements IScrollspy { + private activeSection: HTMLElement | null; + private readonly contentId: string | null; + private readonly content: HTMLElement | null; + private readonly links: NodeListOf | null; + private readonly sections: HTMLElement[] | null; + private readonly scrollableId: string | null; + private readonly scrollable: HTMLElement | Document; + + constructor(el: HTMLElement, options = {}) { + super(el, options); + + this.activeSection = null; + this.contentId = this.el.getAttribute('data-hs-scrollspy'); + this.content = document.querySelector(this.contentId); + this.links = this.el.querySelectorAll('[href]'); + // this.sections = this.content.children; + this.sections = []; + this.scrollableId = this.el.getAttribute( + 'data-hs-scrollspy-scrollable-parent', + ); + this.scrollable = this.scrollableId + ? (document.querySelector(this.scrollableId) as HTMLElement) + : (document as Document); + + this.init(); + } + + private init() { + this.createCollection(window.$hsScrollspyCollection, this); + + this.links.forEach((el) => { + this.sections.push( + this.scrollable.querySelector(el.getAttribute('href')), + ); + }); + + Array.from(this.sections).forEach((section: HTMLElement) => { + if (!section.getAttribute('id')) return false; + + this.scrollable.addEventListener('scroll', (evt) => + this.update(evt, section), + ); + }); + + this.links.forEach((el) => { + el.addEventListener('click', (evt) => { + evt.preventDefault(); + + if (el.getAttribute('href') === 'javascript:;') return false; + + this.scrollTo(el); + }); + }); + } + + private update(evt: Event, section: HTMLElement) { + const globalOffset = parseInt( + this.getClassProperty(this.el, '--scrollspy-offset', '0'), + ); + const userOffset = + parseInt(this.getClassProperty(section, '--scrollspy-offset')) || + globalOffset; + const scrollableParentOffset = + evt.target === document + ? 0 + : parseInt( + String((evt.target as HTMLElement).getBoundingClientRect().top), + ); + const topOffset = + parseInt(String(section.getBoundingClientRect().top)) - + userOffset - + scrollableParentOffset; + const height = section.offsetHeight; + + if (topOffset <= 0 && topOffset + height > 0) { + if (this.activeSection === section) return false; + + this.links.forEach((el) => { + el.classList.remove('active'); + }); + + const current = this.el.querySelector( + `[href="#${section.getAttribute('id')}"]`, + ); + + if (current) { + current.classList.add('active'); + + const group = current.closest('[data-hs-scrollspy-group]'); + + if (group) { + const parentLink = group.querySelector('[href]'); + + if (parentLink) parentLink.classList.add('active'); + } + } + + this.activeSection = section; + } + } + + private scrollTo(link: HTMLAnchorElement) { + const targetId = link.getAttribute('href'); + const target: HTMLElement = document.querySelector(targetId); + const globalOffset = parseInt( + this.getClassProperty(this.el, '--scrollspy-offset', '0'), + ); + const userOffset = + parseInt(this.getClassProperty(target, '--scrollspy-offset')) || + globalOffset; + const scrollableParentOffset = + this.scrollable === document + ? 0 + : (this.scrollable as HTMLElement).offsetTop; + const topOffset = target.offsetTop - userOffset - scrollableParentOffset; + const view = this.scrollable === document ? window : this.scrollable; + const scrollFn = () => { + window.history.replaceState(null, null, link.getAttribute('href')); + + if ('scrollTo' in view) { + view.scrollTo({ + top: topOffset, + left: 0, + behavior: 'smooth', + }); + } + }; + + const beforeScroll = this.fireEvent('beforeScroll', this.el); + this.dispatch('beforeScroll.hs.scrollspy', this.el, this.el); + + if (beforeScroll instanceof Promise) beforeScroll.then(() => scrollFn()); + else scrollFn(); + } + + // Static methods + static getInstance(target: HTMLElement, isInstance = false) { + const elInCollection = window.$hsScrollspyCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element.el + : null; + } +} + +// Init all scrollspy +declare global { + interface Window { + $hsScrollspyCollection: { + id: number; + element: HSScrollspy; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsScrollspyCollection) window.$hsScrollspyCollection = []; + + document + .querySelectorAll('[data-hs-scrollspy]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSScrollspy(el)); + + // Uncomment for debug + // console.log('Scrollspy collection:', window.$hsScrollspyCollection); +}); + +module.exports.HSScrollspy = HSScrollspy; + +export default HSScrollspy; diff --git a/src/plugins/scrollspy/interfaces.ts b/src/plugins/scrollspy/interfaces.ts new file mode 100644 index 0000000..e3f7986 --- /dev/null +++ b/src/plugins/scrollspy/interfaces.ts @@ -0,0 +1,3 @@ +export interface IScrollspy { + options?: {}; +} diff --git a/src/plugins/scrollspy/types.ts b/src/plugins/scrollspy/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/scrollspy/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/select/index.ts b/src/plugins/select/index.ts new file mode 100644 index 0000000..4ddceae --- /dev/null +++ b/src/plugins/select/index.ts @@ -0,0 +1,967 @@ +/* + * HSSelect + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { + ISelect, + ISelectOptions, + ISingleOption, + ISingleOptionOptions, +} from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +import { SELECT_ACCESSIBILITY_KEY_SET } from '../../constants'; + +class HSSelect extends HSBasePlugin implements ISelect { + value: string | string[] | null; + private readonly placeholder: string | null; + private readonly hasSearch: boolean; + private readonly mode: string | null; + private readonly viewport: HTMLElement | null; + + isOpened: boolean | null; + isMultiple: boolean | null; + isDisabled: boolean | null; + + private readonly toggleTag: string | null; + private readonly toggleClasses: string | null; + private readonly toggleCountText: string | null; + private readonly toggleCountTextMinItems: number | null; + private readonly tagsClasses: string | null; + private readonly tagsItemTemplate: string | null; + private readonly tagsItemClasses: string | null; + private readonly tagsInputClasses: string | null; + private readonly dropdownTag: string | null; + private readonly dropdownClasses: string | null; + private readonly dropdownDirectionClasses: { + top?: string; + bottom?: string; + } | null; + public dropdownSpace: number | null; + private readonly searchWrapperTemplate: string | null; + private readonly searchPlaceholder: string | null; + // private searchNoItemsText: string | null; + // private searchNoItemsClasses: string | null; + private readonly searchClasses: string | null; + private readonly searchWrapperClasses: string | null; + private readonly optionTag: string | null; + private readonly optionTemplate: string | null; + private readonly optionClasses: string | null; + private readonly descriptionClasses: string | null; + private readonly iconClasses: string | null; + + private animationInProcess: boolean; + + private wrapper: HTMLElement | null; + private toggle: HTMLElement | null; + private toggleTextWrapper: HTMLElement | null; + private tags: HTMLElement | null; + private tagsItems: HTMLElement | null; + private tagsInput: HTMLElement | null; + private dropdown: HTMLElement | null; + private searchWrapper: HTMLElement | null; + private search: HTMLInputElement | null; + private selectOptions: ISingleOption[] | []; + + constructor(el: HTMLElement, options?: ISelectOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-select'); + const dataOptions: ISelectOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.value = + concatOptions?.value || (this.el as HTMLSelectElement).value || null; + this.placeholder = concatOptions?.placeholder || 'Select...'; + this.hasSearch = concatOptions?.hasSearch || false; + this.mode = concatOptions?.mode || 'default'; + this.viewport = typeof concatOptions?.viewport !== 'undefined' ? document.querySelector(concatOptions?.viewport) : null; + this.isOpened = Boolean(concatOptions?.isOpened) || false; + this.isMultiple = this.el.hasAttribute('multiple') || false; + this.isDisabled = this.el.hasAttribute('disabled') || false; + this.toggleTag = concatOptions?.toggleTag || null; + this.toggleClasses = concatOptions?.toggleClasses || null; + this.toggleCountText = concatOptions?.toggleCountText || null; + this.toggleCountTextMinItems = concatOptions?.toggleCountTextMinItems || 1; + this.tagsClasses = concatOptions?.tagsClasses || null; + this.tagsItemTemplate = concatOptions?.tagsItemTemplate || null; + this.tagsItemClasses = concatOptions?.tagsItemClasses || null; + this.tagsInputClasses = concatOptions?.tagsInputClasses || null; + this.dropdownTag = concatOptions?.dropdownTag || null; + this.dropdownClasses = concatOptions?.dropdownClasses || null; + this.dropdownDirectionClasses = + concatOptions?.dropdownDirectionClasses || null; + this.dropdownSpace = concatOptions?.dropdownSpace || 10; + this.searchWrapperTemplate = concatOptions?.searchWrapperTemplate || null; + this.searchWrapperClasses = + concatOptions?.searchWrapperClasses || 'bg-white p-2 sticky top-0'; + this.searchClasses = + concatOptions?.searchClasses || + 'block w-[calc(100%-2rem)] text-sm border-gray-200 rounded-md focus:border-blue-500 focus:ring-blue-500 dark:bg-slate-900 dark:border-gray-700 dark:text-gray-400 py-2 px-3 my-2 mx-4'; + this.searchPlaceholder = concatOptions?.searchPlaceholder || 'Search...'; + // this.searchNoItemsText = + // concatOptions?.searchNoItemsText || 'No items founded...'; + // this.searchNoItemsClasses = + // concatOptions?.searchPlaceholder || 'text-lg text-center'; + this.optionTemplate = concatOptions?.optionTemplate || null; + this.optionTag = concatOptions?.optionTag || null; + this.optionClasses = concatOptions?.optionClasses || null; + this.descriptionClasses = concatOptions?.descriptionClasses || null; + this.iconClasses = concatOptions?.iconClasses || null; + + this.animationInProcess = false; + this.selectOptions = []; + + this.init(); + } + + private init() { + this.createCollection(window.$hsSelectCollection, this); + + this.build(); + } + + private build() { + this.el.style.display = 'none'; + + if (this.el.children) { + Array.from(this.el.children) + .filter((el: HTMLOptionElement) => el.value && el.value !== '') + .forEach((el: HTMLOptionElement) => { + const data = el.getAttribute('data-hs-select-option'); + + this.selectOptions = [ + ...this.selectOptions, + { + title: el.textContent, + val: el.value, + options: data ? JSON.parse(data) : null, + }, + ]; + }); + } + + if (this.isMultiple) { + const selectedOptions = Array.from( + (this.el as HTMLSelectElement).options, + ).filter((el) => el.selected); + + if (selectedOptions) { + const values: string[] = []; + + selectedOptions.forEach((el) => { + values.push(el.value); + }); + + this.value = values; + } + } + + this.buildWrapper(); + if (this.mode === 'tags') this.buildTags(); + else this.buildToggle(); + this.buildDropdown(); + } + + private buildWrapper() { + this.wrapper = document.createElement('div'); + this.wrapper.classList.add('hs-select', 'relative'); + + this.el.before(this.wrapper); + + this.wrapper.append(this.el); + } + + private buildToggle() { + let icon, title; + this.toggleTextWrapper = document.createElement('span'); + this.toggleTextWrapper.classList.add('truncate'); + this.toggle = this.htmlToElement(this.toggleTag || '
'); + icon = this.toggle.querySelector('[data-icon]'); + title = this.toggle.querySelector('[data-title]'); + + if (!this.isMultiple && icon) this.setToggleIcon(); + if (!this.isMultiple && title) this.setToggleTitle(); + if (this.isMultiple) { + this.toggleTextWrapper.innerHTML = this.value.length + ? this.stringFromValue() + : this.placeholder; + } else { + this.toggleTextWrapper.innerHTML = + this.getItemByValue(this.value as string)?.title || this.placeholder; + } + if (!title) this.toggle.append(this.toggleTextWrapper); + if (this.toggleClasses) + this.classToClassList(this.toggleClasses, this.toggle); + if (this.isDisabled) this.toggle.classList.add('disabled'); + if (this.wrapper) this.wrapper.append(this.toggle); + + this.toggle.addEventListener('click', () => { + if (this.isDisabled) return false; + + if (this.isOpened) this.close(); + else this.open(); + }); + } + + private setToggleIcon() { + const icon = this.toggle.querySelector('[data-icon]'); + icon.innerHTML = ''; + + if (icon) { + const img = this.htmlToElement( + this.getItemByValue(this.value as string)?.options?.icon || '', + ); + icon.append(img); + + if (!img) icon.classList.add('hidden'); + else icon.classList.remove('hidden'); + } + } + + private setToggleTitle() { + const title = this.toggle.querySelector('[data-title]'); + title.classList.add('truncate'); + title.innerHTML = ''; + + if (title) { + const titleText = + this.getItemByValue(this.value as string)?.title || this.placeholder; + title.innerHTML = titleText; + + this.toggle.append(title); + } + } + + private buildTags() { + this.tags = document.createElement('div'); + this.tags.classList.add('flex'); + if (this.tagsClasses) this.classToClassList(this.tagsClasses, this.tags); + + this.buildTagsInput(); + this.buildTagsItems(); + this.setTagsItems(); + + if (this.wrapper) this.wrapper.append(this.tags); + } + + private buildTagsItems() { + this.tagsItems = document.createElement('div'); + this.tagsItems.classList.add('flex', 'flex-wrap', 'flex-0', 'items-center'); + + this.setTagsItems(); + + this.tags.append(this.tagsItems); + } + + private buildTagsItem(val: string) { + const item = this.getItemByValue(val); + + let template, title, remove, icon: null | HTMLElement; + + const newItem = document.createElement('div'); + if (this.tagsItemClasses) + this.classToClassList(this.tagsItemClasses, newItem); + + if (this.tagsItemTemplate) { + template = this.htmlToElement(this.tagsItemTemplate); + + newItem.append(template); + } + + // Icon + if (item?.options?.icon) { + const img = this.htmlToElement(item?.options?.icon); + icon = template + ? template.querySelector('[data-icon]') + : document.createElement('span'); + + icon.append(img); + + if (!template) newItem.append(icon); + } + if ( + template && + template.querySelector('[data-icon]') && + !item?.options?.icon + ) { + template.querySelector('[data-icon]').classList.add('hidden'); + } + + // Title + title = template + ? template.querySelector('[data-title]') + : document.createElement('span'); + title.textContent = item.title || ''; + + if (!template) newItem.append(title); + + // Remove + if (template) { + remove = template.querySelector('[data-remove]'); + } else { + remove = document.createElement('span'); + remove.textContent = 'X'; + + newItem.append(remove); + } + + remove.addEventListener('click', () => { + this.value = (this.value as string[]).filter((el) => el !== val); + + this.unselectMultipleItems(); + this.setTagsItems(); + this.selectMultipleItems(); + }); + + this.tagsItems.append(newItem); + } + + private getItemByValue(val: string) { + return this.selectOptions.find((el: ISingleOption) => el.val === val); + } + + private setTagsItems() { + this.tagsItems.innerHTML = ''; + + if (this.value) { + (this.value as string[]).forEach((val) => { + this.buildTagsItem(val); + }); + } + + if (!this.value.length) + (this.tagsInput as HTMLInputElement).placeholder = this.placeholder; + } + + private buildTagsInput() { + this.tagsInput = document.createElement('input'); + (this.tagsInput as HTMLInputElement).placeholder = this.placeholder; + + if (this.tagsInputClasses) + this.classToClassList(this.tagsInputClasses, this.tagsInput); + + this.tagsInput.addEventListener('focus', () => this.open()); + this.tagsInput.addEventListener( + 'input', + this.debounce((evt: InputEvent) => + this.searchOptions((evt.target as HTMLInputElement).value), + ), + ); + this.tagsInput.addEventListener('keydown', (evt) => { + if (evt.key === 'Enter') { + const val = (evt.target as HTMLInputElement).value; + + if (this.selectOptions.find((el: ISingleOption) => el.val === val)) + return false; + + this.addSelectOption(val, val); + this.buildOption(val, val); + ( + this.dropdown.querySelector(`[data-value="${val}"]`) as HTMLElement + ).click(); + + this.resetTagsInputField(); + this.close(); + } + }); + + this.tags.append(this.tagsInput); + } + + private buildDropdown() { + this.dropdown = this.htmlToElement(this.dropdownTag || '
'); + + this.dropdown.classList.add('absolute', 'top-full'); + if (!this.isOpened) this.dropdown.classList.add('hidden'); + + if (this.dropdownClasses) + this.classToClassList(this.dropdownClasses, this.dropdown); + if (this.wrapper) this.wrapper.append(this.dropdown); + if (this.dropdown && this.hasSearch) this.buildSearch(); + if (this.selectOptions) + this.selectOptions.forEach((props: ISingleOption, i) => + this.buildOption(props.title, props.val, props.options, `${i}`), + ); + } + + private buildSearch() { + let input; + this.searchWrapper = this.htmlToElement( + this.searchWrapperTemplate || '
', + ); + if (this.searchWrapperClasses) + this.classToClassList(this.searchWrapperClasses, this.searchWrapper); + input = this.searchWrapper.querySelector('[data-input]'); + + this.search = this.htmlToElement( + '', + ) as HTMLInputElement; + this.search.placeholder = this.searchPlaceholder; + if (this.searchClasses) + this.classToClassList(this.searchClasses, this.search); + + this.search.addEventListener( + 'input', + this.debounce((evt: InputEvent) => + this.searchOptions((evt.target as HTMLInputElement).value), + ), + ); + + if (input) input.append(this.search); + else this.searchWrapper.append(this.search); + + this.dropdown.append(this.searchWrapper); + } + + private buildOption( + title: string, + val: string, + options?: ISingleOptionOptions, + index: string = '1', + ) { + let template: HTMLElement | null = null; + let titleWrapper: HTMLElement | null = null; + let iconWrapper: HTMLElement | null = null; + let descriptionWrapper: HTMLElement | null = null; + + const option = this.htmlToElement(this.optionTag || '
'); + option.setAttribute('data-value', val); + option.setAttribute('data-title-value', title); + option.setAttribute('tabIndex', index); + option.classList.add('cursor-pointer'); + if (this.optionTemplate) { + template = this.htmlToElement(this.optionTemplate); + + option.append(template); + } + if (template) { + titleWrapper = template.querySelector('[data-title]'); + titleWrapper.textContent = title || ''; + } else { + option.textContent = title || ''; + } + if (options) { + if (options.icon) { + const img = this.htmlToElement(options.icon); + img.classList.add('mw-full'); + + if (template) { + iconWrapper = template.querySelector('[data-icon]'); + iconWrapper.append(img); + } else { + const icon = this.htmlToElement('
'); + if (this.iconClasses) this.classToClassList(this.iconClasses, icon); + + icon.append(img); + option.append(icon); + } + } + if (options.description) { + if (template) { + descriptionWrapper = template.querySelector('[data-description]'); + descriptionWrapper.append(options.description); + } else { + const description = this.htmlToElement('
'); + description.textContent = options.description; + if (this.descriptionClasses) + this.classToClassList(this.descriptionClasses, description); + + option.append(description); + } + } + } + if ( + template && + template.querySelector('[data-icon]') && + !options && + !options?.icon + ) { + template.querySelector('[data-icon]').classList.add('hidden'); + } + if ( + this.value && + (this.isMultiple ? this.value.includes(val) : this.value === val) + ) + option.classList.add('selected'); + + option.addEventListener('click', () => this.onSelectOption(val)); + + if (this.optionClasses) this.classToClassList(this.optionClasses, option); + if (this.dropdown) this.dropdown.append(option); + } + + private onSelectOption(val: string) { + this.clearSelections(); + if (this.isMultiple) { + this.value = this.value.includes(val) + ? Array.from(this.value).filter((el) => el !== val) + : [...Array.from(this.value), val]; + + this.selectMultipleItems(); + this.setNewValue(); + } else { + this.value = val; + + this.selectSingleItem(); + this.setNewValue(); + } + + this.fireEvent('change', this.value); + this.dispatch('change.hs.select', this.el, this.value); + + if (this.mode === 'tags') this.resetTagsInputField(); + + if (!this.isMultiple) { + if (this.toggle.querySelector('[data-icon]')) this.setToggleIcon(); + if (this.toggle.querySelector('[data-title]')) this.setToggleTitle(); + this.close(); + } + + if (!this.value.length && this.mode === 'tags') + (this.tagsInput as HTMLInputElement).placeholder = this.placeholder; + } + + private addSelectOption( + title: string, + val: string, + options?: ISingleOptionOptions, + ) { + this.selectOptions = [ + ...this.selectOptions, + { + title, + val, + options, + }, + ]; + } + + private resetTagsInputField() { + (this.tagsInput as HTMLInputElement).value = ''; + (this.tagsInput as HTMLInputElement).placeholder = ''; + this.searchOptions(''); + } + + private clearSelections() { + Array.from(this.dropdown.children).forEach((el) => { + if (el.classList.contains('selected')) el.classList.remove('selected'); + }); + Array.from(this.el.children).forEach((el) => { + if ((el as HTMLOptionElement).selected) + (el as HTMLOptionElement).selected = false; + }); + } + + private setNewValue() { + if (this.mode === 'tags') { + this.setTagsItems(); + } else { + if (this.value.length) + this.toggleTextWrapper.innerHTML = this.stringFromValue(); + else this.toggleTextWrapper.innerHTML = this.placeholder; + } + } + + private stringFromValue() { + const value: string[] = []; + + this.selectOptions.forEach((el: ISingleOption) => { + if (this.isMultiple) { + if (this.value.includes(el.val)) value.push(el.title); + } else { + if (this.value === el.val) value.push(el.title); + } + }); + + return this.toggleCountText && this.toggleCountText !== '' && value.length >= this.toggleCountTextMinItems + ? `${value.length} ${this.toggleCountText}` + : value.join(', '); + } + + private selectSingleItem() { + const selectedOption = Array.from(this.el.children).find( + (el) => this.value === (el as HTMLOptionElement).value, + ); + (selectedOption as HTMLOptionElement).selected = true; + + const selectedItem = Array.from(this.dropdown.children).find( + (el) => + this.value === (el as HTMLOptionElement).getAttribute('data-value'), + ); + selectedItem.classList.add('selected'); + } + + private selectMultipleItems() { + Array.from(this.dropdown.children) + .filter((el) => this.value.includes(el.getAttribute('data-value'))) + .forEach((el) => el.classList.add('selected')); + + Array.from(this.el.children) + .filter((el) => this.value.includes((el as HTMLOptionElement).value)) + .forEach((el) => ((el as HTMLOptionElement).selected = true)); + } + + private unselectMultipleItems() { + Array.from(this.dropdown.children).forEach((el) => + el.classList.remove('selected'), + ); + Array.from(this.el.children).forEach( + (el) => ((el as HTMLOptionElement).selected = false), + ); + } + + private searchOptions(val: string) { + const options = this.dropdown.querySelectorAll('[data-value]'); + + options.forEach((el) => { + const optionVal = el.getAttribute('data-title-value').toLowerCase(); + + if (!optionVal.includes(val.toLowerCase())) el.classList.add('hidden'); + else el.classList.remove('hidden'); + }); + } + + // Public methods + public open() { + if (this.animationInProcess) return false; + + this.animationInProcess = true; + + this.dropdown.classList.remove('hidden'); + + this.recalculateDirection(); + + setTimeout(() => { + this.wrapper.classList.add('active'); + this.dropdown.classList.add('opened'); + if (this.hasSearch) this.search.focus(); + + this.animationInProcess = false; + }); + + this.isOpened = true; + } + + public close() { + if (this.animationInProcess) return false; + + this.animationInProcess = true; + + this.wrapper.classList.remove('active'); + this.dropdown.classList.remove('opened', 'bottom-full', 'top-full'); + if (this.dropdownDirectionClasses?.bottom) + this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom); + if (this.dropdownDirectionClasses?.top) + this.dropdown.classList.remove(this.dropdownDirectionClasses.top); + this.dropdown.style.marginTop = ''; + this.dropdown.style.marginBottom = ''; + + this.afterTransition(this.dropdown, () => { + this.dropdown.classList.add('hidden'); + if (this.hasSearch) { + this.search.value = ''; + this.search.dispatchEvent(new Event('input', { bubbles: true })); + this.search.blur(); + } + + this.animationInProcess = false; + }); + + this.dropdown + .querySelector('.hs-select-option-highlighted') + ?.classList.remove('hs-select-option-highlighted'); + this.isOpened = false; + } + + public recalculateDirection() { + if ( + HSSelect.isEnoughSpace( + this.dropdown, + this.toggle || this.tagsInput, + 'bottom', + this.dropdownSpace, + this.viewport + ) + ) { + this.dropdown.classList.remove('bottom-full'); + if (this.dropdownDirectionClasses?.bottom) + this.dropdown.classList.remove(this.dropdownDirectionClasses.bottom); + this.dropdown.style.marginBottom = ''; + this.dropdown.classList.add('top-full'); + if (this.dropdownDirectionClasses?.top) + this.dropdown.classList.add(this.dropdownDirectionClasses.top); + this.dropdown.style.marginTop = `${this.dropdownSpace}px`; + } else { + this.dropdown.classList.remove('top-full'); + if (this.dropdownDirectionClasses?.top) + this.dropdown.classList.remove(this.dropdownDirectionClasses.top); + this.dropdown.style.marginTop = ''; + this.dropdown.classList.add('bottom-full'); + if (this.dropdownDirectionClasses?.bottom) + this.dropdown.classList.add(this.dropdownDirectionClasses.bottom); + this.dropdown.style.marginBottom = `${this.dropdownSpace}px`; + } + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsSelectCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } + + static close(target: HTMLElement | string) { + const elInCollection = window.$hsSelectCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection && elInCollection.element.isOpened) { + elInCollection.element.close(); + } + } + + static closeCurrentlyOpened(evtTarget: HTMLElement | null = null) { + if (!evtTarget.closest('.hs-select.active')) { + const currentlyOpened = + window.$hsSelectCollection.filter((el) => el.element.isOpened) || null; + + if (currentlyOpened) { + currentlyOpened.forEach((el) => { + el.element.close(); + }); + } + } + } + + // Accessibility methods + static accessibility(evt: KeyboardEvent) { + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if ( + target && + SELECT_ACCESSIBILITY_KEY_SET.includes(evt.code) && + !evt.metaKey + ) { + console.log(target); + + console.log('Key code:', evt.code); + + switch (evt.code) { + case 'Escape': + evt.preventDefault(); + this.onEscape(); + break; + case 'ArrowUp': + evt.preventDefault(); + this.onArrow(); + break; + case 'ArrowDown': + evt.preventDefault(); + this.onArrow(false); + break; + case 'Tab': + evt.preventDefault(); + this.onTab(evt.shiftKey); + break; + case 'Home': + evt.preventDefault(); + this.onStartEnd(); + break; + case 'End': + evt.preventDefault(); + this.onStartEnd(false); + break; + case 'Enter': + evt.preventDefault(); + this.onEnter(evt); + break; + default: + break; + } + } + } + + static onEscape() { + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if (target) target.element.close(); + } + + static onArrow(isArrowUp = true) { + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if (target) { + const dropdown = target.element.dropdown; + + if (!dropdown) return false; + + const preparedOptions = isArrowUp + ? Array.from(dropdown.querySelectorAll(':scope > *')).reverse() + : Array.from(dropdown.querySelectorAll(':scope > *')); + const options = preparedOptions.filter( + (el: any) => !el.classList.contains('disabled'), + ); + const current = dropdown.querySelector('.hs-select-option-highlighted'); + if (!current) options[0].classList.add('hs-select-option-highlighted'); + let currentInd = options.findIndex((el: any) => el === current); + + if (currentInd + 1 < options.length) { + currentInd++; + } + + (options[currentInd] as HTMLButtonElement).focus(); + if (current) current.classList.remove('hs-select-option-highlighted'); + options[currentInd].classList.add('hs-select-option-highlighted'); + } + } + + static onTab(isArrowUp = true) { + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if (target) { + const dropdown = target.element.dropdown; + + if (!dropdown) return false; + + const preparedOptions = isArrowUp + ? Array.from(dropdown.querySelectorAll(':scope > *')).reverse() + : Array.from(dropdown.querySelectorAll(':scope > *')); + const options = preparedOptions.filter( + (el: any) => !el.classList.contains('disabled'), + ); + const current = dropdown.querySelector('.hs-select-option-highlighted'); + if (!current) options[0].classList.add('hs-select-option-highlighted'); + let currentInd = options.findIndex((el: any) => el === current); + + if (currentInd + 1 < options.length) { + currentInd++; + } else { + if (current) current.classList.remove('hs-select-option-highlighted'); + target.element.close(); + target.element.toggle.focus(); + + return false; + } + + (options[currentInd] as HTMLButtonElement).focus(); + if (current) current.classList.remove('hs-select-option-highlighted'); + options[currentInd].classList.add('hs-select-option-highlighted'); + } + } + + static onStartEnd(isStart = true) { + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if (target) { + const dropdown = target.element.dropdown; + + if (!dropdown) return false; + + const preparedOptions = isStart + ? Array.from(dropdown.querySelectorAll(':scope > *')) + : Array.from(dropdown.querySelectorAll(':scope > *')).reverse(); + const options = preparedOptions.filter( + (el: any) => !el.classList.contains('disabled'), + ); + const current = dropdown.querySelector('.hs-select-option-highlighted'); + + if (options.length) { + (options[0] as HTMLButtonElement).focus(); + if (current) current.classList.remove('hs-select-option-highlighted'); + options[0].classList.add('hs-select-option-highlighted'); + } + } + } + + static onEnter(evt: Event) { + const select = (evt.target as HTMLElement).previousSibling; + + if (window.$hsSelectCollection.find((el) => el.element.el === select)) { + const opened = window.$hsSelectCollection.find( + (el) => el.element.isOpened, + ); + const target = window.$hsSelectCollection.find( + (el) => el.element.el === select, + ); + + opened.element.close(); + target.element.open(); + } else { + const target = window.$hsSelectCollection.find( + (el) => el.element.isOpened, + ); + + if (target) + target.element.onSelectOption( + (evt.target as HTMLElement).dataset.value || '', + ); + } + } +} + +// Init all carousels +declare global { + interface Window { + $hsSelectCollection: { + id: number; + element: HSSelect; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsSelectCollection) window.$hsSelectCollection = []; + + document + .querySelectorAll('[data-hs-select]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => { + const data = el.getAttribute('data-hs-select'); + const options: ISelectOptions = data ? JSON.parse(data) : {}; + + new HSSelect(el, options); + }); + + if (window.$hsSelectCollection) { + window.addEventListener('click', (evt) => { + const evtTarget = evt.target; + + HSSelect.closeCurrentlyOpened(evtTarget as HTMLElement); + }); + + document.addEventListener('keydown', (evt) => HSSelect.accessibility(evt)); + } + + // Uncomment for debug + // console.log('Select collection:', window.$hsSelectCollection); +}); + +document.addEventListener('scroll', () => { + if (!window.$hsSelectCollection) return false; + + const target = window.$hsSelectCollection.find((el) => el.element.isOpened); + + if (target) target.element.recalculateDirection(); +}); + +module.exports.HSSelect = HSSelect; + +export default HSSelect; diff --git a/src/plugins/select/interfaces.ts b/src/plugins/select/interfaces.ts new file mode 100644 index 0000000..43e4a8f --- /dev/null +++ b/src/plugins/select/interfaces.ts @@ -0,0 +1,63 @@ +export interface ISingleOptionOptions { + description: string; + icon: string; +} + +export interface ISingleOption { + title: string; + val: string; + options?: ISingleOptionOptions | null; +} + +export interface ISelectOptions { + value?: string | string[]; + isOpened?: boolean; + placeholder?: string; + hasSearch?: boolean; + mode?: string; + + viewport?: string; + + toggleTag?: string; + toggleClasses?: string; + toggleCountText?: string; + toggleCountTextMinItems?: number; + + tagsClasses?: string; + tagsItemTemplate?: string; + tagsItemClasses?: string; + tagsInputClasses?: string; + + dropdownTag?: string; + dropdownClasses?: string; + dropdownDirectionClasses?: { + top?: string; + bottom?: string; + }; + dropdownSpace: number; + + searchWrapperTemplate?: string; + searchClasses?: string; + searchWrapperClasses?: string; + searchPlaceholder?: string; + searchNoItemsText?: string; + searchNoItemsClasses?: string; + + optionTemplate?: string; + optionTag?: string; + optionClasses?: string; + + descriptionClasses?: string; + + iconClasses?: string; +} + +export interface ISelect { + options?: ISelectOptions; + + open(): void; + + close(): void; + + recalculateDirection(): void; +} diff --git a/src/plugins/select/types.ts b/src/plugins/select/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/select/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/stepper/index.ts b/src/plugins/stepper/index.ts new file mode 100644 index 0000000..6169d51 --- /dev/null +++ b/src/plugins/stepper/index.ts @@ -0,0 +1,750 @@ +/* + * HSStepper + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IStepperOptions, IStepper, IStepperItem } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSStepper extends HSBasePlugin<{}> implements IStepper { + private currentIndex: number | null; + private readonly mode: string | null; + private isCompleted: boolean | null; + + private totalSteps: number | null; + + private navItems: IStepperItem[] | null; + private contentItems: IStepperItem[] | null; + private backBtn: HTMLElement | null; + private nextBtn: HTMLElement | null; + private skipBtn: HTMLElement | null; + private completeStepBtn: HTMLElement | null; + private completeStepBtnDefaultText: string | null; + private finishBtn: HTMLElement | null; + private resetBtn: HTMLElement | null; + + constructor(el: HTMLElement, options?: IStepperOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-stepper'); + const dataOptions: IStepperOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.currentIndex = concatOptions?.currentIndex || 1; + this.mode = concatOptions?.mode || 'linear'; + this.isCompleted = typeof concatOptions?.isCompleted !== 'undefined' ? concatOptions?.isCompleted : false; + + this.totalSteps = 1; + + this.navItems = []; + this.contentItems = []; + + this.init(); + } + + private init() { + this.createCollection(window.$hsStepperCollection, this); + + this.buildNav(); + this.buildContent(); + this.buildButtons(); + this.setTotalSteps(); + } + + private getUncompletedSteps(inIncludedSkipped: boolean = false) { + return this.navItems.filter(({ isCompleted, isSkip }) => inIncludedSkipped ? (!isCompleted || isSkip) : (!isCompleted && !isSkip)); + } + + private setTotalSteps() { + this.navItems.forEach((item) => { + const { index } = item; + + if (index > this.totalSteps) this.totalSteps = index; + }); + } + + // Nav + private buildNav() { + this.el.querySelectorAll('[data-hs-stepper-nav-item]').forEach((el) => this.addNavItem(el as HTMLElement)); + + this.navItems.forEach((item) => this.buildNavItem(item)); + } + + private buildNavItem(item: IStepperItem) { + const { index, isDisabled, el } = item; + + if (index === this.currentIndex) this.setCurrentNavItem(); + + if (this.mode !== 'linear' || isDisabled) { + el.addEventListener('click', () => this.handleNavItemClick(item)); + } + } + + private addNavItem(el: HTMLElement) { + const { + index, + isFinal = false, + isCompleted = false, + isSkip = false, + isOptional = false, + isDisabled = false, + isProcessed = false, + hasError = false + } = JSON.parse(el.getAttribute('data-hs-stepper-nav-item')); + + if (isCompleted) el.classList.add('success'); + if (isSkip) el.classList.add('skipped'); + if (isDisabled) { + if ( + el.tagName === 'BUTTON' || + el.tagName === 'INPUT' + ) el.setAttribute('disabled', 'disabled'); + + el.classList.add('disabled'); + } + if (hasError) el.classList.add('error'); + + this.navItems.push({ + index, + isFinal, + isCompleted, + isSkip, + isOptional, + isDisabled, + isProcessed, + hasError, + el: el as HTMLElement + }); + } + + private setCurrentNavItem() { + this.navItems.forEach((item) => { + const { index, el } = item; + + if (index === this.currentIndex) this.setCurrentNavItemActions(el) + else this.unsetCurrentNavItemActions(el); + }); + } + + private setCurrentNavItemActions(el: HTMLElement) { + el.classList.add('active'); + + this.fireEvent('active', this.currentIndex); + this.dispatch('active.hs.stepper', this.el, this.currentIndex); + } + + private getNavItem(n = this.currentIndex) { + return this.navItems.find(({ index }) => index === n); + } + + private setProcessedNavItemActions(item: IStepperItem) { + item.isProcessed = true; + + item.el.classList.add('processed'); + } + + private setErrorNavItemActions(item: IStepperItem) { + item.hasError = true; + + item.el.classList.add('error'); + } + + private unsetCurrentNavItemActions(el: HTMLElement) { + el.classList.remove('active'); + } + + private handleNavItemClick(item: IStepperItem) { + const { index } = item; + + this.currentIndex = index; + + this.setCurrentNavItem(); + this.setCurrentContentItem(); + + this.checkForTheFirstStep(); + } + + // Content + private buildContent() { + this.el.querySelectorAll('[data-hs-stepper-content-item]').forEach((el) => this.addContentItem(el as HTMLElement)); + + this.navItems.forEach((item) => this.buildContentItem(item)); + } + + private buildContentItem(item: IStepperItem) { + const { index } = item; + + if (index === this.currentIndex) this.setCurrentContentItem(); + } + + private addContentItem(el: HTMLElement) { + const { + index, + isFinal = false, + isCompleted = false, + isSkip = false + } = JSON.parse(el.getAttribute('data-hs-stepper-content-item')); + + if (isCompleted) el.classList.add('success'); + if (isSkip) el.classList.add('skipped'); + + this.contentItems.push({ + index, + isFinal, + isCompleted, + isSkip, + el: el as HTMLElement + }); + } + + private setCurrentContentItem() { + if (this.isCompleted) { + const finalContentItem = this.contentItems.find(({ isFinal }) => isFinal); + const otherContentItems = this.contentItems.filter(({ isFinal }) => !isFinal); + finalContentItem.el.style.display = ''; + otherContentItems.forEach(({ el }) => el.style.display = 'none'); + + return false; + } + + this.contentItems.forEach((item) => { + const { index, el } = item; + + if (index === this.currentIndex) this.setCurrentContentItemActions(el) + else this.unsetCurrentContentItemActions(el); + }); + } + + private hideAllContentItems() { + this.contentItems.forEach(({ el }) => el.style.display = 'none'); + } + + private setCurrentContentItemActions(el: HTMLElement) { + el.style.display = ''; + } + + private unsetCurrentContentItemActions(el: HTMLElement) { + el.style.display = 'none'; + } + + private disableAll() { + const currentNavItem = this.getNavItem(this.currentIndex); + currentNavItem.hasError = false; + currentNavItem.isCompleted = false; + currentNavItem.isDisabled = false; + currentNavItem.el.classList.remove('error', 'success'); + + this.disableButtons(); + } + + private disableNavItemActions(item: IStepperItem) { + item.isDisabled = true; + item.el.classList.add('disabled'); + } + + private enableNavItemActions(item: IStepperItem) { + item.isDisabled = false; + item.el.classList.remove('disabled'); + } + + // Buttons + private buildButtons() { + this.backBtn = this.el.querySelector('[data-hs-stepper-back-btn]'); + this.nextBtn = this.el.querySelector('[data-hs-stepper-next-btn]'); + this.skipBtn = this.el.querySelector('[data-hs-stepper-skip-btn]'); + this.completeStepBtn = this.el.querySelector('[data-hs-stepper-complete-step-btn]'); + this.finishBtn = this.el.querySelector('[data-hs-stepper-finish-btn]'); + this.resetBtn = this.el.querySelector('[data-hs-stepper-reset-btn]'); + + this.buildBackButton(); + this.buildNextButton(); + this.buildSkipButton(); + this.buildCompleteStepButton(); + this.buildFinishButton(); + this.buildResetButton(); + } + + // back + private buildBackButton() { + if (!this.backBtn) return; + + this.checkForTheFirstStep(); + + this.backBtn.addEventListener('click', () => { + this.handleBackButtonClick(); + + if (this.mode === 'linear') { + const currentNavItem = this.navItems.find(({ index }) => index === this.currentIndex); + const currentContentItem = this.contentItems.find(({ index }) => index === this.currentIndex); + + if (!currentNavItem || !currentContentItem) return; + + if (currentNavItem.isCompleted) { + currentNavItem.isCompleted = false; + currentNavItem.isSkip = false; + + currentNavItem.el.classList.remove('success', 'skipped'); + } + + if (currentContentItem.isCompleted) { + currentContentItem.isCompleted = false; + currentContentItem.isSkip = false; + + currentContentItem.el.classList.remove('success', 'skipped'); + } + + if ((this.mode === 'linear') && (this.currentIndex !== this.totalSteps)) { + if (this.nextBtn) this.nextBtn.style.display = ''; + if (this.completeStepBtn) this.completeStepBtn.style.display = ''; + } + + this.showSkipButton(); + this.showFinishButton(); + this.showCompleteStepButton(); + } + }); + } + + private handleBackButtonClick() { + if (this.currentIndex === 1) return; + + if (this.mode === 'linear') { + this.removeOptionalClasses(); + } + + this.currentIndex--; + + if (this.mode === 'linear') { + this.removeOptionalClasses(); + } + + this.setCurrentNavItem(); + this.setCurrentContentItem(); + + this.checkForTheFirstStep(); + if (this.completeStepBtn) this.changeTextAndDisableCompleteButtonIfStepCompleted(); + + this.fireEvent('back', this.currentIndex); + this.dispatch('back.hs.stepper', this.el, this.currentIndex); + } + + private checkForTheFirstStep() { + if (this.currentIndex === 1) { + this.setToDisabled(this.backBtn); + } else { + this.setToNonDisabled(this.backBtn); + } + } + + private setToDisabled(el: HTMLElement) { + if ( + el.tagName === 'BUTTON' || + el.tagName === 'INPUT' + ) el.setAttribute('disabled', 'disabled'); + + el.classList.add('disabled'); + } + + private setToNonDisabled(el: HTMLElement) { + if ( + el.tagName === 'BUTTON' || + el.tagName === 'INPUT' + ) el.removeAttribute('disabled'); + + el.classList.remove('disabled'); + } + + // next + private buildNextButton() { + if (!this.nextBtn) return; + + this.nextBtn.addEventListener('click', () => { + this.fireEvent('beforeNext', this.currentIndex); + this.dispatch('beforeNext.hs.stepper', this.el, this.currentIndex); + + if (this.getNavItem(this.currentIndex)?.isProcessed) { + this.disableAll(); + + return false; + } + + this.goToNext(); + }); + } + + private unsetProcessedNavItemActions(item: IStepperItem) { + item.isProcessed = false; + + item.el.classList.remove('processed'); + } + + private handleNextButtonClick(infinite = true) { + if (infinite) { + if (this.currentIndex === this.totalSteps) this.currentIndex = 1 + else this.currentIndex++; + } else { + const nonCompletedSteps = this.getUncompletedSteps(); + + if (nonCompletedSteps.length === 1) { + const { index } = nonCompletedSteps[0]; + + this.currentIndex = index; + } else { + if (this.currentIndex === this.totalSteps) return; + + this.currentIndex++; + } + } + + if (this.mode === 'linear') { + this.removeOptionalClasses(); + } + + this.setCurrentNavItem(); + this.setCurrentContentItem(); + + this.checkForTheFirstStep(); + if (this.completeStepBtn) this.changeTextAndDisableCompleteButtonIfStepCompleted(); + + this.showSkipButton(); + this.showFinishButton(); + this.showCompleteStepButton(); + + this.fireEvent('next', this.currentIndex); + this.dispatch('next.hs.stepper', this.el, this.currentIndex); + } + + private removeOptionalClasses() { + const currentNavItem = this.navItems.find(({ index }) => index === this.currentIndex); + const currentContentItem = this.contentItems.find(({ index }) => index === this.currentIndex); + + currentNavItem.isSkip = false; + currentNavItem.hasError = false; + currentNavItem.isDisabled = false; + currentContentItem.isSkip = false; + + currentNavItem.el.classList.remove('skipped', 'success', 'error'); + currentContentItem.el.classList.remove('skipped', 'success', 'error'); + } + + // skip + private buildSkipButton() { + if (!this.skipBtn) return; + + this.showSkipButton(); + + this.skipBtn.addEventListener('click', () => { + this.handleSkipButtonClick(); + + if (this.mode === 'linear' && (this.currentIndex === this.totalSteps)) { + if (this.nextBtn) this.nextBtn.style.display = 'none'; + if (this.completeStepBtn) this.completeStepBtn.style.display = 'none'; + if (this.finishBtn) this.finishBtn.style.display = ''; + } + }); + } + + private setSkipItem(n?: number) { + const targetNavItem = this.navItems.find(({ index }) => index === (n || this.currentIndex)); + const targetContentItem = this.contentItems.find(({ index }) => index === (n || this.currentIndex)); + + if (!targetNavItem || !targetContentItem) return; + + this.setSkipItemActions(targetNavItem); + this.setSkipItemActions(targetContentItem); + } + + private setSkipItemActions(item: IStepperItem) { + item.isSkip = true; + + item.el.classList.add('skipped'); + } + + private showSkipButton() { + if (!this.skipBtn) return; + + const { isOptional } = this.navItems.find(({ index }) => index === this.currentIndex); + + if (isOptional) this.skipBtn.style.display = '' + else this.skipBtn.style.display = 'none'; + } + + private handleSkipButtonClick() { + this.setSkipItem(); + this.handleNextButtonClick(); + + this.fireEvent('skip', this.currentIndex); + this.dispatch('skip.hs.stepper', this.el, this.currentIndex); + } + + // complete + private buildCompleteStepButton() { + if (!this.completeStepBtn) return; + + this.completeStepBtnDefaultText = this.completeStepBtn.innerText; + + this.completeStepBtn.addEventListener('click', () => this.handleCompleteStepButtonClick()); + } + + private changeTextAndDisableCompleteButtonIfStepCompleted() { + const currentNavItem = this.navItems.find(({ index }) => index === this.currentIndex); + const { completedText } = JSON.parse(this.completeStepBtn.getAttribute('data-hs-stepper-complete-step-btn')); + + if (!currentNavItem) return; + + if (currentNavItem.isCompleted) { + this.completeStepBtn.innerText = completedText || this.completeStepBtnDefaultText; + this.completeStepBtn.setAttribute('disabled', 'disabled'); + this.completeStepBtn.classList.add('disabled'); + } else { + this.completeStepBtn.innerText = this.completeStepBtnDefaultText; + this.completeStepBtn.removeAttribute('disabled'); + this.completeStepBtn.classList.remove('disabled'); + } + } + + private setCompleteItem(n?: number) { + const targetNavItem = this.navItems.find(({ index }) => index === (n || this.currentIndex)); + const targetContentItem = this.contentItems.find(({ index }) => index === (n || this.currentIndex)); + + if (!targetNavItem || !targetContentItem) return; + + this.setCompleteItemActions(targetNavItem); + this.setCompleteItemActions(targetContentItem); + } + + private setCompleteItemActions(item: IStepperItem) { + item.isCompleted = true; + + item.el.classList.add('success'); + } + + private showCompleteStepButton() { + if (!this.completeStepBtn) return; + + const nonCompletedSteps = this.getUncompletedSteps(); + + if (nonCompletedSteps.length === 1) this.completeStepBtn.style.display = 'none' + else this.completeStepBtn.style.display = ''; + } + + private handleCompleteStepButtonClick() { + this.setCompleteItem(); + + this.fireEvent('complete', this.currentIndex); + this.dispatch('complete.hs.stepper', this.el, this.currentIndex); + + this.handleNextButtonClick(false); + this.showFinishButton(); + this.showCompleteStepButton(); + this.checkForTheFirstStep(); + if (this.completeStepBtn) this.changeTextAndDisableCompleteButtonIfStepCompleted(); + this.showSkipButton(); + } + + // finish + private buildFinishButton() { + if (!this.finishBtn) return; + + if (this.isCompleted) { + this.setCompleted(); + } + + this.finishBtn.addEventListener('click', () => this.handleFinishButtonClick()); + } + + private setCompleted() { + this.el.classList.add('completed'); + } + + private unsetCompleted() { + this.el.classList.remove('completed'); + } + + private showFinishButton() { + if (!this.finishBtn) return; + + const nonCompletedSteps = this.getUncompletedSteps(); + + if (nonCompletedSteps.length === 1) this.finishBtn.style.display = '' + else this.finishBtn.style.display = 'none'; + } + + private handleFinishButtonClick() { + const uncompletedSteps = this.getUncompletedSteps(); + const uncompletedOrSkipSteps = this.getUncompletedSteps(true); + const { el } = this.contentItems.find(({ isFinal }) => isFinal); + + if (uncompletedSteps.length) uncompletedSteps.forEach(({ index }) => this.setCompleteItem(index)); + + this.currentIndex = this.totalSteps; + + this.setCurrentNavItem(); + this.hideAllContentItems(); + + const currentNavItem = this.navItems.find(({ index }) => index === this.currentIndex); + const currentNavItemEl = currentNavItem ? currentNavItem.el : null; + + currentNavItemEl.classList.remove('active'); + + el.style.display = 'block'; + if (this.backBtn) this.backBtn.style.display = 'none'; + if (this.nextBtn) this.nextBtn.style.display = 'none'; + if (this.skipBtn) this.skipBtn.style.display = 'none'; + if (this.completeStepBtn) this.completeStepBtn.style.display = 'none'; + if (this.finishBtn) this.finishBtn.style.display = 'none'; + if (this.resetBtn) this.resetBtn.style.display = ''; + + if (uncompletedOrSkipSteps.length <= 1) { + this.isCompleted = true; + this.setCompleted(); + } + + this.fireEvent('finish', this.currentIndex); + this.dispatch('finish.hs.stepper', this.el, this.currentIndex); + } + + // reset + private buildResetButton() { + if (!this.resetBtn) return; + + this.resetBtn.addEventListener('click', () => this.handleResetButtonClick()); + } + + private handleResetButtonClick() { + if (this.backBtn) this.backBtn.style.display = ''; + if (this.nextBtn) this.nextBtn.style.display = ''; + if (this.completeStepBtn) { + this.completeStepBtn.style.display = ''; + this.completeStepBtn.innerText = this.completeStepBtnDefaultText; + this.completeStepBtn.removeAttribute('disabled'); + this.completeStepBtn.classList.remove('disabled'); + } + if (this.resetBtn) this.resetBtn.style.display = 'none'; + + this.navItems.forEach((item) => { + const { el } = item; + item.isSkip = false; + item.isCompleted = false; + + this.unsetCurrentNavItemActions(el); + el.classList.remove('success', 'skipped'); + }); + + this.contentItems.forEach((item) => { + const { el } = item; + item.isSkip = false; + item.isCompleted = false; + + this.unsetCurrentContentItemActions(el); + el.classList.remove('success', 'skipped'); + }); + + this.currentIndex = 1; + + this.setCurrentNavItem(); + this.setCurrentContentItem(); + this.showFinishButton(); + this.showCompleteStepButton(); + this.checkForTheFirstStep(); + + this.unsetCompleted(); + this.isCompleted = false; + + this.fireEvent('reset', this.currentIndex); + this.dispatch('reset.hs.stepper', this.el, this.currentIndex); + } + + // Public methods + public setProcessedNavItem(n?: number) { + const targetNavItem = this.getNavItem(n); + + if (!targetNavItem) return; + + this.setProcessedNavItemActions(targetNavItem); + } + + public unsetProcessedNavItem(n?: number) { + const targetNavItem = this.getNavItem(n); + + if (!targetNavItem) return; + + this.unsetProcessedNavItemActions(targetNavItem); + } + + public goToNext() { + if (this.mode === 'linear') this.setCompleteItem(); + + this.handleNextButtonClick(this.mode !== 'linear'); + + if (this.mode === 'linear' && (this.currentIndex === this.totalSteps)) { + if (this.nextBtn) this.nextBtn.style.display = 'none'; + if (this.completeStepBtn) this.completeStepBtn.style.display = 'none'; + } + } + + public disableButtons() { + if (this.backBtn) this.setToDisabled(this.backBtn); + if (this.nextBtn) this.setToDisabled(this.nextBtn); + } + + public enableButtons() { + if (this.backBtn) this.setToNonDisabled(this.backBtn); + if (this.nextBtn) this.setToNonDisabled(this.nextBtn); + } + + public setErrorNavItem(n?: number) { + const targetNavItem = this.getNavItem(n); + + if (!targetNavItem) return; + + this.setErrorNavItemActions(targetNavItem); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsStepperCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all steppers +declare global { + interface Window { + $hsStepperCollection: { + id: string | number; + element: HSStepper; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsStepperCollection) window.$hsStepperCollection = []; + + document + .querySelectorAll('[data-hs-stepper]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSStepper(el)); + + // Uncomment for debug + // console.log('Stepper collection:', window.$hsStepperCollection); +}); + +module.exports.HSStepper = HSStepper; + +export default HSStepper; diff --git a/src/plugins/stepper/interfaces.ts b/src/plugins/stepper/interfaces.ts new file mode 100644 index 0000000..99899a7 --- /dev/null +++ b/src/plugins/stepper/interfaces.ts @@ -0,0 +1,33 @@ +export interface IStepperOptions { + currentIndex?: number; + isCompleted?: boolean; + mode?: string; +} + +export interface IStepper { + options?: IStepperOptions; + + setProcessedNavItem(n?: number): void; + + unsetProcessedNavItem(n?: number): void; + + goToNext(): void; + + disableButtons(): void; + + enableButtons(): void; + + setErrorNavItem(n?: number): void; +} + +export interface IStepperItem { + index: number; + isFinal: boolean; + isCompleted: boolean; + isSkip: boolean; + isOptional?: boolean; + isDisabled?: boolean; + isProcessed?: boolean; + hasError?: boolean; + el: HTMLElement; +} \ No newline at end of file diff --git a/src/plugins/stepper/types.ts b/src/plugins/stepper/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/stepper/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/strong-password/index.ts b/src/plugins/strong-password/index.ts new file mode 100644 index 0000000..41c7d2d --- /dev/null +++ b/src/plugins/strong-password/index.ts @@ -0,0 +1,359 @@ +/* + * HSStrongPassword + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IStrongPasswordOptions, IStrongPassword } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSStrongPassword + extends HSBasePlugin + implements IStrongPassword { + private readonly target: string | HTMLInputElement | null; + private readonly hints: string | HTMLElement | null; + private readonly stripClasses: string | null; + private readonly minLength: number; + private readonly mode: string; + private readonly popoverSpace: number; + private readonly checksExclude: string[] | null; + private readonly specialCharactersSet: string | null; + + public isOpened: boolean = false; + private strength: number = 0; + private passedRules: Set = new Set(); + private weakness: HTMLElement | null; + private rules: HTMLElement[] | null; + private availableChecks: string[] | null; + + constructor(el: HTMLElement, options?: IStrongPasswordOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-strong-password'); + const dataOptions: IStrongPasswordOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.target = concatOptions?.target + ? typeof concatOptions?.target === 'string' + ? (document.querySelector(concatOptions.target) as HTMLInputElement) + : concatOptions.target + : null; + this.hints = concatOptions?.hints + ? typeof concatOptions?.hints === 'string' + ? (document.querySelector(concatOptions.hints) as HTMLElement) + : concatOptions.hints + : null; + this.stripClasses = concatOptions?.stripClasses || null; + this.minLength = concatOptions?.minLength || 6; + this.mode = concatOptions?.mode || 'default'; + this.popoverSpace = concatOptions?.popoverSpace || 10; + this.checksExclude = concatOptions?.checksExclude || []; + this.availableChecks = [ + 'lowercase', + 'uppercase', + 'numbers', + 'special-characters', + 'min-length', + ].filter((el) => !this.checksExclude.includes(el)); + this.specialCharactersSet = + concatOptions?.specialCharactersSet || + '!"#$%&\'()*+,-./:;<=>?@[\\\\\\]^_`{|}~'; + + if (this.target) this.init(); + } + + private init() { + this.createCollection(window.$hsStrongPasswordCollection, this); + + if (this.availableChecks.length) this.build(); + } + + private build() { + this.buildStrips(); + if (this.hints) this.buildHints(); + + this.setStrength((this.target as HTMLInputElement).value); + + (this.target as HTMLInputElement).addEventListener( + 'input', + (evt: InputEvent) => { + this.setStrength((evt.target as HTMLInputElement).value); + }, + ); + } + + private buildStrips() { + if (this.stripClasses) { + for (let i = 0; i < this.availableChecks.length; i++) { + const newStrip = this.htmlToElement('
'); + this.classToClassList(this.stripClasses, newStrip); + + this.el.append(newStrip); + } + } + } + + private buildHints() { + this.weakness = + (this.hints as HTMLElement).querySelector( + '[data-hs-strong-password-hints-weakness-text]', + ) || null; + this.rules = + Array.from( + (this.hints as HTMLElement).querySelectorAll( + '[data-hs-strong-password-hints-rule-text]', + ), + ) || null; + + this.rules.forEach((rule) => { + const ruleValue = rule.getAttribute( + 'data-hs-strong-password-hints-rule-text', + ); + + if (this.checksExclude?.includes(ruleValue)) rule.remove(); + }); + + if (this.weakness) this.buildWeakness(); + if (this.rules) this.buildRules(); + if (this.mode === 'popover') { + (this.target as HTMLInputElement).addEventListener('focus', () => { + this.isOpened = true; + (this.hints as HTMLElement).classList.remove('hidden'); + (this.hints as HTMLElement).classList.add('block'); + + this.recalculateDirection(); + }); + + (this.target as HTMLInputElement).addEventListener('blur', () => { + this.isOpened = false; + (this.hints as HTMLElement).classList.remove( + 'block', + 'bottom-full', + 'top-full', + ); + (this.hints as HTMLElement).classList.add('hidden'); + (this.hints as HTMLElement).style.marginTop = ''; + (this.hints as HTMLElement).style.marginBottom = ''; + }); + } + } + + private buildWeakness() { + this.checkStrength((this.target as HTMLInputElement).value); + this.setWeaknessText(); + + (this.target as HTMLInputElement).addEventListener('input', () => + setTimeout(() => this.setWeaknessText()), + ); + } + + private buildRules() { + this.setRulesText(); + + (this.target as HTMLInputElement).addEventListener('input', () => + setTimeout(() => this.setRulesText()), + ); + } + + private setWeaknessText() { + const weaknessText = this.weakness.getAttribute( + 'data-hs-strong-password-hints-weakness-text', + ); + const weaknessTextToJson = JSON.parse(weaknessText as string); + + this.weakness.textContent = weaknessTextToJson[this.strength]; + } + + private setRulesText() { + this.rules.forEach((rule) => { + const ruleValue = rule.getAttribute( + 'data-hs-strong-password-hints-rule-text', + ); + + this.checkIfPassed(rule, this.passedRules.has(ruleValue)); + }); + } + + private togglePopover() { + const popover = this.el.querySelector('.popover'); + + if (popover) popover.classList.toggle('show'); + } + + private checkStrength(val: string): { strength: number; rules: Set } { + const passedRules = new Set(); + const regexps = { + lowercase: /[a-z]+/, + uppercase: /[A-Z]+/, + numbers: /[0-9]+/, + 'special-characters': new RegExp(`[${this.specialCharactersSet}]`), + }; + let strength = 0; + + if ( + this.availableChecks.includes('lowercase') && + val.match(regexps['lowercase']) + ) { + strength += 1; + passedRules.add('lowercase'); + } + if ( + this.availableChecks.includes('uppercase') && + val.match(regexps['uppercase']) + ) { + strength += 1; + passedRules.add('uppercase'); + } + if ( + this.availableChecks.includes('numbers') && + val.match(regexps['numbers']) + ) { + strength += 1; + passedRules.add('numbers'); + } + if ( + this.availableChecks.includes('special-characters') && + val.match(regexps['special-characters']) + ) { + strength += 1; + passedRules.add('special-characters'); + } + if ( + this.availableChecks.includes('min-length') && + val.length >= this.minLength + ) { + strength += 1; + passedRules.add('min-length'); + } + if (!val.length) { + strength = 0; + } + + if (strength === this.availableChecks.length) + this.el.classList.add('accepted'); + else this.el.classList.remove('accepted'); + + this.strength = strength; + this.passedRules = passedRules; + + return { + strength: this.strength, + rules: this.passedRules, + }; + } + + private checkIfPassed(el: HTMLElement, isRulePassed = false) { + const check = el.querySelector('[data-check]'); + const uncheck = el.querySelector('[data-uncheck]'); + + if (isRulePassed) { + el.classList.add('active'); + check.classList.remove('hidden'); + uncheck.classList.add('hidden'); + } else { + el.classList.remove('active'); + check.classList.add('hidden'); + uncheck.classList.remove('hidden'); + } + } + + private setStrength(val: string) { + const { strength, rules } = this.checkStrength(val); + const payload = { + strength, + rules, + }; + + this.hideStrips(strength); + + this.fireEvent('change', payload); + this.dispatch('change.hs.strongPassword', this.el, payload); + } + + private hideStrips(qty: number) { + Array.from(this.el.children).forEach((el: HTMLElement, i: number) => { + if (i < qty) el.classList.add('passed'); + else el.classList.remove('passed'); + }); + } + + // Public methods + public recalculateDirection() { + if ( + HSBasePlugin.isEnoughSpace( + this.hints as HTMLElement, + this.target as HTMLInputElement, + 'bottom', + this.popoverSpace, + ) + ) { + (this.hints as HTMLElement).classList.remove('bottom-full'); + (this.hints as HTMLElement).classList.add('top-full'); + (this.hints as HTMLElement).style.marginBottom = ''; + (this.hints as HTMLElement).style.marginTop = `${this.popoverSpace}px`; + } else { + (this.hints as HTMLElement).classList.remove('top-full'); + (this.hints as HTMLElement).classList.add('bottom-full'); + (this.hints as HTMLElement).style.marginTop = ''; + (this.hints as HTMLElement).style.marginBottom = `${this.popoverSpace}px`; + } + } + + // Static methods + static getInstance(target: HTMLElement | string) { + const elInCollection = window.$hsStrongPasswordCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection ? elInCollection.element : null; + } +} + +// Init all carousels +declare global { + interface Window { + $hsStrongPasswordCollection: { + id: number; + element: HSStrongPassword; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsStrongPasswordCollection) + window.$hsStrongPasswordCollection = []; + + document + .querySelectorAll('[data-hs-strong-password]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => { + const data = el.getAttribute('data-hs-strong-password'); + const options: IStrongPasswordOptions = data ? JSON.parse(data) : {}; + + new HSStrongPassword(el, options); + }); + + // Uncomment for debug + // console.log('Strong password collection:', window.$hsStrongPasswordCollection); +}); + +document.addEventListener('scroll', () => { + if (!window.$hsStrongPasswordCollection) return false; + + const target = window.$hsStrongPasswordCollection.find( + (el) => el.element.isOpened, + ); + + if (target) target.element.recalculateDirection(); +}); + +module.exports.HSStrongPassword = HSStrongPassword; + +export default HSStrongPassword; diff --git a/src/plugins/strong-password/interfaces.ts b/src/plugins/strong-password/interfaces.ts new file mode 100644 index 0000000..5cecea9 --- /dev/null +++ b/src/plugins/strong-password/interfaces.ts @@ -0,0 +1,16 @@ +export interface IStrongPasswordOptions { + target: string | HTMLInputElement; + hints?: string; + stripClasses?: string; + minLength?: number; + mode?: string; + popoverSpace?: number; + checksExclude?: string[]; + specialCharactersSet?: string; +} + +export interface IStrongPassword { + options?: IStrongPasswordOptions; + + recalculateDirection(): void; +} diff --git a/src/plugins/strong-password/types.ts b/src/plugins/strong-password/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/strong-password/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/tabs/index.ts b/src/plugins/tabs/index.ts new file mode 100644 index 0000000..3994c7f --- /dev/null +++ b/src/plugins/tabs/index.ts @@ -0,0 +1,242 @@ +/* + * HSTabs + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ITabs } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +import { TABS_ACCESSIBILITY_KEY_SET } from '../../constants'; + +class HSTabs extends HSBasePlugin<{}> implements ITabs { + public toggles: NodeListOf | null; + private readonly extraToggleId: string | null; + private readonly extraToggle: HTMLSelectElement | null; + private current: HTMLElement | null; + private currentContentId: string | null; + public currentContent: HTMLElement | null; + private prev: HTMLElement | null; + private prevContentId: string | null; + private prevContent: HTMLElement | null; + + constructor(el: HTMLElement, options?: {}, events?: {}) { + super(el, options, events); + + this.toggles = this.el.querySelectorAll('[data-hs-tab]'); + this.extraToggleId = this.el.getAttribute('hs-data-tab-select'); + this.extraToggle = document.querySelector(this.extraToggleId); + this.current = Array.from(this.toggles).find((el) => + el.classList.contains('active'), + ); + this.currentContentId = this.current.getAttribute('data-hs-tab'); + this.currentContent = document.querySelector(this.currentContentId); + this.prev = null; + this.prevContentId = null; + this.prevContent = null; + + this.init(); + } + + private init() { + this.createCollection(window.$hsTabsCollection, this); + + this.toggles.forEach((el) => { + el.addEventListener('click', () => this.open(el)); + }); + + if (this.extraToggle) { + this.extraToggle.addEventListener('change', (evt) => this.change(evt)); + } + } + + private open(el: HTMLElement) { + this.prev = this.current; + this.prevContentId = this.currentContentId; + this.prevContent = this.currentContent; + + this.current = el; + this.currentContentId = this.current.getAttribute('data-hs-tab'); + this.currentContent = document.querySelector(this.currentContentId); + + this.prev.classList.remove('active'); + this.prevContent.classList.add('hidden'); + + this.current.classList.add('active'); + this.currentContent.classList.remove('hidden'); + + this.fireEvent('change', { el, prev: this.prevContentId, current: this.currentContentId }); + this.dispatch('change.hs.tab', el, { el, prev: this.prevContentId, current: this.currentContentId }); + } + + private change(evt: Event) { + const toggle: HTMLElement = document.querySelector( + `[data-hs-tab="${(evt.target as HTMLSelectElement).value}"]`, + ); + + if (toggle) toggle.click(); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + // const elInCollection = window.$hsTabsCollection.find((el) => + // Array.from(el.element.toggles).includes( + // typeof target === 'string' ? document.querySelector(target) : target, + // ), + // ); + // const targetInCollection = Array.from(elInCollection.element.toggles).find( + // (el) => + // el === + // (typeof target === 'string' ? document.querySelector(target) : target), + // ); + + // return targetInCollection || null; + + const elInCollection = window.$hsTabsCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } + + static open(target: HTMLElement) { + const elInCollection = window.$hsTabsCollection.find((el) => + Array.from(el.element.toggles).includes( + typeof target === 'string' ? document.querySelector(target) : target, + ), + ); + const targetInCollection = Array.from(elInCollection.element.toggles).find( + (el) => + el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (targetInCollection && !targetInCollection.classList.contains('active')) + elInCollection.element.open(targetInCollection); + } + + // Accessibility methods + static accessibility(evt: KeyboardEvent) { + const target = document.querySelector('[data-hs-tab]:focus'); + + if ( + target && + TABS_ACCESSIBILITY_KEY_SET.includes(evt.code) && + !evt.metaKey + ) { + const isVertical = target + .closest('[role="tablist"]') + .getAttribute('data-hs-tabs-vertical'); + + evt.preventDefault(); + + console.log('Key code:', evt.code); + + switch (evt.code) { + case isVertical === 'true' ? 'ArrowUp' : 'ArrowLeft': + this.onArrow(); + break; + case isVertical === 'true' ? 'ArrowDown' : 'ArrowRight': + this.onArrow(false); + break; + case 'Home': + this.onStartEnd(); + break; + case 'End': + this.onStartEnd(false); + break; + default: + break; + } + } + } + + static onArrow(isOpposite = true) { + const target = document + .querySelector('[data-hs-tab]:focus') + .closest('[role="tablist"]'); + const targetInCollection = window.$hsTabsCollection.find( + (el) => el.element.el === target, + ); + + if (targetInCollection) { + const toggles = isOpposite + ? Array.from(targetInCollection.element.toggles).reverse() + : Array.from(targetInCollection.element.toggles); + const focused = toggles.find((el) => document.activeElement === el); + let focusedInd = toggles.findIndex((el: any) => el === focused); + focusedInd = focusedInd + 1 < toggles.length ? focusedInd + 1 : 0; + + toggles[focusedInd].focus(); + toggles[focusedInd].click(); + } + } + + static onStartEnd(isOpposite = true) { + const target = document + .querySelector('[data-hs-tab]:focus') + .closest('[role="tablist"]'); + const targetInCollection = window.$hsTabsCollection.find( + (el) => el.element.el === target, + ); + + if (targetInCollection) { + const toggles = isOpposite + ? Array.from(targetInCollection.element.toggles) + : Array.from(targetInCollection.element.toggles).reverse(); + + if (toggles.length) { + toggles[0].focus(); + toggles[0].click(); + } + } + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsTabsCollection.find((el) => + Array.from(el.element.toggles).includes( + typeof target === 'string' ? document.querySelector(target) : target, + ), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all tabs +declare global { + interface Window { + $hsTabsCollection: { + id: number; + element: HSTabs; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsTabsCollection) window.$hsTabsCollection = []; + + document + .querySelectorAll('[role="tablist"]:not(select):not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSTabs(el)); + + if (window.$hsTabsCollection) + document.addEventListener('keydown', (evt) => HSTabs.accessibility(evt)); + + // Uncomment for debug + // console.log('Tabs collection:', window.$hsTabsCollection); +}); + +module.exports.HSTabs = HSTabs; + +export default HSTabs; diff --git a/src/plugins/tabs/interfaces.ts b/src/plugins/tabs/interfaces.ts new file mode 100644 index 0000000..3c6f8f5 --- /dev/null +++ b/src/plugins/tabs/interfaces.ts @@ -0,0 +1,3 @@ +export interface ITabs { + options?: {}; +} diff --git a/src/plugins/tabs/types.ts b/src/plugins/tabs/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/tabs/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/theme-switch/index.ts b/src/plugins/theme-switch/index.ts new file mode 100644 index 0000000..91545ad --- /dev/null +++ b/src/plugins/theme-switch/index.ts @@ -0,0 +1,149 @@ +/* + * HSThemeSwitch + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IThemeSwitchOptions, IThemeSwitch } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSThemeSwitch extends HSBasePlugin implements IThemeSwitch { + public theme: string; + private readonly themeSet: string[]; + + constructor(el: HTMLElement, options?: IThemeSwitchOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-theme-switch'); + const dataOptions: IThemeSwitchOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.theme = + concatOptions?.theme || localStorage.getItem('hs_theme') || 'default'; + this.themeSet = ['dark', 'light', 'default']; + + this.init(); + } + + private init() { + this.createCollection(window.$hsThemeSwitchCollection, this); + + if ( + !Array.from(document.querySelector('html').classList).some((cl) => + this.themeSet.includes(cl), + ) + ) + this.setAppearance(); + } + + private setResetStyles() { + const style = document.createElement('style'); + + style.innerText = `*{transition: unset !important;}`; + style.setAttribute('data-hs-appearance-onload-styles', ''); + + document.head.appendChild(style); + + return style; + } + + // Public methods + public setAppearance( + theme = this.theme, + isSaveToLocalStorage = true, + isSetDispatchEvent = true, + ) { + const resetStyles = this.setResetStyles(); + const html = document.querySelector('html'); + + if (isSaveToLocalStorage) localStorage.setItem('hs_theme', theme); + if (theme === 'auto') + theme = window.matchMedia('(prefers-color-scheme: dark)').matches + ? 'dark' + : 'default'; + + html.classList.remove('dark', 'default', 'auto'); + html.classList.add(theme); + + setTimeout(() => resetStyles.remove()); + + if (isSetDispatchEvent) + window.dispatchEvent( + new CustomEvent('on-hs-appearance-change', { detail: theme }), + ); + } + + // Static methods + static getInstance(target: HTMLElement | string) { + const elInCollection = window.$hsThemeSwitchCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection ? elInCollection.element : null; + } +} + +// Init all toggle password +declare global { + interface Window { + $hsThemeSwitchCollection: { + id: number; + element: HSThemeSwitch; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsThemeSwitchCollection) window.$hsThemeSwitchCollection = []; + + document + .querySelectorAll('[data-hs-theme-switch]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => { + const switchTheme = new HSThemeSwitch(el); + (switchTheme.el as HTMLInputElement).checked = + switchTheme.theme === 'dark'; + + switchTheme.el.addEventListener('change', (evt) => { + switchTheme.setAppearance( + (evt.target as HTMLInputElement).checked ? 'dark' : 'default', + ); + }); + }); + + document + .querySelectorAll( + '[data-hs-theme-click-value]:not(.--prevent-on-load-init)', + ) + .forEach((el: HTMLElement) => { + const theme = el.getAttribute('data-hs-theme-click-value'); + const switchTheme = new HSThemeSwitch(el); + + switchTheme.el.addEventListener('click', () => + switchTheme.setAppearance(theme), + ); + }); + + // Uncomment for debug + // console.log('Theme switch collection:', window.$hsThemeSwitchCollection); +}); + +if (window.$hsThemeSwitchCollection) { + window.addEventListener('on-hs-appearance-change', (evt) => { + window.$hsThemeSwitchCollection.forEach((el) => { + // @ts-ignore + (el.element.el as HTMLInputElement).checked = evt.detail === 'dark'; + }); + }); +} + +module.exports.HSThemeSwitch = HSThemeSwitch; + +export default HSThemeSwitch; diff --git a/src/plugins/theme-switch/interfaces.ts b/src/plugins/theme-switch/interfaces.ts new file mode 100644 index 0000000..4527be8 --- /dev/null +++ b/src/plugins/theme-switch/interfaces.ts @@ -0,0 +1,9 @@ +export interface IThemeSwitchOptions { + theme?: 'dark' | 'light' | 'default'; +} + +export interface IThemeSwitch { + options?: IThemeSwitchOptions; + + setAppearance(theme: string, isSaveToLocalStorage: boolean, isSetDispatchEvent: boolean): void; +} diff --git a/src/plugins/theme-switch/types.ts b/src/plugins/theme-switch/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/theme-switch/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/toggle-count/index.ts b/src/plugins/toggle-count/index.ts new file mode 100644 index 0000000..3345438 --- /dev/null +++ b/src/plugins/toggle-count/index.ts @@ -0,0 +1,127 @@ +/* + * HSToggleCount + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { IToggleCountOptions, IToggleCount } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSToggleCount extends HSBasePlugin implements IToggleCount { + private readonly target: HTMLInputElement | null; + private readonly min: number | null; + private readonly max: number | null; + private readonly duration: number | null; + private isChecked: boolean; + + constructor(el: HTMLElement, options?: IToggleCountOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-toggle-count'); + const dataOptions: IToggleCountOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + + this.target = concatOptions?.target + ? typeof concatOptions?.target === 'string' + ? (document.querySelector(concatOptions.target) as HTMLInputElement) + : concatOptions.target + : null; + this.min = concatOptions?.min || 0; + this.max = concatOptions?.max || 0; + this.duration = concatOptions?.duration || 700; + + this.isChecked = (this.target as HTMLInputElement).checked || false; + + if (this.target) this.init(); + } + + private init() { + this.createCollection(window.$hsToggleCountCollection, this); + + if (this.isChecked) this.el.innerText = String(this.max); + + this.target.addEventListener('change', () => { + this.isChecked = !this.isChecked; + + this.toggle(); + }); + } + + private toggle() { + if (this.isChecked) this.countUp(); + else this.countDown(); + } + + private animate(from: number, to: number) { + let startTimestamp = 0; + + const step = (timestamp: number) => { + if (!startTimestamp) startTimestamp = timestamp; + const progress = Math.min( + (timestamp - startTimestamp) / this.duration, + 1, + ); + + this.el.innerText = String(Math.floor(progress * (to - from) + from)); + + if (progress < 1) window.requestAnimationFrame(step); + }; + + window.requestAnimationFrame(step); + } + + // Public methods + public countUp() { + this.animate(this.min, this.max); + } + + public countDown() { + this.animate(this.max, this.min); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsToggleCountCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all toggle password +declare global { + interface Window { + $hsToggleCountCollection: { + id: number; + element: HSToggleCount; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsToggleCountCollection) window.$hsToggleCountCollection = []; + + document + .querySelectorAll('[data-hs-toggle-count]:not(.--prevent-on-load-init)') + .forEach((el: HTMLElement) => new HSToggleCount(el)); + + // Uncomment for debug + // console.log('Toggle count collection:', window.$hsToggleCountCollection); +}); + +module.exports.HSToggleCount = HSToggleCount; + +export default HSToggleCount; diff --git a/src/plugins/toggle-count/interfaces.ts b/src/plugins/toggle-count/interfaces.ts new file mode 100644 index 0000000..713480e --- /dev/null +++ b/src/plugins/toggle-count/interfaces.ts @@ -0,0 +1,14 @@ +export interface IToggleCountOptions { + target: string | HTMLInputElement; + min: number; + max: number; + duration: number; +} + +export interface IToggleCount { + options?: IToggleCountOptions; + + countUp(): void; + + countDown(): void; +} diff --git a/src/plugins/toggle-count/types.ts b/src/plugins/toggle-count/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/toggle-count/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/toggle-password/index.ts b/src/plugins/toggle-password/index.ts new file mode 100644 index 0000000..aa61053 --- /dev/null +++ b/src/plugins/toggle-password/index.ts @@ -0,0 +1,182 @@ +/* + * HSTogglePassword + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ITogglePasswordOptions, ITogglePassword } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +class HSTogglePassword + extends HSBasePlugin + implements ITogglePassword { + private readonly target: + | string + | string[] + | HTMLInputElement + | HTMLInputElement[] + | null; + private isShown: boolean; + private isMultiple: boolean; + private eventType: string; + + constructor(el: HTMLElement, options?: ITogglePasswordOptions) { + super(el, options); + + const data = el.getAttribute('data-hs-toggle-password'); + const dataOptions: ITogglePasswordOptions = data ? JSON.parse(data) : {}; + const concatOptions = { + ...dataOptions, + ...options, + }; + const targets: HTMLInputElement[] = []; + if (concatOptions?.target && typeof concatOptions?.target === 'string') { + const ids = concatOptions?.target.split(','); + ids.forEach((id) => { + targets.push(document.querySelector(id) as HTMLInputElement); + }); + } else if ( + concatOptions?.target && + typeof concatOptions?.target === 'object' + ) { + (concatOptions.target as string[]).forEach((el) => + targets.push(document.querySelector(el)), + ); + } else { + (concatOptions.target as HTMLInputElement[]).forEach((el) => + targets.push(el), + ); + } + + this.target = targets; + this.isShown = this.el.hasAttribute('type') + ? (this.el as HTMLInputElement).checked + : false; + this.eventType = this.checkIfFormElement(this.el) ? 'change' : 'click'; + this.isMultiple = + this.target.length > 1 && + !!this.el.closest('[data-hs-toggle-password-group]'); + + if (this.target) this.init(); + } + + private init() { + this.createCollection(window.$hsTogglePasswordCollection, this); + + if (!this.isShown) { + this.hide(); + } else { + this.show(); + } + + this.el.addEventListener(this.eventType, () => { + if (this.isShown) { + this.hide(); + } else { + this.show(); + } + + this.fireEvent('toggle', this.target); + this.dispatch('toggle.hs.toggle-select', this.el, this.target); + }); + } + + private getMultipleToggles(): HSTogglePassword[] { + const group = this.el.closest('[data-hs-toggle-password-group]'); + const toggles = group.querySelectorAll('[data-hs-toggle-password]'); + const togglesInCollection: HSTogglePassword[] = []; + + toggles.forEach((el: HTMLElement) => { + togglesInCollection.push(HSTogglePassword.getInstance(el) as HSTogglePassword); + }); + + return togglesInCollection; + } + + // Public methods + public show() { + if (this.isMultiple) { + const toggles = this.getMultipleToggles(); + + toggles.forEach((el: HSTogglePassword) => + el ? (el.isShown = true) : false, + ); + + this.el + .closest('[data-hs-toggle-password-group]') + .classList.add('active'); + } else { + this.isShown = true; + + this.el.classList.add('active'); + } + (this.target as HTMLInputElement[]).forEach((el) => { + (el as HTMLInputElement).type = 'text'; + }); + } + + public hide() { + if (this.isMultiple) { + const toggles = this.getMultipleToggles(); + + toggles.forEach((el: HSTogglePassword) => + el ? (el.isShown = false) : false, + ); + + this.el + .closest('[data-hs-toggle-password-group]') + .classList.remove('active'); + } else { + this.isShown = false; + + this.el.classList.remove('active'); + } + (this.target as HTMLInputElement[]).forEach((el) => { + (el as HTMLInputElement).type = 'password'; + }); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance?: boolean) { + const elInCollection = window.$hsTogglePasswordCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection + ? isInstance + ? elInCollection + : elInCollection.element + : null; + } +} + +// Init all toggle password +declare global { + interface Window { + $hsTogglePasswordCollection: { + id: number; + element: HSTogglePassword; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsTogglePasswordCollection) + window.$hsTogglePasswordCollection = []; + + document + .querySelectorAll('[data-hs-toggle-password]:not(.--prevent-on-load-init)') + .forEach((el: HTMLInputElement) => new HSTogglePassword(el)); + + // Uncomment for debug + // console.log('Toggle password collection:', window.$hsTogglePasswordCollection); +}); + +module.exports.HSTogglePassword = HSTogglePassword; + +export default HSTogglePassword; diff --git a/src/plugins/toggle-password/interfaces.ts b/src/plugins/toggle-password/interfaces.ts new file mode 100644 index 0000000..239ed9a --- /dev/null +++ b/src/plugins/toggle-password/interfaces.ts @@ -0,0 +1,11 @@ +export interface ITogglePasswordOptions { + target: string | string[] | HTMLInputElement | HTMLInputElement[]; +} + +export interface ITogglePassword { + options?: ITogglePasswordOptions; + + show(): void; + + hide(): void; +} diff --git a/src/plugins/toggle-password/types.ts b/src/plugins/toggle-password/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/toggle-password/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/plugins/tooltip/index.ts b/src/plugins/tooltip/index.ts new file mode 100644 index 0000000..e8761b4 --- /dev/null +++ b/src/plugins/tooltip/index.ts @@ -0,0 +1,247 @@ +/* + * HSTooltip + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +import { ITooltip } from './interfaces'; + +import HSBasePlugin from '../base-plugin'; + +import { POSITIONS } from '../../constants'; + +import { createPopper, PositioningStrategy, Instance } from '@popperjs/core'; + +class HSTooltip extends HSBasePlugin<{}> implements ITooltip { + private readonly toggle: HTMLElement | null; + public content: HTMLElement | null; + readonly eventMode: string; + private readonly preventPopper: string; + private popperInstance: Instance; + private readonly placement: string; + private readonly strategy: PositioningStrategy; + + constructor(el: HTMLElement, options?: {}, events?: {}) { + super(el, options, events); + + if (this.el) { + this.toggle = this.el.querySelector('.hs-tooltip-toggle') || this.el; + this.content = this.el.querySelector('.hs-tooltip-content'); + this.eventMode = this.getClassProperty(this.el, '--trigger') || 'hover' + this.preventPopper = this.getClassProperty( + this.el, + '--prevent-popper', + 'false', + ); + this.placement = this.getClassProperty(this.el, '--placement'); + this.strategy = this.getClassProperty( + this.el, + '--strategy', + ) as PositioningStrategy; + } + + if (this.el && this.toggle && this.content) this.init(); + } + + private init() { + this.createCollection(window.$hsTooltipCollection, this); + + if (this.eventMode === 'click') { + this.toggle.addEventListener('click', () => this.click()); + } else if (this.eventMode === 'focus') { + this.toggle.addEventListener('click', () => this.focus()); + } else if (this.eventMode === 'hover') { + this.toggle.addEventListener('mouseenter', () => this.enter()); + this.toggle.addEventListener('mouseleave', () => this.leave()); + } + + if (this.preventPopper === 'false') this.buildPopper(); + } + + private enter() { + this.show(); + } + + private leave() { + this.hide(); + } + + private click() { + if (this.el.classList.contains('show')) return false; + + this.show(); + + const handle = () => { + setTimeout(() => { + this.hide(); + + this.toggle.removeEventListener('click', handle, true); + this.toggle.removeEventListener('blur', handle, true); + }); + }; + + this.toggle.addEventListener('click', handle, true); + this.toggle.addEventListener('blur', handle, true); + } + + private focus() { + this.show(); + + const handle = () => { + this.hide(); + + this.toggle.removeEventListener('blur', handle, true); + }; + + this.toggle.addEventListener('blur', handle, true); + } + + private buildPopper() { + this.popperInstance = createPopper(this.toggle, this.content, { + placement: POSITIONS[this.placement] || 'top', + strategy: this.strategy || 'fixed', + modifiers: [ + { + name: 'offset', + options: { + offset: [0, 5], + }, + }, + ], + }); + } + + // Public methods + public show() { + this.content.classList.remove('hidden'); + + if (this.preventPopper === 'false') { + this.popperInstance.setOptions((options) => ({ + ...options, + modifiers: [ + ...options.modifiers, + { + name: 'eventListeners', + enabled: true, + }, + ], + })); + + this.popperInstance.update(); + } + + setTimeout(() => { + this.el.classList.add('show'); + + this.fireEvent('show', this.el); + this.dispatch('show.hs.tooltip', this.el, this.el); + }); + } + + public hide() { + this.el.classList.remove('show'); + + if (this.preventPopper === 'false') { + this.popperInstance.setOptions((options) => ({ + ...options, + modifiers: [ + ...options.modifiers, + { + name: 'eventListeners', + enabled: false, + }, + ], + })); + } + + this.fireEvent('hide', this.el); + this.dispatch('hide.hs.tooltip', this.el, this.el); + + this.afterTransition(this.content, () => { + if (this.el.classList.contains('show')) return false; + + this.content.classList.add('hidden'); + }); + } + + // Static methods + static getInstance(target: HTMLElement | string, isInstance = false) { + const elInCollection = window.$hsTooltipCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + return elInCollection ? (isInstance ? elInCollection : elInCollection.element.el) : null; + } + + static show(target: HTMLElement) { + const elInCollection = window.$hsTooltipCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) { + switch (elInCollection.element.eventMode) { + case 'click': + elInCollection.element.click(); + break; + case 'focus': + elInCollection.element.focus(); + break; + default: + elInCollection.element.enter(); + break; + } + } + } + + static hide(target: HTMLElement) { + const elInCollection = window.$hsTooltipCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) elInCollection.element.hide(); + } + + // Backward compatibility + static on(evt: string, target: HTMLElement, cb: Function) { + const elInCollection = window.$hsTooltipCollection.find( + (el) => + el.element.el === + (typeof target === 'string' ? document.querySelector(target) : target), + ); + + if (elInCollection) elInCollection.element.events[evt] = cb; + } +} + +// Init all tooltips and popovers +declare global { + interface Window { + $hsTooltipCollection: { + id: number; + element: HSTooltip; + }[]; + } +} + +window.addEventListener('load', () => { + if (!window.$hsTooltipCollection) window.$hsTooltipCollection = []; + + document + .querySelectorAll('.hs-tooltip') + .forEach((el: HTMLElement) => new HSTooltip(el)); + + // Uncomment for debug + // console.log('Tooltip collection:', window.$hsTooltipCollection); +}); + +module.exports.HSTooltip = HSTooltip; + +export default HSTooltip; diff --git a/src/plugins/tooltip/interfaces.ts b/src/plugins/tooltip/interfaces.ts new file mode 100644 index 0000000..7bbbe08 --- /dev/null +++ b/src/plugins/tooltip/interfaces.ts @@ -0,0 +1,7 @@ +export interface ITooltip { + options?: {}; + + show(): void; + + hide(): void; +} diff --git a/src/plugins/tooltip/types.ts b/src/plugins/tooltip/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/plugins/tooltip/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/types.ts @@ -0,0 +1 @@ +// no types diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..e46cb48 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,3 @@ +import menuSearchHistory from './menu-search-history'; + +export { menuSearchHistory }; diff --git a/src/utils/interfaces.ts b/src/utils/interfaces.ts new file mode 100644 index 0000000..4169a85 --- /dev/null +++ b/src/utils/interfaces.ts @@ -0,0 +1,9 @@ +export interface IMenuSearchHistory { + historyIndex: number; + + addHistory(index: number): void; + + existsInHistory(index: number): boolean; + + clearHistory(): void; +} diff --git a/src/utils/menu-search-history.ts b/src/utils/menu-search-history.ts new file mode 100644 index 0000000..74b0292 --- /dev/null +++ b/src/utils/menu-search-history.ts @@ -0,0 +1,23 @@ +/* + * Menu Search History + * @version: 2.0.0 + * @author: HTMLStream + * @license: Licensed under MIT (https://preline.co/docs/license.html) + * Copyright 2023 HTMLStream + */ + +export default { + historyIndex: -1, + + addHistory(index: number) { + this.historyIndex = index; + }, + + existsInHistory(index: number) { + return index > this.historyIndex; + }, + + clearHistory() { + this.historyIndex = -1; + }, +}; diff --git a/src/utils/types.ts b/src/utils/types.ts new file mode 100644 index 0000000..37ba73a --- /dev/null +++ b/src/utils/types.ts @@ -0,0 +1 @@ +// no types diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..718206c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "outDir": "./dist/", + "sourceMap": true, + "noImplicitAny": true, + "module": "commonjs", + "target": "es5", + "allowJs": true, + "moduleResolution": "node" + } +} diff --git a/webpack.config.js b/webpack.config.js index c50b476..4432574 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,46 +1,58 @@ -const path = require('path') +const path = require('path'); +const WebpackObfuscator = require('webpack-obfuscator'); -module.exports = { +module.exports = [ + { + name: 'regular', mode: 'production', watch: true, entry: { - 'preline': './src/index.js', - 'components/hs-accordion/hs-accordion': './src/components/hs-accordion/index.js', - 'components/hs-collapse/hs-collapse': './src/components/hs-collapse/index.js', - 'components/hs-dropdown/hs-dropdown': './src/components/hs-dropdown/index.js', - 'components/hs-overlay/hs-overlay': './src/components/hs-overlay/index.js', - 'components/hs-remove-element/hs-remove-element': './src/components/hs-remove-element/index.js', - 'components/hs-scrollspy/hs-scrollspy': './src/components/hs-scrollspy/index.js', - 'components/hs-tabs/hs-tabs': './src/components/hs-tabs/index.js', - 'components/hs-tooltip/hs-tooltip': './src/components/hs-tooltip/index.js' - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - library: { - type: 'umd' - } + index: './src/index.ts', + accordion: './src/plugins/accordion/index.ts', + 'bunch-check': './src/plugins/bunch-check/index.ts', + carousel: './src/plugins/carousel/index.ts', + collapse: './src/plugins/collapse/index.ts', + 'copy-markup': './src/plugins/copy-markup/index.ts', + dropdown: './src/plugins/dropdown/index.ts', + 'input-mask': './src/plugins/input-mask/index.ts', + 'input-number': './src/plugins/input-number/index.ts', + overlay: './src/plugins/overlay/index.ts', + 'pin-input': './src/plugins/pin-input/index.ts', + 'remove-element': './src/plugins/remove-element/index.ts', + scrollspy: './src/plugins/scrollspy/index.ts', + select: './src/plugins/select/index.ts', + stepper: './src/plugins/stepper/index.ts', + 'strong-password': './src/plugins/strong-password/index.ts', + tabs: './src/plugins/tabs/index.ts', + 'toggle-count': './src/plugins/toggle-count/index.ts', + 'toggle-password': './src/plugins/toggle-password/index.ts', + tooltip: './src/plugins/tooltip/index.ts', }, module: { - rules: [ - { - test: /\.js$/, - enforce: 'pre', - use: ['source-map-loader'], - }, - { - test: /\.js$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env'] - } - } - } - ] + rules: [ + { test: /\.ts?$/, enforce: 'pre', use: ['source-map-loader'] }, + { test: /\.ts?$/, use: 'ts-loader', exclude: /node_modules/ } + ], + }, + resolve: { extensions: ['.ts', '.js'] }, + output: { + path: path.resolve(__dirname, 'dist'), + filename: '[name].js', + library: { type: 'umd' }, }, - resolve: { - extensions: ['', '.js'] + }, + { + name: 'obfuscate', + mode: 'production', + watch: true, + entry: './dist/index.js', + output: { + path: path.resolve(__dirname, 'live'), + filename: 'index.js', + library: { type: 'umd' }, }, -} \ No newline at end of file + plugins: [ + new WebpackObfuscator({ rotateStringArray: true }) + ], + } +];