@gem-sdk/core 3.0.0-pre-production.15 → 3.0.6

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 (413) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/AddOn.js +2 -18
  3. package/dist/cjs/components/ComponentAnimation.js +2 -17
  4. package/dist/cjs/components/ComponentToolbarPreview.js +2 -752
  5. package/dist/cjs/components/ComponentWrapper.js +2 -61
  6. package/dist/cjs/components/ComponentWrapperPreview.js +2 -213
  7. package/dist/cjs/components/Empty.js +2 -7
  8. package/dist/cjs/components/InteractionSuffix.js +2 -42
  9. package/dist/cjs/components/Render.js +2 -75
  10. package/dist/cjs/components/Render.liquid.js +16 -307
  11. package/dist/cjs/components/RenderBlock.js +2 -54
  12. package/dist/cjs/components/RenderCustomCode.js +4 -59
  13. package/dist/cjs/components/RenderPreview.js +2 -67
  14. package/dist/cjs/components/RenderSection.js +2 -23
  15. package/dist/cjs/components/ai-generator/AIContentGenerator.js +2 -252
  16. package/dist/cjs/components/ai-generator/AIGenContentLoading.js +2 -85
  17. package/dist/cjs/components/ai-generator/components/PickProduct.js +2 -220
  18. package/dist/cjs/components/ai-generator/components/ToneAndVoice.js +2 -77
  19. package/dist/cjs/components/ai-generator/hooks/useCheckingProductInside.js +1 -47
  20. package/dist/cjs/components/ai-generator/hooks/useFlipPopup.js +1 -110
  21. package/dist/cjs/components/ai-generator/hooks/useGettingGenerateRequest.js +1 -37
  22. package/dist/cjs/components/ai-generator/hooks/useListenEventGenerate.js +1 -70
  23. package/dist/cjs/components/ai-generator/icons/AIIcon.js +2 -67
  24. package/dist/cjs/components/ai-generator/icons/CloseIcon.js +2 -19
  25. package/dist/cjs/components/ai-generator/icons/DropdownIcon.js +2 -37
  26. package/dist/cjs/components/ai-generator/icons/SearchIcon.js +2 -21
  27. package/dist/cjs/components/ai-generator/icons/ShowMoreIcon.js +2 -21
  28. package/dist/cjs/components/ai-generator/icons/UpgradeIcon.js +2 -27
  29. package/dist/cjs/components/ai-generator/icons/WarningIcon.js +2 -31
  30. package/dist/cjs/components/constant.js +1 -82
  31. package/dist/cjs/components/resize/Resize.js +2 -16
  32. package/dist/cjs/components/resize/Spacing.js +2 -260
  33. package/dist/cjs/components/src/product/helpers/variant-presets.js +1 -56
  34. package/dist/cjs/components/theme-section/CreateThemeSection.js +2 -123
  35. package/dist/cjs/components/theme-section/ThemeSectionStatus.js +2 -45
  36. package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +2 -126
  37. package/dist/cjs/components/toolbar/Tooltip.js +2 -28
  38. package/dist/cjs/constants/device.js +1 -0
  39. package/dist/cjs/contexts/AddonContext.js +2 -36
  40. package/dist/cjs/contexts/ArticleContext.js +2 -39
  41. package/dist/cjs/contexts/ArticleListContext.js +2 -31
  42. package/dist/cjs/contexts/BuilderComponent.js +2 -34
  43. package/dist/cjs/contexts/BuilderContext.js +2 -39
  44. package/dist/cjs/contexts/BuilderPreviewContext.js +2 -482
  45. package/dist/cjs/contexts/CartLineContext.js +2 -29
  46. package/dist/cjs/contexts/CollectionContext.js +2 -38
  47. package/dist/cjs/contexts/I18nContext.js +2 -0
  48. package/dist/cjs/contexts/ModalContext.js +2 -47
  49. package/dist/cjs/contexts/PageContext.js +2 -111
  50. package/dist/cjs/contexts/ProductContext.js +2 -182
  51. package/dist/cjs/contexts/ProductListContext.js +2 -32
  52. package/dist/cjs/contexts/SectionContext.js +2 -53
  53. package/dist/cjs/contexts/ShopContext.js +2 -107
  54. package/dist/cjs/graphql/fragments/analytic.generated.js +2 -6
  55. package/dist/cjs/graphql/fragments/collection-detail.generated.js +2 -6
  56. package/dist/cjs/graphql/fragments/collection-product.generated.js +2 -6
  57. package/dist/cjs/graphql/fragments/collection.generated.js +2 -6
  58. package/dist/cjs/graphql/fragments/custom-code.generated.js +2 -6
  59. package/dist/cjs/graphql/fragments/custom-font.generated.js +7 -7
  60. package/dist/cjs/graphql/fragments/data-seo.generated.js +2 -6
  61. package/dist/cjs/graphql/fragments/media.generated.js +2 -6
  62. package/dist/cjs/graphql/fragments/preview-theme-page.generated.js +6 -6
  63. package/dist/cjs/graphql/fragments/product-little.generated.js +2 -6
  64. package/dist/cjs/graphql/fragments/product-option-value.generated.js +2 -6
  65. package/dist/cjs/graphql/fragments/product-option.generated.js +2 -6
  66. package/dist/cjs/graphql/fragments/product.generated.js +2 -6
  67. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +2 -6
  68. package/dist/cjs/graphql/fragments/published-page-section.generated.js +2 -6
  69. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +4 -18
  70. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +2 -6
  71. package/dist/cjs/graphql/fragments/selected-option.generated.js +2 -6
  72. package/dist/cjs/graphql/fragments/variant.generated.js +2 -6
  73. package/dist/cjs/graphql/mutations/page-view-up.generated.js +2 -6
  74. package/dist/cjs/graphql/queries/articles.generated.js +2 -6
  75. package/dist/cjs/graphql/queries/blogs.generated.js +2 -6
  76. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +2 -16
  77. package/dist/cjs/graphql/queries/collection.generated.js +2 -14
  78. package/dist/cjs/graphql/queries/collections.generated.js +2 -9
  79. package/dist/cjs/graphql/queries/preview-page.generated.js +2 -12
  80. package/dist/cjs/graphql/queries/product-little-detail.generated.js +2 -11
  81. package/dist/cjs/graphql/queries/product-medias.generated.js +2 -8
  82. package/dist/cjs/graphql/queries/product-value-label.generated.js +2 -6
  83. package/dist/cjs/graphql/queries/product-variants.generated.js +3 -11
  84. package/dist/cjs/graphql/queries/products.generated.js +3 -17
  85. package/dist/cjs/graphql/queries/{published-shop-metas.js → published-shop-metas.generated.js} +2 -6
  86. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +3 -19
  87. package/dist/cjs/graphql/queries/shop-shopify.generated.js +2 -6
  88. package/dist/cjs/graphql/queries/store-property.generated.js +2 -6
  89. package/dist/cjs/graphql-app-api/queries/LibrarySaleFunnelDiscount.generated.js +2 -6
  90. package/dist/cjs/graphql-app-api/queries/LibraryTemplate.generated.js +2 -6
  91. package/dist/cjs/graphql-app-api/queries/SaleFunnelDiscounts.generated.js +2 -6
  92. package/dist/cjs/graphql-app-api/queries/SaleFunnelOffer.generated.js +2 -6
  93. package/dist/cjs/graphql-app-api/queries/ShopLibraryPage.generated.js +2 -6
  94. package/dist/cjs/graphql-app-api/queries/ThemePage.generated.js +2 -6
  95. package/dist/cjs/helpers/GlobalEvent.js +1 -19
  96. package/dist/cjs/helpers/align.js +1 -37
  97. package/dist/cjs/helpers/animations.js +1 -222
  98. package/dist/cjs/helpers/background.js +1 -236
  99. package/dist/cjs/helpers/backgroundImage.js +1 -0
  100. package/dist/cjs/helpers/borders.js +4 -198
  101. package/dist/cjs/helpers/carousel.js +1 -55
  102. package/dist/cjs/helpers/clone-deep.js +1 -5
  103. package/dist/cjs/helpers/cls.js +1 -16
  104. package/dist/cjs/helpers/colors.js +1 -184
  105. package/dist/cjs/helpers/compose-advance-style.js +1 -323
  106. package/dist/cjs/helpers/composeClasses.js +1 -0
  107. package/dist/cjs/helpers/const.js +1 -0
  108. package/dist/cjs/helpers/constant.js +1 -23
  109. package/dist/cjs/helpers/convert.js +1 -7
  110. package/dist/cjs/helpers/covert-entities-html.js +1 -19
  111. package/dist/cjs/helpers/css-variable.js +1 -7
  112. package/dist/cjs/helpers/email.js +1 -11
  113. package/dist/cjs/helpers/filter-styles.js +1 -0
  114. package/dist/cjs/helpers/filter-toolbar-preview.js +2 -14
  115. package/dist/cjs/helpers/flatten-connection.js +1 -9
  116. package/dist/cjs/helpers/get-resonsive-value.js +1 -36
  117. package/dist/cjs/helpers/get-shortname.js +1 -92
  118. package/dist/cjs/helpers/icon-list.js +1 -61
  119. package/dist/cjs/helpers/interaction/index.js +2 -134
  120. package/dist/cjs/helpers/is-browser.js +1 -9
  121. package/dist/cjs/helpers/is-defined.js +1 -7
  122. package/dist/cjs/helpers/is-empty-children.js +2 -15
  123. package/dist/cjs/helpers/is-safari.js +1 -9
  124. package/dist/cjs/helpers/layout.js +1 -76
  125. package/dist/cjs/helpers/load-script.js +1 -31
  126. package/dist/cjs/helpers/loop-component.js +1 -16
  127. package/dist/cjs/helpers/make-style.js +1 -163
  128. package/dist/cjs/helpers/normalize-builder-data.js +1 -23
  129. package/dist/cjs/helpers/pascal-to-kebab-case.js +1 -7
  130. package/dist/cjs/helpers/prefetch-queries.js +1 -78
  131. package/dist/cjs/helpers/product.js +1 -48
  132. package/dist/cjs/helpers/queries/get-collection.js +1 -226
  133. package/dist/cjs/helpers/queries/get-collections.js +1 -21
  134. package/dist/cjs/helpers/queries/get-product-by-slug.js +1 -125
  135. package/dist/cjs/helpers/queries/get-product.js +1 -154
  136. package/dist/cjs/helpers/queries/get-products.js +1 -214
  137. package/dist/cjs/helpers/query.js +1 -29
  138. package/dist/cjs/helpers/radius.js +6 -140
  139. package/dist/cjs/helpers/render.js +1 -91
  140. package/dist/cjs/helpers/shadow.js +1 -69
  141. package/dist/cjs/helpers/size.js +4 -228
  142. package/dist/cjs/helpers/spacing.js +1 -43
  143. package/dist/cjs/helpers/third-party/addAppBlockId.js +1 -20
  144. package/dist/cjs/helpers/third-party/appConfig.js +1 -416
  145. package/dist/cjs/helpers/third-party/appSetting.js +1 -1324
  146. package/dist/cjs/helpers/third-party/composeAppBlockId.js +1 -11
  147. package/dist/cjs/helpers/third-party/constant.js +1 -69
  148. package/dist/cjs/helpers/third-party/generateAppBlockConfigs.js +1 -34
  149. package/dist/cjs/helpers/third-party/getAppBlockConfig.js +1 -55
  150. package/dist/cjs/helpers/third-party/getAppBlockType.js +1 -12
  151. package/dist/cjs/helpers/third-party/getAppBlocks.js +1 -30
  152. package/dist/cjs/helpers/third-party/mergeBlock.js +1 -19
  153. package/dist/cjs/helpers/third-party/mergeBlockOrder.js +1 -47
  154. package/dist/cjs/helpers/third-party/removeGPAppItems.js +1 -18
  155. package/dist/cjs/helpers/tracking/fpixel.js +1 -28
  156. package/dist/cjs/helpers/tracking/gtag.js +1 -93
  157. package/dist/cjs/helpers/tracking/tiktokpixel.js +1 -17
  158. package/dist/cjs/helpers/typography.js +19 -160
  159. package/dist/cjs/helpers/variant.js +1 -11
  160. package/dist/cjs/hooks/animation/useAnimationActions.js +2 -39
  161. package/dist/cjs/hooks/animation/useAnimationConfig.js +2 -30
  162. package/dist/cjs/hooks/animation/useAnimationPreview.js +2 -31
  163. package/dist/cjs/hooks/animation/useAnimationTarget.js +2 -122
  164. package/dist/cjs/hooks/animation/useApplyAnimation.js +2 -89
  165. package/dist/cjs/hooks/articles/useArticlesQuery.js +2 -33
  166. package/dist/cjs/hooks/cart/use-add-to-cart.js +2 -20
  167. package/dist/cjs/hooks/cart/use-cart-data.js +2 -28
  168. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +2 -20
  169. package/dist/cjs/hooks/cart/use-cart-note-update.js +2 -20
  170. package/dist/cjs/hooks/cart/use-create-cart.js +2 -22
  171. package/dist/cjs/hooks/cart/use-remove-cart-item.js +2 -20
  172. package/dist/cjs/hooks/cart/use-update-cart-item.js +2 -20
  173. package/dist/cjs/hooks/shop/use-collection-query.js +2 -22
  174. package/dist/cjs/hooks/shop/use-collections-query.js +2 -17
  175. package/dist/cjs/hooks/shop/use-product-query.js +2 -22
  176. package/dist/cjs/hooks/shop/use-products-query.js +2 -63
  177. package/dist/cjs/hooks/shop/useShopifyLink.js +2 -0
  178. package/dist/cjs/hooks/shop.js +2 -135
  179. package/dist/cjs/hooks/use-current-device.js +2 -30
  180. package/dist/cjs/hooks/use-lazy-video.js +2 -15
  181. package/dist/cjs/hooks/useAnimations.js +2 -29
  182. package/dist/cjs/hooks/useCartId.js +2 -44
  183. package/dist/cjs/hooks/useCartLine.js +2 -11
  184. package/dist/cjs/hooks/useCartUI.js +2 -48
  185. package/dist/cjs/hooks/useCollection.js +2 -9
  186. package/dist/cjs/hooks/useFetchHandle.js +2 -13
  187. package/dist/cjs/hooks/useFormatMoney.js +2 -75
  188. package/dist/cjs/hooks/useI18n.js +2 -0
  189. package/dist/cjs/hooks/useInitialSwatchesOptions.js +2 -127
  190. package/dist/cjs/hooks/useInteraction.js +2 -19
  191. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +2 -10
  192. package/dist/cjs/hooks/useLoadScript.js +2 -32
  193. package/dist/cjs/hooks/useMoney.js +2 -84
  194. package/dist/cjs/hooks/usePrevious.js +2 -19
  195. package/dist/cjs/hooks/useProduct.js +2 -250
  196. package/dist/cjs/hooks/useProductList.js +2 -21
  197. package/dist/cjs/hooks/useStickyStore.js +1 -0
  198. package/dist/cjs/hooks/useSuspenseFetch.js +2 -27
  199. package/dist/cjs/hooks/useSwatchesOptions.js +2 -41
  200. package/dist/cjs/hooks/useToolbarPostPurchase.js +2 -89
  201. package/dist/cjs/index.js +1 -425
  202. package/dist/cjs/types/animations.js +1 -49
  203. package/dist/cjs/types/appAPI.js +1 -2
  204. package/dist/cjs/types/custom.js +1 -52
  205. package/dist/cjs/types/global-style.js +1 -15
  206. package/dist/cjs/types/shop.js +1 -2
  207. package/dist/esm/components/AddOn.js +2 -14
  208. package/dist/esm/components/ComponentAnimation.js +2 -13
  209. package/dist/esm/components/ComponentToolbarPreview.js +2 -748
  210. package/dist/esm/components/ComponentWrapper.js +2 -57
  211. package/dist/esm/components/ComponentWrapperPreview.js +2 -209
  212. package/dist/esm/components/Empty.js +2 -3
  213. package/dist/esm/components/InteractionSuffix.js +2 -40
  214. package/dist/esm/components/Render.js +2 -71
  215. package/dist/esm/components/Render.liquid.js +16 -301
  216. package/dist/esm/components/RenderBlock.js +2 -50
  217. package/dist/esm/components/RenderCustomCode.js +4 -55
  218. package/dist/esm/components/RenderPreview.js +2 -63
  219. package/dist/esm/components/RenderSection.js +2 -19
  220. package/dist/esm/components/ai-generator/AIContentGenerator.js +2 -250
  221. package/dist/esm/components/ai-generator/AIGenContentLoading.js +2 -83
  222. package/dist/esm/components/ai-generator/components/PickProduct.js +2 -218
  223. package/dist/esm/components/ai-generator/components/ToneAndVoice.js +2 -75
  224. package/dist/esm/components/ai-generator/hooks/useCheckingProductInside.js +1 -45
  225. package/dist/esm/components/ai-generator/hooks/useFlipPopup.js +1 -108
  226. package/dist/esm/components/ai-generator/hooks/useGettingGenerateRequest.js +1 -35
  227. package/dist/esm/components/ai-generator/hooks/useListenEventGenerate.js +1 -68
  228. package/dist/esm/components/ai-generator/icons/AIIcon.js +2 -65
  229. package/dist/esm/components/ai-generator/icons/CloseIcon.js +2 -17
  230. package/dist/esm/components/ai-generator/icons/DropdownIcon.js +2 -34
  231. package/dist/esm/components/ai-generator/icons/SearchIcon.js +2 -19
  232. package/dist/esm/components/ai-generator/icons/ShowMoreIcon.js +2 -19
  233. package/dist/esm/components/ai-generator/icons/UpgradeIcon.js +2 -25
  234. package/dist/esm/components/ai-generator/icons/WarningIcon.js +2 -29
  235. package/dist/esm/components/constant.js +1 -75
  236. package/dist/esm/components/resize/Resize.js +2 -12
  237. package/dist/esm/components/resize/Spacing.js +2 -256
  238. package/dist/esm/components/src/product/helpers/variant-presets.js +1 -54
  239. package/dist/esm/components/theme-section/CreateThemeSection.js +2 -121
  240. package/dist/esm/components/theme-section/ThemeSectionStatus.js +2 -43
  241. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +2 -124
  242. package/dist/esm/components/toolbar/Tooltip.js +2 -24
  243. package/dist/esm/constants/device.js +1 -0
  244. package/dist/esm/contexts/AddonContext.js +2 -32
  245. package/dist/esm/contexts/ArticleContext.js +2 -36
  246. package/dist/esm/contexts/ArticleListContext.js +2 -27
  247. package/dist/esm/contexts/BuilderComponent.js +2 -31
  248. package/dist/esm/contexts/BuilderContext.js +2 -36
  249. package/dist/esm/contexts/BuilderPreviewContext.js +2 -479
  250. package/dist/esm/contexts/CartLineContext.js +2 -26
  251. package/dist/esm/contexts/CollectionContext.js +2 -35
  252. package/dist/esm/contexts/I18nContext.js +2 -0
  253. package/dist/esm/contexts/ModalContext.js +2 -44
  254. package/dist/esm/contexts/PageContext.js +2 -108
  255. package/dist/esm/contexts/ProductContext.js +2 -179
  256. package/dist/esm/contexts/ProductListContext.js +2 -28
  257. package/dist/esm/contexts/SectionContext.js +2 -49
  258. package/dist/esm/contexts/ShopContext.js +2 -104
  259. package/dist/esm/graphql/fragments/analytic.generated.js +2 -4
  260. package/dist/esm/graphql/fragments/collection-detail.generated.js +2 -4
  261. package/dist/esm/graphql/fragments/collection-product.generated.js +2 -4
  262. package/dist/esm/graphql/fragments/collection.generated.js +2 -4
  263. package/dist/esm/graphql/fragments/custom-code.generated.js +2 -4
  264. package/dist/esm/graphql/fragments/custom-font.generated.js +7 -5
  265. package/dist/esm/graphql/fragments/data-seo.generated.js +2 -4
  266. package/dist/esm/graphql/fragments/media.generated.js +2 -4
  267. package/dist/esm/graphql/fragments/preview-theme-page.generated.js +6 -4
  268. package/dist/esm/graphql/fragments/product-little.generated.js +2 -4
  269. package/dist/esm/graphql/fragments/product-option-value.generated.js +2 -4
  270. package/dist/esm/graphql/fragments/product-option.generated.js +2 -4
  271. package/dist/esm/graphql/fragments/product.generated.js +2 -4
  272. package/dist/esm/graphql/fragments/published-custom-section.generated.js +2 -4
  273. package/dist/esm/graphql/fragments/published-page-section.generated.js +2 -4
  274. package/dist/esm/graphql/fragments/published-theme-page.generated.js +4 -16
  275. package/dist/esm/graphql/fragments/published-theme-style.generated.js +2 -4
  276. package/dist/esm/graphql/fragments/selected-option.generated.js +2 -4
  277. package/dist/esm/graphql/fragments/variant.generated.js +2 -4
  278. package/dist/esm/graphql/mutations/page-view-up.generated.js +2 -4
  279. package/dist/esm/graphql/queries/articles.generated.js +2 -4
  280. package/dist/esm/graphql/queries/blogs.generated.js +2 -4
  281. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +10 -22
  282. package/dist/esm/graphql/queries/collection.generated.js +8 -18
  283. package/dist/esm/graphql/queries/collections.generated.js +3 -8
  284. package/dist/esm/graphql/queries/preview-page.generated.js +6 -14
  285. package/dist/esm/graphql/queries/product-little-detail.generated.js +5 -12
  286. package/dist/esm/graphql/queries/product-medias.generated.js +2 -6
  287. package/dist/esm/graphql/queries/product-value-label.generated.js +2 -4
  288. package/dist/esm/graphql/queries/product-variants.generated.js +5 -11
  289. package/dist/esm/graphql/queries/products.generated.js +9 -20
  290. package/dist/esm/graphql/queries/{published-shop-metas.js → published-shop-metas.generated.js} +2 -4
  291. package/dist/esm/graphql/queries/published-theme-pages.generated.js +6 -20
  292. package/dist/esm/graphql/queries/shop-shopify.generated.js +2 -4
  293. package/dist/esm/graphql/queries/store-property.generated.js +2 -4
  294. package/dist/esm/graphql-app-api/queries/LibrarySaleFunnelDiscount.generated.js +2 -4
  295. package/dist/esm/graphql-app-api/queries/LibraryTemplate.generated.js +2 -4
  296. package/dist/esm/graphql-app-api/queries/SaleFunnelDiscounts.generated.js +2 -4
  297. package/dist/esm/graphql-app-api/queries/SaleFunnelOffer.generated.js +2 -4
  298. package/dist/esm/graphql-app-api/queries/ShopLibraryPage.generated.js +2 -4
  299. package/dist/esm/graphql-app-api/queries/ThemePage.generated.js +2 -4
  300. package/dist/esm/helpers/GlobalEvent.js +1 -15
  301. package/dist/esm/helpers/align.js +1 -34
  302. package/dist/esm/helpers/animations.js +1 -220
  303. package/dist/esm/helpers/background.js +1 -227
  304. package/dist/esm/helpers/backgroundImage.js +1 -0
  305. package/dist/esm/helpers/borders.js +4 -189
  306. package/dist/esm/helpers/carousel.js +1 -51
  307. package/dist/esm/helpers/clone-deep.js +1 -3
  308. package/dist/esm/helpers/cls.js +1 -14
  309. package/dist/esm/helpers/colors.js +1 -169
  310. package/dist/esm/helpers/compose-advance-style.js +1 -315
  311. package/dist/esm/helpers/composeClasses.js +1 -0
  312. package/dist/esm/helpers/const.js +1 -0
  313. package/dist/esm/helpers/constant.js +1 -19
  314. package/dist/esm/helpers/convert.js +1 -4
  315. package/dist/esm/helpers/covert-entities-html.js +1 -17
  316. package/dist/esm/helpers/css-variable.js +1 -5
  317. package/dist/esm/helpers/email.js +1 -6
  318. package/dist/esm/helpers/filter-styles.js +1 -0
  319. package/dist/esm/helpers/filter-toolbar-preview.js +2 -9
  320. package/dist/esm/helpers/flatten-connection.js +1 -7
  321. package/dist/esm/helpers/get-resonsive-value.js +1 -31
  322. package/dist/esm/helpers/get-shortname.js +1 -90
  323. package/dist/esm/helpers/icon-list.js +1 -58
  324. package/dist/esm/helpers/interaction/index.js +2 -132
  325. package/dist/esm/helpers/is-browser.js +1 -5
  326. package/dist/esm/helpers/is-defined.js +1 -5
  327. package/dist/esm/helpers/is-empty-children.js +2 -10
  328. package/dist/esm/helpers/is-safari.js +1 -5
  329. package/dist/esm/helpers/layout.js +1 -70
  330. package/dist/esm/helpers/load-script.js +1 -29
  331. package/dist/esm/helpers/loop-component.js +1 -14
  332. package/dist/esm/helpers/make-style.js +1 -149
  333. package/dist/esm/helpers/normalize-builder-data.js +1 -21
  334. package/dist/esm/helpers/pascal-to-kebab-case.js +1 -5
  335. package/dist/esm/helpers/prefetch-queries.js +1 -76
  336. package/dist/esm/helpers/product.js +1 -44
  337. package/dist/esm/helpers/queries/get-collection.js +1 -223
  338. package/dist/esm/helpers/queries/get-collections.js +1 -19
  339. package/dist/esm/helpers/queries/get-product-by-slug.js +1 -123
  340. package/dist/esm/helpers/queries/get-product.js +1 -150
  341. package/dist/esm/helpers/queries/get-products.js +1 -210
  342. package/dist/esm/helpers/query.js +1 -25
  343. package/dist/esm/helpers/radius.js +6 -132
  344. package/dist/esm/helpers/render.js +1 -82
  345. package/dist/esm/helpers/shadow.js +1 -63
  346. package/dist/esm/helpers/size.js +4 -213
  347. package/dist/esm/helpers/spacing.js +1 -40
  348. package/dist/esm/helpers/third-party/addAppBlockId.js +1 -18
  349. package/dist/esm/helpers/third-party/appConfig.js +1 -356
  350. package/dist/esm/helpers/third-party/appSetting.js +1 -1321
  351. package/dist/esm/helpers/third-party/composeAppBlockId.js +1 -9
  352. package/dist/esm/helpers/third-party/constant.js +1 -66
  353. package/dist/esm/helpers/third-party/generateAppBlockConfigs.js +1 -32
  354. package/dist/esm/helpers/third-party/getAppBlockConfig.js +1 -53
  355. package/dist/esm/helpers/third-party/getAppBlockType.js +1 -10
  356. package/dist/esm/helpers/third-party/getAppBlocks.js +1 -28
  357. package/dist/esm/helpers/third-party/mergeBlock.js +1 -17
  358. package/dist/esm/helpers/third-party/mergeBlockOrder.js +1 -45
  359. package/dist/esm/helpers/third-party/removeGPAppItems.js +1 -15
  360. package/dist/esm/helpers/tracking/fpixel.js +1 -24
  361. package/dist/esm/helpers/tracking/gtag.js +1 -87
  362. package/dist/esm/helpers/tracking/tiktokpixel.js +1 -15
  363. package/dist/esm/helpers/typography.js +19 -149
  364. package/dist/esm/helpers/variant.js +1 -9
  365. package/dist/esm/hooks/animation/useAnimationActions.js +2 -37
  366. package/dist/esm/hooks/animation/useAnimationConfig.js +2 -28
  367. package/dist/esm/hooks/animation/useAnimationPreview.js +2 -29
  368. package/dist/esm/hooks/animation/useAnimationTarget.js +2 -120
  369. package/dist/esm/hooks/animation/useApplyAnimation.js +2 -85
  370. package/dist/esm/hooks/articles/useArticlesQuery.js +2 -30
  371. package/dist/esm/hooks/cart/use-add-to-cart.js +2 -18
  372. package/dist/esm/hooks/cart/use-cart-data.js +2 -26
  373. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +2 -18
  374. package/dist/esm/hooks/cart/use-cart-note-update.js +2 -18
  375. package/dist/esm/hooks/cart/use-create-cart.js +2 -20
  376. package/dist/esm/hooks/cart/use-remove-cart-item.js +2 -18
  377. package/dist/esm/hooks/cart/use-update-cart-item.js +2 -18
  378. package/dist/esm/hooks/shop/use-collection-query.js +2 -20
  379. package/dist/esm/hooks/shop/use-collections-query.js +2 -15
  380. package/dist/esm/hooks/shop/use-product-query.js +2 -20
  381. package/dist/esm/hooks/shop/use-products-query.js +2 -59
  382. package/dist/esm/hooks/shop/useShopifyLink.js +2 -0
  383. package/dist/esm/hooks/shop.js +2 -119
  384. package/dist/esm/hooks/use-current-device.js +2 -28
  385. package/dist/esm/hooks/use-lazy-video.js +2 -13
  386. package/dist/esm/hooks/useAnimations.js +2 -27
  387. package/dist/esm/hooks/useCartId.js +2 -40
  388. package/dist/esm/hooks/useCartLine.js +2 -7
  389. package/dist/esm/hooks/useCartUI.js +2 -44
  390. package/dist/esm/hooks/useCollection.js +2 -7
  391. package/dist/esm/hooks/useFetchHandle.js +2 -11
  392. package/dist/esm/hooks/useFormatMoney.js +2 -71
  393. package/dist/esm/hooks/useI18n.js +2 -0
  394. package/dist/esm/hooks/useInitialSwatchesOptions.js +2 -123
  395. package/dist/esm/hooks/useInteraction.js +2 -17
  396. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +2 -6
  397. package/dist/esm/hooks/useLoadScript.js +2 -28
  398. package/dist/esm/hooks/useMoney.js +2 -80
  399. package/dist/esm/hooks/usePrevious.js +2 -17
  400. package/dist/esm/hooks/useProduct.js +2 -233
  401. package/dist/esm/hooks/useProductList.js +2 -16
  402. package/dist/esm/hooks/useStickyStore.js +1 -0
  403. package/dist/esm/hooks/useSuspenseFetch.js +2 -23
  404. package/dist/esm/hooks/useSwatchesOptions.js +2 -37
  405. package/dist/esm/hooks/useToolbarPostPurchase.js +2 -87
  406. package/dist/esm/index.js +1 -119
  407. package/dist/esm/types/animations.js +1 -49
  408. package/dist/esm/types/custom.js +1 -52
  409. package/dist/esm/types/global-style.js +1 -12
  410. package/dist/types/index.d.ts +12025 -8969
  411. package/package.json +6 -6
  412. package/dist/cjs/web-components/src/helpers/styles/constant.js +0 -9
  413. package/dist/esm/web-components/src/helpers/styles/constant.js +0 -7
@@ -1,223 +1 @@
1
- import { CollectionDetailFilterDocument } from '../../graphql/queries/collection-detail-filter.generated.js';
2
- import { ProductVariantsDocument } from '../../graphql/queries/product-variants.generated.js';
3
- import { isDefined } from '../is-defined.js';
4
-
5
- const PRODUCT_PER_PAGE = 8; // number of products per page
6
- function productSortedByOrder(key) {
7
- switch(key){
8
- case 'TITLE_ASC':
9
- return {
10
- direction: 'ASC',
11
- field: 'TITLE'
12
- };
13
- case 'TITLE_DESC':
14
- return {
15
- direction: 'DESC',
16
- field: 'TITLE'
17
- };
18
- case 'CREATED_AT_ASC':
19
- return {
20
- direction: 'ASC',
21
- field: 'CREATED_AT'
22
- };
23
- case 'CREATED_AT_DESC':
24
- return {
25
- direction: 'DESC',
26
- field: 'CREATED_AT'
27
- };
28
- case 'none':
29
- default:
30
- return {
31
- direction: 'ASC',
32
- field: 'TITLE'
33
- };
34
- }
35
- }
36
- const getCollection = async (fetcher, arg)=>{
37
- const collections = await loopFetchCollection(fetcher, arg);
38
- if (!collections) {
39
- throw new Error('collections not found');
40
- }
41
- // merge product collection variant
42
- const mergeProducts = await mergeProductCollectionVariant(fetcher, collections, arg.isSample);
43
- return mergeProducts;
44
- };
45
- const fetchCollection = async (fetcher, variables)=>{
46
- return fetcher([
47
- CollectionDetailFilterDocument,
48
- variables
49
- ]);
50
- };
51
- const calculateFirstProduct = (numberOfProducts, currentPage, productsPerPage)=>{
52
- const remainingProducts = numberOfProducts - productsPerPage * currentPage;
53
- if (numberOfProducts < productsPerPage) return numberOfProducts;
54
- return remainingProducts > 0 ? productsPerPage : productsPerPage + remainingProducts;
55
- };
56
- const chunkArray = (array, size)=>{
57
- const chunked_arr = [];
58
- let index = 0;
59
- while(index < array.length){
60
- chunked_arr.push(array.slice(index, size + index));
61
- index += size;
62
- }
63
- return chunked_arr;
64
- };
65
- const loopFetchCollection = async (fetcher, arg)=>{
66
- let variables; // variables of collection query
67
- let productAfterFetcher; // product after of collection query
68
- let dataCollection; // data of collection query
69
- let hasNextPage; //
70
- let firstCollection;
71
- let currentPage = 1;
72
- if (arg.numberOfProducts) {
73
- const pages = Math.ceil(arg.numberOfProducts / PRODUCT_PER_PAGE);
74
- while(currentPage <= pages && hasNextPage !== false){
75
- variables = {
76
- firstVariant: 1,
77
- firstMedia: 30,
78
- orderBy: {
79
- field: 'PLATFORM_CREATED_AT',
80
- direction: 'DESC'
81
- },
82
- orderByMedia: {
83
- field: 'POSITION',
84
- direction: 'ASC'
85
- },
86
- firstProduct: calculateFirstProduct(arg.numberOfProducts, currentPage, PRODUCT_PER_PAGE),
87
- ...!arg.id || arg.id.toLowerCase() === 'latest' ? {
88
- where: {
89
- hasCollectionProducts: true,
90
- isSample: arg.isSample
91
- }
92
- } : {
93
- where: {
94
- baseID: arg.id
95
- }
96
- },
97
- orderByProduct: productSortedByOrder(arg.orderBy),
98
- whereProduct: {
99
- status: 'ACTIVE',
100
- ...arg.isStorefront && {
101
- isStorefront: arg.isStorefront
102
- },
103
- isSample: arg.isSample
104
- },
105
- ...productAfterFetcher ? {
106
- productsAfter: productAfterFetcher
107
- } : undefined
108
- };
109
- const pageData = await fetchCollection(fetcher, variables);
110
- productAfterFetcher = pageData?.collections?.edges?.[0]?.node?.products?.pageInfo?.endCursor;
111
- if (currentPage === 1) {
112
- dataCollection = pageData; // set data of first page
113
- firstCollection = dataCollection?.collections?.edges?.[0];
114
- } else if (firstCollection?.node?.products && pageData?.collections?.edges?.[0]?.node?.products?.edges) {
115
- // concat new values to the old ones
116
- firstCollection.node.products = {
117
- pageInfo: pageData?.collections?.edges?.[0]?.node?.products?.pageInfo,
118
- edges: firstCollection.node?.products?.edges.concat(pageData?.collections?.edges?.[0]?.node?.products?.edges)
119
- };
120
- }
121
- currentPage++;
122
- // hasNextPage = false if there is no more pages then break the loop
123
- if (!firstCollection?.node?.products?.pageInfo?.hasNextPage) {
124
- hasNextPage = false;
125
- break;
126
- }
127
- }
128
- return dataCollection;
129
- }
130
- };
131
- const mergeProductCollectionVariant = async (fetcher, collection, isSample)=>{
132
- const node = collection?.collections?.edges?.[0]?.node;
133
- if (!node) return collection;
134
- const productList = node?.products?.edges;
135
- const listBaseId = productList?.map((product)=>product?.node?.baseID).filter(isDefined);
136
- const ProductListWithVariants = await fetchVariantsByBaseIds(fetcher, {
137
- ids: listBaseId,
138
- isSample
139
- });
140
- // mapping variant to product list in collections
141
- const newProductList = productList?.map((product)=>{
142
- const productVariants = ProductListWithVariants?.variants?.edges?.filter((productV)=>productV?.node?.id === product?.node?.id);
143
- return {
144
- ...product,
145
- node: product.node ? {
146
- ...product.node,
147
- variants: product.node?.variants ? {
148
- ...product.node?.variants,
149
- edges: productVariants?.[0]?.node?.variants?.edges ?? product.node?.variants.edges ?? []
150
- } : undefined
151
- } : undefined
152
- };
153
- }) ?? [];
154
- const newCollection = {
155
- ...collection,
156
- collections: {
157
- edges: [
158
- {
159
- node: {
160
- ...node,
161
- products: {
162
- edges: newProductList
163
- }
164
- },
165
- cursor: undefined
166
- }
167
- ]
168
- }
169
- };
170
- return newCollection;
171
- };
172
- const fetchVariantsByBaseIds = async (fetcher, { ids, isSample, isStorefront })=>{
173
- const chunkedIds = chunkArray(ids ?? [], 8);
174
- const defaultEdges = [];
175
- const query = async (variables)=>{
176
- try {
177
- return await fetcher([
178
- ProductVariantsDocument,
179
- {
180
- ...variables,
181
- orderByVariant: {
182
- field: 'POSITION',
183
- direction: 'ASC'
184
- }
185
- }
186
- ]);
187
- } catch {
188
- return {};
189
- }
190
- };
191
- const promises = chunkedIds.map((chunkedId)=>{
192
- const variables = {
193
- firstVariant: 100,
194
- first: chunkedId.length,
195
- orderBy: {
196
- field: 'TITLE',
197
- direction: 'ASC'
198
- },
199
- where: {
200
- status: 'ACTIVE',
201
- isSample,
202
- ...isStorefront && {
203
- isStorefront
204
- },
205
- ...chunkedId.length && {
206
- baseIDIn: chunkedId.sort()
207
- }
208
- }
209
- };
210
- return query(variables);
211
- });
212
- const responses = await Promise.all(promises);
213
- const edges = responses?.reduce((acc, response)=>{
214
- return acc.concat(response?.variants?.edges ?? []);
215
- }, defaultEdges);
216
- return {
217
- variants: {
218
- edges
219
- }
220
- };
221
- };
222
-
223
- export { calculateFirstProduct, getCollection };
1
+ import{CollectionDetailFilterDocument as e}from"../../graphql/queries/collection-detail-filter.generated.js";import{ProductVariantsDocument as t}from"../../graphql/queries/product-variants.generated.js";import{isDefined as r}from"../is-defined.js";let PRODUCT_PER_PAGE=8;function productSortedByOrder(e){switch(e){case"TITLE_ASC":case"none":default:return{direction:"ASC",field:"TITLE"};case"TITLE_DESC":return{direction:"DESC",field:"TITLE"};case"CREATED_AT_ASC":return{direction:"ASC",field:"CREATED_AT"};case"CREATED_AT_DESC":return{direction:"DESC",field:"CREATED_AT"}}}let getCollection=async(e,t)=>{let r=await loopFetchCollection(e,t);if(!r)throw Error("collections not found");let o=await mergeProductCollectionVariant(e,r,t.isSample);return o},fetchCollection=async(t,r)=>t([e,r]),calculateFirstProduct=(e,t,r)=>{let o=e-r*t;return e<r?e:o>0?r:r+o},chunkArray=(e,t)=>{let r=[],o=0;for(;o<e.length;)r.push(e.slice(o,t+o)),o+=t;return r},loopFetchCollection=async(e,t)=>{let r,o,d,i,n;let s=1;if(t.numberOfProducts){let a=Math.ceil(t.numberOfProducts/8);for(;s<=a&&!1!==i;){r={firstVariant:1,firstMedia:30,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},firstProduct:calculateFirstProduct(t.numberOfProducts,s,8),...t.id&&"latest"!==t.id.toLowerCase()?{where:{baseID:t.id}}:{where:{hasCollectionProducts:!0,isSample:t.isSample}},orderByProduct:productSortedByOrder(t.orderBy),whereProduct:{status:"ACTIVE",...t.isStorefront&&{isStorefront:t.isStorefront},isSample:t.isSample},...o?{productsAfter:o}:void 0};let a=await fetchCollection(e,r);if(o=a?.collections?.edges?.[0]?.node?.products?.pageInfo?.endCursor,1===s?(d=a,n=d?.collections?.edges?.[0]):n?.node?.products&&a?.collections?.edges?.[0]?.node?.products?.edges&&(n.node.products={pageInfo:a?.collections?.edges?.[0]?.node?.products?.pageInfo,edges:n.node?.products?.edges.concat(a?.collections?.edges?.[0]?.node?.products?.edges)}),s++,!n?.node?.products?.pageInfo?.hasNextPage){i=!1;break}}return d}},mergeProductCollectionVariant=async(e,t,o)=>{let d=t?.collections?.edges?.[0]?.node;if(!d)return t;let i=d?.products?.edges,n=i?.map(e=>e?.node?.baseID).filter(r),s=await fetchVariantsByBaseIds(e,{ids:n,isSample:o}),a=i?.map(e=>{let t=s?.variants?.edges?.filter(t=>t?.node?.id===e?.node?.id);return{...e,node:e.node?{...e.node,variants:e.node?.variants?{...e.node?.variants,edges:t?.[0]?.node?.variants?.edges??e.node?.variants.edges??[]}:void 0}:void 0}})??[],c={...t,collections:{edges:[{node:{...d,products:{edges:a}},cursor:void 0}]}};return c},fetchVariantsByBaseIds=async(e,{ids:r,isSample:o,isStorefront:d})=>{let i=chunkArray(r??[],8),n=[],s=async r=>{try{return await e([t,{...r,orderByVariant:{field:"POSITION",direction:"ASC"}}])}catch{return{}}},a=i.map(e=>{let t={firstVariant:100,first:e.length,orderBy:{field:"TITLE",direction:"ASC"},where:{status:"ACTIVE",isSample:o,...d&&{isStorefront:d},...e.length&&{baseIDIn:e.sort()}}};return s(t)}),c=await Promise.all(a),l=c?.reduce((e,t)=>e.concat(t?.variants?.edges??[]),n);return{variants:{edges:l}}};export{calculateFirstProduct,getCollection};
@@ -1,19 +1 @@
1
- import { CollectionsDocument } from '../../graphql/queries/collections.generated.js';
2
-
3
- const getCollections = async (fetcher, variable)=>{
4
- const collections = await fetchCollections(fetcher, variable ?? {});
5
- if (!collections) {
6
- throw new Error('Collection not found');
7
- }
8
- return {
9
- ...collections
10
- };
11
- };
12
- const fetchCollections = async (fetcher, variables)=>{
13
- return fetcher([
14
- CollectionsDocument,
15
- variables
16
- ]);
17
- };
18
-
19
- export { getCollections };
1
+ import{CollectionsDocument as e}from"../../graphql/queries/collections.generated.js";let getCollections=async(e,o)=>{let t=await fetchCollections(e,o??{});if(!t)throw Error("Collection not found");return{...t}},fetchCollections=async(o,t)=>o([e,t]);export{getCollections};
@@ -1,123 +1 @@
1
- import { ProductLittleDetailDocument } from '../../graphql/queries/product-little-detail.generated.js';
2
- import { ProductMediasDocument } from '../../graphql/queries/product-medias.generated.js';
3
- import { ProductVariantsDocument } from '../../graphql/queries/product-variants.generated.js';
4
-
5
- const getProductBySlug = async (fetcher, slug)=>{
6
- const [product, variants, medias] = await Promise.all([
7
- fetchProduct(fetcher, slug),
8
- fetchVariants(fetcher, slug),
9
- fetchMedias(fetcher, slug)
10
- ]);
11
- if (!product) {
12
- throw new Error('Product not found');
13
- }
14
- return {
15
- ...product,
16
- variants: {
17
- edges: variants
18
- },
19
- medias: {
20
- edges: medias
21
- }
22
- };
23
- };
24
- const orderBy = {
25
- field: 'PLATFORM_UPDATED_AT',
26
- direction: 'DESC'
27
- };
28
- const fetchProduct = async (fetcher, handle, isStorefront)=>{
29
- const variables = {
30
- orderBy,
31
- where: {
32
- status: 'ACTIVE',
33
- handle,
34
- ...isStorefront && {
35
- isStorefront
36
- }
37
- }
38
- };
39
- const response = await fetcher([
40
- ProductLittleDetailDocument,
41
- variables
42
- ]);
43
- return response.product?.edges?.[0]?.node;
44
- };
45
- const fetchVariants = async (fetcher, handle, isStorefront)=>{
46
- const initVariables = {
47
- orderBy,
48
- orderByVariant: {
49
- field: 'POSITION',
50
- direction: 'ASC'
51
- },
52
- where: {
53
- status: 'ACTIVE',
54
- handle,
55
- ...isStorefront && {
56
- isStorefront
57
- }
58
- }
59
- };
60
- const query = async (variables, olds)=>{
61
- try {
62
- const response = await fetcher([
63
- ProductVariantsDocument,
64
- variables
65
- ]);
66
- const product = response.variants?.edges?.[0];
67
- const items = olds?.concat(product?.node?.variants?.edges ?? []);
68
- if (product?.node?.variants?.pageInfo?.hasNextPage) {
69
- return query({
70
- ...variables,
71
- afterVariant: product?.node?.variants?.pageInfo.endCursor
72
- }, items);
73
- }
74
- return items ?? [];
75
- } catch {
76
- return olds ?? [];
77
- }
78
- };
79
- return query(initVariables, []);
80
- };
81
- const fetchMedias = async (fetcher, handle, isStorefront)=>{
82
- const initVariables = {
83
- orderBy,
84
- where: {
85
- status: 'ACTIVE',
86
- handle,
87
- ...isStorefront && {
88
- isStorefront
89
- }
90
- },
91
- orderByMedia: {
92
- field: 'POSITION',
93
- direction: 'ASC'
94
- }
95
- };
96
- const query = async (variables)=>{
97
- try {
98
- const response = await fetcher([
99
- ProductMediasDocument,
100
- variables
101
- ]);
102
- const product = response.medias?.edges?.[0];
103
- const items = product?.node?.medias?.edges ?? [];
104
- if (product?.node?.medias?.pageInfo?.hasNextPage) {
105
- try {
106
- const newData = await query({
107
- ...variables,
108
- afterMedia: product?.node?.medias?.pageInfo.endCursor
109
- });
110
- return items.concat(newData);
111
- } catch {
112
- return items;
113
- }
114
- }
115
- return items;
116
- } catch {
117
- return [];
118
- }
119
- };
120
- return query(initVariables);
121
- };
122
-
123
- export { getProductBySlug };
1
+ import{ProductLittleDetailDocument as e}from"../../graphql/queries/product-little-detail.generated.js";import{ProductMediasDocument as r}from"../../graphql/queries/product-medias.generated.js";import{ProductVariantsDocument as t}from"../../graphql/queries/product-variants.generated.js";let getProductBySlug=async(e,r)=>{let[t,a,d]=await Promise.all([fetchProduct(e,r),fetchVariants(e,r),fetchMedias(e,r)]);if(!t)throw Error("Product not found");return{...t,variants:{edges:a},medias:{edges:d}}},orderBy={field:"PLATFORM_UPDATED_AT",direction:"DESC"},fetchProduct=async(r,t,a)=>{let d={orderBy,where:{status:"ACTIVE",handle:t,...a&&{isStorefront:a}}},n=await r([e,d]);return n.product?.edges?.[0]?.node},fetchVariants=async(e,r,a)=>{let d={orderBy,orderByVariant:{field:"POSITION",direction:"ASC"},where:{status:"ACTIVE",handle:r,...a&&{isStorefront:a}}},n=async(r,a)=>{try{let d=await e([t,r]),i=d.variants?.edges?.[0],s=a?.concat(i?.node?.variants?.edges??[]);if(i?.node?.variants?.pageInfo?.hasNextPage)return n({...r,afterVariant:i?.node?.variants?.pageInfo.endCursor},s);return s??[]}catch{return a??[]}};return n(d,[])},fetchMedias=async(e,t,a)=>{let d={orderBy,where:{status:"ACTIVE",handle:t,...a&&{isStorefront:a}},orderByMedia:{field:"POSITION",direction:"ASC"}},n=async t=>{try{let a=await e([r,t]),d=a.medias?.edges?.[0],i=d?.node?.medias?.edges??[];if(d?.node?.medias?.pageInfo?.hasNextPage)try{let e=await n({...t,afterMedia:d?.node?.medias?.pageInfo.endCursor});return i.concat(e)}catch{}return i}catch{return[]}};return n(d)};export{getProductBySlug};
@@ -1,150 +1 @@
1
- import { ProductLittleDetailDocument } from '../../graphql/queries/product-little-detail.generated.js';
2
- import { ProductMediasDocument } from '../../graphql/queries/product-medias.generated.js';
3
- import { ProductVariantsDocument } from '../../graphql/queries/product-variants.generated.js';
4
-
5
- const getProduct = async (fetcher, { id, isSample, isStorefront })=>{
6
- const [product, variants, medias] = await Promise.all([
7
- fetchProduct(fetcher, {
8
- id,
9
- isSample,
10
- isStorefront
11
- }),
12
- fetchVariants(fetcher, {
13
- id,
14
- isSample,
15
- isStorefront
16
- }),
17
- fetchMedias(fetcher, {
18
- id,
19
- isSample,
20
- isStorefront
21
- })
22
- ]);
23
- if (!product) {
24
- throw new Error('Product not found');
25
- }
26
- return {
27
- ...product,
28
- variants: {
29
- edges: variants
30
- },
31
- medias: {
32
- edges: medias
33
- }
34
- };
35
- };
36
- const orderBy = {
37
- field: 'CREATED_AT',
38
- direction: 'DESC'
39
- };
40
- const fetchProduct = async (fetcher, { id, isSample, isStorefront })=>{
41
- const variables = {
42
- orderBy,
43
- where: {
44
- isSample,
45
- ...isStorefront && {
46
- isStorefront
47
- },
48
- ...(!id || id && id.toLowerCase() == 'latest') && {
49
- status: 'ACTIVE'
50
- },
51
- ...id && id.toLowerCase() !== 'latest' && {
52
- baseID: id
53
- }
54
- }
55
- };
56
- const response = await fetcher([
57
- ProductLittleDetailDocument,
58
- variables
59
- ]);
60
- return response.product?.edges?.[0]?.node;
61
- };
62
- const fetchVariants = async (fetcher, { id, isSample, isStorefront })=>{
63
- const initVariables = {
64
- orderBy,
65
- where: {
66
- isSample,
67
- ...isStorefront && {
68
- isStorefront
69
- },
70
- ...(!id || id && id.toLowerCase() == 'latest') && {
71
- status: 'ACTIVE'
72
- },
73
- ...id && id.toLowerCase() !== 'latest' && {
74
- baseID: id
75
- }
76
- },
77
- orderByVariant: {
78
- field: 'POSITION',
79
- direction: 'ASC'
80
- }
81
- };
82
- const query = async (variables, olds)=>{
83
- try {
84
- const response = await fetcher([
85
- ProductVariantsDocument,
86
- variables
87
- ]);
88
- const product = response.variants?.edges?.[0];
89
- const items = olds?.concat(product?.node?.variants?.edges ?? []);
90
- if (product?.node?.variants?.pageInfo?.hasNextPage) {
91
- return query({
92
- ...variables,
93
- afterVariant: product?.node?.variants?.pageInfo.endCursor
94
- }, items);
95
- }
96
- return items ?? [];
97
- } catch {
98
- return olds ?? [];
99
- }
100
- };
101
- return query(initVariables, []);
102
- };
103
- const fetchMedias = async (fetcher, { id, isSample, isStorefront })=>{
104
- const initVariables = {
105
- orderBy,
106
- where: {
107
- isSample,
108
- ...isStorefront && {
109
- isStorefront
110
- },
111
- ...(!id || id && id.toLowerCase() == 'latest') && {
112
- status: 'ACTIVE'
113
- },
114
- ...id && id.toLowerCase() !== 'latest' && {
115
- baseID: id
116
- }
117
- },
118
- orderByMedia: {
119
- field: 'POSITION',
120
- direction: 'ASC'
121
- }
122
- };
123
- const query = async (variables)=>{
124
- try {
125
- const response = await fetcher([
126
- ProductMediasDocument,
127
- variables
128
- ]);
129
- const product = response.medias?.edges?.[0];
130
- const items = product?.node?.medias?.edges ?? [];
131
- if (product?.node?.medias?.pageInfo?.hasNextPage) {
132
- try {
133
- const newData = await query({
134
- ...variables,
135
- afterMedia: product?.node?.medias?.pageInfo.endCursor
136
- });
137
- return items.concat(newData);
138
- } catch {
139
- return items;
140
- }
141
- }
142
- return items;
143
- } catch {
144
- return [];
145
- }
146
- };
147
- return query(initVariables);
148
- };
149
-
150
- export { fetchMedias, fetchVariants, getProduct };
1
+ import{ProductLittleDetailDocument as e}from"../../graphql/queries/product-little-detail.generated.js";import{ProductMediasDocument as t}from"../../graphql/queries/product-medias.generated.js";import{ProductVariantsDocument as r}from"../../graphql/queries/product-variants.generated.js";let getProduct=async(e,{id:t,isSample:r,isStorefront:a})=>{let[s,o,d]=await Promise.all([fetchProduct(e,{id:t,isSample:r,isStorefront:a}),fetchVariants(e,{id:t,isSample:r,isStorefront:a}),fetchMedias(e,{id:t,isSample:r,isStorefront:a})]);if(!s)throw Error("Product not found");return{...s,variants:{edges:o},medias:{edges:d}}},orderBy={field:"CREATED_AT",direction:"DESC"},fetchProduct=async(t,{id:r,isSample:a,isStorefront:s})=>{let o={orderBy,where:{isSample:a,...s&&{isStorefront:s},...(!r||r&&"latest"==r.toLowerCase())&&{status:"ACTIVE"},...r&&"latest"!==r.toLowerCase()&&{baseID:r}}},d=await t([e,o]);return d.product?.edges?.[0]?.node},fetchVariants=async(e,{id:t,isSample:a,isStorefront:s})=>{let o={orderBy,where:{isSample:a,...s&&{isStorefront:s},...(!t||t&&"latest"==t.toLowerCase())&&{status:"ACTIVE"},...t&&"latest"!==t.toLowerCase()&&{baseID:t}},orderByVariant:{field:"POSITION",direction:"ASC"}},d=async(t,a)=>{try{let s=await e([r,t]),o=s.variants?.edges?.[0],n=a?.concat(o?.node?.variants?.edges??[]);if(o?.node?.variants?.pageInfo?.hasNextPage)return d({...t,afterVariant:o?.node?.variants?.pageInfo.endCursor},n);return n??[]}catch{return a??[]}};return d(o,[])},fetchMedias=async(e,{id:r,isSample:a,isStorefront:s})=>{let o={orderBy,where:{isSample:a,...s&&{isStorefront:s},...(!r||r&&"latest"==r.toLowerCase())&&{status:"ACTIVE"},...r&&"latest"!==r.toLowerCase()&&{baseID:r}},orderByMedia:{field:"POSITION",direction:"ASC"}},d=async r=>{try{let a=await e([t,r]),s=a.medias?.edges?.[0],o=s?.node?.medias?.edges??[];if(s?.node?.medias?.pageInfo?.hasNextPage)try{let e=await d({...r,afterMedia:s?.node?.medias?.pageInfo.endCursor});return o.concat(e)}catch{}return o}catch{return[]}};return d(o)};export{fetchMedias,fetchVariants,getProduct};