bootstrap-italia 2.12.1 → 2.13.0
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/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 +273 -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 +175 -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}/_accept-overlay.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
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import JustValidate from 'just-validate';
|
|
2
2
|
import { CssClassObserver, ContentObserver } from './util/observer.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* --------------------------------------------------------------------------
|
|
6
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
7
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
8
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
9
|
+
* --------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
4
13
|
const CONFIG_DEFAULT = {
|
|
5
14
|
errorFieldCssClass: 'is-invalid',
|
|
6
15
|
errorLabelCssClass: 'just-validate-error-label',
|
|
@@ -15,6 +24,9 @@ const SELECTOR_SPAN_SRONLY = `.${CLASS_NAME_SRONLY}`;
|
|
|
15
24
|
class FormValidate {
|
|
16
25
|
constructor(selector, config, dictLocale) {
|
|
17
26
|
this.formSelector = selector;
|
|
27
|
+
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
28
|
+
return
|
|
29
|
+
}
|
|
18
30
|
this.target = document.querySelector(selector);
|
|
19
31
|
|
|
20
32
|
if (dictLocale != undefined) this.validate = new JustValidate(selector, config, dictLocale);
|
|
@@ -165,14 +177,16 @@ const ValidatorSelectAutocomplete = (inputId, config = {}) => {
|
|
|
165
177
|
if (!config.required && !value) {
|
|
166
178
|
result = true;
|
|
167
179
|
} else {
|
|
168
|
-
document
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
181
|
+
document
|
|
182
|
+
.querySelector('#' + field.elem.id + '-select')
|
|
183
|
+
.querySelectorAll('option')
|
|
184
|
+
.forEach((option) => {
|
|
185
|
+
if (option.text === value) {
|
|
186
|
+
result = true;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
176
190
|
}
|
|
177
191
|
} else {
|
|
178
192
|
throw new Error('ValidatorSelectAutocomplete: ' + inputId + ' not found as form field')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-validate.js","sources":["../../src/js/plugins/form-validate.js"],"sourcesContent":["import JustValidate from 'just-validate'\nimport { CssClassObserver, ContentObserver } from './util/observer'\n\nconst CONFIG_DEFAULT = {\n errorFieldCssClass: 'is-invalid',\n errorLabelCssClass: 'just-validate-error-label',\n}\n\nconst NAME = 'justvalidatebi'\n\nconst CLASS_NAME_SRONLY = 'sr-only-justvalidate-bi'\n\nconst SELECTOR_SPAN_SRONLY = `.${CLASS_NAME_SRONLY}`\n\nclass FormValidate {\n constructor(selector, config, dictLocale) {\n this.formSelector = selector\n this.target = document.querySelector(selector)\n\n if (dictLocale != undefined) this.validate = new JustValidate(selector, config, dictLocale)\n else {\n this.validate = new JustValidate(selector, config)\n }\n\n this.config = Object.assign({}, CONFIG_DEFAULT, this.validate.globalConfig)\n this.formItems = []\n\n this.init()\n\n return this.validate\n }\n\n init() {\n const inputs = this.target.querySelectorAll('input, select')\n inputs.forEach((input) => {\n const watcher = new CssClassObserver(\n input,\n this.config.errorFieldCssClass,\n () => this.onInputError(input),\n () => this.onInputErrorRemove(input),\n true\n )\n if (!input.id) {\n input.setAttribute('id', NAME + '-input-' + Math.random())\n }\n this.formItems.push({\n item: input,\n watcher,\n })\n })\n const fieldsets = this.target.querySelectorAll('fieldset')\n fieldsets.forEach((field) => {\n const inputs = field.querySelectorAll('input[type=radio],input[type=checkbox]')\n if (inputs.length > 0) {\n const watcher = new ContentObserver(\n field,\n '.' + this.config.errorLabelCssClass,\n () => this.onFieldsetError(field),\n () => this.onFieldsetErrorRemove(field)\n )\n if (!field.id) {\n field.setAttribute('id', NAME + '-fieldset-' + Math.random())\n }\n this.formItems.push({\n item: field,\n watcher,\n })\n }\n })\n }\n\n /**\n * Adds ARIA attributes to the input and to the error message\n * @param {Object} target - the input element\n */\n onInputError(target) {\n const errElements = this.getErrorMessages(target)\n const errIds = []\n errElements.forEach((el, idx) => {\n const id = target.id + '-error-' + idx\n el.setAttribute('id', id)\n errIds.push(id)\n })\n\n if (errIds.length > 0) {\n target.setAttribute('aria-describedby', errIds.join(' '))\n target.setAttribute('aria-invalid', 'true')\n } /*else {\n console.warn('[JustValidateIt] the element is invalid but no error message was found', { target })\n }*/\n }\n /**\n * Removes input ARIA attributes\n * @param {Object} target - the input element\n */\n onInputErrorRemove(target) {\n target.removeAttribute('aria-describedby')\n target.setAttribute('aria-invalid', 'false')\n }\n /**\n * Adds ARIA attributes to the fieldset and to the error message\n * @param {Object} target - the fieldset element\n */\n onFieldsetError(target) {\n const errElements = this.getErrorMessages(target)\n const errIds = []\n const errTexts = []\n errElements.forEach((el, idx) => {\n const id = target.id + '-error-' + idx\n el.setAttribute('id', id)\n errIds.push(id)\n errTexts.push(el.textContent)\n })\n\n if (errIds.length > 0) {\n const legend = target.querySelector('legend')\n if (legend) {\n legend.setAttribute('aria-describedby', errIds.join(' '))\n legend.setAttribute('aria-invalid', 'true')\n }\n }\n }\n /**\n * Removes the fieldset ARIA attributes\n * @param {Object} target - the fieldset element\n */\n onFieldsetErrorRemove(target) {\n const legend = target.querySelector('legend')\n if (legend) {\n legend.removeAttribute('aria-describedby')\n legend.setAttribute('aria-invalid', 'false')\n const span = legend.querySelector(SELECTOR_SPAN_SRONLY)\n if (span) {\n span.remove()\n }\n }\n }\n\n /**\n * get the error messages for the target\n * @param {Object} target - target node\n */\n getErrorMessages(target) {\n let parent = target\n let messages = parent.querySelectorAll('.' + this.config.errorLabelCssClass)\n while (parent != null && messages.length === 0) {\n parent = parent.parentNode\n messages = parent.querySelectorAll('.' + this.config.errorLabelCssClass)\n }\n return messages\n }\n}\n\n//Plugins\n/**\n * Validate a custom autocomplete select\n * @param {string} inputId - the input id\n * @param {Object} config - { required }\n */\nconst ValidatorSelectAutocomplete = (inputId, config = {}) => {\n return (value, fields) => {\n let result = false\n const field = fields[inputId]\n if (field) {\n if (!config.required && !value) {\n result = true\n } else {\n document\n .querySelector('#' + field.elem.id + '-select')\n .querySelectorAll('option')\n .forEach((option) => {\n if (option.text === value) {\n result = true\n }\n })\n }\n } else {\n throw new Error('ValidatorSelectAutocomplete: ' + inputId + ' not found as form field')\n }\n\n return result\n }\n}\n\nexport { FormValidate, ValidatorSelectAutocomplete }\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-validate.js","sources":["../../src/js/plugins/form-validate.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 JustValidate from 'just-validate'\nimport { CssClassObserver, ContentObserver } from './util/observer'\n\nconst CONFIG_DEFAULT = {\n errorFieldCssClass: 'is-invalid',\n errorLabelCssClass: 'just-validate-error-label',\n}\n\nconst NAME = 'justvalidatebi'\n\nconst CLASS_NAME_SRONLY = 'sr-only-justvalidate-bi'\n\nconst SELECTOR_SPAN_SRONLY = `.${CLASS_NAME_SRONLY}`\n\nclass FormValidate {\n constructor(selector, config, dictLocale) {\n this.formSelector = selector\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return\n }\n this.target = document.querySelector(selector)\n\n if (dictLocale != undefined) this.validate = new JustValidate(selector, config, dictLocale)\n else {\n this.validate = new JustValidate(selector, config)\n }\n\n this.config = Object.assign({}, CONFIG_DEFAULT, this.validate.globalConfig)\n this.formItems = []\n\n this.init()\n\n return this.validate\n }\n\n init() {\n const inputs = this.target.querySelectorAll('input, select')\n inputs.forEach((input) => {\n const watcher = new CssClassObserver(\n input,\n this.config.errorFieldCssClass,\n () => this.onInputError(input),\n () => this.onInputErrorRemove(input),\n true\n )\n if (!input.id) {\n input.setAttribute('id', NAME + '-input-' + Math.random())\n }\n this.formItems.push({\n item: input,\n watcher,\n })\n })\n const fieldsets = this.target.querySelectorAll('fieldset')\n fieldsets.forEach((field) => {\n const inputs = field.querySelectorAll('input[type=radio],input[type=checkbox]')\n if (inputs.length > 0) {\n const watcher = new ContentObserver(\n field,\n '.' + this.config.errorLabelCssClass,\n () => this.onFieldsetError(field),\n () => this.onFieldsetErrorRemove(field)\n )\n if (!field.id) {\n field.setAttribute('id', NAME + '-fieldset-' + Math.random())\n }\n this.formItems.push({\n item: field,\n watcher,\n })\n }\n })\n }\n\n /**\n * Adds ARIA attributes to the input and to the error message\n * @param {Object} target - the input element\n */\n onInputError(target) {\n const errElements = this.getErrorMessages(target)\n const errIds = []\n errElements.forEach((el, idx) => {\n const id = target.id + '-error-' + idx\n el.setAttribute('id', id)\n errIds.push(id)\n })\n\n if (errIds.length > 0) {\n target.setAttribute('aria-describedby', errIds.join(' '))\n target.setAttribute('aria-invalid', 'true')\n } /*else {\n console.warn('[JustValidateIt] the element is invalid but no error message was found', { target })\n }*/\n }\n /**\n * Removes input ARIA attributes\n * @param {Object} target - the input element\n */\n onInputErrorRemove(target) {\n target.removeAttribute('aria-describedby')\n target.setAttribute('aria-invalid', 'false')\n }\n /**\n * Adds ARIA attributes to the fieldset and to the error message\n * @param {Object} target - the fieldset element\n */\n onFieldsetError(target) {\n const errElements = this.getErrorMessages(target)\n const errIds = []\n const errTexts = []\n errElements.forEach((el, idx) => {\n const id = target.id + '-error-' + idx\n el.setAttribute('id', id)\n errIds.push(id)\n errTexts.push(el.textContent)\n })\n\n if (errIds.length > 0) {\n const legend = target.querySelector('legend')\n if (legend) {\n legend.setAttribute('aria-describedby', errIds.join(' '))\n legend.setAttribute('aria-invalid', 'true')\n }\n }\n }\n /**\n * Removes the fieldset ARIA attributes\n * @param {Object} target - the fieldset element\n */\n onFieldsetErrorRemove(target) {\n const legend = target.querySelector('legend')\n if (legend) {\n legend.removeAttribute('aria-describedby')\n legend.setAttribute('aria-invalid', 'false')\n const span = legend.querySelector(SELECTOR_SPAN_SRONLY)\n if (span) {\n span.remove()\n }\n }\n }\n\n /**\n * get the error messages for the target\n * @param {Object} target - target node\n */\n getErrorMessages(target) {\n let parent = target\n let messages = parent.querySelectorAll('.' + this.config.errorLabelCssClass)\n while (parent != null && messages.length === 0) {\n parent = parent.parentNode\n messages = parent.querySelectorAll('.' + this.config.errorLabelCssClass)\n }\n return messages\n }\n}\n\n//Plugins\n/**\n * Validate a custom autocomplete select\n * @param {string} inputId - the input id\n * @param {Object} config - { required }\n */\nconst ValidatorSelectAutocomplete = (inputId, config = {}) => {\n return (value, fields) => {\n let result = false\n const field = fields[inputId]\n if (field) {\n if (!config.required && !value) {\n result = true\n } else {\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n document\n .querySelector('#' + field.elem.id + '-select')\n .querySelectorAll('option')\n .forEach((option) => {\n if (option.text === value) {\n result = true\n }\n })\n }\n }\n } else {\n throw new Error('ValidatorSelectAutocomplete: ' + inputId + ' not found as form field')\n }\n\n return result\n }\n}\n\nexport { FormValidate, ValidatorSelectAutocomplete }\n"],"names":[],"mappings":"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"}
|
package/dist/plugins/forward.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import EventHandler from '
|
|
3
|
-
import Manipulator from '
|
|
4
|
-
import { getElementFromSelector } from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import EventHandler from './dom/event-handler.js';
|
|
3
|
+
import Manipulator from './dom/manipulator.js';
|
|
4
|
+
import { getElementFromSelector } from './util/index.js';
|
|
5
5
|
import { documentScrollTo } from './util/tween.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* --------------------------------------------------------------------------
|
|
9
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
10
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
11
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
12
|
+
* --------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
7
16
|
const NAME = 'historyback';
|
|
8
17
|
const DATA_KEY = 'bs.historyback';
|
|
9
18
|
const EVENT_KEY = `.${DATA_KEY}`;
|
|
@@ -68,20 +77,14 @@ class Forward extends BaseComponent {
|
|
|
68
77
|
* Data Api implementation
|
|
69
78
|
* ------------------------------------------------------------------------
|
|
70
79
|
*/
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
EventHandler.
|
|
74
|
-
evt.preventDefault()
|
|
75
|
-
const forward = Forward.getOrCreateInstance(
|
|
76
|
-
forward.goToTarget()
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_TOGGLE, function (evt) {
|
|
81
|
-
evt.preventDefault();
|
|
82
|
-
const forward = Forward.getOrCreateInstance(this);
|
|
83
|
-
forward.goToTarget();
|
|
84
|
-
});
|
|
80
|
+
|
|
81
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
82
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_TOGGLE, function (evt) {
|
|
83
|
+
evt.preventDefault();
|
|
84
|
+
const forward = Forward.getOrCreateInstance(this);
|
|
85
|
+
forward.goToTarget();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
85
88
|
|
|
86
89
|
export { Forward as default };
|
|
87
90
|
//# sourceMappingURL=forward.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forward.js","sources":["../../src/js/plugins/forward.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"forward.js","sources":["../../src/js/plugins/forward.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 EventHandler from './dom/event-handler'\n//import SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport { getElementFromSelector } from './util/index'\n\nimport { documentScrollTo } from './util/tween'\n\nconst NAME = 'historyback'\nconst DATA_KEY = 'bs.historyback'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_TOGGLE = '[data-bs-toggle=\"forward\"]'\n\nconst Default = {\n duration: 800,\n easing: 'easeInOutSine',\n}\n\nclass Forward extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n goToTarget() {\n const target = getElementFromSelector(this._element)\n if (target) {\n documentScrollTo(target.offsetTop, {\n duration: this._config.duration,\n easing: this._config.easing,\n })\n }\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n\n _bindEvents() {\n EventHandler.on(this._element, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.goToTarget()\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_TOGGLE, function (evt) {\n evt.preventDefault()\n const forward = Forward.getOrCreateInstance(this)\n forward.goToTarget()\n })\n}\n\nexport default Forward\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAWA,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG;;AAErB,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;;AAE9D,MAAM,eAAe,GAAG;;AAExB,MAAM,OAAO,GAAG;AAChB,EAAE,QAAQ,EAAE,GAAG;AACf,EAAE,MAAM,EAAE,eAAe;AACzB;;AAEA,MAAM,OAAO,SAAS,aAAa,CAAC;AACpC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;;AAEzC,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA;AACA,EAAE,UAAU,GAAG;AACf,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ;AACvD,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE;AACzC,QAAQ,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AACvC,QAAQ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;AACnC,OAAO;AACP;AACA;;AAEA;AACA,EAAE,UAAU,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG;AACb,MAAM,GAAG,OAAO;AAChB,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrD,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACnD;AACA,IAAI,OAAO;AACX;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK;AACzD,MAAM,GAAG,CAAC,cAAc;AACxB,MAAM,IAAI,CAAC,UAAU;AACrB,KAAK;AACL;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,GAAG,EAAE;AAClF,IAAI,GAAG,CAAC,cAAc;AACtB,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI;AACpD,IAAI,OAAO,CAAC,UAAU;AACtB,GAAG;AACH;;;;"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import SelectorEngine from '
|
|
2
|
-
import { isVisible } from '
|
|
1
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
2
|
+
import { isVisible } from './util/index.js';
|
|
3
3
|
import Sticky from './sticky.js';
|
|
4
4
|
import onDocumentScroll from './util/on-document-scroll.js';
|
|
5
5
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
const CLASS_NAME_CLONED_HEADER = 'cloned-element';
|
|
7
16
|
const CLASS_NAME_SHOW = 'show';
|
|
8
17
|
const CLASS_NAME_ISTICKY = 'is-sticky';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-sticky.js","sources":["../../src/js/plugins/header-sticky.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"header-sticky.js","sources":["../../src/js/plugins/header-sticky.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 SelectorEngine from './dom/selector-engine'\nimport { isVisible } from './util/index'\n\nimport Sticky from './sticky'\n\nimport onDocumentScroll from './util/on-document-scroll'\n\nconst CLASS_NAME_CLONED_HEADER = 'cloned-element'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_ISTICKY = 'is-sticky'\n\nconst SELECTOR_HEADER = '.it-header-sticky'\nconst SELECTOR_TOGGLER = '.custom-navbar-toggler'\nconst SELECTOR_MENU_WRAPPER = '.menu-wrapper'\nconst SELECTOR_BRAND_WRAPPER = '.it-brand-wrapper'\nconst SELECTOR_SEARCH_WRAPPER = '.it-search-wrapper'\nconst SELECTOR_USER_WRAPPER = '.it-user-wrapper'\nconst SELECTOR_CLONED = `.${CLASS_NAME_CLONED_HEADER}`\n\nconst dataSet = new Map()\n\nclass HeaderSticky {\n //HeaderSticky uses Sticky so it can't be a Bootstrap BaseComponent\n constructor(element) {\n if (dataSet.get(element)) {\n return null\n }\n\n this._element = element\n this._elementObj = Sticky.getOrCreateInstance(element)\n\n dataSet.set(element, this._elementObj)\n\n this._bindEvents()\n\n this._toggleClonedElement(this._element.classList.contains(CLASS_NAME_ISTICKY))\n }\n\n //Static\n\n static getOrCreateInstance(element) {\n return dataSet.get(element) || new this(element)\n }\n\n //Private\n\n _bindEvents() {\n this._element.addEventListener('on.bs.sticky', () => this._toggleClonedElement(true))\n this._element.addEventListener('off.bs.sticky', () => this._toggleClonedElement(false))\n }\n\n _toggleClonedElement(toAdd = true) {\n const isDesktop = !isVisible(SelectorEngine.findOne(SELECTOR_TOGGLER, this._element))\n\n if (isDesktop) {\n const target = SelectorEngine.findOne(SELECTOR_MENU_WRAPPER, this._element)\n\n if (toAdd) {\n const elBrand = SelectorEngine.findOne(SELECTOR_BRAND_WRAPPER, this._element)\n const elSearch = SelectorEngine.findOne(SELECTOR_SEARCH_WRAPPER, this._element)\n const elUser = SelectorEngine.findOne(SELECTOR_USER_WRAPPER, this._element)\n\n const clonedBrand = elBrand ? elBrand.cloneNode(true) : null\n const clonedSearch = elSearch ? elSearch.cloneNode(true) : null\n const clonedUser = elUser ? elUser.cloneNode(true) : null\n\n if (clonedBrand) {\n target.insertBefore(clonedBrand, target.childNodes[0]).classList.add(CLASS_NAME_CLONED_HEADER)\n }\n if (clonedSearch) {\n target.appendChild(clonedSearch).classList.add(CLASS_NAME_CLONED_HEADER)\n }\n if (clonedUser) {\n target.appendChild(clonedUser).classList.add(CLASS_NAME_CLONED_HEADER)\n target.appendChild(clonedUser).classList.remove(CLASS_NAME_SHOW)\n }\n } else {\n SelectorEngine.find(SELECTOR_CLONED, this._element).forEach((item) => {\n item.parentElement.removeChild(item)\n })\n }\n }\n }\n\n /*if (toAdd) {\n elSticky.nextElementSibling.style.paddingTop = navbarHeight + (isDesktop ? navOffsetTop - scrollToGap : navbarHeight - scrollToGap) + 'px'\n } else {\n elSticky.nextElementSibling.style.paddingTop = 0 + 'px'\n }*/\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nonDocumentScroll(() => {\n const stickies = SelectorEngine.find(SELECTOR_HEADER)\n stickies.map((sticky) => {\n HeaderSticky.getOrCreateInstance(sticky)\n })\n})\n\nexport default HeaderSticky\n"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AASA,MAAM,wBAAwB,GAAG;AACjC,MAAM,eAAe,GAAG;AACxB,MAAM,kBAAkB,GAAG;;AAE3B,MAAM,eAAe,GAAG;AACxB,MAAM,gBAAgB,GAAG;AACzB,MAAM,qBAAqB,GAAG;AAC9B,MAAM,sBAAsB,GAAG;AAC/B,MAAM,uBAAuB,GAAG;AAChC,MAAM,qBAAqB,GAAG;AAC9B,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;;AAErD,MAAM,OAAO,GAAG,IAAI,GAAG;;AAEvB,MAAM,YAAY,CAAC;AACnB;AACA,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC9B,MAAM,OAAO;AACb;;AAEA,IAAI,IAAI,CAAC,QAAQ,GAAG;AACpB,IAAI,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO;;AAEzD,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW;;AAEzC,IAAI,IAAI,CAAC,WAAW;;AAEpB,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AAClF;;AAEA;;AAEA,EAAE,OAAO,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;AACnD;;AAEA;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AACxF,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC1F;;AAEA,EAAE,oBAAoB,CAAC,KAAK,GAAG,IAAI,EAAE;AACrC,IAAI,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAExF,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ;;AAEhF,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ;AACpF,QAAQ,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ;AACtF,QAAQ,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ;;AAElF,QAAQ,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;AAChE,QAAQ,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;AACnE,QAAQ,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;;AAE7D,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB;AACvG;AACA,QAAQ,IAAI,YAAY,EAAE;AAC1B,UAAU,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB;AACjF;AACA,QAAQ,IAAI,UAAU,EAAE;AACxB,UAAU,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAwB;AAC/E,UAAU,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe;AACzE;AACA,OAAO,MAAM;AACb,QAAQ,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC9E,UAAU,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI;AAC7C,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,CAAC,MAAM;AACvB,EAAE,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe;AACtD,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AAC3B,IAAI,YAAY,CAAC,mBAAmB,CAAC,MAAM;AAC3C,GAAG;AACH,CAAC;;;;"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import EventHandler from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import EventHandler from './dom/event-handler.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* --------------------------------------------------------------------------
|
|
6
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
7
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
8
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
9
|
+
* --------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
3
11
|
|
|
4
|
-
//import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'
|
|
5
12
|
|
|
6
13
|
const NAME = 'historyback';
|
|
7
14
|
const DATA_KEY = 'bs.historyback';
|
|
@@ -48,20 +55,13 @@ class HistoryBack extends BaseComponent {
|
|
|
48
55
|
* ------------------------------------------------------------------------
|
|
49
56
|
*/
|
|
50
57
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
})*/
|
|
59
|
-
|
|
60
|
-
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_TOGGLE, function (evt) {
|
|
61
|
-
evt.preventDefault();
|
|
62
|
-
const historyBack = HistoryBack.getOrCreateInstance(this);
|
|
63
|
-
historyBack.back();
|
|
64
|
-
});
|
|
58
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
59
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_TOGGLE, function (evt) {
|
|
60
|
+
evt.preventDefault();
|
|
61
|
+
const historyBack = HistoryBack.getOrCreateInstance(this);
|
|
62
|
+
historyBack.back();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
65
|
|
|
66
66
|
export { HistoryBack as default };
|
|
67
67
|
//# sourceMappingURL=history-back.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-back.js","sources":["../../src/js/plugins/history-back.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"history-back.js","sources":["../../src/js/plugins/history-back.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 EventHandler from './dom/event-handler'\n\nconst NAME = 'historyback'\nconst DATA_KEY = 'bs.historyback'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_TOGGLE = '[data-bs-toggle=\"historyback\"]'\n\nclass HistoryBack extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n back() {\n if (typeof window !== 'undefined') {\n window.history.back()\n }\n }\n\n // Private\n _bindEvents() {\n EventHandler.on(this._element, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this.back()\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_TOGGLE, function (evt) {\n evt.preventDefault()\n const historyBack = HistoryBack.getOrCreateInstance(this)\n historyBack.back()\n })\n}\n\nexport default HistoryBack\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG;;AAErB,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;;AAE9D,MAAM,eAAe,GAAG;;AAExB,MAAM,WAAW,SAAS,aAAa,CAAC;AACxC,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA;AACA,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI;AACzB;AACA;;AAEA;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK;AACzD,MAAM,GAAG,CAAC,cAAc;AACxB,MAAM,IAAI,CAAC,IAAI;AACf,KAAK;AACL;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,GAAG,EAAE;AAClF,IAAI,GAAG,CAAC,cAAc;AACtB,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC,IAAI;AAC5D,IAAI,WAAW,CAAC,IAAI;AACpB,GAAG;AACH;;;;"}
|
package/dist/plugins/init.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import TrackFocus from './track-focus.js';
|
|
2
2
|
import BOOTSTRAP_ITALIA_VERSION from '../version.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* --------------------------------------------------------------------------
|
|
6
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
7
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
8
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
9
|
+
* --------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
4
13
|
const init = () => {
|
|
5
14
|
if (typeof window !== 'undefined' && !window.BOOTSTRAP_ITALIA_VERSION) {
|
|
6
15
|
new TrackFocus();
|
package/dist/plugins/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sources":["../../src/js/plugins/init.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"init.js","sources":["../../src/js/plugins/init.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 TrackFocus from './track-focus'\n\nimport BOOTSTRAP_ITALIA_VERSION from '../version'\n\nconst init = () => {\n if (typeof window !== 'undefined' && !window.BOOTSTRAP_ITALIA_VERSION) {\n new TrackFocus()\n window.BOOTSTRAP_ITALIA_VERSION = BOOTSTRAP_ITALIA_VERSION\n }\n}\n\nexport default init\n\ninit()\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMK,MAAC,IAAI,GAAG,MAAM;AACnB,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;AACzE,IAAI,IAAI,UAAU;AAClB,IAAI,MAAM,CAAC,wBAAwB,GAAG;AACtC;AACA;;AAIA,IAAI;;;;"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import EventHandler from '
|
|
2
|
-
import SelectorEngine from '
|
|
1
|
+
import EventHandler from './dom/event-handler.js';
|
|
2
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* --------------------------------------------------------------------------
|
|
6
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
7
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
8
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
9
|
+
* --------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
|
|
3
12
|
|
|
4
13
|
const NAME = 'inputlabel';
|
|
5
14
|
const DATA_KEY = 'bs.inputlabel';
|
|
@@ -26,7 +35,9 @@ class InputLabel {
|
|
|
26
35
|
}
|
|
27
36
|
|
|
28
37
|
static getInputFromLabel = (labelElement) => {
|
|
29
|
-
|
|
38
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
39
|
+
return document.querySelector('#' + CSS.escape(labelElement.getAttribute('for')))
|
|
40
|
+
}
|
|
30
41
|
}
|
|
31
42
|
|
|
32
43
|
// Public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-label.js","sources":["../../src/js/plugins/input-label.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"input-label.js","sources":["../../src/js/plugins/input-label.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 EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\nconst NAME = 'inputlabel'\nconst DATA_KEY = 'bs.inputlabel'\nconst EVENT_KEY = `.${DATA_KEY}`\n//const DATA_API_KEY = '.data-api'\n\nconst EVENT_FOCUS = `focus${EVENT_KEY}`\nconst EVENT_BLUR = `blur${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\n\nclass InputLabel {\n constructor(element) {\n this._element = element\n\n this._init()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n static getInputFromLabel = (labelElement) => {\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n return document.querySelector('#' + CSS.escape(labelElement.getAttribute('for')))\n }\n }\n\n // Public\n\n // Private\n _init() {\n const label = this._getLabel()\n if (label && !label.classList.contains(CLASS_NAME_ACTIVE)) {\n //script disabled if active on init\n this._labelOut()\n this._labelOver()\n }\n\n if (label && label.getAttribute('it-bs-static') === null) {\n this._bindEvents()\n }\n }\n\n _bindEvents() {\n if (['date', 'time'].includes(this._element.getAttribute('type'))) {\n return\n }\n if (this._element.getAttribute('type') === 'file') {\n EventHandler.on(this._element, EVENT_BLUR, () => {\n this._labelOut()\n })\n } else {\n EventHandler.on(this._element, EVENT_FOCUS, () => {\n this._labelOut()\n })\n EventHandler.on(this._element, EVENT_BLUR, () => {\n this._labelOver()\n })\n EventHandler.on(this._element, EVENT_CHANGE, () => {\n this._labelToggle()\n })\n }\n }\n\n _getLabel() {\n return SelectorEngine.findOne('label[for=\"' + this._element.getAttribute('id') + '\"]')\n }\n\n _isEmpty() {\n return !this._element.value && !this._element.getAttribute('placeholder')\n }\n\n _labelOut() {\n const label = this._getLabel()\n if (label) {\n label.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n _labelOver() {\n if (this._isEmpty()) {\n const label = this._getLabel()\n if (label) {\n label.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n }\n _labelToggle() {\n if (!this._isEmpty()) {\n this._labelOut()\n } else {\n this._labelOver()\n }\n }\n}\n\nexport default InputLabel\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import EventHandler from '
|
|
3
|
-
import SelectorEngine from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import EventHandler from './dom/event-handler.js';
|
|
3
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
4
4
|
import InputLabel from './input-label.js';
|
|
5
5
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
const NAME = 'inputnumber';
|
|
7
16
|
const DATA_KEY = 'bs.inputnumber';
|
|
8
17
|
const EVENT_KEY = `.${DATA_KEY}`;
|
|
@@ -126,7 +135,7 @@ const createInput = (element) => {
|
|
|
126
135
|
return null
|
|
127
136
|
};
|
|
128
137
|
|
|
129
|
-
if (typeof document !== 'undefined') {
|
|
138
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
130
139
|
document.addEventListener('DOMContentLoaded', function () {
|
|
131
140
|
var frmel = document.querySelectorAll(SELECTOR_INPUT + ', label');
|
|
132
141
|
frmel.forEach(function (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-number.js","sources":["../../src/js/plugins/input-number.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"input-number.js","sources":["../../src/js/plugins/input-number.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'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\nimport InputLabel from './input-label'\n\nconst NAME = 'inputnumber'\nconst DATA_KEY = 'bs.inputnumber'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CHANGE = `change${EVENT_KEY}`\nconst EVENT_INPUT = `input`\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ADAPTIVE = 'input-number-adaptive'\nconst CLASS_NAME_DECREMENT = 'input-number-sub'\n\nconst SELECTOR_WRAPPER = '.input-number'\nconst SELECTOR_INPUT = 'input[data-bs-input][type=\"number\"]'\nconst SELECTOR_BTN = 'button[class^=\"input-number-\"]'\n\nclass InputNumber extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._wrapperElement = this._element.closest(SELECTOR_WRAPPER)\n\n this._label = new InputLabel(element)\n\n this._init()\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n _init() {\n if (this._wrapperElement) {\n this._inputResize()\n }\n }\n\n _bindEvents() {\n if (this._wrapperElement) {\n SelectorEngine.find(SELECTOR_BTN, this._wrapperElement).forEach((btn) => {\n EventHandler.on(btn, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n this._incrDecr(btn.classList.contains(CLASS_NAME_DECREMENT))\n this._label._labelOut()\n })\n })\n\n EventHandler.on(this._element, EVENT_CHANGE, () => this._checkLimit())\n }\n }\n\n _inputResize() {\n if (this._wrapperElement.classList.contains(CLASS_NAME_ADAPTIVE)) {\n let newWidth = null\n newWidth = 'calc(70px + ' + this._element.value.length + 'ch)'\n\n if (newWidth) {\n this._element.style.width = newWidth\n }\n }\n }\n\n _incrDecr(isDecr) {\n var inputVal = 0\n if (this._element.value !== '') inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n //get step\n let step = parseFloat(this._element.getAttribute('step'))\n if (!step) {\n step = 1\n }\n\n this._element.value = inputVal + step * (isDecr ? -1 : 1)\n EventHandler.trigger(this._element, EVENT_CHANGE)\n EventHandler.trigger(this._element, EVENT_INPUT)\n }\n }\n\n _checkLimit() {\n const inputVal = parseFloat(this._element.value)\n\n if (!isNaN(inputVal)) {\n let val = inputVal\n const max = parseFloat(this._element.getAttribute('max'))\n const min = parseFloat(this._element.getAttribute('min'))\n\n if (min && inputVal < min) {\n val = min\n }\n //limit max\n if (max && inputVal > max) {\n val = max\n }\n\n this._element.value = val\n }\n\n this._inputResize()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst createInput = (element) => {\n if (element && element.matches(SELECTOR_INPUT) && element.parentNode.querySelector(SELECTOR_BTN)) {\n return InputNumber.getOrCreateInstance(element)\n }\n return null\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n document.addEventListener('DOMContentLoaded', function () {\n var frmel = document.querySelectorAll(SELECTOR_INPUT + ', label')\n frmel.forEach(function (item) {\n const target = InputLabel.getInputFromLabel(item) || item\n createInput(target)\n })\n })\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN, function () {\n const wrapper = this.closest(SELECTOR_WRAPPER)\n if (wrapper) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, wrapper)\n if (input) {\n InputNumber.getOrCreateInstance(input)\n }\n }\n })\n}\n\nexport default InputNumber\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import EventHandler from '
|
|
3
|
-
import SelectorEngine from '
|
|
4
|
-
import Manipulator from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import EventHandler from './dom/event-handler.js';
|
|
3
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
4
|
+
import Manipulator from './dom/manipulator.js';
|
|
5
5
|
import InputLabel from './input-label.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* --------------------------------------------------------------------------
|
|
9
|
+
* Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
|
|
10
|
+
* Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
|
|
11
|
+
* Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
|
|
12
|
+
* --------------------------------------------------------------------------
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
7
16
|
const NAME = 'inputpassword';
|
|
8
17
|
const DATA_KEY = 'bs.inputpassword';
|
|
9
18
|
const EVENT_KEY = `.${DATA_KEY}`;
|
|
@@ -438,43 +447,45 @@ class InputPassword extends BaseComponent {
|
|
|
438
447
|
* ------------------------------------------------------------------------
|
|
439
448
|
*/
|
|
440
449
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
450
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
451
|
+
const createInput = (element) => {
|
|
452
|
+
if (element && element.matches(SELECTOR_PASSWORD)) {
|
|
453
|
+
return InputPassword.getOrCreateInstance(element)
|
|
454
|
+
}
|
|
455
|
+
return null
|
|
456
|
+
};
|
|
447
457
|
|
|
448
|
-
const initInputPassword = () => {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
458
|
+
const initInputPassword = () => {
|
|
459
|
+
const element = SelectorEngine.findOne(SELECTOR_PASSWORD);
|
|
460
|
+
if (element) {
|
|
461
|
+
InputPassword.getOrCreateInstance(element);
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
if (document.readyState !== 'loading') {
|
|
466
|
+
initInputPassword();
|
|
467
|
+
} else {
|
|
468
|
+
document.addEventListener('DOMContentLoaded', initInputPassword);
|
|
452
469
|
}
|
|
453
|
-
};
|
|
454
470
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
471
|
+
EventHandler.on(document, EVENT_MOUSEDOWN_DATA_API, SELECTOR_PASSWORD + ', label', function () {
|
|
472
|
+
const target = InputLabel.getInputFromLabel(this) || this;
|
|
473
|
+
createInput(target);
|
|
474
|
+
});
|
|
475
|
+
EventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_PASSWORD + ', label', function () {
|
|
476
|
+
const target = InputLabel.getInputFromLabel(this) || this;
|
|
477
|
+
const element = createInput(target);
|
|
478
|
+
if (element && element._label) {
|
|
479
|
+
element._label._labelOut();
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN_SHOW_PWD, function () {
|
|
483
|
+
const target = this.parentNode && this.parentNode.querySelector(SELECTOR_PASSWORD);
|
|
484
|
+
if (target) {
|
|
485
|
+
InputPassword.getOrCreateInstance(target);
|
|
486
|
+
}
|
|
487
|
+
});
|
|
459
488
|
}
|
|
460
489
|
|
|
461
|
-
EventHandler.on(document, EVENT_MOUSEDOWN_DATA_API, SELECTOR_PASSWORD + ', label', function () {
|
|
462
|
-
const target = InputLabel.getInputFromLabel(this) || this;
|
|
463
|
-
createInput(target);
|
|
464
|
-
});
|
|
465
|
-
EventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_PASSWORD + ', label', function () {
|
|
466
|
-
const target = InputLabel.getInputFromLabel(this) || this;
|
|
467
|
-
const element = createInput(target);
|
|
468
|
-
if (element && element._label) {
|
|
469
|
-
element._label._labelOut();
|
|
470
|
-
}
|
|
471
|
-
});
|
|
472
|
-
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BTN_SHOW_PWD, function () {
|
|
473
|
-
const target = this.parentNode && this.parentNode.querySelector(SELECTOR_PASSWORD);
|
|
474
|
-
if (target) {
|
|
475
|
-
InputPassword.getOrCreateInstance(target);
|
|
476
|
-
}
|
|
477
|
-
});
|
|
478
|
-
|
|
479
490
|
export { InputPassword as default };
|
|
480
491
|
//# sourceMappingURL=input-password.js.map
|