@gem-sdk/components 4.0.0-staging.1204 → 4.0.0-staging.1205

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 (328) hide show
  1. package/dist/cjs/builder.js +1 -1
  2. package/dist/cjs/carousel/components/arrow/common/classes.js +1 -1
  3. package/dist/cjs/carousel/components/arrow/common/helpers.js +1 -1
  4. package/dist/cjs/carousel/components/arrow/common/styles.js +11 -11
  5. package/dist/cjs/carousel/components/dot/common/helpers.js +1 -1
  6. package/dist/cjs/carousel/components/item/CarouselItem.js +1 -1
  7. package/dist/cjs/carousel/components/item/common/styles.js +1 -1
  8. package/dist/cjs/carousel/components/root/Carousel.js +1 -1
  9. package/dist/cjs/carousel/components/root/Carousel.liquid.js +6 -8
  10. package/dist/cjs/carousel/components/root/common/attrs.js +1 -1
  11. package/dist/cjs/carousel/components/root/common/classes.js +1 -1
  12. package/dist/cjs/carousel/components/root/common/styles.js +1 -1
  13. package/dist/cjs/carousel/hooks/useCarousel.js +1 -1
  14. package/dist/cjs/carousel/hooks/useDotsSetting.js +1 -1
  15. package/dist/cjs/carousel/index.js +1 -1
  16. package/dist/cjs/carousel/plugins/animation.js +1 -1
  17. package/dist/cjs/carousel/plugins/auto-play.js +1 -0
  18. package/dist/cjs/carousel/plugins/fix-slider-move-backward.js +1 -0
  19. package/dist/cjs/carousel/plugins/mutation.js +1 -0
  20. package/dist/cjs/carousel/settings/configs/presets.js +4 -4
  21. package/dist/cjs/carousel/settings/configs/settings-v2.js +1 -1
  22. package/dist/cjs/carousel-v3/common/helpers.js +1 -0
  23. package/dist/cjs/carousel-v3/components/arrow/Arrow.js +10 -0
  24. package/dist/cjs/carousel-v3/components/arrow/Arrow.liquid.js +26 -0
  25. package/dist/cjs/carousel-v3/components/arrow/common/classes.js +1 -0
  26. package/dist/cjs/carousel-v3/components/arrow/common/helpers.js +1 -0
  27. package/dist/cjs/carousel-v3/components/arrow/common/styles.js +33 -0
  28. package/dist/cjs/carousel-v3/components/dot/Dots.js +2 -0
  29. package/dist/cjs/carousel-v3/components/dot/Dots.liquid.js +7 -0
  30. package/dist/cjs/carousel-v3/components/dot/common/classes.js +1 -0
  31. package/dist/cjs/carousel-v3/components/dot/common/helpers.js +1 -0
  32. package/dist/cjs/carousel-v3/components/dot/common/styles.js +1 -0
  33. package/dist/cjs/carousel-v3/components/item/CarouselItem.js +2 -0
  34. package/dist/cjs/carousel-v3/components/item/CarouselItem.liquid.js +22 -0
  35. package/dist/cjs/carousel-v3/components/item/common/classes.js +1 -0
  36. package/dist/cjs/carousel-v3/components/item/common/styles.js +1 -0
  37. package/dist/cjs/carousel-v3/components/root/Carousel.js +2 -0
  38. package/dist/cjs/carousel-v3/components/root/Carousel.liquid.js +23 -0
  39. package/dist/cjs/carousel-v3/components/root/common/attrs.js +1 -0
  40. package/dist/cjs/carousel-v3/components/root/common/classes.js +1 -0
  41. package/dist/cjs/carousel-v3/components/root/common/helpers.js +1 -0
  42. package/dist/cjs/carousel-v3/components/root/common/styles.js +1 -0
  43. package/dist/cjs/carousel-v3/components/swiper/Swiper.js +1 -0
  44. package/dist/cjs/carousel-v3/hooks/useCarouseItem.js +1 -0
  45. package/dist/cjs/carousel-v3/hooks/useCarousel.js +1 -0
  46. package/dist/cjs/carousel-v3/hooks/useDotsSetting.js +1 -0
  47. package/dist/cjs/carousel-v3/hooks/useTrackPreviewPause.js +1 -0
  48. package/dist/cjs/carousel-v3/index.js +1 -0
  49. package/dist/cjs/{carousel → carousel-v3}/next.js +1 -1
  50. package/dist/cjs/carousel-v3/plugins/animation.js +1 -0
  51. package/dist/cjs/carousel-v3/settings/Carousel.js +5 -0
  52. package/dist/cjs/carousel-v3/settings/CarouselItem.js +1 -0
  53. package/dist/cjs/carousel-v3/settings/configs/presets.js +114 -0
  54. package/dist/cjs/carousel-v3/settings/configs/settings-v2.js +3 -0
  55. package/dist/cjs/carousel-v3/settings/configs/ui-v1.js +1 -0
  56. package/dist/cjs/carousel-v3/settings/configs/ui-v2.js +1 -0
  57. package/dist/cjs/grid/components/row/common/helpers.js +1 -1
  58. package/dist/cjs/index.js +1 -1
  59. package/dist/cjs/index.liquid.js +1 -1
  60. package/dist/cjs/marquee/hooks/useMarqueeScrollToItem.js +1 -1
  61. package/dist/cjs/marquee/settings/Marquee.js +1 -1
  62. package/dist/cjs/next.js +1 -1
  63. package/dist/cjs/product/components/product-images/ProductGalleryCarousel.js +1 -1
  64. package/dist/cjs/product/components/product-images/ProductGalleryCarousel.liquid.js +1 -1
  65. package/dist/cjs/product/components/product-images/ProductImagesLightBox.js +1 -1
  66. package/dist/cjs/product/components/product-images-v2/ProductImagesV2.liquid.js +6 -6
  67. package/dist/cjs/product/components/product-images-v2/common/attrs.js +1 -1
  68. package/dist/cjs/product/components/product-images-v2/common/classes.js +1 -1
  69. package/dist/cjs/product/components/product-images-v2/common/common.js +1 -1
  70. package/dist/cjs/product/components/product-images-v2/common/getBorderActiveCss.js +1 -5
  71. package/dist/cjs/product/components/product-images-v2/common/productFeaturedImage.js +1 -1
  72. package/dist/cjs/product/components/product-images-v2/common/productGallery.js +1 -1
  73. package/dist/cjs/product/components/product-images-v2/common/styles.js +1 -1
  74. package/dist/cjs/product/components/product-images-v2/components/child/ProductFeaturedImageCarousel.js +1 -1
  75. package/dist/cjs/product/components/product-images-v2/components/child/ProductGalleryGrid.js +2 -2
  76. package/dist/cjs/product/components/product-images-v2/components/feature-gallery/FeatureImageWithGallery.js +1 -1
  77. package/dist/cjs/product/components/product-images-v2/components/feature-gallery/FeatureImageWithGallery.liquid.js +13 -13
  78. package/dist/cjs/product/components/product-images-v2/components/gallery-carousel/GalleryCarousel.js +1 -1
  79. package/dist/cjs/product/components/product-images-v2/components/gallery-carousel/GalleryCarousel.liquid.js +7 -7
  80. package/dist/cjs/product/components/product-images-v2/components/gallery-grid/GalleryGrid.js +1 -1
  81. package/dist/cjs/product/components/product-images-v2/components/gallery-grid/GalleryGrid.liquid.js +4 -4
  82. package/dist/cjs/product/components/product-images-v2/components/lightbox/ProductImagesLightBox.js +1 -1
  83. package/dist/cjs/product/components/product-images-v2/hooks/useProductFeaturedImageCarousel.js +1 -1
  84. package/dist/cjs/product/components/product-images-v2/hooks/useProductGalleryGrid.js +1 -1
  85. package/dist/cjs/product/components/product-images-v3/ProductImageV2.js +26 -0
  86. package/dist/cjs/product/components/product-images-v3/ProductImagesV2.liquid.js +44 -0
  87. package/dist/cjs/product/components/product-images-v3/common/attrs.js +1 -0
  88. package/dist/cjs/product/components/product-images-v3/common/classes.js +1 -0
  89. package/dist/cjs/product/components/product-images-v3/common/common.js +1 -0
  90. package/dist/cjs/product/components/product-images-v3/common/getBorderActiveCss.js +20 -0
  91. package/dist/cjs/product/components/product-images-v3/common/hoverAction.js +1 -0
  92. package/dist/cjs/product/components/product-images-v3/common/productFeaturedImage.js +1 -0
  93. package/dist/cjs/product/components/product-images-v3/common/productGallery.js +1 -0
  94. package/dist/cjs/product/components/product-images-v3/common/styles.js +1 -0
  95. package/dist/cjs/product/components/product-images-v3/components/child/MediaIcon.js +2 -0
  96. package/dist/cjs/product/components/product-images-v3/components/child/ProductFeatureVideo.js +1 -0
  97. package/dist/cjs/product/components/product-images-v3/components/child/ProductFeaturedImageCarousel.js +1 -0
  98. package/dist/cjs/product/components/product-images-v3/components/child/ProductFeaturedImageOnly.js +2 -0
  99. package/dist/cjs/product/components/product-images-v3/components/child/ProductGalleryGrid.js +2 -0
  100. package/dist/cjs/product/components/product-images-v3/components/feature-gallery/FeatureImageWithGallery.js +1 -0
  101. package/dist/cjs/product/components/product-images-v3/components/feature-gallery/FeatureImageWithGallery.liquid.js +118 -0
  102. package/dist/cjs/product/components/product-images-v3/components/feature-only/OnlyFeatureImage.js +2 -0
  103. package/dist/cjs/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.js +1 -0
  104. package/dist/cjs/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.liquid.js +46 -0
  105. package/dist/cjs/product/components/product-images-v3/components/gallery-grid/GalleryGrid.js +2 -0
  106. package/dist/cjs/product/components/product-images-v3/components/gallery-grid/GalleryGrid.liquid.js +93 -0
  107. package/dist/cjs/product/components/product-images-v3/components/lightbox/ButtonOpenLightBox.js +2 -0
  108. package/dist/cjs/product/components/product-images-v3/components/lightbox/ProductImagesLightBox.js +2 -0
  109. package/dist/cjs/product/components/product-images-v3/composables/getProductImagesAttr.js +1 -0
  110. package/dist/cjs/product/components/product-images-v3/composables/getProductImagesClassName.js +1 -0
  111. package/dist/cjs/product/components/product-images-v3/composables/getProductImagesStyles.js +1 -0
  112. package/dist/cjs/product/components/product-images-v3/hooks/useFeatureImageWithGallery.js +1 -0
  113. package/dist/cjs/product/components/product-images-v3/hooks/useFilterImagesByVariant.js +1 -0
  114. package/dist/cjs/product/components/product-images-v3/hooks/useGalleryCarousel.js +1 -0
  115. package/dist/cjs/product/components/product-images-v3/hooks/useProductFeaturedImageCarousel.js +1 -0
  116. package/dist/cjs/product/components/product-images-v3/hooks/useProductGalleryGrid.js +1 -0
  117. package/dist/cjs/product/components/product-list/ProductListCarouselLayout.liquid.js +4 -4
  118. package/dist/cjs/product/components/product-list-v3/ProductList.js +1 -0
  119. package/dist/cjs/product/components/product-list-v3/ProductList.liquid.js +205 -0
  120. package/dist/cjs/product/components/product-list-v3/ProductListCarouselItem.liquid.js +15 -0
  121. package/dist/cjs/product/components/product-list-v3/ProductListCarouselLayout.js +1 -0
  122. package/dist/cjs/product/components/product-list-v3/ProductListCarouselLayout.liquid.js +22 -0
  123. package/dist/cjs/product/components/product-list-v3/ProductListGridItem.liquid.js +19 -0
  124. package/dist/cjs/product/components/product-list-v3/ProductListGridLayout.js +1 -0
  125. package/dist/cjs/product/components/product-list-v3/ProductListGridLayout.liquid.js +34 -0
  126. package/dist/cjs/product/components/product-list-v3/common/attrs.js +1 -0
  127. package/dist/cjs/product/components/product-list-v3/common/classes.js +1 -0
  128. package/dist/cjs/product/components/product-list-v3/common/helpers.js +1 -0
  129. package/dist/cjs/product/components/product-list-v3/common/styles.js +1 -0
  130. package/dist/cjs/product/index.js +1 -1
  131. package/dist/cjs/product/next.js +1 -1
  132. package/dist/cjs/product/settings/ProductListV3.js +8 -0
  133. package/dist/cjs/product/settings/product/configs/product-presets/product-1-col.js +2 -2
  134. package/dist/cjs/product/settings/product/configs/product-presets/product-2-col.js +2 -2
  135. package/dist/cjs/product/settings/product/configs/product-presets/product-default.js +2 -2
  136. package/dist/cjs/product/settings/product-image-v2/ProductImages.js +2 -2
  137. package/dist/cjs/product/settings/product-image-v2/configs/setting-v2/ProductFeatureImage.js +1 -1
  138. package/dist/cjs/product/settings/product-image-v2/configs/setting-v2/ProductGalleryImage.js +3 -2
  139. package/dist/cjs/product/settings/product-image-v2/configs/ui/FeatureNavigation.js +1 -1
  140. package/dist/cjs/product/settings/product-image-v2/configs/ui/ImageListNavigation.js +1 -1
  141. package/dist/cjs/product/settings/product-image-v2/configs/ui-v2.js +1 -1
  142. package/dist/cjs/product/settings/product-image-v3/ProductFeatureImage.js +1 -0
  143. package/dist/cjs/product/settings/product-image-v3/ProductGalleryImage.js +1 -0
  144. package/dist/cjs/product/settings/product-image-v3/ProductImages.js +21 -0
  145. package/dist/cjs/product/settings/product-image-v3/configs/setting-v2/ProductFeatureImage.js +2 -0
  146. package/dist/cjs/product/settings/product-image-v3/configs/setting-v2/ProductGalleryImage.js +2 -0
  147. package/dist/cjs/product/settings/product-image-v3/configs/setting-v2/index.js +1 -0
  148. package/dist/cjs/product/settings/product-image-v3/configs/ui/FeatureDots.js +1 -0
  149. package/dist/cjs/product/settings/product-image-v3/configs/ui/FeatureNavigation.js +1 -0
  150. package/dist/cjs/product/settings/product-image-v3/configs/ui/ImageListNavigation.js +1 -0
  151. package/dist/cjs/product/settings/product-image-v3/configs/ui-v1.js +1 -0
  152. package/dist/cjs/product/settings/product-image-v3/configs/ui-v2.js +1 -0
  153. package/dist/cjs/product/settings/product-list/configs/presets.js +2 -2
  154. package/dist/cjs/product/settings/product-list/configs/settings-v2.js +1 -1
  155. package/dist/cjs/product/settings/product-list-v3/configs/presets.js +37 -0
  156. package/dist/cjs/product/settings/product-list-v3/configs/settings-v2.js +1 -0
  157. package/dist/cjs/product/settings/product-list-v3/configs/ui-v1.js +1 -0
  158. package/dist/cjs/product/settings/product-list-v3/configs/ui-v2.js +1 -0
  159. package/dist/cjs/setting.js +1 -1
  160. package/dist/cjs/third-party/settings/KoalaBundleQuantityDiscount/index.js +1 -1
  161. package/dist/esm/builder.js +1 -1
  162. package/dist/esm/carousel/components/arrow/common/classes.js +1 -1
  163. package/dist/esm/carousel/components/arrow/common/helpers.js +1 -1
  164. package/dist/esm/carousel/components/arrow/common/styles.js +8 -8
  165. package/dist/esm/carousel/components/dot/common/helpers.js +1 -1
  166. package/dist/esm/carousel/components/item/CarouselItem.js +1 -1
  167. package/dist/esm/carousel/components/item/common/styles.js +1 -1
  168. package/dist/esm/carousel/components/root/Carousel.js +1 -1
  169. package/dist/esm/carousel/components/root/Carousel.liquid.js +7 -9
  170. package/dist/esm/carousel/components/root/common/attrs.js +1 -1
  171. package/dist/esm/carousel/components/root/common/classes.js +1 -1
  172. package/dist/esm/carousel/components/root/common/styles.js +1 -1
  173. package/dist/esm/carousel/hooks/useCarousel.js +1 -1
  174. package/dist/esm/carousel/hooks/useDotsSetting.js +1 -1
  175. package/dist/esm/carousel/index.js +1 -1
  176. package/dist/esm/carousel/plugins/animation.js +1 -1
  177. package/dist/esm/carousel/plugins/auto-play.js +1 -0
  178. package/dist/esm/carousel/plugins/fix-slider-move-backward.js +1 -0
  179. package/dist/esm/carousel/plugins/mutation.js +1 -0
  180. package/dist/esm/carousel/settings/configs/presets.js +4 -4
  181. package/dist/esm/carousel/settings/configs/settings-v2.js +1 -1
  182. package/dist/esm/carousel-v3/common/helpers.js +1 -0
  183. package/dist/esm/carousel-v3/components/arrow/Arrow.js +10 -0
  184. package/dist/esm/carousel-v3/components/arrow/Arrow.liquid.js +26 -0
  185. package/dist/esm/carousel-v3/components/arrow/common/classes.js +1 -0
  186. package/dist/esm/carousel-v3/components/arrow/common/helpers.js +1 -0
  187. package/dist/esm/carousel-v3/components/arrow/common/styles.js +33 -0
  188. package/dist/esm/carousel-v3/components/dot/Dots.js +2 -0
  189. package/dist/esm/carousel-v3/components/dot/Dots.liquid.js +7 -0
  190. package/dist/esm/carousel-v3/components/dot/common/classes.js +1 -0
  191. package/dist/esm/carousel-v3/components/dot/common/helpers.js +1 -0
  192. package/dist/esm/carousel-v3/components/dot/common/styles.js +1 -0
  193. package/dist/esm/carousel-v3/components/item/CarouselItem.js +2 -0
  194. package/dist/esm/carousel-v3/components/item/CarouselItem.liquid.js +22 -0
  195. package/dist/esm/carousel-v3/components/item/common/classes.js +1 -0
  196. package/dist/esm/carousel-v3/components/item/common/styles.js +1 -0
  197. package/dist/esm/carousel-v3/components/root/Carousel.js +2 -0
  198. package/dist/esm/carousel-v3/components/root/Carousel.liquid.js +23 -0
  199. package/dist/esm/carousel-v3/components/root/common/attrs.js +1 -0
  200. package/dist/esm/carousel-v3/components/root/common/classes.js +1 -0
  201. package/dist/esm/carousel-v3/components/root/common/helpers.js +1 -0
  202. package/dist/esm/carousel-v3/components/root/common/styles.js +1 -0
  203. package/dist/esm/carousel-v3/components/swiper/Swiper.js +1 -0
  204. package/dist/esm/carousel-v3/hooks/useCarouseItem.js +1 -0
  205. package/dist/esm/carousel-v3/hooks/useCarousel.js +1 -0
  206. package/dist/esm/carousel-v3/hooks/useDotsSetting.js +1 -0
  207. package/dist/esm/carousel-v3/hooks/useTrackPreviewPause.js +1 -0
  208. package/dist/esm/carousel-v3/index.js +1 -0
  209. package/dist/esm/{carousel → carousel-v3}/next.js +1 -1
  210. package/dist/esm/carousel-v3/plugins/animation.js +1 -0
  211. package/dist/esm/carousel-v3/settings/Carousel.js +5 -0
  212. package/dist/esm/carousel-v3/settings/CarouselItem.js +1 -0
  213. package/dist/esm/carousel-v3/settings/configs/presets.js +114 -0
  214. package/dist/esm/carousel-v3/settings/configs/settings-v2.js +3 -0
  215. package/dist/esm/carousel-v3/settings/configs/ui-v1.js +1 -0
  216. package/dist/esm/carousel-v3/settings/configs/ui-v2.js +1 -0
  217. package/dist/esm/grid/components/row/common/helpers.js +1 -1
  218. package/dist/esm/index.js +1 -1
  219. package/dist/esm/index.liquid.js +1 -1
  220. package/dist/esm/marquee/hooks/useMarqueeScrollToItem.js +1 -1
  221. package/dist/esm/marquee/settings/Marquee.js +1 -1
  222. package/dist/esm/next.js +1 -1
  223. package/dist/esm/product/components/product-images/ProductGalleryCarousel.js +1 -1
  224. package/dist/esm/product/components/product-images/ProductGalleryCarousel.liquid.js +1 -1
  225. package/dist/esm/product/components/product-images/ProductImagesLightBox.js +1 -1
  226. package/dist/esm/product/components/product-images-v2/ProductImagesV2.liquid.js +8 -8
  227. package/dist/esm/product/components/product-images-v2/common/attrs.js +1 -1
  228. package/dist/esm/product/components/product-images-v2/common/classes.js +1 -1
  229. package/dist/esm/product/components/product-images-v2/common/common.js +1 -1
  230. package/dist/esm/product/components/product-images-v2/common/getBorderActiveCss.js +2 -6
  231. package/dist/esm/product/components/product-images-v2/common/productFeaturedImage.js +1 -1
  232. package/dist/esm/product/components/product-images-v2/common/productGallery.js +1 -1
  233. package/dist/esm/product/components/product-images-v2/common/styles.js +1 -1
  234. package/dist/esm/product/components/product-images-v2/components/child/ProductFeaturedImageCarousel.js +1 -1
  235. package/dist/esm/product/components/product-images-v2/components/child/ProductGalleryGrid.js +2 -2
  236. package/dist/esm/product/components/product-images-v2/components/feature-gallery/FeatureImageWithGallery.js +1 -1
  237. package/dist/esm/product/components/product-images-v2/components/feature-gallery/FeatureImageWithGallery.liquid.js +48 -48
  238. package/dist/esm/product/components/product-images-v2/components/gallery-carousel/GalleryCarousel.js +1 -1
  239. package/dist/esm/product/components/product-images-v2/components/gallery-carousel/GalleryCarousel.liquid.js +14 -14
  240. package/dist/esm/product/components/product-images-v2/components/gallery-grid/GalleryGrid.js +1 -1
  241. package/dist/esm/product/components/product-images-v2/components/gallery-grid/GalleryGrid.liquid.js +11 -11
  242. package/dist/esm/product/components/product-images-v2/components/lightbox/ProductImagesLightBox.js +1 -1
  243. package/dist/esm/product/components/product-images-v2/hooks/useProductFeaturedImageCarousel.js +1 -1
  244. package/dist/esm/product/components/product-images-v2/hooks/useProductGalleryGrid.js +1 -1
  245. package/dist/esm/product/components/product-images-v3/ProductImageV2.js +26 -0
  246. package/dist/esm/product/components/product-images-v3/ProductImagesV2.liquid.js +44 -0
  247. package/dist/esm/product/components/product-images-v3/common/attrs.js +1 -0
  248. package/dist/esm/product/components/product-images-v3/common/classes.js +1 -0
  249. package/dist/esm/product/components/product-images-v3/common/common.js +1 -0
  250. package/dist/esm/product/components/product-images-v3/common/getBorderActiveCss.js +20 -0
  251. package/dist/esm/product/components/product-images-v3/common/hoverAction.js +1 -0
  252. package/dist/esm/product/components/product-images-v3/common/productFeaturedImage.js +1 -0
  253. package/dist/esm/product/components/product-images-v3/common/productGallery.js +1 -0
  254. package/dist/esm/product/components/product-images-v3/common/styles.js +1 -0
  255. package/dist/esm/product/components/product-images-v3/components/child/MediaIcon.js +2 -0
  256. package/dist/esm/product/components/product-images-v3/components/child/ProductFeatureVideo.js +1 -0
  257. package/dist/esm/product/components/product-images-v3/components/child/ProductFeaturedImageCarousel.js +1 -0
  258. package/dist/esm/product/components/product-images-v3/components/child/ProductFeaturedImageOnly.js +2 -0
  259. package/dist/esm/product/components/product-images-v3/components/child/ProductGalleryGrid.js +2 -0
  260. package/dist/esm/product/components/product-images-v3/components/feature-gallery/FeatureImageWithGallery.js +1 -0
  261. package/dist/esm/product/components/product-images-v3/components/feature-gallery/FeatureImageWithGallery.liquid.js +118 -0
  262. package/dist/esm/product/components/product-images-v3/components/feature-only/OnlyFeatureImage.js +2 -0
  263. package/dist/esm/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.js +1 -0
  264. package/dist/esm/product/components/product-images-v3/components/gallery-carousel/GalleryCarousel.liquid.js +46 -0
  265. package/dist/esm/product/components/product-images-v3/components/gallery-grid/GalleryGrid.js +2 -0
  266. package/dist/esm/product/components/product-images-v3/components/gallery-grid/GalleryGrid.liquid.js +93 -0
  267. package/dist/esm/product/components/product-images-v3/components/lightbox/ButtonOpenLightBox.js +2 -0
  268. package/dist/esm/product/components/product-images-v3/components/lightbox/ProductImagesLightBox.js +2 -0
  269. package/dist/esm/product/components/product-images-v3/composables/getProductImagesAttr.js +1 -0
  270. package/dist/esm/product/components/product-images-v3/composables/getProductImagesClassName.js +1 -0
  271. package/dist/esm/product/components/product-images-v3/composables/getProductImagesStyles.js +1 -0
  272. package/dist/esm/product/components/product-images-v3/hooks/useFeatureImageWithGallery.js +1 -0
  273. package/dist/esm/product/components/product-images-v3/hooks/useFilterImagesByVariant.js +1 -0
  274. package/dist/esm/product/components/product-images-v3/hooks/useGalleryCarousel.js +1 -0
  275. package/dist/esm/product/components/product-images-v3/hooks/useProductFeaturedImageCarousel.js +1 -0
  276. package/dist/esm/product/components/product-images-v3/hooks/useProductGalleryGrid.js +1 -0
  277. package/dist/esm/product/components/product-list/ProductListCarouselLayout.liquid.js +6 -6
  278. package/dist/esm/product/components/product-list-v3/ProductList.js +1 -0
  279. package/dist/esm/product/components/product-list-v3/ProductList.liquid.js +205 -0
  280. package/dist/esm/product/components/product-list-v3/ProductListCarouselItem.liquid.js +15 -0
  281. package/dist/esm/product/components/product-list-v3/ProductListCarouselLayout.js +1 -0
  282. package/dist/esm/product/components/product-list-v3/ProductListCarouselLayout.liquid.js +22 -0
  283. package/dist/esm/product/components/product-list-v3/ProductListGridItem.liquid.js +19 -0
  284. package/dist/esm/product/components/product-list-v3/ProductListGridLayout.js +1 -0
  285. package/dist/esm/product/components/product-list-v3/ProductListGridLayout.liquid.js +34 -0
  286. package/dist/esm/product/components/product-list-v3/common/attrs.js +1 -0
  287. package/dist/esm/product/components/product-list-v3/common/classes.js +1 -0
  288. package/dist/esm/product/components/product-list-v3/common/helpers.js +1 -0
  289. package/dist/esm/product/components/product-list-v3/common/styles.js +1 -0
  290. package/dist/esm/product/index.js +1 -1
  291. package/dist/esm/product/next.js +1 -1
  292. package/dist/esm/product/settings/ProductListV3.js +8 -0
  293. package/dist/esm/product/settings/product/configs/product-presets/product-1-col.js +2 -2
  294. package/dist/esm/product/settings/product/configs/product-presets/product-2-col.js +2 -2
  295. package/dist/esm/product/settings/product/configs/product-presets/product-default.js +2 -2
  296. package/dist/esm/product/settings/product-image-v2/ProductImages.js +2 -2
  297. package/dist/esm/product/settings/product-image-v2/configs/setting-v2/ProductFeatureImage.js +1 -1
  298. package/dist/esm/product/settings/product-image-v2/configs/setting-v2/ProductGalleryImage.js +3 -2
  299. package/dist/esm/product/settings/product-image-v2/configs/ui/FeatureNavigation.js +1 -1
  300. package/dist/esm/product/settings/product-image-v2/configs/ui/ImageListNavigation.js +1 -1
  301. package/dist/esm/product/settings/product-image-v2/configs/ui-v2.js +1 -1
  302. package/dist/esm/product/settings/product-image-v3/ProductFeatureImage.js +1 -0
  303. package/dist/esm/product/settings/product-image-v3/ProductGalleryImage.js +1 -0
  304. package/dist/esm/product/settings/product-image-v3/ProductImages.js +21 -0
  305. package/dist/esm/product/settings/product-image-v3/configs/setting-v2/ProductFeatureImage.js +2 -0
  306. package/dist/esm/product/settings/product-image-v3/configs/setting-v2/ProductGalleryImage.js +2 -0
  307. package/dist/esm/product/settings/product-image-v3/configs/setting-v2/index.js +1 -0
  308. package/dist/esm/product/settings/product-image-v3/configs/ui/FeatureDots.js +1 -0
  309. package/dist/esm/product/settings/product-image-v3/configs/ui/FeatureNavigation.js +1 -0
  310. package/dist/esm/product/settings/product-image-v3/configs/ui/ImageListNavigation.js +1 -0
  311. package/dist/esm/product/settings/product-image-v3/configs/ui-v1.js +1 -0
  312. package/dist/esm/product/settings/product-image-v3/configs/ui-v2.js +1 -0
  313. package/dist/esm/product/settings/product-list/configs/presets.js +2 -2
  314. package/dist/esm/product/settings/product-list/configs/settings-v2.js +1 -1
  315. package/dist/esm/product/settings/product-list-v3/configs/presets.js +37 -0
  316. package/dist/esm/product/settings/product-list-v3/configs/settings-v2.js +1 -0
  317. package/dist/esm/product/settings/product-list-v3/configs/ui-v1.js +1 -0
  318. package/dist/esm/product/settings/product-list-v3/configs/ui-v2.js +1 -0
  319. package/dist/esm/setting.js +1 -1
  320. package/dist/esm/third-party/settings/KoalaBundleQuantityDiscount/index.js +1 -1
  321. package/dist/types/index.d.ts +476 -74
  322. package/package.json +3 -3
  323. package/dist/cjs/carousel/components/swiper/Swiper.js +0 -1
  324. package/dist/esm/carousel/components/swiper/Swiper.js +0 -1
  325. /package/dist/cjs/{carousel → carousel-v3}/components/swiper/SwiperSlide.js +0 -0
  326. /package/dist/cjs/{carousel → carousel-v3}/components/swiper/common/styles.js +0 -0
  327. /package/dist/esm/{carousel → carousel-v3}/components/swiper/SwiperSlide.js +0 -0
  328. /package/dist/esm/{carousel → carousel-v3}/components/swiper/common/styles.js +0 -0
@@ -0,0 +1,44 @@
1
+ import{template as e,isLocalEnv as o,baseAssetURL as r,WrapRenderChildren as s,RenderChildren as t}from"@gem-sdk/core";import{getConditionRenderGalleryImages as i,getStyleInsideLayout as a,setDefaultWhenUndefineSetting as p}from"./common/common.js";import l from"./components/feature-gallery/FeatureImageWithGallery.liquid.js";import d from"./components/gallery-carousel/GalleryCarousel.liquid.js";import m from"./components/gallery-grid/GalleryGrid.liquid.js";import{getSettingPreloadData as c}from"../../../helpers.js";import{getShapeByLayout as u,sizeSettingDefaultForNewLayout as n}from"./common/productGallery.js";import{getProductImagesClassName as g}from"./composables/getProductImagesClassName.js";import{getProductImagesStyles as f}from"./composables/getProductImagesStyles.js";import{createAttr as $,LiquidIf as y,createClass as h,If as v,Liquid as S}from"@gem-sdk/system";import{getBorderActiveCss as j}from"./common/getBorderActiveCss.js";import{getStyleOfObject as F}from"../../helpers/function.js";let ProductImages=I=>{let P=p(I),{setting:C,styles:G,builderProps:D,style:b}=P,{rawChildren:z,pageContext:O}=I,{enableLazyLoadImage:_}=O??{},N={...C,...G},A=`
2
+ {
3
+ "id":${JSON.stringify(D?.uid)},
4
+ "pageContext": ${JSON.stringify(O)},
5
+ "setting":${JSON.stringify(C)},
6
+ "styles":${JSON.stringify(G)},
7
+ "productUrl":{{product.url | json | escape}},
8
+ "product":{{product | json | escape}},
9
+ "collectionUrl": {{ collection.url | json | escape }},
10
+ "collection": {{ collection | json | escape}}
11
+ }
12
+ `,B=$({"section-id":"{{section.id}}","data-id":`${D?.uid}`}),{isOnlyFeatureAllDevices:U,isRenderGalleryGrid:k}=i(N?.position,C?.type),q=k?{}:$({"data-only-image":y("product.media.size > 1","false","true")}),{wrapperClasses:E,productImagesGalleryClasses:J}=g(I),w=h({"gp-grid gp-w-full !gp-m-0 gp-relative":!0}),T=h({"gp-w-full !gp-m-0 gp-relative":!0}),{wrapContainerStyle:x,wrapContainerStyleOnlyOneImage:L,galleryImageStyle:M}=f(N),R=u({shape:N.shape,shapeForBottom:N.shapeForBottom,shapeFor1Col:N.shapeFor1Col,shapeFor2Col:N.shapeFor2Col,shapeForFtOnly:N.shapeForFtOnly,shapeForInsideBottom:N.shapeForInsideBottom??n,shapeForInside:N.shapeForInside??n},N.position),V=a(N.position,R,N?.spacing),W=()=>e`
13
+ ${s({uid:D?.uid||"",customProps:z?.[0].customProps},z?.map(o=>{if(o)return e`${t({...o,isInsideProductImage:!0,imageData:{imageShape:G?.ftShape,imageAlign:G?.align,imageLayout:G?.position},dotData:{dotSize:C?.ftDotSize,dotGapToCarousel:C?.ftDotGapToCarousel,dotStyle:C?.ftDotStyle}})}`}))}
14
+ `,H=()=>e`
15
+ <div
16
+ class="${J}"
17
+ style="${F(M)}"
18
+ ${{...q}}
19
+ >
20
+ ${y("product.media.size > 1",d({builderPropUID:`gp-gallery-${D?.uid}`,...N,enableLazyLoadImage:_}))}
21
+ ${v(k,m({builderPropUID:D?.uid,wrapperStyle:{...V},children:W(),...N,enableLazyLoadImage:_}))}
22
+ </div>
23
+ `,K=()=>C?.borderActive?.border!=="none";return e`
24
+ ${v(K(),y("product.media.size > 1",`<style>${j({settings:N,uid:D?.uid,type:"Liquid"})}</style>`),"")}
25
+ ${S(`
26
+ {% assign featured_image = product.featured_image %}
27
+ ${y("variant != null and variant.featured_image != null","{% assign featured_image = variant.featured_image %}")}
28
+ `)}
29
+ <gp-product-images-v3
30
+ gp-data='${A}'
31
+ ${{...B}}
32
+ style="${{...b}}"
33
+ class="${E}"
34
+ >
35
+ <div
36
+ class="${y("product.media.size > 1",`${w}`,`${T}`)}"
37
+ style="${y("product.media.size > 1",F(x),F(L))}"
38
+ >
39
+ ${l({builderPropUID:`gp-carousel-${D?.uid}`,...N,children:W(),enableLazyLoadImage:_})}
40
+ ${v(!U,H())}
41
+ </div>
42
+ </gp-product-images-v3>
43
+ ${v(o,`<script ${c('class="gps-link" delay',"src")}="{{ 'gp-product-images-v3-v7-5.js' | asset_url }}" defer="defer"></script>`,`<script ${c('class="gps-link" delay',"src")}="${r}/assets-v2/gp-product-images-v3-v7-5.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
44
+ `};export{ProductImages as default};
@@ -0,0 +1 @@
1
+ import{getResponsiveValueByScreen as o}from"@gem-sdk/core";import{getDotStyleConfig as t,getCarouselVerticalConfigByPosition as r,getAllowDotConfig as a}from"./productGallery.js";import{getDotStyleForOnlyFeaturedImage as e}from"./productFeaturedImage.js";let DEVICES=["desktop","mobile","tablet"],getGalleryCarouselSettingAttr=a=>{let e={desktop:"inside"===o(a.navigationPosition,"desktop"),tablet:"inside"===o(a.navigationPosition,"tablet"),mobile:"inside"===o(a.navigationPosition,"mobile")},i=DEVICES.reduce((o,t)=>(a.navigationPosition?.[t]&&(o[t]="none"!==a.navigationPosition[t]),o),{});return{...a?.loop&&{loop:a.loop},itemNumber:{desktop:"auto",tablet:"auto",mobile:"auto"},dot:{desktop:!1,tablet:!1,mobile:!1},dotStyle:t(),controlOverContent:e,...a?.dragToScroll&&{enableDrag:{desktop:a.dragToScroll,tablet:a.dragToScroll,mobile:a.dragToScroll}},vertical:r(a.position),...a?.arrowIcon&&{arrowCustom:a.arrowIcon},arrowIconSize:a.arrowIconSize||{desktop:24},...a?.arrowIconColor&&{arrowCustomColor:a.arrowIconColor},...a?.arrowNavColor&&{arrowBackgroundColor:a.arrowNavColor},...a?.arrowNavBorder&&{arrowBorder:{desktop:a.arrowNavBorder}},...a?.arrowNavRadius&&{roundedArrow:{desktop:a.arrowNavRadius}},...a?.arrowNavShadow&&{arrowShadow:{desktop:a.arrowNavShadow}},arrowGapToEachSide:"16",navigationStyle:a.navigationPosition,navigationEnable:i,arrowButtonSize:{desktop:{width:a.arrowNavSize?.width,height:a.arrowNavSize?.height,padding:a.arrowNavSize?.padding}},animationMode:a?.ftAnimationMode,enableAction:{desktop:!0}}},getFeaturedCarouselSettingAttr=t=>{let r={desktop:"inside"===o(t.ftNavigationPosition,"desktop"),tablet:"inside"===o(t.ftNavigationPosition,"tablet"),mobile:"inside"===o(t.ftNavigationPosition,"mobile")},i=DEVICES.reduce((o,r)=>(t.ftNavigationPosition?.[r]&&(o[r]="none"!==t.ftNavigationPosition[r]),o),{});return{...t?.ftLoop&&{loop:t.ftLoop},itemNumber:{desktop:1},dot:a(),dotStyle:e({position:t.position,dotStyle:t.ftDotStyle}),dotSize:t.ftDotSize??{desktop:12},dotGapToCarousel:t.ftDotGapToCarousel??{desktop:16},dotColor:t.ftDotColor??{desktop:"bg-1"},dotActiveColor:t.ftDotActiveColor??{desktop:"line-3"},controlOverContent:r,...t?.ftDragToScroll&&{enableDrag:{desktop:t.ftDragToScroll,tablet:t.ftDragToScroll,mobile:t.ftDragToScroll}},...t?.ftArrowIcon&&{arrowCustom:t.ftArrowIcon},arrowIconSize:t.ftArrowIconSize||{desktop:24},...t?.ftArrowIconColor&&{arrowCustomColor:t.ftArrowIconColor},...t?.ftArrowNavColor&&{arrowBackgroundColor:t.ftArrowNavColor},...t?.ftArrowNavBorder&&{arrowBorder:{desktop:t.ftArrowNavBorder}},...t?.ftArrowNavRadius&&{roundedArrow:{desktop:t.ftArrowNavRadius}},...t?.ftArrowNavShadow&&{arrowShadow:{desktop:t.ftArrowNavShadow}},sneakPeakType:{desktop:"center"},arrowGapToEachSide:"16",animationMode:t?.ftAnimationMode,...t?.ftNavigationPosition&&{navigationStyle:t.ftNavigationPosition},navigationEnable:i,arrowButtonSize:{desktop:{width:t.ftArrowNavSize?.width,height:t.ftArrowNavSize?.height,padding:t.ftArrowNavSize?.padding}},enableAction:{desktop:!0}}};export{getFeaturedCarouselSettingAttr,getGalleryCarouselSettingAttr};
@@ -0,0 +1 @@
1
+ import{DEVICES as e,getResponsiveValueByScreen as l}from"@gem-sdk/core";function composeClasses(e){return e.split(" ").reduce((e,l)=>(e[l]=!0,e),{})}let getWrapperClasses=({extraClass:e,isAddOverFlowClass:l=!1})=>{let s="gp-relative gp-w-full";return e&&(s+=` ${e}`),l&&(s+=" gp-overflow-hidden"),composeClasses(s)},getGalleryWrapperClasses=({extraClass:e})=>{let l="gallery-wrapper gp-product-images-gallery gp-flex gp-overflow-hidden gp-max-w-full gp-max-h-full data-[only-image=true]:gp-hidden";return e&&(l+=` ${e}`),composeClasses(l)},getGalleryGridWrapperClasses=({extraClass:e})=>{let l="product-feature-image grid-gallery gp-flex !gp-h-fit gp-w-full gp-flex-wrap scrollbar-track:gp-rounded-2xl scrollbar-thumb:gp-rounded-2xl scrollbar-thumb:gp-bg-gray-400 gp-z-1";return e&&(l+=` ${e}`),composeClasses(l)},getFtImageWithGalleryClasses=({extraClass:e})=>{let l="gp-flex !gp-h-fit gp-relative gp-overflow-hidden";return e&&(l+=` ${e}`),composeClasses(l)},getImageGalleryWrapperClasses=({extraClass:e})=>{let l="gp-flex gp-h-fit gp-max-w-full gp-overflow-hidden";return e&&(l+=` ${e}`),composeClasses(l)},getFeaturedImageCarouselClasses=({extraClass:e})=>{let l="`gp-flex-1 gp-w-full gp-feature-image-carousel";return e&&(l+=` ${e}`),composeClasses(l)},getFeaturedImageClasses=({setting:s,extraClass:r})=>{let a=r??"";return e.forEach(e=>{let r=l(s?.ftNavigationPosition,e),t="desktop"!==e?`${e}:`:"";"outside"===r?a+=` ${t}gp-px-[16px]`:a+=` ${t}gp-px-0`}),composeClasses(a)},getFeaturedImageGalleryClasses=({settings:s,extraClass:r})=>{let a=r??"gp-flex-1 gp-w-full carousel-gallery";return e.forEach(e=>{let r=l(s?.navigationPosition,e),t=l(s?.type,e),g=l(s?.position,e),p="desktop"!==e?`${e}:`:"";"outside"===r&&"slider"===t&&["bottom-center"].includes(g||"")?a+=` ${p}gp-px-[16px]`:a+=` ${p}gp-px-0`}),composeClasses(a)},getGalleryItemClasses=({extraClass:e})=>{let l="gp-image-item gp-flex gp-items-center gp-justify-center gp-group gp-relative gp-overflow-hidden gp-cursor-pointer";return e&&(l+=` ${e}`),composeClasses(l)},getFeaturedCarouselItemClasses=({extraClass:e})=>{let l="gp-group gp-z-0 gp-flex !gp-min-w-full !gp-max-w-full gp-w-full gp-relative gp-items-start gp-justify-center gp-overflow-hidden gp-outline-1 -gp-outline-offset-1 gp-image-item gp-ft-image-item data-[outline=active]:gp-outline";return e&&(l+=` ${e}`),composeClasses(l)};export{getFeaturedCarouselItemClasses,getFeaturedImageCarouselClasses,getFeaturedImageClasses,getFeaturedImageGalleryClasses,getFtImageWithGalleryClasses,getGalleryGridWrapperClasses,getGalleryItemClasses,getGalleryWrapperClasses,getImageGalleryWrapperClasses,getWrapperClasses};
@@ -0,0 +1 @@
1
+ import{getResponsiveValueByScreen as e,makeAspectRatio as t,makeStyleResponsive as i,removeNullUndefined as o,DEVICES as r}from"@gem-sdk/core";let getTypeWidthDevice=e=>{let t=e?.desktop,i=e?.tablet===void 0?t:e?.tablet,o=e?.mobile===void 0?i:e?.mobile;return{desktop:t,tablet:i,mobile:o}},convertUnitToNumber=(e,t)=>{if(!e)return t;if("number"==typeof e)return e;let i=e.replaceAll("px","").replaceAll("%","").replaceAll("rem","").replaceAll("em","");return isNaN(Number(i))?t:Number(i)},convertSpacing=e=>{if(!e)return{desktop:5};let t=convertUnitToNumber(e.desktop,5),i=convertUnitToNumber(e.tablet,t),o=convertUnitToNumber(e.mobile,i);return{desktop:t,tablet:i,mobile:o}},getDisplayStyle=(e,t)=>{let i={},o=["desktop","mobile","tablet"];return o.forEach(o=>{i={...i,[`--d${"desktop"===o?"":`-${o}`}`]:`${e(o)?"none":t}`}}),i},checkAddOverFlowClass=e=>{let t=e?.["--radius"],i=e?.["--bblr"]||"0px",o=e?.["--bbrr"]||"0px",r=e?.["--btlr"]||"0px",l=e?.["--btrr"]||"0px";return t&&!t.toString().includes("none")&&"0"!==t.toString()||"0px"!==i||"0px"!==o||"0px"!==r||"0px"!==l},getAspectRatio=i=>{let o={},r=["desktop","mobile","tablet"];return r.forEach(t=>{let r=e(i,t)?.shapeValue;if(r)o={...o,[t]:r};else{let r=e(i,t)?.shape;switch(r){case"square":o={...o,[t]:"1/1"};break;case"vertical":o={...o,[t]:"3/4"};break;case"horizontal":o={...o,[t]:"4/3"};break;case"original":o={...o,[t]:""}}}}),t(o)},getStyleGridLayout=t=>{let i={"--gtc":"minmax(0, 12fr)","--gtc-tablet":"minmax(0, 12fr)","--gtc-mobile":"minmax(0, 12fr)"};if(!t.isHiddenGalleryImages){let o=!1;r.forEach(r=>{let l=e(t.position,r),a=e(t.ratioLayout,r),n=e(t.ratioLayoutRight,r),s="desktop"===r?"--gtc":`--gtc-${r}`,d="desktop"===r?"--gtr":`--gtr-${r}`,u="left"===l?a:n,c=["left","right"].includes(l||"");c&&u?(o=!0,Object.assign(i={...i,[s]:`minmax(0, ${u[0]}fr) minmax(0, ${u[1]}fr)`},{[d]:"fit-content(0)"})):o&&Object.assign(i,{[d]:"unset"})})}return i},getStyleGridOrderForFeature=t=>{let i={"--o":"0","--o-tablet":"0","--o-mobile":"0"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=e(t.position,o),l="desktop"===o?"--o":`--o-${o}`;i={...i,[l]:"left"===r?"1":"0"}}),i},getStyleGridOrderForGallery=t=>{let i={"--o":"1","--o-tablet":"1","--o-mobile":"1"},o=["desktop","mobile","tablet"];return o.forEach(o=>{let r=e(t.position,o),l="desktop"===o?"--o":`--o-${o}`;i={...i,[l]:"left"===r?"0":"1"}}),i},getSrcImage=e=>`{{${e} | image_url: width: 480}} 480w, {{${e} | image_url: width: 768}} 768w, {{${e} | image_url: width: 1024}} 1024w, {{${e} | image_url: width: 1440}} 1440w`,convertSpacingForIndisdeLayout=e=>{let t=parseInt(e)?`${2*parseInt(e)}px`:`${e} * 2`;return t},getStyleInsideLayout=(t,r,l)=>{let a=["desktop","mobile","tablet"],n={},s={},d={},u={},c={},g={};return a.forEach(i=>{let o=e(t,i),a=e(r,i)?.width,m=e(l,i);if(n={...n,[i]:["inside-bottom","inside-left","inside-right"].includes(o)?"absolute":"static"},["inside-bottom"].includes(o)){let e=convertSpacingForIndisdeLayout(m);a=`calc(100% - ${e})`}["bottom-center","two-col","one-col"].includes(o)&&(a="100%"),d={...d,[i]:"inside-bottom"===o?`${m}`:"auto"},u={...u,[i]:["inside-left","inside-right"].includes(o)?`${m}`:"auto"},g={...g,[i]:["inside-bottom","inside-left"].includes(o)?`${m}`:"auto"},c={...c,[i]:"inside-right"===o?`${m}`:"auto"},s={...s,[i]:a}}),{...i("pos",n),...i("w",o(s)),...i("bottom",o(d)),...i("top",o(u)),...i("left",o(g)),...i("right",o(c))}},getConditionRenderGalleryImages=(t,i)=>{let o=["desktop","mobile","tablet"],r=!0,l=!1;return o.forEach(o=>{let a=e(t,o),n=e(i,o);a&&"only-feature"!==a&&(r=!1),(["two-col","one-col"].includes(a)||"images"===n)&&(l=!0)}),{isOnlyFeatureAllDevices:r,isRenderGalleryGrid:l}},setDefaultWhenUndefineSetting=e=>({...e,setting:{...e.setting}}),getValueFromValueContainUnit=e=>{let t=e.match(/\d+/g);return t?t[0]:e},getPaddingBottomByShapeSetting=t=>{let i=getAspectRatio(t),o={desktop:"auto",mobile:"auto",tablet:"auto"},r=["desktop","mobile","tablet"];return r.forEach(r=>{let l=e(t,r),a=l?.height,n=l?.width||"",s=getValueFromValueContainUnit(a||""),d=n.toString().match(/px/g)?getValueFromValueContainUnit(n):n;if(a&&n&&!isNaN(Number(s))&&!isNaN(Number(d))){o={...o,[r]:`${Number(s)/Number(d)*100}%`};return}if(a&&!isNaN(Number(s))){o={...o,[r]:a};return}let u=i?.[r]!=="auto"&&i?.[r]?i?.[r]?.split("/").reverse().join("/"):"{%if largestRatio == 0%} 100 / 100 {%else%} {{largestRatio}} {%endif%}";o={...o,[r]:`calc((${u})*100%)`}}),o};export{checkAddOverFlowClass,convertSpacing,convertSpacingForIndisdeLayout,convertUnitToNumber,getAspectRatio,getConditionRenderGalleryImages,getDisplayStyle,getPaddingBottomByShapeSetting,getSrcImage,getStyleGridLayout,getStyleGridOrderForFeature,getStyleGridOrderForGallery,getStyleInsideLayout,getTypeWidthDevice,setDefaultWhenUndefineSetting};
@@ -0,0 +1,20 @@
1
+ import{composeBorderCss as e,composeCornerCss as t}from"@gem-sdk/core";let getBorderActiveCss=({settings:i,uid:r,type:a})=>{let g="Liquid"===a?`.gem-slider-item-${r}-{{product.id}}.gp-gallery-image-item::after, .gem-slider-item-gp-gallery-${r}-{{product.id}}.gp-gallery-image-item.gem-slider-item-active::after`:`.gem-slider-item-active.gem-slider-item-${r}.gp-gallery-image-item::after`;return`
2
+ ${g} {
3
+ content: "";
4
+ height: 100%;
5
+ width: 100%;
6
+ position: absolute;
7
+ z-index: 999;
8
+ top: 0;
9
+ left: 0;
10
+ ${e(i?.borderActive)}
11
+ ${t(i?.corner)}
12
+ }
13
+ .gem-slider-item-${r}-{{product.id}}.gp-gallery-image-item[data-outline=active]:after, .gem-slider-item-gp-gallery-${r}-{{product.id}}.gp-gallery-image-item[data-outline=active]:after {
14
+ pointer-events: none;
15
+ }
16
+ .gem-slider-item-${r}-{{product.id}}.gp-gallery-image-item[data-outline=none]:after{
17
+ pointer-events: none;
18
+ border-color: transparent !important;
19
+ }
20
+ `};export{getBorderActiveCss};
@@ -0,0 +1 @@
1
+ import{convertUnitToNumber as e}from"./common.js";let handleMouseMove=(t,o)=>{let l=o?.hoverEffect==="zoom"&&o?.zoomType==="default",r=o?.hoverEffect==="zoom"&&o?.zoomType==="glasses",i=o?.hoverEffect==="other",s=o?.hoverEffect!=="none";if(!s)return;let y=t.currentTarget.querySelector("img"),c=t.currentTarget.querySelector("img.hover-image"),n=t.currentTarget.querySelector(".room-len"),f=y?.getBoundingClientRect(),h=y?.clientWidth||0,a=y?.clientHeight||0,p=e(o?.zoom,0),g=!p||p<100?1:p/100||1,m=(h||1)*(o?.hoverEffect==="other"?1:g),u=(a||1)*(o?.hoverEffect==="other"?1:g),d=t.clientX-f?.x,x=t.clientY-f?.y;i&&displayOtherImage({featureImageHoverDom:c}),l&&t.clientX>=f?.x&&t.clientX<=f.right&&t.clientY>=f?.y&&t.clientY<=f.bottom&&displayZoomImage({featureImageDom:y,featureImageHoverDom:c,zoomSize:m,zoomSizeHeight:u,slideWidth:h,imageOffsetX:d,imageOffsetY:x,isEnableShowOtherImage:i}),r&&displayZoomLen({zoomLens:n,zoomSize:m,zoomValue:g,imagePosition:f,slideWidth:h,slideHeight:a,imageOffsetX:d,imageOffsetY:x})},displayOtherImage=({featureImageHoverDom:e})=>{e&&(e.style.opacity="1",e.style.top="0px",e.style.left="0px",e.style.width="100%",e.style.height="100%")},displayZoomLen=({zoomLens:e,zoomSize:t,zoomValue:o,slideWidth:l,slideHeight:r,imageOffsetX:i,imageOffsetY:s})=>{if(!e)return;e.style.opacity="1";let y=e.offsetWidth/2,c=e.offsetHeight/2,n=r||1;i>l-y/o&&(i=l-y/o),i<y/o&&(i=y/o),s>n-c/o&&(s=n-c/o),s<c/o&&(s=c/o),e.style.top=s-c+"px",e.style.left=i-y+"px",e.style.backgroundSize=t+"px "+n*o+"px",e.style.backgroundPosition=`-${i*o-y}px -${s*o-c}px`},displayZoomImage=({featureImageDom:e,featureImageHoverDom:t,zoomSize:o,zoomSizeHeight:l,slideWidth:r,imageOffsetX:i,imageOffsetY:s,isEnableShowOtherImage:y=!1})=>{if(!t)return;t.style.width=`${o}px`,y||(t.style.height=`${l}px`),t.style.opacity="1";let c=i/e?.offsetWidth,n=s/e?.offsetHeight;t.style.top=(e?.offsetHeight-t.offsetHeight)*n+"px",t.style.left=(r-o)*c+"px"},handleMouseOut=e=>{let t=e.currentTarget.querySelector("img.hover-image"),o=e.currentTarget.querySelector(".room-len");t&&(t.style.opacity="0"),o&&(o.style.opacity="0")};export{handleMouseMove,handleMouseOut};
@@ -0,0 +1 @@
1
+ import{getResponsiveValueByScreen as e,DEVICES as t,makeStyleResponsive as o}from"@gem-sdk/core";let isFeatureMedia=e=>!!e&&["EXTERNAL_VIDEO","MODEL_3D","VIDEO"].includes(e),getZoomLenClass=()=>"!gp-flex gp-absolute gp-opacity-0 gp-h-[150px] gp-w-[150px] gp-cursor-none gp-rounded-full gp-bg-no-repeat gp-shadow-glasses gp-bg-white gp-pointer-events-none",getZoomImageClass=()=>"gp-absolute gp-left-0 gp-top-0 gp-opacity-0 gp-transition-opacity gp-bg-white gp-pointer-events-none",getDotStyleForOnlyFeaturedImage=o=>{let r={};return t.forEach(t=>{let a=e(o.position,t),g=e(o.dotStyle,t);r={...r,[t]:"only-feature"===a?g:"none"}}),r},getVideoHeight=e=>{if(!e)return null;let t={};return Object.keys(e).forEach(o=>{let r=e[o];r&&(t[o]="cover"===r?"100%":"auto")}),o("h",t)},checkRenderFeaturedCarousel=e=>{let t=["desktop","mobile","tablet"],o=!1;return t.forEach(t=>{let r=checkShowCarousel(e,t);checkShowCarousel(e,t)&&(o=r)}),o},checkShowCarousel=(t,o)=>"only-feature"!==e(t.position,o)||"none"!==e(t.ftNavigationPosition,o)||"none"!==e(t.ftDotStyle,o)||!0===e(t.ftLoop,o)||!0===t.ftDragToScroll;export{checkRenderFeaturedCarousel,getDotStyleForOnlyFeaturedImage,getVideoHeight,getZoomImageClass,getZoomLenClass,isFeatureMedia};
@@ -0,0 +1 @@
1
+ import{getResponsiveValueByScreen as e,cls as t}from"@gem-sdk/core";import{getDisplayStyle as o}from"./common.js";import{convertUnitToNumber as i}from"../../product-images/common/productFeaturedImage.js";let getZoomDisplay=t=>o(o=>!e(t,o),"flex"),HORIZONTAL_LAYOUT=["right","left","inside-left","inside-right"],sizeSettingDefaultForNewLayout={desktop:{shape:"square",shapeValue:"1/1",width:"20%",height:void 0,shapeLinked:!0}},getCarouselVerticalConfigByPosition=t=>{let o=["desktop","mobile","tablet"],i={};return o.forEach(o=>{let a=e(t,o),l=HORIZONTAL_LAYOUT.includes(a);i=l?{...i,[o]:!0}:{...i,[o]:!1}}),i},getMinHeightByPosition=(o,i)=>{let a=["desktop","mobile","tablet"],l=getCarouselVerticalConfigByPosition(o),s={};return a.forEach(t=>{let o=e(i,t),a="desktop"===t?"":`${t}:`;s[`${a}!gp-min-h-0`]=!!l[t]&&"outside"===o,s[`${a}!gp-min-h-full`]=!(l[t]&&"outside"===o)}),t({...s})},getEditorMinHeightClass=(t,o,i)=>{let a=getCarouselVerticalConfigByPosition(o),l=e(i,t);return a[t]&&"outside"===l?"!gp-min-h-0":"!gp-min-h-full"},getAllowDotConfig=()=>({desktop:!0,tablet:!0,mobile:!0}),getDotStyleConfig=()=>({desktop:"none",tablet:"none",mobile:"none"}),getSettingWidthForGridItem=t=>{let o={},i=["desktop","mobile","tablet"];return i.forEach(i=>{let a=e(t.shapeByLayout,i)?.width,l=e(t.itemSpacing,i),s=0;a?.includes("%")&&(s=100/parseInt(a)),o={...o,[i]:s?`calc(${a} - ${l} * ${s-1} / ${s})`:a}}),o},getSettingWidthForCarouselItem=t=>{let o={},i=["desktop","mobile","tablet"];return i.forEach(i=>{let a=e(t.position,i),l="bottom-center"===a,s=e(t.shapeByLayout,i)?.width;o={...o,[i]:l&&s?.includes("px")?s:"100%"}}),o},getSettingMinWidthForCarouselItem=t=>{let o={},a=["desktop","mobile","tablet"];return a.forEach(a=>{let l=e(t.position,a),s=i(e(t.spacing,a),5),r="bottom-center"===l||"inside-bottom"===l,n=e(t.shapeByLayout,a)?.width,g="100%";if(r){let e=100/i(n,20);g=n?.includes("px")?n:n?.includes("%")?`calc(${n} - ${(e-1)*s/e}px)`:"100%"}o={...o,[a]:g}}),o},checkDisplayGalleryByWidth=t=>{let o={desktop:!0,tablet:!0,mobile:!0},i=["desktop","mobile","tablet"];return i.forEach(i=>{let a=e(t.shapeByLayout,i)?.width??"100%",l=0!==parseInt(a);o={...o,[i]:l}}),o},getShapeByLayout=(t,o)=>{let i={},a=["desktop","mobile","tablet"];return a.forEach(a=>{let l=e(o,a);switch(l){case"bottom-center":case"bottom-left":i={...i,[a]:e(t.shapeForBottom,a)};break;case"inside-bottom":i={...i,[a]:e(t.shapeForInsideBottom??sizeSettingDefaultForNewLayout,a)};break;case"left":case"right":i={...i,[a]:e(t.shape,a)};break;case"inside-left":case"inside-right":i={...i,[a]:e(t.shapeForInside??sizeSettingDefaultForNewLayout,a)};break;case"only-feature":i={...i,[a]:e(t.shapeForFtOnly,a)};break;case"one-col":i={...i,[a]:e(t.shapeFor1Col,a)};break;case"two-col":i={...i,[a]:e(t.shapeFor2Col,a)}}}),i};export{HORIZONTAL_LAYOUT,checkDisplayGalleryByWidth,getAllowDotConfig,getCarouselVerticalConfigByPosition,getDotStyleConfig,getEditorMinHeightClass,getMinHeightByPosition,getSettingMinWidthForCarouselItem,getSettingWidthForCarouselItem,getSettingWidthForGridItem,getShapeByLayout,getZoomDisplay,sizeSettingDefaultForNewLayout};
@@ -0,0 +1 @@
1
+ import{makeStyleResponsive as e,makeHeight as t,getHeightByShapeGlobalSize as o,makeWidth as r,composeRadius as i,getResponsiveValueByScreen as a,makeStyleWithDefault as l,getWidthByShapeGlobalSize as s}from"@gem-sdk/core";import{getStyleGridLayout as n,getStyleGridOrderForFeature as p,getStyleGridOrderForGallery as h,getStyleInsideLayout as m,convertSpacing as g,getDisplayStyle as d,convertSpacingForIndisdeLayout as F}from"./common.js";import{getShapeByLayout as y,sizeSettingDefaultForNewLayout as u,getSettingWidthForGridItem as c,getSettingMinWidthForCarouselItem as S,getSettingWidthForCarouselItem as I,checkDisplayGalleryByWidth as b}from"./productGallery.js";let DEVICES=["desktop","mobile","tablet"];function filterTruthyStyles(e){return Object.fromEntries(Object.entries(e||{}).filter(([,e])=>!!e))}let getWrapContainerStyle=(t,o)=>{let r=n({position:t.position,ratioLayout:t.ratioLayout,ratioLayoutRight:t.ratioLayoutRight,isHiddenGalleryImages:!!o}),i={"--gtc":"minmax(0, 12fr)"},a={...o?i:r,...e("gg",t?.spacing)};return filterTruthyStyles(a)},getFeatureImageStyle=(t,{enableOrder:o,enableDisplay:r})=>{let i=()=>d(e=>!["bottom-center","left","right","only-feature","inside-bottom","inside-left","inside-right"].includes(a(t?.position,e)||""),"flex"),l=p({position:t?.position}),s={...e("jc",t?.align),...o&&{...l},...r&&{...i()}};return filterTruthyStyles(s)},getGalleryImageStyle=(o,r)=>{let i=h({position:o.position}),l=()=>{let e={},t=r??0;return DEVICES.forEach(r=>{let i=a(o?.position,r),l=["left","right"].includes(i),s=a(o?.spacing,r),n=["inside-left","inside-right"].includes(i),p=F(s),h=`calc(${t}px - ${p})`;e={...e,[r]:l?t+"px":n?h:"auto"}}),e},s=y({shape:o.shape,shapeForBottom:o.shapeForBottom,shapeFor1Col:o.shapeFor1Col,shapeFor2Col:o.shapeFor2Col,shapeForFtOnly:o.shapeForFtOnly,shapeForInsideBottom:o.shapeForInsideBottom??u,shapeForInside:o.shapeForInside??u},o.position),n=m(o.position,s,o?.spacing),p={...e("h",t(l())),...e("jc",o?.align),...i,...n};return filterTruthyStyles(p)},getGalleryGridStyle=(t,o)=>{let r=y({shape:t.shape,shapeForBottom:t.shapeForBottom,shapeFor1Col:t.shapeFor1Col,shapeFor2Col:t.shapeFor2Col,shapeForFtOnly:t.shapeForFtOnly,shapeForInsideBottom:t.shapeForInsideBottom,shapeForInside:t.shapeForInside},t.position),i=()=>{let e=(e,t,o)=>{let r=a(t,o),i=a(e,o),l="slider"!==i&&("bottom-center"===r||"inside-bottom"===r),s=["one-col","two-col"].includes(r||"");return l||s},o=b({shapeByLayout:r}),i={desktop:o.desktop&&e(t.type,t.position,"desktop"),tablet:o.tablet&&e(t.type,t.position,"tablet"),mobile:o.mobile&&e(t.type,t.position,"mobile")};return d(e=>!i[e],"flex")},l={...i(),...e("cg",t?.itemSpacing),...e("rg",t?.itemSpacing),...e("jc",t?.align),...o};return filterTruthyStyles(l)},getGalleryGridItemStyle=a=>{let l=y({shape:a.shape,shapeForBottom:a.shapeForBottom,shapeFor1Col:a.shapeFor1Col,shapeFor2Col:a.shapeFor2Col,shapeForFtOnly:a.shapeForFtOnly,shapeForInsideBottom:a.shapeForInsideBottom,shapeForInside:a.shapeForInside},a.position),s=o(l),n=c({shapeByLayout:l,itemSpacing:a.itemSpacing}),p={"max-width":"100%","outline-color":"var(--g-c-brand, brand)",...e("h",t(s)),...e("w",r(n)),...i({normal:a.corner})};return filterTruthyStyles(p)},getFeatureImageCarouselItemStyle=r=>{let a=o(r.ftShape),l={"max-width":"100%","outline-color":"var(--g-c-brand, brand)",...i({normal:r?.ftCorner}),...e("h",t(a))};return filterTruthyStyles(l)},getGalleryCarouselStyle=e=>{let t=y({shape:e.shape,shapeForBottom:e.shapeForBottom,shapeFor1Col:e.shapeFor1Col,shapeFor2Col:e.shapeFor2Col,shapeForFtOnly:e.shapeForFtOnly,shapeForInsideBottom:e.shapeForInsideBottom,shapeForInside:e.shapeForInside},e.position),o=o=>{let r=a(e?.position,o),i="bottom-center"===r||"inside-bottom"===r,l="inside-left"===r||"inside-right"===r||"left"===r||"right"===r,s=a(t,o);return i||l||!s?.width?"100%":s.width},r={spacing:g(e?.itemSpacing),sizeSetting:{desktop:{width:o("desktop"),height:"100%"},tablet:{width:o("tablet"),height:"100%"},mobile:{width:o("mobile"),height:"100%"}}};return filterTruthyStyles(r)},getGalleryCarouselItemStyle=a=>{let l=y({shape:a.shape,shapeForBottom:a.shapeForBottom,shapeFor1Col:a.shapeFor1Col,shapeFor2Col:a.shapeFor2Col,shapeForFtOnly:a.shapeForFtOnly,shapeForInsideBottom:a.shapeForInsideBottom,shapeForInside:a.shapeForInside},a.position),s=e("minw",r(S({shapeByLayout:l,position:a.position,spacing:a.itemSpacing}))),n=e("maxw",r(S({shapeByLayout:l,position:a.position,spacing:a.itemSpacing}))),p=e("w",r(I({shapeByLayout:l,position:a.position}))),h=e("h",t(o(l))),m={"outline-color":"var(--g-c-brand, brand)",...s,...n,...p,...h,...i({normal:a.corner})};return filterTruthyStyles(m)},getFeaturedImageCarouselStyle=e=>{let t=t=>{let o=a(e.ftShape,t);return o?.width??"100%"},o={playSpeed:e?.ftAnimationSpeed,sizeSetting:{desktop:{width:t("desktop"),height:"auto"},tablet:{width:t("tablet"),height:"auto"},mobile:{width:t("mobile"),height:"auto"}},align:{desktop:a(e?.align,"desktop"),tablet:a(e?.align,"tablet"),mobile:a(e?.align,"mobile")},spacing:{desktop:6,tablet:6,mobile:6}};return filterTruthyStyles(o)},getFeaturedImageOnlyOneImageStyle=({setting:r,options:a})=>{let n=o(r?.ftShape),p={...l("w",s(r?.ftShape,!1,!0),{desktop:"--g-ct-w",tablet:"--g-ct-w",mobile:"--g-ct-w"}),...a?.enableRadius&&i({normal:r?.ftCorner}),...a?.enableHeight&&e("h",t(n))};return filterTruthyStyles(p)};export{getFeatureImageCarouselItemStyle,getFeatureImageStyle,getFeaturedImageCarouselStyle,getFeaturedImageOnlyOneImageStyle,getGalleryCarouselItemStyle,getGalleryCarouselStyle,getGalleryGridItemStyle,getGalleryGridStyle,getGalleryImageStyle,getWrapContainerStyle};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as e,Fragment as t,jsxs as i}from"react/jsx-runtime";let MediaIcon=({contentType:l})=>{let r="VIDEO"==l||"EXTERNAL_VIDEO"==l,h="MODEL_3D"==l;return e(t,{children:(r||h)&&i("div",{className:"gp-absolute gp-bottom-0 gp-right-0 gp-pb-[15px] gp-pr-[15px]",children:[r&&i("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("rect",{opacity:"0.9",width:"24",height:"24",rx:"3",fill:"#212121"}),e("path",{d:"M17.6869 12.2646L17.6868 12.2646L6.78379 18.4464C6.78378 18.4464 6.78376 18.4464 6.78374 18.4464C6.52931 18.5903 6.1665 18.4179 6.1665 18.0416V5.95844C6.1665 5.58218 6.52917 5.40981 6.7836 5.55354C6.78366 5.55357 6.78373 5.55361 6.78379 5.55365L17.6868 11.7354L17.6869 11.7354C17.8819 11.846 17.8819 12.154 17.6869 12.2646Z",stroke:"#F9F9F9",strokeMiterlimit:"10"})]}),h&&i("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("rect",{opacity:"0.9",width:"24",height:"24",rx:"3",fill:"#212121"}),e("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.7441 4.57034C11.9017 4.47655 12.098 4.47655 12.2555 4.57034L18.5889 8.33957C18.7404 8.42971 18.8332 8.59296 18.8332 8.76923V15.2308C18.8332 15.407 18.7404 15.5703 18.5889 15.6604L12.2555 19.4297C12.098 19.5234 11.9017 19.5234 11.7441 19.4297L5.41079 15.6604C5.25932 15.5703 5.1665 15.407 5.1665 15.2308V8.76923C5.1665 8.59296 5.25932 8.42971 5.41079 8.33957L11.7441 4.57034ZM6.1665 9.64865V14.9465L11.4998 18.1206V12.8227L6.1665 9.64865ZM12.4998 12.8227V18.1206L17.8332 14.9465V9.64865L12.4998 12.8227ZM17.3555 8.76923L11.9998 11.9566L6.64417 8.76923L11.9998 5.58185L17.3555 8.76923Z",fill:"#F9F9F9"})]})]})})};export{MediaIcon as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{memo as o,useMemo as r}from"react";import"@gem-sdk/core";import"next/link";import i from"../../../../../video/components/Video.js";let ProductFeatureVideo=o=>{let{url:u,aspectRatio:d}=o,m=r(()=>u.includes("youtu.be")?"youtube":u.includes("vimeo")?"vimeo":"html5",[u]);return e(t,{children:e(i,{setting:{type:m,html5Url:u,youtubeUrl:u,vimeoUrl:u,preload:!0,controls:!0,aspectRatio:d}})})};var ProductFeatureVideo$1=o(ProductFeatureVideo);export{ProductFeatureVideo$1 as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{memo as r,forwardRef as t,useRef as a,useImperativeHandle as s}from"react";import{useCurrentDevice as m,getResponsiveValueByScreen as i,makeStyleResponsive as l}from"@gem-sdk/core";import{handleMouseMove as n,handleMouseOut as u}from"../../common/hoverAction.js";import{getProductImagesStyles as d}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as c}from"../../composables/getProductImagesClassName.js";import{getProductImagesAttr as g}from"../../composables/getProductImagesAttr.js";import{createStyle as p}from"@gem-sdk/system";import{getFeaturedImageOnlyOneImageStyle as f}from"../../common/styles.js";import h from"../../../../../carousel-v3/components/root/Carousel.js";import C from"../../../../../carousel-v3/components/item/CarouselItem.js";import v from"./ProductFeaturedImageOnly.js";import{useProductFeaturedImageCarousel as I}from"../../hooks/useProductFeaturedImageCarousel.js";let ProductFeaturedImageCarousel=t((r,t)=>{let{productImages:j,imgRef:w,onHandleClick:y,onClickArrow:P,onHandleLoaded:b,onHandleUpdateActiveIndex:k,swiperUpdateTrigger:M,builderPropUID:S,builderPropsClass:x,children:A,parentUid:F,...H}=r,N=a(null),{ref:O,imageActive:R,imageActiveIndex:B,imageShowWhenHover:W,enableOpenLightBox:$,filteredProductImages:L,isRenderFeatureCarousel:T,genRandomKey:D,getAspectRatioFinal:q,emitUpdateActiveIndex:z}=I(r);s(t,()=>({getSwiper:()=>N.current?.getSwiper()||null}));let E=m(),{galleryItemClasses:G,featureImageOnlyOneImageClasses:J}=c(H),{featuredImageCarouselStyle:K,featureImageCarouselItemStyle:Q}=d(H),U=p({...f({setting:H,options:{enableRadius:!0,enableHeight:!0}})}),{featuredImageCarouselSettingAttrs:V}=g(H);return e("div",{ref:O,"data-slot":"children",className:"product-feature-image",children:T?o(h,{ref:N,parentClass:x,elmRef:w,setting:V,styles:K,builderProps:{uid:S},isHiddenArrowWhenDisabled:!0,onLoaded:e=>b&&b(e),onChangeActive:e=>z(e),onClickArrow:()=>P&&P(D()),moveToIdx:B,disableMarginAuto:!0,thumbsSwiper:`#gp-carousel-${S}-carousel`,onHandleChangeSlideByInteraction:e=>{let o=L?.length??0,r=e>=o?0:e;y(L?.[r]?.id??"",$)},children:[A,L?.map(o=>e(C,{contentType:"productImage",className:G("gp-ft-image-item !gp-min-w-full !gp-max-w-full"),onClickItem:()=>{let e=i(H?.ftClickOpenLightBox,E);"none"!==e&&y(o?.id??"",$)},style:Q,onMouseMove:e=>n(e,H),onMouseOut:e=>u(e),children:e(v,{image:o,imageShowWhenHover:W,setting:H,aspectRatio:q()})},o?.id))]}):e("div",{ref:w,className:"gp-flex gp-w-full",style:{...l("jc",H?.align)},"data-id":S,children:e("div",{"aria-hidden":"true",className:J,style:U,onMouseMove:e=>n(e,H),onMouseOut:e=>u(e),onBlur:()=>void 0,onClick:()=>{y(R?.id??"",$)},children:e(v,{image:R,imageShowWhenHover:W,setting:H,aspectRatio:q(R)})})})})});var ProductFeaturedImageCarousel$1=r(ProductFeaturedImageCarousel);export{ProductFeaturedImageCarousel$1 as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import{useProduct as o,useCurrentDevice as a,useShopStore as c,useRenderMode as i,getResponsiveValueByScreen as n,cls as l,makeStyle as s}from"@gem-sdk/core";import{memo as h,useMemo as f}from"react";import m from"../../../../../image/components/NextImage.js";import p from"./MediaIcon.js";import{isFeatureMedia as d,getZoomImageClass as g,getZoomLenClass as u}from"../../common/productFeaturedImage.js";import y from"./ProductFeatureVideo.js";let defaultImage={src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:480,height:480,alt:"no image",contentType:"IMAGE"},ProductFeaturedImageOnly=({image:h,imageShowWhenHover:v,setting:E,aspectRatio:I})=>{let T=o(),b=a(),w=c(e=>e.storefrontUrl),{isEditMode:O,isPreviewSharePageMode:x}=i(),L=f(()=>"none"!==n(E.ftClickOpenLightBox,b),[b,E.ftClickOpenLightBox]),j=f(()=>!O&&["VIDEO","EXTERNAL_VIDEO"].includes(h?.contentType||"")&&!L,[O,h?.contentType,L]),F=f(()=>h?{...h,src:j?h.src:d(h?.contentType)?h?.previewImage:h.src}:defaultImage,[h,j]),N=f(()=>{if(x)return"javascript:void(0)";if(!w)return"#";let e=new URL(w);return T?`${e.protocol}//${e.host}/products/${T.handle}`:"#"},[w,T,x]),$=t=>"product-link"===n(E.ftClickOpenLightBox,b)?e("a",{title:T?.title,href:N,className:"gp-w-full",children:t}):t,k=f(()=>E?.hoverEffect!=="none"&&!d(F?.contentType),[F?.contentType,E?.hoverEffect]),P=f(()=>E?.hoverEffect=="zoom"&&E?.zoomType=="glasses"&&!d(F?.contentType),[F?.contentType,E?.hoverEffect,E?.zoomType]);return e(t,{children:$(e(t,{children:j?e(y,{type:F?.contentType,url:F.src??"",aspectRatio:I}):r(t,{children:[e(m,{draggable:"false",src:F.src,width:F?.width,height:F?.height,alt:F?.alt,setting:{aspectRatio:I,layout:E?.ftLayout},priority:E?.preload,className:"featured-image-only",style:{width:"100%",height:"100%",cursor:"pointer"}}),e(p,{contentType:F?.contentType??""}),k&&e(m,{draggable:"false",src:E?.hoverEffect==="other"?v?.src:F.src,width:E?.hoverEffect==="other"?v?.width:F.width,height:E?.hoverEffect==="other"?v?.height:F.height,alt:E?.hoverEffect==="other"?v?.alt:F.alt,setting:{layout:E.ftLayout,aspectRatio:I},style:{width:"100%",height:"100%"},className:l("hover-image featured-image-only !gp-max-w-none",g()),priority:E?.preload}),P&&e("div",{className:l(u(),"room-len"),style:{...s({bgi:`url("${F?.src}")`})}})]})}))})};var ProductFeaturedImageOnly$1=h(ProductFeaturedImageOnly);export{ProductFeaturedImageOnly$1 as default};
@@ -0,0 +1,2 @@
1
+ import{jsx as e,Fragment as o,jsxs as t}from"react/jsx-runtime";import{useCurrentDevice as r,cls as i,getResponsiveValueByScreen as a,makeStyle as l}from"@gem-sdk/core";import{memo as m}from"react";import{getAspectRatio as s}from"../../common/common.js";import c from"../../../../../image/components/NextImage.js";import d from"../lightbox/ButtonOpenLightBox.js";import n from"./MediaIcon.js";import{isFeatureMedia as g,getZoomImageClass as p,getZoomLenClass as y}from"../../common/productFeaturedImage.js";import{handleMouseMove as h,handleMouseOut as u}from"../../common/hoverAction.js";import{getProductImagesClassName as f}from"../../composables/getProductImagesClassName.js";import{getProductImagesStyles as v}from"../../composables/getProductImagesStyles.js";import{useProductGalleryGrid as j}from"../../hooks/useProductGalleryGrid.js";let ProductGalleryGrid=m=>{let{builderPropUID:G,productImages:w,onHandleClick:T,activeIndexFromFeatureImage:x,children:P,isHiddenInteraction:b,...I}=m,{isDisplay:N,shapeByLayout:$,imageActiveIndex:k,enableOpenLightBox:E,isEnableBorderActive:M,filteredProductImages:z}=j(m),B=r(),{galleryGridWrapperClasses:H,galleryItemClasses:O}=f(I),{galleryGridStyles:Z,galleryGridItemStyles:A}=v(I);return e(o,{children:N&&t("div",{"data-slot":"children","data-id":G,className:H,style:Z,"gp-data-hidden":`${b}`,children:[z?.map((o,r)=>{let m=r===k,f=g(o.contentType)?o.previewImage:o.src;return t("div",{"aria-hidden":!0,className:O(`gp-gallery-image-item gem-slider-item-${G}
2
+ ${m&&M?"gem-slider-item-active":""}`),onClick:()=>T(o?.id||"",E),style:A,onMouseMove:e=>h(e,{hoverEffect:I.galleryHoverEffect,zoom:I.galleryZoom,zoomType:I.galleryZoomType}),onMouseOut:e=>u(e),"data-border":m&&I?.borderActive?"active":"deactive",children:[e(c,{src:f,width:o?.width,height:o?.height,alt:o?.alt,setting:{aspectRatio:s($),layout:I?.layout},style:{width:"100%",height:"100%"}},o?.id),e(n,{contentType:o?.contentType||""}),I?.galleryHoverEffect!=="none"&&!g(o?.contentType)&&e(c,{src:f,width:o?.width,height:o?.height,alt:o?.alt,setting:{layout:I.layout,aspectRatio:s($)},className:i("hover-image !gp-max-w-none",p())}),I?.galleryHoverEffect=="zoom"&&I?.galleryZoomType=="glasses"&&["one-col","two-col"].includes(a(I.position,B)||"")&&!g(o?.contentType)&&e("div",{className:i(y(),"room-len"),style:{...l({bgi:`url("${o?.src}")`})}}),a(I?.clickOpenLightBox,B)&&e(d,{})]},o?.id)}),P]})})};var ProductGalleryGrid$1=m(ProductGalleryGrid);export{ProductGalleryGrid$1 as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,Fragment as r,jsxs as t}from"react/jsx-runtime";import{useCurrentDevice as i,cls as o}from"@gem-sdk/core";import{useRef as a,useCallback as l}from"react";import s from"../gallery-carousel/GalleryCarousel.js";import d from"../child/ProductGalleryGrid.js";import m from"../child/ProductFeaturedImageCarousel.js";import{getProductImagesStyles as u}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as n}from"../../composables/getProductImagesClassName.js";import{useFeatureImageWithGallery as p}from"../../hooks/useFeatureImageWithGallery.js";let FeatureImageWithGallery=c=>{let{setting:g,styles:I,builderProps:f,gallery:h,onHandleClickImage:y,priorityFeatureImage:b,children:C,noDataChildren:F}=c,P=a(null),v=i(),j=l(e=>{if(!P.current)return;let r=P.current.getSwiper();r&&r.thumbs.swiper?.realIndex===void 0&&e&&(r.thumbs.swiper=e,r.thumbs.init(),r.thumbs.update(!0),r.update())},[]),k={...g,...I},{isShowCarousel:w,featureImageHeight:x,featureWrapperImage:G,onClickFeatureArrow:H,activeIndexFromFeatureImage:N,setOnClickFeatureArrow:S,onHandleLoadedFeatureImage:U,setActiveIndexFromFeatureImage:A}=p(c);if(h?.[0]?.id==="noImageError")return e(r,{children:F});let{ftImageGalleryClasses:D,imageGalleryWrapperClasses:W}=n(c),{wrapperFeaturedImageStyle:R,featureImageStyle:$,galleryImageStyle:E}=u(k,{gallery:h,featureImageHeight:x}),J=JSON.stringify(k?.position)+v+w;return t("div",{className:o("gp-grid gp-w-full gp-relative"),style:R,children:[e("div",{className:D,style:$,children:e(m,{ref:P,imgRef:G,productImages:h,...k,onHandleClick:(e,r)=>y(e||"",r),onHandleLoaded:U,onHandleUpdateActiveIndex:A,onClickArrow:e=>S(e),builderPropUID:f?.uid,builderPropsClass:`gp-product-images-feature-${f?.uid}`,children:C})}),h.length>1&&e("div",{className:W,style:E,children:w?e(s,{productImages:h,position:k?.position,...k,builderPropUID:f?.uid,onHandleClick:(e,r)=>y(e||"",r),onSwiperReady:j,activeIndexFormFeatureImage:N,priorityFeatureImage:b,onClickFeatureArrow:H,builderPropsClass:`gp-product-images-gallery-${f?.uid}`}):e(d,{productImages:h,...k,builderPropUID:f?.uid,onHandleClick:(e,r)=>y(e||"",r),activeIndexFromFeatureImage:N,isHiddenInteraction:!0})})]},J)};export{FeatureImageWithGallery as default};
@@ -0,0 +1,118 @@
1
+ import{makeStyleResponsive as e,template as a,cls as i}from"@gem-sdk/core";import{getAspectRatio as t,getPaddingBottomByShapeSetting as r,getSrcImage as s}from"../../common/common.js";import{checkRenderFeaturedCarousel as d,getVideoHeight as o,getZoomImageClass as u,getZoomLenClass as m}from"../../common/productFeaturedImage.js";import l from"../../../../../video/components/HTML5Embed.liquid.js";import g from"../../../../../image/components/Modal3d.liquid.js";import p from"../../../../../image/components/NextImage.liquid.js";import n from"../../../../../image/components/Video.liquid.js";import{getStyleOfObject as c}from"../../../../helpers/function.js";import{getProductImagesStyles as f}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as h}from"../../composables/getProductImagesClassName.js";import{getProductImagesAttr as y}from"../../composables/getProductImagesAttr.js";import{LiquidIf as M,LiquidFor as $,Liquid as _,If as b,createStyle as v}from"@gem-sdk/system";import w from"../../../../../carousel-v3/components/root/Carousel.liquid.js";import I from"../../../../../carousel-v3/components/item/CarouselItem.liquid.js";let FeatureImageWithGallery=({builderPropUID:x,children:q,enableLazyLoadImage:j,...z})=>{let{featuredImageCarouselClasses:S,galleryItemClasses:L,featuredCarouselItemClasses:R}=h(z),{featuredImageCarouselStyle:W,featureImageStyle:P,featureImageCarouselOnlyOneImageStyle:C,featureImageOnlyOneImageStyle:T,featureImageCarouselItemStyle:N}=f(z),{featuredImageCarouselSettingAttrs:k}=y(z),E=t(z.ftShape),O=()=>`
2
+ {% case featureMedia.media_type %}
3
+ {% when 'image' %}
4
+ ${F()}
5
+ {% when 'external_video' %}
6
+ {% assign mediaSourceVideo = featureMedia | external_video_url %}
7
+ ${D()}
8
+ {% when 'video' %}
9
+ {% assign mediaSourceVideo = featureMedia.sources.last.url %}
10
+ ${V()}
11
+ {% when 'model' %}
12
+ ${A()}
13
+ {% else %}
14
+ ${G()}
15
+ {% endcase %}
16
+ `,A=()=>g({src:M("featureMedia.sources.first.url contains '.glb'","{{ featureMedia.sources.first.url }}","{{featureMedia.sources.last.url}}"),alt:"{{featureMedia.preview_image.alt}}",poster:"{{featureMedia.preview_image.src | product_img_url: '1024x1024'}}",cameraControls:!0,arStatus:"not-presenting",style:{width:"100%"},aspectRatio:E}),D=()=>n({src:"{{mediaSourceVideo}}",alt:"{{featureMedia.alt | escape}}",autoplay:!1,allowfullscreen:!0,controls:!0,style:{width:"100%",height:"100%"},aspectRatio:E}),V=()=>{let a=v({...o(z?.ftLayout),...e("objf",z?.ftLayout)}),i=v({...o(z?.ftLayout)});return l({src:"{{mediaSourceVideo}}",title:"{{featureMedia.alt | escape}}",autoplay:!1,controls:!0,thumbnail:"{{featureMedia.preview_image.src | product_img_url: '1024x1024'}}",isCheckLoaded:!0,wrapperStyles:i,style:{width:"100%","max-height":"100%",...a},className:"gp-invisible"})},F=()=>a`
17
+ ${H(i("gp-w-full gp-transition-opacity",{"group-hover:gp-opacity-0":"other"==z.hoverEffect},"{{shouldHidden}}"))}
18
+ ${b(z?.hoverEffect!=="none",`<div class="${i("zoom-element !gp-max-w-none",u())}">
19
+ ${H("image-zoom",!0)}
20
+ </div>`," ")}
21
+ ${b(z?.hoverEffect=="zoom"&&z?.zoomType=="glasses",`<div class="${i("zoom-lens-element",m())}" style="opacity: 0; background-image: url('{{ featureMedia.src | img_url: "1024x1024"}}')"></div>`," ")}
22
+ `,H=(e,i)=>a`
23
+ {% assign src = featureMedia.src %}
24
+ ${b(i&&"other"==z.hoverEffect,`{% assign media_length = product.media | size %}
25
+ {% assign other_image_index = ${z.otherImage} | plus: 0 %}
26
+ {% if other_image_index >= media_length %}
27
+ {% assign other_image_index = media_length | minus: 1 %}
28
+ {% endif %}
29
+ {% assign otherImage = product.media[other_image_index] %}
30
+ ${M("otherImage.media_type != 'image'","{% assign src = otherImage.preview_image.src %}","{% assign src = otherImage.src %}")}
31
+ `)}
32
+ ${p({srcIsLiquidCode:!0,src:M("src != null",s("src"),"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif"),id:M("featureMedia != null","{{featureMedia.id}}"),width:"{{featureMedia.width}}",height:"{{featureMedia.height}}",alt:"{{featureMedia.alt | escape}}",srcset:`${s("src")}`,baseSrc:"{{src | image_url}}",sizes:"(max-width: 768px) 50vw, 100vw",setting:{layout:z?.ftLayout,aspectRatio:E,qualityType:z?.qualityType,qualityPercent:z?.qualityPercent},priority:z?.preload,className:`gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 featured-image-only gp-cursor-pointer !gp-rounded-none ${e}`,enableLazyLoadImage:j})}`,G=()=>a`
33
+ ${p({srcIsLiquidCode:!0,src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",alt:"No Image",sizes:"(max-width: 768px) 50vw, 100vw",setting:{layout:z?.ftLayout,aspectRatio:E,qualityType:z?.qualityType,qualityPercent:z?.qualityPercent},priority:z?.preload,className:"gp-w-full gp-h-full gp-absolute gp-top-0 gp-left-0 featured-image-only gp-cursor-pointer !gp-rounded-none",enableLazyLoadImage:j})}`,J=r(z.ftShape),B=a=>`
34
+ ${_(`{% assign productImageWidth = 0 %}
35
+ {% case featureMedia.media_type %}
36
+ {% when 'image' %}
37
+ {% assign productImageWidth = featureMedia.width %}
38
+ {% else %}
39
+ {% assign productImageWidth = featureMedia.preview_image.width %}
40
+ {% endcase %}`)}
41
+ ${I({id:"{{section.id}}-{{imageID}}",contentType:"productImage",className:`${L(`gp-ft-image-item !gp-min-w-full !gp-max-w-full' ${a}`)}`,parentId:`ft-${x}-{{section.id}}-{{product.id}}`,style:N,customStyle:{width:"{{productImageWidth}}px"},children:`
42
+ <div
43
+ class="gp-w-full gp-relative ${M("featureMedia == null or featureMedia.media_type == 'image'","{{ 'gp-h-0' }}","{{ 'gp-h-full !gp-pb-0' }}")}"
44
+ style="${c(e("pb",J))} ${M("featureMedia.media_type == 'video' or featureMedia.media_type == 'external_video'","{{ 'display: flex; align-items: center; justify-content: center' }}")}"
45
+ >
46
+ ${O()}
47
+ </div>
48
+ `})}`,K=d(z),Q="gp-featured-image-wrapper",U=M("product.media.size > 0",`${q||""} {% assign largestRatio = 0 %}
49
+ ${$("featureMedia in product.media",`
50
+ {% assign height = featureMedia.height | times: 1.0 %}
51
+ {% assign width = featureMedia.width | times: 1.0 %}
52
+ {% assign ratio = height | divided_by: width %}
53
+ ${M("ratio > largestRatio","{% assign largestRatio = ratio %}")}
54
+ `)}
55
+ ${$("featureMedia in product.media",`${M("featureMedia.media_type == 'image'",`${$("image in product.images",M("image.src == featureMedia.src","{% assign imageID = image.id %}{% break %}"))}`,"{% assign imageID = '' %}")}
56
+ ${B()}`)}
57
+ `,p({src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",id:"noImageError",width:"480",height:"480",alt:"no image",priority:z?.preload,setting:{layout:z?.ftLayout,aspectRatio:E,qualityType:z?.qualityType,qualityPercent:z?.qualityPercent},style:{height:"100%"},className:"gp-w-full featured-image-only !gp-rounded-none",customLazyload:!0,enableLazyLoadImage:j})),X=()=>`
58
+ ${w({builderProps:{uid:x},rootId:`ft-${x}-{{section.id}}-{{product.id}}`,conditionAppendJs:"product.media.size > 1",wrapperClass:Q,rootClass:`${S}`,rootAttrs:{type:"gp-feature-image-carousel","product-id":"{{product.id}}","product-media":"{{product.media.size}}"},isHiddenArrowWhenDisabled:!0,setting:k,rootStyles:P,styles:W,style:{playSpeed:600},disableMarginAuto:!0,children:U})}
59
+ `,Y=()=>{switch(z?.preDisplay){case"1st-images":return`
60
+ {% assign featureMedia = product.media.first %}
61
+ `;case"1st-3d-mode":return $("media in product.media",M("media.media_type == 'model'","{% assign featureMedia = media %}{% break %}"));case"1st-video":return $("media in product.media",M("media.media_type == 'video' or media.media_type == 'external_video'","{% assign featureMedia = media %}{% break %}"));default:return`
62
+ {% assign featureMedia = variant.featured_media %}
63
+ {% unless featureMedia %}
64
+ {% assign featureMedia = product.featured_media %}
65
+ {% endunless %}
66
+ `}},Z=()=>_(`
67
+ {% assign featureMedia = variant.featured_media %}
68
+ {% unless featureMedia %}
69
+ {% assign featureMedia = product.featured_media %}
70
+ {% endunless %}
71
+ ${M("product.media.size > 1",Y())}
72
+ {% assign largestRatio = 0 %}
73
+ {% assign height = featureMedia.height | times: 1.0 %}
74
+ {% assign width = featureMedia.width | times: 1.0 %}
75
+ {% assign ratio = height | divided_by: width %}
76
+ ${M("ratio > largestRatio","{% assign largestRatio = ratio %}")}
77
+ {% assign productImageWidth = 0 %}
78
+ {% case featureMedia.media_type %}
79
+ {% when 'image' %}
80
+ {% assign productImageWidth = featureMedia.width %}
81
+ {% else %}
82
+ {% assign productImageWidth = featureMedia.preview_image.width %}
83
+ {% endcase %}
84
+ ${M("featureMedia == null","{% assign productImageWidth = 1600 %}")}
85
+ <div
86
+ class='gp-feature-image-carousel gp-feature-image-only'
87
+ style="${c(P)}"
88
+ >
89
+ <div
90
+ class="gp-relative"
91
+ style="${c(T)}"
92
+ >
93
+ ${q}
94
+ <div
95
+ type="gp-feature-image-only"
96
+ product-id="{{product.id}}"
97
+ product-media="{{product.media.size}}"
98
+ class="${R(Q)}"
99
+ style="${c(C)}"
100
+ >
101
+ <div
102
+ class="gp-w-full gp-relative ${M("featureMedia == null or featureMedia.media_type == 'image'","{{ 'gp-h-0' }}","{{ 'gp-h-full !gp-pb-0' }}")}"
103
+ style="${c(e("pb",J))} ${M("featureMedia.media_type == 'video' or featureMedia.media_type == 'external_video'","{{ 'display: flex; align-items: center; justify-content: center' }}")}"
104
+ >
105
+ ${O()}
106
+ </div>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ `);return _(`
111
+ {% capture featureImageOnlyOne %}
112
+ ${Z()}
113
+ {% endcapture %}
114
+ ${M("product.media.size > 1",`
115
+ ${b(K,X()," ")}
116
+ ${b(!K,"{{ featureImageOnlyOne }}"," ")}
117
+ `,"{{ featureImageOnlyOne }}")}
118
+ `)};export{FeatureImageWithGallery as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as e,Fragment as r,jsxs as t}from"react/jsx-runtime";import a from"../child/ProductFeaturedImageCarousel.js";import{getProductImagesClassName as o}from"../../composables/getProductImagesClassName.js";import{getProductImagesStyles as l}from"../../composables/getProductImagesStyles.js";let OnlyFeatureImage=s=>{let{setting:m,styles:d,gallery:i,builderProps:u,noDataChildren:c,onHandleClickImage:g,children:p}=s,n={...m,...d};if(i?.[0]?.id==="noImageError")return e(r,{children:c});let{featureImageOnlyOneImageClasses:I}=o(n),{featureImageStyle:f}=l(n);return t("div",{className:I,style:f,children:[e(a,{productImages:i,...n,onHandleClick:(e,r)=>{g(e||"",r)},builderPropUID:u?.uid,builderPropsClass:`gp-product-images-gallery-${u?.uid}`}),p]})};export{OnlyFeatureImage as default};
@@ -0,0 +1 @@
1
+ import{jsx as e,Fragment as o,jsxs as t}from"react/jsx-runtime";import{useCurrentDevice as r}from"@gem-sdk/core";import{getAspectRatio as s}from"../../common/common.js";import{getEditorMinHeightClass as m}from"../../common/productGallery.js";import{getProductImagesClassName as a}from"../../composables/getProductImagesClassName.js";import{getProductImagesStyles as i}from"../../composables/getProductImagesStyles.js";import{getProductImagesAttr as l}from"../../composables/getProductImagesAttr.js";import{isFeatureMedia as n}from"../../common/productFeaturedImage.js";import c from"../child/MediaIcon.js";import p from"../lightbox/ButtonOpenLightBox.js";import d from"../../../../../image/components/NextImage.js";import u from"../../../../../carousel-v3/components/root/Carousel.js";import g from"../../../../../carousel-v3/components/item/CarouselItem.js";import{useGalleryCarousel as y}from"../../hooks/useGalleryCarousel.js";import{If as h}from"@gem-sdk/system";let ProductGalleryCarousel=f=>{let{builderPropUID:j,productImages:C,onSwiperReady:I,activeIndexFormFeatureImage:b,onClickFeatureArrow:P,builderPropsClass:T,arrow:w,priorityFeatureImage:x,...k}=f,v=r(),{galleryItemClasses:q}=a(k),{galleryCarouselSettingAttrs:G}=l(k),{galleryCarouselStyle:N,galleryCarouselItemStyle:A}=i(k),{isDisplay:S,shapeByLayout:B,isShowButtonLightbox:H,filteredProductImages:L,handleClickCarouselItem:M,safeMoveToIdx:R,setSliderReady:$}=y(f);return e(o,{children:S&&e(u,{parentClass:T,rootClass:T,setting:G,styles:N,slidesClass:m(v,k.position,k.navigationPosition),builderProps:{uid:`${j}-carousel`},moveToIdx:R,isHiddenArrowWhenDisabled:!0,disableMarginAuto:!0,isEnableCheckHasScrollableContent:!0,onLoaded:e=>{e&&$(!0)},onSwiperReady:I,children:L?.map(o=>{let r=n(o.contentType)?o.previewImage:o.src;return t(g,{contentType:"productImage",className:q(`gp-gallery-image-item gem-slider-item-${j}`),onClickItem:()=>M(o?.id),style:A,"data-id":o?.id,children:[e(d,{draggable:"false",src:r,width:o?.width,height:o?.height,alt:o?.alt,setting:{aspectRatio:s(B),layout:k?.layout,qualityPercent:k?.qualityPercent,qualityType:k?.qualityType},style:{width:"100%",height:"100%",cursor:"pointer"},className:"product-list-image"}),e(c,{contentType:o?.contentType||""}),h(H,e(p,{}))]},o?.id)})})})};export{ProductGalleryCarousel as default};
@@ -0,0 +1,46 @@
1
+ import{template as e,getResponsiveValueByScreen as t}from"@gem-sdk/core";import i from"../../../../../image/components/NextImage.liquid.js";import{getDisplayStyle as o,getAspectRatio as r,getSrcImage as s}from"../../common/common.js";import{getShapeByLayout as a,getMinHeightByPosition as p,checkDisplayGalleryByWidth as l,getZoomDisplay as d,getCarouselVerticalConfigByPosition as m}from"../../common/productGallery.js";import{getStyleOfObject as g}from"../../../../helpers/function.js";import{getProductImagesStyles as n}from"../../composables/getProductImagesStyles.js";import{getProductImagesClassName as c}from"../../composables/getProductImagesClassName.js";import{getProductImagesAttr as u}from"../../composables/getProductImagesAttr.js";import{LiquidIf as C,LiquidFor as h}from"@gem-sdk/system";import y from"../../../../../carousel-v3/components/root/Carousel.liquid.js";import v from"../../../../../carousel-v3/components/item/CarouselItem.liquid.js";let ProductGalleryCarousel=({builderPropUID:b,children:f,enableLazyLoadImage:w,...L})=>{let{featuredImageGalleryClasses:F,galleryItemClasses:x}=c(L),{galleryCarouselSettingAttrs:$}=u(L),{galleryCarouselStyle:I,galleryCarouselItemStyle:_}=n(L),k=()=>{let e=(e,i,o)=>{let r=t(i,o),s=t(e,o),a="slider"===s&&("bottom-center"===r||"inside-bottom"===r),p=["left","right","inside-left","inside-right"].includes(r??"");return p||a},i=l({shapeByLayout:j}),r={desktop:i.desktop&&e(L.type,L.position,"desktop"),tablet:i.tablet&&e(L.type,L.position,"tablet"),mobile:i.mobile&&e(L.type,L.position,"mobile")};return o(e=>!r[e],"flex")},j=a({shape:L.shape,shapeForBottom:L.shapeForBottom,shapeFor1Col:L.shapeFor1Col,shapeFor2Col:L.shapeFor2Col,shapeForFtOnly:L.shapeForFtOnly,shapeForInsideBottom:L.shapeForInsideBottom,shapeForInside:L.shapeForInside},L.position),V=(t,o)=>e`${i({srcIsLiquidCode:!0,src:`${s("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",setting:t,baseSrc:"{{media.preview_image | image_url}}",style:o,className:"!gp-rounded-none gp-w-full gp-h-full gp-top-0 gp-left-0 gp-cursor-pointer",enableLazyLoadImage:w})}`,M=e=>`
2
+ ${C("media.media_type == 'video'","{% assign mediaSourceUrl = media.sources.last.url %}")}
3
+ ${C("media.media_type == 'external_video'","{% assign mediaSourceUrl = media | external_video_url %}")}
4
+ ${C("media.media_type == 'image'","{% assign mediaSourceUrl = media.src %}")}
5
+ ${v({id:"{{imageID}}",contentType:"productImage",className:`${x(`gp-gallery-image-item ${e}`)}`,parentId:`${b}-{{product.id}}`,builderAttrs:{"data-outline":e?"active":"deactive"},style:_,children:`
6
+ <div class="gp-w-full gp-relative gp-h-full"
7
+
8
+ >
9
+ ${V({aspectRatio:r(j),layout:L?.layout,qualityPercent:L?.qualityPercent,qualityType:L?.qualityType},{width:"100%",height:"100%",cursor:"pointer"})}
10
+
11
+ ${C("media.media_type == 'video' or media.media_type == 'external_video'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0" >
12
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
13
+ <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
14
+ <path d="M17.6869 12.2646L17.6868 12.2646L6.78379 18.4464C6.78378 18.4464 6.78376 18.4464 6.78374 18.4464C6.52931 18.5903 6.1665 18.4179 6.1665 18.0416V5.95844C6.1665 5.58218 6.52917 5.40981 6.7836 5.55354C6.78366 5.55357 6.78373 5.55361 6.78379 5.55365L17.6868 11.7354L17.6869 11.7354C17.8819 11.846 17.8819 12.154 17.6869 12.2646Z" stroke="#F9F9F9" stroke-miterlimit="10"/>
15
+ </svg>
16
+ </div>`)}
17
+ ${C("media.media_type == 'model'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0">
18
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
19
+ <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
20
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M11.7441 4.57034C11.9017 4.47655 12.098 4.47655 12.2555 4.57034L18.5889 8.33957C18.7404 8.42971 18.8332 8.59296 18.8332 8.76923V15.2308C18.8332 15.407 18.7404 15.5703 18.5889 15.6604L12.2555 19.4297C12.098 19.5234 11.9017 19.5234 11.7441 19.4297L5.41079 15.6604C5.25932 15.5703 5.1665 15.407 5.1665 15.2308V8.76923C5.1665 8.59296 5.25932 8.42971 5.41079 8.33957L11.7441 4.57034ZM6.1665 9.64865V14.9465L11.4998 18.1206V12.8227L6.1665 9.64865ZM12.4998 12.8227V18.1206L17.8332 14.9465V9.64865L12.4998 12.8227ZM17.3555 8.76923L11.9998 11.9566L6.64417 8.76923L11.9998 5.58185L17.3555 8.76923Z" fill="#F9F9F9"/>
21
+ </svg>
22
+ </div>`)}
23
+
24
+ <div class="gp-absolute gp-inset-0 gp-flex gp-cursor-pointer gp-items-center gp-justify-center gp-bg-black/50 gp-opacity-0 gp-transition-opacity gp-duration-100 group-hover:gp-opacity-100"
25
+ style="${g(d(L?.clickOpenLightBox))}"
26
+ >
27
+ <svg
28
+ height="100%"
29
+ width="100%"
30
+ xmlns="http://www.w3.org/2000/svg"
31
+ class="gp-h-6 gp-w-6"
32
+ viewBox="0 0 512 512"
33
+ color="#fff"
34
+ ><path
35
+ fill="currentColor"
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ d="M62.2467 345.253C43.7072 326.714 29.1474 305.116 18.9714 281.057C8.42839 256.13 3.08301 229.671 3.08301 202.418C3.08301 175.165 8.43012 148.707 18.974 123.78C29.15 99.7213 43.7098 78.123 62.2485 59.5834C80.788 41.0439 102.386 26.4841 126.445 16.3081C151.372 5.76422 177.831 0.417969 205.084 0.417969C232.337 0.417969 258.794 5.76421 283.722 16.3064C307.78 26.4823 329.379 41.0422 347.918 59.5817C366.458 78.1212 381.017 99.7196 391.194 123.778C401.737 148.706 407.083 175.163 407.083 202.417C407.083 229.671 401.737 256.129 391.194 281.056C388.406 287.648 385.277 294.048 381.839 300.257L493.397 411.815C514.091 432.511 514.091 466.187 493.395 486.883L484.272 496.006C474.245 506.032 460.915 511.553 446.738 511.553C432.559 511.553 419.228 506.032 409.202 496.006L296.022 382.824C291.996 384.854 287.898 386.762 283.721 388.528C258.794 399.073 232.336 404.419 205.082 404.419C177.828 404.419 151.371 399.071 126.443 388.528C102.385 378.352 80.7863 363.793 62.2467 345.253ZM301.699 336.166C313.928 327.317 324.896 316.835 334.282 305.034C342.149 295.142 348.9 284.325 354.355 272.775C364.433 251.432 370.076 227.586 370.076 202.419C370.076 111.296 296.206 37.4253 205.083 37.4253C113.96 37.4253 40.0895 111.294 40.0895 202.418C40.0895 293.541 113.96 367.411 205.084 367.411C227.413 367.411 248.701 362.967 268.126 354.928C280.091 349.976 291.347 343.658 301.699 336.166ZM467.229 460.716C473.507 454.439 473.507 444.26 467.229 437.982L360.595 331.348C356.601 336.153 352.378 340.794 347.919 345.253C341.671 351.502 335.068 357.286 328.147 362.615L435.371 469.839C438.511 472.977 442.624 474.547 446.739 474.547C450.853 474.547 454.967 472.978 458.106 469.839L467.229 460.716ZM223.582 183.91H281.071C291.292 183.91 299.574 192.194 299.575 202.414C299.575 206.778 298.062 210.786 295.533 213.951C292.143 218.195 286.926 220.916 281.072 220.916H228.303H223.583V225.63V278.406C223.583 287.081 217.613 294.358 209.559 296.361C208.124 296.717 206.625 296.909 205.08 296.909C194.861 296.909 186.577 288.625 186.577 278.406V220.917H129.087C118.868 220.917 110.584 212.633 110.584 202.414C110.584 192.195 118.868 183.911 129.087 183.911H186.576V126.421C186.576 116.202 194.86 107.918 205.079 107.918C215.298 107.918 223.582 116.202 223.582 126.421V183.91Z"
39
+ />
40
+ </svg>
41
+ </div>
42
+ </div>
43
+ `})}`,P=()=>{let e=m(L.position),t=[e.desktop?"gp-px-0":"gp-py-0",e.tablet?"tablet:gp-px-0":"tablet:gp-py-0",e.mobile?"mobile:gp-px-0":"mobile:gp-py-0"];return` ${t.join(" ")}`},Z=C("product.media.size > 1",h("media in product.media",`${C("media.media_type == 'image'",h("image in product.images",C("image.src == media.src","{% assign imageID = image.id %}{% break %}")),"{% assign imageID = '' %}")}
44
+ ${C("media.id == product.featured_media.id ",M(L?.borderActive?.border!=="none"?"active":""),M())}`));return e`
45
+ ${y({builderProps:{uid:b},rootId:`${b}-{{product.id}}`,rootClass:`${F}`,rootAttrs:{type:"grid-carousel","product-media":"{{product.media.size}}"},wrapperClass:P(),slidesClass:p(L.position,L.navigationPosition),isHiddenArrowWhenDisabled:!0,setting:$,rootStyles:{...k()},styles:I,disableMarginAuto:!0,children:Z})}
46
+ `};export{ProductGalleryCarousel as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as r,Fragment as e}from"react/jsx-runtime";import o from"../child/ProductGalleryGrid.js";let GalleryGrid=d=>{let{setting:i,styles:l,gallery:t,builderProps:n,noDataChildren:a,onHandleClickImage:c,children:m}=d,u={...i,...l,borderActive:{...i?.borderActive,border:"none"}};return t?.[0]?.id==="noImageError"?r(e,{children:a}):r(o,{productImages:t,enableHoverAction:!0,...u,builderPropUID:n?.uid,onHandleClick:(r,e)=>c(r||"",e),children:m})};export{GalleryGrid as default};
@@ -0,0 +1,93 @@
1
+ import{makeStyleResponsive as e,template as i,getResponsiveValueByScreen as a,cls as t}from"@gem-sdk/core";import{Liquid as o,LiquidFor as s,LiquidIf as d,If as r}from"@gem-sdk/system";import l from"../../../../../image/components/Modal3d.liquid.js";import m from"../../../../../image/components/NextImage.liquid.js";import p from"../../../../../image/components/Video.liquid.js";import n from"../../../../../video/components/HTML5Embed.liquid.js";import{getStyleOfObject as g}from"../../../../helpers/function.js";import{getAspectRatio as c,getSrcImage as u}from"../../common/common.js";import{getZoomImageClass as h,getZoomLenClass as y}from"../../common/productFeaturedImage.js";import{getShapeByLayout as C,getZoomDisplay as v}from"../../common/productGallery.js";import{getProductImagesClassName as f}from"../../composables/getProductImagesClassName.js";import{getProductImagesStyles as w}from"../../composables/getProductImagesStyles.js";let ProductGalleryGrid=({builderPropUID:_,wrapperStyle:$,children:b,enableLazyLoadImage:x,...L})=>{let{galleryItemClasses:F,galleryGridWrapperClasses:V}=f(L),{galleryGridStyles:q,galleryGridItemStyles:I}=w(L),M=C({shape:L.shape,shapeForBottom:L.shapeForBottom,shapeFor1Col:L.shapeFor1Col,shapeFor2Col:L.shapeFor2Col,shapeForFtOnly:L.shapeForFtOnly,shapeForInsideBottom:L.shapeForInsideBottom,shapeForInside:L.shapeForInside},L.position),j=(i=!1)=>{let t=["desktop","mobile","tablet"],o={desktop:"none",tablet:"none",mobile:"none"};return t.forEach(e=>{let t=a(L?.position,e)||"",s="one-col"===t||"two-col"===t,d=i?!s:s;o[e]=d?"block":"none"}),e("d",o)},k=()=>j(),S=()=>j(!0),Z=(e,a)=>i`
2
+ ${m({srcIsLiquidCode:!0,src:`${u("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",alt:"{{media.alt | escape}}",baseSrc:"{{media.preview_image | image_url}}",setting:e,style:a,className:"!gp-rounded-none",customLazyload:!1,enableLazyLoadImage:x})}
3
+ ${r(L?.galleryHoverEffect!=="none",`<div class="${t("zoom-element !gp-max-w-none gp-w-full gp-h-full",h())}">
4
+ ${m({srcIsLiquidCode:!0,src:`${u("media.preview_image")}`,width:"{{media.width}}",height:"{{media.height}}",baseSrc:"{{media.preview_image | image_url}}",alt:"{{media.alt | escape}}",setting:e,style:a,className:"!gp-rounded-none gp-w-full gp-h-full",customLazyload:!1,enableLazyLoadImage:x})}
5
+ </div>`," ")}
6
+ ${r(L?.galleryHoverEffect=="zoom"&&L?.galleryZoomType=="glasses",`<div class="${t("zoom-lens-element",y())}" style="opacity: 0; background-image: url('{{media.preview_image | product_img_url: '1024x1024'}}')">
7
+ </div>
8
+ `," ")}
9
+ `,z=()=>l({src:d("media.sources.first.url contains '.glb'","{{ media.sources.first.url }}","{{media.sources.last.url}}"),alt:"{{media.preview_image.alt}}",poster:"{{media.preview_image.src | product_img_url: '1024x1024'}}",cameraControls:!0,arStatus:"not-presenting",style:{width:"100%",height:"100%"},aspectRatio:c(M)}),B=()=>p({src:"{{mediaSourceVideo}}",alt:"{{media.alt | escape}}",autoplay:!1,allowfullscreen:!0,controls:!0,style:{width:"100%",height:"100%"}}),H=()=>n({src:"{{mediaSourceVideo}}",title:"{{media.alt | escape}}",autoplay:!1,controls:!0,style:{width:"100%","max-height":"100%"}}),P=()=>i`
10
+ ${d("media.media_type == 'video' or media.media_type == 'external_video'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0" >
11
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
12
+ <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
13
+ <path d="M17.6869 12.2646L17.6868 12.2646L6.78379 18.4464C6.78378 18.4464 6.78376 18.4464 6.78374 18.4464C6.52931 18.5903 6.1665 18.4179 6.1665 18.0416V5.95844C6.1665 5.58218 6.52917 5.40981 6.7836 5.55354C6.78366 5.55357 6.78373 5.55361 6.78379 5.55365L17.6868 11.7354L17.6869 11.7354C17.8819 11.846 17.8819 12.154 17.6869 12.2646Z" stroke="#F9F9F9" stroke-miterlimit="10"/>
14
+ </svg>
15
+ </div>`)}
16
+ ${d("media.media_type == 'model'",`<div class="gp-absolute gp-pb-1 gp-pr-1 gp-right-0 gp-bottom-0">
17
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
18
+ <rect opacity="0.9" width="24" height="24" rx="3" fill="#212121"/>
19
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M11.7441 4.57034C11.9017 4.47655 12.098 4.47655 12.2555 4.57034L18.5889 8.33957C18.7404 8.42971 18.8332 8.59296 18.8332 8.76923V15.2308C18.8332 15.407 18.7404 15.5703 18.5889 15.6604L12.2555 19.4297C12.098 19.5234 11.9017 19.5234 11.7441 19.4297L5.41079 15.6604C5.25932 15.5703 5.1665 15.407 5.1665 15.2308V8.76923C5.1665 8.59296 5.25932 8.42971 5.41079 8.33957L11.7441 4.57034ZM6.1665 9.64865V14.9465L11.4998 18.1206V12.8227L6.1665 9.64865ZM12.4998 12.8227V18.1206L17.8332 14.9465V9.64865L12.4998 12.8227ZM17.3555 8.76923L11.9998 11.9566L6.64417 8.76923L11.9998 5.58185L17.3555 8.76923Z" fill="#F9F9F9"/>
20
+ </svg>
21
+ </div>`)}
22
+ ${Z({aspectRatio:c(M),layout:L?.layout,qualityType:L?.qualityType,qualityPercent:L?.qualityPercent},{width:"100%",height:"100%"})}
23
+
24
+ <div class="gp-absolute gp-inset-0 gp-flex gp-cursor-pointer gp-items-center gp-justify-center gp-bg-black/50 gp-opacity-0 gp-transition-opacity gp-duration-100 group-hover:gp-opacity-100"
25
+ style="${g(v(L?.clickOpenLightBox))}" >
26
+ <svg
27
+ height="100%"
28
+ width="100%"
29
+ xmlns="http://www.w3.org/2000/svg"
30
+ class="gp-h-6 gp-w-6"
31
+ viewBox="0 0 512 512"
32
+ color="#fff"
33
+ >
34
+ <path
35
+ fill="currentColor"
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ d="M62.2467 345.253C43.7072 326.714 29.1474 305.116 18.9714 281.057C8.42839 256.13 3.08301 229.671 3.08301 202.418C3.08301 175.165 8.43012 148.707 18.974 123.78C29.15 99.7213 43.7098 78.123 62.2485 59.5834C80.788 41.0439 102.386 26.4841 126.445 16.3081C151.372 5.76422 177.831 0.417969 205.084 0.417969C232.337 0.417969 258.794 5.76421 283.722 16.3064C307.78 26.4823 329.379 41.0422 347.918 59.5817C366.458 78.1212 381.017 99.7196 391.194 123.778C401.737 148.706 407.083 175.163 407.083 202.417C407.083 229.671 401.737 256.129 391.194 281.056C388.406 287.648 385.277 294.048 381.839 300.257L493.397 411.815C514.091 432.511 514.091 466.187 493.395 486.883L484.272 496.006C474.245 506.032 460.915 511.553 446.738 511.553C432.559 511.553 419.228 506.032 409.202 496.006L296.022 382.824C291.996 384.854 287.898 386.762 283.721 388.528C258.794 399.073 232.336 404.419 205.082 404.419C177.828 404.419 151.371 399.071 126.443 388.528C102.385 378.352 80.7863 363.793 62.2467 345.253ZM301.699 336.166C313.928 327.317 324.896 316.835 334.282 305.034C342.149 295.142 348.9 284.325 354.355 272.775C364.433 251.432 370.076 227.586 370.076 202.419C370.076 111.296 296.206 37.4253 205.083 37.4253C113.96 37.4253 40.0895 111.294 40.0895 202.418C40.0895 293.541 113.96 367.411 205.084 367.411C227.413 367.411 248.701 362.967 268.126 354.928C280.091 349.976 291.347 343.658 301.699 336.166ZM467.229 460.716C473.507 454.439 473.507 444.26 467.229 437.982L360.595 331.348C356.601 336.153 352.378 340.794 347.919 345.253C341.671 351.502 335.068 357.286 328.147 362.615L435.371 469.839C438.511 472.977 442.624 474.547 446.739 474.547C450.853 474.547 454.967 472.978 458.106 469.839L467.229 460.716ZM223.582 183.91H281.071C291.292 183.91 299.574 192.194 299.575 202.414C299.575 206.778 298.062 210.786 295.533 213.951C292.143 218.195 286.926 220.916 281.072 220.916H228.303H223.583V225.63V278.406C223.583 287.081 217.613 294.358 209.559 296.361C208.124 296.717 206.625 296.909 205.08 296.909C194.861 296.909 186.577 288.625 186.577 278.406V220.917H129.087C118.868 220.917 110.584 212.633 110.584 202.414C110.584 192.195 118.868 183.911 129.087 183.911H186.576V126.421C186.576 116.202 194.86 107.918 205.079 107.918C215.298 107.918 223.582 116.202 223.582 126.421V183.91Z"
39
+ />
40
+ </svg>
41
+ </div>
42
+ `,N=i=>`
43
+ ${d("media.media_type == 'video'","{% assign mediaSourceUrl = media.sources.last.url %}")}
44
+ ${d("media.media_type == 'external_video'","{% assign mediaSourceUrl = media | external_video_url %}{% assign mediaSource = media | json %}")}
45
+ ${d("media.media_type == 'image'","{% assign mediaSourceUrl = media.src %}")}
46
+ <div
47
+ aria-hidden
48
+ id="{{imageID}}"
49
+ media-type="{{media.media_type}}"
50
+ media-poster="{{media.preview_image.src}}"
51
+ media-source-url="{{media.sources.first.url}}"
52
+ media-last-source-url="{{mediaSourceUrl}}"
53
+ external-id="{{media.external_id}}"
54
+ grid-index="{{forloop.index}}"
55
+ data-outline="none"
56
+ class="${F(`gem-slider-item-${_}-{{product.id}} gp-gallery-image-item ${i} data-[outline=deactive]:after:!gp-border-transparent`)}"
57
+ style="${g(I)}"
58
+ >
59
+ ${d("media.media_type == 'external_video' or media.media_type == 'video' or media.media_type == 'model'","{% assign isMedia = true %}")}
60
+
61
+ ${d("media.media_type == 'external_video' or media.media_type == 'video'","{% assign isVideo = true %}")}
62
+
63
+ <div class="gp-h-full gp-w-full" style="${d("media == null or media.media_type == 'image'","display: block !important;")} ${d("isVideo == true",g({...S()}))}">
64
+ ${d("media != null",P(),T())}
65
+ </div>
66
+
67
+ <div class="${d("isMedia","gp-flex gp-justify-center gp-items-center")}"
68
+ style="${d("isMedia",g({...e("aspect",c(M))}))} ${g({...k()})}"
69
+ >
70
+ {% case media.media_type %}
71
+ {% when 'external_video' %}
72
+ {% assign mediaSourceVideo = media | external_video_url %}
73
+ ${B()}
74
+ {% when 'video' %}
75
+ {% assign mediaSourceVideo = media.sources.last.url %}
76
+ ${H()}
77
+ {% when 'model' %}
78
+ ${z()}
79
+ {% endcase %}
80
+ </div>
81
+ {% assign isVideo= false %}
82
+ {% assign isMedia= false %}
83
+ </div>`,T=()=>i`
84
+ ${m({srcIsLiquidCode:!0,src:"https://cdn.shopify.com/s/assets/no-image-2048-5e88c1b20e087fb7bbe9a3771824e743c244f437e4f8ba93bbf7b11b53f7824c_large.gif",alt:"No Image",sizes:"(max-width: 768px) 50vw, 100vw",setting:{aspectRatio:c(M),layout:L?.layout,qualityType:L?.qualityType,qualityPercent:L?.qualityPercent},className:"!gp-rounded-none",customLazyload:!1,enableLazyLoadImage:x})}`;return o(`
85
+ <div type="grid-gallery"
86
+ class="${V}"
87
+ style="${g(q)}}"
88
+ >
89
+ ${s("media in product.media",`${d("media.media_type == 'image'",s("image in product.images",d("image.src == media.src","{% assign imageID = image.id %}{% break %}")),"{% assign imageID = '' %}")}
90
+ ${d("media.id == product.featured_media.id ",N(L?.borderActive?.border!=="none"?"active":""),N())}`)}
91
+ ${d("product.media.size > 0",b)}
92
+ ${d("product.media.size < 1",N())}
93
+ </div>`)};export{ProductGalleryGrid as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as C}from"react/jsx-runtime";let ButtonOpenLightBox=()=>C("div",{className:"gp-absolute gp-inset-0 gp-flex gp-cursor-pointer gp-items-center gp-justify-center gp-bg-black/50 gp-opacity-0 gp-transition-all gp-duration-100 group-hover:gp-opacity-100",children:C("svg",{height:"100%",width:"100%",xmlns:"http://www.w3.org/2000/svg",className:"gp-h-6 gp-w-6",viewBox:"0 0 512 512",color:"#fff",children:C("path",{fill:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",d:"M62.2467 345.253C43.7072 326.714 29.1474 305.116 18.9714 281.057C8.42839 256.13 3.08301 229.671 3.08301 202.418C3.08301 175.165 8.43012 148.707 18.974 123.78C29.15 99.7213 43.7098 78.123 62.2485 59.5834C80.788 41.0439 102.386 26.4841 126.445 16.3081C151.372 5.76422 177.831 0.417969 205.084 0.417969C232.337 0.417969 258.794 5.76421 283.722 16.3064C307.78 26.4823 329.379 41.0422 347.918 59.5817C366.458 78.1212 381.017 99.7196 391.194 123.778C401.737 148.706 407.083 175.163 407.083 202.417C407.083 229.671 401.737 256.129 391.194 281.056C388.406 287.648 385.277 294.048 381.839 300.257L493.397 411.815C514.091 432.511 514.091 466.187 493.395 486.883L484.272 496.006C474.245 506.032 460.915 511.553 446.738 511.553C432.559 511.553 419.228 506.032 409.202 496.006L296.022 382.824C291.996 384.854 287.898 386.762 283.721 388.528C258.794 399.073 232.336 404.419 205.082 404.419C177.828 404.419 151.371 399.071 126.443 388.528C102.385 378.352 80.7863 363.793 62.2467 345.253ZM301.699 336.166C313.928 327.317 324.896 316.835 334.282 305.034C342.149 295.142 348.9 284.325 354.355 272.775C364.433 251.432 370.076 227.586 370.076 202.419C370.076 111.296 296.206 37.4253 205.083 37.4253C113.96 37.4253 40.0895 111.294 40.0895 202.418C40.0895 293.541 113.96 367.411 205.084 367.411C227.413 367.411 248.701 362.967 268.126 354.928C280.091 349.976 291.347 343.658 301.699 336.166ZM467.229 460.716C473.507 454.439 473.507 444.26 467.229 437.982L360.595 331.348C356.601 336.153 352.378 340.794 347.919 345.253C341.671 351.502 335.068 357.286 328.147 362.615L435.371 469.839C438.511 472.977 442.624 474.547 446.739 474.547C450.853 474.547 454.967 472.978 458.106 469.839L467.229 460.716ZM223.582 183.91H281.071C291.292 183.91 299.574 192.194 299.575 202.414C299.575 206.778 298.062 210.786 295.533 213.951C292.143 218.195 286.926 220.916 281.072 220.916H228.303H223.583V225.63V278.406C223.583 287.081 217.613 294.358 209.559 296.361C208.124 296.717 206.625 296.909 205.08 296.909C194.861 296.909 186.577 288.625 186.577 278.406V220.917H129.087C118.868 220.917 110.584 212.633 110.584 202.414C110.584 192.195 118.868 183.911 129.087 183.911H186.576V126.421C186.576 116.202 194.86 107.918 205.079 107.918C215.298 107.918 223.582 116.202 223.582 126.421V183.91Z"})})});export{ButtonOpenLightBox as default};
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useFeaturedImageGlobal as i,useEditorMode as l,cls as s}from"@gem-sdk/core";import d from"../../../../../carousel-v3/components/root/Carousel.js";import n from"../../../../../carousel-v3/components/item/CarouselItem.js";import r from"../../../../../image/components/NextImage.js";import"../../../../../modal/components/confirm.js";import p from"../../../../../modal/components/Modal.js";import{useMemo as m}from"react";import{isFeatureMedia as a}from"../../common/productFeaturedImage.js";import c from"../child/ProductFeatureVideo.js";import g from"../child/MediaIcon.js";let ProductImagesLightBox=({builderPropUID:h,productImages:u,open:b,imageRatio:f,onHandleClose:k})=>{let y=i(),E=m(()=>{let e=u?.findIndex(e=>e.id===y?.id);return e&&e>0?e:0},[u,y]),I={desktop:u&&u.length>1,mobile:u&&u?.length>1,tablet:u&&u?.length>1},j={desktop:!1,mobile:!1,tablet:!1},C=l(),v=e=>"edit"!==C&&["VIDEO","EXTERNAL_VIDEO"].includes(e?.contentType||"");return e(p,{setting:{open:b},styles:{width:"80%"},closeOnClickOutside:!0,onClose:()=>{k(),console.log("onHandleClose")},disableIframeClickEvent:!0,contentClass:"mobile:!gp-w-[100%] gp-px-2 gp-pb-10",children:e(d,{setting:{loop:j,slidesToShow:{desktop:1,tablet:1,mobile:1},defaultCurrentSlider:E,dot:{desktop:!0,mobile:!0,tablet:!0},dotStyle:{desktop:"outside",mobile:"outside",tablet:"outside"},dotColor:{desktop:"#E2E2E2",mobile:"#E2E2E2",tablet:"#E2E2E2"},dotActiveColor:{desktop:"#121212",mobile:"#121212",tablet:"#121212"},dotSize:{desktop:12},dotGapToCarousel:{desktop:12},navigationEnable:I,navigationStyle:{desktop:"outside"},arrowIconSize:{desktop:24},initialSlide:E},styles:{sizeSetting:{desktop:{height:"80vh"},tablet:{height:"80vh"},mobile:{height:"60vh"}},playSpeed:0},moveToIdx:E,hiddenDotWhenOnlyOne:!0,isHiddenArrowWhenDisabled:!0,isDisableResetSlide:!0,builderProps:{uid:h},fullHeight:!0,children:u?.map(i=>e(n,{className:`gem-slider-item gem-slider-item-${h} gp-flex gp-items-center gp-justify-center gp-px-4`,children:v(i)?e(c,{type:i?.contentType,url:i.src??"",aspectRatio:f}):t(o,{children:[e(r,{src:a(i?.contentType)?i?.previewImage:i?.src,width:i?.width,height:i?.height,alt:i?.alt,"content-type":i?.contentType,setting:{aspectRatio:f},className:s("gp-h-full gp-w-full gp-object-contain")},i?.id),e(g,{contentType:i?.contentType??""})]})},i?.id))})})};export{ProductImagesLightBox as default};
@@ -0,0 +1 @@
1
+ import{getGalleryCarouselSettingAttr as t,getFeaturedCarouselSettingAttr as r}from"../common/attrs.js";let getProductImagesAttr=e=>{let o=t(e),m=r(e);return{galleryCarouselSettingAttrs:o,featuredImageCarouselSettingAttrs:m}};export{getProductImagesAttr};
@@ -0,0 +1 @@
1
+ import{createClass as s}from"@gem-sdk/system";import{getWrapperClasses as e,getGalleryWrapperClasses as a,getGalleryGridWrapperClasses as r,getFtImageWithGalleryClasses as t,getImageGalleryWrapperClasses as l,getFeaturedImageCarouselClasses as g,getFeaturedImageGalleryClasses as m,getFeaturedImageClasses as o,getGalleryItemClasses as p,getFeaturedCarouselItemClasses as i}from"../common/classes.js";import{checkAddOverFlowClass as d,setDefaultWhenUndefineSetting as u}from"../common/common.js";let getProductImagesClassName=c=>{let{setting:C,style:x}=c,f=u(c),{builderProps:n,advanced:$}=f,y=$?.cssClass,j=s(e({extraClass:`${n?.uid} ${y??""} `,isAddOverFlowClass:d(x)})),v=s(a({})),w=s(r({})),I=e=>s(p({extraClass:`${e??""}`})),N=s(t({extraClass:`gp-product-images-feature--${n?.uid}`})),P=s(l({extraClass:`gp-product-images-gallery-${n?.uid}`})),h=s(g({extraClass:`gp-product-images-gallery-${n?.uid}`})),k=s(m({settings:C})),A=s(o({setting:C,extraClass:`gp-flex gp-relative gp-product-images-gallery-${n?.uid} gp-overflow-hidden gp-flex gp-w-full gp-items-center gp-justify-center `})),F=e=>s(i({extraClass:`${e??""}`}));return{wrapperClasses:j,productImagesGalleryClasses:v,galleryGridWrapperClasses:w,galleryItemClasses:I,ftImageGalleryClasses:N,imageGalleryWrapperClasses:P,featuredImageCarouselClasses:h,featuredImageGalleryClasses:k,featureImageOnlyOneImageClasses:A,featuredCarouselItemClasses:F}};export{getProductImagesClassName};
@@ -0,0 +1 @@
1
+ import{createStyle as e}from"@gem-sdk/system";import{getWrapContainerStyle as t,getFeatureImageStyle as l,getFeaturedImageOnlyOneImageStyle as r,getGalleryImageStyle as s,getFeaturedImageCarouselStyle as a,getFeatureImageCarouselItemStyle as g,getGalleryGridStyle as m,getGalleryGridItemStyle as o,getGalleryCarouselStyle as i,getGalleryCarouselItemStyle as n}from"../common/styles.js";let getProductImagesStyles=(d,p)=>{let y=e(t(d)),u=e(t(d,!0)),h=e(t(d,p?.gallery&&p?.gallery?.length<2)),b=e(l(d,{enableOrder:!0,enableDisplay:!0})),c=e(r({setting:d,options:{enableRadius:!0,enableHeight:!0}})),I=e(s(d,p?.featureImageHeight)),f=e(a(d)),x=e({...g(d)}),H=e({...g(d),width:"{{productImageWidth}}px"}),P=e(m(d)),S=e(o(d)),j=e(i(d)),k=e(n(d));return{wrapContainerStyle:y,wrapContainerStyleOnlyOneImage:u,wrapperFeaturedImageStyle:h,featureImageStyle:b,featureImageOnlyOneImageStyle:c,galleryImageStyle:I,featuredImageCarouselStyle:f,featureImageCarouselItemStyle:x,featureImageCarouselOnlyOneImageStyle:H,galleryGridStyles:P,galleryGridItemStyles:S,galleryCarouselStyle:j,galleryCarouselItemStyle:k}};export{getProductImagesStyles};
@@ -0,0 +1 @@
1
+ import{useCurrentDevice as e,getResponsiveValueByScreen as r}from"@gem-sdk/core";import{useRef as t,useState as i,useEffect as o}from"react";import{getTypeWidthDevice as n}from"../common/common.js";let useFeatureImageWithGallery=l=>{let{setting:u,styles:s}=l,m={...u,...s},c=e(),f=t(null),a=t(null),[g,d]=i(""),[h,p]=i(100),[y,b]=i(),v=r(m?.position,c),F="slider"===n(m?.type)[c]||["left","right","inside-left","inside-right"].includes(v),G=(e,r=200)=>{e&&(f.current&&clearTimeout(f.current),f.current=setTimeout(()=>p(a?.current?.offsetHeight||200),r))};return o(()=>{let e=a?.current;if(!e)return;let r=new ResizeObserver(()=>{p(e.offsetHeight||200)});return r.observe(e),()=>{r.disconnect()}}),{isShowCarousel:F,featureImageHeight:h,featureWrapperImage:a,onClickFeatureArrow:g,activeIndexFromFeatureImage:y,setOnClickFeatureArrow:d,onHandleLoadedFeatureImage:G,setActiveIndexFromFeatureImage:b}};export{useFeatureImageWithGallery};
@@ -0,0 +1 @@
1
+ import{useCurrentVariant as e}from"@gem-sdk/core";import{useCallback as t,useMemo as r}from"react";let useFilterImagesByVariant=({productImages:l,displayByVariant:a,variantSelect:n})=>{let i=e(),s=t(()=>{let e=i?.selectedOptions??[],t=e.find(e=>e.name===n);return t?.value?.toLowerCase()??""},[i?.selectedOptions,n]),o=r(()=>{if(!a||!n||!l)return l;let e=s();if(!e)return l;let t=l.filter(t=>{let r=(t.alt||"").toLowerCase();return r.includes(e)});return t.length>0?t:l},[a,n,l,s]);return{filteredProductImages:o,selectedVariantValue:s()}};export{useFilterImagesByVariant};
@@ -0,0 +1 @@
1
+ import{useCurrentDevice as e,useFeaturedImageGlobal as r,useEditorMode as t,getResponsiveValueByScreen as o}from"@gem-sdk/core";import{useState as i,useRef as a,useEffect as s,useMemo as l,useCallback as n}from"react";import{useFilterImagesByVariant as p}from"./useFilterImagesByVariant.js";import{handleSetSrcForProductImageList as m}from"../../../../image/common/helpers.js";import{getShapeByLayout as u,checkDisplayGalleryByWidth as d}from"../common/productGallery.js";let useGalleryCarousel=c=>{let{builderPropUID:h,productImages:F,onHandleClick:y,activeIndexFormFeatureImage:B,onClickFeatureArrow:f,builderPropsClass:I,arrow:g,priorityFeatureImage:C,...q}=c,T=e(),b=r(),[v,O]=i(f||""),x=t(),[j,k]=i(0),G=a(),[P,S]=i(j),[V,A]=i(!1),{filteredProductImages:L}=p({productImages:F,displayByVariant:q?.displayByVariant,variantSelect:q?.variantSelect});s(()=>{O(f||"")},[f]),s(()=>{G.current&&clearTimeout(G.current),v&&(G.current=setTimeout(()=>{k(B||0),O("")}))},[B]),s(()=>{if(C){let e=L?.findIndex(e=>e.id===C.id)||0;k(e),O("")}},[C,L]),s(()=>{let e=L?.findIndex(e=>e.id===b?.id);k(e||0),O("")},[b,L]);let w=l(()=>u({shape:q.shape,shapeForBottom:q.shapeForBottom,shapeFor1Col:q.shapeFor1Col,shapeFor2Col:q.shapeFor2Col,shapeForFtOnly:q.shapeForFtOnly,shapeForInsideBottom:q.shapeForInsideBottom,shapeForInside:q.shapeForInside},q.position),[q.shape,q.shapeForBottom,q.shapeFor1Col,q.shapeFor2Col,q.shapeForFtOnly,q.position,q.shapeForInsideBottom,q.shapeForInside]),z=n(()=>{m({builderPropUID:h,shapeByLayout:w,qualityType:q.qualityType,qualityPercent:q.qualityPercent})},[w,q.qualityPercent,q.qualityType,h]);s(()=>{if("edit"===x)return;let e=document?.querySelector(`.gem-slider-item-${h} .product-list-image`);if(!e)return;z();let r=new ResizeObserver(()=>{z()});return r?.observe(e,{}),()=>{r?.disconnect()}},[z,h,x]);let R=o(q.clickOpenLightBox,T),$=l(()=>{let e=d({shapeByLayout:w});return o(e,T)},[w,T]),D=l(()=>q?.borderActive?.border!=="none",[q?.borderActive?.border]),E=o(q?.clickOpenLightBox,T),H=e=>{y&&y(e||"",R)};return s(()=>{let e;return L&&L.length>0&&V&&(e=setTimeout(()=>{S(j)},80)),()=>{e&&clearTimeout(e)}},[j,L,V]),{moveToIdx:j,isDisplay:$,shapeByLayout:w,isEnableBorderActive:D,isShowButtonLightbox:E,filteredProductImages:L,handleClickCarouselItem:H,setSliderReady:A,safeMoveToIdx:P}};export{useGalleryCarousel};
@@ -0,0 +1 @@
1
+ import{useFeaturedImageGlobal as e,useCurrentDevice as t,useInteraction as r,useEditorMode as i,getResponsiveValueByScreen as o}from"@gem-sdk/core";import{createRef as n,useMemo as a,useCallback as l,useEffect as u}from"react";import{getAspectRatio as m}from"../common/common.js";import{checkRenderFeaturedCarousel as c}from"../common/productFeaturedImage.js";import{useFilterImagesByVariant as d}from"./useFilterImagesByVariant.js";import{handleSetSrcForFeatureProductImage as h}from"../../../../image/common/helpers.js";let useProductFeaturedImageCarousel=g=>{let p;let{productImages:s,imgRef:f,onHandleClick:y,onClickArrow:S,onHandleLoaded:I,onHandleUpdateActiveIndex:v,builderPropUID:q,builderPropsClass:k,children:b,parentUid:w,...x}=g,T=e(),$=t(),B=n(),{onListener:P,ref:j}=r(),C=i(),{filteredProductImages:F}=d({productImages:s,displayByVariant:x?.displayByVariant,variantSelect:x?.variantSelect}),E=a(()=>{let e=F?.findIndex(e=>e.id===T?.id);return e&&e>=0?e:0},[F,T]),O=a(()=>c(x),[x]),V=a(()=>{if(F?.length)return T||F?.[0]},[F,T]),L=a(()=>"popup"===o(x.ftClickOpenLightBox,$),[x.ftClickOpenLightBox,$]),z=a(()=>x?.otherImage?F&&x.otherImage>=F.length-1||F&&-1===x.otherImage?F.length-1:x.otherImage:0,[x?.otherImage,F]),M=a(()=>x?.hoverEffect==="other"?F?.[z]:F?.find(e=>e.id===T?.id)||F?.[0],[T?.id,z,F,x?.hoverEffect]),R=function(){return Math.random().toString(36).substr(2,5)},A=e=>{p&&clearTimeout(p),p=setTimeout(()=>v&&v(e),500)},D=e=>{let t="1/1",r=0;return e?e.width&&e.height&&(t=`${e.width}/${e.height}`):F?.forEach(e=>{if(e.width&&e.height){let i=e.height/e.width;i>r&&(r=i,t=`${e.width}/${e.height}`)}}),t},G=e=>{let t=m(x.ftShape),r=D(e);return{desktop:t.desktop??r,tablet:t.tablet??r,mobile:t.mobile??r}},H=l(()=>{h({builderPropUID:q,ftShape:x.ftShape,qualityType:x.qualityType,qualityPercent:x.qualityPercent})},[x.ftShape,x.qualityPercent,x.qualityType,q]),J=()=>{let e=`[data-id="${q}"]`;P({event:"gp:change-image-step",selector:e},t=>{let r=(j.current||document).querySelector(e),{data:i,isRollback:o,uniqueStorageKey:n}=t||{};B?.current?.moveToSlideInteraction({element:r,data:i,isRollback:o,key:n})}),P({event:"gp:change-next-slide",selector:e},t=>{let r=(j.current||document).querySelector(e),{data:i,isRollback:o,uniqueStorageKey:n}=t||{};B?.current?.nextSlideInteraction({element:r,data:i,isRollback:o,key:n})}),P({event:"gp:change-previous-slide",selector:e},t=>{let r=(j.current||document).querySelector(e),{data:i,isRollback:o,uniqueStorageKey:n}=t||{};B?.current?.previousSlideInteraction({element:r,data:i,isRollback:o,key:n})})};return u(()=>{if("edit"===C)return;let e=document?.querySelector(`.gem-slider-item-${q} .featured-image-only`);if(!e)return;H();let t=new ResizeObserver(()=>{H()});return t?.observe(e,{}),()=>{t?.disconnect()}},[H,q,C]),u(()=>{J()},[]),u(()=>{!O&&I&&I(!0,0)},[O,I]),{ref:j,imageActive:V,imageActiveIndex:E,imageShowWhenHover:M,enableOpenLightBox:L,filteredProductImages:F,isRenderFeatureCarousel:O,genRandomKey:R,getAspectRatioFinal:G,emitUpdateActiveIndex:A}};export{useProductFeaturedImageCarousel};
@@ -0,0 +1 @@
1
+ import{useCurrentDevice as e,useFeaturedImageGlobal as r,useEditorMode as o,getResponsiveValueByScreen as t}from"@gem-sdk/core";import{useState as i,useCallback as a,useEffect as s}from"react";import{getShapeByLayout as l,checkDisplayGalleryByWidth as n}from"../common/productGallery.js";import{useFilterImagesByVariant as p}from"./useFilterImagesByVariant.js";import{handleSetSrcForProductImageList as d}from"../../../../image/common/helpers.js";let useProductGalleryGrid=m=>{let{builderPropUID:y,productImages:c,activeIndexFromFeatureImage:u,children:h,isHiddenInteraction:F,...f}=m,B=e(),q=r(),[g,I]=i(0),v=o(),{filteredProductImages:G}=p({productImages:c,displayByVariant:f?.displayByVariant,variantSelect:f?.variantSelect}),P=l({shape:f.shape,shapeForBottom:f.shapeForBottom,shapeFor1Col:f.shapeFor1Col,shapeFor2Col:f.shapeFor2Col,shapeForFtOnly:f.shapeForFtOnly,shapeForInsideBottom:f.shapeForInsideBottom,shapeForInside:f.shapeForInside},f.position),b=t(f.clickOpenLightBox,B),C=n({shapeByLayout:P}),O=t(C,B),j=f?.borderActive?.border!=="none",x=a(()=>{d({builderPropUID:y,shapeByLayout:P,qualityType:f.qualityType,qualityPercent:f.qualityPercent})},[P,f.qualityPercent,f.qualityType,y]);return s(()=>{I(u||0)},[u]),s(()=>{let e=G?.findIndex(e=>e.id===q?.id);I(e&&e>0?e:0)},[q,G]),s(()=>{if("edit"===v)return;let e=document?.querySelector(".grid-gallery");if(!e)return;x();let r=new ResizeObserver(()=>{x()});return r?.observe(e,{}),()=>{r?.disconnect()}},[x,y,v]),{isDisplay:O,shapeByLayout:P,imageActiveIndex:g,enableOpenLightBox:b,isEnableBorderActive:j,filteredProductImages:G}};export{useProductGalleryGrid};