@gem-sdk/components 2.2.0-staging.56 → 2.2.0-staging.57

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 (24) hide show
  1. package/dist/cjs/banner/components/hero-banner/index.liquid.js +4 -4
  2. package/dist/cjs/image/components/AdaptiveImage.liquid.js +2 -1
  3. package/dist/cjs/image/components/Image.liquid.js +1 -3
  4. package/dist/cjs/image/components/NextImage.liquid.js +2 -1
  5. package/dist/cjs/image-comparison/components/CompareImage.liquid.js +1 -3
  6. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +4 -4
  7. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  8. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  9. package/dist/cjs/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  10. package/dist/cjs/video/components/HTML5Embed.liquid.js +1 -2
  11. package/dist/cjs/video/components/LiteYouTubeEmbed.liquid.js +2 -3
  12. package/dist/esm/banner/components/hero-banner/index.liquid.js +4 -4
  13. package/dist/esm/image/components/AdaptiveImage.liquid.js +2 -1
  14. package/dist/esm/image/components/Image.liquid.js +1 -3
  15. package/dist/esm/image/components/NextImage.liquid.js +2 -1
  16. package/dist/esm/image-comparison/components/CompareImage.liquid.js +1 -3
  17. package/dist/esm/product/components/ProductImagesV2/liquid/ProductFeaturedImageCarousel.liquid.js +4 -4
  18. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryCarousel.liquid.js +2 -2
  19. package/dist/esm/product/components/ProductImagesV2/liquid/ProductGalleryGrid.liquid.js +4 -4
  20. package/dist/esm/product/components/ProductImagesV2/liquid/ProductImages.liquid.js +4 -4
  21. package/dist/esm/video/components/HTML5Embed.liquid.js +1 -2
  22. package/dist/esm/video/components/LiteYouTubeEmbed.liquid.js +2 -3
  23. package/dist/types/index.d.ts +3 -6
  24. package/package.json +2 -2
@@ -14,7 +14,7 @@ var NextImage_liquid = require('../../../image/components/NextImage.liquid.js');
14
14
  var getSrcSet = require('../../../image/helpers/getSrcSet.js');
15
15
  var helpers$1 = require('../../../image/components/helpers.js');
16
16
 
17
- const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyLoadImage = true })=>{
17
+ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, pageContext })=>{
18
18
  const { link, layout, verticalAlign, order, alignBanner, alt, title } = setting ?? {};
19
19
  const { background, overlayEnable, overlayColor, overlayOpacity, verticalGutter, contentWidth, hoverEffect, hoverEffectDuration, hoverEffectScale, cornerBg, borderBg, hasActiveShadow, shadowBg, sizeSetting, contentPadding } = styles ?? {};
20
20
  const enableParallax = setting?.enableParallax || false;
@@ -131,7 +131,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
131
131
  tablet: helpers$1.createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0),
132
132
  mobile: helpers$1.createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0)
133
133
  };
134
- const enableLazyLoad = !setting?.preload && enableLazyLoadImage;
134
+ const enableLazyLoad = !setting?.preload && pageContext?.enableLazyLoadImage;
135
135
  const renderInnerHeroBanner = ()=>{
136
136
  return core.template /* liquid */ `
137
137
  <div
@@ -181,7 +181,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
181
181
  alt,
182
182
  title,
183
183
  imagePlaceholder,
184
- enableLazyLoadImage
184
+ pageContext
185
185
  })}
186
186
  <div class="${core.cls('gp-absolute gp-w-full gp-h-full')}">
187
187
  <div
@@ -224,7 +224,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
224
224
  alt: `lazy image ${device}`,
225
225
  className: `gp-absolute gp-top-0 gp-invisible gp-w-full gp_lazyload gp-h-full gp_lazyforbg ${device === 'tablet' ? 'gp_lazybg_tl' : ''} ${device === 'mobile' ? 'gp_lazybg_mb' : ''}`,
226
226
  isDisableAspectStyle: true,
227
- enableLazyLoadImage
227
+ pageContext
228
228
  }));
229
229
  }).join('') : ''}
230
230
  </div></div>
@@ -6,11 +6,12 @@ var core = require('@gem-sdk/core');
6
6
  var getSrcSet = require('../helpers/getSrcSet.js');
7
7
  var helpers = require('./helpers.js');
8
8
 
9
- const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyLoadImage = true, pageContext, ...props })=>{
9
+ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, pageContext, ...props })=>{
10
10
  const fallBackImage = 'https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif';
11
11
  const srcDesktop = getSrcSet.getImageSrc(srcSet?.desktop, 'desktop') || fallBackImage;
12
12
  const srcTablet = (getSrcSet.getImageSrc(srcSet?.tablet, 'tablet') ?? getSrcSet.getImageSrc(srcSet?.desktop, 'tablet')) || fallBackImage;
13
13
  const srcMobile = (getSrcSet.getImageSrc(srcSet?.mobile, 'mobile') ?? getSrcSet.getImageSrc(srcSet?.tablet, 'mobile') ?? getSrcSet.getImageSrc(srcSet?.desktop, 'mobile')) || fallBackImage;
14
+ const { enableLazyLoadImage } = pageContext ?? {};
14
15
  return core.template`
15
16
  <picture style="border-radius: inherit" class="${core.cls(pictureClass)}">
16
17
  ${core.RenderIf(priority, core.template`
@@ -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, pageContext })=>{
10
+ const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, pageContext })=>{
11
11
  const { imageLink, isNotLazyload } = setting ?? {};
12
12
  const { shape } = styles ?? {};
13
13
  const { Wrap: WrapLink, urlData } = helpers.getInsertLinkData('div', imageLink);
@@ -76,7 +76,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
76
76
  aspectRatio: core.getAspectRatioGlobalSize(styles?.shape),
77
77
  layout: styles?.objectFit,
78
78
  priority: setting?.priority,
79
- enableLazyLoadImage,
80
79
  pageContext
81
80
  }) : NextImage_liquid.default({
82
81
  ...setting?.image,
@@ -106,7 +105,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
106
105
  layout: styles?.objectFit
107
106
  },
108
107
  isNotLazyload,
109
- enableLazyLoadImage,
110
108
  pageContext
111
109
  })}
112
110
  </${WrapLink}>
@@ -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, pageContext, 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, 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({
@@ -17,6 +17,7 @@ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f0
17
17
  storage
18
18
  });
19
19
  const srcSetImg = srcIsLiquidCode ? src : getSrcSet.getSrcSet(newBackupFilekey ?? '', storage ?? 'THEME', src);
20
+ const { enableLazyLoadImage } = pageContext ?? {};
20
21
  const getObjectFit = ()=>{
21
22
  if (isDisableObjectFit) return {};
22
23
  return core.makeStyleResponsive('objf', layout);
@@ -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, enableLazyLoadImage, 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, 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);
@@ -272,7 +272,6 @@ const CompareImage = (props)=>{
272
272
  ...initStyles.rightImage,
273
273
  ...core.makeStyleResponsive('objf', styles?.imageScale)
274
274
  },
275
- enableLazyLoadImage,
276
275
  pageContext
277
276
  })}
278
277
  ${NextImage_liquid.default({
@@ -290,7 +289,6 @@ const CompareImage = (props)=>{
290
289
  ...initStyles.rightImage,
291
290
  ...core.makeStyleResponsive('objf', styles?.imageScale)
292
291
  },
293
- enableLazyLoadImage,
294
292
  pageContext
295
293
  })}
296
294
  <div id="image-comparison-slider-${componentUid}" style="${{
@@ -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, pageContext, ...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
+ pageContext
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
+ pageContext
175
175
  })}`;
176
176
  };
177
177
  const getValueFromValueContainUnit = (value)=>{
@@ -398,7 +398,7 @@ 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
+ pageContext
402
402
  })}
403
403
  {%- endif -%}
404
404
  `,
@@ -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, pageContext, ...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
+ pageContext
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, pageContext, ...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
+ pageContext
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
+ pageContext
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
+ pageContext
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 } = 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
+ pageContext
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
+ pageContext
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
+ pageContext
146
146
  })}
147
147
  `)}
148
148
  </div>
@@ -7,7 +7,7 @@ var NextImage_liquid = require('../../image/components/NextImage.liquid.js');
7
7
  var helpers = require('../../helpers.js');
8
8
 
9
9
  const HTML5Embed = (props)=>{
10
- const { enableLazyLoadImage, pageContext } = props;
10
+ const { pageContext } = props;
11
11
  const videoId = `gp-video-${props.uid}`;
12
12
  const preloadThumbnail = props.autoplay && props.thumbnail;
13
13
  const offLazyVideo = !props.lazy && props.isVideoComponent;
@@ -25,7 +25,6 @@ const HTML5Embed = (props)=>{
25
25
  '--z': -1,
26
26
  display: 'none'
27
27
  },
28
- enableLazyLoadImage,
29
28
  pageContext
30
29
  })}
31
30
  ${core.RenderIf(props.autoplay, `<script>
@@ -7,7 +7,7 @@ var NextImage_liquid = require('../../image/components/NextImage.liquid.js');
7
7
  var helpers = require('../../helpers.js');
8
8
 
9
9
  const LiteYouTubeEmbed = (props)=>{
10
- const { style, lazy, preload, enableLazyLoadImage, pageContext } = props;
10
+ const { style, lazy, preload, pageContext } = props;
11
11
  const videoUid = `gp-video-${props.uid}`;
12
12
  const videoId = encodeURIComponent(props.id);
13
13
  const videoTitle = props.title;
@@ -42,7 +42,7 @@ const LiteYouTubeEmbed = (props)=>{
42
42
  data-title="${videoTitle}"
43
43
  style="${{
44
44
  ...core.makeStyleResponsive('bgi', {
45
- desktop: preload || !enableLazyLoadImage ? `url('${posterUrl}')` : `url('${imagePlaceholder}')`
45
+ desktop: preload || !pageContext?.enableLazyLoadImage ? `url('${posterUrl}')` : `url('${imagePlaceholder}')`
46
46
  }),
47
47
  ...style
48
48
  }}"
@@ -53,7 +53,6 @@ const LiteYouTubeEmbed = (props)=>{
53
53
  alt: 'Poster',
54
54
  className: `gp-invisible gp-w-full gp-h-full gp_lazyforbg`,
55
55
  isDisableAspectStyle: true,
56
- enableLazyLoadImage,
57
56
  pageContext
58
57
  })}
59
58
  <button
@@ -10,7 +10,7 @@ import NextImage from '../../../image/components/NextImage.liquid.js';
10
10
  import { getImageSrc, DEVICES } from '../../../image/helpers/getSrcSet.js';
11
11
  import { createBlurDataURL } from '../../../image/components/helpers.js';
12
12
 
13
- const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyLoadImage = true })=>{
13
+ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, pageContext })=>{
14
14
  const { link, layout, verticalAlign, order, alignBanner, alt, title } = setting ?? {};
15
15
  const { background, overlayEnable, overlayColor, overlayOpacity, verticalGutter, contentWidth, hoverEffect, hoverEffectDuration, hoverEffectScale, cornerBg, borderBg, hasActiveShadow, shadowBg, sizeSetting, contentPadding } = styles ?? {};
16
16
  const enableParallax = setting?.enableParallax || false;
@@ -127,7 +127,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
127
127
  tablet: createBlurDataURL(srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0),
128
128
  mobile: createBlurDataURL(srcSet?.mobile?.width ?? srcSet?.tablet?.width ?? srcSet?.desktop?.width ?? 0, srcSet?.mobile?.height ?? srcSet?.tablet?.height ?? srcSet?.desktop?.width ?? 0)
129
129
  };
130
- const enableLazyLoad = !setting?.preload && enableLazyLoadImage;
130
+ const enableLazyLoad = !setting?.preload && pageContext?.enableLazyLoadImage;
131
131
  const renderInnerHeroBanner = ()=>{
132
132
  return template /* liquid */ `
133
133
  <div
@@ -177,7 +177,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
177
177
  alt,
178
178
  title,
179
179
  imagePlaceholder,
180
- enableLazyLoadImage
180
+ pageContext
181
181
  })}
182
182
  <div class="${cls('gp-absolute gp-w-full gp-h-full')}">
183
183
  <div
@@ -220,7 +220,7 @@ const HeroBanner = ({ builderAttrs, builderProps, setting, styles, style, childr
220
220
  alt: `lazy image ${device}`,
221
221
  className: `gp-absolute gp-top-0 gp-invisible gp-w-full gp_lazyload gp-h-full gp_lazyforbg ${device === 'tablet' ? 'gp_lazybg_tl' : ''} ${device === 'mobile' ? 'gp_lazybg_mb' : ''}`,
222
222
  isDisableAspectStyle: true,
223
- enableLazyLoadImage
223
+ pageContext
224
224
  }));
225
225
  }).join('') : ''}
226
226
  </div></div>
@@ -2,11 +2,12 @@ import { template, cls, RenderIf, makeStyleResponsive } from '@gem-sdk/core';
2
2
  import { getImageSrc } from '../helpers/getSrcSet.js';
3
3
  import { createBlurDataURL } from './helpers.js';
4
4
 
5
- const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, enableLazyLoadImage = true, pageContext, ...props })=>{
5
+ const AdaptiveImage = ({ srcSet, priority, alt, aspectRatio, layout, className, pictureClass, style, imagePlaceholder, pageContext, ...props })=>{
6
6
  const fallBackImage = 'https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif';
7
7
  const srcDesktop = getImageSrc(srcSet?.desktop, 'desktop') || fallBackImage;
8
8
  const srcTablet = (getImageSrc(srcSet?.tablet, 'tablet') ?? getImageSrc(srcSet?.desktop, 'tablet')) || fallBackImage;
9
9
  const srcMobile = (getImageSrc(srcSet?.mobile, 'mobile') ?? getImageSrc(srcSet?.tablet, 'mobile') ?? getImageSrc(srcSet?.desktop, 'mobile')) || fallBackImage;
10
+ const { enableLazyLoadImage } = pageContext ?? {};
10
11
  return template`
11
12
  <picture style="border-radius: inherit" class="${cls(pictureClass)}">
12
13
  ${RenderIf(priority, template`
@@ -3,7 +3,7 @@ import AdaptiveImage from './AdaptiveImage.liquid.js';
3
3
  import NextImage from './NextImage.liquid.js';
4
4
  import { getInsertLinkData } from '../../helpers.js';
5
5
 
6
- const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyLoadImage = true, pageContext })=>{
6
+ const Image = ({ styles, className, setting, builderAttrs, builderProps, style, advanced, pageContext })=>{
7
7
  const { imageLink, isNotLazyload } = setting ?? {};
8
8
  const { shape } = styles ?? {};
9
9
  const { Wrap: WrapLink, urlData } = getInsertLinkData('div', imageLink);
@@ -72,7 +72,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
72
72
  aspectRatio: getAspectRatioGlobalSize(styles?.shape),
73
73
  layout: styles?.objectFit,
74
74
  priority: setting?.priority,
75
- enableLazyLoadImage,
76
75
  pageContext
77
76
  }) : NextImage({
78
77
  ...setting?.image,
@@ -102,7 +101,6 @@ const Image = ({ styles, className, setting, builderAttrs, builderProps, style,
102
101
  layout: styles?.objectFit
103
102
  },
104
103
  isNotLazyload,
105
- enableLazyLoadImage,
106
104
  pageContext
107
105
  })}
108
106
  </${WrapLink}>
@@ -3,7 +3,7 @@ import { getNewBackupFileKey, getImageSrc, getSrcSet } from '../helpers/getSrcSe
3
3
  import { DEVICES } from '../../product/components/ProductVariants/index.js';
4
4
  import { createBlurDataURL } from './helpers.js';
5
5
 
6
- 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 })=>{
6
+ 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, pageContext, srcset, sizes, ...props })=>{
7
7
  const { aspectRatio, layout, qualityPercent, qualityType } = setting ?? {};
8
8
  const newBackupFilekey = backupFileKey ? getNewBackupFileKey(backupFileKey ?? '', src) : '';
9
9
  const srcImage = srcIsLiquidCode ? baseSrc : getImageSrc({
@@ -13,6 +13,7 @@ const NextImage = ({ setting, src = 'https://ucarecdn.com/465c7cbb-f087-4d1d-8f0
13
13
  storage
14
14
  });
15
15
  const srcSetImg = srcIsLiquidCode ? src : getSrcSet(newBackupFilekey ?? '', storage ?? 'THEME', src);
16
+ const { enableLazyLoadImage } = pageContext ?? {};
16
17
  const getObjectFit = ()=>{
17
18
  if (isDisableObjectFit) return {};
18
19
  return makeStyleResponsive('objf', layout);
@@ -7,7 +7,7 @@ import { getSettingPreloadData } from '../../helpers.js';
7
7
  import { styleLazyPlaceholder } from './common/helpers.js';
8
8
 
9
9
  const CompareImage = (props)=>{
10
- 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;
10
+ 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;
11
11
  const horizontal = !vertical;
12
12
  const leftRatio = (leftImage?.width ?? 0) / (leftImage?.height ?? 1);
13
13
  const rightRatio = (rightImage?.width ?? 0) / (rightImage?.height ?? 1);
@@ -268,7 +268,6 @@ const CompareImage = (props)=>{
268
268
  ...initStyles.rightImage,
269
269
  ...makeStyleResponsive('objf', styles?.imageScale)
270
270
  },
271
- enableLazyLoadImage,
272
271
  pageContext
273
272
  })}
274
273
  ${NextImage({
@@ -286,7 +285,6 @@ const CompareImage = (props)=>{
286
285
  ...initStyles.rightImage,
287
286
  ...makeStyleResponsive('objf', styles?.imageScale)
288
287
  },
289
- enableLazyLoadImage,
290
288
  pageContext
291
289
  })}
292
290
  <div id="image-comparison-slider-${componentUid}" style="${{
@@ -9,7 +9,7 @@ import NextImage from '../../../../image/components/NextImage.liquid.js';
9
9
  import Video from '../../../../image/components/Video.liquid.js';
10
10
  import { getStyleOfObject } from '../../../helpers/function.js';
11
11
 
12
- const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyLoadImage, ...setting })=>{
12
+ const ProductFeaturedImageCarousel = ({ builderPropUID, children, pageContext, ...setting })=>{
13
13
  const ftAspectRatio = getAspectRatio(setting.ftShape);
14
14
  const getStyleFeaturedImageDisplay = ()=>{
15
15
  return getDisplayStyle((device)=>![
@@ -149,7 +149,7 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyLoad
149
149
  },
150
150
  priority: setting?.preload,
151
151
  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}`,
152
- enableLazyLoadImage
152
+ pageContext
153
153
  })}`;
154
154
  };
155
155
  const renderNoImage = ()=>{
@@ -167,7 +167,7 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyLoad
167
167
  },
168
168
  priority: setting?.preload,
169
169
  className: `gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 featured-image-only gp-cursor-pointer !gp-rounded-none`,
170
- enableLazyLoadImage
170
+ pageContext
171
171
  })}`;
172
172
  };
173
173
  const getValueFromValueContainUnit = (value)=>{
@@ -394,7 +394,7 @@ const ProductFeaturedImageCarousel = ({ builderPropUID, children, enableLazyLoad
394
394
  },
395
395
  className: `gp-w-full featured-image-only !gp-rounded-none`,
396
396
  customLazyload: true,
397
- enableLazyLoadImage
397
+ pageContext
398
398
  })}
399
399
  {%- endif -%}
400
400
  `,
@@ -6,7 +6,7 @@ import { convertSpacing, getDisplayStyle, getAspectRatio, getSrcImage } from '..
6
6
  import { getShapeByLayout, getSettingMinWidthForCarouselItem, getSettingWidthForCarouselItem, getMinHeightByPosition, getSliderPerShowConfig, getAllowDotConfig, getDotStyleConfig, getCarouselVerticalConfigByPosition, checkDisplayGalleryByWidth, getZoomDisplay } from '../common/productGallery.js';
7
7
  import { getStyleOfObject } from '../../../helpers/function.js';
8
8
 
9
- const ProductGalleryCarousel = ({ builderPropUID, children, enableLazyLoadImage, ...setting })=>{
9
+ const ProductGalleryCarousel = ({ builderPropUID, children, pageContext, ...setting })=>{
10
10
  const getCarouselDisplay = ()=>{
11
11
  const isDisplayCarousel = (type, position, device)=>{
12
12
  const layout = getResponsiveValueByScreen(position, device);
@@ -86,7 +86,7 @@ const ProductGalleryCarousel = ({ builderPropUID, children, enableLazyLoadImage,
86
86
  customLazyload: true,
87
87
  style: style,
88
88
  className: '!gp-rounded-none gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 gp-cursor-pointer',
89
- enableLazyLoadImage
89
+ pageContext
90
90
  })}`;
91
91
  };
92
92
  const aspectRatioToPaddingBottom = ()=>{
@@ -8,7 +8,7 @@ import Model3d from '../../../../image/components/Modal3d.liquid.js';
8
8
  import Video from '../../../../image/components/Video.liquid.js';
9
9
  import HTML5Embed from '../../../../video/components/HTML5Embed.liquid.js';
10
10
 
11
- const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazyLoadImage, ...setting })=>{
11
+ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, pageContext, ...setting })=>{
12
12
  const getGridDisplay = ()=>{
13
13
  const isDisplayGrid = (type, position, device)=>{
14
14
  const layout = getResponsiveValueByScreen(position, device);
@@ -97,7 +97,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
97
97
  style: style,
98
98
  className: '!gp-rounded-none',
99
99
  customLazyload: false,
100
- enableLazyLoadImage
100
+ pageContext
101
101
  })}
102
102
  ${setting?.galleryHoverEffect !== 'none' ? `<div class="${cls('zoom-element !gp-max-w-none', getZoomImageClass())}">
103
103
  ${NextImage({
@@ -111,7 +111,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
111
111
  style: style,
112
112
  className: '!gp-rounded-none gp-w-full gp-h-full',
113
113
  customLazyload: false,
114
- enableLazyLoadImage
114
+ pageContext
115
115
  })}
116
116
  </div>` : ''}
117
117
  ${setting?.galleryHoverEffect == 'zoom' && setting?.galleryZoomType == 'glasses' ? `
@@ -294,7 +294,7 @@ const ProductGalleryGrid = ({ builderPropUID, wrapperStyle, children, enableLazy
294
294
  },
295
295
  className: '!gp-rounded-none',
296
296
  customLazyload: false,
297
- enableLazyLoadImage
297
+ pageContext
298
298
  })}`;
299
299
  };
300
300
  return template`
@@ -7,7 +7,7 @@ import { getSettingPreloadData } from '../../../../helpers.js';
7
7
  import { getShapeByLayout, sizeSettingDefaultForNewLayout } from '../common/productGallery.js';
8
8
 
9
9
  const ProductImages = (productImageProps)=>{
10
- const { setting, styles, builderProps, style, advanced, rawChildren, pageContext, enableLazyLoadImage } = productImageProps;
10
+ const { setting, styles, builderProps, style, advanced, rawChildren, pageContext } = productImageProps;
11
11
  const settings = {
12
12
  ...setting,
13
13
  ...styles
@@ -112,7 +112,7 @@ const ProductImages = (productImageProps)=>{
112
112
  builderPropUID: `gp-carousel-${builderProps?.uid}`,
113
113
  ...settings,
114
114
  children: renderProductBadge(),
115
- enableLazyLoadImage
115
+ pageContext
116
116
  })}
117
117
  ${shouldSkipLiquidRenderForSingleImage(settings?.position, template`
118
118
  <div
@@ -128,7 +128,7 @@ const ProductImages = (productImageProps)=>{
128
128
  ${ProductGalleryCarousel({
129
129
  builderPropUID: `gp-gallery-${builderProps?.uid}`,
130
130
  ...settings,
131
- enableLazyLoadImage
131
+ pageContext
132
132
  })}
133
133
  </div>
134
134
  ${ProductGalleryGrid({
@@ -138,7 +138,7 @@ const ProductImages = (productImageProps)=>{
138
138
  },
139
139
  children: renderProductBadge(),
140
140
  ...settings,
141
- enableLazyLoadImage
141
+ pageContext
142
142
  })}
143
143
  `)}
144
144
  </div>
@@ -3,7 +3,7 @@ import NextImage from '../../image/components/NextImage.liquid.js';
3
3
  import { getSettingPreloadData } from '../../helpers.js';
4
4
 
5
5
  const HTML5Embed = (props)=>{
6
- const { enableLazyLoadImage, pageContext } = props;
6
+ const { pageContext } = props;
7
7
  const videoId = `gp-video-${props.uid}`;
8
8
  const preloadThumbnail = props.autoplay && props.thumbnail;
9
9
  const offLazyVideo = !props.lazy && props.isVideoComponent;
@@ -21,7 +21,6 @@ const HTML5Embed = (props)=>{
21
21
  '--z': -1,
22
22
  display: 'none'
23
23
  },
24
- enableLazyLoadImage,
25
24
  pageContext
26
25
  })}
27
26
  ${RenderIf(props.autoplay, `<script>
@@ -3,7 +3,7 @@ import NextImage from '../../image/components/NextImage.liquid.js';
3
3
  import { getSettingPreloadData } from '../../helpers.js';
4
4
 
5
5
  const LiteYouTubeEmbed = (props)=>{
6
- const { style, lazy, preload, enableLazyLoadImage, pageContext } = props;
6
+ const { style, lazy, preload, pageContext } = props;
7
7
  const videoUid = `gp-video-${props.uid}`;
8
8
  const videoId = encodeURIComponent(props.id);
9
9
  const videoTitle = props.title;
@@ -38,7 +38,7 @@ const LiteYouTubeEmbed = (props)=>{
38
38
  data-title="${videoTitle}"
39
39
  style="${{
40
40
  ...makeStyleResponsive('bgi', {
41
- desktop: preload || !enableLazyLoadImage ? `url('${posterUrl}')` : `url('${imagePlaceholder}')`
41
+ desktop: preload || !pageContext?.enableLazyLoadImage ? `url('${posterUrl}')` : `url('${imagePlaceholder}')`
42
42
  }),
43
43
  ...style
44
44
  }}"
@@ -49,7 +49,6 @@ const LiteYouTubeEmbed = (props)=>{
49
49
  alt: 'Poster',
50
50
  className: `gp-invisible gp-w-full gp-h-full gp_lazyforbg`,
51
51
  isDisableAspectStyle: true,
52
- enableLazyLoadImage,
53
52
  pageContext
54
53
  })}
55
54
  <button
@@ -4001,7 +4001,6 @@ type ImageComparisonStyle = {
4001
4001
  } & Pick<SharedProps, 'aspectRatio'>;
4002
4002
  type ImageComparisonProps = BaseProps & {
4003
4003
  className?: string;
4004
- enableLazyLoadImage?: boolean;
4005
4004
  pageContext?: PageContext;
4006
4005
  } & BasePropsWrap<ImageComparisonSetting, ImageComparisonStyle>;
4007
4006
  declare const ImageComparison$1: React.FC<ImageComparisonProps>;
@@ -5789,7 +5788,6 @@ type PropTypes = ProductImagesProps$1 & React.ComponentPropsWithoutRef<'div'> &
5789
5788
  children?: any;
5790
5789
  } & {
5791
5790
  pageContext?: PageContext;
5792
- enableLazyLoadImage?: boolean;
5793
5791
  };
5794
5792
  declare const ProductImages: (productImageProps: PropTypes) => string;
5795
5793
 
@@ -6285,7 +6283,7 @@ type CountdownLiquidProps = BaseProps<{
6285
6283
  };
6286
6284
  declare const Countdown: ({ builderProps, setting, styles, advanced, pageContext, }: CountdownLiquidProps) => string;
6287
6285
 
6288
- declare const Image: ({ styles, className, setting, builderAttrs, builderProps, style, advanced, enableLazyLoadImage, pageContext, }: {
6286
+ declare const Image: ({ styles, className, setting, builderAttrs, builderProps, style, advanced, pageContext, }: {
6289
6287
  className?: string | undefined;
6290
6288
  children?: React.ReactNode;
6291
6289
  onClick?: React.MouseEventHandler<any> | undefined;
@@ -6345,7 +6343,6 @@ declare const Image: ({ styles, className, setting, builderAttrs, builderProps,
6345
6343
  } & {
6346
6344
  advanced?: any;
6347
6345
  } & {
6348
- enableLazyLoadImage?: boolean | undefined;
6349
6346
  pageContext?: PageContext | undefined;
6350
6347
  }) => string;
6351
6348
 
@@ -6411,7 +6408,7 @@ declare const TabItem: ({ children, builderAttrs, style, className, parentUid }:
6411
6408
  parentUid?: string | undefined;
6412
6409
  }) => string;
6413
6410
 
6414
- declare const HeroBanner: ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, enableLazyLoadImage, }: _gem_sdk_core.BaseProps<{
6411
+ declare const HeroBanner: ({ builderAttrs, builderProps, setting, styles, style, children, rawChildren, advanced, pageContext, }: _gem_sdk_core.BaseProps<{
6415
6412
  link?: {
6416
6413
  link?: string | undefined;
6417
6414
  target?: string | undefined;
@@ -6474,7 +6471,7 @@ declare const HeroBanner: ({ builderAttrs, builderProps, setting, styles, style,
6474
6471
  } & {
6475
6472
  rawChildren?: any[] | undefined;
6476
6473
  advanced?: any;
6477
- enableLazyLoadImage?: boolean | undefined;
6474
+ pageContext?: PageContext | undefined;
6478
6475
  }) => string;
6479
6476
 
6480
6477
  declare const CSSCode: ({ setting, style, advanced, builderAttrs, builderProps }: CSSCodeProps) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "2.2.0-staging.56",
3
+ "version": "2.2.0-staging.57",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -21,7 +21,7 @@
21
21
  "format": "prettier --write \"./src/**/*.{ts,tsx}\""
22
22
  },
23
23
  "devDependencies": {
24
- "@gem-sdk/core": "2.2.0-staging.56",
24
+ "@gem-sdk/core": "2.2.0-staging.57",
25
25
  "@gem-sdk/styles": "2.2.0-staging.52",
26
26
  "@types/react-transition-group": "^4.4.5"
27
27
  },