@total_onion/onion-library 3.0.49 → 3.2.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/index.js +10 -0
- package/onion-loader.js +22 -14
- package/onion-modalcontroller/README.md +2 -0
- package/onion-modalcontroller/onion-modalcontroller.js +183 -0
- package/onion-utils.mjs +18 -19
- package/onion-videocontroller/README.md +89 -0
- package/{components/fields-core-functions-v3 → onion-videocontroller}/core-functions-v3.scss +1 -1
- package/{components/fields-core-mixins-v3 → onion-videocontroller}/core-mixins-v3.scss +2 -2
- package/onion-videocontroller/onion-videocontroller.js +240 -0
- package/onion-videocontroller/upload-video.mjs +251 -0
- package/onion-videocontroller/vc-styles.scss +282 -0
- package/onion-videocontroller/vcUtils.mjs +281 -0
- package/onion-videocontroller/vimeo-video.mjs +106 -0
- package/onion-videocontroller/youtube-video.mjs +157 -0
- package/package.json +29 -7
- package/.github/workflows/npm-publish.yml +0 -38
- package/__spec__/copyBlockComponent.spec.js +0 -94
- package/__spec__/copyFile.spec.js +0 -78
- package/__spec__/copyFileKeeping.spec.js +0 -74
- package/__spec__/files/source.txt +0 -1
- package/__spec__/update-all-components.spec.js +0 -99
- package/__spec__/update-component.spec.js +0 -165
- package/assembleAssetList.js +0 -69
- package/build-library.js +0 -4
- package/checkBuildAssets.js +0 -18
- package/components/block-accent-image-v3/accent-image-v3.js +0 -7
- package/components/block-accent-image-v3/accent-image-v3.scss +0 -4
- package/components/block-accent-image-v3/accent-image-v3.twig +0 -137
- package/components/block-accent-image-v3/group_6890e1233ff2d.json +0 -81
- package/components/block-accordion-v3/accordion-v3.js +0 -119
- package/components/block-accordion-v3/accordion-v3.scss +0 -197
- package/components/block-accordion-v3/accordion-v3.twig +0 -51
- package/components/block-accordion-v3/group_6888d2f0b230b.json +0 -458
- package/components/block-back-to-top-button-v3/back-to-top-button-v3.js +0 -12
- package/components/block-back-to-top-button-v3/back-to-top-button-v3.scss +0 -68
- package/components/block-back-to-top-button-v3/back-to-top-button-v3.twig +0 -40
- package/components/block-back-to-top-button-v3/group_63e24e04a1e61.json +0 -323
- package/components/block-betterreviews-display-v3/betterreviews-display-v3.js +0 -10
- package/components/block-betterreviews-display-v3/betterreviews-display-v3.scss +0 -104
- package/components/block-betterreviews-display-v3/betterreviews-display-v3.twig +0 -24
- package/components/block-betterreviews-display-v3/group_6892880fc1a00.json +0 -182
- package/components/block-block-interactions-v3/block-interactions-v3.js +0 -53
- package/components/block-block-interactions-v3/block-interactions-v3.scss +0 -32
- package/components/block-block-interactions-v3/block-interactions-v3.twig +0 -55
- package/components/block-block-interactions-v3/group_687e1575ba23d.json +0 -700
- package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +0 -243
- package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.scss +0 -156
- package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.twig +0 -146
- package/components/block-carousel-multi-layout-v3/group_686bd42e551d6.json +0 -578
- package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.js +0 -127
- package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.scss +0 -345
- package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.twig +0 -93
- package/components/block-cocktail-recipe-v3/group_68fff19fa4dd0.json +0 -202
- package/components/block-cover-link-v3/cover-link-v3.js +0 -7
- package/components/block-cover-link-v3/cover-link-v3.scss +0 -10
- package/components/block-cover-link-v3/cover-link-v3.twig +0 -16
- package/components/block-cover-link-v3/group_687192c28b7eb.json +0 -96
- package/components/block-divider-v3/divider-v3.js +0 -8
- package/components/block-divider-v3/divider-v3.scss +0 -103
- package/components/block-divider-v3/divider-v3.twig +0 -45
- package/components/block-divider-v3/group_686b919696bfe.json +0 -891
- package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.js +0 -44
- package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.scss +0 -93
- package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.twig +0 -43
- package/components/block-featured-image-gallery-v3/group_5f91897095b42.json +0 -88
- package/components/block-form-selection-v3/form-selection-v3.js +0 -78
- package/components/block-form-selection-v3/form-selection-v3.scss +0 -38
- package/components/block-form-selection-v3/form-selection-v3.twig +0 -84
- package/components/block-form-selection-v3/group_68752e7949e53.json +0 -351
- package/components/block-gradient-layer-v3/gradient-layer-v3.js +0 -7
- package/components/block-gradient-layer-v3/gradient-layer-v3.scss +0 -8
- package/components/block-gradient-layer-v3/gradient-layer-v3.twig +0 -78
- package/components/block-gradient-layer-v3/group_686fdadc85df4.json +0 -206
- package/components/block-group-container-v3/group-container-v3.js +0 -7
- package/components/block-group-container-v3/group-container-v3.php +0 -14
- package/components/block-group-container-v3/group-container-v3.scss +0 -45
- package/components/block-group-container-v3/group-container-v3.twig +0 -70
- package/components/block-group-container-v3/group_6865578ada499.json +0 -3660
- package/components/block-lottie-content-v3/group_687197027216d.json +0 -177
- package/components/block-lottie-content-v3/lottie-content-v3.js +0 -25
- package/components/block-lottie-content-v3/lottie-content-v3.scss +0 -2
- package/components/block-lottie-content-v3/lottie-content-v3.twig +0 -15
- package/components/block-market-selector-v3/group_68752075dd831.json +0 -129
- package/components/block-market-selector-v3/market-selector-v3.js +0 -7
- package/components/block-market-selector-v3/market-selector-v3.scss +0 -120
- package/components/block-market-selector-v3/market-selector-v3.twig +0 -40
- package/components/block-modal-form-v3/modal-form-v3.js +0 -59
- package/components/block-modal-form-v3/modal-form-v3.scss +0 -6
- package/components/block-modal-form-v3/modal-form-v3.twig +0 -30
- package/components/block-nav-menu-container-v3/group_687e00b45e9a3.json +0 -187
- package/components/block-nav-menu-container-v3/nav-menu-container-v3.js +0 -7
- package/components/block-nav-menu-container-v3/nav-menu-container-v3.scss +0 -3
- package/components/block-nav-menu-container-v3/nav-menu-container-v3.twig +0 -23
- package/components/block-post-info-v3/group_6866429531436.json +0 -3112
- package/components/block-post-info-v3/post-info-v3/bazaarvoice-inline.twig +0 -13
- package/components/block-post-info-v3/post-info-v3/better-reviews.twig +0 -15
- package/components/block-post-info-v3/post-info-v3/divider.twig +0 -8
- package/components/block-post-info-v3/post-info-v3/drink-description.twig +0 -10
- package/components/block-post-info-v3/post-info-v3/global-image.twig +0 -22
- package/components/block-post-info-v3/post-info-v3/gradient-layer.twig +0 -78
- package/components/block-post-info-v3/post-info-v3/gradient-overlay.twig +0 -10
- package/components/block-post-info-v3/post-info-v3/post-author.twig +0 -17
- package/components/block-post-info-v3/post-info-v3/post-buy-now.twig +0 -116
- package/components/block-post-info-v3/post-info-v3/post-categories.twig +0 -15
- package/components/block-post-info-v3/post-info-v3/post-headline.twig +0 -15
- package/components/block-post-info-v3/post-info-v3/post-image.twig +0 -47
- package/components/block-post-info-v3/post-info-v3/post-info-description.twig +0 -15
- package/components/block-post-info-v3/post-info-v3/post-info-subtitle.twig +0 -14
- package/components/block-post-info-v3/post-info-v3/post-link.twig +0 -42
- package/components/block-post-info-v3/post-info-v3/post-name.twig +0 -12
- package/components/block-post-info-v3/post-info-v3/post-publish-date.twig +0 -12
- package/components/block-post-info-v3/post-info-v3/post-tags.twig +0 -24
- package/components/block-post-info-v3/post-info-v3/post-text-alternative-style.twig +0 -16
- package/components/block-post-info-v3/post-info-v3/post-title.twig +0 -15
- package/components/block-post-info-v3/post-info-v3/post-video.twig +0 -27
- package/components/block-post-info-v3/post-info-v3/reservebar-add-to-cart.twig +0 -32
- package/components/block-post-info-v3/post-info-v3/shopify-add-to-cart.twig +0 -31
- package/components/block-post-info-v3/post-info-v3/social-networks.twig +0 -33
- package/components/block-post-info-v3/post-info-v3/spacer-v3.twig +0 -9
- package/components/block-post-info-v3/post-info-v3.js +0 -10
- package/components/block-post-info-v3/post-info-v3.scss +0 -210
- package/components/block-post-info-v3/post-info-v3.twig +0 -67
- package/components/block-product-info-v3/group_68909995b6550.json +0 -3544
- package/components/block-product-info-v3/product-info-v3/product-abv.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-cask-type-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-cask-type.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-colour-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-colour.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-description.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-finish-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-finish.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-headline.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-image.twig +0 -43
- package/components/block-product-info-v3/product-info-v3/product-name.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-nose-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-nose.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-pair-with-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-pair-with.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-palate-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-palate.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-taste-label.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-taste.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/product-volume.twig +0 -14
- package/components/block-product-info-v3/product-info-v3/spacer-v3.twig +0 -9
- package/components/block-product-info-v3/product-info-v3.js +0 -7
- package/components/block-product-info-v3/product-info-v3.scss +0 -171
- package/components/block-product-info-v3/product-info-v3.twig +0 -43
- package/components/block-raw-html-v3/group_686ba68d603a2.json +0 -212
- package/components/block-raw-html-v3/raw-html-v3.js +0 -7
- package/components/block-raw-html-v3/raw-html-v3.scss +0 -2
- package/components/block-raw-html-v3/raw-html-v3.twig +0 -17
- package/components/block-responsive-table-v3/group_6617ecc987ddd.json +0 -394
- package/components/block-responsive-table-v3/responsive-table-v3.js +0 -7
- package/components/block-responsive-table-v3/responsive-table-v3.scss +0 -49
- package/components/block-responsive-table-v3/responsive-table-v3.twig +0 -47
- package/components/block-scrolling-banner-v3/group_68e67fca1ec80.json +0 -664
- package/components/block-scrolling-banner-v3/scrolling-banner-v3.js +0 -144
- package/components/block-scrolling-banner-v3/scrolling-banner-v3.scss +0 -104
- package/components/block-scrolling-banner-v3/scrolling-banner-v3.twig +0 -72
- package/components/block-section-separator-v3/group_6874c8d79b84b.json +0 -576
- package/components/block-section-separator-v3/section-separator-v3.js +0 -7
- package/components/block-section-separator-v3/section-separator-v3.scss +0 -42
- package/components/block-section-separator-v3/section-separator-v3.twig +0 -46
- package/components/block-single-column-container-v3/group_6887640458d61.json +0 -481
- package/components/block-single-column-container-v3/single-column-container-v3.js +0 -7
- package/components/block-single-column-container-v3/single-column-container-v3.scss +0 -14
- package/components/block-single-column-container-v3/single-column-container-v3.twig +0 -30
- package/components/block-single-responsive-image-v3/group_6867bcf24c2fc.json +0 -128
- package/components/block-single-responsive-image-v3/single-responsive-image-v3.js +0 -7
- package/components/block-single-responsive-image-v3/single-responsive-image-v3.scss +0 -9
- package/components/block-single-responsive-image-v3/single-responsive-image-v3.twig +0 -24
- package/components/block-site-copyright-notice-v3/group_66296c3716b4f.json +0 -304
- package/components/block-site-copyright-notice-v3/index.html +0 -33
- package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.js +0 -58
- package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.scss +0 -21
- package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.twig +0 -30
- package/components/block-site-logo-container-v3/group_687e3b887b508.json +0 -175
- package/components/block-site-logo-container-v3/site-logo-container-v3.js +0 -7
- package/components/block-site-logo-container-v3/site-logo-container-v3.scss +0 -29
- package/components/block-site-logo-container-v3/site-logo-container-v3.twig +0 -40
- package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +0 -7
- package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.scss +0 -16
- package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.twig +0 -24
- package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +0 -8
- package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.scss +0 -31
- package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.twig +0 -18
- package/components/block-social-networks-v3/group_6891d4d7db414.json +0 -146
- package/components/block-social-networks-v3/social-networks-v3.js +0 -7
- package/components/block-social-networks-v3/social-networks-v3.scss +0 -7
- package/components/block-social-networks-v3/social-networks-v3.twig +0 -24
- package/components/block-spacer-v3/group_686b8cb48c708.json +0 -131
- package/components/block-spacer-v3/spacer-v3.js +0 -8
- package/components/block-spacer-v3/spacer-v3.scss +0 -19
- package/components/block-spacer-v3/spacer-v3.twig +0 -13
- package/components/block-spotify-embed-v3/group_67d04c4c4cf78.json +0 -120
- package/components/block-spotify-embed-v3/spotify-embed-v3.js +0 -7
- package/components/block-spotify-embed-v3/spotify-embed-v3.scss +0 -11
- package/components/block-spotify-embed-v3/spotify-embed-v3.twig +0 -23
- package/components/block-standard-content-v3/group_68655756737c9.json +0 -344
- package/components/block-standard-content-v3/standard-content-v3.js +0 -39
- package/components/block-standard-content-v3/standard-content-v3.scss +0 -11
- package/components/block-standard-content-v3/standard-content-v3.twig +0 -46
- package/components/block-sticky-buy-cta-v3/group_68b061bb56543.json +0 -172
- package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +0 -7
- package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.scss +0 -2
- package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.twig +0 -92
- package/components/block-sub-group-container-v3/group_686ceba7d6066.json +0 -2142
- package/components/block-sub-group-container-v3/sub-group-container-v3.js +0 -9
- package/components/block-sub-group-container-v3/sub-group-container-v3.scss +0 -27
- package/components/block-sub-group-container-v3/sub-group-container-v3.twig +0 -59
- package/components/block-video-content-v3/group_687190b8d26df.json +0 -169
- package/components/block-video-content-v3/video-content-v3.js +0 -12
- package/components/block-video-content-v3/video-content-v3.scss +0 -123
- package/components/block-video-content-v3/video-content-v3.twig +0 -26
- package/components/component-accent-image-v3/accent-image-v3.twig +0 -119
- package/components/component-accent-image-v3/group_686cd5547efd2.json +0 -975
- package/components/component-accent-text-v3/accent-text-v3-extra.scss +0 -2
- package/components/component-accent-text-v3/accent-text-v3.scss +0 -60
- package/components/component-accent-text-v3/group_686b91fed8f5f.json +0 -220
- package/components/component-accordion-v3/accordion-v3.js +0 -113
- package/components/component-accordion-v3/accordion-v3.scss +0 -189
- package/components/component-accordion-v3/accordion-v3.twig +0 -39
- package/components/component-accordion-v3/group_66ab7edfc6d63.json +0 -535
- package/components/component-animations-style-v3/animations-style-v3.twig +0 -5
- package/components/component-animations-v3/animations-v3.scss +0 -161
- package/components/component-animations-v3/animations-v3.twig +0 -19
- package/components/component-animations-v3/group_689f39c37980a.json +0 -499
- package/components/component-better-reviews-v3/better-reviews-v3.scss +0 -137
- package/components/component-block-padding-v3/block-padding-v3.scss +0 -64
- package/components/component-block-padding-v3/block-padding-v3.twig +0 -33
- package/components/component-block-padding-v3/group_689f66f3e26df.json +0 -535
- package/components/component-block-settings-v3/block-settings-v3.scss +0 -46
- package/components/component-block-settings-v3/block-settings-v3.twig +0 -34
- package/components/component-block-settings-v3/group_689f649af2ac4.json +0 -983
- package/components/component-blockquote-v3/blockquote-v3.scss +0 -54
- package/components/component-box-shadow-v3/box-shadow-v3.scss +0 -12
- package/components/component-buy-now-button-v3/buy-now-buttons-v3.twig +0 -69
- package/components/component-carousel-fields-v3/group_686fd30f4d873.json +0 -3025
- package/components/component-child-block-video-fields/group_6852a4f384204.json +0 -536
- package/components/component-content-box-settings-v3/content-box-settings-v3.scss +0 -205
- package/components/component-content-box-settings-v3/content-box-settings-v3.twig +0 -156
- package/components/component-content-box-settings-v3/group_686e6ec702acc.json +0 -1729
- package/components/component-content-box-v3/content-box-v3.js +0 -6
- package/components/component-content-box-v3/content-box-v3.scss +0 -28
- package/components/component-content-box-v3/content-box-v3.twig +0 -23
- package/components/component-content-box-v3/group_686b8a4f1fe5d.json +0 -568
- package/components/component-content-image-v3/content-image-v3.scss +0 -33
- package/components/component-content-image-v3/content-image-v3.twig +0 -77
- package/components/component-content-image-v3/group_68722935c428f.json +0 -647
- package/components/component-core-body-close-v3/core-body-close-v3.twig +0 -2
- package/components/component-core-body-open-v3/core-body-open-v3.twig +0 -32
- package/components/component-core-group-container-styles-v3/core-group-container-styles-v3.scss +0 -48
- package/components/component-core-head-v3/core-head-v3.twig +0 -62
- package/components/component-cta-selection-v3/cta-selection-v3.twig +0 -256
- package/components/component-cta-selection-v3/group_686e93eb832a6.json +0 -1117
- package/components/component-e-shop-settings-v3/e-shop-settings-v3.twig +0 -114
- package/components/component-element-positioning-v3/element-positioning-v3.scss +0 -41
- package/components/component-element-positioning-v3/element-positioning-v3.twig +0 -42
- package/components/component-element-positioning-v3/group_6882281544263.json +0 -635
- package/components/component-endpoints/endpoints.php +0 -32
- package/components/component-flex-layout-container-v3/flex-layout-container-v3.scss +0 -38
- package/components/component-flex-layout-container-v3/flex-layout-container-v3.twig +0 -28
- package/components/component-flex-layout-container-v3/group_6887a026bbc33.json +0 -773
- package/components/component-global-content-max-width-v3/global-content-max-width-v3.twig +0 -10
- package/components/component-global-content-max-width-v3/group_63c83de4f0a99.json +0 -58
- package/components/component-gradient-overlay-v3/gradient-overlay-v3.scss +0 -43
- package/components/component-gradient-overlay-v3/gradient-overlay-v3.twig +0 -58
- package/components/component-gradient-overlay-v3/group_686fd9ca50b63.json +0 -495
- package/components/component-grid-gap-mults-v3/grid-gap-mults-v3.twig +0 -10
- package/components/component-grid-gap-mults-v3/group_689221b94ce69.json +0 -220
- package/components/component-grid-layout-container-v3/grid-layout-container-v3.scss +0 -154
- package/components/component-grid-layout-container-v3/grid-layout-container-v3.twig +0 -88
- package/components/component-grid-layout-container-v3/group_6882282e65bf2.json +0 -1525
- package/components/component-grid-layout-element-v3/grid-layout-element-v3.scss +0 -47
- package/components/component-grid-layout-element-v3/grid-layout-element-v3.twig +0 -23
- package/components/component-grid-layout-element-v3/group_68822860bda9f.json +0 -728
- package/components/component-nav-menu-v3/group_68da703f710ff.json +0 -432
- package/components/component-nav-menu-v3/nav-menu-v3.scss +0 -43
- package/components/component-nav-menu-v3/nav-menu-v3.twig +0 -75
- package/components/component-responsive-image-v3/group_6867bc53f1da8.json +0 -1515
- package/components/component-responsive-image-v3/responsive-image-v3.scss +0 -63
- package/components/component-responsive-image-v3/responsive-image-v3.twig +0 -71
- package/components/component-responsive-picture-element-v3/responsive-picture-element-v3.twig +0 -35
- package/components/component-responsive-show-hide/responsive-show-hide-v3.twig +0 -9
- package/components/component-social-media-share-v3/social-media-share-v3-extra.scss +0 -6
- package/components/component-social-media-share-v3/social-media-share-v3.scss +0 -131
- package/components/component-social-networks-v3/social-networks-v3.scss +0 -73
- package/components/component-social-networks-v3/social-networks-v3.twig +0 -43
- package/components/component-text-editor-settings-container-classes-v3/text-editor-settings-container-classes-v3.twig +0 -9
- package/components/component-text-editor-settings-element-classes-v3/text-editor-settings-element-classes-v3.twig +0 -13
- package/components/component-text-editor-settings-v3/group_687a4e2334e37.json +0 -1377
- package/components/component-text-editor-settings-variables-v3/text-editor-settings-variables-v3.twig +0 -61
- package/components/component-video-component-v3/video-component-v3.twig +0 -90
- package/components/component-video-fields-v3/group_6872282f44634.json +0 -1013
- package/components/component-video-trigger-button-v3/video-trigger-button-v3.twig +0 -14
- package/components/component-wysiwyg-editor-v3/group_6867e153af466.json +0 -127
- package/components/component-wysiwyg-editor-v3/wysiwyg-editor-v3.twig +0 -18
- package/components/core-block-editor-assets-v3/core-block-editor-assets-v3.php +0 -14
- package/components/core-core-block-render-function-v3/core-block-render-function-v3.php +0 -39
- package/components/core-core-design-settings-v3/core-design-settings-v3.php +0 -43
- package/components/core-core-post-overrides-v3/core-post-overrides-v3.php +0 -21
- package/components/core-core-themes/core-themes-v3.php +0 -68
- package/components/core-core-typography-v3/core-typography-v3.php +0 -239
- package/components/core-globals/globals.php +0 -39
- package/components/entrypoint-entry-point-classes-v3/entry-point-classes-v3.twig +0 -12
- package/components/entrypoint-entry-point-html-v3/entry-point-html-v3.twig +0 -19
- package/components/entrypoint-entry-point-style-v3/entry-point-style-v3.twig +0 -11
- package/components/fields-acf-wysiwyg-options-v3/acf-wysiwyg-options-v3.php +0 -221
- package/components/fields-animations-v3/animations-v3.scss +0 -127
- package/components/fields-archive-pages-v3/group_635e777ce46d4.json +0 -150
- package/components/fields-cocktail-info-v3/group_64c29b7f188ca.json +0 -686
- package/components/fields-content-container-settings-v3/content-container-settings-v3.scss +0 -213
- package/components/fields-content-container-v3/content-container-v3.js +0 -96
- package/components/fields-content-container-v3/content-container-v3.scss +0 -31
- package/components/fields-core-critical-v3/core-critical-v3.scss +0 -13
- package/components/fields-core-css-modules-v3/core-css-modules-v3.scss +0 -13
- package/components/fields-core-css-sizing-vars-v3/core-css-sizing-vars-v3.scss +0 -125
- package/components/fields-core-cta-v3/core-cta-v3.scss +0 -276
- package/components/fields-core-generic-v3/core-generic-v3.scss +0 -299
- package/components/fields-core-root-variables-v3/core-root-variables-v3.scss +0 -47
- package/components/fields-core-typography-mixins-v3/core-typography-mixins-v3.scss +0 -1080
- package/components/fields-core-typography-v3/core-typography-v3.scss +0 -457
- package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.js +0 -270
- package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.scss +0 -106
- package/components/fields-drink-responsibly-notice-v3/group_68751257883ad.json +0 -266
- package/components/fields-dynamic-critical-css-v3/group_65abcd463e8d0.json +0 -126
- package/components/fields-e-shop-settings-v3/e-shop-settings-v3.twig +0 -87
- package/components/fields-e-shop-settings-v3/group_650b24b4e623d.json +0 -803
- package/components/fields-global-preload-v3/group_65e0bd35e781b.json +0 -289
- package/components/fields-image-management-service-v3/group_677813165b633.json +0 -149
- package/components/fields-ingredients-list/group_6900f19dadebf.json +0 -225
- package/components/fields-modal-popup-content-v3/group_689876f1ee3fc.json +0 -403
- package/components/fields-modal-popup-content-v3/modal-popup-content-v3.twig +0 -18
- package/components/fields-post-info-v3/group_6867bbe167dd2.json +0 -1089
- package/components/fields-product-info-v3/group_689098dd3a131.json +0 -721
- package/components/fields-upload-filesize-limit-v3/group_659d259760a1d.json +0 -56
- package/components/fields-video-management-services-v3/group_67b4cac05cb30.json +0 -146
- package/components/webc-counter-display/counter-display.css +0 -2
- package/components/webc-counter-display/counter-display.html +0 -5
- package/components/webc-counter-display/counter-display.js +0 -30
- package/components/webc-counter-display/index.html +0 -30
- package/components/webc-layout-container/index.html +0 -108
- package/components/webc-layout-container/layout-container.css +0 -9
- package/components/webc-layout-container/layout-container.html +0 -5
- package/components/webc-layout-container/layout-container.js +0 -22
- package/components/webc-loadmore-trigger/index.html +0 -30
- package/components/webc-loadmore-trigger/loadmore-trigger.css +0 -20
- package/components/webc-loadmore-trigger/loadmore-trigger.html +0 -6
- package/components/webc-loadmore-trigger/loadmore-trigger.js +0 -34
- package/components/webc-post-carousel-display-module/index.html +0 -30
- package/components/webc-post-carousel-display-module/post-carousel-display-module.css +0 -36
- package/components/webc-post-carousel-display-module/post-carousel-display-module.html +0 -5
- package/components/webc-post-carousel-display-module/post-carousel-display-module.js +0 -48
- package/components/webc-post-filter-module/dev-content/amber.webp +0 -0
- package/components/webc-post-filter-module/dev-content/bluey.webp +0 -0
- package/components/webc-post-filter-module/dev-content/chucky-vanille.webp +0 -0
- package/components/webc-post-filter-module/dev-content/dev-content.js +0 -347
- package/components/webc-post-filter-module/dev-content/dev-contentlocal.js +0 -362
- package/components/webc-post-filter-module/dev-content/fat-gigio-basket-life.webp +0 -0
- package/components/webc-post-filter-module/dev-content/fat-gigio-kitten.webp +0 -0
- package/components/webc-post-filter-module/dev-content/fat-gigio-sleepy.webp +0 -0
- package/components/webc-post-filter-module/dev-content/kai-lounging.webp +0 -0
- package/components/webc-post-filter-module/dev-content/kai-selfie.webp +0 -0
- package/components/webc-post-filter-module/dev-content/kai.webp +0 -0
- package/components/webc-post-filter-module/dev-content/lulu-mad.webp +0 -0
- package/components/webc-post-filter-module/dev-content/lulu-serious.webp +0 -0
- package/components/webc-post-filter-module/dev-content/martha-on-the-mat.webp +0 -0
- package/components/webc-post-filter-module/dev-content/max-on-the-mat.webp +0 -0
- package/components/webc-post-filter-module/dev-content/mephy-dreams-of-mice.webp +0 -0
- package/components/webc-post-filter-module/dev-content/mr-business-doing-work.webp +0 -0
- package/components/webc-post-filter-module/dev-content/mr-business-on-top.webp +0 -0
- package/components/webc-post-filter-module/dev-content/peanut-keeping-an-eye.webp +0 -0
- package/components/webc-post-filter-module/dev-content/pete-at-work.webp +0 -0
- package/components/webc-post-filter-module/dev-content/pete-bath.webp +0 -0
- package/components/webc-post-filter-module/dev-content/pete-dinosaur.webp +0 -0
- package/components/webc-post-filter-module/dev-content/pete-lawn.webp +0 -0
- package/components/webc-post-filter-module/dev-content/pete-snacks.webp +0 -0
- package/components/webc-post-filter-module/dev-content/ramses-kitten.webp +0 -0
- package/components/webc-post-filter-module/dev-content/ramses-school-day.webp +0 -0
- package/components/webc-post-filter-module/dev-content/ramses-tired.webp +0 -0
- package/components/webc-post-filter-module/dev-content/remy-garden-contemplation.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-field.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-luxury-2.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-luxury.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-puppy-good-dog.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-puppy-pose.webp +0 -0
- package/components/webc-post-filter-module/dev-content/sky-security.webp +0 -0
- package/components/webc-post-filter-module/dev-content/vanille-asleep.webp +0 -0
- package/components/webc-post-filter-module/dev-content/vanille-bass.webp +0 -0
- package/components/webc-post-filter-module/dev-content/vanille-party.webp +0 -0
- package/components/webc-post-filter-module/dev-content/vanille-puppy-eyes.webp +0 -0
- package/components/webc-post-filter-module/dev-content/vanille-puppy.webp +0 -0
- package/components/webc-post-filter-module/index.html +0 -30
- package/components/webc-post-filter-module/post-filter-module.css +0 -59
- package/components/webc-post-filter-module/post-filter-module.html +0 -13
- package/components/webc-post-filter-module/post-filter-module.js +0 -359
- package/components/webc-post-filter-module-no-group/index.html +0 -30
- package/components/webc-post-filter-module-no-group/post-filter-module-no-group.css +0 -59
- package/components/webc-post-filter-module-no-group/post-filter-module-no-group.html +0 -13
- package/components/webc-post-filter-module-no-group/post-filter-module-no-group.js +0 -312
- package/components/webc-post-grid-display-module/index.html +0 -30
- package/components/webc-post-grid-display-module/post-grid-display-module.css +0 -42
- package/components/webc-post-grid-display-module/post-grid-display-module.html +0 -6
- package/components/webc-post-grid-display-module/post-grid-display-module.js +0 -48
- package/components/webc-ptfg-9000/index.html +0 -108
- package/components/webc-ptfg-9000/ptfg-9000.css +0 -14
- package/components/webc-ptfg-9000/ptfg-9000.html +0 -1
- package/components/webc-ptfg-9000/ptfg-9000.js +0 -42
- package/components/webc-responsive-image/index.html +0 -108
- package/components/webc-responsive-image/layout-container.css +0 -9
- package/components/webc-responsive-image/layout-container.js +0 -22
- package/components/webc-responsive-image/responsive-image.html +0 -15
- package/components/webc-slot-test/slot-test.html +0 -25
- package/components/webc-text-input-trigger/index.html +0 -30
- package/components/webc-text-input-trigger/text-input-trigger.css +0 -6
- package/components/webc-text-input-trigger/text-input-trigger.html +0 -4
- package/components/webc-text-input-trigger/text-input-trigger.js +0 -33
- package/components/webc-toggle-trigger/index.html +0 -30
- package/components/webc-toggle-trigger/toggle-trigger.css +0 -13
- package/components/webc-toggle-trigger/toggle-trigger.html +0 -8
- package/components/webc-toggle-trigger/toggle-trigger.js +0 -53
- package/createDynamicBlockScss-v3.js +0 -25
- package/createJsAssets-v3.js +0 -35
- package/createJsAssets.js +0 -31
- package/createNewBlock.js +0 -131
- package/createNewChildBlock2.js +0 -142
- package/createPreviewScss.js +0 -35
- package/datalayer-tools.mjs +0 -2
- package/duplicateBlock.js +0 -123
- package/esbuild.mjs +0 -87
- package/exportAllBlocks.js +0 -144
- package/exportBlock.js +0 -109
- package/exportChildBlock.js +0 -102
- package/exportCustomCachesToLibrary.js +0 -73
- package/exportEntrypointToLibrary.js +0 -76
- package/exportImagesToLibrary.js +0 -68
- package/exportSEOExtrasToLibrary.js +0 -73
- package/exportToLibrary.js +0 -548
- package/importBlock.js +0 -92
- package/importChildBlock.js +0 -76
- package/install-component.js +0 -204
- package/list-components.js +0 -9
- package/new-block-templates/template-block-json.js +0 -37
- package/new-block-templates/template-default.js +0 -21
- package/new-block-templates/template-js-blank.js +0 -12
- package/new-block-templates/template-scss-blank.js +0 -6
- package/no-audio.vtt +0 -4
- package/onion-loader-dev.js +0 -260
- package/onion-loader-local.js +0 -222
- package/public/.gitkeep +0 -0
- package/public/assetList.mjs +0 -3
- package/public/block-accent-image-v3/accent-image-v3.css +0 -2
- package/public/block-accent-image-v3/accent-image-v3.js +0 -7
- package/public/block-accordion-v3/accordion-v3.css +0 -380
- package/public/block-accordion-v3/accordion-v3.js +0 -117
- package/public/block-back-to-top-button-v3/back-to-top-button-v3.css +0 -64
- package/public/block-back-to-top-button-v3/back-to-top-button-v3.js +0 -12
- package/public/block-betterreviews-display-v3/betterreviews-display-v3.css +0 -95
- package/public/block-betterreviews-display-v3/betterreviews-display-v3.js +0 -7
- package/public/block-block-interactions-v3/block-interactions-v3.css +0 -36
- package/public/block-block-interactions-v3/block-interactions-v3.js +0 -44
- package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.css +0 -187
- package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +0 -185
- package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.css +0 -268
- package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.js +0 -93
- package/public/block-cover-link-v3/cover-link-v3.css +0 -8
- package/public/block-cover-link-v3/cover-link-v3.js +0 -7
- package/public/block-divider-v3/divider-v3.css +0 -74
- package/public/block-divider-v3/divider-v3.js +0 -7
- package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.css +0 -98
- package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.js +0 -44
- package/public/block-form-selection-v3/form-selection-v3.css +0 -31
- package/public/block-form-selection-v3/form-selection-v3.js +0 -61
- package/public/block-gradient-layer-v3/gradient-layer-v3.css +0 -45
- package/public/block-gradient-layer-v3/gradient-layer-v3.js +0 -7
- package/public/block-group-container-v3/group-container-v3.css +0 -303
- package/public/block-group-container-v3/group-container-v3.js +0 -7
- package/public/block-lottie-content-v3/lottie-content-v3.css +0 -0
- package/public/block-lottie-content-v3/lottie-content-v3.js +0 -25
- package/public/block-market-selector-v3/market-selector-v3.css +0 -136
- package/public/block-market-selector-v3/market-selector-v3.js +0 -7
- package/public/block-modal-form-v3/modal-form-v3.css +0 -0
- package/public/block-modal-form-v3/modal-form-v3.js +0 -44
- package/public/block-nav-menu-container-v3/nav-menu-container-v3.css +0 -3
- package/public/block-nav-menu-container-v3/nav-menu-container-v3.js +0 -7
- package/public/block-post-info-v3/post-info-v3.css +0 -1148
- package/public/block-post-info-v3/post-info-v3.js +0 -7
- package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.css +0 -873
- package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.js +0 -13
- package/public/block-product-info-v3/product-info-v3.css +0 -846
- package/public/block-product-info-v3/product-info-v3.js +0 -7
- package/public/block-raw-html-v3/raw-html-v3.css +0 -0
- package/public/block-raw-html-v3/raw-html-v3.js +0 -7
- package/public/block-responsive-table-v3/responsive-table-v3.css +0 -50
- package/public/block-responsive-table-v3/responsive-table-v3.js +0 -7
- package/public/block-scrolling-banner-v3/scrolling-banner-v3.css +0 -93
- package/public/block-scrolling-banner-v3/scrolling-banner-v3.js +0 -118
- package/public/block-section-separator-v3/section-separator-v3.css +0 -43
- package/public/block-section-separator-v3/section-separator-v3.js +0 -7
- package/public/block-single-column-container-v3/single-column-container-v3.css +0 -14
- package/public/block-single-column-container-v3/single-column-container-v3.js +0 -7
- package/public/block-single-responsive-image-v3/single-responsive-image-v3.css +0 -61
- package/public/block-single-responsive-image-v3/single-responsive-image-v3.js +0 -7
- package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.css +0 -20
- package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.js +0 -44
- package/public/block-site-logo-container-v3/site-logo-container-v3.css +0 -18
- package/public/block-site-logo-container-v3/site-logo-container-v3.js +0 -7
- package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.css +0 -12
- package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +0 -7
- package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.css +0 -25
- package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +0 -8
- package/public/block-social-networks-v3/social-networks-v3.css +0 -74
- package/public/block-social-networks-v3/social-networks-v3.js +0 -7
- package/public/block-spacer-v3/spacer-v3.css +0 -16
- package/public/block-spacer-v3/spacer-v3.js +0 -2
- package/public/block-spotify-embed-v3/spotify-embed-v3.css +0 -7
- package/public/block-spotify-embed-v3/spotify-embed-v3.js +0 -7
- package/public/block-standard-content-v3/standard-content-v3.css +0 -423
- package/public/block-standard-content-v3/standard-content-v3.js +0 -7
- package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.css +0 -0
- package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +0 -7
- package/public/block-sub-group-container-v3/sub-group-container-v3.css +0 -288
- package/public/block-sub-group-container-v3/sub-group-container-v3.js +0 -2
- package/public/block-video-content-v3/video-content-v3.css +0 -102
- package/public/block-video-content-v3/video-content-v3.js +0 -11
- package/public/dynamicBlockScss-v3.css +0 -6392
- package/public/dynamicBlockScss-v3.scss +0 -37
- package/public/jsAssets.mjs +0 -4
- package/public/publicBundleBase.css +0 -4742
- package/public/publicBundleBase.scss +0 -11
- package/removeBlock.js +0 -124
- package/update-all-components.js +0 -135
- package/update-component.js +0 -537
- package/update-template.js +0 -537
- /package/{.prettierrc → onion-videocontroller/.prettierrc} +0 -0
- /package/{breakpoints.scss → onion-videocontroller/breakpoints.scss} +0 -0
package/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import VideoController from './onion-videocontroller/onion-videocontroller.js';
|
|
2
|
+
import ModalController from './onion-modalcontroller/onion-modalcontroller.js';
|
|
3
|
+
export * from './onion-utils.mjs';
|
|
4
|
+
export * from './entry-animation-observer.js';
|
|
5
|
+
|
|
6
|
+
export default VideoController;
|
|
7
|
+
export { VideoController, ModalController };
|
|
8
|
+
export { default as modalController } from './onion-modalcontroller/onion-modalcontroller.js';
|
|
9
|
+
export { default as videoController } from './onion-videocontroller/onion-videocontroller.js';
|
|
10
|
+
export { default as onionLoader } from './onion-loader.js';
|
package/onion-loader.js
CHANGED
|
@@ -52,27 +52,35 @@ function lazyloaderInit() {
|
|
|
52
52
|
options.debugLogMessages && console.log('Lazy Loader initialized!');
|
|
53
53
|
options.lazyBlocksToSearchFor = [];
|
|
54
54
|
assetArray.forEach((asset) => {
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
) {
|
|
55
|
+
// if (
|
|
56
|
+
// asset.assetKey.includes('-v3') &&
|
|
57
|
+
// !asset.assetKey.includes('sub-block')
|
|
58
|
+
// ) {
|
|
59
|
+
// options.assetMap[asset.assetKey] = {
|
|
60
|
+
// js: () =>
|
|
61
|
+
// import(
|
|
62
|
+
// `Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
|
|
63
|
+
// ),
|
|
64
|
+
// // import(
|
|
65
|
+
// // `NodeModules/@total_onion/onion-library/components/block-${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
|
|
66
|
+
// // ),
|
|
67
|
+
// css: options.ignoreCss === true
|
|
68
|
+
// };
|
|
69
|
+
// }
|
|
70
|
+
if (asset.assetKey.includes('-v3')) {
|
|
59
71
|
options.assetMap[asset.assetKey] = {
|
|
60
72
|
js: () =>
|
|
61
73
|
import(
|
|
62
|
-
`
|
|
74
|
+
`Assets/sub-blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
|
|
63
75
|
),
|
|
64
|
-
css: options.ignoreCss ===
|
|
76
|
+
css: options.ignoreCss === false
|
|
65
77
|
};
|
|
66
|
-
} else {
|
|
67
78
|
}
|
|
68
|
-
if (
|
|
69
|
-
options.filePrefix === 'nodemodules' &&
|
|
70
|
-
!asset.assetKey.includes('-v3')
|
|
71
|
-
) {
|
|
79
|
+
if (!asset.assetKey.includes('-v3')) {
|
|
72
80
|
options.assetMap[asset.assetKey] = {
|
|
73
81
|
js: () =>
|
|
74
82
|
import(
|
|
75
|
-
`Assets/
|
|
83
|
+
`Assets/blocks/${asset.assetKey}/${asset.assetKey}${options.fileSuffixJs}`
|
|
76
84
|
),
|
|
77
85
|
css: options.ignoreCss === false
|
|
78
86
|
};
|
|
@@ -236,7 +244,7 @@ export function loadCss(assetKey) {
|
|
|
236
244
|
assetKey.includes('-v3')
|
|
237
245
|
) {
|
|
238
246
|
import(
|
|
239
|
-
/* webpackChunkName: "[request]" */ `
|
|
247
|
+
/* webpackChunkName: "[request]" */ `Assets/sub-blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
|
|
240
248
|
).then(() => resolve(true));
|
|
241
249
|
} else if (
|
|
242
250
|
options.css === true &&
|
|
@@ -244,7 +252,7 @@ export function loadCss(assetKey) {
|
|
|
244
252
|
!assetKey.includes('-v3')
|
|
245
253
|
) {
|
|
246
254
|
import(
|
|
247
|
-
/* webpackChunkName: "[request]" */ `Assets/
|
|
255
|
+
/* webpackChunkName: "[request]" */ `Assets/blocks/${assetKey}/${assetKey}${options.fileSuffixCss}`
|
|
248
256
|
).then(() => resolve(true));
|
|
249
257
|
} else {
|
|
250
258
|
return resolve(true);
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
export default class modalController {
|
|
2
|
+
constructor(settings = {}) {
|
|
3
|
+
let defaultGlobalSettings = {
|
|
4
|
+
bodyClass: "modal-active",
|
|
5
|
+
activeStateClass: "modal-active",
|
|
6
|
+
enableDebugLogs: true,
|
|
7
|
+
userInteracted: false,
|
|
8
|
+
addCloseButton: true,
|
|
9
|
+
closeSelector: "#modal-controller-popup__close-btn",
|
|
10
|
+
closeDelay: 1,
|
|
11
|
+
closingClass: "something",
|
|
12
|
+
activateDelay: 0,
|
|
13
|
+
lenis: false,
|
|
14
|
+
};
|
|
15
|
+
this.scanForNewTriggers();
|
|
16
|
+
|
|
17
|
+
console.log("hello!");
|
|
18
|
+
|
|
19
|
+
if (modalController.instance instanceof modalController) {
|
|
20
|
+
return modalController.instance;
|
|
21
|
+
}
|
|
22
|
+
modalController.instance = this;
|
|
23
|
+
this.globalSettings = { ...defaultGlobalSettings, ...settings };
|
|
24
|
+
this.enableDebugLogs = this.globalSettings.enableDebugLogs;
|
|
25
|
+
this.handleModalTriggers();
|
|
26
|
+
this.handleBgClicks();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
scanForNewTriggers() {
|
|
30
|
+
this.globalModalTriggers = document.body.querySelectorAll(
|
|
31
|
+
"[data-modalpopuptrigger]",
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
handleBgClicks() {
|
|
35
|
+
window.addEventListener("click", (event) => {
|
|
36
|
+
const modalPopup = document.getElementById("modal-controller-popup");
|
|
37
|
+
this.closePopupOnClickOutside(event, modalPopup);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
handleCloseButtonClicks() {
|
|
41
|
+
const modalPopup = document.getElementById("modal-controller-popup");
|
|
42
|
+
if (!modalPopup) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const closeButtons = modalPopup.querySelectorAll(
|
|
46
|
+
this.globalSettings.closeSelector || "#modal-controller-popup__close-btn",
|
|
47
|
+
);
|
|
48
|
+
closeButtons.forEach((closeButton) => {
|
|
49
|
+
if (closeButton.dataset.modalpopupCloseBound === "true") {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
closeButton.dataset.modalpopupCloseBound = "true";
|
|
53
|
+
closeButton.addEventListener("click", () => {
|
|
54
|
+
const modalPopup = document.getElementById("modal-controller-popup");
|
|
55
|
+
this.closePopup(modalPopup);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
handleModalTriggers() {
|
|
60
|
+
this.globalModalTriggers.forEach((trigger) => {
|
|
61
|
+
trigger.addEventListener("click", () => {
|
|
62
|
+
this.triggerModalPopup(trigger.dataset.modalpopuptrigger);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
triggerModalPopup(triggerName) {
|
|
67
|
+
let modalPopup = document.getElementById("modal-controller-popup");
|
|
68
|
+
if (!modalPopup) {
|
|
69
|
+
const modalPopupHtml = `<div class="modal-controller-popup" id="modal-controller-popup">
|
|
70
|
+
<div class="modal-controller-popup__container">
|
|
71
|
+
${this.globalSettings.addCloseButton ? '<span class="modal-controller-popup__close-btn" id="modal-controller-popup__close-btn"></span>' : ""}
|
|
72
|
+
<div class="modal-controller-popup__content"></div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>`;
|
|
75
|
+
document.body.insertAdjacentHTML("beforeend", modalPopupHtml);
|
|
76
|
+
modalPopup = document.getElementById("modal-controller-popup");
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (!modalPopup) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const popupContent = document.querySelector(
|
|
84
|
+
".modal-controller-popup__content",
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
if (!popupContent) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
let templateContent;
|
|
92
|
+
|
|
93
|
+
const modalPopupContent = document.querySelector(
|
|
94
|
+
`[data-modalpopupcontent=${triggerName}]`,
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
if (!modalPopupContent) {
|
|
98
|
+
this.closePopup(modalPopup);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//Check if the actual content element is already in the popup content container, if not - move it there.
|
|
103
|
+
if (
|
|
104
|
+
!popupContent.querySelector(`[data-modalpopupcontent=${triggerName}]`)
|
|
105
|
+
) {
|
|
106
|
+
if (modalPopupContent) {
|
|
107
|
+
templateContent = modalPopupContent;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (modalPopupContent.nodeName === "TEMPLATE") {
|
|
111
|
+
templateContent = modalPopupContent.content;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
popupContent.appendChild(templateContent);
|
|
115
|
+
} else {
|
|
116
|
+
templateContent = popupContent.querySelector(
|
|
117
|
+
`[data-modalpopupcontent=${triggerName}]`,
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const activateDelay = Number(this.globalSettings.activateDelay) || 0;
|
|
122
|
+
if (activateDelay > 0) {
|
|
123
|
+
templateContent.classList.remove("active");
|
|
124
|
+
window.setTimeout(() => {
|
|
125
|
+
templateContent.classList.add("active");
|
|
126
|
+
}, activateDelay);
|
|
127
|
+
} else {
|
|
128
|
+
templateContent.classList.add("active");
|
|
129
|
+
}
|
|
130
|
+
requestAnimationFrame(() => {
|
|
131
|
+
modalPopup.classList.add("open");
|
|
132
|
+
document.documentElement.classList.add("lock-position");
|
|
133
|
+
if (this.globalSettings.lenis) {
|
|
134
|
+
document.body.dataset.lenisPrevent = "true";
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
this.handleCloseButtonClicks();
|
|
138
|
+
}
|
|
139
|
+
closePopup(modalPopup) {
|
|
140
|
+
if (!modalPopup) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
modalPopup.classList.remove("open");
|
|
144
|
+
document.documentElement.classList.remove("lock-position");
|
|
145
|
+
if (this.globalSettings.lenis) {
|
|
146
|
+
delete document.body.dataset.lenisPrevent;
|
|
147
|
+
}
|
|
148
|
+
const popupContent = modalPopup.querySelector(
|
|
149
|
+
".modal-controller-popup__content",
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
if (popupContent) {
|
|
153
|
+
const activeContents = popupContent.querySelectorAll(
|
|
154
|
+
"[data-modalpopupcontent].active",
|
|
155
|
+
);
|
|
156
|
+
const closeDelay = Number(this.globalSettings.closeDelay) || 0;
|
|
157
|
+
const closingClass = this.globalSettings.closingClass;
|
|
158
|
+
|
|
159
|
+
if (closeDelay > 0 && closingClass) {
|
|
160
|
+
activeContents.forEach((activeContent) => {
|
|
161
|
+
activeContent.classList.add(closingClass);
|
|
162
|
+
});
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
activeContents.forEach((activeContent) => {
|
|
165
|
+
activeContent.classList.remove(closingClass);
|
|
166
|
+
});
|
|
167
|
+
}, closeDelay);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
activeContents.forEach((activeContent) => {
|
|
171
|
+
activeContent.classList.remove("active");
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
closePopupOnClickOutside(event, modalPopup) {
|
|
176
|
+
if (event.target === modalPopup) {
|
|
177
|
+
this.closePopup(modalPopup);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
setGlobalSettings(settings = {}) {
|
|
181
|
+
this.globalSettings = { ...this.globalSettings, ...settings };
|
|
182
|
+
}
|
|
183
|
+
}
|
package/onion-utils.mjs
CHANGED
|
@@ -88,24 +88,24 @@ export function inCriticalCssConfig(assetKey) {
|
|
|
88
88
|
return true;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
export function loadCss(assetKey, options = { css: true }) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
91
|
+
// /**
|
|
92
|
+
// * Dynamically loads the css for the block if it has not already been included in critical css or the css property is set to false.
|
|
93
|
+
// * @param {string} assetKey The assetkey string of the block.
|
|
94
|
+
// * @param {object} options The options object which will at the very least contain the css property set to true.
|
|
95
|
+
// * @returns {promise}
|
|
96
|
+
// */
|
|
97
|
+
// export function loadCss(assetKey, options = { css: true }) {
|
|
98
|
+
// const promise = new Promise((resolve) => {
|
|
99
|
+
// if (options.css === true && !inCriticalCssConfig(assetKey)) {
|
|
100
|
+
// import(
|
|
101
|
+
// /* webpackChunkName: "[request]" */ `Assets/scss/blocks/${assetKey}.scss`
|
|
102
|
+
// ).then(() => resolve(true));
|
|
103
|
+
// } else {
|
|
104
|
+
// return resolve(true);
|
|
105
|
+
// }
|
|
106
|
+
// });
|
|
107
|
+
// return promise;
|
|
108
|
+
// }
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
111
|
* Checks for browser, device and OS and then adds the relevant classes to the html tag.
|
|
@@ -680,7 +680,6 @@ const api = {
|
|
|
680
680
|
isEmailValid,
|
|
681
681
|
isInViewport,
|
|
682
682
|
isTablet,
|
|
683
|
-
loadCss,
|
|
684
683
|
mobileCheck,
|
|
685
684
|
resizeDebouncer,
|
|
686
685
|
supportsWebp,
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# onion-videocontroller
|
|
2
|
+
|
|
3
|
+
Multi format video player with optional modal pop up.
|
|
4
|
+
The videocontroller houses multiple video implementations as modules which it calls upon depending on the type of video the user wishes to play. This way all the necessary code plus lazyloading optimisations can be implemented separately for each video type.
|
|
5
|
+
Given that the videocontroller builds a dictionary of all the video containers and video triggers that have been passed to it, it can do things like stop currently playing videos when a new video is started, regardless of which type of video they might be.
|
|
6
|
+
|
|
7
|
+
## Install via npm or yarn with:
|
|
8
|
+
|
|
9
|
+
`npm install @pernod-ricard-global-cms/onion-videocontroller`
|
|
10
|
+
or
|
|
11
|
+
`yarn add @pernod-ricard-global-cms/onion-videocontroller`
|
|
12
|
+
|
|
13
|
+
## Import the module in your js file with:
|
|
14
|
+
|
|
15
|
+
`import onion-videocontroller from '@pernod-ricard-global-cms/onion-videocontroller';`
|
|
16
|
+
|
|
17
|
+
Instantiate the class in your js file and pass a reference to an html element that is a parent of the video container.
|
|
18
|
+
In a typical cbl block js file this would be the block element, so it might look something like this.
|
|
19
|
+
|
|
20
|
+
`const videoController = new onion-videocontroller(block);`
|
|
21
|
+
|
|
22
|
+
## HTML/Twig
|
|
23
|
+
|
|
24
|
+
To get the most functionality out of the box, this package should be installed along with the the cbl component library.
|
|
25
|
+
|
|
26
|
+
https://github.com/Chivas-Brothers/cbl-component-library
|
|
27
|
+
|
|
28
|
+
If you install the fields: video from the component library you will receive 2 twig files with the standardized selection of variables already wired up to attributes in the html. By default they will be copied to the views/components folder but you can choose to not run the install command for the video fields and copy the twigs to wherever you would prefer.
|
|
29
|
+
|
|
30
|
+
`video-component.twig`
|
|
31
|
+
`video-trigger-button.twig`
|
|
32
|
+
|
|
33
|
+
You can then call the twig snippets with an include like this.
|
|
34
|
+
|
|
35
|
+
`<section>`
|
|
36
|
+
|
|
37
|
+
{{ include("components/video-trigger-button.twig", {fields : fields, block : block, blockClassName: blockClassName}, with_context = false) }}
|
|
38
|
+
|
|
39
|
+
{{ include("components/video-component.twig", {fields : fields, block : block, blockClassName: blockClassName}, with_context = false) }}
|
|
40
|
+
|
|
41
|
+
`</section>`
|
|
42
|
+
|
|
43
|
+
The snippets don't need to be positioned in any special relationship to each other except that you need to put them somewhere within the container you intend to pass to the video controller.
|
|
44
|
+
|
|
45
|
+
The included twig files will receive the acf fields that are being passed to the block. Although it can work fine as it is, it is advisable to pass another variable with the classname of your block which will make handling the styling a little easier. You can do this by assigning the string of the classname to the blockClassName twig variable.
|
|
46
|
+
eg:
|
|
47
|
+
|
|
48
|
+
`<section>`
|
|
49
|
+
|
|
50
|
+
{% set blockClassName = 'simple-video-block' %}
|
|
51
|
+
|
|
52
|
+
{{ include("components/video-trigger-button.twig", {fields : fields, block : block, blockClassName: blockClassName}, with_context = false) }}
|
|
53
|
+
|
|
54
|
+
{{ include("components/video-component.twig", {fields : fields, block : block, blockClassName: blockClassName}, with_context = false) }}
|
|
55
|
+
|
|
56
|
+
`</section>`
|
|
57
|
+
|
|
58
|
+
## Styling
|
|
59
|
+
|
|
60
|
+
You can choose to do all the styling yourself in which case there is nothing left to import. However, there are some basic styles exported as mixins which are very easy to override and can get you to a workable result very quickly. You can import them directly from the package folder into your scss file and then include the mixin in the scope of your parent block class.
|
|
61
|
+
|
|
62
|
+
`@use 'NodeModules/@pernod-ricard-global-cms/onion-videocontroller/vc-styles';`
|
|
63
|
+
|
|
64
|
+
`.parent-block-class { @include vc-styles.basic(); }`
|
|
65
|
+
|
|
66
|
+
There is also a mixin for adding default styling to the pop up modal which can be very handy. You can import that in a similar way, only this time it should be scoped to the html. The modal will be added and removed from the body tag, but overflow will need to added to the html in order to prevent scrolling. This is all build in to the modal styles
|
|
67
|
+
|
|
68
|
+
`@use 'NodeModules/@pernod-ricard-global-cms/onion-videocontroller/vc-styles';`
|
|
69
|
+
|
|
70
|
+
`html { @include vc-styles.modal(); }`
|
|
71
|
+
|
|
72
|
+
## ACF Fields
|
|
73
|
+
|
|
74
|
+
All the fields in the twig video-component template are intended to correspond to the fields in the generic video field group in the acf custom field groups. This video group can be injected into blocks within a tab or cloned into more nested sections of blocks.
|
|
75
|
+
It is recommended to use this field group as otherwise some of the features of the controller may not work. If you can't use the acf field group for some reason you can still hard code all the variables into the html attribute slots on the video component and trigger. It won't be dynamic but it can still work.
|
|
76
|
+
|
|
77
|
+
## Other useful features
|
|
78
|
+
|
|
79
|
+
Because it works as a singleton you can instantiate the videocontroller anywhere in your site and access some global methods.
|
|
80
|
+
Eg. Anywhere in the javascript on the page you can do,
|
|
81
|
+
|
|
82
|
+
`const videoController = new videcontroller();`
|
|
83
|
+
`videoController.stopAllVideos();`
|
|
84
|
+
|
|
85
|
+
These methods include:
|
|
86
|
+
|
|
87
|
+
- stopAllVideos(): This will stop all the videos on the page except for ones that have been assigned to autoplay.
|
|
88
|
+
- getGlobalSettings(): Returns the global videcontroller settings.
|
|
89
|
+
- getObjects(): Returns the collection of video containers and triggers that have been found by the controller.
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import youtubeVideo from './youtube-video.mjs';
|
|
2
|
+
import uploadVideo from './upload-video.mjs';
|
|
3
|
+
import vimeoVideo from './vimeo-video.mjs';
|
|
4
|
+
import {revealVideoElement, stopVideos, isWpAdmin} from './vcUtils.mjs';
|
|
5
|
+
|
|
6
|
+
export default class videoController {
|
|
7
|
+
constructor(parentContainer) {
|
|
8
|
+
const SRC_BREAKPOINT = 768;
|
|
9
|
+
let defaultGlobalSettings = {
|
|
10
|
+
srcBreakpoint: SRC_BREAKPOINT,
|
|
11
|
+
bodyClass: 'video-playing',
|
|
12
|
+
playingState: false,
|
|
13
|
+
playingStateClass: 'video-playing',
|
|
14
|
+
originDomain: globalThis.location?.origin,
|
|
15
|
+
enableDebugLogs: false,
|
|
16
|
+
isMobileSize: window.innerWidth < SRC_BREAKPOINT
|
|
17
|
+
};
|
|
18
|
+
if (parentContainer) {
|
|
19
|
+
this.videoContainers =
|
|
20
|
+
parentContainer.querySelectorAll('[data-videoid]');
|
|
21
|
+
}
|
|
22
|
+
this.videoReadyState = false;
|
|
23
|
+
if (videoController.instance instanceof videoController) {
|
|
24
|
+
videoController.instance.setVideoObjects(
|
|
25
|
+
this.videoReadyState,
|
|
26
|
+
this.videoContainers,
|
|
27
|
+
parentContainer
|
|
28
|
+
);
|
|
29
|
+
return videoController.instance;
|
|
30
|
+
}
|
|
31
|
+
videoController.instance = this;
|
|
32
|
+
this.globalSettings = defaultGlobalSettings;
|
|
33
|
+
this.enableDebugLogs = this.globalSettings.enableDebugLogs;
|
|
34
|
+
this.containerCollection = {};
|
|
35
|
+
this.setVideoObjects(
|
|
36
|
+
this.videoReadyState,
|
|
37
|
+
this.videoContainers,
|
|
38
|
+
this.triggers,
|
|
39
|
+
parentContainer
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Method for setting up the video container objects and adding the listeners to the triggers
|
|
44
|
+
* @param {array} videoContainers - The video containers you want to add to the controller
|
|
45
|
+
* @param {array} triggers - The triggers you want to add to the controller
|
|
46
|
+
* @param {HTMLElement} parentContainer - The parent container of the video containers/triggers
|
|
47
|
+
*/
|
|
48
|
+
setVideoObjects(videoReadyState, videoContainers, parentContainer) {
|
|
49
|
+
this.enableDebugLogs && console.log('Setting video Objects');
|
|
50
|
+
if (!videoContainers) {
|
|
51
|
+
this.enableDebugLogs &&
|
|
52
|
+
console.info(`Did not look for video containers`);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (videoContainers.length === 0) {
|
|
56
|
+
this.enableDebugLogs &&
|
|
57
|
+
console.info(
|
|
58
|
+
`could not find any video containers in ${parentContainer}`
|
|
59
|
+
);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
videoContainers.forEach((container) => {
|
|
64
|
+
if (!container) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const videoObject = {
|
|
68
|
+
videocontainer: container,
|
|
69
|
+
videotype: container.dataset?.videotype,
|
|
70
|
+
videoid: container.dataset?.videoid,
|
|
71
|
+
videoReadyState: videoReadyState,
|
|
72
|
+
videoplayer: false,
|
|
73
|
+
youtubeplayer: false,
|
|
74
|
+
vimeoplayer: false,
|
|
75
|
+
parentcontainer: parentContainer,
|
|
76
|
+
modalcontainer: '',
|
|
77
|
+
dataLayerPush: container.dataset.datalayerpush,
|
|
78
|
+
modal: Number(container.dataset?.modal),
|
|
79
|
+
isAdmin: isWpAdmin(),
|
|
80
|
+
fullscreen: Number(container.dataset?.fullscreen),
|
|
81
|
+
autoplay: this.setVideoAutoplay(container),
|
|
82
|
+
controls: Number(container.dataset?.controls),
|
|
83
|
+
loop: Number(container.dataset?.loop) || 0,
|
|
84
|
+
muted: Number(container.dataset?.muted) || 0,
|
|
85
|
+
sources: {
|
|
86
|
+
desktop: container.dataset?.desktopvideo,
|
|
87
|
+
mobile: container.dataset?.mobilevideo
|
|
88
|
+
},
|
|
89
|
+
instance: this,
|
|
90
|
+
globalSettings: this.getGlobalSettings()
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
if (this.containerCollection[videoObject.videoid]) {
|
|
94
|
+
let suffix = 1;
|
|
95
|
+
while (this.containerCollection[videoObject.videoid]) {
|
|
96
|
+
videoObject.videoid = videoObject.videoid + '-' + suffix;
|
|
97
|
+
suffix++;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
let scopeEl = container.parentElement;
|
|
102
|
+
while (scopeEl && !scopeEl.hasAttribute('parentcontainer')) {
|
|
103
|
+
scopeEl = scopeEl.parentElement;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const triggerScope = scopeEl ?? document;
|
|
107
|
+
const triggers = triggerScope.querySelectorAll(
|
|
108
|
+
`[data-triggerid='${container.dataset?.videoid}']`
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
videoObject.triggerScope = triggerScope;
|
|
112
|
+
|
|
113
|
+
if (triggers.length === 0) {
|
|
114
|
+
this.enableDebugLogs &&
|
|
115
|
+
console.log(
|
|
116
|
+
`could not find any triggers in ${parentContainer}`
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
triggers.forEach((trigger) => {
|
|
121
|
+
if (trigger?.dataset?.triggerid) {
|
|
122
|
+
trigger.dataset.triggerid = videoObject.videoid;
|
|
123
|
+
trigger.addEventListener('click', () => {
|
|
124
|
+
this.triggerVideo(
|
|
125
|
+
this.containerCollection[trigger.dataset.triggerid]
|
|
126
|
+
);
|
|
127
|
+
});
|
|
128
|
+
} else {
|
|
129
|
+
this.enableDebugLogs &&
|
|
130
|
+
console.log(
|
|
131
|
+
trigger,
|
|
132
|
+
`was missing an id so the listener could not be attached`
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
videoObject.trigger = triggers;
|
|
137
|
+
this.containerCollection[videoObject.videoid] = videoObject;
|
|
138
|
+
|
|
139
|
+
if (!videoObject.videoReadyState) {
|
|
140
|
+
if (videoObject.autoplay == 1) {
|
|
141
|
+
this.loadingSpinner(videoObject);
|
|
142
|
+
}
|
|
143
|
+
if (videoObject.videotype === 'upload') {
|
|
144
|
+
console.log('id', videoObject.videoid);
|
|
145
|
+
|
|
146
|
+
uploadVideo.uploadedVideoInit(videoObject);
|
|
147
|
+
}
|
|
148
|
+
if (videoObject.videotype === 'youtube') {
|
|
149
|
+
youtubeVideo.youtubeInit(videoObject);
|
|
150
|
+
}
|
|
151
|
+
if (videoObject.videotype === 'vimeo') {
|
|
152
|
+
vimeoVideo.vimeoInit(videoObject);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
setVideoReadyState(videoObject, isLoaded) {
|
|
158
|
+
videoObject.videoReadyState = isLoaded;
|
|
159
|
+
}
|
|
160
|
+
setVideoAutoplay(container) {
|
|
161
|
+
if (document.body.classList.contains('wp-admin')) {
|
|
162
|
+
return 0;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return this.globalSettings.isMobileSize
|
|
166
|
+
? Number(container.dataset?.autoplayMobile) || 0
|
|
167
|
+
: Number(container.dataset?.autoplay) || 0;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Method to return the global settings for the video controller.
|
|
171
|
+
* @returns {Object} - the global settings object.
|
|
172
|
+
*/
|
|
173
|
+
getGlobalSettings() {
|
|
174
|
+
return this.globalSettings;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Method to add or override the global controller settings.
|
|
178
|
+
* @param {Object} settings - Settings object that will be merged with the controller's existing settings.
|
|
179
|
+
*/
|
|
180
|
+
setGlobalSettings(settings = {}) {
|
|
181
|
+
this.globalSettings = {...this.globalSettings, ...settings};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Method for getting the current collection of containers and triggers.
|
|
185
|
+
* @returns {Object} - Object container the container and triggers collections.
|
|
186
|
+
*/
|
|
187
|
+
getObjects() {
|
|
188
|
+
const data = {
|
|
189
|
+
videos: this.containerCollection,
|
|
190
|
+
triggers: this.triggers
|
|
191
|
+
};
|
|
192
|
+
return data;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Method to determine which video to play and what type it is.
|
|
196
|
+
* @param {Object} videoObject - The video/trigger object that is used to identify which video element is being triggered.
|
|
197
|
+
*/
|
|
198
|
+
triggerVideo(videoObject) {
|
|
199
|
+
if (!videoObject.instance) {
|
|
200
|
+
videoObject.instance = this;
|
|
201
|
+
}
|
|
202
|
+
if (!videoObject.globalSettings) {
|
|
203
|
+
videoObject.globalSettings = this.getGlobalSettings();
|
|
204
|
+
}
|
|
205
|
+
this.loadingSpinner(videoObject);
|
|
206
|
+
stopVideos(videoObject);
|
|
207
|
+
switch (videoObject.videotype) {
|
|
208
|
+
case 'upload':
|
|
209
|
+
uploadVideo.triggerUploadedVideo(videoObject);
|
|
210
|
+
break;
|
|
211
|
+
case 'youtube':
|
|
212
|
+
youtubeVideo.triggerYoutube(videoObject);
|
|
213
|
+
break;
|
|
214
|
+
case 'vimeo':
|
|
215
|
+
vimeoVideo.triggerVimeo(videoObject);
|
|
216
|
+
break;
|
|
217
|
+
default:
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
stopAllVideos() {
|
|
222
|
+
stopVideos({videoid: '', instance: this}, true);
|
|
223
|
+
}
|
|
224
|
+
loadingSpinner(videoObject) {
|
|
225
|
+
const loadingWrapper = document.createElement('div');
|
|
226
|
+
loadingWrapper.className = 'loading-wrapper';
|
|
227
|
+
if (!videoObject.videocontainer) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
videoObject.videocontainer.appendChild(loadingWrapper);
|
|
231
|
+
revealVideoElement(videoObject);
|
|
232
|
+
|
|
233
|
+
const checkVideoReadyState = setInterval(() => {
|
|
234
|
+
if (videoObject.videoReadyState === true) {
|
|
235
|
+
clearInterval(checkVideoReadyState);
|
|
236
|
+
videoObject.videocontainer.removeChild(loadingWrapper);
|
|
237
|
+
}
|
|
238
|
+
}, 100);
|
|
239
|
+
}
|
|
240
|
+
}
|