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
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE. */
|
|
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 file is a modified version of Benoit Tremblay's VideoJS YouTube plugin
|
|
7
|
+
* Main repository: https://github.com/videojs/videojs-youtube
|
|
8
|
+
* Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>
|
|
9
|
+
* Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)
|
|
10
|
+
* --------------------------------------------------------------------------
|
|
11
|
+
*/
|
|
12
|
+
|
|
22
13
|
/*global define, YT*/
|
|
23
14
|
const initYoutubePlugin = (videojs) => {
|
|
24
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/* The MIT License (MIT)\n\nCopyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE. */\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.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 file is a modified version of Benoit Tremblay's VideoJS YouTube plugin \n * Main repository: https://github.com/videojs/videojs-youtube\n * Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n * Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)\n * --------------------------------------------------------------------------\n */\n\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import BaseComponent from '
|
|
2
|
-
import SelectorEngine from '
|
|
3
|
-
import Manipulator from '
|
|
1
|
+
import BaseComponent from './base-component.js';
|
|
2
|
+
import SelectorEngine from './dom/selector-engine.js';
|
|
3
|
+
import Manipulator from './dom/manipulator.js';
|
|
4
4
|
import videojs from 'video.js';
|
|
5
5
|
import { initYoutubePlugin } from './util/youtube-video.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 = 'videoplayer';
|
|
8
17
|
|
|
9
18
|
const SELECTOR_TOGGLE = '[data-bs-video]';
|
|
@@ -149,11 +158,13 @@ class VideoPlayer extends BaseComponent {
|
|
|
149
158
|
* ------------------------------------------------------------------------
|
|
150
159
|
*/
|
|
151
160
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
players.
|
|
155
|
-
|
|
156
|
-
|
|
161
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
162
|
+
const players = SelectorEngine.find(SELECTOR_TOGGLE);
|
|
163
|
+
if (players.length > 0) {
|
|
164
|
+
players.forEach((player) => {
|
|
165
|
+
VideoPlayer.getOrCreateInstance(player);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
157
168
|
}
|
|
158
169
|
|
|
159
170
|
export { VideoPlayer as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\n static get NAME() {\n return NAME\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\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst players = SelectorEngine.find(SELECTOR_TOGGLE)\nif (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.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 SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\n static get NAME() {\n return NAME\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\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n const players = SelectorEngine.find(SELECTOR_TOGGLE)\n if (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n }\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;AASA,MAAM,IAAI,GAAG;;AAEb,MAAM,eAAe,GAAG;;AAExB,MAAM,MAAM,GAAG;AACf,EAAE,cAAc,EAAE,eAAe;AACjC,EAAE,cAAc,EAAE,eAAe;AACjC,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,cAAc,EAAE,gBAAgB;AAClC,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,gBAAgB,EAAE,iBAAiB;AACrC,EAAE,aAAa,EAAE,mBAAmB;AACpC,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,cAAc,EAAE,sBAAsB;AACxC,EAAE,mDAAmD,EAAE,YAAY;AACnE,EAAE,UAAU,EAAE,gBAAgB;AAC9B,EAAE,iBAAiB,EAAE,uBAAuB;AAC5C,EAAE,IAAI,EAAE,mBAAmB;AAC3B,EAAE,MAAM,EAAE,gBAAgB;AAC1B,EAAE,eAAe,EAAE,0BAA0B;AAC7C,EAAE,SAAS,EAAE,aAAa;AAC1B,EAAE,eAAe,EAAE,mBAAmB;AACtC,EAAE,QAAQ,EAAE,wBAAwB;AACpC,EAAE,cAAc,EAAE,8BAA8B;AAChD,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,YAAY,EAAE,aAAa;AAC7B,EAAE,kBAAkB,EAAE,yBAAyB;AAC/C,EAAE,aAAa,EAAE,eAAe;AAChC,EAAE,cAAc,EAAE,oBAAoB;AACtC,EAAE,gCAAgC,EAAE,iDAAiD;AACrF,EAAE,6DAA6D,EAAE,yEAAyE;AAC1I,EAAE,oHAAoH;AACtH,IAAI,2HAA2H;AAC/H,EAAE,6HAA6H;AAC/H,IAAI,4IAA4I;AAChJ,EAAE,gDAAgD,EAAE,mDAAmD;AACvG,EAAE,mEAAmE,EAAE,oFAAoF;AAC3J,EAAE,YAAY,EAAE,oBAAoB;AACpC,EAAE,KAAK,EAAE,QAAQ;AACjB,EAAE,oBAAoB,EAAE,+BAA+B;AACvD,EAAE,cAAc,EAAE,qBAAqB;AACvC,EAAE,wBAAwB,EAAE,kCAAkC;AAC9D,EAAE,qFAAqF;AACvF,IAAI,0GAA0G;AAC9G,EAAE,kCAAkC,EAAE,yDAAyD;AAC/F,EAAE,mCAAmC,EAAE,sCAAsC;AAC7E,EAAE,sCAAsC,EAAE,wCAAwC;AAClF,EAAE,YAAY,EAAE,eAAe;AAC/B,EAAE,mBAAmB,EAAE,kCAAkC;AACzD,EAAE,oBAAoB,EAAE,uBAAuB;AAC/C,EAAE,uBAAuB,EAAE,uBAAuB;AAClD,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,KAAK,EAAE,QAAQ;AACjB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,GAAG,EAAE,OAAO;AACd,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,IAAI,EAAE,KAAK;AACb,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,UAAU,EAAE,QAAQ;AACtB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,WAAW,EAAE,aAAa;AAC5B,EAAE,kBAAkB,EAAE,kBAAkB;AACxC,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,WAAW,EAAE,0BAA0B;AACzC,EAAE,iBAAiB,EAAE,2BAA2B;AAChD,EAAE,IAAI,EAAE,SAAS;AACjB,EAAE,OAAO,EAAE,UAAU;AACrB,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,aAAa,EAAE,WAAW;AAC5B,EAAE,yBAAyB,EAAE,0BAA0B;AACvD,EAAE,sBAAsB,EAAE,yBAAyB;AACnD,EAAE,oBAAoB,EAAE,qBAAqB;AAC7C,EAAE,iBAAiB,EAAE,oBAAoB;AACzC,EAAE,YAAY,EAAE,cAAc;AAC9B,EAAE,KAAK,EAAE,eAAe;AACxB,EAAE,4CAA4C,EAAE,uDAAuD;AACvG,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,yBAAyB,EAAE,sEAAsE;AACnG,EAAE,sEAAsE;AACxE,IAAI,+FAA+F;AACnG,EAAE,uBAAuB,EAAE,iCAAiC;AAC5D,EAAE,iBAAiB,EAAE,6BAA6B;AAClD,EAAE,yBAAyB,EAAE,wCAAwC;AACrE,EAAE,oBAAoB,EAAE,oBAAoB;AAC5C,EAAE,KAAK,EAAE,QAAQ;AACjB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,iBAAiB,EAAE,cAAc;AACnC,EAAE,yBAAyB,EAAE,yBAAyB;AACtD,EAAE,0BAA0B,EAAE,oBAAoB;AAClD,EAAE,2BAA2B,EAAE,sBAAsB;AACrD;;AAEA,MAAM,cAAc,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI;;AAElE,MAAM,OAAO,GAAG;;AAEhB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACnC,EAAE,MAAM,CAAC,OAAO,GAAG;AACnB;;AAEA,MAAM,WAAW,SAAS,aAAa,CAAC;AACxC,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AAC/B,IAAI,KAAK,CAAC,OAAO;AACjB,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,4BAA4B,EAAE,WAAW,EAAE,uBAAuB;AACxG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;AACzC,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc;AACjD;;AAEA;;AAEA,EAAE,eAAe,CAAC,GAAG,EAAE;AACvB,IAAI,iBAAiB,CAAC,OAAO;AAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;AAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE;AACvD;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;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;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACtE,EAAE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe;AACrD,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAChC,MAAM,WAAW,CAAC,mBAAmB,CAAC,MAAM;AAC5C,KAAK;AACL;AACA;;;;"}
|
package/dist/version.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
3
8
|
|
|
4
|
-
|
|
9
|
+
// NOTE:bootstrap italia version variable, useful to check for the current version
|
|
10
|
+
|
|
11
|
+
const BOOTSTRAP_ITALIA_VERSION = '2.13.1';
|
|
5
12
|
|
|
6
13
|
export { BOOTSTRAP_ITALIA_VERSION as default };
|
|
7
14
|
//# sourceMappingURL=version.js.map
|
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../src/js/version.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\n// NOTE:bootstrap italia version variable, useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.13.1'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEK,MAAC,wBAAwB,GAAG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bootstrap-italia",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.1",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"css",
|
|
6
6
|
"sass",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"fix-scss": "stylelint ./src/scss/ ./docs/assets/src/scss/ --fix",
|
|
38
38
|
"format-code": "npx prettier --write . && eslint ./src/js ./docs/assets/src/js/ --fix --cache && stylelint ./src/scss/ ./docs/assets/src/scss/ --fix --cache",
|
|
39
39
|
"release": "node scripts/release",
|
|
40
|
-
"version": "node scripts/config-sync && git add _config.yml && git add src/js/version.js && git add src/scss/
|
|
40
|
+
"version": "node scripts/config-sync && git add _config.yml && git add src/js/version.js && git add src/scss/base/_version.scss && conventional-changelog -p angular -i CHANGELOG.md -s && node scripts/wait-confirm && git add CHANGELOG.md",
|
|
41
41
|
"postversion": "echo \"You can now publish your tag with 'git push --follow-tags'\"",
|
|
42
42
|
"test-htmlproofer": "JEKYLL_ENV=development bundle exec jekyll build --config _config.yml && bundle exec htmlproofer ./_site --assume-extension --check-html --allow-hash-href --disable-external --url-ignore /1.x/",
|
|
43
43
|
"test-a11y": "npx pa11y-ci --sitemap http://localhost:4000/sitemap.xml --sitemap-find ^/ --sitemap-replace 'http://localhost:4000/'",
|
|
@@ -94,15 +94,14 @@
|
|
|
94
94
|
"stylelint-scss": "^6.10.0"
|
|
95
95
|
},
|
|
96
96
|
"dependencies": {
|
|
97
|
-
"@popperjs/core": "^2.11.
|
|
97
|
+
"@popperjs/core": "^2.11.6",
|
|
98
98
|
"@splidejs/splide": "^3.6.12",
|
|
99
99
|
"@types/bootstrap": "^5.2.6",
|
|
100
|
-
"accessible-autocomplete": "^
|
|
100
|
+
"accessible-autocomplete": "^3.0.1",
|
|
101
101
|
"animejs": "^3.2.1",
|
|
102
|
-
"bootstrap": "5.2.3",
|
|
103
102
|
"design-tokens-italia": "^1.1.1",
|
|
104
|
-
"just-validate": "^3.
|
|
105
|
-
"
|
|
103
|
+
"just-validate": "^4.3.0",
|
|
104
|
+
"minimasonry": "^1.3.2",
|
|
106
105
|
"progressbar.js": "^1.1.0",
|
|
107
106
|
"uuid": "^8.3.2",
|
|
108
107
|
"video.js": "^8.0.4"
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import '../scss/bootstrap-italia.scss'
|
|
2
10
|
|
|
3
11
|
import { loadPlugin } from './load-plugin'
|
|
@@ -1,3 +1,11 @@
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
export { default as CarouselBI } from './plugins/carousel-bi'
|
|
2
10
|
export { default as InputNumber } from './plugins/input-number'
|
|
3
11
|
export { default as Dimmer } from './plugins/dimmer'
|
|
@@ -15,7 +23,7 @@ export { default as InputSearchAutocomplete } from './plugins/input-search-autoc
|
|
|
15
23
|
export { default as InputPassword } from './plugins/input-password'
|
|
16
24
|
export { default as ProgressDonut } from './plugins/progress-donut'
|
|
17
25
|
export { default as UploadDragDrop } from './plugins/upload-dragdrop'
|
|
18
|
-
export { default as BackToTop } from './plugins/
|
|
26
|
+
export { default as BackToTop } from './plugins/back-to-top'
|
|
19
27
|
export { default as HistoryBack } from './plugins/history-back'
|
|
20
28
|
export { default as Forward } from './plugins/forward'
|
|
21
29
|
export { default as Masonry } from './plugins/masonry'
|
package/src/js/icons.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
import '../svg/it-android.svg'
|
|
2
10
|
import '../svg/it-android-square.svg'
|
|
3
11
|
import '../svg/it-apple.svg'
|
package/src/js/load-plugin.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
1
9
|
export const loadPlugin = (module) => {
|
|
2
10
|
// Trick Rollup.js to keep JavaScript.
|
|
3
11
|
let obj = {
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
2
8
|
|
|
3
|
-
import
|
|
9
|
+
import BaseComponent from './base-component.js'
|
|
10
|
+
|
|
11
|
+
import { reflow } from './util/index'
|
|
4
12
|
import { cookies } from './util/cookies'
|
|
5
|
-
import SelectorEngine from '
|
|
13
|
+
import SelectorEngine from './dom/selector-engine'
|
|
6
14
|
|
|
7
15
|
const NAME = 'acceptoverlay'
|
|
8
16
|
|
|
@@ -113,12 +121,12 @@ class AcceptOverlay extends BaseComponent {
|
|
|
113
121
|
* Data Api implementation
|
|
114
122
|
* ------------------------------------------------------------------------
|
|
115
123
|
*/
|
|
116
|
-
|
|
117
|
-
const acceptOverlays = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
|
|
118
|
-
if (acceptOverlays.length > 0) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
125
|
+
const acceptOverlays = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
|
|
126
|
+
if (acceptOverlays.length > 0) {
|
|
127
|
+
acceptOverlays.forEach((element) => {
|
|
128
|
+
AcceptOverlay.getOrCreateInstance(element, { service: element.dataset.bsAcceptFrom })
|
|
129
|
+
})
|
|
130
|
+
}
|
|
122
131
|
}
|
|
123
|
-
|
|
124
132
|
export default AcceptOverlay
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
|
|
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
|
+
* --------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import BaseComponent from './base-component.js'
|
|
2
10
|
|
|
3
|
-
import EventHandler from '
|
|
4
|
-
import SelectorEngine from '
|
|
11
|
+
import EventHandler from './dom/event-handler'
|
|
12
|
+
import SelectorEngine from './dom/selector-engine'
|
|
5
13
|
|
|
6
14
|
import { focusSimbling } from './util/dom'
|
|
7
15
|
|
|
@@ -82,28 +90,14 @@ class Accordion extends BaseComponent {
|
|
|
82
90
|
* Data Api implementation
|
|
83
91
|
* ------------------------------------------------------------------------
|
|
84
92
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
})*/
|
|
89
|
-
|
|
90
|
-
/*const accordionToggles = SelectorEngine.find(SELECTOR_HEADBTN)
|
|
91
|
-
accordionToggles.forEach((toggle) => {
|
|
92
|
-
EventHandler.one(toggle, EVENT_KEYDOWN_DATA_API, (evt) => {
|
|
93
|
-
const parent = toggle.closest(SELECTOR_HEADBTN_WRAPPER)
|
|
93
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined') {
|
|
94
|
+
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_HEADBTN, function (evt) {
|
|
95
|
+
const parent = this.closest(SELECTOR_HEADBTN_WRAPPER)
|
|
94
96
|
if (parent) {
|
|
95
97
|
const accordion = Accordion.getOrCreateInstance(parent)
|
|
96
|
-
accordion.handleKeyDown(evt.key,
|
|
98
|
+
accordion.handleKeyDown(evt.key, this, evt)
|
|
97
99
|
}
|
|
98
100
|
})
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_HEADBTN, function (evt) {
|
|
102
|
-
const parent = this.closest(SELECTOR_HEADBTN_WRAPPER)
|
|
103
|
-
if (parent) {
|
|
104
|
-
const accordion = Accordion.getOrCreateInstance(parent)
|
|
105
|
-
accordion.handleKeyDown(evt.key, this, evt)
|
|
106
|
-
}
|
|
107
|
-
})
|
|
101
|
+
}
|
|
108
102
|
|
|
109
103
|
export default Accordion
|