bootstrap-italia 2.12.1 → 2.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.EN.md +1 -1
- package/README.md +1 -1
- package/dist/bootstrap-italia.esm.js +1 -1
- package/dist/css/bootstrap-italia.min.css +9 -1
- package/dist/css/bootstrap-italia.min.css.map +1 -1
- package/dist/js/bootstrap-italia.bundle.min.js +19 -23
- package/dist/js/bootstrap-italia.min.js +18 -2
- package/dist/plugins/accept-overlay.js +19 -9
- package/dist/plugins/accept-overlay.js.map +1 -1
- package/dist/plugins/accordion.js +19 -24
- package/dist/plugins/accordion.js.map +1 -1
- package/dist/plugins/alert.js +67 -2
- package/dist/plugins/alert.js.map +1 -1
- package/dist/plugins/{backToTop.js → back-to-top.js} +14 -5
- package/dist/plugins/back-to-top.js.map +1 -0
- package/dist/plugins/base-component.js +91 -0
- package/dist/plugins/base-component.js.map +1 -0
- package/dist/plugins/button.js +58 -2
- package/dist/plugins/button.js.map +1 -1
- package/dist/plugins/carousel-bi.js +19 -9
- package/dist/plugins/carousel-bi.js.map +1 -1
- package/dist/plugins/carousel.js +445 -2
- package/dist/plugins/carousel.js.map +1 -1
- package/dist/plugins/collapse.js +273 -2
- package/dist/plugins/collapse.js.map +1 -1
- package/dist/plugins/cookiebar.js +39 -52
- package/dist/plugins/cookiebar.js.map +1 -1
- package/dist/plugins/dimmer.js +19 -8
- package/dist/plugins/dimmer.js.map +1 -1
- package/dist/plugins/dom/data.js +61 -0
- package/dist/plugins/dom/data.js.map +1 -0
- package/dist/plugins/dom/event-handler.js +296 -0
- package/dist/plugins/dom/event-handler.js.map +1 -0
- package/dist/plugins/dom/manipulator.js +76 -0
- package/dist/plugins/dom/manipulator.js.map +1 -0
- package/dist/plugins/dom/selector-engine.js +82 -0
- package/dist/plugins/dom/selector-engine.js.map +1 -0
- package/dist/plugins/dropdown.js +433 -2
- package/dist/plugins/dropdown.js.map +1 -1
- package/dist/plugins/fonts-loader.js +9 -1
- package/dist/plugins/fonts-loader.js.map +1 -1
- package/dist/plugins/form-validate.js +22 -8
- package/dist/plugins/form-validate.js.map +1 -1
- package/dist/plugins/forward.js +21 -18
- package/dist/plugins/forward.js.map +1 -1
- package/dist/plugins/header-sticky.js +11 -2
- package/dist/plugins/header-sticky.js.map +1 -1
- package/dist/plugins/history-back.js +17 -17
- package/dist/plugins/history-back.js.map +1 -1
- package/dist/plugins/init.js +9 -0
- package/dist/plugins/init.js.map +1 -1
- package/dist/plugins/input-label.js +14 -3
- package/dist/plugins/input-label.js.map +1 -1
- package/dist/plugins/input-number.js +13 -4
- package/dist/plugins/input-number.js.map +1 -1
- package/dist/plugins/input-password.js +48 -37
- package/dist/plugins/input-password.js.map +1 -1
- package/dist/plugins/input-search-autocomplete.js +9 -11
- package/dist/plugins/input-search-autocomplete.js.map +1 -1
- package/dist/plugins/input.js +12 -3
- package/dist/plugins/input.js.map +1 -1
- package/dist/plugins/list.js +23 -12
- package/dist/plugins/list.js.map +1 -1
- package/dist/plugins/masonry.js +29 -29
- package/dist/plugins/masonry.js.map +1 -1
- package/dist/plugins/modal.js +358 -2
- package/dist/plugins/modal.js.map +1 -1
- package/dist/plugins/navbar-collapsible.js +55 -45
- package/dist/plugins/navbar-collapsible.js.map +1 -1
- package/dist/plugins/navscroll.js +16 -23
- package/dist/plugins/navscroll.js.map +1 -1
- package/dist/plugins/notification.js +34 -23
- package/dist/plugins/notification.js.map +1 -1
- package/dist/plugins/offcanvas.js +259 -2
- package/dist/plugins/offcanvas.js.map +1 -1
- package/dist/plugins/popover.js +76 -2
- package/dist/plugins/popover.js.map +1 -1
- package/dist/plugins/progress-donut.js +19 -12
- package/dist/plugins/progress-donut.js.map +1 -1
- package/dist/plugins/scrollspy.js +273 -2
- package/dist/plugins/scrollspy.js.map +1 -1
- package/dist/plugins/select-autocomplete.js +10 -1
- package/dist/plugins/select-autocomplete.js.map +1 -1
- package/dist/plugins/sticky.js +21 -18
- package/dist/plugins/sticky.js.map +1 -1
- package/dist/plugins/tab.js +244 -27
- package/dist/plugins/tab.js.map +1 -1
- package/dist/plugins/toast.js +203 -2
- package/dist/plugins/toast.js.map +1 -1
- package/dist/plugins/tooltip.js +602 -2
- package/dist/plugins/tooltip.js.map +1 -1
- package/dist/plugins/track-focus.js +8 -0
- package/dist/plugins/track-focus.js.map +1 -1
- package/dist/plugins/transfer.js +11 -16
- package/dist/plugins/transfer.js.map +1 -1
- package/dist/plugins/upload-dragdrop.js +13 -4
- package/dist/plugins/upload-dragdrop.js.map +1 -1
- package/dist/plugins/util/backdrop.js +155 -0
- package/dist/plugins/util/backdrop.js.map +1 -0
- package/dist/plugins/util/component-functions.js +38 -0
- package/dist/plugins/util/component-functions.js.map +1 -0
- package/dist/plugins/util/config.js +70 -0
- package/dist/plugins/util/config.js.map +1 -0
- package/dist/plugins/util/cookies.js +8 -0
- package/dist/plugins/util/cookies.js.map +1 -1
- package/dist/plugins/util/device.js +0 -3
- package/dist/plugins/util/device.js.map +1 -1
- package/dist/plugins/util/dom.js +8 -0
- package/dist/plugins/util/dom.js.map +1 -1
- package/dist/plugins/util/focustrap.js +121 -0
- package/dist/plugins/util/focustrap.js.map +1 -0
- package/dist/plugins/util/index.js +280 -0
- package/dist/plugins/util/index.js.map +1 -0
- package/dist/plugins/util/observer.js +8 -0
- package/dist/plugins/util/observer.js.map +1 -1
- package/dist/plugins/util/on-document-scroll.js +20 -9
- package/dist/plugins/util/on-document-scroll.js.map +1 -1
- package/dist/plugins/util/pageScroll.js +8 -0
- package/dist/plugins/util/pageScroll.js.map +1 -1
- package/dist/plugins/util/sanitizer.js +115 -0
- package/dist/plugins/util/sanitizer.js.map +1 -0
- package/dist/plugins/util/scrollbar.js +120 -0
- package/dist/plugins/util/scrollbar.js.map +1 -0
- package/dist/plugins/util/swipe.js +150 -0
- package/dist/plugins/util/swipe.js.map +1 -0
- package/dist/plugins/util/template-factory.js +166 -0
- package/dist/plugins/util/template-factory.js.map +1 -0
- package/dist/plugins/util/tween.js +10 -1
- package/dist/plugins/util/tween.js.map +1 -1
- package/dist/plugins/util/youtube-video.js +12 -21
- package/dist/plugins/util/youtube-video.js.map +1 -1
- package/dist/plugins/videoplayer.js +19 -8
- package/dist/plugins/videoplayer.js.map +1 -1
- package/dist/version.js +10 -3
- package/dist/version.js.map +1 -1
- package/package.json +6 -7
- package/src/js/bootstrap-italia.entry.js +8 -0
- package/src/js/bootstrap-italia.esm.js +9 -1
- package/src/js/icons.js +8 -0
- package/src/js/load-plugin.js +8 -0
- package/src/js/plugins/accept-overlay.js +18 -10
- package/src/js/plugins/accordion.js +16 -22
- package/src/js/plugins/alert.js +66 -2
- package/src/js/plugins/{backToTop.js → back-to-top.js} +12 -4
- package/src/js/plugins/base-component.js +89 -0
- package/src/js/plugins/button.js +57 -2
- package/src/js/plugins/carousel-bi.js +18 -9
- package/src/js/plugins/carousel.js +444 -2
- package/src/js/plugins/collapse.js +272 -2
- package/src/js/plugins/cookiebar.js +37 -60
- package/src/js/plugins/dimmer.js +18 -8
- package/src/js/plugins/dom/data.js +58 -0
- package/src/js/plugins/dom/event-handler.js +301 -0
- package/src/js/plugins/dom/manipulator.js +75 -0
- package/src/js/plugins/dom/selector-engine.js +80 -0
- package/src/js/plugins/dropdown.js +432 -2
- package/src/js/plugins/fonts-loader.js +9 -1
- package/src/js/plugins/form-validate.js +21 -8
- package/src/js/plugins/form.js +11 -3
- package/src/js/plugins/forward.js +18 -16
- package/src/js/plugins/header-sticky.js +10 -2
- package/src/js/plugins/history-back.js +14 -14
- package/src/js/plugins/init.js +8 -0
- package/src/js/plugins/input-label.js +13 -3
- package/src/js/plugins/input-number.js +12 -4
- package/src/js/plugins/input-password.js +46 -36
- package/src/js/plugins/input-search-autocomplete.js +9 -13
- package/src/js/plugins/input.js +11 -3
- package/src/js/plugins/list.js +22 -12
- package/src/js/plugins/masonry.js +26 -27
- package/src/js/plugins/modal.js +357 -2
- package/src/js/plugins/navbar-collapsible.js +55 -53
- package/src/js/plugins/navscroll.js +16 -23
- package/src/js/plugins/notification.js +33 -23
- package/src/js/plugins/offcanvas.js +258 -2
- package/src/js/plugins/popover.js +75 -2
- package/src/js/plugins/progress-donut.js +17 -13
- package/src/js/plugins/scrollspy.js +272 -2
- package/src/js/plugins/select-autocomplete.js +9 -1
- package/src/js/plugins/sticky.js +21 -23
- package/src/js/plugins/tab.js +243 -27
- package/src/js/plugins/toast.js +206 -2
- package/src/js/plugins/tooltip.js +601 -2
- package/src/js/plugins/track-focus.js +8 -0
- package/src/js/plugins/transfer.js +12 -24
- package/src/js/plugins/upload-dragdrop.js +12 -4
- package/src/js/plugins/util/backdrop.js +153 -0
- package/src/js/plugins/util/component-functions.js +36 -0
- package/src/js/plugins/util/config.js +68 -0
- package/src/js/plugins/util/cookies.js +8 -0
- package/src/js/plugins/util/device.js +0 -3
- package/src/js/plugins/util/dom.js +8 -0
- package/src/js/plugins/util/focustrap.js +119 -0
- package/src/js/plugins/util/index.js +317 -0
- package/src/js/plugins/util/observer.js +8 -0
- package/src/js/plugins/util/on-document-scroll.js +19 -9
- package/src/js/plugins/util/pageScroll.js +8 -0
- package/src/js/plugins/util/sanitizer.js +112 -0
- package/src/js/plugins/util/scrollbar.js +118 -0
- package/src/js/plugins/util/swipe.js +148 -0
- package/src/js/plugins/util/template-factory.js +164 -0
- package/src/js/plugins/util/tween.js +9 -1
- package/src/js/plugins/util/youtube-video.js +12 -21
- package/src/js/plugins/videoplayer.js +18 -8
- package/src/js/version.js +10 -3
- package/src/scss/base/_containers.scss +41 -0
- package/src/scss/base/_functions.scss +373 -0
- package/src/scss/base/_helpers.scss +10 -0
- package/src/scss/base/_maps.scss +54 -0
- package/src/scss/base/_mixins.scss +44 -0
- package/src/scss/base/_reboot.scss +590 -0
- package/src/scss/base/_root.scss +73 -0
- package/src/scss/base/_transitions.scss +27 -0
- package/src/scss/base/_utilities.scss +742 -0
- package/src/scss/base/_variables.scss +2123 -0
- package/src/scss/base/_version.scss +3 -0
- package/src/scss/base/helpers/_clearfix.scss +3 -0
- package/src/scss/base/helpers/_color-bg.scss +10 -0
- package/src/scss/base/helpers/_colored-links.scss +16 -0
- package/src/scss/base/helpers/_position.scss +36 -0
- package/src/scss/base/helpers/_ratio.scss +26 -0
- package/src/scss/base/helpers/_stacks.scss +15 -0
- package/src/scss/base/helpers/_stretched-link.scss +15 -0
- package/src/scss/base/helpers/_text-truncation.scss +7 -0
- package/src/scss/base/helpers/_visually-hidden.scss +8 -0
- package/src/scss/base/helpers/_vr.scss +8 -0
- package/src/scss/base/mixins/_alert.scss +15 -0
- package/src/scss/base/mixins/_backdrop.scss +18 -0
- package/src/scss/base/mixins/_banner.scss +11 -0
- package/src/scss/base/mixins/_border-radius.scss +77 -0
- package/src/scss/base/mixins/_box-shadow.scss +18 -0
- package/src/scss/base/mixins/_breakpoints.scss +127 -0
- package/src/scss/base/mixins/_buttons.scss +141 -0
- package/src/scss/base/mixins/_caret.scss +64 -0
- package/src/scss/base/mixins/_clearfix.scss +9 -0
- package/src/scss/base/mixins/_color-scheme.scss +7 -0
- package/src/scss/base/mixins/_container.scss +11 -0
- package/src/scss/base/mixins/_deprecate.scss +10 -0
- package/src/scss/base/mixins/_forms.scss +152 -0
- package/src/scss/base/mixins/_gradients.scss +47 -0
- package/src/scss/base/mixins/_grid.scss +151 -0
- package/src/scss/base/mixins/_image.scss +15 -0
- package/src/scss/base/mixins/_list-group.scss +24 -0
- package/src/scss/base/mixins/_lists.scss +7 -0
- package/src/scss/base/mixins/_pagination.scss +10 -0
- package/src/scss/base/mixins/_reset-text.scss +17 -0
- package/src/scss/base/mixins/_resize.scss +6 -0
- package/src/scss/base/mixins/_table-variants.scss +24 -0
- package/src/scss/base/mixins/_text-truncate.scss +8 -0
- package/src/scss/base/mixins/_transition.scss +26 -0
- package/src/scss/base/mixins/_utilities.scss +96 -0
- package/src/scss/base/mixins/_visually-hidden.scss +29 -0
- package/src/scss/base/utilities/_api.scss +45 -0
- package/src/scss/base/vendor/_rfs.scss +337 -0
- package/src/scss/bootstrap-italia.scss +137 -156
- package/src/scss/{custom → components}/_accept-overlay.scss +2 -1
- package/src/scss/components/_accordion.scss +297 -0
- package/src/scss/components/_badge.scss +60 -0
- package/src/scss/components/_breadcrumb.scss +95 -0
- package/src/scss/components/_button-group.scss +143 -0
- package/src/scss/components/_buttons.scss +467 -0
- package/src/scss/{custom → components}/_card.scss +228 -0
- package/src/scss/{custom → components}/_carousel.scss +225 -3
- package/src/scss/components/_dropdown.scss +480 -0
- package/src/scss/{custom → components}/_grid.scss +33 -0
- package/src/scss/{custom → components}/_gridlist.scss +7 -0
- package/src/scss/{custom → components}/_hero.scss +23 -57
- package/src/scss/components/_images.scss +48 -0
- package/src/scss/{custom → components}/_linklist.scss +0 -1
- package/src/scss/components/_list-group.scss +190 -0
- package/src/scss/components/_modal.scss +475 -0
- package/src/scss/components/_nav.scss +169 -0
- package/src/scss/components/_navbar.scss +274 -0
- package/src/scss/components/_offcanvas.scss +144 -0
- package/src/scss/components/_pagination.scss +108 -0
- package/src/scss/components/_placeholders.scss +51 -0
- package/src/scss/components/_popover.scss +298 -0
- package/src/scss/components/_progress-bars.scss +126 -0
- package/src/scss/{custom → components}/_steppers.scss +2 -2
- package/src/scss/{custom → components}/_tab.scss +3 -7
- package/src/scss/components/_tables.scss +171 -0
- package/src/scss/components/_toasts.scss +73 -0
- package/src/scss/{custom → components}/_toolbar.scss +19 -12
- package/src/scss/components/_tooltip.scss +139 -0
- package/src/scss/{custom → components}/_type.scss +92 -0
- package/src/scss/forms/_accessible-autocomplete.scss +188 -0
- package/src/scss/forms/_floating-labels.scss +75 -0
- package/src/scss/forms/_form-check.scss +163 -0
- package/src/scss/forms/_form-control.scss +201 -0
- package/src/scss/forms/_form-range.scss +95 -0
- package/src/scss/{custom → forms}/_form-select.scss +72 -0
- package/src/scss/forms/_form-text.scss +11 -0
- package/src/scss/{custom → forms}/_forms.scss +8 -12
- package/src/scss/forms/_input-group.scss +129 -0
- package/src/scss/forms/_labels.scss +36 -0
- package/src/scss/forms/_validation.scss +12 -0
- package/src/scss/utilities/icons.scss +5 -5
- package/types/index.d.ts +4 -1
- package/types/plugins/video.ts +33 -0
- package/dist/plugins/backToTop.js.map +0 -1
- package/src/scss/_functions.scss +0 -38
- package/src/scss/_variables.scss +0 -639
- package/src/scss/custom/_accessible-autocomplete.scss +0 -30
- package/src/scss/custom/_accordion.scss +0 -176
- package/src/scss/custom/_badge.scss +0 -29
- package/src/scss/custom/_breadcrumb.scss +0 -51
- package/src/scss/custom/_buttons.scss +0 -235
- package/src/scss/custom/_componente-base.scss +0 -6
- package/src/scss/custom/_dropdown.scss +0 -248
- package/src/scss/custom/_form-datepicker.scss +0 -604
- package/src/scss/custom/_images.scss +0 -10
- package/src/scss/custom/_modal.scss +0 -248
- package/src/scss/custom/_popover.scss +0 -106
- package/src/scss/custom/_progress-bars.scss +0 -70
- package/src/scss/custom/_tables.scss +0 -11
- package/src/scss/custom/_timepicker.scss +0 -252
- package/src/scss/custom/_tooltip.scss +0 -33
- package/src/scss/custom/_version.scss +0 -3
- package/src/scss/custom/mixins/_buttons.scss +0 -67
- package/src/scss/utilities/colors_vars.scss +0 -426
- /package/src/scss/{custom → base}/mixins/_text-emphasis.scss +0 -0
- /package/src/scss/{custom → components}/_affix.scss +0 -0
- /package/src/scss/{custom → components}/_alert.scss +0 -0
- /package/src/scss/{custom → components}/_anchor.scss +0 -0
- /package/src/scss/{custom → components}/_avatar.scss +0 -0
- /package/src/scss/{custom → components}/_back-to-top.scss +0 -0
- /package/src/scss/{custom → components}/_bottomnav.scss +0 -0
- /package/src/scss/{custom → components}/_calendar.scss +0 -0
- /package/src/scss/{custom → components}/_callout.scss +0 -0
- /package/src/scss/{custom → components}/_chips.scss +0 -0
- /package/src/scss/{custom → components}/_code.scss +0 -0
- /package/src/scss/{custom → components}/_cookiebar.scss +0 -0
- /package/src/scss/{custom → components}/_dimmer.scss +0 -0
- /package/src/scss/{custom → components}/_figcaption.scss +0 -0
- /package/src/scss/{custom → components}/_font.scss +0 -0
- /package/src/scss/{custom → components}/_footer.scss +0 -0
- /package/src/scss/{custom → components}/_forward.scss +0 -0
- /package/src/scss/{custom → components}/_header.scss +0 -0
- /package/src/scss/{custom → components}/_headercenter.scss +0 -0
- /package/src/scss/{custom → components}/_headercentertheme.scss +0 -0
- /package/src/scss/{custom → components}/_headernavbar.scss +0 -0
- /package/src/scss/{custom → components}/_headernavbartheme.scss +0 -0
- /package/src/scss/{custom → components}/_headerslim.scss +0 -0
- /package/src/scss/{custom → components}/_headerslimtheme.scss +0 -0
- /package/src/scss/{custom → components}/_imgresponsive.scss +0 -0
- /package/src/scss/{custom → components}/_list.scss +0 -0
- /package/src/scss/{custom → components}/_map.scss +0 -0
- /package/src/scss/{custom → components}/_masonry-loader.scss +0 -0
- /package/src/scss/{custom → components}/_megamenu.scss +0 -0
- /package/src/scss/{custom → components}/_navigation.scss +0 -0
- /package/src/scss/{custom → components}/_navigationtheme.scss +0 -0
- /package/src/scss/{custom → components}/_navscroll.scss +0 -0
- /package/src/scss/{custom → components}/_navscrolltheme.scss +0 -0
- /package/src/scss/{custom → components}/_notifications.scss +0 -0
- /package/src/scss/{custom → components}/_overlay-panel.scss +0 -0
- /package/src/scss/{custom → components}/_page-scroll.scss +0 -0
- /package/src/scss/{custom → components}/_pager.scss +0 -0
- /package/src/scss/{custom → components}/_point-list.scss +0 -0
- /package/src/scss/{custom → components}/_print.scss +0 -0
- /package/src/scss/{custom → components}/_progress-donuts.scss +0 -0
- /package/src/scss/{custom → components}/_progress-spinners.scss +0 -0
- /package/src/scss/{custom → components}/_rating-list.scss +0 -0
- /package/src/scss/{custom → components}/_rating.scss +0 -0
- /package/src/scss/{custom → components}/_sections.scss +0 -0
- /package/src/scss/{custom → components}/_sidebar.scss +0 -0
- /package/src/scss/{custom → components}/_sidebarthemes.scss +0 -0
- /package/src/scss/{custom → components}/_skiplinks.scss +0 -0
- /package/src/scss/{custom → components}/_sticky.scss +0 -0
- /package/src/scss/{custom → components}/_thumbnav.scss +0 -0
- /package/src/scss/{custom → components}/_timeline.scss +0 -0
- /package/src/scss/{custom → components}/_videoplayer.scss +0 -0
- /package/src/scss/{custom → forms}/_autocomplete.scss +0 -0
- /package/src/scss/{custom → forms}/_form-input-file.scss +0 -0
- /package/src/scss/{custom → forms}/_form-input-number.scss +0 -0
- /package/src/scss/{custom → forms}/_form-input-upload.scss +0 -0
- /package/src/scss/{custom → forms}/_form-password.scss +0 -0
- /package/src/scss/{custom → forms}/_form-toggles.scss +0 -0
- /package/src/scss/{custom → forms}/_form-transfer.scss +0 -0
- /package/src/scss/{custom → forms}/_just-validate.scss +0 -0
- /package/types/plugins/{backToTop.d.ts → back-to-top.d.ts} +0 -0
package/dist/plugins/collapse.js
CHANGED
|
@@ -1,6 +1,277 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { getSelectorFromElement, reflow, getElementFromSelector, getElement } from './util/index.js';
|
|
2
|
+
import EventHandler from './dom/event-handler.js';
|
|
3
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
4
|
+
import BaseComponent from './base-component.js';
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* --------------------------------------------------------------------------
|
|
8
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
9
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
10
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
11
|
+
* This a fork of Bootstrap: Initial license and original file name below
|
|
12
|
+
* Bootstrap (v5.2.3): collapse.js
|
|
13
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
14
|
+
* --------------------------------------------------------------------------
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Constants
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
const NAME = 'collapse';
|
|
23
|
+
const DATA_KEY = 'bs.collapse';
|
|
24
|
+
const EVENT_KEY = `.${DATA_KEY}`;
|
|
25
|
+
const DATA_API_KEY = '.data-api';
|
|
26
|
+
|
|
27
|
+
const EVENT_SHOW = `show${EVENT_KEY}`;
|
|
28
|
+
const EVENT_SHOWN = `shown${EVENT_KEY}`;
|
|
29
|
+
const EVENT_HIDE = `hide${EVENT_KEY}`;
|
|
30
|
+
const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
|
|
31
|
+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
|
|
32
|
+
|
|
33
|
+
const CLASS_NAME_SHOW = 'show';
|
|
34
|
+
const CLASS_NAME_COLLAPSE = 'collapse';
|
|
35
|
+
const CLASS_NAME_COLLAPSING = 'collapsing';
|
|
36
|
+
const CLASS_NAME_COLLAPSED = 'collapsed';
|
|
37
|
+
const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
|
|
38
|
+
const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
|
|
39
|
+
|
|
40
|
+
const WIDTH = 'width';
|
|
41
|
+
const HEIGHT = 'height';
|
|
42
|
+
|
|
43
|
+
const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
|
|
44
|
+
const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
|
|
45
|
+
|
|
46
|
+
const Default = {
|
|
47
|
+
parent: null,
|
|
48
|
+
toggle: true,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const DefaultType = {
|
|
52
|
+
parent: '(null|element)',
|
|
53
|
+
toggle: 'boolean',
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Class definition
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
class Collapse extends BaseComponent {
|
|
61
|
+
constructor(element, config) {
|
|
62
|
+
super(element, config);
|
|
63
|
+
|
|
64
|
+
this._isTransitioning = false;
|
|
65
|
+
this._triggerArray = [];
|
|
66
|
+
|
|
67
|
+
const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);
|
|
68
|
+
|
|
69
|
+
for (const elem of toggleList) {
|
|
70
|
+
const selector = getSelectorFromElement(elem);
|
|
71
|
+
const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element);
|
|
72
|
+
|
|
73
|
+
if (selector !== null && filterElement.length) {
|
|
74
|
+
this._triggerArray.push(elem);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
this._initializeChildren();
|
|
79
|
+
|
|
80
|
+
if (!this._config.parent) {
|
|
81
|
+
this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (this._config.toggle) {
|
|
85
|
+
this.toggle();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Getters
|
|
90
|
+
static get Default() {
|
|
91
|
+
return Default
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static get DefaultType() {
|
|
95
|
+
return DefaultType
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static get NAME() {
|
|
99
|
+
return NAME
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Public
|
|
103
|
+
toggle() {
|
|
104
|
+
if (this._isShown()) {
|
|
105
|
+
this.hide();
|
|
106
|
+
} else {
|
|
107
|
+
this.show();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
show() {
|
|
112
|
+
if (this._isTransitioning || this._isShown()) {
|
|
113
|
+
return
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
let activeChildren = [];
|
|
117
|
+
|
|
118
|
+
// find active children
|
|
119
|
+
if (this._config.parent) {
|
|
120
|
+
activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)
|
|
121
|
+
.filter((element) => element !== this._element)
|
|
122
|
+
.map((element) => Collapse.getOrCreateInstance(element, { toggle: false }));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (activeChildren.length && activeChildren[0]._isTransitioning) {
|
|
126
|
+
return
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);
|
|
130
|
+
if (startEvent.defaultPrevented) {
|
|
131
|
+
return
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
for (const activeInstance of activeChildren) {
|
|
135
|
+
activeInstance.hide();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const dimension = this._getDimension();
|
|
139
|
+
|
|
140
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE);
|
|
141
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
142
|
+
|
|
143
|
+
this._element.style[dimension] = 0;
|
|
144
|
+
|
|
145
|
+
this._addAriaAndCollapsedClass(this._triggerArray, true);
|
|
146
|
+
this._isTransitioning = true;
|
|
147
|
+
|
|
148
|
+
const complete = () => {
|
|
149
|
+
this._isTransitioning = false;
|
|
150
|
+
|
|
151
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
152
|
+
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
153
|
+
|
|
154
|
+
this._element.style[dimension] = '';
|
|
155
|
+
|
|
156
|
+
EventHandler.trigger(this._element, EVENT_SHOWN);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
|
160
|
+
const scrollSize = `scroll${capitalizedDimension}`;
|
|
161
|
+
|
|
162
|
+
this._queueCallback(complete, this._element, true);
|
|
163
|
+
this._element.style[dimension] = `${this._element[scrollSize]}px`;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
hide() {
|
|
167
|
+
if (this._isTransitioning || !this._isShown()) {
|
|
168
|
+
return
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);
|
|
172
|
+
if (startEvent.defaultPrevented) {
|
|
173
|
+
return
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const dimension = this._getDimension();
|
|
177
|
+
|
|
178
|
+
this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
|
|
179
|
+
|
|
180
|
+
reflow(this._element);
|
|
181
|
+
|
|
182
|
+
this._element.classList.add(CLASS_NAME_COLLAPSING);
|
|
183
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
|
|
184
|
+
|
|
185
|
+
for (const trigger of this._triggerArray) {
|
|
186
|
+
const element = getElementFromSelector(trigger);
|
|
187
|
+
|
|
188
|
+
if (element && !this._isShown(element)) {
|
|
189
|
+
this._addAriaAndCollapsedClass([trigger], false);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
this._isTransitioning = true;
|
|
194
|
+
|
|
195
|
+
const complete = () => {
|
|
196
|
+
this._isTransitioning = false;
|
|
197
|
+
this._element.classList.remove(CLASS_NAME_COLLAPSING);
|
|
198
|
+
this._element.classList.add(CLASS_NAME_COLLAPSE);
|
|
199
|
+
EventHandler.trigger(this._element, EVENT_HIDDEN);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
this._element.style[dimension] = '';
|
|
203
|
+
|
|
204
|
+
this._queueCallback(complete, this._element, true);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
_isShown(element = this._element) {
|
|
208
|
+
return element.classList.contains(CLASS_NAME_SHOW)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Private
|
|
212
|
+
_configAfterMerge(config) {
|
|
213
|
+
config.toggle = Boolean(config.toggle); // Coerce string values
|
|
214
|
+
config.parent = getElement(config.parent);
|
|
215
|
+
return config
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
_getDimension() {
|
|
219
|
+
return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
_initializeChildren() {
|
|
223
|
+
if (!this._config.parent) {
|
|
224
|
+
return
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);
|
|
228
|
+
|
|
229
|
+
for (const element of children) {
|
|
230
|
+
const selected = getElementFromSelector(element);
|
|
231
|
+
|
|
232
|
+
if (selected) {
|
|
233
|
+
this._addAriaAndCollapsedClass([element], this._isShown(selected));
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
_getFirstLevelChildren(selector) {
|
|
239
|
+
const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
|
|
240
|
+
// remove children if greater depth
|
|
241
|
+
return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element))
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
_addAriaAndCollapsedClass(triggerArray, isOpen) {
|
|
245
|
+
if (!triggerArray.length) {
|
|
246
|
+
return
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
for (const element of triggerArray) {
|
|
250
|
+
element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
|
|
251
|
+
element.setAttribute('aria-expanded', isOpen);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Data API implementation
|
|
258
|
+
*/
|
|
259
|
+
|
|
260
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
261
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
|
|
262
|
+
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
|
263
|
+
if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {
|
|
264
|
+
event.preventDefault();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const selector = getSelectorFromElement(this);
|
|
268
|
+
const selectorElements = SelectorEngine.find(selector);
|
|
269
|
+
|
|
270
|
+
for (const element of selectorElements) {
|
|
271
|
+
Collapse.getOrCreateInstance(element, { toggle: false }).toggle();
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
}
|
|
4
275
|
|
|
5
276
|
export { Collapse as default };
|
|
6
277
|
//# sourceMappingURL=collapse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.js","sources":["../../src/js/plugins/collapse.js"],"sourcesContent":["import { default as BSCollapse } from 'bootstrap/js/src/collapse'\n\nclass Collapse extends BSCollapse {}\n\nexport default Collapse\n"],"names":[],"mappings":";;AAEA,MAAM,QAAQ,SAAS,UAAU,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"collapse.js","sources":["../../src/js/plugins/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * This a fork of Bootstrap: Initial license and original file name below\n * Bootstrap (v5.2.3): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getElement, getElementFromSelector, getSelectorFromElement, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * Constants\n */\n\nconst NAME = 'collapse'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]'\n\nconst Default = {\n parent: null,\n toggle: true,\n}\n\nconst DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean',\n}\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config)\n\n this._isTransitioning = false\n this._triggerArray = []\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (const elem of toggleList) {\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector).filter((foundElement) => foundElement === this._element)\n\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem)\n }\n }\n\n this._initializeChildren()\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning || this._isShown()) {\n return\n }\n\n let activeChildren = []\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\n .filter((element) => element !== this._element)\n .map((element) => Collapse.getOrCreateInstance(element, { toggle: false }))\n }\n\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n for (const activeInstance of activeChildren) {\n activeInstance.hide()\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n this._addAriaAndCollapsedClass(this._triggerArray, true)\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n this._queueCallback(complete, this._element, true)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n for (const trigger of this._triggerArray) {\n const element = getElementFromSelector(trigger)\n\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false)\n }\n }\n\n this._isTransitioning = true\n\n const complete = () => {\n this._isTransitioning = false\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n this._queueCallback(complete, this._element, true)\n }\n\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW)\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle) // Coerce string values\n config.parent = getElement(config.parent)\n return config\n }\n\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT\n }\n\n _initializeChildren() {\n if (!this._config.parent) {\n return\n }\n\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)\n\n for (const element of children) {\n const selected = getElementFromSelector(element)\n\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected))\n }\n }\n }\n\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter((element) => !children.includes(element))\n }\n\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return\n }\n\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)\n element.setAttribute('aria-expanded', isOpen)\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\n event.preventDefault()\n }\n\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n for (const element of selectorElements) {\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle()\n }\n })\n}\n\nexport default Collapse\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import { isDisabled, getElementFromSelector, reflow } from '
|
|
3
|
-
import EventHandler from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import { isDisabled, getElementFromSelector, reflow } from './util/index.js';
|
|
3
|
+
import EventHandler from './dom/event-handler.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
8
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
9
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
10
|
+
* --------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
|
|
4
13
|
|
|
5
14
|
/**
|
|
6
15
|
* ------------------------------------------------------------------------
|
|
@@ -13,7 +22,6 @@ const VERSION = '5.0.0';
|
|
|
13
22
|
const DATA_KEY = 'bs.cookiebar';
|
|
14
23
|
const EVENT_KEY = `.${DATA_KEY}`;
|
|
15
24
|
const DATA_API_KEY = '.data-api';
|
|
16
|
-
//const JQUERY_NO_CONFLICT = $.fn[NAME]
|
|
17
25
|
const COOKIE_NAME = 'cookies_consent';
|
|
18
26
|
const COOKIE_VALUE = 'true';
|
|
19
27
|
const COOKIE_EXPIRE = 30;
|
|
@@ -192,27 +200,6 @@ class Cookiebar extends BaseComponent {
|
|
|
192
200
|
this.dispose();
|
|
193
201
|
}
|
|
194
202
|
|
|
195
|
-
// Static
|
|
196
|
-
|
|
197
|
-
/*static _jQueryInterface(config) {
|
|
198
|
-
return this.each(function () {
|
|
199
|
-
const $element = $(this)
|
|
200
|
-
let data = $element.data(DATA_KEY)
|
|
201
|
-
|
|
202
|
-
if (!data) {
|
|
203
|
-
data = new Cookiebar(this)
|
|
204
|
-
$element.data(DATA_KEY, data)
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (typeof config === 'string') {
|
|
208
|
-
if (typeof data[config] === 'undefined') {
|
|
209
|
-
throw new TypeError(`No method named "${config}"`)
|
|
210
|
-
}
|
|
211
|
-
data[config](this)
|
|
212
|
-
}
|
|
213
|
-
})
|
|
214
|
-
}*/
|
|
215
|
-
|
|
216
203
|
static _handleAccept(cookiebarInstance) {
|
|
217
204
|
return function (event) {
|
|
218
205
|
if (event) {
|
|
@@ -258,36 +245,36 @@ class Cookiebar extends BaseComponent {
|
|
|
258
245
|
* ------------------------------------------------------------------------
|
|
259
246
|
*/
|
|
260
247
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
if (isDisabled(this)) {
|
|
269
|
-
return
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
const target = getElementFromSelector(this) || this.closest(`.${NAME}`);
|
|
273
|
-
const instance = Cookiebar.getOrCreateInstance(target);
|
|
274
|
-
instance.accept();
|
|
275
|
-
//Cookiebar._handleAccept(new Cookiebar())
|
|
276
|
-
});
|
|
248
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
249
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_ACCEPT, function (event) {
|
|
250
|
+
if (['A', 'AREA'].includes(this.tagName)) {
|
|
251
|
+
event.preventDefault();
|
|
252
|
+
}
|
|
277
253
|
|
|
278
|
-
|
|
279
|
-
const consent = Cookiebar._getCookieEU();
|
|
280
|
-
if (!consent) {
|
|
281
|
-
if (typeof document === 'undefined') {
|
|
254
|
+
if (isDisabled(this)) {
|
|
282
255
|
return
|
|
283
256
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
|
|
257
|
+
|
|
258
|
+
const target = getElementFromSelector(this) || this.closest(`.${NAME}`);
|
|
259
|
+
const instance = Cookiebar.getOrCreateInstance(target);
|
|
260
|
+
instance.accept();
|
|
261
|
+
//Cookiebar._handleAccept(new Cookiebar())
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
EventHandler.on(window, EVENT_LOAD_DATA_API, function () {
|
|
265
|
+
const consent = Cookiebar._getCookieEU();
|
|
266
|
+
if (!consent) {
|
|
267
|
+
if (typeof document === 'undefined') {
|
|
268
|
+
return
|
|
269
|
+
}
|
|
270
|
+
const cookiebars = document.querySelectorAll(SELECTOR_COOKIE_BAR);
|
|
271
|
+
cookiebars.forEach((bar) => {
|
|
272
|
+
const instance = Cookiebar.getOrCreateInstance(bar);
|
|
273
|
+
instance.show();
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
}
|
|
291
278
|
|
|
292
279
|
export { Cookiebar as default };
|
|
293
280
|
//# sourceMappingURL=cookiebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookiebar.js","sources":["../../src/js/plugins/cookiebar.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport { /*defineJQueryPlugin,*/ isDisabled, getElementFromSelector, reflow } from 'bootstrap/js/src/util/index'\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'cookiebar'\nconst VERSION = '5.0.0'\nconst DATA_KEY = 'bs.cookiebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n//const JQUERY_NO_CONFLICT = $.fn[NAME]\nconst COOKIE_NAME = 'cookies_consent'\nconst COOKIE_VALUE = 'true'\nconst COOKIE_EXPIRE = 30\n\nconst SELECTOR_COOKIE_BAR = '.cookiebar'\nconst SELECTOR_ACCEPT = '[data-bs-accept=\"cookiebar\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_COOKIE_BAR = 'cookiebar'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_FADE = 'fade'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Cookiebar extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_SHOW)\n this._isTransitioning = false\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._showElement()\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideElement(), this._element, isAnimated)\n }\n\n accept(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.defaultPrevented) {\n return\n }\n\n this._setCookieEU()\n\n this.hide()\n //this._removeElement(rootElement)\n //this.dispose()\n }\n\n /*dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }*/\n\n static clearCookie() {\n if (typeof document === 'undefined') {\n return\n }\n document.cookie = COOKIE_NAME + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n }\n\n // Private\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _showElement() {\n const isAnimated = this._isAnimated()\n\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-live', 'polite')\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n this._isTransitioning = false\n }\n\n this._queueCallback(transitionComplete, this._element, isAnimated)\n }\n\n _hideElement() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-live')\n this._isTransitioning = false\n }\n\n _setCookieEU() {\n var exdate = new Date()\n exdate.setDate(exdate.getDate() + COOKIE_EXPIRE)\n var c_value = escape(COOKIE_VALUE) + (COOKIE_EXPIRE == null ? '' : '; expires=' + exdate.toUTCString())\n if (typeof document === 'undefined') {\n return\n }\n document.cookie = COOKIE_NAME + '=' + c_value + '; path=/; SameSite=Strict'\n }\n\n _getRootElement(element) {\n const selector = getElementFromSelector(element)\n let parent = null\n\n if (selector) {\n parent = selector\n }\n\n if (!parent) {\n parent = element.closest(`.${CLASS_NAME_COOKIE_BAR}`) //$(element).closest(`.${CLASS_NAME_COOKIE_BAR}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n /*const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)*/\n\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n //$(element).removeClass(CLASS_NAME_SHOW).attr('aria-hidden', 'true').attr('aria-live', 'off')\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-hidden', 'true')\n element.setAttribute('aria-live', 'off')\n\n //this._destroyElement(element)\n EventHandler.trigger(element, EVENT_CLOSED)\n\n this.dispose()\n }\n\n // Static\n\n /*static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Cookiebar(this)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](this)\n }\n })\n }*/\n\n static _handleAccept(cookiebarInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n cookiebarInstance.close(this)\n }\n }\n\n static _handleConsent(cookiebarInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n cookiebarInstance.close(this)\n }\n }\n\n static _getCookieEU() {\n if (typeof document === 'undefined') {\n return\n }\n var i,\n x,\n y,\n ARRcookies = document.cookie.split(';')\n for (i = 0; i < ARRcookies.length; i++) {\n x = ARRcookies[i].substring(0, ARRcookies[i].indexOf('='))\n y = ARRcookies[i].substring(ARRcookies[i].indexOf('=') + 1)\n x = x.replace(/^\\s+|\\s+$/g, '')\n if (x == COOKIE_NAME) {\n return unescape(y)\n }\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n//$(document).on(EVENT_CLICK_DATA_API, SELECTOR_ACCEPT, Cookiebar._handleAccept(new Cookiebar()))\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_ACCEPT, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${NAME}`)\n const instance = Cookiebar.getOrCreateInstance(target)\n instance.accept()\n //Cookiebar._handleAccept(new Cookiebar())\n})\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, function () {\n const consent = Cookiebar._getCookieEU()\n if (!consent) {\n if (typeof document === 'undefined') {\n return\n }\n const cookiebars = document.querySelectorAll(SELECTOR_COOKIE_BAR)\n cookiebars.forEach((bar) => {\n const instance = Cookiebar.getOrCreateInstance(bar)\n instance.show()\n })\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Cookiebar to jQuery only if jQuery is present\n */\n\n//defineJQueryPlugin(Cookiebar)\n\nexport default Cookiebar\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cookiebar.js","sources":["../../src/js/plugins/cookiebar.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\n\nimport { isDisabled, getElementFromSelector, reflow } from './util/index'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'cookiebar'\nconst VERSION = '5.0.0'\nconst DATA_KEY = 'bs.cookiebar'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst COOKIE_NAME = 'cookies_consent'\nconst COOKIE_VALUE = 'true'\nconst COOKIE_EXPIRE = 30\n\nconst SELECTOR_COOKIE_BAR = '.cookiebar'\nconst SELECTOR_ACCEPT = '[data-bs-accept=\"cookiebar\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_COOKIE_BAR = 'cookiebar'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_FADE = 'fade'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Cookiebar extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._isShown = this._element.classList.contains(CLASS_NAME_SHOW)\n this._isTransitioning = false\n }\n\n // Getters\n static get NAME() {\n return NAME\n }\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._showElement()\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideElement(), this._element, isAnimated)\n }\n\n accept(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.defaultPrevented) {\n return\n }\n\n this._setCookieEU()\n\n this.hide()\n //this._removeElement(rootElement)\n //this.dispose()\n }\n\n /*dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }*/\n\n static clearCookie() {\n if (typeof document === 'undefined') {\n return\n }\n document.cookie = COOKIE_NAME + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n }\n\n // Private\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _showElement() {\n const isAnimated = this._isAnimated()\n\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-live', 'polite')\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n this._isTransitioning = false\n }\n\n this._queueCallback(transitionComplete, this._element, isAnimated)\n }\n\n _hideElement() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-live')\n this._isTransitioning = false\n }\n\n _setCookieEU() {\n var exdate = new Date()\n exdate.setDate(exdate.getDate() + COOKIE_EXPIRE)\n var c_value = escape(COOKIE_VALUE) + (COOKIE_EXPIRE == null ? '' : '; expires=' + exdate.toUTCString())\n if (typeof document === 'undefined') {\n return\n }\n document.cookie = COOKIE_NAME + '=' + c_value + '; path=/; SameSite=Strict'\n }\n\n _getRootElement(element) {\n const selector = getElementFromSelector(element)\n let parent = null\n\n if (selector) {\n parent = selector\n }\n\n if (!parent) {\n parent = element.closest(`.${CLASS_NAME_COOKIE_BAR}`) //$(element).closest(`.${CLASS_NAME_COOKIE_BAR}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n /*const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)*/\n\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n //$(element).removeClass(CLASS_NAME_SHOW).attr('aria-hidden', 'true').attr('aria-live', 'off')\n element.classList.remove(CLASS_NAME_SHOW)\n element.setAttribute('aria-hidden', 'true')\n element.setAttribute('aria-live', 'off')\n\n //this._destroyElement(element)\n EventHandler.trigger(element, EVENT_CLOSED)\n\n this.dispose()\n }\n\n static _handleAccept(cookiebarInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n cookiebarInstance.close(this)\n }\n }\n\n static _handleConsent(cookiebarInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n cookiebarInstance.close(this)\n }\n }\n\n static _getCookieEU() {\n if (typeof document === 'undefined') {\n return\n }\n var i,\n x,\n y,\n ARRcookies = document.cookie.split(';')\n for (i = 0; i < ARRcookies.length; i++) {\n x = ARRcookies[i].substring(0, ARRcookies[i].indexOf('='))\n y = ARRcookies[i].substring(ARRcookies[i].indexOf('=') + 1)\n x = x.replace(/^\\s+|\\s+$/g, '')\n if (x == COOKIE_NAME) {\n return unescape(y)\n }\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_ACCEPT, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${NAME}`)\n const instance = Cookiebar.getOrCreateInstance(target)\n instance.accept()\n //Cookiebar._handleAccept(new Cookiebar())\n })\n\n EventHandler.on(window, EVENT_LOAD_DATA_API, function () {\n const consent = Cookiebar._getCookieEU()\n if (!consent) {\n if (typeof document === 'undefined') {\n return\n }\n const cookiebars = document.querySelectorAll(SELECTOR_COOKIE_BAR)\n cookiebars.forEach((bar) => {\n const instance = Cookiebar.getOrCreateInstance(bar)\n instance.show()\n })\n }\n })\n}\n\nexport default Cookiebar\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAOA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAI,GAAG;AACb,MAAM,OAAO,GAAG;AAChB,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG;AACrB,MAAM,WAAW,GAAG;AACpB,MAAM,YAAY,GAAG;AACrB,MAAM,aAAa,GAAG;;AAEtB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,eAAe,GAAG;;AAExB,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;AACxC,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;AAC5D,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;;AAE9D,MAAM,qBAAqB,GAAG;AAC9B,MAAM,eAAe,GAAG;AACxB,MAAM,eAAe,GAAG;;AAExB;AACA;AACA;AACA;AACA;;AAEA,MAAM,SAAS,SAAS,aAAa,CAAC;AACtC,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe;AACpE,IAAI,IAAI,CAAC,gBAAgB,GAAG;AAC5B;;AAEA;AACA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA,EAAE,WAAW,OAAO,GAAG;AACvB,IAAI,OAAO;AACX;;AAEA;;AAEA,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAChD,MAAM;AACN;;AAEA,IAAI,IAAI,CAAC,QAAQ,GAAG;;AAEpB,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,gBAAgB,GAAG;AAC9B;;AAEA,IAAI,IAAI,CAAC,YAAY;AACrB;;AAEA,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,MAAM;AACN;;AAEA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW;;AAEvC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,IAAI,CAAC,gBAAgB,GAAG;AAC9B;;AAEA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe;;AAElD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU;AAC5E;;AAEA,EAAE,MAAM,CAAC,OAAO,EAAE;AAClB,IAAI,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;;AAE9B,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO;AACpD,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW;;AAE3D,IAAI,IAAI,WAAW,CAAC,gBAAgB,EAAE;AACtC,MAAM;AACN;;AAEA,IAAI,IAAI,CAAC,YAAY;;AAErB,IAAI,IAAI,CAAC,IAAI;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAE,OAAO,WAAW,GAAG;AACvB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,GAAG;AACpC;;AAEA;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe;AAC3D;;AAEA,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW;;AAEvC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa;AAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ;;AAEpD,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ;AAC1B;;AAEA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe;;AAE/C,IAAI,MAAM,kBAAkB,GAAG,MAAM;AACrC,MAAM,IAAI,CAAC,gBAAgB,GAAG;AAC9B;;AAEA,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU;AACrE;;AAEA,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;AAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI;AAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW;AAC7C,IAAI,IAAI,CAAC,gBAAgB,GAAG;AAC5B;;AAEA,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,MAAM,GAAG,IAAI,IAAI;AACzB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,aAAa;AACnD,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAiC,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE;AAC1G,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,GAAG,OAAO,GAAG;AACpD;;AAEA,EAAE,eAAe,CAAC,OAAO,EAAE;AAC3B,IAAI,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO;AACnD,IAAI,IAAI,MAAM,GAAG;;AAEjB,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,MAAM,GAAG;AACf;;AAEA,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAC;AAC3D;;AAEA,IAAI,OAAO;AACX;;AAEA,EAAE,kBAAkB,CAAC,OAAO,EAAE;AAC9B;;AAEA;;AAEA,IAAI,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW;AACpD;;AAEA,EAAE,cAAc,CAAC,OAAO,EAAE;AAC1B;AACA,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe;AAC5C,IAAI,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM;AAC9C,IAAI,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK;;AAE3C;AACA,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY;;AAE9C,IAAI,IAAI,CAAC,OAAO;AAChB;;AAEA,EAAE,OAAO,aAAa,CAAC,iBAAiB,EAAE;AAC1C,IAAI,OAAO,UAAU,KAAK,EAAE;AAC5B,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,cAAc;AAC5B;;AAEA,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI;AAClC;AACA;;AAEA,EAAE,OAAO,cAAc,CAAC,iBAAiB,EAAE;AAC3C,IAAI,OAAO,UAAU,KAAK,EAAE;AAC5B,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,KAAK,CAAC,cAAc;AAC5B;;AAEA,MAAM,iBAAiB,CAAC,KAAK,CAAC,IAAI;AAClC;AACA;;AAEA,EAAE,OAAO,YAAY,GAAG;AACxB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,IAAI,CAAC;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;AAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/D,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AACpC,MAAM,IAAI,CAAC,IAAI,WAAW,EAAE;AAC5B,QAAQ,OAAO,QAAQ,CAAC,CAAC;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACtE,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE;AACpF,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9C,MAAM,KAAK,CAAC,cAAc;AAC1B;;AAEA,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1B,MAAM;AACN;;AAEA,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM;AACzD,IAAI,QAAQ,CAAC,MAAM;AACnB;AACA,GAAG;;AAEH,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,YAAY;AAC3D,IAAI,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY;AAC1C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC3C,QAAQ;AACR;AACA,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB;AACtE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAClC,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG;AAC1D,QAAQ,QAAQ,CAAC,IAAI;AACrB,OAAO;AACP;AACA,GAAG;AACH;;;;"}
|
package/dist/plugins/dimmer.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import { getElementFromSelector, reflow } from '
|
|
3
|
-
import EventHandler from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import { getElementFromSelector, reflow } from './util/index.js';
|
|
3
|
+
import EventHandler from './dom/event-handler.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
8
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
9
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
10
|
+
* --------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
|
|
4
13
|
|
|
5
14
|
const NAME = 'dimmer';
|
|
6
15
|
const DATA_KEY = 'bs.dimmer';
|
|
@@ -104,12 +113,14 @@ class Dimmer extends BaseComponent {
|
|
|
104
113
|
* ------------------------------------------------------------------------
|
|
105
114
|
*/
|
|
106
115
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
117
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {
|
|
118
|
+
const dimmerElement = getElementFromSelector(this);
|
|
119
|
+
const dimmer = Dimmer.getOrCreateInstance(dimmerElement);
|
|
110
120
|
|
|
111
|
-
|
|
112
|
-
});
|
|
121
|
+
this.checked ? dimmer.show() : dimmer.hide();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
113
124
|
|
|
114
125
|
export { Dimmer as default };
|
|
115
126
|
//# sourceMappingURL=dimmer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimmer.js","sources":["../../src/js/plugins/dimmer.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"dimmer.js","sources":["../../src/js/plugins/dimmer.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\n\nimport { reflow, getElementFromSelector } from './util/index'\nimport EventHandler from './dom/event-handler'\n\nconst NAME = 'dimmer'\nconst DATA_KEY = 'bs.dimmer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dimmer\"]'\nconst SELECTOR_DATA_ARIAHIDDEN = '[aria-hidden=true]'\n\nclass Dimmer extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._isShown = !element.matches(SELECTOR_DATA_ARIAHIDDEN)\n this._isTransitioning = false\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n show() {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = true\n\n if (this._isAnimated()) {\n this._isTransitioning = true\n }\n\n this._showElement()\n }\n\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n this._isShown = false\n const isAnimated = this._isAnimated()\n\n if (isAnimated) {\n this._isTransitioning = true\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n this._queueCallback(() => this._hideElement(), this._element, isAnimated)\n }\n\n //Private\n\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE)\n }\n\n _showElement() {\n const isAnimated = this._isAnimated()\n\n //this._element.style.display = 'flex'\n this._element.removeAttribute('aria-hidden')\n //this._element.setAttribute('aria-modal', true)\n //this._element.setAttribute('role', 'dialog')\n\n if (isAnimated) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n const transitionComplete = () => {\n this._isTransitioning = false\n }\n\n this._queueCallback(transitionComplete, this._element, isAnimated)\n }\n\n _hideElement() {\n //this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n //this._element.removeAttribute('aria-modal')\n //this._element.removeAttribute('role')\n this._isTransitioning = false\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {\n const dimmerElement = getElementFromSelector(this)\n const dimmer = Dimmer.getOrCreateInstance(dimmerElement)\n\n this.checked ? dimmer.show() : dimmer.hide()\n })\n}\n\nexport default Dimmer\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* --------------------------------------------------------------------------
|
|
3
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
4
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
5
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
6
|
+
* This a fork of Bootstrap: Initial license and original file name below
|
|
7
|
+
* Bootstrap (v5.2.3): dom/data.js
|
|
8
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
9
|
+
* --------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Constants
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const elementMap = new Map();
|
|
17
|
+
|
|
18
|
+
var Data = {
|
|
19
|
+
set(element, key, instance) {
|
|
20
|
+
if (!elementMap.has(element)) {
|
|
21
|
+
elementMap.set(element, new Map());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const instanceMap = elementMap.get(element);
|
|
25
|
+
|
|
26
|
+
// make it clear we only want one instance per element
|
|
27
|
+
// can be removed later when multiple key/instances are fine to be used
|
|
28
|
+
if (!instanceMap.has(key) && instanceMap.size !== 0) {
|
|
29
|
+
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
instanceMap.set(key, instance);
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
get(element, key) {
|
|
37
|
+
if (elementMap.has(element)) {
|
|
38
|
+
return elementMap.get(element).get(key) || null
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return null
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
remove(element, key) {
|
|
45
|
+
if (!elementMap.has(element)) {
|
|
46
|
+
return
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const instanceMap = elementMap.get(element);
|
|
50
|
+
|
|
51
|
+
instanceMap.delete(key);
|
|
52
|
+
|
|
53
|
+
// free up element references if there are no instances left for an element
|
|
54
|
+
if (instanceMap.size === 0) {
|
|
55
|
+
elementMap.delete(element);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { Data as default };
|
|
61
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":["../../../src/js/plugins/dom/data.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * This a fork of Bootstrap: Initial license and original file name below\n * Bootstrap (v5.2.3): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map()\n\nexport default {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map())\n }\n\n const instanceMap = elementMap.get(element)\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)\n return\n }\n\n instanceMap.set(key, instance)\n },\n\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null\n }\n\n return null\n },\n\n remove(element, key) {\n if (!elementMap.has(element)) {\n return\n }\n\n const instanceMap = elementMap.get(element)\n\n instanceMap.delete(key)\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element)\n }\n },\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,UAAU,GAAG,IAAI,GAAG;;AAE1B,WAAe;AACf,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAClC,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE;AACvC;;AAEA,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO;;AAE9C;AACA;AACA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AACzD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,4EAA4E,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvI,MAAM;AACN;;AAEA,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ;AACjC,GAAG;;AAEH,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;AACpB,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACjC,MAAM,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;AACjD;;AAEA,IAAI,OAAO;AACX,GAAG;;AAEH,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE;AACvB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAClC,MAAM;AACN;;AAEA,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO;;AAE9C,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG;;AAE1B;AACA,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO;AAC/B;AACA,GAAG;AACH;;;;"}
|