@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
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
const enableDebugLogs = false;
|
|
2
|
+
|
|
3
|
+
export function dataLayerPush(eventData = { eventname: "", videoObject }) {
|
|
4
|
+
const videoType = eventData.videoObject.videotype;
|
|
5
|
+
let currentTime;
|
|
6
|
+
let duration;
|
|
7
|
+
let title;
|
|
8
|
+
let src;
|
|
9
|
+
let provider = "MediaLibrary";
|
|
10
|
+
|
|
11
|
+
if (videoType == "upload") {
|
|
12
|
+
currentTime = eventData.videoObject?.videoplayer?.currentTime;
|
|
13
|
+
duration = eventData.videoObject?.videoplayer?.duration;
|
|
14
|
+
src = eventData.videoObject?.videoplayer?.src;
|
|
15
|
+
title = src?.split("/").pop();
|
|
16
|
+
}
|
|
17
|
+
if (videoType == "youtube") {
|
|
18
|
+
provider = "YouTube";
|
|
19
|
+
currentTime = eventData.videoObject?.youtubeplayer?.getCurrentTime();
|
|
20
|
+
duration = eventData.videoObject?.youtubeplayer?.getDuration();
|
|
21
|
+
title = eventData.videoObject.youtubeplayer?.videoTitle;
|
|
22
|
+
src = eventData.videoObject.youtubeplayer.getVideoUrl();
|
|
23
|
+
}
|
|
24
|
+
if (videoType == "vimeo") {
|
|
25
|
+
provider = "Vimeo";
|
|
26
|
+
src = eventData.videoObject?.vimeoplayer?.src;
|
|
27
|
+
}
|
|
28
|
+
if (src.includes("imagekit")) {
|
|
29
|
+
provider = "ImageKit";
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const timeDiv = Math.floor((currentTime / duration) * 100);
|
|
33
|
+
let percent;
|
|
34
|
+
if (timeDiv < 25 || !duration) {
|
|
35
|
+
percent = 0;
|
|
36
|
+
if (eventData.videoObject.completed == true) {
|
|
37
|
+
percent = 100;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (timeDiv >= 25 && timeDiv < 50) {
|
|
41
|
+
percent = 25;
|
|
42
|
+
}
|
|
43
|
+
if (timeDiv >= 50 && timeDiv < 75) {
|
|
44
|
+
percent = 50;
|
|
45
|
+
}
|
|
46
|
+
if (timeDiv >= 75 && timeDiv < 100) {
|
|
47
|
+
percent = 75;
|
|
48
|
+
}
|
|
49
|
+
if (currentTime == duration) {
|
|
50
|
+
percent = 100;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let status = eventData.eventname;
|
|
54
|
+
if (eventData.eventname == "play") {
|
|
55
|
+
status = "start";
|
|
56
|
+
}
|
|
57
|
+
if (eventData.eventname == "ended") {
|
|
58
|
+
status = "complete";
|
|
59
|
+
}
|
|
60
|
+
const autoplay = eventData.videoObject.autoplay;
|
|
61
|
+
const loop = eventData.videoObject.loop;
|
|
62
|
+
if (eventData.eventname == "pause" && currentTime == duration) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const dataObj = {
|
|
67
|
+
event: "gcms_video",
|
|
68
|
+
video_title: title,
|
|
69
|
+
video_status: status,
|
|
70
|
+
video_provider: provider,
|
|
71
|
+
video_url: src,
|
|
72
|
+
video_percent: percent,
|
|
73
|
+
video_visible: true,
|
|
74
|
+
video_current_time: currentTime,
|
|
75
|
+
video_duration: duration,
|
|
76
|
+
video_autoplay: autoplay ? true : false,
|
|
77
|
+
video_loop: loop ? true : false,
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
window.dataLayer = window.dataLayer || [];
|
|
81
|
+
window.dataLayer.push(dataObj);
|
|
82
|
+
enableDebugLogs && console.log("🚀 ~ dataLayerPush ~ dataObj:", dataObj);
|
|
83
|
+
}
|
|
84
|
+
export function generateModal(videoObject) {
|
|
85
|
+
const { videocontainer, elementType } = videoObject;
|
|
86
|
+
let videoElementType = "";
|
|
87
|
+
switch (videoObject.videotype) {
|
|
88
|
+
case "upload":
|
|
89
|
+
videoElementType = "video";
|
|
90
|
+
break;
|
|
91
|
+
case "youtube":
|
|
92
|
+
videoElementType = "iframe";
|
|
93
|
+
break;
|
|
94
|
+
case "vimeo":
|
|
95
|
+
videoElementType = "iframe";
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
default:
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
let modalVideoElement = document.createElement(videoElementType);
|
|
102
|
+
if (videocontainer) {
|
|
103
|
+
let videoPlayer = videocontainer.querySelector(elementType);
|
|
104
|
+
modalVideoElement = videoPlayer.cloneNode();
|
|
105
|
+
}
|
|
106
|
+
const modalContainer = document.createElement("div");
|
|
107
|
+
const modalInner = document.createElement("div");
|
|
108
|
+
const modalClose = document.createElement("button");
|
|
109
|
+
modalClose.addEventListener("click", () => {
|
|
110
|
+
stopVideos(videoObject, true);
|
|
111
|
+
});
|
|
112
|
+
modalVideoElement.classList.add("cblvc-modal-container__video-player");
|
|
113
|
+
modalContainer.classList.add("cblvc-modal-container");
|
|
114
|
+
modalInner.classList.add("cblvc-modal-container__modal-inner");
|
|
115
|
+
modalClose.classList.add("cblvc-modal-container__modal-close");
|
|
116
|
+
modalInner.appendChild(modalVideoElement);
|
|
117
|
+
modalInner.appendChild(modalClose);
|
|
118
|
+
modalContainer.appendChild(modalInner);
|
|
119
|
+
document.body.appendChild(modalContainer);
|
|
120
|
+
videoObject.modalcontainer = modalContainer;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function destroyModal(videoObject) {
|
|
124
|
+
const { modalcontainer } = videoObject;
|
|
125
|
+
modalcontainer.remove();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export function isWpAdmin() {
|
|
129
|
+
return document.body.classList.contains("wp-admin") ? true : false;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export function revealVideoElement(videoObject) {
|
|
133
|
+
const {
|
|
134
|
+
videocontainer,
|
|
135
|
+
modal,
|
|
136
|
+
modalcontainer,
|
|
137
|
+
videoid,
|
|
138
|
+
isAdmin,
|
|
139
|
+
parentcontainer,
|
|
140
|
+
} = videoObject;
|
|
141
|
+
if (modal && !isAdmin) {
|
|
142
|
+
document.documentElement.classList.add("modal-video-playing");
|
|
143
|
+
addTriggerClass(videoObject, "video-playing");
|
|
144
|
+
modalcontainer.classList.add("video-playing");
|
|
145
|
+
} else {
|
|
146
|
+
document.body.classList.add("video-playing");
|
|
147
|
+
addTriggerClass(videoObject, "video-playing");
|
|
148
|
+
if (parentcontainer) {
|
|
149
|
+
parentcontainer.classList.add("video-playing");
|
|
150
|
+
}
|
|
151
|
+
videocontainer.classList.add("video-playing");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function hideVideoElement(videoObject) {
|
|
156
|
+
const {
|
|
157
|
+
videocontainer,
|
|
158
|
+
modal,
|
|
159
|
+
modalcontainer,
|
|
160
|
+
isAdmin,
|
|
161
|
+
parentcontainer,
|
|
162
|
+
videoid,
|
|
163
|
+
} = videoObject;
|
|
164
|
+
if (modal && !isAdmin) {
|
|
165
|
+
document.documentElement.classList.remove("modal-video-playing");
|
|
166
|
+
modalcontainer.classList.remove("video-playing");
|
|
167
|
+
setTimeout(() => {
|
|
168
|
+
modalcontainer.remove();
|
|
169
|
+
}, 1000);
|
|
170
|
+
videoObject.youtubeplayer = false;
|
|
171
|
+
removeTriggerClass(videoObject, "video-playing");
|
|
172
|
+
} else {
|
|
173
|
+
document.body.classList.remove("video-playing");
|
|
174
|
+
if (parentcontainer) {
|
|
175
|
+
parentcontainer.classList.remove("video-playing");
|
|
176
|
+
}
|
|
177
|
+
videocontainer.classList.remove("video-playing");
|
|
178
|
+
removeTriggerClass(videoObject, "video-playing");
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export function stopVideos(videoObject, stopEverything = false) {
|
|
182
|
+
const { videoid, instance } = videoObject;
|
|
183
|
+
enableDebugLogs && console.log("stopping all vids", stopEverything);
|
|
184
|
+
if (videoObject.modal && videoObject.modalcontainer && stopEverything) {
|
|
185
|
+
hideVideoElement(videoObject);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (!instance.containerCollection) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const keys = Object.keys(instance.containerCollection);
|
|
192
|
+
keys.forEach((key) => {
|
|
193
|
+
const collectionObject = instance.containerCollection[key];
|
|
194
|
+
if (
|
|
195
|
+
stopEverything ||
|
|
196
|
+
(collectionObject.videoid !== videoid && !collectionObject.autoplay)
|
|
197
|
+
) {
|
|
198
|
+
switch (collectionObject.videotype) {
|
|
199
|
+
case "upload":
|
|
200
|
+
collectionObject.videocontainer.querySelector("video").pause();
|
|
201
|
+
break;
|
|
202
|
+
case "youtube":
|
|
203
|
+
if (collectionObject.youtubeplayer) {
|
|
204
|
+
collectionObject.youtubeplayer.pauseVideo();
|
|
205
|
+
}
|
|
206
|
+
break;
|
|
207
|
+
case "vimeo":
|
|
208
|
+
if (collectionObject.vimeoplayer) {
|
|
209
|
+
collectionObject.vimeoplayer.pause();
|
|
210
|
+
}
|
|
211
|
+
break;
|
|
212
|
+
default:
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export function removeTriggerClass(videoObject, classname) {
|
|
220
|
+
const { videoid, triggerScope } = videoObject;
|
|
221
|
+
triggerScope
|
|
222
|
+
.querySelectorAll(`[data-triggerid="${videoid}"]`)
|
|
223
|
+
.forEach((trigger) => {
|
|
224
|
+
trigger.classList.remove(classname);
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
export function addTriggerClass(videoObject, classname) {
|
|
228
|
+
const { videoid, triggerScope } = videoObject;
|
|
229
|
+
triggerScope
|
|
230
|
+
.querySelectorAll(`[data-triggerid="${videoid}"]`)
|
|
231
|
+
.forEach((trigger) => {
|
|
232
|
+
trigger.classList.add(classname);
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
export function addPlayingStateClasses(elements, classname) {
|
|
236
|
+
elements.forEach((element) => {
|
|
237
|
+
element.classList.add(classname);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
export function removePlayingStateClasses(elements, classname) {
|
|
241
|
+
elements.forEach((element) => {
|
|
242
|
+
element.classList.add(classname);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Function for adding a link tag with preconnect to the head of the document. Very useful if you need to add this dynamically.
|
|
248
|
+
* @param {string} domain The domain you wish to preconnect to.
|
|
249
|
+
* @returns {void} The preconnect will be appended to the head tag.
|
|
250
|
+
*/
|
|
251
|
+
export function appendPreconnect(domain) {
|
|
252
|
+
try {
|
|
253
|
+
if (!domain) {
|
|
254
|
+
console.log("The domain was missing or broken...");
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const link = document.createElement("link");
|
|
258
|
+
link.rel = "preconnect";
|
|
259
|
+
link.href = domain;
|
|
260
|
+
document.head.appendChild(link);
|
|
261
|
+
return;
|
|
262
|
+
} catch (error) {
|
|
263
|
+
console.error(error);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Run a function after a window resize event, but only after the alloted time has ended.
|
|
269
|
+
* If another resize even occurs it resets the time window.
|
|
270
|
+
* @param {function} debouncedFunction The function you want to run after a window resize event.
|
|
271
|
+
* @param {number} time The time in ms.
|
|
272
|
+
*/
|
|
273
|
+
export function resizeDebouncer(debouncedFunction, time = 250) {
|
|
274
|
+
let resizeTimer;
|
|
275
|
+
window.addEventListener("resize", () => {
|
|
276
|
+
clearTimeout(resizeTimer);
|
|
277
|
+
resizeTimer = setTimeout(() => {
|
|
278
|
+
debouncedFunction();
|
|
279
|
+
}, time);
|
|
280
|
+
});
|
|
281
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import Player from "@vimeo/player";
|
|
2
|
+
import {
|
|
3
|
+
generateModal,
|
|
4
|
+
revealVideoElement,
|
|
5
|
+
hideVideoElement,
|
|
6
|
+
stopVideos,
|
|
7
|
+
resizeDebouncer
|
|
8
|
+
} from "./vcUtils.mjs";
|
|
9
|
+
|
|
10
|
+
const players = new Map();
|
|
11
|
+
|
|
12
|
+
function vimeoInit(videoObject) {
|
|
13
|
+
updateVimeoSource(videoObject);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function updateVimeoSource(videoObject) {
|
|
17
|
+
const { videocontainer, autoplay, muted, controls, loop, globalSettings } = videoObject;
|
|
18
|
+
const desktopUrl = videocontainer.dataset.vimeoDesktopUrl;
|
|
19
|
+
const mobileUrl = videocontainer.dataset.vimeoMobileUrl;
|
|
20
|
+
const srcDesktop = videocontainer.dataset.vimeodesktopid;
|
|
21
|
+
const srcMobile = videocontainer.dataset.vimeomobileid;
|
|
22
|
+
|
|
23
|
+
const vimeoUrl = window.innerWidth < globalSettings.srcBreakpoint && mobileUrl ? mobileUrl : desktopUrl;
|
|
24
|
+
const vimeoId = window.innerWidth < globalSettings.srcBreakpoint && srcMobile ? srcMobile : srcDesktop;
|
|
25
|
+
|
|
26
|
+
if (!vimeoId) {
|
|
27
|
+
console.error("No Vimeo ID found");
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const playerId = `vimeo-${videoObject.videoid}-${srcDesktop}`;
|
|
32
|
+
videoObject.playerId = playerId;
|
|
33
|
+
|
|
34
|
+
const options = {
|
|
35
|
+
url: vimeoUrl,
|
|
36
|
+
autopause: autoplay === 1 ? 0 : 1,
|
|
37
|
+
autoplay,
|
|
38
|
+
muted,
|
|
39
|
+
controls,
|
|
40
|
+
loop,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
if (players.has(playerId)) {
|
|
44
|
+
const playerData = players.get(playerId);
|
|
45
|
+
playerData.player.loadVideo(vimeoId);
|
|
46
|
+
} else {
|
|
47
|
+
const player = new Player(playerId, options);
|
|
48
|
+
players.set(playerId, { initialized: true, player, videoObject });
|
|
49
|
+
setupEventListeners(videoObject);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function triggerVimeo(videoObject) {
|
|
54
|
+
const { playerId, modal, isAdmin, globalSettings } = videoObject;
|
|
55
|
+
|
|
56
|
+
if (modal && !isAdmin) {
|
|
57
|
+
generateModal(videoObject);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const playerData = players.get(playerId);
|
|
61
|
+
if (playerData) {
|
|
62
|
+
playerData.player.play();
|
|
63
|
+
globalSettings.enableDebugLogs &&
|
|
64
|
+
console.log(`Playing Vimeo video: ${playerId}`);
|
|
65
|
+
} else {
|
|
66
|
+
console.error(`Vimeo player not initialized for ${playerId}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function setupEventListeners(videoObject) {
|
|
71
|
+
const { playerId, globalSettings } = videoObject;
|
|
72
|
+
const player = players.get(playerId).player;
|
|
73
|
+
|
|
74
|
+
player.on("loadedmetadata", () => {
|
|
75
|
+
videoObject.instance.setVideoReadyState(videoObject, true);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
player.on("play", () => {
|
|
79
|
+
globalSettings.enableDebugLogs && console.log("Playing the video");
|
|
80
|
+
stopVideos(videoObject);
|
|
81
|
+
revealVideoElement(videoObject);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
player.on("pause", () => {
|
|
85
|
+
globalSettings.enableDebugLogs && console.log("Pausing the video");
|
|
86
|
+
hideVideoElement(videoObject);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
player.on("ended", () => {
|
|
90
|
+
globalSettings.enableDebugLogs && console.log("Video ended");
|
|
91
|
+
hideVideoElement(videoObject);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
resizeDebouncer(() => {
|
|
96
|
+
players.forEach(({ videoObject }) => {
|
|
97
|
+
updateVimeoSource(videoObject);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
const api = {
|
|
102
|
+
vimeoInit,
|
|
103
|
+
triggerVimeo,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export default api;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generateModal,
|
|
3
|
+
stopVideos,
|
|
4
|
+
revealVideoElement,
|
|
5
|
+
hideVideoElement,
|
|
6
|
+
dataLayerPush,
|
|
7
|
+
} from "./vcUtils.mjs";
|
|
8
|
+
|
|
9
|
+
const players = new Map();
|
|
10
|
+
|
|
11
|
+
function youtubeInit(videoObject) {
|
|
12
|
+
const autoplay = videoObject.autoplay;
|
|
13
|
+
const playerId = `yt-${videoObject.videoid}`;
|
|
14
|
+
videoObject.playerId = playerId;
|
|
15
|
+
if (autoplay) {
|
|
16
|
+
triggerYoutube(videoObject);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function triggerYoutube(videoObject) {
|
|
21
|
+
const { playerId, modal, isAdmin } = videoObject;
|
|
22
|
+
videoObject.elementType = "iframe";
|
|
23
|
+
|
|
24
|
+
if (!window.YT) {
|
|
25
|
+
console.log("YT not loaded yet in triggerYoutube");
|
|
26
|
+
await injectYouTubeIframeScript();
|
|
27
|
+
console.log("YT loaded in triggerYoutube");
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (modal && !isAdmin) {
|
|
31
|
+
generateModal(videoObject);
|
|
32
|
+
}
|
|
33
|
+
if (!players.get(playerId)) {
|
|
34
|
+
initializePlayer(videoObject);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const playerData = players.get(playerId);
|
|
39
|
+
if (!playerData) {
|
|
40
|
+
console.error(`no player data found for ${playerId}`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const { player } = playerData;
|
|
45
|
+
if (playerData.initialized) {
|
|
46
|
+
player.playVideo();
|
|
47
|
+
} else {
|
|
48
|
+
console.error(`YouTube player not initialized for ${playerId}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async function initializePlayer(videoObject) {
|
|
53
|
+
const playerId = videoObject.playerId;
|
|
54
|
+
const player = createYouTubePlayer(videoObject);
|
|
55
|
+
videoObject.youtubeplayer = player;
|
|
56
|
+
players.set(playerId, { initialized: true, player, videoObject });
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function createYouTubePlayer(videoObject) {
|
|
60
|
+
const playerId = videoObject.playerId;
|
|
61
|
+
const srcDesktop = videoObject.videocontainer.dataset.youtubedesktop;
|
|
62
|
+
const srcMobile = videoObject.videocontainer.dataset.youtubemobile;
|
|
63
|
+
const videoSrc =
|
|
64
|
+
window.innerWidth < videoObject.globalSettings.srcBreakpoint && srcMobile
|
|
65
|
+
? srcMobile
|
|
66
|
+
: srcDesktop;
|
|
67
|
+
|
|
68
|
+
return new YT.Player(playerId, {
|
|
69
|
+
videoId: videoSrc,
|
|
70
|
+
playerVars: {
|
|
71
|
+
autoplay: videoObject.autoplay ? 1 : 0,
|
|
72
|
+
mute: videoObject.muted ? 1 : 0,
|
|
73
|
+
controls: videoObject.controls ? 1 : 0,
|
|
74
|
+
loop: videoObject.loop ? 1 : 0,
|
|
75
|
+
},
|
|
76
|
+
events: {
|
|
77
|
+
onStateChange: (event) => onPlayerStateChange(event, videoObject),
|
|
78
|
+
onReady: (event) => {
|
|
79
|
+
videoObject.instance.setVideoReadyState(videoObject, true);
|
|
80
|
+
event.target.playVideo();
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function onPlayerStateChange(event, videoObject) {
|
|
87
|
+
const { globalSettings } = videoObject;
|
|
88
|
+
switch (event.data) {
|
|
89
|
+
case YT.PlayerState.PLAYING:
|
|
90
|
+
globalSettings.enableDebugLogs && console.log("Playing the video");
|
|
91
|
+
stopVideos(videoObject);
|
|
92
|
+
revealVideoElement(videoObject);
|
|
93
|
+
if (videoObject.dataLayerPush) {
|
|
94
|
+
dataLayerPush({ eventname: "play", videoObject });
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case YT.PlayerState.PAUSED:
|
|
98
|
+
globalSettings.enableDebugLogs && console.log("Pausing the video");
|
|
99
|
+
if (videoObject.dataLayerPush) {
|
|
100
|
+
dataLayerPush({ eventname: "pause", videoObject });
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
|
|
104
|
+
case YT.PlayerState.ENDED:
|
|
105
|
+
if (videoObject.loop) {
|
|
106
|
+
const player = players.get(videoObject.playerId).player;
|
|
107
|
+
player.playVideo();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
globalSettings.enableDebugLogs && console.log("Video ended");
|
|
111
|
+
hideVideoElement(videoObject);
|
|
112
|
+
if (videoObject.dataLayerPush) {
|
|
113
|
+
dataLayerPush({ eventname: "ended", videoObject });
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Injects the youtube iframe api script and waits for the YT object to be instantiated before resolving the promise
|
|
121
|
+
* @returns {promise} Resolves once the YT object is available.
|
|
122
|
+
*/
|
|
123
|
+
function injectYouTubeIframeScript() {
|
|
124
|
+
const prom = new Promise((resolve) => {
|
|
125
|
+
if (globalThis.YT) {
|
|
126
|
+
return resolve();
|
|
127
|
+
}
|
|
128
|
+
const tag = document.createElement("script");
|
|
129
|
+
tag.id = "iframe-api";
|
|
130
|
+
tag.src = "https://www.youtube.com/iframe_api";
|
|
131
|
+
|
|
132
|
+
const firstScriptTag = document.getElementsByTagName("script")[0];
|
|
133
|
+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
|
134
|
+
|
|
135
|
+
tag.addEventListener("load", () => {
|
|
136
|
+
if (!YT.loaded) {
|
|
137
|
+
const loadingCheck = setInterval(() => {
|
|
138
|
+
if (YT.loaded) {
|
|
139
|
+
clearInterval(loadingCheck);
|
|
140
|
+
return resolve(true);
|
|
141
|
+
}
|
|
142
|
+
}, 50);
|
|
143
|
+
} else {
|
|
144
|
+
return resolve(true);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
return prom;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const api = {
|
|
153
|
+
youtubeInit,
|
|
154
|
+
triggerYoutube,
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
export default api;
|
package/package.json
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@total_onion/onion-library",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Component library",
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./index.js",
|
|
7
|
+
"module": "./index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./index.js",
|
|
10
|
+
"./onion-utils": "./onion-utils.mjs",
|
|
11
|
+
"./onion-utils.mjs": "./onion-utils.mjs",
|
|
12
|
+
"./onion-loader": "./onion-loader.js",
|
|
13
|
+
"./onion-loader.js": "./onion-loader.js",
|
|
14
|
+
"./entry-animation-observer": "./entry-animation-observer.js",
|
|
15
|
+
"./entry-animation-observer.js": "./entry-animation-observer.js",
|
|
16
|
+
"./onion-videocontroller": "./onion-videocontroller/onion-videocontroller.js",
|
|
17
|
+
"./onion-videocontroller.js": "./onion-videocontroller/onion-videocontroller.js",
|
|
18
|
+
"./onion-modalcontroller": "./onion-modalcontroller/onion-modalcontroller.js",
|
|
19
|
+
"./onion-modalcontroller.js": "./onion-modalcontroller/onion-modalcontroller.js"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"index.js",
|
|
23
|
+
"onion-utils.mjs",
|
|
24
|
+
"onion-loader.js",
|
|
25
|
+
"entry-animation-observer.js",
|
|
26
|
+
"onion-videocontroller",
|
|
27
|
+
"onion-modalcontroller"
|
|
28
|
+
],
|
|
6
29
|
"scripts": {
|
|
7
30
|
"build": "node build-library.js",
|
|
8
31
|
"test": ""
|
|
@@ -18,10 +41,7 @@
|
|
|
18
41
|
},
|
|
19
42
|
"homepage": "https://github.com/TotalOnion/onion-library#readme",
|
|
20
43
|
"dependencies": {
|
|
21
|
-
"@
|
|
22
|
-
"@total_onion/onion-videocontroller": "^1.2.6",
|
|
23
|
-
"lottie-web": "^5.13.0",
|
|
24
|
-
"swiper": "^12.1.3"
|
|
44
|
+
"@vimeo/player": "^2.26.0"
|
|
25
45
|
},
|
|
26
46
|
"devDependencies": {
|
|
27
47
|
"autoprefixer": "^10.4.27",
|
|
@@ -38,6 +58,8 @@
|
|
|
38
58
|
"postcss-preset-env": "^11.2.0",
|
|
39
59
|
"prettier": "^2.6.2",
|
|
40
60
|
"url-loader": "^4.1.1",
|
|
41
|
-
"yargs": "^17.4.1"
|
|
61
|
+
"yargs": "^17.4.1",
|
|
62
|
+
"lottie-web": "^5.13.0",
|
|
63
|
+
"swiper": "^14.1.0"
|
|
42
64
|
}
|
|
43
65
|
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# This workflow will run tests using node and then publish a package to NPM when a release is created
|
|
2
|
-
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
|
|
3
|
-
|
|
4
|
-
name: Node.js Package
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
release:
|
|
8
|
-
types: [published]
|
|
9
|
-
branches:
|
|
10
|
-
- master
|
|
11
|
-
permissions:
|
|
12
|
-
id-token: write # Required for OIDC
|
|
13
|
-
contents: read
|
|
14
|
-
|
|
15
|
-
jobs:
|
|
16
|
-
build:
|
|
17
|
-
runs-on: ubuntu-latest
|
|
18
|
-
steps:
|
|
19
|
-
- uses: actions/checkout@v4
|
|
20
|
-
- uses: actions/setup-node@v4
|
|
21
|
-
with:
|
|
22
|
-
node-version: 24
|
|
23
|
-
# Ensure npm 11.5.1 or later is installed
|
|
24
|
-
- name: Update npm
|
|
25
|
-
run: npm install -g npm@latest
|
|
26
|
-
- run: npm ci
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
publish:
|
|
30
|
-
needs: build
|
|
31
|
-
runs-on: ubuntu-latest
|
|
32
|
-
steps:
|
|
33
|
-
- uses: actions/checkout@v4
|
|
34
|
-
- uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: 24
|
|
37
|
-
registry-url: https://registry.npmjs.org/
|
|
38
|
-
- run: npm publish
|