@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.
Files changed (536) hide show
  1. package/index.js +10 -0
  2. package/onion-loader.js +22 -14
  3. package/onion-modalcontroller/README.md +2 -0
  4. package/onion-modalcontroller/onion-modalcontroller.js +183 -0
  5. package/onion-utils.mjs +18 -19
  6. package/onion-videocontroller/README.md +89 -0
  7. package/{components/fields-core-functions-v3 → onion-videocontroller}/core-functions-v3.scss +1 -1
  8. package/{components/fields-core-mixins-v3 → onion-videocontroller}/core-mixins-v3.scss +2 -2
  9. package/onion-videocontroller/onion-videocontroller.js +240 -0
  10. package/onion-videocontroller/upload-video.mjs +251 -0
  11. package/onion-videocontroller/vc-styles.scss +282 -0
  12. package/onion-videocontroller/vcUtils.mjs +281 -0
  13. package/onion-videocontroller/vimeo-video.mjs +106 -0
  14. package/onion-videocontroller/youtube-video.mjs +157 -0
  15. package/package.json +29 -7
  16. package/.github/workflows/npm-publish.yml +0 -38
  17. package/__spec__/copyBlockComponent.spec.js +0 -94
  18. package/__spec__/copyFile.spec.js +0 -78
  19. package/__spec__/copyFileKeeping.spec.js +0 -74
  20. package/__spec__/files/source.txt +0 -1
  21. package/__spec__/update-all-components.spec.js +0 -99
  22. package/__spec__/update-component.spec.js +0 -165
  23. package/assembleAssetList.js +0 -69
  24. package/build-library.js +0 -4
  25. package/checkBuildAssets.js +0 -18
  26. package/components/block-accent-image-v3/accent-image-v3.js +0 -7
  27. package/components/block-accent-image-v3/accent-image-v3.scss +0 -4
  28. package/components/block-accent-image-v3/accent-image-v3.twig +0 -137
  29. package/components/block-accent-image-v3/group_6890e1233ff2d.json +0 -81
  30. package/components/block-accordion-v3/accordion-v3.js +0 -119
  31. package/components/block-accordion-v3/accordion-v3.scss +0 -197
  32. package/components/block-accordion-v3/accordion-v3.twig +0 -51
  33. package/components/block-accordion-v3/group_6888d2f0b230b.json +0 -458
  34. package/components/block-back-to-top-button-v3/back-to-top-button-v3.js +0 -12
  35. package/components/block-back-to-top-button-v3/back-to-top-button-v3.scss +0 -68
  36. package/components/block-back-to-top-button-v3/back-to-top-button-v3.twig +0 -40
  37. package/components/block-back-to-top-button-v3/group_63e24e04a1e61.json +0 -323
  38. package/components/block-betterreviews-display-v3/betterreviews-display-v3.js +0 -10
  39. package/components/block-betterreviews-display-v3/betterreviews-display-v3.scss +0 -104
  40. package/components/block-betterreviews-display-v3/betterreviews-display-v3.twig +0 -24
  41. package/components/block-betterreviews-display-v3/group_6892880fc1a00.json +0 -182
  42. package/components/block-block-interactions-v3/block-interactions-v3.js +0 -53
  43. package/components/block-block-interactions-v3/block-interactions-v3.scss +0 -32
  44. package/components/block-block-interactions-v3/block-interactions-v3.twig +0 -55
  45. package/components/block-block-interactions-v3/group_687e1575ba23d.json +0 -700
  46. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +0 -243
  47. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.scss +0 -156
  48. package/components/block-carousel-multi-layout-v3/carousel-multi-layout-v3.twig +0 -146
  49. package/components/block-carousel-multi-layout-v3/group_686bd42e551d6.json +0 -578
  50. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.js +0 -127
  51. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.scss +0 -345
  52. package/components/block-cocktail-recipe-v3/cocktail-recipe-v3.twig +0 -93
  53. package/components/block-cocktail-recipe-v3/group_68fff19fa4dd0.json +0 -202
  54. package/components/block-cover-link-v3/cover-link-v3.js +0 -7
  55. package/components/block-cover-link-v3/cover-link-v3.scss +0 -10
  56. package/components/block-cover-link-v3/cover-link-v3.twig +0 -16
  57. package/components/block-cover-link-v3/group_687192c28b7eb.json +0 -96
  58. package/components/block-divider-v3/divider-v3.js +0 -8
  59. package/components/block-divider-v3/divider-v3.scss +0 -103
  60. package/components/block-divider-v3/divider-v3.twig +0 -45
  61. package/components/block-divider-v3/group_686b919696bfe.json +0 -891
  62. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.js +0 -44
  63. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.scss +0 -93
  64. package/components/block-featured-image-gallery-v3/featured-image-gallery-v3.twig +0 -43
  65. package/components/block-featured-image-gallery-v3/group_5f91897095b42.json +0 -88
  66. package/components/block-form-selection-v3/form-selection-v3.js +0 -78
  67. package/components/block-form-selection-v3/form-selection-v3.scss +0 -38
  68. package/components/block-form-selection-v3/form-selection-v3.twig +0 -84
  69. package/components/block-form-selection-v3/group_68752e7949e53.json +0 -351
  70. package/components/block-gradient-layer-v3/gradient-layer-v3.js +0 -7
  71. package/components/block-gradient-layer-v3/gradient-layer-v3.scss +0 -8
  72. package/components/block-gradient-layer-v3/gradient-layer-v3.twig +0 -78
  73. package/components/block-gradient-layer-v3/group_686fdadc85df4.json +0 -206
  74. package/components/block-group-container-v3/group-container-v3.js +0 -7
  75. package/components/block-group-container-v3/group-container-v3.php +0 -14
  76. package/components/block-group-container-v3/group-container-v3.scss +0 -45
  77. package/components/block-group-container-v3/group-container-v3.twig +0 -70
  78. package/components/block-group-container-v3/group_6865578ada499.json +0 -3660
  79. package/components/block-lottie-content-v3/group_687197027216d.json +0 -177
  80. package/components/block-lottie-content-v3/lottie-content-v3.js +0 -25
  81. package/components/block-lottie-content-v3/lottie-content-v3.scss +0 -2
  82. package/components/block-lottie-content-v3/lottie-content-v3.twig +0 -15
  83. package/components/block-market-selector-v3/group_68752075dd831.json +0 -129
  84. package/components/block-market-selector-v3/market-selector-v3.js +0 -7
  85. package/components/block-market-selector-v3/market-selector-v3.scss +0 -120
  86. package/components/block-market-selector-v3/market-selector-v3.twig +0 -40
  87. package/components/block-modal-form-v3/modal-form-v3.js +0 -59
  88. package/components/block-modal-form-v3/modal-form-v3.scss +0 -6
  89. package/components/block-modal-form-v3/modal-form-v3.twig +0 -30
  90. package/components/block-nav-menu-container-v3/group_687e00b45e9a3.json +0 -187
  91. package/components/block-nav-menu-container-v3/nav-menu-container-v3.js +0 -7
  92. package/components/block-nav-menu-container-v3/nav-menu-container-v3.scss +0 -3
  93. package/components/block-nav-menu-container-v3/nav-menu-container-v3.twig +0 -23
  94. package/components/block-post-info-v3/group_6866429531436.json +0 -3112
  95. package/components/block-post-info-v3/post-info-v3/bazaarvoice-inline.twig +0 -13
  96. package/components/block-post-info-v3/post-info-v3/better-reviews.twig +0 -15
  97. package/components/block-post-info-v3/post-info-v3/divider.twig +0 -8
  98. package/components/block-post-info-v3/post-info-v3/drink-description.twig +0 -10
  99. package/components/block-post-info-v3/post-info-v3/global-image.twig +0 -22
  100. package/components/block-post-info-v3/post-info-v3/gradient-layer.twig +0 -78
  101. package/components/block-post-info-v3/post-info-v3/gradient-overlay.twig +0 -10
  102. package/components/block-post-info-v3/post-info-v3/post-author.twig +0 -17
  103. package/components/block-post-info-v3/post-info-v3/post-buy-now.twig +0 -116
  104. package/components/block-post-info-v3/post-info-v3/post-categories.twig +0 -15
  105. package/components/block-post-info-v3/post-info-v3/post-headline.twig +0 -15
  106. package/components/block-post-info-v3/post-info-v3/post-image.twig +0 -47
  107. package/components/block-post-info-v3/post-info-v3/post-info-description.twig +0 -15
  108. package/components/block-post-info-v3/post-info-v3/post-info-subtitle.twig +0 -14
  109. package/components/block-post-info-v3/post-info-v3/post-link.twig +0 -42
  110. package/components/block-post-info-v3/post-info-v3/post-name.twig +0 -12
  111. package/components/block-post-info-v3/post-info-v3/post-publish-date.twig +0 -12
  112. package/components/block-post-info-v3/post-info-v3/post-tags.twig +0 -24
  113. package/components/block-post-info-v3/post-info-v3/post-text-alternative-style.twig +0 -16
  114. package/components/block-post-info-v3/post-info-v3/post-title.twig +0 -15
  115. package/components/block-post-info-v3/post-info-v3/post-video.twig +0 -27
  116. package/components/block-post-info-v3/post-info-v3/reservebar-add-to-cart.twig +0 -32
  117. package/components/block-post-info-v3/post-info-v3/shopify-add-to-cart.twig +0 -31
  118. package/components/block-post-info-v3/post-info-v3/social-networks.twig +0 -33
  119. package/components/block-post-info-v3/post-info-v3/spacer-v3.twig +0 -9
  120. package/components/block-post-info-v3/post-info-v3.js +0 -10
  121. package/components/block-post-info-v3/post-info-v3.scss +0 -210
  122. package/components/block-post-info-v3/post-info-v3.twig +0 -67
  123. package/components/block-product-info-v3/group_68909995b6550.json +0 -3544
  124. package/components/block-product-info-v3/product-info-v3/product-abv.twig +0 -14
  125. package/components/block-product-info-v3/product-info-v3/product-cask-type-label.twig +0 -14
  126. package/components/block-product-info-v3/product-info-v3/product-cask-type.twig +0 -14
  127. package/components/block-product-info-v3/product-info-v3/product-colour-label.twig +0 -14
  128. package/components/block-product-info-v3/product-info-v3/product-colour.twig +0 -14
  129. package/components/block-product-info-v3/product-info-v3/product-description.twig +0 -14
  130. package/components/block-product-info-v3/product-info-v3/product-finish-label.twig +0 -14
  131. package/components/block-product-info-v3/product-info-v3/product-finish.twig +0 -14
  132. package/components/block-product-info-v3/product-info-v3/product-headline.twig +0 -14
  133. package/components/block-product-info-v3/product-info-v3/product-image.twig +0 -43
  134. package/components/block-product-info-v3/product-info-v3/product-name.twig +0 -14
  135. package/components/block-product-info-v3/product-info-v3/product-nose-label.twig +0 -14
  136. package/components/block-product-info-v3/product-info-v3/product-nose.twig +0 -14
  137. package/components/block-product-info-v3/product-info-v3/product-pair-with-label.twig +0 -14
  138. package/components/block-product-info-v3/product-info-v3/product-pair-with.twig +0 -14
  139. package/components/block-product-info-v3/product-info-v3/product-palate-label.twig +0 -14
  140. package/components/block-product-info-v3/product-info-v3/product-palate.twig +0 -14
  141. package/components/block-product-info-v3/product-info-v3/product-taste-label.twig +0 -14
  142. package/components/block-product-info-v3/product-info-v3/product-taste.twig +0 -14
  143. package/components/block-product-info-v3/product-info-v3/product-volume.twig +0 -14
  144. package/components/block-product-info-v3/product-info-v3/spacer-v3.twig +0 -9
  145. package/components/block-product-info-v3/product-info-v3.js +0 -7
  146. package/components/block-product-info-v3/product-info-v3.scss +0 -171
  147. package/components/block-product-info-v3/product-info-v3.twig +0 -43
  148. package/components/block-raw-html-v3/group_686ba68d603a2.json +0 -212
  149. package/components/block-raw-html-v3/raw-html-v3.js +0 -7
  150. package/components/block-raw-html-v3/raw-html-v3.scss +0 -2
  151. package/components/block-raw-html-v3/raw-html-v3.twig +0 -17
  152. package/components/block-responsive-table-v3/group_6617ecc987ddd.json +0 -394
  153. package/components/block-responsive-table-v3/responsive-table-v3.js +0 -7
  154. package/components/block-responsive-table-v3/responsive-table-v3.scss +0 -49
  155. package/components/block-responsive-table-v3/responsive-table-v3.twig +0 -47
  156. package/components/block-scrolling-banner-v3/group_68e67fca1ec80.json +0 -664
  157. package/components/block-scrolling-banner-v3/scrolling-banner-v3.js +0 -144
  158. package/components/block-scrolling-banner-v3/scrolling-banner-v3.scss +0 -104
  159. package/components/block-scrolling-banner-v3/scrolling-banner-v3.twig +0 -72
  160. package/components/block-section-separator-v3/group_6874c8d79b84b.json +0 -576
  161. package/components/block-section-separator-v3/section-separator-v3.js +0 -7
  162. package/components/block-section-separator-v3/section-separator-v3.scss +0 -42
  163. package/components/block-section-separator-v3/section-separator-v3.twig +0 -46
  164. package/components/block-single-column-container-v3/group_6887640458d61.json +0 -481
  165. package/components/block-single-column-container-v3/single-column-container-v3.js +0 -7
  166. package/components/block-single-column-container-v3/single-column-container-v3.scss +0 -14
  167. package/components/block-single-column-container-v3/single-column-container-v3.twig +0 -30
  168. package/components/block-single-responsive-image-v3/group_6867bcf24c2fc.json +0 -128
  169. package/components/block-single-responsive-image-v3/single-responsive-image-v3.js +0 -7
  170. package/components/block-single-responsive-image-v3/single-responsive-image-v3.scss +0 -9
  171. package/components/block-single-responsive-image-v3/single-responsive-image-v3.twig +0 -24
  172. package/components/block-site-copyright-notice-v3/group_66296c3716b4f.json +0 -304
  173. package/components/block-site-copyright-notice-v3/index.html +0 -33
  174. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.js +0 -58
  175. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.scss +0 -21
  176. package/components/block-site-copyright-notice-v3/site-copyright-notice-v3.twig +0 -30
  177. package/components/block-site-logo-container-v3/group_687e3b887b508.json +0 -175
  178. package/components/block-site-logo-container-v3/site-logo-container-v3.js +0 -7
  179. package/components/block-site-logo-container-v3/site-logo-container-v3.scss +0 -29
  180. package/components/block-site-logo-container-v3/site-logo-container-v3.twig +0 -40
  181. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +0 -7
  182. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.scss +0 -16
  183. package/components/block-site-title-and-tagline-v3/site-title-and-tagline-v3.twig +0 -24
  184. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +0 -8
  185. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.scss +0 -31
  186. package/components/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.twig +0 -18
  187. package/components/block-social-networks-v3/group_6891d4d7db414.json +0 -146
  188. package/components/block-social-networks-v3/social-networks-v3.js +0 -7
  189. package/components/block-social-networks-v3/social-networks-v3.scss +0 -7
  190. package/components/block-social-networks-v3/social-networks-v3.twig +0 -24
  191. package/components/block-spacer-v3/group_686b8cb48c708.json +0 -131
  192. package/components/block-spacer-v3/spacer-v3.js +0 -8
  193. package/components/block-spacer-v3/spacer-v3.scss +0 -19
  194. package/components/block-spacer-v3/spacer-v3.twig +0 -13
  195. package/components/block-spotify-embed-v3/group_67d04c4c4cf78.json +0 -120
  196. package/components/block-spotify-embed-v3/spotify-embed-v3.js +0 -7
  197. package/components/block-spotify-embed-v3/spotify-embed-v3.scss +0 -11
  198. package/components/block-spotify-embed-v3/spotify-embed-v3.twig +0 -23
  199. package/components/block-standard-content-v3/group_68655756737c9.json +0 -344
  200. package/components/block-standard-content-v3/standard-content-v3.js +0 -39
  201. package/components/block-standard-content-v3/standard-content-v3.scss +0 -11
  202. package/components/block-standard-content-v3/standard-content-v3.twig +0 -46
  203. package/components/block-sticky-buy-cta-v3/group_68b061bb56543.json +0 -172
  204. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +0 -7
  205. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.scss +0 -2
  206. package/components/block-sticky-buy-cta-v3/sticky-buy-cta-v3.twig +0 -92
  207. package/components/block-sub-group-container-v3/group_686ceba7d6066.json +0 -2142
  208. package/components/block-sub-group-container-v3/sub-group-container-v3.js +0 -9
  209. package/components/block-sub-group-container-v3/sub-group-container-v3.scss +0 -27
  210. package/components/block-sub-group-container-v3/sub-group-container-v3.twig +0 -59
  211. package/components/block-video-content-v3/group_687190b8d26df.json +0 -169
  212. package/components/block-video-content-v3/video-content-v3.js +0 -12
  213. package/components/block-video-content-v3/video-content-v3.scss +0 -123
  214. package/components/block-video-content-v3/video-content-v3.twig +0 -26
  215. package/components/component-accent-image-v3/accent-image-v3.twig +0 -119
  216. package/components/component-accent-image-v3/group_686cd5547efd2.json +0 -975
  217. package/components/component-accent-text-v3/accent-text-v3-extra.scss +0 -2
  218. package/components/component-accent-text-v3/accent-text-v3.scss +0 -60
  219. package/components/component-accent-text-v3/group_686b91fed8f5f.json +0 -220
  220. package/components/component-accordion-v3/accordion-v3.js +0 -113
  221. package/components/component-accordion-v3/accordion-v3.scss +0 -189
  222. package/components/component-accordion-v3/accordion-v3.twig +0 -39
  223. package/components/component-accordion-v3/group_66ab7edfc6d63.json +0 -535
  224. package/components/component-animations-style-v3/animations-style-v3.twig +0 -5
  225. package/components/component-animations-v3/animations-v3.scss +0 -161
  226. package/components/component-animations-v3/animations-v3.twig +0 -19
  227. package/components/component-animations-v3/group_689f39c37980a.json +0 -499
  228. package/components/component-better-reviews-v3/better-reviews-v3.scss +0 -137
  229. package/components/component-block-padding-v3/block-padding-v3.scss +0 -64
  230. package/components/component-block-padding-v3/block-padding-v3.twig +0 -33
  231. package/components/component-block-padding-v3/group_689f66f3e26df.json +0 -535
  232. package/components/component-block-settings-v3/block-settings-v3.scss +0 -46
  233. package/components/component-block-settings-v3/block-settings-v3.twig +0 -34
  234. package/components/component-block-settings-v3/group_689f649af2ac4.json +0 -983
  235. package/components/component-blockquote-v3/blockquote-v3.scss +0 -54
  236. package/components/component-box-shadow-v3/box-shadow-v3.scss +0 -12
  237. package/components/component-buy-now-button-v3/buy-now-buttons-v3.twig +0 -69
  238. package/components/component-carousel-fields-v3/group_686fd30f4d873.json +0 -3025
  239. package/components/component-child-block-video-fields/group_6852a4f384204.json +0 -536
  240. package/components/component-content-box-settings-v3/content-box-settings-v3.scss +0 -205
  241. package/components/component-content-box-settings-v3/content-box-settings-v3.twig +0 -156
  242. package/components/component-content-box-settings-v3/group_686e6ec702acc.json +0 -1729
  243. package/components/component-content-box-v3/content-box-v3.js +0 -6
  244. package/components/component-content-box-v3/content-box-v3.scss +0 -28
  245. package/components/component-content-box-v3/content-box-v3.twig +0 -23
  246. package/components/component-content-box-v3/group_686b8a4f1fe5d.json +0 -568
  247. package/components/component-content-image-v3/content-image-v3.scss +0 -33
  248. package/components/component-content-image-v3/content-image-v3.twig +0 -77
  249. package/components/component-content-image-v3/group_68722935c428f.json +0 -647
  250. package/components/component-core-body-close-v3/core-body-close-v3.twig +0 -2
  251. package/components/component-core-body-open-v3/core-body-open-v3.twig +0 -32
  252. package/components/component-core-group-container-styles-v3/core-group-container-styles-v3.scss +0 -48
  253. package/components/component-core-head-v3/core-head-v3.twig +0 -62
  254. package/components/component-cta-selection-v3/cta-selection-v3.twig +0 -256
  255. package/components/component-cta-selection-v3/group_686e93eb832a6.json +0 -1117
  256. package/components/component-e-shop-settings-v3/e-shop-settings-v3.twig +0 -114
  257. package/components/component-element-positioning-v3/element-positioning-v3.scss +0 -41
  258. package/components/component-element-positioning-v3/element-positioning-v3.twig +0 -42
  259. package/components/component-element-positioning-v3/group_6882281544263.json +0 -635
  260. package/components/component-endpoints/endpoints.php +0 -32
  261. package/components/component-flex-layout-container-v3/flex-layout-container-v3.scss +0 -38
  262. package/components/component-flex-layout-container-v3/flex-layout-container-v3.twig +0 -28
  263. package/components/component-flex-layout-container-v3/group_6887a026bbc33.json +0 -773
  264. package/components/component-global-content-max-width-v3/global-content-max-width-v3.twig +0 -10
  265. package/components/component-global-content-max-width-v3/group_63c83de4f0a99.json +0 -58
  266. package/components/component-gradient-overlay-v3/gradient-overlay-v3.scss +0 -43
  267. package/components/component-gradient-overlay-v3/gradient-overlay-v3.twig +0 -58
  268. package/components/component-gradient-overlay-v3/group_686fd9ca50b63.json +0 -495
  269. package/components/component-grid-gap-mults-v3/grid-gap-mults-v3.twig +0 -10
  270. package/components/component-grid-gap-mults-v3/group_689221b94ce69.json +0 -220
  271. package/components/component-grid-layout-container-v3/grid-layout-container-v3.scss +0 -154
  272. package/components/component-grid-layout-container-v3/grid-layout-container-v3.twig +0 -88
  273. package/components/component-grid-layout-container-v3/group_6882282e65bf2.json +0 -1525
  274. package/components/component-grid-layout-element-v3/grid-layout-element-v3.scss +0 -47
  275. package/components/component-grid-layout-element-v3/grid-layout-element-v3.twig +0 -23
  276. package/components/component-grid-layout-element-v3/group_68822860bda9f.json +0 -728
  277. package/components/component-nav-menu-v3/group_68da703f710ff.json +0 -432
  278. package/components/component-nav-menu-v3/nav-menu-v3.scss +0 -43
  279. package/components/component-nav-menu-v3/nav-menu-v3.twig +0 -75
  280. package/components/component-responsive-image-v3/group_6867bc53f1da8.json +0 -1515
  281. package/components/component-responsive-image-v3/responsive-image-v3.scss +0 -63
  282. package/components/component-responsive-image-v3/responsive-image-v3.twig +0 -71
  283. package/components/component-responsive-picture-element-v3/responsive-picture-element-v3.twig +0 -35
  284. package/components/component-responsive-show-hide/responsive-show-hide-v3.twig +0 -9
  285. package/components/component-social-media-share-v3/social-media-share-v3-extra.scss +0 -6
  286. package/components/component-social-media-share-v3/social-media-share-v3.scss +0 -131
  287. package/components/component-social-networks-v3/social-networks-v3.scss +0 -73
  288. package/components/component-social-networks-v3/social-networks-v3.twig +0 -43
  289. package/components/component-text-editor-settings-container-classes-v3/text-editor-settings-container-classes-v3.twig +0 -9
  290. package/components/component-text-editor-settings-element-classes-v3/text-editor-settings-element-classes-v3.twig +0 -13
  291. package/components/component-text-editor-settings-v3/group_687a4e2334e37.json +0 -1377
  292. package/components/component-text-editor-settings-variables-v3/text-editor-settings-variables-v3.twig +0 -61
  293. package/components/component-video-component-v3/video-component-v3.twig +0 -90
  294. package/components/component-video-fields-v3/group_6872282f44634.json +0 -1013
  295. package/components/component-video-trigger-button-v3/video-trigger-button-v3.twig +0 -14
  296. package/components/component-wysiwyg-editor-v3/group_6867e153af466.json +0 -127
  297. package/components/component-wysiwyg-editor-v3/wysiwyg-editor-v3.twig +0 -18
  298. package/components/core-block-editor-assets-v3/core-block-editor-assets-v3.php +0 -14
  299. package/components/core-core-block-render-function-v3/core-block-render-function-v3.php +0 -39
  300. package/components/core-core-design-settings-v3/core-design-settings-v3.php +0 -43
  301. package/components/core-core-post-overrides-v3/core-post-overrides-v3.php +0 -21
  302. package/components/core-core-themes/core-themes-v3.php +0 -68
  303. package/components/core-core-typography-v3/core-typography-v3.php +0 -239
  304. package/components/core-globals/globals.php +0 -39
  305. package/components/entrypoint-entry-point-classes-v3/entry-point-classes-v3.twig +0 -12
  306. package/components/entrypoint-entry-point-html-v3/entry-point-html-v3.twig +0 -19
  307. package/components/entrypoint-entry-point-style-v3/entry-point-style-v3.twig +0 -11
  308. package/components/fields-acf-wysiwyg-options-v3/acf-wysiwyg-options-v3.php +0 -221
  309. package/components/fields-animations-v3/animations-v3.scss +0 -127
  310. package/components/fields-archive-pages-v3/group_635e777ce46d4.json +0 -150
  311. package/components/fields-cocktail-info-v3/group_64c29b7f188ca.json +0 -686
  312. package/components/fields-content-container-settings-v3/content-container-settings-v3.scss +0 -213
  313. package/components/fields-content-container-v3/content-container-v3.js +0 -96
  314. package/components/fields-content-container-v3/content-container-v3.scss +0 -31
  315. package/components/fields-core-critical-v3/core-critical-v3.scss +0 -13
  316. package/components/fields-core-css-modules-v3/core-css-modules-v3.scss +0 -13
  317. package/components/fields-core-css-sizing-vars-v3/core-css-sizing-vars-v3.scss +0 -125
  318. package/components/fields-core-cta-v3/core-cta-v3.scss +0 -276
  319. package/components/fields-core-generic-v3/core-generic-v3.scss +0 -299
  320. package/components/fields-core-root-variables-v3/core-root-variables-v3.scss +0 -47
  321. package/components/fields-core-typography-mixins-v3/core-typography-mixins-v3.scss +0 -1080
  322. package/components/fields-core-typography-v3/core-typography-v3.scss +0 -457
  323. package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.js +0 -270
  324. package/components/fields-core-wordpress-block-editor-preview-v3/core-wordpress-block-editor-preview-v3.scss +0 -106
  325. package/components/fields-drink-responsibly-notice-v3/group_68751257883ad.json +0 -266
  326. package/components/fields-dynamic-critical-css-v3/group_65abcd463e8d0.json +0 -126
  327. package/components/fields-e-shop-settings-v3/e-shop-settings-v3.twig +0 -87
  328. package/components/fields-e-shop-settings-v3/group_650b24b4e623d.json +0 -803
  329. package/components/fields-global-preload-v3/group_65e0bd35e781b.json +0 -289
  330. package/components/fields-image-management-service-v3/group_677813165b633.json +0 -149
  331. package/components/fields-ingredients-list/group_6900f19dadebf.json +0 -225
  332. package/components/fields-modal-popup-content-v3/group_689876f1ee3fc.json +0 -403
  333. package/components/fields-modal-popup-content-v3/modal-popup-content-v3.twig +0 -18
  334. package/components/fields-post-info-v3/group_6867bbe167dd2.json +0 -1089
  335. package/components/fields-product-info-v3/group_689098dd3a131.json +0 -721
  336. package/components/fields-upload-filesize-limit-v3/group_659d259760a1d.json +0 -56
  337. package/components/fields-video-management-services-v3/group_67b4cac05cb30.json +0 -146
  338. package/components/webc-counter-display/counter-display.css +0 -2
  339. package/components/webc-counter-display/counter-display.html +0 -5
  340. package/components/webc-counter-display/counter-display.js +0 -30
  341. package/components/webc-counter-display/index.html +0 -30
  342. package/components/webc-layout-container/index.html +0 -108
  343. package/components/webc-layout-container/layout-container.css +0 -9
  344. package/components/webc-layout-container/layout-container.html +0 -5
  345. package/components/webc-layout-container/layout-container.js +0 -22
  346. package/components/webc-loadmore-trigger/index.html +0 -30
  347. package/components/webc-loadmore-trigger/loadmore-trigger.css +0 -20
  348. package/components/webc-loadmore-trigger/loadmore-trigger.html +0 -6
  349. package/components/webc-loadmore-trigger/loadmore-trigger.js +0 -34
  350. package/components/webc-post-carousel-display-module/index.html +0 -30
  351. package/components/webc-post-carousel-display-module/post-carousel-display-module.css +0 -36
  352. package/components/webc-post-carousel-display-module/post-carousel-display-module.html +0 -5
  353. package/components/webc-post-carousel-display-module/post-carousel-display-module.js +0 -48
  354. package/components/webc-post-filter-module/dev-content/amber.webp +0 -0
  355. package/components/webc-post-filter-module/dev-content/bluey.webp +0 -0
  356. package/components/webc-post-filter-module/dev-content/chucky-vanille.webp +0 -0
  357. package/components/webc-post-filter-module/dev-content/dev-content.js +0 -347
  358. package/components/webc-post-filter-module/dev-content/dev-contentlocal.js +0 -362
  359. package/components/webc-post-filter-module/dev-content/fat-gigio-basket-life.webp +0 -0
  360. package/components/webc-post-filter-module/dev-content/fat-gigio-kitten.webp +0 -0
  361. package/components/webc-post-filter-module/dev-content/fat-gigio-sleepy.webp +0 -0
  362. package/components/webc-post-filter-module/dev-content/kai-lounging.webp +0 -0
  363. package/components/webc-post-filter-module/dev-content/kai-selfie.webp +0 -0
  364. package/components/webc-post-filter-module/dev-content/kai.webp +0 -0
  365. package/components/webc-post-filter-module/dev-content/lulu-mad.webp +0 -0
  366. package/components/webc-post-filter-module/dev-content/lulu-serious.webp +0 -0
  367. package/components/webc-post-filter-module/dev-content/martha-on-the-mat.webp +0 -0
  368. package/components/webc-post-filter-module/dev-content/max-on-the-mat.webp +0 -0
  369. package/components/webc-post-filter-module/dev-content/mephy-dreams-of-mice.webp +0 -0
  370. package/components/webc-post-filter-module/dev-content/mr-business-doing-work.webp +0 -0
  371. package/components/webc-post-filter-module/dev-content/mr-business-on-top.webp +0 -0
  372. package/components/webc-post-filter-module/dev-content/peanut-keeping-an-eye.webp +0 -0
  373. package/components/webc-post-filter-module/dev-content/pete-at-work.webp +0 -0
  374. package/components/webc-post-filter-module/dev-content/pete-bath.webp +0 -0
  375. package/components/webc-post-filter-module/dev-content/pete-dinosaur.webp +0 -0
  376. package/components/webc-post-filter-module/dev-content/pete-lawn.webp +0 -0
  377. package/components/webc-post-filter-module/dev-content/pete-snacks.webp +0 -0
  378. package/components/webc-post-filter-module/dev-content/ramses-kitten.webp +0 -0
  379. package/components/webc-post-filter-module/dev-content/ramses-school-day.webp +0 -0
  380. package/components/webc-post-filter-module/dev-content/ramses-tired.webp +0 -0
  381. package/components/webc-post-filter-module/dev-content/remy-garden-contemplation.webp +0 -0
  382. package/components/webc-post-filter-module/dev-content/sky-field.webp +0 -0
  383. package/components/webc-post-filter-module/dev-content/sky-luxury-2.webp +0 -0
  384. package/components/webc-post-filter-module/dev-content/sky-luxury.webp +0 -0
  385. package/components/webc-post-filter-module/dev-content/sky-puppy-good-dog.webp +0 -0
  386. package/components/webc-post-filter-module/dev-content/sky-puppy-pose.webp +0 -0
  387. package/components/webc-post-filter-module/dev-content/sky-security.webp +0 -0
  388. package/components/webc-post-filter-module/dev-content/vanille-asleep.webp +0 -0
  389. package/components/webc-post-filter-module/dev-content/vanille-bass.webp +0 -0
  390. package/components/webc-post-filter-module/dev-content/vanille-party.webp +0 -0
  391. package/components/webc-post-filter-module/dev-content/vanille-puppy-eyes.webp +0 -0
  392. package/components/webc-post-filter-module/dev-content/vanille-puppy.webp +0 -0
  393. package/components/webc-post-filter-module/index.html +0 -30
  394. package/components/webc-post-filter-module/post-filter-module.css +0 -59
  395. package/components/webc-post-filter-module/post-filter-module.html +0 -13
  396. package/components/webc-post-filter-module/post-filter-module.js +0 -359
  397. package/components/webc-post-filter-module-no-group/index.html +0 -30
  398. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.css +0 -59
  399. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.html +0 -13
  400. package/components/webc-post-filter-module-no-group/post-filter-module-no-group.js +0 -312
  401. package/components/webc-post-grid-display-module/index.html +0 -30
  402. package/components/webc-post-grid-display-module/post-grid-display-module.css +0 -42
  403. package/components/webc-post-grid-display-module/post-grid-display-module.html +0 -6
  404. package/components/webc-post-grid-display-module/post-grid-display-module.js +0 -48
  405. package/components/webc-ptfg-9000/index.html +0 -108
  406. package/components/webc-ptfg-9000/ptfg-9000.css +0 -14
  407. package/components/webc-ptfg-9000/ptfg-9000.html +0 -1
  408. package/components/webc-ptfg-9000/ptfg-9000.js +0 -42
  409. package/components/webc-responsive-image/index.html +0 -108
  410. package/components/webc-responsive-image/layout-container.css +0 -9
  411. package/components/webc-responsive-image/layout-container.js +0 -22
  412. package/components/webc-responsive-image/responsive-image.html +0 -15
  413. package/components/webc-slot-test/slot-test.html +0 -25
  414. package/components/webc-text-input-trigger/index.html +0 -30
  415. package/components/webc-text-input-trigger/text-input-trigger.css +0 -6
  416. package/components/webc-text-input-trigger/text-input-trigger.html +0 -4
  417. package/components/webc-text-input-trigger/text-input-trigger.js +0 -33
  418. package/components/webc-toggle-trigger/index.html +0 -30
  419. package/components/webc-toggle-trigger/toggle-trigger.css +0 -13
  420. package/components/webc-toggle-trigger/toggle-trigger.html +0 -8
  421. package/components/webc-toggle-trigger/toggle-trigger.js +0 -53
  422. package/createDynamicBlockScss-v3.js +0 -25
  423. package/createJsAssets-v3.js +0 -35
  424. package/createJsAssets.js +0 -31
  425. package/createNewBlock.js +0 -131
  426. package/createNewChildBlock2.js +0 -142
  427. package/createPreviewScss.js +0 -35
  428. package/datalayer-tools.mjs +0 -2
  429. package/duplicateBlock.js +0 -123
  430. package/esbuild.mjs +0 -87
  431. package/exportAllBlocks.js +0 -144
  432. package/exportBlock.js +0 -109
  433. package/exportChildBlock.js +0 -102
  434. package/exportCustomCachesToLibrary.js +0 -73
  435. package/exportEntrypointToLibrary.js +0 -76
  436. package/exportImagesToLibrary.js +0 -68
  437. package/exportSEOExtrasToLibrary.js +0 -73
  438. package/exportToLibrary.js +0 -548
  439. package/importBlock.js +0 -92
  440. package/importChildBlock.js +0 -76
  441. package/install-component.js +0 -204
  442. package/list-components.js +0 -9
  443. package/new-block-templates/template-block-json.js +0 -37
  444. package/new-block-templates/template-default.js +0 -21
  445. package/new-block-templates/template-js-blank.js +0 -12
  446. package/new-block-templates/template-scss-blank.js +0 -6
  447. package/no-audio.vtt +0 -4
  448. package/onion-loader-dev.js +0 -260
  449. package/onion-loader-local.js +0 -222
  450. package/public/.gitkeep +0 -0
  451. package/public/assetList.mjs +0 -3
  452. package/public/block-accent-image-v3/accent-image-v3.css +0 -2
  453. package/public/block-accent-image-v3/accent-image-v3.js +0 -7
  454. package/public/block-accordion-v3/accordion-v3.css +0 -380
  455. package/public/block-accordion-v3/accordion-v3.js +0 -117
  456. package/public/block-back-to-top-button-v3/back-to-top-button-v3.css +0 -64
  457. package/public/block-back-to-top-button-v3/back-to-top-button-v3.js +0 -12
  458. package/public/block-betterreviews-display-v3/betterreviews-display-v3.css +0 -95
  459. package/public/block-betterreviews-display-v3/betterreviews-display-v3.js +0 -7
  460. package/public/block-block-interactions-v3/block-interactions-v3.css +0 -36
  461. package/public/block-block-interactions-v3/block-interactions-v3.js +0 -44
  462. package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.css +0 -187
  463. package/public/block-carousel-multi-layout-v3/carousel-multi-layout-v3.js +0 -185
  464. package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.css +0 -268
  465. package/public/block-cocktail-recipe-v3/cocktail-recipe-v3.js +0 -93
  466. package/public/block-cover-link-v3/cover-link-v3.css +0 -8
  467. package/public/block-cover-link-v3/cover-link-v3.js +0 -7
  468. package/public/block-divider-v3/divider-v3.css +0 -74
  469. package/public/block-divider-v3/divider-v3.js +0 -7
  470. package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.css +0 -98
  471. package/public/block-featured-image-gallery-v3/featured-image-gallery-v3.js +0 -44
  472. package/public/block-form-selection-v3/form-selection-v3.css +0 -31
  473. package/public/block-form-selection-v3/form-selection-v3.js +0 -61
  474. package/public/block-gradient-layer-v3/gradient-layer-v3.css +0 -45
  475. package/public/block-gradient-layer-v3/gradient-layer-v3.js +0 -7
  476. package/public/block-group-container-v3/group-container-v3.css +0 -303
  477. package/public/block-group-container-v3/group-container-v3.js +0 -7
  478. package/public/block-lottie-content-v3/lottie-content-v3.css +0 -0
  479. package/public/block-lottie-content-v3/lottie-content-v3.js +0 -25
  480. package/public/block-market-selector-v3/market-selector-v3.css +0 -136
  481. package/public/block-market-selector-v3/market-selector-v3.js +0 -7
  482. package/public/block-modal-form-v3/modal-form-v3.css +0 -0
  483. package/public/block-modal-form-v3/modal-form-v3.js +0 -44
  484. package/public/block-nav-menu-container-v3/nav-menu-container-v3.css +0 -3
  485. package/public/block-nav-menu-container-v3/nav-menu-container-v3.js +0 -7
  486. package/public/block-post-info-v3/post-info-v3.css +0 -1148
  487. package/public/block-post-info-v3/post-info-v3.js +0 -7
  488. package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.css +0 -873
  489. package/public/block-post-type-filter-grid-v3/post-type-filter-grid-v3.js +0 -13
  490. package/public/block-product-info-v3/product-info-v3.css +0 -846
  491. package/public/block-product-info-v3/product-info-v3.js +0 -7
  492. package/public/block-raw-html-v3/raw-html-v3.css +0 -0
  493. package/public/block-raw-html-v3/raw-html-v3.js +0 -7
  494. package/public/block-responsive-table-v3/responsive-table-v3.css +0 -50
  495. package/public/block-responsive-table-v3/responsive-table-v3.js +0 -7
  496. package/public/block-scrolling-banner-v3/scrolling-banner-v3.css +0 -93
  497. package/public/block-scrolling-banner-v3/scrolling-banner-v3.js +0 -118
  498. package/public/block-section-separator-v3/section-separator-v3.css +0 -43
  499. package/public/block-section-separator-v3/section-separator-v3.js +0 -7
  500. package/public/block-single-column-container-v3/single-column-container-v3.css +0 -14
  501. package/public/block-single-column-container-v3/single-column-container-v3.js +0 -7
  502. package/public/block-single-responsive-image-v3/single-responsive-image-v3.css +0 -61
  503. package/public/block-single-responsive-image-v3/single-responsive-image-v3.js +0 -7
  504. package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.css +0 -20
  505. package/public/block-site-copyright-notice-v3/site-copyright-notice-v3.js +0 -44
  506. package/public/block-site-logo-container-v3/site-logo-container-v3.css +0 -18
  507. package/public/block-site-logo-container-v3/site-logo-container-v3.js +0 -7
  508. package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.css +0 -12
  509. package/public/block-site-title-and-tagline-v3/site-title-and-tagline-v3.js +0 -7
  510. package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.css +0 -25
  511. package/public/block-smash-balloon-social-media-v3/smash-balloon-social-media-v3.js +0 -8
  512. package/public/block-social-networks-v3/social-networks-v3.css +0 -74
  513. package/public/block-social-networks-v3/social-networks-v3.js +0 -7
  514. package/public/block-spacer-v3/spacer-v3.css +0 -16
  515. package/public/block-spacer-v3/spacer-v3.js +0 -2
  516. package/public/block-spotify-embed-v3/spotify-embed-v3.css +0 -7
  517. package/public/block-spotify-embed-v3/spotify-embed-v3.js +0 -7
  518. package/public/block-standard-content-v3/standard-content-v3.css +0 -423
  519. package/public/block-standard-content-v3/standard-content-v3.js +0 -7
  520. package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.css +0 -0
  521. package/public/block-sticky-buy-cta-v3/sticky-buy-cta-v3.js +0 -7
  522. package/public/block-sub-group-container-v3/sub-group-container-v3.css +0 -288
  523. package/public/block-sub-group-container-v3/sub-group-container-v3.js +0 -2
  524. package/public/block-video-content-v3/video-content-v3.css +0 -102
  525. package/public/block-video-content-v3/video-content-v3.js +0 -11
  526. package/public/dynamicBlockScss-v3.css +0 -6392
  527. package/public/dynamicBlockScss-v3.scss +0 -37
  528. package/public/jsAssets.mjs +0 -4
  529. package/public/publicBundleBase.css +0 -4742
  530. package/public/publicBundleBase.scss +0 -11
  531. package/removeBlock.js +0 -124
  532. package/update-all-components.js +0 -135
  533. package/update-component.js +0 -537
  534. package/update-template.js +0 -537
  535. /package/{.prettierrc → onion-videocontroller/.prettierrc} +0 -0
  536. /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.49",
3
+ "version": "3.2.0",
4
4
  "description": "Component library",
5
- "main": "index.js",
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
- "@total_onion/onion-modalcontroller": "^1.2.4",
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