@gem-sdk/components 2.1.13-staging.3 → 2.1.13-staging.30

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 (182) hide show
  1. package/dist/cjs/article/components/ArticleImage.js +2 -1
  2. package/dist/cjs/article/components/ArticleList.js +1 -1
  3. package/dist/cjs/banner/components/hero-banner/index.liquid.js +12 -13
  4. package/dist/cjs/banner/components/hero-banner/utils/index.js +5 -3
  5. package/dist/cjs/builder.js +21 -1
  6. package/dist/cjs/carousel/components/Carousel.liquid.js +3 -2
  7. package/dist/cjs/collection/components/CollectionDescription.js +101 -7
  8. package/dist/cjs/collection/components/CollectionDescription.liquid.js +102 -9
  9. package/dist/cjs/collection/setting/CollectionDescription.js +128 -0
  10. package/dist/cjs/form/components/textarea/TextArea.liquid.js +2 -2
  11. package/dist/cjs/image/components/AdaptiveImage.liquid.js +6 -5
  12. package/dist/cjs/image/components/Image.js +0 -1
  13. package/dist/cjs/image/components/Image.liquid.js +6 -5
  14. package/dist/cjs/image/components/NextImage.liquid.js +4 -3
  15. package/dist/cjs/image-comparison/components/CompareImage.liquid.js +7 -3
  16. package/dist/cjs/index.js +20 -0
  17. package/dist/cjs/index.liquid.js +22 -2
  18. package/dist/cjs/marquee/components/MarqueeBase.liquid.js +7 -26
  19. package/dist/cjs/product/components/Product.liquid.js +3 -2
  20. package/dist/cjs/product/components/ProductBadge/index.liquid.js +13 -4
  21. package/dist/cjs/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
  22. package/dist/cjs/product/components/ProductDescription.liquid.js +21 -5
  23. package/dist/cjs/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
  24. package/dist/cjs/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +12 -4
  25. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
  26. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  27. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  28. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  29. package/dist/cjs/product/components/ProductVariants/index.liquid.js +11 -18
  30. package/dist/cjs/product/components/ProductVariants/variants/Base.liquid.js +1 -0
  31. package/dist/cjs/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
  32. package/dist/cjs/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
  33. package/dist/cjs/product/components/ProductVariants/variants/combine/index.js +47 -0
  34. package/dist/cjs/product/components/Sku.js +2 -14
  35. package/dist/cjs/product/setting/ProductBadge.js +5 -0
  36. package/dist/cjs/product/setting/ProductDescription.js +5 -0
  37. package/dist/cjs/tab/hooks/useTabInteraction.js +13 -9
  38. package/dist/cjs/third-party/components/AlsoBoughtCbb.js +32 -0
  39. package/dist/cjs/third-party/components/AlsoBoughtCbb.liquid.js +21 -0
  40. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.js +32 -0
  41. package/dist/cjs/third-party/components/BfSizeChartSizeGuide.liquid.js +12 -0
  42. package/dist/cjs/third-party/components/EssentialAnnouncementBar.js +32 -0
  43. package/dist/cjs/third-party/components/EssentialAnnouncementBar.liquid.js +12 -0
  44. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.js +32 -0
  45. package/dist/cjs/third-party/components/EssentialCountdownTimerBar.liquid.js +12 -0
  46. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.js +32 -0
  47. package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.liquid.js +12 -0
  48. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.js +32 -0
  49. package/dist/cjs/third-party/components/GloColorSwatchvariantImage.liquid.js +12 -0
  50. package/dist/cjs/third-party/components/HextomFreeShippingBar.js +32 -0
  51. package/dist/cjs/third-party/components/HextomFreeShippingBar.liquid.js +12 -0
  52. package/dist/cjs/third-party/components/NotifyBackInStockPreOrder.js +1 -1
  53. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.js +32 -0
  54. package/dist/cjs/third-party/components/OkendoReviewsLoyalty.liquid.js +12 -0
  55. package/dist/cjs/third-party/components/QikifyUpsell.js +22 -10
  56. package/dist/cjs/third-party/components/QikifyUpsell.liquid.js +3 -46
  57. package/dist/cjs/third-party/components/ShopifySubscriptions.liquid.js +3 -2
  58. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.js +32 -0
  59. package/dist/cjs/third-party/components/StellarDeliveryDatePickup.liquid.js +21 -0
  60. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.js +32 -0
  61. package/dist/cjs/third-party/components/TrustedsiteTrustBadges.liquid.js +12 -0
  62. package/dist/cjs/third-party/configs/AlsoBoughtCbb.js +12 -0
  63. package/dist/cjs/third-party/configs/BfSizeChartSizeGuide.js +12 -0
  64. package/dist/cjs/third-party/configs/EssentialAnnouncementBar.js +12 -0
  65. package/dist/cjs/third-party/configs/EssentialCountdownTimerBar.js +12 -0
  66. package/dist/cjs/third-party/configs/EstimatedDeliveryDatePlus.js +12 -0
  67. package/dist/cjs/third-party/configs/GloColorSwatchvariantImage.js +12 -0
  68. package/dist/cjs/third-party/configs/HextomFreeShippingBar.js +12 -0
  69. package/dist/cjs/third-party/configs/OkendoReviewsLoyalty.js +12 -0
  70. package/dist/cjs/third-party/configs/StellarDeliveryDatePickup.js +12 -0
  71. package/dist/cjs/third-party/configs/TrustedsiteTrustBadges.js +12 -0
  72. package/dist/cjs/third-party/helpers/thirdParty.js +1 -1
  73. package/dist/cjs/third-party/next.js +51 -1
  74. package/dist/cjs/third-party/setting/AlsoBoughtCbb.js +127 -0
  75. package/dist/cjs/third-party/setting/BfSizeChartSizeGuide.js +131 -0
  76. package/dist/cjs/third-party/setting/EssentialAnnouncementBar.js +142 -0
  77. package/dist/cjs/third-party/setting/EssentialCountdownTimerBar.js +142 -0
  78. package/dist/cjs/third-party/setting/EstimatedDeliveryDatePlus.js +128 -0
  79. package/dist/cjs/third-party/setting/GloColorSwatchvariantImage.js +152 -0
  80. package/dist/cjs/third-party/setting/HextomFreeShippingBar.js +128 -0
  81. package/dist/cjs/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
  82. package/dist/cjs/third-party/setting/OkendoReviewsLoyalty.js +171 -0
  83. package/dist/cjs/third-party/setting/QikifyUpsell.js +11 -1
  84. package/dist/cjs/third-party/setting/ShopifySubscriptions.js +22 -0
  85. package/dist/cjs/third-party/setting/StellarDeliveryDatePickup.js +127 -0
  86. package/dist/cjs/third-party/setting/TrustedsiteTrustBadges.js +177 -0
  87. package/dist/cjs/third-party/setting/index.js +21 -1
  88. package/dist/cjs/video/components/HTML5Embed.js +2 -2
  89. package/dist/cjs/video/components/HTML5Embed.liquid.js +6 -3
  90. package/dist/cjs/video/components/LiteYouTubeEmbed.liquid.js +5 -3
  91. package/dist/esm/article/components/ArticleImage.js +2 -1
  92. package/dist/esm/article/components/ArticleList.js +1 -1
  93. package/dist/esm/banner/components/hero-banner/index.liquid.js +12 -13
  94. package/dist/esm/banner/components/hero-banner/utils/index.js +5 -3
  95. package/dist/esm/builder.js +21 -1
  96. package/dist/esm/carousel/components/Carousel.liquid.js +3 -2
  97. package/dist/esm/collection/components/CollectionDescription.js +103 -9
  98. package/dist/esm/collection/components/CollectionDescription.liquid.js +103 -10
  99. package/dist/esm/collection/setting/CollectionDescription.js +128 -0
  100. package/dist/esm/form/components/textarea/TextArea.liquid.js +2 -2
  101. package/dist/esm/image/components/AdaptiveImage.liquid.js +6 -5
  102. package/dist/esm/image/components/Image.js +0 -1
  103. package/dist/esm/image/components/Image.liquid.js +6 -5
  104. package/dist/esm/image/components/NextImage.liquid.js +4 -3
  105. package/dist/esm/image-comparison/components/CompareImage.liquid.js +7 -3
  106. package/dist/esm/index.js +10 -0
  107. package/dist/esm/index.liquid.js +11 -1
  108. package/dist/esm/marquee/components/MarqueeBase.liquid.js +7 -26
  109. package/dist/esm/product/components/Product.liquid.js +3 -2
  110. package/dist/esm/product/components/ProductBadge/index.liquid.js +14 -5
  111. package/dist/esm/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
  112. package/dist/esm/product/components/ProductDescription.liquid.js +22 -6
  113. package/dist/esm/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
  114. package/dist/esm/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +13 -5
  115. package/dist/esm/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
  116. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  117. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  118. package/dist/esm/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  119. package/dist/esm/product/components/ProductVariants/index.liquid.js +12 -19
  120. package/dist/esm/product/components/ProductVariants/variants/Base.liquid.js +1 -0
  121. package/dist/esm/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
  122. package/dist/esm/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
  123. package/dist/esm/product/components/ProductVariants/variants/combine/index.js +44 -0
  124. package/dist/esm/product/components/Sku.js +3 -15
  125. package/dist/esm/product/setting/ProductBadge.js +5 -0
  126. package/dist/esm/product/setting/ProductDescription.js +5 -0
  127. package/dist/esm/tab/hooks/useTabInteraction.js +14 -10
  128. package/dist/esm/third-party/components/AlsoBoughtCbb.js +28 -0
  129. package/dist/esm/third-party/components/AlsoBoughtCbb.liquid.js +17 -0
  130. package/dist/esm/third-party/components/BfSizeChartSizeGuide.js +28 -0
  131. package/dist/esm/third-party/components/BfSizeChartSizeGuide.liquid.js +8 -0
  132. package/dist/esm/third-party/components/EssentialAnnouncementBar.js +28 -0
  133. package/dist/esm/third-party/components/EssentialAnnouncementBar.liquid.js +8 -0
  134. package/dist/esm/third-party/components/EssentialCountdownTimerBar.js +28 -0
  135. package/dist/esm/third-party/components/EssentialCountdownTimerBar.liquid.js +8 -0
  136. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.js +28 -0
  137. package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.liquid.js +8 -0
  138. package/dist/esm/third-party/components/GloColorSwatchvariantImage.js +28 -0
  139. package/dist/esm/third-party/components/GloColorSwatchvariantImage.liquid.js +8 -0
  140. package/dist/esm/third-party/components/HextomFreeShippingBar.js +28 -0
  141. package/dist/esm/third-party/components/HextomFreeShippingBar.liquid.js +8 -0
  142. package/dist/esm/third-party/components/NotifyBackInStockPreOrder.js +1 -1
  143. package/dist/esm/third-party/components/OkendoReviewsLoyalty.js +28 -0
  144. package/dist/esm/third-party/components/OkendoReviewsLoyalty.liquid.js +8 -0
  145. package/dist/esm/third-party/components/QikifyUpsell.js +22 -10
  146. package/dist/esm/third-party/components/QikifyUpsell.liquid.js +3 -46
  147. package/dist/esm/third-party/components/ShopifySubscriptions.liquid.js +3 -2
  148. package/dist/esm/third-party/components/StellarDeliveryDatePickup.js +28 -0
  149. package/dist/esm/third-party/components/StellarDeliveryDatePickup.liquid.js +17 -0
  150. package/dist/esm/third-party/components/TrustedsiteTrustBadges.js +28 -0
  151. package/dist/esm/third-party/components/TrustedsiteTrustBadges.liquid.js +8 -0
  152. package/dist/esm/third-party/configs/AlsoBoughtCbb.js +8 -0
  153. package/dist/esm/third-party/configs/BfSizeChartSizeGuide.js +8 -0
  154. package/dist/esm/third-party/configs/EssentialAnnouncementBar.js +8 -0
  155. package/dist/esm/third-party/configs/EssentialCountdownTimerBar.js +8 -0
  156. package/dist/esm/third-party/configs/EstimatedDeliveryDatePlus.js +8 -0
  157. package/dist/esm/third-party/configs/GloColorSwatchvariantImage.js +8 -0
  158. package/dist/esm/third-party/configs/HextomFreeShippingBar.js +8 -0
  159. package/dist/esm/third-party/configs/OkendoReviewsLoyalty.js +8 -0
  160. package/dist/esm/third-party/configs/StellarDeliveryDatePickup.js +8 -0
  161. package/dist/esm/third-party/configs/TrustedsiteTrustBadges.js +8 -0
  162. package/dist/esm/third-party/helpers/thirdParty.js +1 -1
  163. package/dist/esm/third-party/next.js +51 -1
  164. package/dist/esm/third-party/setting/AlsoBoughtCbb.js +123 -0
  165. package/dist/esm/third-party/setting/BfSizeChartSizeGuide.js +127 -0
  166. package/dist/esm/third-party/setting/EssentialAnnouncementBar.js +138 -0
  167. package/dist/esm/third-party/setting/EssentialCountdownTimerBar.js +138 -0
  168. package/dist/esm/third-party/setting/EstimatedDeliveryDatePlus.js +124 -0
  169. package/dist/esm/third-party/setting/GloColorSwatchvariantImage.js +148 -0
  170. package/dist/esm/third-party/setting/HextomFreeShippingBar.js +124 -0
  171. package/dist/esm/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
  172. package/dist/esm/third-party/setting/OkendoReviewsLoyalty.js +167 -0
  173. package/dist/esm/third-party/setting/QikifyUpsell.js +11 -1
  174. package/dist/esm/third-party/setting/ShopifySubscriptions.js +22 -0
  175. package/dist/esm/third-party/setting/StellarDeliveryDatePickup.js +123 -0
  176. package/dist/esm/third-party/setting/TrustedsiteTrustBadges.js +173 -0
  177. package/dist/esm/third-party/setting/index.js +224 -204
  178. package/dist/esm/video/components/HTML5Embed.js +2 -2
  179. package/dist/esm/video/components/HTML5Embed.liquid.js +6 -3
  180. package/dist/esm/video/components/LiteYouTubeEmbed.liquid.js +5 -3
  181. package/dist/types/index.d.ts +257 -36
  182. package/package.json +2 -2
@@ -7,7 +7,7 @@ var AdaptiveImage_liquid = require('./AdaptiveImage.liquid.js');
7
7
  var NextImage_liquid = require('./NextImage.liquid.js');
8
8
  var helpers = require('../../helpers.js');
9
9
 
10
- const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyloadImage = true })=>{
10
+ const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyLoadImage = true, pageContext })=>{
11
11
  const { imageLink, isNotLazyload } = setting ?? {};
12
12
  const { shape } = styles ?? {};
13
13
  const { Wrap: WrapLink, urlData } = helpers.getInsertLinkData('div', imageLink);
@@ -34,7 +34,7 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
34
34
  }}
35
35
  data-id="${builderProps?.uid}"
36
36
  role="presentation"
37
- class="${core.cls('gp-group/image', builderProps?.uid, advanced?.cssClass)}"
37
+ class="${core.cls('gp-group/image', builderProps?.uid, advanced?.cssClass, `force-publish-${new Date().getTime()}`)}"
38
38
  style="${{
39
39
  ...style,
40
40
  ...core.makeStyleResponsive('ta', styles?.align)
@@ -50,7 +50,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
50
50
  style="${{
51
51
  ...core.getStyleShadowState(styles?.boxShadowImg, 'box-shadow', styles?.hasBoxShadowImg),
52
52
  'border-radius': 'inherit',
53
- overflow: 'hidden',
54
53
  ...core.makeStyleResponsive('jc', styles?.align)
55
54
  }}"
56
55
  >
@@ -77,7 +76,8 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
77
76
  aspectRatio: core.getAspectRatioGlobalSize(styles?.shape),
78
77
  layout: styles?.objectFit,
79
78
  priority: setting?.priority,
80
- enableLazyloadImage
79
+ enableLazyLoadImage,
80
+ pageContext
81
81
  }) : NextImage_liquid.default({
82
82
  ...setting?.image,
83
83
  priority: setting?.priority,
@@ -106,7 +106,8 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
106
106
  layout: styles?.objectFit
107
107
  },
108
108
  isNotLazyload,
109
- enableLazyloadImage
109
+ enableLazyLoadImage,
110
+ pageContext
110
111
  })}
111
112
  </${WrapLink}>
112
113
  </div>`;
@@ -7,7 +7,7 @@ var getSrcSet = require('../helpers/getSrcSet.js');
7
7
  var index = require('../../product/components/ProductVariants/index.js');
8
8
  var helpers = require('./helpers.js');
9
9
 
10
- const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f08-f6665179f02f/-/format/auto/-/quality/lighter/placeholder-1.png', srcIsLiquidCode, alt = 'Alt image', width = 2237, height = 1678, backupFileKey, backupFilePath, storage, style, priority, vw, className, base64, baseSrc, isDisableAspectStyle, isDisableObjectFit, customAttrs, customLazyload, isNotLazyload, enableLazyloadImage = true, srcset, sizes, ...props })=>{
10
+ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f08-f6665179f02f/-/format/auto/-/quality/lighter/placeholder-1.png', srcIsLiquidCode, alt = 'Alt image', width = 2237, height = 1678, backupFileKey, backupFilePath, storage, style, priority, vw, className, base64, baseSrc, isDisableAspectStyle, isDisableObjectFit, customAttrs, customLazyload, isNotLazyload, enableLazyLoadImage = true, pageContext, srcset, sizes, ...props })=>{
11
11
  const { aspectRatio, layout, qualityPercent, qualityType } = setting ?? {};
12
12
  const newBackupFilekey = backupFileKey ? getSrcSet.getNewBackupFileKey(backupFileKey ?? '', src) : '';
13
13
  const srcImage = srcIsLiquidCode ? baseSrc : getSrcSet.getImageSrc({
@@ -97,12 +97,13 @@ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f0
97
97
  ${customAttrs}
98
98
  draggable="false"
99
99
  class="${core.cls(className, {
100
- gp_lazyload: !customLazyload && enableLazyloadImage
100
+ gp_lazyload: !customLazyload && enableLazyLoadImage,
101
+ gp_force_load: pageContext?.isOptimizePlan
101
102
  })}"
102
103
  ${{
103
104
  'data-src': srcImage,
104
105
  'data-srcset': srcSetImg,
105
- src: enableLazyloadImage ? imagePlaceholder : srcImage,
106
+ src: enableLazyLoadImage ? imagePlaceholder : srcImage,
106
107
  width,
107
108
  height,
108
109
  alt,
@@ -11,7 +11,7 @@ var helpers$1 = require('../../helpers.js');
11
11
  var helpers = require('./common/helpers.js');
12
12
 
13
13
  const CompareImage = (props)=>{
14
- const { handle = null, handleSize = 40, hover = false, leftImage, leftImageAlt = '', leftImageTitle = '', leftImageCss = {}, leftImageLabel = null, onSliderPositionChange, rightImage, rightImageAlt = '', rightImageTitle = '', rightImageCss = {}, rightImageLabel = null, sliderLineColor = '#ffffff', sliderLineWidth = 2, sliderPositionPercentage = 0.5, vertical = false, enableLabel = false, componentUid = '', styles, advanced, builderData, preload = false, pageContext, translate } = props;
14
+ const { handle = null, handleSize = 40, hover = false, leftImage, leftImageAlt = '', leftImageTitle = '', leftImageCss = {}, leftImageLabel = null, onSliderPositionChange, rightImage, rightImageAlt = '', rightImageTitle = '', rightImageCss = {}, rightImageLabel = null, sliderLineColor = '#ffffff', sliderLineWidth = 2, sliderPositionPercentage = 0.5, vertical = false, enableLabel = false, componentUid = '', styles, advanced, builderData, preload = false, enableLazyLoadImage, pageContext, translate } = props;
15
15
  const horizontal = !vertical;
16
16
  const leftRatio = (leftImage?.width ?? 0) / (leftImage?.height ?? 1);
17
17
  const rightRatio = (rightImage?.width ?? 0) / (rightImage?.height ?? 1);
@@ -271,7 +271,9 @@ const CompareImage = (props)=>{
271
271
  style: {
272
272
  ...initStyles.rightImage,
273
273
  ...core.makeStyleResponsive('objf', styles?.imageScale)
274
- }
274
+ },
275
+ enableLazyLoadImage,
276
+ pageContext
275
277
  })}
276
278
  ${NextImage_liquid.default({
277
279
  customAttrs: {
@@ -287,7 +289,9 @@ const CompareImage = (props)=>{
287
289
  style: {
288
290
  ...initStyles.rightImage,
289
291
  ...core.makeStyleResponsive('objf', styles?.imageScale)
290
- }
292
+ },
293
+ enableLazyLoadImage,
294
+ pageContext
291
295
  })}
292
296
  <div id="image-comparison-slider-${componentUid}" style="${{
293
297
  ...initStyles.slider
package/dist/cjs/index.js CHANGED
@@ -207,8 +207,18 @@ var TrustreviewsProductReviews = require('./third-party/components/TrustreviewsP
207
207
  var MyappgurusProductReviews = require('./third-party/components/MyappgurusProductReviews.js');
208
208
  var HulkProductOptions = require('./third-party/components/HulkProductOptions.js');
209
209
  var TrustshopProductReviews = require('./third-party/components/TrustshopProductReviews.js');
210
+ var StellarDeliveryDatePickup = require('./third-party/components/StellarDeliveryDatePickup.js');
211
+ var EssentialCountdownTimerBar = require('./third-party/components/EssentialCountdownTimerBar.js');
212
+ var EssentialAnnouncementBar = require('./third-party/components/EssentialAnnouncementBar.js');
213
+ var OkendoReviewsLoyalty = require('./third-party/components/OkendoReviewsLoyalty.js');
214
+ var EstimatedDeliveryDatePlus = require('./third-party/components/EstimatedDeliveryDatePlus.js');
210
215
  var HextomCountdownTimerBar = require('./third-party/components/HextomCountdownTimerBar.js');
211
216
  var TrustBadgesBear = require('./third-party/components/TrustBadgesBear.js');
217
+ var TrustedsiteTrustBadges = require('./third-party/components/TrustedsiteTrustBadges.js');
218
+ var GloColorSwatchvariantImage = require('./third-party/components/GloColorSwatchvariantImage.js');
219
+ var BfSizeChartSizeGuide = require('./third-party/components/BfSizeChartSizeGuide.js');
220
+ var AlsoBoughtCbb = require('./third-party/components/AlsoBoughtCbb.js');
221
+ var HextomFreeShippingBar = require('./third-party/components/HextomFreeShippingBar.js');
212
222
  var index$x = require('./third-party-instant/setting/index.js');
213
223
  var InstantJudgemeReviews = require('./third-party-instant/components/InstantJudgemeReviews.js');
214
224
  var InstantLooxReviews = require('./third-party-instant/components/InstantLooxReviews.js');
@@ -511,8 +521,18 @@ exports.TrustreviewsProductReviews = TrustreviewsProductReviews.default;
511
521
  exports.MyappgurusProductReviews = MyappgurusProductReviews.default;
512
522
  exports.HulkProductOptions = HulkProductOptions.default;
513
523
  exports.TrustshopProductReviews = TrustshopProductReviews.default;
524
+ exports.StellarDeliveryDatePickup = StellarDeliveryDatePickup.default;
525
+ exports.EssentialCountdownTimerBar = EssentialCountdownTimerBar.default;
526
+ exports.EssentialAnnouncementBar = EssentialAnnouncementBar.default;
527
+ exports.OkendoReviewsLoyalty = OkendoReviewsLoyalty.default;
528
+ exports.EstimatedDeliveryDatePlus = EstimatedDeliveryDatePlus.default;
514
529
  exports.HextomCountdownTimerBar = HextomCountdownTimerBar.default;
515
530
  exports.TrustBadgesBear = TrustBadgesBear.default;
531
+ exports.TrustedsiteTrustBadges = TrustedsiteTrustBadges.default;
532
+ exports.GloColorSwatchvariantImage = GloColorSwatchvariantImage.default;
533
+ exports.BfSizeChartSizeGuide = BfSizeChartSizeGuide.default;
534
+ exports.AlsoBoughtCbb = AlsoBoughtCbb.default;
535
+ exports.HextomFreeShippingBar = HextomFreeShippingBar.default;
516
536
  exports.thirdPartyInstantSetting = index$x.default;
517
537
  exports.InstantJudgemeReviews = InstantJudgemeReviews.default;
518
538
  exports.InstantLooxReviews = InstantLooxReviews.default;
@@ -161,9 +161,19 @@ var SeoantTrustBadgesIcon_liquid = require('./third-party/components/SeoantTrust
161
161
  var TrustreviewsProductReviews_liquid = require('./third-party/components/TrustreviewsProductReviews.liquid.js');
162
162
  var MyappgurusProductReviews_liquid = require('./third-party/components/MyappgurusProductReviews.liquid.js');
163
163
  var HulkProductOptions_liquid = require('./third-party/components/HulkProductOptions.liquid.js');
164
+ var TrustshopProductReviews_liquid = require('./third-party/components/TrustshopProductReviews.liquid.js');
165
+ var StellarDeliveryDatePickup_liquid = require('./third-party/components/StellarDeliveryDatePickup.liquid.js');
166
+ var EssentialCountdownTimerBar_liquid = require('./third-party/components/EssentialCountdownTimerBar.liquid.js');
167
+ var EssentialAnnouncementBar_liquid = require('./third-party/components/EssentialAnnouncementBar.liquid.js');
168
+ var OkendoReviewsLoyalty_liquid = require('./third-party/components/OkendoReviewsLoyalty.liquid.js');
169
+ var EstimatedDeliveryDatePlus_liquid = require('./third-party/components/EstimatedDeliveryDatePlus.liquid.js');
164
170
  var HextomCountdownTimerBar_liquid = require('./third-party/components/HextomCountdownTimerBar.liquid.js');
165
171
  var TrustBadgesBear_liquid = require('./third-party/components/TrustBadgesBear.liquid.js');
166
- var TrustshopProductReviews_liquid = require('./third-party/components/TrustshopProductReviews.liquid.js');
172
+ var TrustedsiteTrustBadges_liquid = require('./third-party/components/TrustedsiteTrustBadges.liquid.js');
173
+ var GloColorSwatchvariantImage_liquid = require('./third-party/components/GloColorSwatchvariantImage.liquid.js');
174
+ var BfSizeChartSizeGuide_liquid = require('./third-party/components/BfSizeChartSizeGuide.liquid.js');
175
+ var AlsoBoughtCbb_liquid = require('./third-party/components/AlsoBoughtCbb.liquid.js');
176
+ var HextomFreeShippingBar_liquid = require('./third-party/components/HextomFreeShippingBar.liquid.js');
167
177
  var ImageComparison_liquid = require('./image-comparison/components/ImageComparison.liquid.js');
168
178
  var ThirdPartySlot_liquid = require('./third-party-slot/components/ThirdPartySlot.liquid.js');
169
179
  var Sticky_liquid = require('./sticky/components/Sticky.liquid.js');
@@ -347,9 +357,19 @@ exports.SeoantTrustBadgesIcon = SeoantTrustBadgesIcon_liquid.default;
347
357
  exports.TrustreviewsProductReviews = TrustreviewsProductReviews_liquid.default;
348
358
  exports.MyappgurusProductReviews = MyappgurusProductReviews_liquid.default;
349
359
  exports.HulkProductOptions = HulkProductOptions_liquid.default;
360
+ exports.TrustshopProductReviews = TrustshopProductReviews_liquid.default;
361
+ exports.StellarDeliveryDatePickup = StellarDeliveryDatePickup_liquid.default;
362
+ exports.EssentialCountdownTimerBar = EssentialCountdownTimerBar_liquid.default;
363
+ exports.EssentialAnnouncementBar = EssentialAnnouncementBar_liquid.default;
364
+ exports.OkendoReviewsLoyalty = OkendoReviewsLoyalty_liquid.default;
365
+ exports.EstimatedDeliveryDatePlus = EstimatedDeliveryDatePlus_liquid.default;
350
366
  exports.HextomCountdownTimerBar = HextomCountdownTimerBar_liquid.default;
351
367
  exports.TrustBadgesBear = TrustBadgesBear_liquid.default;
352
- exports.TrustshopProductReviews = TrustshopProductReviews_liquid.default;
368
+ exports.TrustedsiteTrustBadges = TrustedsiteTrustBadges_liquid.default;
369
+ exports.GloColorSwatchvariantImage = GloColorSwatchvariantImage_liquid.default;
370
+ exports.BfSizeChartSizeGuide = BfSizeChartSizeGuide_liquid.default;
371
+ exports.AlsoBoughtCbb = AlsoBoughtCbb_liquid.default;
372
+ exports.HextomFreeShippingBar = HextomFreeShippingBar_liquid.default;
353
373
  exports.ImageComparison = ImageComparison_liquid.default;
354
374
  exports.ThirdPartySlot = ThirdPartySlot_liquid.default;
355
375
  exports.Sticky = Sticky_liquid.default;
@@ -46,7 +46,6 @@ const MarqueeBase = ({ style = {}, autoFill = false, play = true, pauseOnHover =
46
46
  };
47
47
  return core.template`
48
48
  <div
49
-
50
49
  style="${containerStyle()}"
51
50
  class="rfm-marquee-container"
52
51
  >
@@ -55,35 +54,17 @@ const MarqueeBase = ({ style = {}, autoFill = false, play = true, pauseOnHover =
55
54
  style="${marqueeStyle()}"
56
55
  >
57
56
  <div class="rfm-initial-child-container">
58
-
59
- ${core.template`
60
- <div style="${childStyle()}" class="${`rfm-child`}">
61
- ${children}
62
- </div>
63
- `}
64
- </div>
65
- <div class="rfm-child-placeholder">
66
- ${core.template`
67
- <div style="${childStyle()}" class="${`rfm-child`}">
68
- ${children}
69
- </div>
70
- `}
71
- </div>
72
- <div class="rfm-child-placeholder">
73
-
74
- ${core.template`
75
- <div style="${childStyle()}" class="${`rfm-child`}">
76
- ${children}
77
- </div>
78
- `}
57
+ ${core.template`
58
+ <div style="${childStyle()}" class="${`rfm-child`}">
59
+ ${children}
60
+ </div>
61
+ `}
79
62
  </div>
80
63
  </div>
81
- <div
64
+ <div
82
65
  class="rfm-marquee placeholder-marquee"
83
66
  style="${marqueeStyle()}"
84
- >
85
-
86
- </div>
67
+ ></div>
87
68
  </div>
88
69
  `;
89
70
  };
@@ -9,6 +9,7 @@ var helpers = require('../../helpers.js');
9
9
  const PRODUCT_ID_LATEST = 'latest';
10
10
  const PREFIX_PRODUCT_ID = 'gid://shopify/Product/';
11
11
  const PREFIX_PRODUCT_VARIANT_ID = 'gid://shopify/ProductVariant/';
12
+ const PREFIX_PRODUCT_OPTION_VALUE_ID = 'gid://shopify/ProductOptionValue/';
12
13
  const STATIC_PRODUCT_STATUS = 'static';
13
14
  const DYNAMIC_PRODUCT_STATUS = 'dynamic';
14
15
  const Product = ({ children, setting, styles, style, builderProps, rawChildren, advanced })=>{
@@ -24,8 +25,8 @@ const Product = ({ children, setting, styles, style, builderProps, rawChildren,
24
25
  const formatProductId = productSetting?.productId?.replace(PREFIX_PRODUCT_ID, '').toLowerCase() || PRODUCT_ID_LATEST;
25
26
  const formatVariantId = initVariantId?.replace(PREFIX_PRODUCT_VARIANT_ID, '') || '';
26
27
  const productStatus = productSetting?.productStatus ?? STATIC_PRODUCT_STATUS;
28
+ const preSelectedOptionIds = productSetting?.selectedOptions?.map((option)=>option?.valueBaseID?.replace(PREFIX_PRODUCT_OPTION_VALUE_ID, ''));
27
29
  return core.template /* liquid */ `
28
-
29
30
  {%- assign gpBkProduct = product -%}
30
31
  ${productStatus !== DYNAMIC_PRODUCT_STATUS ? `
31
32
  {%- liquid
@@ -100,7 +101,7 @@ const Product = ({ children, setting, styles, style, builderProps, rawChildren,
100
101
  {%- endif -%}
101
102
  <gp-product data-uid="${builderProps?.uid}" data-id="${builderProps?.uid}" style="${{
102
103
  ...advancedStyle
103
- }}" class="${advanced?.cssClass}" gp-context='{"productId": {{ product.id }}, "isSyncProduct": "${isSyncProduct}", "variantSelected": {{ variant | json | escape }}, "quantity": 1, "formId": "{{ product_form_id }}" }'
104
+ }}" class="${advanced?.cssClass}" gp-context='{"productId": {{ product.id }}, "preSelectedOptionIds": [${preSelectedOptionIds}], "isSyncProduct": "${isSyncProduct}", "variantSelected": {{ variant | json | escape }}, "quantity": 1, "formId": "{{ product_form_id }}" }'
104
105
  gp-data='{"variantSelected": {{ variant | json | escape }}, "quantity": 1, "productUrl":{{ product.url | json | escape }}, "productHandle":{{ product.handle | json | escape }}, "collectionUrl": {{ collection.url | json | escape }}, "collectionHandle": {{ collection.handle | json | escape }}}'>
105
106
  <product-form class="product-form">
106
107
  {%- form 'product', product, id: product_form_id, class: 'form contents', data-type: 'add-to-cart-form', autocomplete: 'off' -%}
@@ -14,7 +14,8 @@ var helpers = require('../../../helpers.js');
14
14
  var renderBadgeLiquid = require('./utils/renderBadgeLiquid.js');
15
15
  var getWhiteSpace = require('./utils/getWhiteSpace.js');
16
16
 
17
- const ProductBadge = ({ styles, builderProps, isInsideProductImage, builderAttrs, setting, style, imageData, dotData })=>{
17
+ const ProductBadge = ({ styles, builderProps, isInsideProductImage, builderAttrs, setting, style, imageData, dotData, pageContext })=>{
18
+ const { displayContent, translate } = setting ?? {};
18
19
  const isTextBadge = setting?.contentType === 'text';
19
20
  const shape$1 = shape.getShape(setting?.shape);
20
21
  const shapeAlignClass = common.getAlignShape(styles?.align, isInsideProductImage);
@@ -34,17 +35,25 @@ const ProductBadge = ({ styles, builderProps, isInsideProductImage, builderAttrs
34
35
  const paddingShape = common.getShapeWrapperPadding(shape$1?.ratio);
35
36
  const composeGlobalSize = core.makeGlobalSize(badgeSize);
36
37
  const isDropOutsideProductImage = setting?.positionWithImage === 'outside';
37
- const isDiscountContent = common.checkDiscountContentProductBadge(setting?.displayContent);
38
+ const isDiscountContent = common.checkDiscountContentProductBadge(displayContent);
39
+ const displayContentVal = helpers.getDynamicSourceLocales({
40
+ val: displayContent?.trim(),
41
+ uid: builderProps?.uid,
42
+ settingId: 'displayContent',
43
+ isLiquid: true,
44
+ pageContext,
45
+ translate
46
+ });
38
47
  return core.template`
39
48
  {% if product %}
40
- ${generateLiquidContent.generateBadgeContent(setting?.displayContent)}
49
+ ${generateLiquidContent.generateBadgeContent(displayContent, pageContext.isPreviewing)}
41
50
  ${renderBadgeLiquid.renderBadgeInFirstTime(setting?.displayTrigger, isDiscountContent, isTextBadge)}
42
51
  <gp-product-badge
43
52
  data-id="${builderProps?.uid}"
44
53
  class="gp-product-badge !gp-max-w-none gp-shrink-0 ${builderProps?.uid} ${builderProps?.builderData?.advanced?.cssClass || ''} {{className}}"
45
54
  id="g-product-badge-${builderProps?.uid}"
46
55
  gp-data='${core.dataStringify({
47
- displayContent: setting?.displayContent,
56
+ displayContent: `${pageContext?.isPreviewing ? displayContentVal : `{{${displayContentVal}}}`}`,
48
57
  minPrice: '{{ minPriceValue }}',
49
58
  variantIDs: '{{ product.variants | map: "id" | json | escape }}',
50
59
  variantInventoryQuantities: '{{ product.variants | map: "inventory_quantity" | json | escape }}',
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- const generateBadgeContent = (content)=>{
3
+ const generateBadgeContent = (content, isPreviewing)=>{
4
4
  return `
5
- {% assign content = "${content?.trim()}" %}
5
+ {% assign content = ${isPreviewing ? JSON.stringify(content) : content} %}
6
6
 
7
7
  {%if content.size > 0 %}
8
8
  {% if variant.compare_at_price and variant.compare_at_price > 0 %}
@@ -20,8 +20,8 @@ const getDisplayStyle = (fnCondition, defaultValue)=>{
20
20
  });
21
21
  return result;
22
22
  };
23
- const ProductDescription = ({ setting, advanced, builderProps })=>{
24
- const { htmlTag } = setting ?? {};
23
+ const ProductDescription = ({ setting, advanced, builderProps, pageContext })=>{
24
+ const { htmlTag, translate, viewMoreText, viewLessText } = setting ?? {};
25
25
  const appendTypoClass = core.composeTypographyClassName(setting?.typo, setting?.typography);
26
26
  const appendTypoStyle = core.composeTypographyStyle(setting?.typo, setting?.typography);
27
27
  const defaultStyle = {
@@ -45,13 +45,29 @@ const ProductDescription = ({ setting, advanced, builderProps })=>{
45
45
  return getDisplayStyle((device)=>!!setting?.hasLineClamp && setting.hasLineClamp[device] !== undefined && !setting.hasLineClamp[device], 'block');
46
46
  };
47
47
  const Tag = htmlTag === 'html' ? 'div' : 'p';
48
+ const viewMoreTextDisplay = helpers.getDynamicSourceLocales({
49
+ val: viewMoreText,
50
+ uid: builderProps?.uid,
51
+ settingId: 'viewMoreText',
52
+ isLiquid: true,
53
+ pageContext,
54
+ translate
55
+ });
56
+ const viewLessTextDisplay = helpers.getDynamicSourceLocales({
57
+ val: viewLessText,
58
+ uid: builderProps?.uid,
59
+ settingId: 'viewLessText',
60
+ isLiquid: true,
61
+ pageContext,
62
+ translate
63
+ });
48
64
  return core.template`
49
65
  <gp-product-description data-id="${builderProps?.uid}" class="${advanced?.cssClass} gp-product-description" gp-data='${JSON.stringify({
50
66
  setting: {
51
67
  lineClamp: setting?.lineClamp,
52
68
  hasLineClamp: setting?.hasLineClamp,
53
- viewMoreText: setting?.viewMoreText,
54
- viewLessText: setting?.viewLessText,
69
+ viewMoreText: pageContext?.isPreviewing ? viewMoreTextDisplay : `{{${viewMoreTextDisplay}}}`,
70
+ viewLessText: pageContext?.isPreviewing ? viewLessTextDisplay : `{{${viewLessTextDisplay}}}`,
55
71
  enableViewMoreIcon: setting?.enableViewMoreIcon
56
72
  },
57
73
  defaultStyle,
@@ -85,7 +101,7 @@ const ProductDescription = ({ setting, advanced, builderProps })=>{
85
101
  }}"
86
102
  >
87
103
 
88
- ${setting?.viewMoreText}
104
+ ${pageContext?.isPreviewing ? viewMoreTextDisplay : `{{${viewMoreTextDisplay}}}`}
89
105
  ${setting?.enableViewMoreIcon ? `<svg
90
106
  class="gp-ml-1 gp-inline-block"
91
107
  style="display: inline-block; margin-left: 1px;"
@@ -42,7 +42,6 @@ const ProductImagesV2 = (productImageProps)=>{
42
42
  const extraClass = advanced?.cssClass;
43
43
  // State
44
44
  const [openLightBox, setOpenLightBox] = React.useState(false);
45
- const [hasVariantAvailable, setHasVariantAvailable] = React.useState(true);
46
45
  const getFirstVideo = (product)=>{
47
46
  return product?.medias?.edges.find((item)=>[
48
47
  'VIDEO',
@@ -57,24 +56,19 @@ const ProductImagesV2 = (productImageProps)=>{
57
56
  };
58
57
  const priorityFeatureImage = React.useMemo(()=>{
59
58
  if (setting?.typeDisplay === 'all-images') {
60
- setHasVariantAvailable(true);
61
59
  let priorityItem;
62
60
  switch(setting?.preDisplay){
63
61
  case '1st-images':
64
62
  priorityItem = getFirstImage(product);
65
- setHasVariantAvailable(false);
66
63
  break;
67
64
  case '1st-3d-mode':
68
65
  priorityItem = getFirst3DModal(product);
69
- setHasVariantAvailable(false);
70
66
  break;
71
67
  case '1st-video':
72
68
  priorityItem = getFirstVideo(product);
73
- setHasVariantAvailable(false);
74
69
  break;
75
70
  case '1st-available-variant':
76
71
  priorityItem = currentVariant?.media;
77
- setHasVariantAvailable(false);
78
72
  break;
79
73
  }
80
74
  setProductFeaturedImage(priorityItem);
@@ -141,7 +135,7 @@ const ProductImagesV2 = (productImageProps)=>{
141
135
  }
142
136
  };
143
137
  React.useEffect(()=>{
144
- if (currentVariant && hasVariantAvailable) {
138
+ if (currentVariant) {
145
139
  const index = galleryIndex[currentVariant?.mediaId];
146
140
  if (index !== undefined) {
147
141
  const fImage = gallery[index] ?? product?.featuredImage;
@@ -155,8 +149,7 @@ const ProductImagesV2 = (productImageProps)=>{
155
149
  galleryIndex,
156
150
  gallery,
157
151
  product?.featuredImage,
158
- setProductFeaturedImage,
159
- hasVariantAvailable
152
+ setProductFeaturedImage
160
153
  ]);
161
154
  const isRenderLightBox = React.useMemo(()=>{
162
155
  const isRender = core.getResponsiveValueByScreen(setting?.ftClickOpenLightBox, currentDevice) === 'popup' || core.getResponsiveValueByScreen(setting?.clickOpenLightBox, currentDevice);
@@ -20,12 +20,20 @@ const ProductFeaturedImageCarousel = ({ productImages, imgRef, onHandleClick, on
20
20
  const { onListener, ref } = core.useInteraction();
21
21
  let delayTimeout;
22
22
  const mode = core.useEditorMode();
23
- const imageActiveIndex = React.useMemo(()=>{
23
+ const getImageActiveIndex = React.useCallback(()=>{
24
24
  const index = productImages?.findIndex((item)=>item.id === featuredImageGlobal?.id);
25
- return index;
25
+ return index ?? 0;
26
26
  }, [
27
- productImages,
28
- featuredImageGlobal
27
+ featuredImageGlobal?.id,
28
+ productImages
29
+ ]);
30
+ const [imageActiveIndex, setImageActiveIndex] = React.useState(getImageActiveIndex());
31
+ React.useEffect(()=>{
32
+ setImageActiveIndex(getImageActiveIndex());
33
+ }, [
34
+ featuredImageGlobal,
35
+ getImageActiveIndex,
36
+ productImages
29
37
  ]);
30
38
  const imageActive = React.useMemo(()=>{
31
39
  if (productImages?.length) return featuredImageGlobal || productImages?.[0];
@@ -13,7 +13,7 @@ var NextImage_liquid = require('../../../../image/components/NextImage.liquid.js
13
13
  var Video_liquid = require('../../../../image/components/Video.liquid.js');
14
14
  var _function = require('../../../helpers/function.js');
15
15
 
16
- const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyloadImage, ...setting })=>{
16
+ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyLoadImage, ...setting })=>{
17
17
  const ftAspectRatio = common.getAspectRatio(setting.ftShape);
18
18
  const getStyleFeaturedImageDisplay = ()=>{
19
19
  return common.getDisplayStyle((device)=>![
@@ -153,7 +153,7 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyload
153
153
  },
154
154
  priority: setting?.preload,
155
155
  className: `gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 featured-image-only gp-cursor-pointer !gp-rounded-none ${className}`,
156
- enableLazyloadImage
156
+ enableLazyLoadImage
157
157
  })}`;
158
158
  };
159
159
  const renderNoImage = ()=>{
@@ -171,7 +171,7 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyload
171
171
  },
172
172
  priority: setting?.preload,
173
173
  className: `gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 featured-image-only gp-cursor-pointer !gp-rounded-none`,
174
- enableLazyloadImage
174
+ enableLazyLoadImage
175
175
  })}`;
176
176
  };
177
177
  const getValueFromValueContainUnit = (value)=>{
@@ -398,10 +398,11 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyload
398
398
  },
399
399
  className: `gp-w-full featured-image-only !gp-rounded-none`,
400
400
  customLazyload: true,
401
- enableLazyloadImage
401
+ enableLazyLoadImage
402
402
  })}
403
403
  {%- endif -%}
404
- `
404
+ `,
405
+ ftShapeProductImage: setting?.ftShape
405
406
  })}
406
407
  `;
407
408
  };
@@ -10,7 +10,7 @@ var common = require('../common/common.js');
10
10
  var productGallery = require('../common/productGallery.js');
11
11
  var _function = require('../../../helpers/function.js');
12
12
 
13
- const ProductGalleryCarousel = ({ builderPropUID, children, enableLazyloadImage, ...setting })=>{
13
+ const ProductGalleryCarousel = ({ builderPropUID, children, enableLazyLoadImage, ...setting })=>{
14
14
  const getCarouselDisplay = ()=>{
15
15
  const isDisplayCarousel = (type, position, device)=>{
16
16
  const layout = core.getResponsiveValueByScreen(position, device);
@@ -90,7 +90,7 @@ const ProductGalleryCarousel = ({ builderPropUID, children, enableLazyloadImage,
90
90
  customLazyload: true,
91
91
  style: style,
92
92
  className: '!gp-rounded-none gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 gp-cursor-pointer',
93
- enableLazyloadImage
93
+ enableLazyLoadImage
94
94
  })}`;
95
95
  };
96
96
  const aspectRatioToPaddingBottom = ()=>{
@@ -12,7 +12,7 @@ var Modal3d_liquid = require('../../../../image/components/Modal3d.liquid.js');
12
12
  var Video_liquid = require('../../../../image/components/Video.liquid.js');
13
13
  var HTML5Embed_liquid = require('../../../../video/components/HTML5Embed.liquid.js');
14
14
 
15
- const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazyloadImage, ...setting })=>{
15
+ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazyLoadImage, ...setting })=>{
16
16
  const getGridDisplay = ()=>{
17
17
  const isDisplayGrid = (type, position, device)=>{
18
18
  const layout = core.getResponsiveValueByScreen(position, device);
@@ -101,7 +101,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
101
101
  style: style,
102
102
  className: '!gp-rounded-none',
103
103
  customLazyload: false,
104
- enableLazyloadImage
104
+ enableLazyLoadImage
105
105
  })}
106
106
  ${setting?.galleryHoverEffect !== 'none' ? `<div class="${core.cls('zoom-element !gp-max-w-none', productFeaturedImage.getZoomImageClass())}">
107
107
  ${NextImage_liquid.default({
@@ -115,7 +115,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
115
115
  style: style,
116
116
  className: '!gp-rounded-none gp-w-full gp-h-full',
117
117
  customLazyload: false,
118
- enableLazyloadImage
118
+ enableLazyLoadImage
119
119
  })}
120
120
  </div>` : ''}
121
121
  ${setting?.galleryHoverEffect == 'zoom' && setting?.galleryZoomType == 'glasses' ? `
@@ -298,7 +298,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
298
298
  },
299
299
  className: '!gp-rounded-none',
300
300
  customLazyload: false,
301
- enableLazyloadImage
301
+ enableLazyLoadImage
302
302
  })}`;
303
303
  };
304
304
  return core.template`
@@ -11,7 +11,7 @@ var helpers = require('../../../../helpers.js');
11
11
  var productGallery = require('../common/productGallery.js');
12
12
 
13
13
  const ProductImages = (productImageProps)=>{
14
- const { setting, styles, builderProps, style, advanced, rawChildren, pageContext, enableLazyloadImage } = productImageProps;
14
+ const { setting, styles, builderProps, style, advanced, rawChildren, pageContext, enableLazyLoadImage } = productImageProps;
15
15
  const settings = {
16
16
  ...setting,
17
17
  ...styles
@@ -116,7 +116,7 @@ const ProductImages = (productImageProps)=>{
116
116
  builderPropUID: `gp-carousel-${builderProps?.uid}`,
117
117
  ...settings,
118
118
  children: renderProductBadge(),
119
- enableLazyloadImage
119
+ enableLazyLoadImage
120
120
  })}
121
121
  ${common.shouldSkipLiquidRenderForSingleImage(settings?.position, core.template`
122
122
  <div
@@ -132,7 +132,7 @@ const ProductImages = (productImageProps)=>{
132
132
  ${ProductGalleryCarousel_liquid.default({
133
133
  builderPropUID: `gp-gallery-${builderProps?.uid}`,
134
134
  ...settings,
135
- enableLazyloadImage
135
+ enableLazyLoadImage
136
136
  })}
137
137
  </div>
138
138
  ${ProductGalleryGrid_liquid.default({
@@ -142,7 +142,7 @@ const ProductImages = (productImageProps)=>{
142
142
  },
143
143
  children: renderProductBadge(),
144
144
  ...settings,
145
- enableLazyloadImage
145
+ enableLazyLoadImage
146
146
  })}
147
147
  `)}
148
148
  </div>
@@ -97,15 +97,9 @@ const ProductVariants = ({ builderProps, style, styles, setting, advanced })=>{
97
97
  <div
98
98
  option-name="{{option.name | escape}}"
99
99
  class="${core.cls('gp-flex variant-inside', {
100
- 'gp-flex-col': layout?.desktop === 'vertical',
101
- 'gp-flex-row': layout?.desktop === 'horizontal',
102
- 'tablet:gp-flex-row': layout?.tablet === 'horizontal',
103
- 'tablet:gp-flex-col': layout?.tablet === 'vertical',
104
- 'mobile:gp-flex-row': layout?.mobile === 'horizontal',
105
- 'mobile:gp-flex-col': layout?.mobile === 'vertical'
106
- }, {
100
+ ...core.getLayoutClasses(layout),
107
101
  ..._function.getAlignClasses(layout, align)
108
- })} {% if hiddenPresetOptions contains option.name %} gp-hidden {% endif %}"
102
+ })}"
109
103
 
110
104
  >
111
105
  {% assign showVariantClass = 'variant-display' %}
@@ -137,15 +131,7 @@ const ProductVariants = ({ builderProps, style, styles, setting, advanced })=>{
137
131
  <div
138
132
  variant-option-name="{{option.name | escape}}"
139
133
  class="${core.cls({
140
- 'gp-justify-start': align?.desktop === 'left',
141
- 'gp-justify-center': align?.desktop === 'center',
142
- 'gp-justify-end': align?.desktop === 'right',
143
- 'tablet:gp-justify-start': align?.tablet === 'left',
144
- 'tablet:gp-justify-center': align?.tablet === 'center',
145
- 'tablet:gp-justify-end': align?.tablet === 'right',
146
- 'mobile:gp-justify-start': align?.mobile === 'left',
147
- 'mobile:gp-justify-center': align?.mobile === 'center',
148
- 'mobile:gp-justify-end': align?.mobile === 'right'
134
+ ...core.getAlignmentClasses(align)
149
135
  }, 'gp-flex gp-w-full gp-flex-wrap gp-items-center variant-option-group')}"
150
136
  style="${{
151
137
  ...core.makeStyle({
@@ -328,6 +314,10 @@ const ProductVariants = ({ builderProps, style, styles, setting, advanced })=>{
328
314
  `;
329
315
  };
330
316
  return core.template`
317
+ {%- assign total_combinations = 1 -%}
318
+ {%- for option in product.options_with_values -%}
319
+ {%- assign total_combinations = total_combinations | times: option.values.size -%}
320
+ {%- endfor -%}
331
321
  <gp-product-variants
332
322
  data-id="${uid}"
333
323
  class="${advanced?.cssClass}"
@@ -343,7 +333,10 @@ const ProductVariants = ({ builderProps, style, styles, setting, advanced })=>{
343
333
  "moneyFormat": {{shop.money_format | json | escape}},
344
334
  "productId": {{product.id | json | escape}},
345
335
  "productUrl": {{product.url | json | escape}},
346
- "displayState":${JSON.stringify(advancedDisplay)}
336
+ "productHandle": {{product.handle | json | escape}},
337
+ "displayState": ${JSON.stringify(advancedDisplay)},
338
+ "totalVariantCombinations": {{total_combinations}},
339
+ "firstAvailableVariant": {{product.selected_or_first_available_variant | json | escape}}
347
340
  }
348
341
  '>
349
342
  {%- assign options = product.options_with_values -%}