@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.
- package/dist/cjs/article/components/ArticleImage.js +2 -1
- package/dist/cjs/article/components/ArticleList.js +1 -1
- package/dist/cjs/banner/components/hero-banner/index.liquid.js +12 -13
- package/dist/cjs/banner/components/hero-banner/utils/index.js +5 -3
- package/dist/cjs/builder.js +21 -1
- package/dist/cjs/carousel/components/Carousel.liquid.js +3 -2
- package/dist/cjs/collection/components/CollectionDescription.js +101 -7
- package/dist/cjs/collection/components/CollectionDescription.liquid.js +102 -9
- package/dist/cjs/collection/setting/CollectionDescription.js +128 -0
- package/dist/cjs/form/components/textarea/TextArea.liquid.js +2 -2
- package/dist/cjs/image/components/AdaptiveImage.liquid.js +6 -5
- package/dist/cjs/image/components/Image.js +0 -1
- package/dist/cjs/image/components/Image.liquid.js +6 -5
- package/dist/cjs/image/components/NextImage.liquid.js +4 -3
- package/dist/cjs/image-comparison/components/CompareImage.liquid.js +7 -3
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.liquid.js +22 -2
- package/dist/cjs/marquee/components/MarqueeBase.liquid.js +7 -26
- package/dist/cjs/product/components/Product.liquid.js +3 -2
- package/dist/cjs/product/components/ProductBadge/index.liquid.js +13 -4
- package/dist/cjs/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
- package/dist/cjs/product/components/ProductDescription.liquid.js +21 -5
- package/dist/cjs/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
- package/dist/cjs/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +12 -4
- package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
- package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
- package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
- package/dist/cjs/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
- package/dist/cjs/product/components/ProductVariants/index.liquid.js +11 -18
- package/dist/cjs/product/components/ProductVariants/variants/Base.liquid.js +1 -0
- package/dist/cjs/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
- package/dist/cjs/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
- package/dist/cjs/product/components/ProductVariants/variants/combine/index.js +47 -0
- package/dist/cjs/product/components/Sku.js +2 -14
- package/dist/cjs/product/setting/ProductBadge.js +5 -0
- package/dist/cjs/product/setting/ProductDescription.js +5 -0
- package/dist/cjs/tab/hooks/useTabInteraction.js +13 -9
- package/dist/cjs/third-party/components/AlsoBoughtCbb.js +32 -0
- package/dist/cjs/third-party/components/AlsoBoughtCbb.liquid.js +21 -0
- package/dist/cjs/third-party/components/BfSizeChartSizeGuide.js +32 -0
- package/dist/cjs/third-party/components/BfSizeChartSizeGuide.liquid.js +12 -0
- package/dist/cjs/third-party/components/EssentialAnnouncementBar.js +32 -0
- package/dist/cjs/third-party/components/EssentialAnnouncementBar.liquid.js +12 -0
- package/dist/cjs/third-party/components/EssentialCountdownTimerBar.js +32 -0
- package/dist/cjs/third-party/components/EssentialCountdownTimerBar.liquid.js +12 -0
- package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.js +32 -0
- package/dist/cjs/third-party/components/EstimatedDeliveryDatePlus.liquid.js +12 -0
- package/dist/cjs/third-party/components/GloColorSwatchvariantImage.js +32 -0
- package/dist/cjs/third-party/components/GloColorSwatchvariantImage.liquid.js +12 -0
- package/dist/cjs/third-party/components/HextomFreeShippingBar.js +32 -0
- package/dist/cjs/third-party/components/HextomFreeShippingBar.liquid.js +12 -0
- package/dist/cjs/third-party/components/NotifyBackInStockPreOrder.js +1 -1
- package/dist/cjs/third-party/components/OkendoReviewsLoyalty.js +32 -0
- package/dist/cjs/third-party/components/OkendoReviewsLoyalty.liquid.js +12 -0
- package/dist/cjs/third-party/components/QikifyUpsell.js +22 -10
- package/dist/cjs/third-party/components/QikifyUpsell.liquid.js +3 -46
- package/dist/cjs/third-party/components/ShopifySubscriptions.liquid.js +3 -2
- package/dist/cjs/third-party/components/StellarDeliveryDatePickup.js +32 -0
- package/dist/cjs/third-party/components/StellarDeliveryDatePickup.liquid.js +21 -0
- package/dist/cjs/third-party/components/TrustedsiteTrustBadges.js +32 -0
- package/dist/cjs/third-party/components/TrustedsiteTrustBadges.liquid.js +12 -0
- package/dist/cjs/third-party/configs/AlsoBoughtCbb.js +12 -0
- package/dist/cjs/third-party/configs/BfSizeChartSizeGuide.js +12 -0
- package/dist/cjs/third-party/configs/EssentialAnnouncementBar.js +12 -0
- package/dist/cjs/third-party/configs/EssentialCountdownTimerBar.js +12 -0
- package/dist/cjs/third-party/configs/EstimatedDeliveryDatePlus.js +12 -0
- package/dist/cjs/third-party/configs/GloColorSwatchvariantImage.js +12 -0
- package/dist/cjs/third-party/configs/HextomFreeShippingBar.js +12 -0
- package/dist/cjs/third-party/configs/OkendoReviewsLoyalty.js +12 -0
- package/dist/cjs/third-party/configs/StellarDeliveryDatePickup.js +12 -0
- package/dist/cjs/third-party/configs/TrustedsiteTrustBadges.js +12 -0
- package/dist/cjs/third-party/helpers/thirdParty.js +1 -1
- package/dist/cjs/third-party/next.js +51 -1
- package/dist/cjs/third-party/setting/AlsoBoughtCbb.js +127 -0
- package/dist/cjs/third-party/setting/BfSizeChartSizeGuide.js +131 -0
- package/dist/cjs/third-party/setting/EssentialAnnouncementBar.js +142 -0
- package/dist/cjs/third-party/setting/EssentialCountdownTimerBar.js +142 -0
- package/dist/cjs/third-party/setting/EstimatedDeliveryDatePlus.js +128 -0
- package/dist/cjs/third-party/setting/GloColorSwatchvariantImage.js +152 -0
- package/dist/cjs/third-party/setting/HextomFreeShippingBar.js +128 -0
- package/dist/cjs/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
- package/dist/cjs/third-party/setting/OkendoReviewsLoyalty.js +171 -0
- package/dist/cjs/third-party/setting/QikifyUpsell.js +11 -1
- package/dist/cjs/third-party/setting/ShopifySubscriptions.js +22 -0
- package/dist/cjs/third-party/setting/StellarDeliveryDatePickup.js +127 -0
- package/dist/cjs/third-party/setting/TrustedsiteTrustBadges.js +177 -0
- package/dist/cjs/third-party/setting/index.js +21 -1
- package/dist/cjs/video/components/HTML5Embed.js +2 -2
- package/dist/cjs/video/components/HTML5Embed.liquid.js +6 -3
- package/dist/cjs/video/components/LiteYouTubeEmbed.liquid.js +5 -3
- package/dist/esm/article/components/ArticleImage.js +2 -1
- package/dist/esm/article/components/ArticleList.js +1 -1
- package/dist/esm/banner/components/hero-banner/index.liquid.js +12 -13
- package/dist/esm/banner/components/hero-banner/utils/index.js +5 -3
- package/dist/esm/builder.js +21 -1
- package/dist/esm/carousel/components/Carousel.liquid.js +3 -2
- package/dist/esm/collection/components/CollectionDescription.js +103 -9
- package/dist/esm/collection/components/CollectionDescription.liquid.js +103 -10
- package/dist/esm/collection/setting/CollectionDescription.js +128 -0
- package/dist/esm/form/components/textarea/TextArea.liquid.js +2 -2
- package/dist/esm/image/components/AdaptiveImage.liquid.js +6 -5
- package/dist/esm/image/components/Image.js +0 -1
- package/dist/esm/image/components/Image.liquid.js +6 -5
- package/dist/esm/image/components/NextImage.liquid.js +4 -3
- package/dist/esm/image-comparison/components/CompareImage.liquid.js +7 -3
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.liquid.js +11 -1
- package/dist/esm/marquee/components/MarqueeBase.liquid.js +7 -26
- package/dist/esm/product/components/Product.liquid.js +3 -2
- package/dist/esm/product/components/ProductBadge/index.liquid.js +14 -5
- package/dist/esm/product/components/ProductBadge/utils/generateLiquidContent.js +2 -2
- package/dist/esm/product/components/ProductDescription.liquid.js +22 -6
- package/dist/esm/product/components/ProductImagesV2/jsx/ProductImages.js +2 -9
- package/dist/esm/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js +13 -5
- package/dist/esm/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +6 -5
- package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
- package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
- package/dist/esm/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
- package/dist/esm/product/components/ProductVariants/index.liquid.js +12 -19
- package/dist/esm/product/components/ProductVariants/variants/Base.liquid.js +1 -0
- package/dist/esm/product/components/ProductVariants/variants/Dropdown.liquid.js +26 -12
- package/dist/esm/product/components/ProductVariants/variants/DropdownGroup.liquid.js +4 -37
- package/dist/esm/product/components/ProductVariants/variants/combine/index.js +44 -0
- package/dist/esm/product/components/Sku.js +3 -15
- package/dist/esm/product/setting/ProductBadge.js +5 -0
- package/dist/esm/product/setting/ProductDescription.js +5 -0
- package/dist/esm/tab/hooks/useTabInteraction.js +14 -10
- package/dist/esm/third-party/components/AlsoBoughtCbb.js +28 -0
- package/dist/esm/third-party/components/AlsoBoughtCbb.liquid.js +17 -0
- package/dist/esm/third-party/components/BfSizeChartSizeGuide.js +28 -0
- package/dist/esm/third-party/components/BfSizeChartSizeGuide.liquid.js +8 -0
- package/dist/esm/third-party/components/EssentialAnnouncementBar.js +28 -0
- package/dist/esm/third-party/components/EssentialAnnouncementBar.liquid.js +8 -0
- package/dist/esm/third-party/components/EssentialCountdownTimerBar.js +28 -0
- package/dist/esm/third-party/components/EssentialCountdownTimerBar.liquid.js +8 -0
- package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.js +28 -0
- package/dist/esm/third-party/components/EstimatedDeliveryDatePlus.liquid.js +8 -0
- package/dist/esm/third-party/components/GloColorSwatchvariantImage.js +28 -0
- package/dist/esm/third-party/components/GloColorSwatchvariantImage.liquid.js +8 -0
- package/dist/esm/third-party/components/HextomFreeShippingBar.js +28 -0
- package/dist/esm/third-party/components/HextomFreeShippingBar.liquid.js +8 -0
- package/dist/esm/third-party/components/NotifyBackInStockPreOrder.js +1 -1
- package/dist/esm/third-party/components/OkendoReviewsLoyalty.js +28 -0
- package/dist/esm/third-party/components/OkendoReviewsLoyalty.liquid.js +8 -0
- package/dist/esm/third-party/components/QikifyUpsell.js +22 -10
- package/dist/esm/third-party/components/QikifyUpsell.liquid.js +3 -46
- package/dist/esm/third-party/components/ShopifySubscriptions.liquid.js +3 -2
- package/dist/esm/third-party/components/StellarDeliveryDatePickup.js +28 -0
- package/dist/esm/third-party/components/StellarDeliveryDatePickup.liquid.js +17 -0
- package/dist/esm/third-party/components/TrustedsiteTrustBadges.js +28 -0
- package/dist/esm/third-party/components/TrustedsiteTrustBadges.liquid.js +8 -0
- package/dist/esm/third-party/configs/AlsoBoughtCbb.js +8 -0
- package/dist/esm/third-party/configs/BfSizeChartSizeGuide.js +8 -0
- package/dist/esm/third-party/configs/EssentialAnnouncementBar.js +8 -0
- package/dist/esm/third-party/configs/EssentialCountdownTimerBar.js +8 -0
- package/dist/esm/third-party/configs/EstimatedDeliveryDatePlus.js +8 -0
- package/dist/esm/third-party/configs/GloColorSwatchvariantImage.js +8 -0
- package/dist/esm/third-party/configs/HextomFreeShippingBar.js +8 -0
- package/dist/esm/third-party/configs/OkendoReviewsLoyalty.js +8 -0
- package/dist/esm/third-party/configs/StellarDeliveryDatePickup.js +8 -0
- package/dist/esm/third-party/configs/TrustedsiteTrustBadges.js +8 -0
- package/dist/esm/third-party/helpers/thirdParty.js +1 -1
- package/dist/esm/third-party/next.js +51 -1
- package/dist/esm/third-party/setting/AlsoBoughtCbb.js +123 -0
- package/dist/esm/third-party/setting/BfSizeChartSizeGuide.js +127 -0
- package/dist/esm/third-party/setting/EssentialAnnouncementBar.js +138 -0
- package/dist/esm/third-party/setting/EssentialCountdownTimerBar.js +138 -0
- package/dist/esm/third-party/setting/EstimatedDeliveryDatePlus.js +124 -0
- package/dist/esm/third-party/setting/GloColorSwatchvariantImage.js +148 -0
- package/dist/esm/third-party/setting/HextomFreeShippingBar.js +124 -0
- package/dist/esm/third-party/setting/NotifyBackInStockPreOrder.js +2 -2
- package/dist/esm/third-party/setting/OkendoReviewsLoyalty.js +167 -0
- package/dist/esm/third-party/setting/QikifyUpsell.js +11 -1
- package/dist/esm/third-party/setting/ShopifySubscriptions.js +22 -0
- package/dist/esm/third-party/setting/StellarDeliveryDatePickup.js +123 -0
- package/dist/esm/third-party/setting/TrustedsiteTrustBadges.js +173 -0
- package/dist/esm/third-party/setting/index.js +224 -204
- package/dist/esm/video/components/HTML5Embed.js +2 -2
- package/dist/esm/video/components/HTML5Embed.liquid.js +6 -3
- package/dist/esm/video/components/LiteYouTubeEmbed.liquid.js +5 -3
- package/dist/types/index.d.ts +257 -36
- 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,
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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 &&
|
|
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:
|
|
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;
|
package/dist/cjs/index.liquid.js
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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:
|
|
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 =
|
|
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:
|
|
54
|
-
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
|
-
${
|
|
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
|
|
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);
|
package/dist/cjs/product/components/ProductImagesV2/jsx/components/ProductFeaturedImageCarousel.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
28
|
-
|
|
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];
|
package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
})}
|
|
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
|
-
|
|
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
|
-
"
|
|
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 -%}
|