@gem-sdk/core 22.0.0-dev.62 → 22.0.0-dev.64

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 (82) hide show
  1. package/dist/cjs/components/ComponentToolbarPreview.js +1 -1
  2. package/dist/cjs/components/ComponentWrapperPreview.js +1 -1
  3. package/dist/cjs/components/InteractionSuffix.js +1 -1
  4. package/dist/cjs/components/Render.liquid.js +10 -10
  5. package/dist/cjs/components/RenderCustomCode.js +3 -3
  6. package/dist/cjs/components/resize/Spacing.js +1 -1
  7. package/dist/cjs/components/theme-section/CreateThemeSection.js +1 -1
  8. package/dist/cjs/components/theme-section/ThemeSectionTooltip.js +1 -1
  9. package/dist/cjs/components/upgrade-element/UpgradeButton.js +1 -1
  10. package/dist/cjs/components/upgrade-element/UpgradeElement.js +1 -1
  11. package/dist/cjs/constants/plan.js +1 -0
  12. package/dist/cjs/contexts/ProductContext.js +1 -1
  13. package/dist/cjs/graphql-shopify/articles.generated.js +51 -0
  14. package/dist/cjs/graphql-shopify/blogs.generated.js +62 -0
  15. package/dist/cjs/graphql-shopify/collections.generated.js +269 -0
  16. package/dist/cjs/graphql-shopify/products.generated.js +280 -0
  17. package/dist/cjs/helpers/builder-api-bridge/fetchBuilderApi.js +1 -0
  18. package/dist/cjs/helpers/builder-api-bridge/shouldUseBridgeFetcher.js +1 -0
  19. package/dist/cjs/helpers/convert.js +1 -1
  20. package/dist/cjs/helpers/interaction/index.js +1 -1
  21. package/dist/cjs/helpers/normalize-articles-query.js +1 -0
  22. package/dist/cjs/helpers/normalize-blogs-query.js +1 -0
  23. package/dist/cjs/helpers/normalize-collections-query.js +1 -0
  24. package/dist/cjs/helpers/normalize-products-query.js +1 -0
  25. package/dist/cjs/helpers/queries/get-collection.js +1 -1
  26. package/dist/cjs/helpers/queries/get-shopify-articles.js +1 -0
  27. package/dist/cjs/helpers/queries/get-shopify-collection.js +1 -0
  28. package/dist/cjs/helpers/queries/get-shopify-collections.js +1 -0
  29. package/dist/cjs/helpers/queries/get-shopify-product.js +1 -1
  30. package/dist/cjs/helpers/queries/get-shopify-products.js +1 -0
  31. package/dist/cjs/helpers/shopify-query-terms.js +1 -0
  32. package/dist/cjs/hooks/articles/useArticlesQuery.js +1 -1
  33. package/dist/cjs/hooks/shop/use-collection-query.js +1 -1
  34. package/dist/cjs/hooks/shop/use-collections-query.js +1 -1
  35. package/dist/cjs/hooks/shop/use-product-query.js +1 -1
  36. package/dist/cjs/hooks/shop/use-products-query.js +1 -1
  37. package/dist/cjs/hooks/useAnimations.js +1 -1
  38. package/dist/cjs/hooks/useInitialSwatchesOptions.js +1 -1
  39. package/dist/cjs/hooks/useProduct.js +1 -1
  40. package/dist/cjs/index.js +1 -1
  41. package/dist/esm/components/ComponentToolbarPreview.js +1 -1
  42. package/dist/esm/components/ComponentWrapperPreview.js +1 -1
  43. package/dist/esm/components/InteractionSuffix.js +1 -1
  44. package/dist/esm/components/Render.liquid.js +8 -8
  45. package/dist/esm/components/RenderCustomCode.js +3 -3
  46. package/dist/esm/components/resize/Spacing.js +1 -1
  47. package/dist/esm/components/theme-section/CreateThemeSection.js +1 -1
  48. package/dist/esm/components/theme-section/ThemeSectionTooltip.js +1 -1
  49. package/dist/esm/components/upgrade-element/UpgradeButton.js +1 -1
  50. package/dist/esm/components/upgrade-element/UpgradeElement.js +1 -1
  51. package/dist/esm/constants/plan.js +1 -0
  52. package/dist/esm/contexts/ProductContext.js +1 -1
  53. package/dist/esm/graphql-shopify/articles.generated.js +51 -0
  54. package/dist/esm/graphql-shopify/blogs.generated.js +62 -0
  55. package/dist/esm/graphql-shopify/collections.generated.js +269 -0
  56. package/dist/esm/graphql-shopify/products.generated.js +280 -0
  57. package/dist/esm/helpers/builder-api-bridge/fetchBuilderApi.js +1 -0
  58. package/dist/esm/helpers/builder-api-bridge/shouldUseBridgeFetcher.js +1 -0
  59. package/dist/esm/helpers/convert.js +1 -1
  60. package/dist/esm/helpers/interaction/index.js +1 -1
  61. package/dist/esm/helpers/normalize-articles-query.js +1 -0
  62. package/dist/esm/helpers/normalize-blogs-query.js +1 -0
  63. package/dist/esm/helpers/normalize-collections-query.js +1 -0
  64. package/dist/esm/helpers/normalize-products-query.js +1 -0
  65. package/dist/esm/helpers/queries/get-collection.js +1 -1
  66. package/dist/esm/helpers/queries/get-shopify-articles.js +1 -0
  67. package/dist/esm/helpers/queries/get-shopify-collection.js +1 -0
  68. package/dist/esm/helpers/queries/get-shopify-collections.js +1 -0
  69. package/dist/esm/helpers/queries/get-shopify-product.js +1 -1
  70. package/dist/esm/helpers/queries/get-shopify-products.js +1 -0
  71. package/dist/esm/helpers/shopify-query-terms.js +1 -0
  72. package/dist/esm/hooks/articles/useArticlesQuery.js +1 -1
  73. package/dist/esm/hooks/shop/use-collection-query.js +1 -1
  74. package/dist/esm/hooks/shop/use-collections-query.js +1 -1
  75. package/dist/esm/hooks/shop/use-product-query.js +1 -1
  76. package/dist/esm/hooks/shop/use-products-query.js +1 -1
  77. package/dist/esm/hooks/useAnimations.js +1 -1
  78. package/dist/esm/hooks/useInitialSwatchesOptions.js +1 -1
  79. package/dist/esm/hooks/useProduct.js +1 -1
  80. package/dist/esm/index.js +1 -1
  81. package/dist/types/index.d.ts +59594 -30793
  82. package/package.json +3 -3
@@ -0,0 +1,280 @@
1
+ function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class t extends String{toString(){return this.value}constructor(t,i){super(t),e(this,"__apiType",void 0),e(this,"value",void 0),e(this,"__meta__",void 0),this.value=t,this.__meta__=i}}let i=new t(`
2
+ query ShopifyProducts($first: Int = 10, $after: String, $query: String, $sortKey: ProductSortKeys = ID, $reverse: Boolean = false, $firstOption: Int = 3, $firstCollection: Int = 20, $afterCollection: String, $firstMedia: Int = 20, $afterMedia: String, $sortKeyMedia: ProductMediaSortKeys = POSITION, $reverseMedia: Boolean = false, $firstVariant: Int = 50, $afterVariant: String, $sortKeyVariant: ProductVariantSortKeys = POSITION, $reverseVariant: Boolean = false) {
3
+ products(
4
+ first: $first
5
+ after: $after
6
+ query: $query
7
+ sortKey: $sortKey
8
+ reverse: $reverse
9
+ ) {
10
+ edges {
11
+ cursor
12
+ node {
13
+ id
14
+ handle
15
+ title
16
+ description
17
+ descriptionHtml
18
+ vendor
19
+ tags
20
+ createdAt
21
+ featuredMedia {
22
+ id
23
+ alt
24
+ mediaContentType
25
+ status
26
+ preview {
27
+ image {
28
+ id
29
+ url
30
+ width
31
+ height
32
+ altText
33
+ }
34
+ }
35
+ ... on MediaImage {
36
+ mimeType
37
+ image {
38
+ id
39
+ url
40
+ width
41
+ height
42
+ altText
43
+ }
44
+ }
45
+ ... on Video {
46
+ duration
47
+ filename
48
+ sources {
49
+ url
50
+ format
51
+ mimeType
52
+ width
53
+ height
54
+ }
55
+ }
56
+ ... on ExternalVideo {
57
+ host
58
+ embedUrl
59
+ originUrl
60
+ }
61
+ ... on Model3d {
62
+ filename
63
+ sources {
64
+ url
65
+ format
66
+ mimeType
67
+ }
68
+ }
69
+ }
70
+ options(first: $firstOption) {
71
+ id
72
+ name
73
+ position
74
+ optionValues {
75
+ id
76
+ name
77
+ hasVariants
78
+ swatch {
79
+ color
80
+ image {
81
+ id
82
+ image {
83
+ url
84
+ width
85
+ height
86
+ altText
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ collections(first: $firstCollection, after: $afterCollection) {
93
+ edges {
94
+ cursor
95
+ node {
96
+ id
97
+ handle
98
+ title
99
+ }
100
+ }
101
+ pageInfo {
102
+ hasNextPage
103
+ endCursor
104
+ }
105
+ }
106
+ media(
107
+ first: $firstMedia
108
+ after: $afterMedia
109
+ sortKey: $sortKeyMedia
110
+ reverse: $reverseMedia
111
+ ) {
112
+ edges {
113
+ cursor
114
+ node {
115
+ id
116
+ alt
117
+ mediaContentType
118
+ status
119
+ preview {
120
+ image {
121
+ id
122
+ url
123
+ width
124
+ height
125
+ altText
126
+ }
127
+ }
128
+ ... on MediaImage {
129
+ mimeType
130
+ image {
131
+ id
132
+ url
133
+ width
134
+ height
135
+ altText
136
+ }
137
+ }
138
+ ... on Video {
139
+ duration
140
+ filename
141
+ sources {
142
+ url
143
+ format
144
+ mimeType
145
+ width
146
+ height
147
+ }
148
+ }
149
+ ... on ExternalVideo {
150
+ host
151
+ embedUrl
152
+ originUrl
153
+ }
154
+ ... on Model3d {
155
+ filename
156
+ sources {
157
+ url
158
+ format
159
+ mimeType
160
+ }
161
+ }
162
+ }
163
+ }
164
+ pageInfo {
165
+ hasNextPage
166
+ endCursor
167
+ }
168
+ }
169
+ variants(
170
+ first: $firstVariant
171
+ after: $afterVariant
172
+ sortKey: $sortKeyVariant
173
+ reverse: $reverseVariant
174
+ ) {
175
+ edges {
176
+ cursor
177
+ node {
178
+ id
179
+ title
180
+ sku
181
+ barcode
182
+ position
183
+ price
184
+ compareAtPrice
185
+ availableForSale
186
+ inventoryPolicy
187
+ inventoryQuantity
188
+ selectedOptions {
189
+ name
190
+ value
191
+ }
192
+ inventoryItem {
193
+ id
194
+ sku
195
+ tracked
196
+ requiresShipping
197
+ unitCost {
198
+ amount
199
+ currencyCode
200
+ }
201
+ measurement {
202
+ id
203
+ weight {
204
+ unit
205
+ value
206
+ }
207
+ }
208
+ }
209
+ image {
210
+ id
211
+ url
212
+ width
213
+ height
214
+ altText
215
+ }
216
+ media(first: 1) {
217
+ nodes {
218
+ id
219
+ alt
220
+ mediaContentType
221
+ status
222
+ preview {
223
+ image {
224
+ id
225
+ url
226
+ width
227
+ height
228
+ altText
229
+ }
230
+ }
231
+ ... on MediaImage {
232
+ mimeType
233
+ image {
234
+ id
235
+ url
236
+ width
237
+ height
238
+ altText
239
+ }
240
+ }
241
+ ... on Video {
242
+ duration
243
+ sources {
244
+ url
245
+ format
246
+ mimeType
247
+ width
248
+ height
249
+ }
250
+ }
251
+ ... on ExternalVideo {
252
+ host
253
+ embedUrl
254
+ originUrl
255
+ }
256
+ ... on Model3d {
257
+ sources {
258
+ url
259
+ format
260
+ mimeType
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ pageInfo {
268
+ hasNextPage
269
+ endCursor
270
+ }
271
+ }
272
+ }
273
+ }
274
+ pageInfo {
275
+ hasNextPage
276
+ endCursor
277
+ }
278
+ }
279
+ }
280
+ `);export{i as ShopifyProductsDocument,t as TypedDocumentString};
@@ -0,0 +1 @@
1
+ import{createBuilderApiFetcher as e}from"./createBuilderApiFetcher.js";let r=e();export{r as fetchBuilderApi};
@@ -0,0 +1 @@
1
+ import{RenderModeEnv as e}from"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let t=({mode:t,pageType:s})=>{let r=new Set(["GP_PRE_SALE_PAGE","GP_FUNNEL_PAGE","POST_PURCHASE","STATIC"]);return s&&!r.has(s)&&t===e.EDIT};export{t as shouldUseBridgeFetcher};
@@ -1 +1 @@
1
- let e="local"===process.env.NEXT_CONVERT_ENV,s=process.env.GP_BASE_ASSET_URL||"https://assets.gemcommerce.com";export{s as baseAssetURL,e as isLocalEnv};
1
+ let e="local"===process.env.NEXT_CONVERT_ENV,s=process.env.GP_BASE_ASSET_URL||"https://assets.gemcommerce.com",c="true"===process.env.IS_LIQUID;export{c as IS_LIQUID,s as baseAssetURL,e as isLocalEnv};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useRef as e,useMemo as t,useCallback as r}from"react";import"react/jsx-runtime";import"zustand";import{usePageStore as i}from"../../contexts/PageContext.js";import"react-transition-group";import"../../components/constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../convert.js";import"crc-32";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";let a=()=>{let a=e(),n=i(e=>e.setInteractionIsSelectOnPage),o=i(e=>e.sidebarMode),s=i(e=>e.interactionData?.selectType),p=i(e=>e.interactionData);function l(e,t){return!(e instanceof Document)&&e?.matches(t)?e:e?.querySelector(t)}let d=(e,t,r)=>{let i=e=>{let t=e.detail;r&&r(t)};return e.addEventListener(t,i),()=>e.removeEventListener(t,i)},c=t(()=>"interaction"===o&&(!p?.isSelectOnPage||"PAGE"===s),[o,p?.isSelectOnPage,s]),g=t(()=>p?.isSelectOnPage,[p?.isSelectOnPage]),u=r(e=>{if(window.interactionLoaded){e();return}window.addEventListener("gp:flow-actions-loaded",()=>{e()})},[]);return{onListener:({event:e,selector:t,elementRef:r},i)=>{let n=l(r?.current||a.current||document,t);if(n)return d(n,e,i)},trigger:({event:e,data:t,selector:r,element:i})=>{let a=i||document.body?.querySelector(r);if(!a)return;let n=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:{data:t}});a.dispatchEvent(n)},saveToElementInteractionData:(e,t,r)=>{if(!e)return;let i=e.getAttribute("gp-data-interaction"),a=JSON.parse(i||"{}");e.setAttribute("gp-data-interaction",JSON.stringify({...a,[t]:r}))},closeSelectOnPage:()=>{n(!1);let e=new CustomEvent("editor:interaction:change-select-on-page",{bubbles:!0,detail:!1});window.dispatchEvent(e)},ref:a,findElementIncludingSelf:l,getInteractionPreviousData:(e,t)=>{let r=e.getAttribute("gp-data-interaction"),i=JSON.parse(r||"{}");return{previousData:i[t],interactionDataJson:i}},changeSelectMode:e=>{let t=new CustomEvent("editor:interaction:change-select-mode",{bubbles:!0,detail:e});window.dispatchEvent(t)},selectInteractionElement:({componentUid:e,settingType:t,$target:r})=>{let i=new CustomEvent("editor:interaction:select-element",{bubbles:!0,detail:{componentUid:e,settingType:t,$target:r}});window.dispatchEvent(i)},isInteractionMode:c,isSelectOnPage:g,interactionListenerLoaded:u}};export{a as useInteraction};
2
+ import{useRef as e,useMemo as t,useCallback as r}from"react";import"react/jsx-runtime";import"zustand";import{usePageStore as i}from"../../contexts/PageContext.js";import"react-transition-group";import"../../components/constant.js";import"swr";import"@gem-sdk/core";import"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import"../../graphql/queries/product-variants.generated.js";import"../../graphql/queries/product-little-detail.generated.js";import"../../graphql/queries/product-medias.generated.js";import"../../graphql/queries/productsV2.generated.js";import"../../graphql-shopify/product-detail.generated.js";import"../../graphql-shopify/product-medias.generated.js";import"../../graphql-shopify/product-variants.generated.js";import"../../graphql-shopify/products.generated.js";import"../../graphql-shopify/collections.generated.js";import"../../graphql-shopify/articles.generated.js";import"../../graphql-shopify/blogs.generated.js";import"crc-32";import"../convert.js";import"../../types/builder.js";import"../../types/custom.js";import"../../types/animations.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"vanilla-lazyload";import"../../hooks/useCartUI.js";import"../../graphql/queries/product-value-label.generated.js";import"../../hooks/useStickyStore.js";let a=()=>{let a=e(),o=i(e=>e.setInteractionIsSelectOnPage),s=i(e=>e.sidebarMode),n=i(e=>e.interactionData?.selectType),p=i(e=>e.interactionData);function l(e,t){return!(e instanceof Document)&&e?.matches(t)?e:e?.querySelector(t)}let d=(e,t,r)=>{let i=e=>{let t=e.detail;r&&r(t)};return e.addEventListener(t,i),()=>e.removeEventListener(t,i)},c=t(()=>"interaction"===s&&(!p?.isSelectOnPage||"PAGE"===n),[s,p?.isSelectOnPage,n]),g=t(()=>p?.isSelectOnPage,[p?.isSelectOnPage]),m=r(e=>{if(window.interactionLoaded){e();return}window.addEventListener("gp:flow-actions-loaded",()=>{e()})},[]);return{onListener:({event:e,selector:t,elementRef:r},i)=>{let o=l(r?.current||a.current||document,t);if(o)return d(o,e,i)},trigger:({event:e,data:t,selector:r,element:i})=>{let a=i||document.body?.querySelector(r);if(!a)return;let o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:{data:t}});a.dispatchEvent(o)},saveToElementInteractionData:(e,t,r)=>{if(!e)return;let i=e.getAttribute("gp-data-interaction"),a=JSON.parse(i||"{}");e.setAttribute("gp-data-interaction",JSON.stringify({...a,[t]:r}))},closeSelectOnPage:()=>{o(!1);let e=new CustomEvent("editor:interaction:change-select-on-page",{bubbles:!0,detail:!1});window.dispatchEvent(e)},ref:a,findElementIncludingSelf:l,getInteractionPreviousData:(e,t)=>{let r=e.getAttribute("gp-data-interaction"),i=JSON.parse(r||"{}");return{previousData:i[t],interactionDataJson:i}},changeSelectMode:e=>{let t=new CustomEvent("editor:interaction:change-select-mode",{bubbles:!0,detail:e});window.dispatchEvent(t)},selectInteractionElement:({componentUid:e,settingType:t,$target:r})=>{let i=new CustomEvent("editor:interaction:select-element",{bubbles:!0,detail:{componentUid:e,settingType:t,$target:r}});window.dispatchEvent(i)},isInteractionMode:c,isSelectOnPage:g,interactionListenerLoaded:m}};export{a as useInteraction};
@@ -0,0 +1 @@
1
+ import{joinShopifyQueryTerms as e,buildArticleIdListQuery as r,buildTitleSearchQuery as t,toArticleGid as o}from"./shopify-query-terms.js";let i={ID:"PLATFORM_CREATED_AT",PUBLISHED_AT:"PUBLISHED_AT",TITLE:"TITLE",UPDATED_AT:"PLATFORM_UPDATED_AT"},s=e=>(e?i[e]:void 0)??"PLATFORM_CREATED_AT",l=e=>e.map(e=>o(e)).filter(e=>!!e),n=e=>{let r=e.titleContains?.trim(),t={...e.baseIDIn?.length?{baseIDIn:l(e.baseIDIn)}:{},...r?{titleContainsFold:r}:{}};return Object.keys(t).length?t:void 0},a=({query:o})=>({first:o.first,last:o.last,after:o.after,before:o.before,...o.orderBy?{sortKey:o.orderBy.field,reverse:"DESC"===o.orderBy.direction}:{},query:e([o.baseIDIn?.length?r(o.baseIDIn):void 0,t(o.titleContains)])}),f=({query:e})=>({first:e.first,last:e.last,after:e.after,before:e.before,...e.orderBy?{orderBy:{field:s(e.orderBy.field),direction:e.orderBy.direction}}:{},where:n(e)});export{a as normalizeToShopifyArticlesQuery,f as normalizeToStorefrontArticlesQuery,s as toLegacyArticleSortField};
@@ -0,0 +1 @@
1
+ import{toLegacyArticleSortField as e}from"./normalize-articles-query.js";import{joinShopifyQueryTerms as r,buildBlogIdQuery as t,buildTitleSearchQuery as i,toBlogGid as o}from"./shopify-query-terms.js";let s=e=>"TITLE"===e?"TITLE":"PLATFORM_UPDATED_AT",l=e=>{let r=e.titleContains?.trim(),t={...e.baseID?{baseID:o(e.baseID)}:{},...r?{titleContainsFold:r}:{}};return Object.keys(t).length?t:void 0},d=({query:e})=>({first:e.first,last:e.last,after:e.after,before:e.before,...e.orderBy?{sortKey:e.orderBy.field,reverse:"DESC"===e.orderBy.direction}:{},query:r([t(e.baseID),i(e.titleContains)]),...e.articlesOrderBy?{reverseArticle:"DESC"===e.articlesOrderBy.direction}:{}}),a=({query:r})=>({first:r.first,last:r.last,after:r.after,before:r.before,...r.orderBy?{orderBy:{field:s(r.orderBy.field),direction:r.orderBy.direction}}:{},where:l(r),...r.articlesOrderBy?{articlesOrderBy:{field:e(r.articlesOrderBy.field),direction:r.articlesOrderBy.direction}}:{}});export{d as normalizeToShopifyBlogsQuery,a as normalizeToStorefrontBlogsQuery};
@@ -0,0 +1 @@
1
+ import{joinShopifyQueryTerms as e,buildIdListQuery as t,buildIdExclusionQuery as r,buildCollectionKeywordSearchQuery as o,buildTitleSearchQuery as i,buildFieldSearchQuery as s,buildTemplateSuffixQuery as a,toCollectionGid as d}from"./shopify-query-terms.js";let n=({query:e})=>({id:e.baseID,numberOfProducts:e.firstProduct,orderBy:e.productOrderBy,isSample:e.isSample,isStorefront:e.isStorefront}),l={UPDATED_AT:"PLATFORM_UPDATED_AT",TITLE:"TITLE"},f=e=>e.map(e=>d(e)).filter(e=>!!e),u=e=>{let t=e.keywords?.trim(),r=e.titleContains?.trim(),o=e.handleContains?.trim(),i={...e.baseID?{baseID:d(e.baseID)}:{},...e.baseIDIn?.length?{baseIDIn:f(e.baseIDIn)}:{},...e.baseIDNotIn?.length?{baseIDNotIn:f(e.baseIDNotIn)}:{},...t?{or:[{titleContainsFold:t},{handleContainsFold:t}]}:{},...r?{titleContainsFold:r}:{},...o?{handleContainsFold:o}:{},...e.publishedStatus&&"any"!==e.publishedStatus?{isStorefront:"published"===e.publishedStatus}:{},...void 0!==e.templateSuffix?{templateSuffix:e.templateSuffix}:{},...void 0!==e.isSample?{isSample:e.isSample}:{}};return Object.keys(i).length?i:void 0},I=({query:e})=>({first:e.first,last:e.last,after:e.after,before:e.before,...e.orderBy?{orderBy:{field:l[e.orderBy.field]??"PLATFORM_UPDATED_AT",direction:e.orderBy.direction}}:{},where:u(e)}),b=({query:d})=>({first:d.first,last:d.last,after:d.after,before:d.before,...d.orderBy?{sortKey:d.orderBy.field,reverse:"DESC"===d.orderBy.direction}:{},...void 0!==d.firstProduct?{firstProduct:d.firstProduct}:{},...d.productOrderBy&&"none"!==d.productOrderBy?{sortKeyProduct:d.productOrderBy.startsWith("CREATED_AT")?"CREATED":"TITLE",reverseProduct:d.productOrderBy.endsWith("_DESC")}:{},query:e([d.baseID?t([d.baseID]):void 0,d.baseIDIn?.length?t(d.baseIDIn):void 0,d.baseIDNotIn?.length?r(d.baseIDNotIn):void 0,o(d.keywords),i(d.titleContains),s({field:"handle",value:d.handleContains}),a(d.templateSuffix)])});export{b as normalizeToShopifyCollectionsQuery,n as normalizeToStorefrontCollectionQuery,I as normalizeToStorefrontCollectionsQuery};
@@ -0,0 +1 @@
1
+ import{joinShopifyQueryTerms as t,buildProductIdListQuery as e,buildProductIdExclusionQuery as n,buildKeywordSearchQuery as o,buildTitleSearchQuery as i,buildFieldSearchQuery as s,buildTemplateSuffixQuery as l,buildExactFieldQuery as a,buildExactFieldListQuery as r,buildExactFieldExclusionQuery as I,buildCollectionIdListQuery as d,toProductGid as u}from"./shopify-query-terms.js";let f=t=>t.map(t=>u(t)).filter(t=>!!t),h=t=>{if(!t.tagsIn?.length)return;let e=[{nameIn:t.tagsIn}];return t.tagsNotIn?.length&&e.push({nameNotIn:t.tagsNotIn}),[{hasTagsWith:e}]},g=t=>{if(!t.collectionIDIn?.length)return;let e=[{idIn:t.collectionIDIn}];return t.collectionTitleNotIn?.length&&e.push({titleNotIn:t.collectionTitleNotIn}),[{hasCollectionWith:e}]},c=t=>{let e=t.keywords?.trim();if(e)return[{titleContainsFold:e},{skuContainsFold:e}]},m=({query:t})=>{let e=t.titleContains?.trim(),n=t.handleContains?.trim(),o=c(t),i=h(t),s=g(t);return{first:t.first,...t.baseIDIn?.length?{baseIDIn:f(t.baseIDIn)}:{},...t.baseIDNotIn?.length?{baseIDNotIn:f(t.baseIDNotIn)}:{},...o?{or:o}:{},...e?{titleContainsFold:e}:{},...n?{handleContainsFold:n}:{},...t.status?{status:t.status}:{},...void 0!==t.templateSuffix?{templateSuffix:t.templateSuffix}:{},...void 0!==t.isSample?{isSample:t.isSample}:{},...void 0!==t.isStorefront?{isStorefront:t.isStorefront}:{},...t.vendor?{vendor:t.vendor}:{},...i?{hasProductTagsWith:i}:{},...s?{hasCollectionProductsWith:s}:{}}},v=({query:u})=>({first:u.first,query:t([`status:${(u.status??"ACTIVE").toLowerCase()}`,u.baseIDIn?.length?e(u.baseIDIn):void 0,u.baseIDNotIn?.length?n(u.baseIDNotIn):void 0,o(u.keywords),i(u.titleContains),s({field:"handle",value:u.handleContains}),l(u.templateSuffix),a({field:"vendor",value:u.vendor}),r({field:"tag",values:u.tagsIn}),I({field:"tag",values:u.tagsNotIn}),u.collectionIDIn?.length?d(u.collectionIDIn):void 0])});export{v as normalizeToShopifyProductsQuery,m as normalizeToStorefrontProductsQuery};
@@ -1 +1 @@
1
- import{CollectionDetailFilterDocument as e}from"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import{ProductVariantsDocument as r}from"../../graphql/queries/product-variants.generated.js";import{isDefined as t}from"../is-defined.js";let o=async(e,r)=>{let t=await d(e,r);if(!t)throw Error("collections not found");let o=await a(e,t,r.isSample);return o},s=async(r,t)=>r([e.toString(),t]),i=(e,r,t)=>{let o=e-t*r;return e<t?e:o>0?t:t+o},n=(e,r)=>{let t=[],o=0;for(;o<e.length;)t.push(e.slice(o,r+o)),o+=r;return t},d=async(e,r)=>{let t,o,n,d,a;let l=1;if(r.numberOfProducts){let c=Math.ceil(r.numberOfProducts/8);for(;l<=c&&!1!==d;){t={firstVariant:1,firstMedia:30,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},firstProduct:i(r.numberOfProducts,l,8),...r.id&&"latest"!==r.id.toLowerCase()?{where:{baseID:r.id}}:{where:{hasCollectionProducts:!0,isSample:r.isSample}},orderByProduct:function(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"}}}(r.orderBy),whereProduct:{status:"ACTIVE",...r.isStorefront&&{isStorefront:r.isStorefront},isSample:r.isSample},...o?{productsAfter:o}:void 0};let c=await s(e,t);if(o=c?.collections?.edges?.[0]?.node?.products?.pageInfo?.endCursor,1===l?(n=c,a=n?.collections?.edges?.[0]):a?.node?.products&&c?.collections?.edges?.[0]?.node?.products?.edges&&(a.node.products={pageInfo:c?.collections?.edges?.[0]?.node?.products?.pageInfo,edges:a.node?.products?.edges.concat(c?.collections?.edges?.[0]?.node?.products?.edges)}),l++,!a?.node?.products?.pageInfo?.hasNextPage){d=!1;break}}return n}},a=async(e,r,o)=>{let s=r?.collections?.edges?.[0]?.node;if(!s)return r;let i=s?.products?.edges,n=i?.map(e=>e?.node?.baseID).filter(t),d=await l(e,{ids:n,isSample:o}),a=i?.map(e=>{let r=d?.variants?.edges?.filter(r=>r?.node?.id===e?.node?.id);return{...e,node:e.node?{...e.node,variants:e.node?.variants?{...e.node?.variants,edges:r?.[0]?.node?.variants?.edges??e.node?.variants.edges??[]}:void 0}:void 0}})??[],c={...r,collections:{edges:[{node:{...s,products:{edges:a}},cursor:void 0}]}};return c},l=async(e,{ids:t,isSample:o,isStorefront:s})=>{let i=n(t??[],8),d=async t=>{try{return await e([r.toString(),{...t,orderByVariant:{field:"POSITION",direction:"ASC"}}])}catch{return{}}},a=i.map(e=>{let r={firstVariant:100,first:e.length,orderBy:{field:"TITLE",direction:"ASC"},where:{status:"ACTIVE",isSample:o,...s&&{isStorefront:s},...e.length&&{baseIDIn:e.sort()}}};return d(r)}),l=await Promise.all(a),c=l?.reduce((e,r)=>e.concat(r?.variants?.edges??[]),[]);return{variants:{edges:c}}};export{i as calculateFirstProduct,o as getCollection};
1
+ import{CollectionDetailFilterDocument as e}from"../../graphql/queries/collection-detail-filter.generated.js";import"../../graphql/queries/collection.generated.js";import"../../graphql/queries/collections.generated.js";import"../../graphql/queries/published-theme-pages.generated.js";import"../../graphql/queries/store-property.generated.js";import"../../graphql/queries/preview-page.generated.js";import"../../graphql/queries/published-shop-metas.generated.js";import"../../graphql/queries/shop-shopify.generated.js";import"../../graphql/queries/articles.generated.js";import"../../graphql/queries/blogs.generated.js";import"../../graphql/queries/products-with-selling-plans.generated.js";import"../../graphql/queries/product-variant-with-selling-plans.generated.js";import{ProductVariantsDocument as r}from"../../graphql/queries/product-variants.generated.js";import{isDefined as t}from"../is-defined.js";function o(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 s=async(e,r)=>{let t=await a(e,r);if(!t)throw Error("collections not found");let o=await l(e,t,r.isSample);return o},i=async(r,t)=>r([e.toString(),t]),d=(e,r,t)=>{let o=e-t*r;return e<t?e:o>0?t:t+o},n=(e,r)=>{let t=[],o=0;for(;o<e.length;)t.push(e.slice(o,r+o)),o+=r;return t},a=async(e,r)=>{let t,s,n,a,l;let c=1;if(r.numberOfProducts){let p=Math.ceil(r.numberOfProducts/8);for(;c<=p&&!1!==a;){t={firstVariant:1,firstMedia:30,orderBy:{field:"PLATFORM_CREATED_AT",direction:"DESC"},orderByMedia:{field:"POSITION",direction:"ASC"},firstProduct:d(r.numberOfProducts,c,8),...r.id&&"latest"!==r.id.toLowerCase()?{where:{baseID:r.id}}:{where:{hasCollectionProducts:!0,isSample:r.isSample}},orderByProduct:o(r.orderBy),whereProduct:{status:"ACTIVE",...r.isStorefront&&{isStorefront:r.isStorefront},isSample:r.isSample},...s?{productsAfter:s}:void 0};let p=await i(e,t);if(s=p?.collections?.edges?.[0]?.node?.products?.pageInfo?.endCursor,1===c?(n=p,l=n?.collections?.edges?.[0]):l?.node?.products&&p?.collections?.edges?.[0]?.node?.products?.edges&&(l.node.products={pageInfo:p?.collections?.edges?.[0]?.node?.products?.pageInfo,edges:l.node?.products?.edges.concat(p?.collections?.edges?.[0]?.node?.products?.edges)}),c++,!l?.node?.products?.pageInfo?.hasNextPage){a=!1;break}}return n}},l=async(e,r,o)=>{let s=r?.collections?.edges?.[0]?.node;if(!s)return r;let i=s?.products?.edges,d=i?.map(e=>e?.node?.baseID).filter(t),n=await c(e,{ids:d,isSample:o}),a=i?.map(e=>{let r=n?.variants?.edges?.filter(r=>r?.node?.id===e?.node?.id);return{...e,node:e.node?{...e.node,variants:e.node?.variants?{...e.node?.variants,edges:r?.[0]?.node?.variants?.edges??e.node?.variants.edges??[]}:void 0}:void 0}})??[],l={...r,collections:{edges:[{node:{...s,products:{edges:a}},cursor:void 0}]}};return l},c=async(e,{ids:t,isSample:o,isStorefront:s})=>{let i=n(t??[],8),d=async t=>{try{return await e([r.toString(),{...t,orderByVariant:{field:"POSITION",direction:"ASC"}}])}catch{return{}}},a=i.map(e=>{let r={firstVariant:100,first:e.length,orderBy:{field:"TITLE",direction:"ASC"},where:{status:"ACTIVE",isSample:o,...s&&{isStorefront:s},...e.length&&{baseIDIn:e.sort()}}};return d(r)}),l=await Promise.all(a),c=l?.reduce((e,r)=>e.concat(r?.variants?.edges??[]),[]);return{variants:{edges:c}}};export{d as calculateFirstProduct,s as getCollection,o as productSortedByOrder};
@@ -0,0 +1 @@
1
+ import{ShopifyArticlesDocument as e}from"../../graphql-shopify/articles.generated.js";import{ShopifyBlogsDocument as t}from"../../graphql-shopify/blogs.generated.js";let i=e=>e.slice(e.lastIndexOf("/")+1),o=e=>({...e,...null!=e.last&&void 0===e.first?{first:null}:{}}),a=e=>({id:i(e.id),baseID:e.id,title:e.title,handle:e.handle,description:e.summary??void 0,templateSuffix:e.templateSuffix??void 0,titleMeta:void 0,descriptionMeta:void 0,platform:"SHOPIFY",isSample:!1,platformCreatedAt:e.createdAt,platformUpdatedAt:e.updatedAt,publishedAt:e.publishedAt??void 0,author:e.author?.name??void 0,tags:e.tags.map(e=>({name:e})),content:{excerptHtml:e.summary??void 0,html:e.body??void 0},media:e.image?{src:e.image.url,alt:e.image.altText??void 0,width:e.image.width??void 0,height:e.image.height??void 0}:void 0,blogs:e.blog?{edges:[{node:{title:e.blog.title,handle:e.blog.handle}}]}:void 0}),d=async(t,i={})=>{let d=await t([e.toString(),o(i)]);if(!d?.articles)throw Error("Article not found");return{articles:{edges:d.articles.edges.map(({cursor:e,node:t})=>({cursor:e,node:a(t)})),pageInfo:d.articles.pageInfo}}},l=async(e,d={})=>{let l=await e([t.toString(),o(d)]);if(!l?.blogs)throw Error("Blog not found");return{blogs:{edges:l.blogs.edges.map(({cursor:e,node:t})=>({cursor:e,node:{id:i(t.id),baseID:t.id,title:t.title,handle:t.handle,description:void 0,descriptionMeta:void 0,titleMeta:void 0,templateSuffix:t.templateSuffix??void 0,platform:"SHOPIFY",tags:t.tags,articles:{edges:t.articles.edges.map(({cursor:e,node:t})=>({cursor:e,node:a(t)}))}}})),pageInfo:l.blogs.pageInfo}}};export{d as getShopifyArticles,l as getShopifyBlogs};
@@ -0,0 +1 @@
1
+ import{ShopifyCollectionsDocument as e}from"../../graphql-shopify/collections.generated.js";import{ShopifyProductVariantsDocument as t}from"../../graphql-shopify/product-variants.generated.js";import{buildIdListQuery as i,toNumericId as r}from"../shopify-query-terms.js";import{productSortedByOrder as o}from"./get-collection.js";export{calculateFirstProduct}from"./get-collection.js";import{normalizeShopifyProduct as s}from"./get-shopify-product.js";let a=()=>({collections:{edges:[]}}),d=(t,i)=>t([e.toString(),i]),l=async(e,{id:t,numberOfProducts:i,orderBy:r})=>{if(!i||!Number.isFinite(i)||i<0)throw Error("collections not found");let{collection:o,products:s}=await n(e,{collectionId:t,limit:i,orderBy:r});if(!o)return a();let d=await Promise.all(s.map(t=>p(e,t)));return{collections:{edges:[f({collection:o,edges:d})]}}},n=async(e,{collectionId:t,limit:s,orderBy:a})=>{let l,n;let c=!t||"latest"===t.toLowerCase(),p=o(a),f=p?.field==="TITLE"?"TITLE":"CREATED",m=p?.direction==="DESC",u=c?"":t,g=new Set,y=[];for(;y.length<s;){let t={first:1,firstProduct:Math.min(8,s-y.length),sortKeyProduct:f,reverseProduct:m,firstMedia:30,sortKeyMedia:"POSITION",reverseMedia:!1,firstVariant:1,sortKeyVariant:"POSITION",reverseVariant:!1,sortKey:"UPDATED_AT",reverse:!0};u&&(t.query=i([u])),n&&(t.afterProduct=n);let o=await d(e,t),a=o?.collections?.edges?.[0]?.node;if(!a)break;u||(u=r(a.id)??""),l??(l=a),y.push(...a.products.edges.filter(({node:e})=>"ACTIVE"===e.status));let{hasNextPage:c,endCursor:p}=a.products.pageInfo;if(!c||!p||g.has(p))break;g.add(p),n=p}return{collection:l,products:y.slice(0,s)}},c=async(e,i)=>{try{let o=await e([t.toString(),{first:100,query:`product_id:${r(i)}`,sortKey:"POSITION",reverse:!1}]);return o?.variants?.edges??[]}catch{return[]}},p=async(e,{cursor:t,node:i})=>{let r=await c(e,i.id),o=s({product:i,variants:r,medias:i.media.edges});return{cursor:t,node:{...o,variants:{...i.variants,edges:o.variants?.edges??[]},medias:{...i.media,edges:o.medias?.edges??[]}}}},f=({collection:e,edges:t})=>({cursor:void 0,node:{id:r(e.id)??e.id,baseID:e.id,title:e.title,handle:e.handle,description:e.description,descriptionHtml:e.descriptionHtml,templateSuffix:e.templateSuffix??void 0,updatedAt:e.updatedAt,titleMeta:e.seo.title??void 0,descriptionMeta:e.seo.description??void 0,collectionMedia:e.image?{src:e.image.url}:void 0,platform:"SHOPIFY",tags:[],isSample:!1,products:{edges:t}}});export{l as getShopifyCollection};
@@ -0,0 +1 @@
1
+ import{ShopifyCollectionsDocument as e}from"../../graphql-shopify/collections.generated.js";let t=e=>e.slice(e.lastIndexOf("/")+1),i=async(i,o={})=>{let d=await i([e.toString(),{...o,...null!=o.last&&void 0===o.first?{first:null}:{}}]);if(!d)throw Error("Collection not found");return{collections:d.collections?{edges:d.collections.edges.map(({node:e})=>({node:{id:t(e.id),baseID:e.id,title:e.title,handle:e.handle,description:e.description,descriptionHtml:e.descriptionHtml,templateSuffix:e.templateSuffix??void 0,updatedAt:e.updatedAt,titleMeta:e.seo.title??void 0,descriptionMeta:e.seo.description??void 0,collectionMedia:e.image?{src:e.image.url}:void 0,platform:"SHOPIFY",tags:[],isSample:!1,products:{totalCount:e.productsCount?.count,edges:e.products.edges.map(({node:e})=>({node:{id:t(e.id),title:e.title,handle:e.handle,description:e.description,status:e.status,featuredImage:e.featuredMedia?.preview?.image?{src:e.featuredMedia.preview.image.url}:void 0}}))}}}))}:void 0}};export{i as getShopifyCollections};
@@ -1 +1 @@
1
- import{ShopifyProductDetailDocument as e}from"../../graphql-shopify/product-detail.generated.js";import{ShopifyProductMediasDocument as t}from"../../graphql-shopify/product-medias.generated.js";import{ShopifyProductVariantsDocument as i}from"../../graphql-shopify/product-variants.generated.js";let r=e=>e.slice(e.lastIndexOf("/")+1),d=async(d,{id:o}={})=>{let n=!o||"latest"===o.toLowerCase();if(!n&&!/^(?:gid:\/\/shopify\/Product\/)?\d+$/.test(o))throw Error("Invalid Shopify product ID");let s={first:1,query:n?"status:active":`id:${r(o)}`,sortKey:"CREATED_AT",reverse:!0},p=await d([e.toString(),s]),u=p.product?.edges?.[0]?.node;if(!u)throw Error("Product not found");let[c,m]=await Promise.all([a(async e=>{let t=await d([i.toString(),{first:50,query:`product_id:${r(u.id)}`,after:e,sortKey:"POSITION",reverse:!1}]);return t.variants}),a(async e=>{let i=await d([t.toString(),{first:1,query:`id:${r(u.id)}`,afterMedia:e,sortKeyMedia:"POSITION",reverseMedia:!1}]);return i.medias?.edges?.[0]?.node?.media})]);return l({product:u,variants:c,medias:m})},a=async(e,t)=>{let i=[],r=new Set,d=async t=>{if(!t)return i;i.push(...t.edges);let{hasNextPage:a,endCursor:o}=t.pageInfo;return!a||!o||r.has(o)?i:(r.add(o),d(await e(o)))};try{return await d(t??await e())}catch(e){if(0===i.length)throw e;return i}},o=(e,t)=>({id:r(e.id??t),baseID:e.id??t,contentType:"IMAGE",src:e.url,previewImage:e.url,width:e.width??void 0,height:e.height??void 0,alt:e.altText??void 0}),n=e=>{let t=e.preview?.image,i="image"in e?e.image:void 0,d="sources"in e?e.sources.find(e=>"mp4"===e.format.toLowerCase())??e.sources[0]:void 0;return{id:r(e.id),baseID:e.id,contentType:e.mediaContentType,src:i?.url??("embedUrl"in e?e.embedUrl:d?.url),previewImage:t?.url??i?.url,width:i?.width??(d&&"width"in d&&"number"==typeof d.width?d.width:t?.width)??void 0,height:i?.height??(d&&"height"in d&&"number"==typeof d.height?d.height:t?.height)??void 0,alt:e.alt??i?.altText??t?.altText??void 0}},s=e=>{let t=e.media.nodes[0],i=t?n(t):e.image?o(e.image,e.id):void 0;return{id:r(e.id),baseID:e.id,title:e.title,barcode:e.barcode??void 0,sku:e.sku??void 0,price:String(e.price),salePrice:null==e.compareAtPrice?void 0:String(e.compareAtPrice),costPrice:e.inventoryItem.unitCost?.amount,inventoryPolicy:e.inventoryPolicy,inventoryQuantity:e.inventoryQuantity??void 0,manageInventory:e.inventoryItem.tracked,isDigital:!e.inventoryItem.requiresShipping,weight:e.inventoryItem.measurement.weight?.value,platform:"SHOPIFY",selectedOptions:e.selectedOptions.map(({name:e,value:t})=>({name:e,value:t})),mediaId:i?.id??"",media:i}},l=({product:e,variants:t,medias:i})=>({id:r(e.id),baseID:e.id,title:e.title,handle:e.handle,description:e.description,descriptionHtml:e.descriptionHtml,createdAt:e.createdAt,vendor:e.vendor,tags:e.tags,isSample:!1,sku:t[0]?.node.sku??void 0,featuredImage:e.featuredMedia?n(e.featuredMedia):void 0,options:e.options.map(e=>({id:e.id,name:e.name,values:e.optionValues.map(e=>({id:r(e.id),baseID:e.id,label:e.name}))})),variants:{edges:t.map(({cursor:e,node:t})=>({cursor:e,node:s(t)}))},medias:{edges:i.map(({cursor:e,node:t})=>({cursor:e,node:n(t)}))},collections:{edges:e.collections.edges.map(({node:e})=>({node:{id:e.id,handle:e.handle,title:e.title}}))}});export{d as getShopifyProduct};
1
+ import{ShopifyProductDetailDocument as e}from"../../graphql-shopify/product-detail.generated.js";import{ShopifyProductMediasDocument as t}from"../../graphql-shopify/product-medias.generated.js";import{ShopifyProductVariantsDocument as i}from"../../graphql-shopify/product-variants.generated.js";let r=e=>e.slice(e.lastIndexOf("/")+1),a=async(t,{id:i}={})=>{let a=!i||"latest"===i.toLowerCase();if(!a&&!/^(?:gid:\/\/shopify\/Product\/)?\d+$/.test(i))throw Error("Invalid Shopify product ID");let o={first:1,query:a?"status:active":`id:${r(i)}`,sortKey:"CREATED_AT",reverse:!0},n=await t([e.toString(),o]),s=n.product?.edges?.[0]?.node;if(!s)throw Error("Product not found");let{variants:l,medias:p}=await d(t,s);return c({product:s,variants:l,medias:p})},d=async(e,a,d)=>{let[n,s]=await Promise.all([o(async t=>{let d=await e([i.toString(),{first:50,query:`product_id:${r(a.id)}`,after:t,sortKey:"POSITION",reverse:!1}]);return d.variants},d?.variants),o(async i=>{let d=await e([t.toString(),{first:1,query:`id:${r(a.id)}`,afterMedia:i,sortKeyMedia:"POSITION",reverseMedia:!1}]);return d.medias?.edges?.[0]?.node?.media},d?.media)]);return{variants:n,medias:s}},o=async(e,t)=>{let i=[],r=new Set,a=async t=>{if(!t)return i;i.push(...t.edges);let{hasNextPage:d,endCursor:o}=t.pageInfo;return!d||!o||r.has(o)?i:(r.add(o),a(await e(o)))};try{return await a(t??await e())}catch(e){if(0===i.length)throw e;return i}},n=(e,t)=>({id:r(e.id??t),baseID:e.id??t,contentType:"IMAGE",src:e.url,previewImage:e.url,width:e.width??void 0,height:e.height??void 0,alt:e.altText??void 0}),s=e=>{let t=e.preview?.image,i="image"in e?e.image:void 0,a="sources"in e?e.sources.find(e=>"mp4"===e.format.toLowerCase())??e.sources[0]:void 0;return{id:r(e.id),baseID:e.id,contentType:e.mediaContentType,src:i?.url??("embedUrl"in e?e.embedUrl:a?.url),previewImage:t?.url??i?.url,width:i?.width??(a&&"width"in a&&"number"==typeof a.width?a.width:t?.width)??void 0,height:i?.height??(a&&"height"in a&&"number"==typeof a.height?a.height:t?.height)??void 0,alt:e.alt??i?.altText??t?.altText??void 0}},l=e=>{let t=e.media.nodes[0],i=t?s(t):e.image?n(e.image,e.id):void 0;return{id:r(e.id),baseID:e.id,title:e.title,barcode:e.barcode??void 0,sku:e.sku??void 0,price:String(e.price),salePrice:null==e.compareAtPrice?void 0:String(e.compareAtPrice),costPrice:e.inventoryItem.unitCost?.amount,inventoryPolicy:e.inventoryPolicy,inventoryQuantity:e.inventoryQuantity??void 0,manageInventory:e.inventoryItem.tracked,isDigital:!e.inventoryItem.requiresShipping,weight:e.inventoryItem.measurement.weight?.value,platform:"SHOPIFY",selectedOptions:e.selectedOptions.map(({name:e,value:t})=>({name:e,value:t})),mediaId:i?.id??"",media:i}},c=({product:e,variants:t,medias:i})=>({id:r(e.id),baseID:e.id,title:e.title,handle:e.handle,description:e.description,descriptionHtml:e.descriptionHtml,createdAt:e.createdAt,vendor:e.vendor,tags:e.tags,isSample:!1,sku:t[0]?.node.sku??void 0,featuredImage:e.featuredMedia?s(e.featuredMedia):void 0,options:e.options.map(e=>({id:e.id,name:e.name,values:e.optionValues.map(e=>({id:r(e.id),baseID:e.id,label:e.name}))})),variants:{edges:t.map(({cursor:e,node:t})=>({cursor:e,node:l(t)}))},medias:{edges:i.map(({cursor:e,node:t})=>({cursor:e,node:s(t)}))},collections:{edges:e.collections.edges.map(({node:e})=>({node:{id:e.id,handle:e.handle,title:e.title}}))}});export{d as fetchShopifyProductConnections,a as getShopifyProduct,c as normalizeShopifyProduct};
@@ -0,0 +1 @@
1
+ import{ShopifyProductsDocument as e}from"../../graphql-shopify/products.generated.js";import{fetchShopifyProductConnections as t,normalizeShopifyProduct as r}from"./get-shopify-product.js";let a=async(e,{ids:a,defaultSelectedProductCount:s,allStatus:i,selectedStatus:n})=>{let d=[];if(!i){let e=n?.length?n:["ACTIVE"];d.push(`(status:${e.map(e=>e.toLowerCase()).join(",")})`)}if(a?.length){let e=a.map(e=>{if(!/^(?:gid:\/\/shopify\/Product\/)?\d+$/.test(e))throw Error("Invalid Shopify product ID");return`id:${e.slice(e.lastIndexOf("/")+1)}`});d.push(`(${e.join(" OR ")})`)}let p=await o(e,{first:a?.length||s||4,query:d.join(" AND ")}),u=await Promise.all(p.products.edges.map(async({cursor:a,node:s})=>{let{variants:i,medias:o}=await t(e,s,s);return{cursor:a,node:r({product:s,variants:i,medias:o})}}));return{products:{edges:u,pageInfo:p.products.pageInfo}}},s=async(e,t)=>{let r=await o(e,{first:t.first||4,query:t.query??"status:active"});return n(r)},i=async(e,t)=>{let r=await o(e,{first:t.first||8,query:t.query??"status:active",after:t.after});return n(r)},o=async(t,r)=>{let a=await t([e.toString(),{firstMedia:1,firstVariant:1,sortKey:"CREATED_AT",reverse:!0,sortKeyMedia:"POSITION",reverseMedia:!1,sortKeyVariant:"POSITION",reverseVariant:!1,...r}]);if(!a?.products)throw Error("Product not found");return a},n=e=>({products:{edges:e.products.edges.map(({cursor:e,node:t})=>{let a=r({product:t,variants:t.variants.edges,medias:t.media.edges});return{cursor:e,node:{...a,variants:{...a.variants,edges:a.variants?.edges??[],pageInfo:t.variants.pageInfo},medias:{...a.medias,edges:a.medias?.edges??[],pageInfo:t.media.pageInfo}}}}),pageInfo:e.products.pageInfo}});export{i as getListShopifyProductByVariables,s as getShopifyProductQueryAll,a as getShopifyProducts};
@@ -0,0 +1 @@
1
+ let i=/[\s:()"'\\<>~*[\]{}^-]/,e=/^gid:\/\/shopify\/[^/]+\//,t=({value:i,prefix:t})=>{if(i)return e.test(i)?i:`${t}${i}`},r=i=>i?i.replace(e,""):void 0,l=i=>i.map(i=>r(i)).filter(i=>!!i),d=i=>t({value:i,prefix:"gid://shopify/Article/"}),u=i=>t({value:i,prefix:"gid://shopify/Blog/"}),o=i=>t({value:i,prefix:"gid://shopify/Product/"}),c=i=>t({value:i,prefix:"gid://shopify/Collection/"}),n=i=>i.replace(/(['"\\()])/g,"\\$1"),y=i=>`"${n(i)}"`,f=e=>{let t=e?.trim();if(t)return i.test(t)?y(t):`*${t}*`},p=i=>{if(i.length)return i.length>1?`(${i.join(" OR ")})`:i[0]},$=i=>i.map(i=>`-${i}`).join(" ")||void 0,s=i=>{let e=f(i);return e?`title:${e}`:void 0},a=({field:i,value:e})=>{let t=f(e);return t?`${i}:${t}`:void 0},Q=i=>{let e=f(i);if(e)return p([`title:${e}`,`sku:${e}`])},b=i=>{let e=f(i);if(e)return p([`title:${e}`,`handle:${e}`])},h=i=>{if(void 0!==i)return`template_suffix:${""===i?"''":y(i)}`},x=({field:i,value:e})=>{let t=e?.trim();return t?`${i}:${y(t)}`:void 0},m=({field:i,values:e})=>(e??[]).map(e=>x({field:i,value:e})).filter(i=>!!i),g=({field:i,values:e})=>p(m({field:i,values:e})),I=({field:i,values:e})=>$(m({field:i,values:e})),v=i=>p(l(i).map(i=>`id:${i}`)),E=i=>$(l(i).map(i=>`id:${i}`)),S=i=>v(i),L=i=>v(i?[i]:[]),j=i=>v(i),A=i=>E(i),C=i=>p(l(i).map(i=>`collection_id:${i}`)),F=i=>i.filter(i=>!!i).join(" AND ")||void 0;export{S as buildArticleIdListQuery,L as buildBlogIdQuery,C as buildCollectionIdListQuery,b as buildCollectionKeywordSearchQuery,I as buildExactFieldExclusionQuery,g as buildExactFieldListQuery,x as buildExactFieldQuery,a as buildFieldSearchQuery,E as buildIdExclusionQuery,v as buildIdListQuery,Q as buildKeywordSearchQuery,A as buildProductIdExclusionQuery,j as buildProductIdListQuery,h as buildTemplateSuffixQuery,s as buildTitleSearchQuery,F as joinShopifyQueryTerms,d as toArticleGid,u as toBlogGid,c as toCollectionGid,r as toNumericId,o as toProductGid};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{ArticlesDocument as r}from"../../graphql/queries/articles.generated.js";import{useFetchHandle as e}from"../useFetchHandle.js";import t from"swr";import{BlogsDocument as o}from"../../graphql/queries/blogs.generated.js";import{hasPublicStoreFrontData as s,createStoreFrontFetcher as l}from"../../helpers/create-store-front-fetcher.js";import{useMemo as i}from"react";import{usePageStore as u}from"../../contexts/PageContext.js";let a=(o,a)=>{let m=e(),n=u(r=>r.publicStoreFrontData),p=i(()=>s(n)?l(n):m,[n]);return t(o?["query/articles",o]:null,()=>p([r.toString(),o??{}]),a)},m=(r,a)=>{let m=e(),n=u(r=>r.publicStoreFrontData),p=i(()=>s(n)?l(n):m,[n]);return t(r?["query/blogs",r]:null,()=>p([o.toString(),r??{}]),a)};export{a as useArticlesQuery,m as useBlogsQuery};
2
+ import{useMemo as r,useCallback as e}from"react";import t from"swr";import{usePageStore as o}from"../../contexts/PageContext.js";import{ArticlesDocument as s}from"../../graphql/queries/articles.generated.js";import{BlogsDocument as i}from"../../graphql/queries/blogs.generated.js";import{shouldUseBridgeFetcher as l}from"../../helpers/builder-api-bridge/shouldUseBridgeFetcher.js";import{fetchBuilderApi as p}from"../../helpers/builder-api-bridge/fetchBuilderApi.js";import{hasPublicStoreFrontData as m,createStoreFrontFetcher as u}from"../../helpers/create-store-front-fetcher.js";import{normalizeToShopifyArticlesQuery as a,normalizeToStorefrontArticlesQuery as f}from"../../helpers/normalize-articles-query.js";import{normalizeToShopifyBlogsQuery as n,normalizeToStorefrontBlogsQuery as g}from"../../helpers/normalize-blogs-query.js";import{getShopifyArticles as h,getShopifyBlogs as c}from"../../helpers/queries/get-shopify-articles.js";import{useEditorMode as j,usePageType as d}from"../shop.js";import{useFetchHandle as b}from"../useFetchHandle.js";let q=({variables:i,options:n})=>{let g=b(),c=j(),q=o(r=>r.publicStoreFrontData),y=d(),F=!!l({mode:c,pageType:y}),S=r(()=>F?p:m(q)?u(q):g,[F,q,g]),x=e(([,r])=>F?h(S,a({query:r})):S([s.toString(),f({query:r})]),[F,S]);return t(i?["query/articles",i,F]:null,x,n)},y=({variables:s,options:a})=>{let f=b(),h=o(r=>r.publicStoreFrontData),q=j(),y=d(),F=!!l({mode:q,pageType:y}),S=r(()=>F?p:m(h)?u(h):f,[F,h,f]),x=e(([,r])=>F?c(S,n({query:r})):S([i.toString(),g({query:r})]),[F,S]);return t(s?["query/blogs",s,F]:null,x,a)};export{q as useArticlesQuery,y as useBlogsQuery};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import r from"swr";import{getCollection as e}from"../../helpers/queries/get-collection.js";import{useIsSampleProduct as o,useIsStorefrontProduct as t}from"../shop.js";import{useFetchHandle as m}from"../useFetchHandle.js";import{generateCollectionQueryKey as s}from"../../helpers/query.js";import{usePageStore as p}from"../../contexts/PageContext.js";import{hasPublicStoreFrontData as l,createStoreFrontFetcher as i}from"../../helpers/create-store-front-fetcher.js";import{useMemo as f}from"react";let c=(c,n)=>{let u=m(),a=p(r=>r.publicStoreFrontData),h=f(()=>l(a)?i(a):u,[a]),j=o(),x=t();return r(c?s({...c,isSample:j,isStorefront:x}):null,([,r])=>e(h,r),n)};export{c as useCollectionQuery};
2
+ import{useMemo as e,useCallback as r}from"react";import o from"swr";import{usePageStore as t}from"../../contexts/PageContext.js";import{shouldUseBridgeFetcher as i}from"../../helpers/builder-api-bridge/shouldUseBridgeFetcher.js";import{fetchBuilderApi as s}from"../../helpers/builder-api-bridge/fetchBuilderApi.js";import{hasPublicStoreFrontData as p,createStoreFrontFetcher as l}from"../../helpers/create-store-front-fetcher.js";import{getCollection as m}from"../../helpers/queries/get-collection.js";import{getShopifyCollection as f}from"../../helpers/queries/get-shopify-collection.js";import{generateCollectionQueryKey as c}from"../../helpers/query.js";import{useEditorMode as h,usePageType as u,useIsSampleProduct as n,useIsStorefrontProduct as j}from"../shop.js";import{useFetchHandle as a}from"../useFetchHandle.js";let d=({query:d,options:g}={})=>{let b=a(),q=t(e=>e.publicStoreFrontData),x=h(),y=u(),F=e(()=>i({mode:x,pageType:y})?s:p(q)?l(q):b,[q,x,y]),B=n(),C=j(),w=d?c({...d,isSample:B,isStorefront:C}):null,A=r(([,e])=>i({mode:x,pageType:y})?f(F,e):m(F,e),[x,y,F]);return o(w,A,g)};export{d as useCollectionQuery};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import e from"swr";import{getCollections as r}from"../../helpers/queries/get-collections.js";import{useFetchHandle as o}from"../useFetchHandle.js";let l=(l,t)=>{let s=o();return e(l?["query/collections",l]:null,async([,e])=>r(s,e),t)};export{l as useCollectionsQuery};
2
+ import{useMemo as e,useCallback as r}from"react";import o from"swr";import{usePageStore as t}from"../../contexts/PageContext.js";import{shouldUseBridgeFetcher as s}from"../../helpers/builder-api-bridge/shouldUseBridgeFetcher.js";import{fetchBuilderApi as i}from"../../helpers/builder-api-bridge/fetchBuilderApi.js";import{hasPublicStoreFrontData as l,createStoreFrontFetcher as p}from"../../helpers/create-store-front-fetcher.js";import{normalizeToShopifyCollectionsQuery as m,normalizeToStorefrontCollectionsQuery as c}from"../../helpers/normalize-collections-query.js";import{getCollections as u}from"../../helpers/queries/get-collections.js";import{getShopifyCollections as f}from"../../helpers/queries/get-shopify-collections.js";import{useEditorMode as h,usePageType as n}from"../shop.js";import{useFetchHandle as a}from"../useFetchHandle.js";let j=({query:j,options:d}={})=>{let g=a(),q=t(e=>e.publicStoreFrontData),y=h(),b=n(),x=e(()=>s({mode:y,pageType:b})?i:l(q)?p(q):g,[q,y,b,g]),F=r(([,e])=>s({mode:y,pageType:b})?f(x,m({query:e})):u(x,c({query:e})),[y,b,x]);return o(j?["query/collections",j]:null,F,d)};export{j as useCollectionsQuery};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import r from"swr";import{getProduct as e}from"../../helpers/queries/get-product.js";import{useIsSampleProduct as o,useIsStorefrontProduct as t}from"../shop.js";import{useFetchHandle as s}from"../useFetchHandle.js";import{generateProductQueryKey as m}from"../../helpers/query.js";let p=(p,u,i)=>{let l=s(),f=o(),c=t();return r(p?m({id:p,isSample:f,isStorefront:c}):null,async([,r])=>e(i||l,r),u)};export{p as useProductQuery};
2
+ import r from"swr";import{shouldUseBridgeFetcher as e}from"../../helpers/builder-api-bridge/shouldUseBridgeFetcher.js";import{fetchBuilderApi as o}from"../../helpers/builder-api-bridge/fetchBuilderApi.js";import{getProduct as t}from"../../helpers/queries/get-product.js";import{getShopifyProduct as i}from"../../helpers/queries/get-shopify-product.js";import{useEditorMode as s,usePageType as p,useIsSampleProduct as m,useIsStorefrontProduct as l}from"../shop.js";import{useFetchHandle as u}from"../useFetchHandle.js";import{generateProductQueryKey as f}from"../../helpers/query.js";import{useMemo as d,useCallback as h}from"react";import{hasPublicStoreFrontData as c,createStoreFrontFetcher as a}from"../../helpers/create-store-front-fetcher.js";import{usePageStore as j}from"../../contexts/PageContext.js";let n=({productId:n,options:g}={})=>{let b=u(),y=j(r=>r.publicStoreFrontData),q=s(),x=p(),F=m(),B=l(),P=d(()=>e({mode:q,pageType:x})?o:c(y)?a(y):b,[y,q,x]),w=d(()=>n?f({id:n,isSample:F,isStorefront:B}):null,[n,F,B]),A=h(async([,r])=>e({mode:q,pageType:x})?i(P,{id:r.id}):t(P,r),[q,x,P]);return r(w,A,g)};export{n as useProductQuery};
@@ -1 +1 @@
1
- import t from"swr";import"swr/infinite";import{getProducts as e,getProductQueryAll as r}from"../../helpers/queries/get-products.js";import{generateProductsQueryKey as o}from"../../helpers/query.js";import{useIsSampleProduct as s,useIsStorefrontProduct as u}from"../shop.js";import{useFetchHandle as l}from"../useFetchHandle.js";import{useMemo as c}from"react";import{usePageStore as m}from"../../contexts/PageContext.js";import{hasPublicStoreFrontData as p,createStoreFrontFetcher as a}from"../../helpers/create-store-front-fetcher.js";let n=(r,n,f)=>{let i=l(),d=m(t=>t.publicStoreFrontData),h=c(()=>p(d)?a(d):i,[d]),S=s(),j=u();return t(r?o({ids:r,isSample:S,isStorefront:j,defaultSelectedProductCount:f?.defaultSelectedProductCount,allStatus:f?.allStatus,selectedStatus:f?.selectedStatus}):null,async([,t])=>e(f?.fetcher||h,t),n)},f=(e,o,s)=>{let u=l();return t(e?["query/products",e]:null,async([,t])=>r(s||u,t),o)};export{n as useProductsQuery,f as useProductsQueryAll};
1
+ import{useMemo as e,useCallback as r}from"react";import t from"swr";import{usePageStore as o}from"../../contexts/PageContext.js";import{shouldUseBridgeFetcher as s}from"../../helpers/builder-api-bridge/shouldUseBridgeFetcher.js";import{fetchBuilderApi as u}from"../../helpers/builder-api-bridge/fetchBuilderApi.js";import{hasPublicStoreFrontData as l,createStoreFrontFetcher as p}from"../../helpers/create-store-front-fetcher.js";import{normalizeToShopifyProductsQuery as i,normalizeToStorefrontProductsQuery as m}from"../../helpers/normalize-products-query.js";import{getProducts as d,getProductQueryAll as c}from"../../helpers/queries/get-products.js";import{getShopifyProducts as a,getShopifyProductQueryAll as f}from"../../helpers/queries/get-shopify-products.js";import{generateProductsQueryKey as n}from"../../helpers/query.js";import{useEditorMode as h,usePageType as j,useIsSampleProduct as y,useIsStorefrontProduct as S}from"../shop.js";import{useFetchHandle as q}from"../useFetchHandle.js";let b=({ids:i,options:m,defaultSelectedProductCount:c,allStatus:f,selectedStatus:b}={})=>{let g=q(),P=o(e=>e.publicStoreFrontData),F=h(),x=j(),C=e(()=>s({mode:F,pageType:x})?u:l(P)?p(P):g,[P,F,x,g]),A=y(),B=S(),D=r(async([,e])=>s({mode:F,pageType:x})?a(C,{ids:e.ids,defaultSelectedProductCount:e.defaultSelectedProductCount,allStatus:e.allStatus,selectedStatus:e.selectedStatus}):d(C,e),[F,x,C]);return t(i?n({ids:i,isSample:A,isStorefront:B,defaultSelectedProductCount:c,allStatus:f,selectedStatus:b}):null,D,m)},g=({query:d,options:a}={})=>{let n=q(),y=o(e=>e.publicStoreFrontData),S=h(),b=j(),g=e(()=>s({mode:S,pageType:b})?u:l(y)?p(y):n,[y,S,b]),P=r(async([,e])=>s({mode:S,pageType:b})?f(g,i({query:e})):c(g,m({query:e})),[S,b,g]);return t(d?["query/products",d]:null,P,a)};export{b as useProductsQuery,g as useProductsQueryAll};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{animations as e}from"../helpers/animations.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";let r=()=>{let{zoom:r,shake:t,fade:i,slide:p}=e();return{zoom:r,shake:t,fade:i,slide:p}};export{r as useAnimations};
2
+ import{animations as e}from"../helpers/animations.js";import"react";import"react/jsx-runtime";import"zustand";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"../graphql-shopify/articles.generated.js";import"../graphql-shopify/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql-shopify/collections.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../graphql-shopify/products.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import"crc-32";import"../helpers/convert.js";let r=()=>{let{zoom:r,shake:t,fade:p,slide:i}=e();return{zoom:r,shake:t,fade:p,slide:i}};export{r as useAnimations};
@@ -1 +1 @@
1
- import e from"swr";import{ProductOptionNameDocument as r}from"../graphql/queries/product-value-label.generated.js";import{colorPreset as t}from"../components/src/product/helpers/variant-presets.js";import{useSwatches as o}from"./shop.js";import{useFetchHandle as i}from"./useFetchHandle.js";import{useShopStore as s}from"../contexts/ShopContext.js";import"react";import"react/jsx-runtime";import"zustand";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"./useStickyStore.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import p from"../helpers/is-browser.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";let a=!1,l=!1,n=r=>{let t=i(),n=s(e=>e.changeSwatches),{swatches:m}=o(),{data:u}=e(["/query/productOptionName",{productOptionName:[]}],async()=>c(t),{revalidateOnMount:!0}),d=[];if(m?.forEach(e=>{d.push(e.optionTitle)}),u?.productOptionName?.forEach(e=>{d.includes(e)||(a=!0,m?.push({optionTitle:e,optionType:"rectangle_list",optionValues:[]}))}),!r)return[];g(m,r),p()&&m?.length&&(a||l)&&(window?.parent?.postMessage?.(JSON.stringify({type:"update-swatches",swatches:m}),"*"),n(m)),a=!1},m=(e,r)=>{let o=e?t[e.toLocaleLowerCase()]:void 0,i=o?[o]:[],s=r?.[0];return!s&&i.length&&(l=!0),s?[s]:i},u=(e,r)=>{let t=[],o=e.find(e=>e.name===r);return o?.values.forEach(e=>{e.label&&!t.includes(e.label)&&t.push(e.label)}),t},d=e=>{let r=[];return e.forEach(e=>{e.label&&!r.includes(e.label)&&r.push(e.label)}),r},g=(e,r)=>(e&&e?.map(e=>{let t=u(r,e.optionTitle),o=d(e.optionValues);t.forEach(r=>{o.includes(r)||e.optionValues.push({label:r,colors:m(r),imageUrl:""})}),e.optionValues=e.optionValues.map(e=>(void 0===e.imageUrl&&(a=!0),{label:e.label??"",colors:m(e.label,e.colors),imageUrl:e.imageUrl??""}))}),e),c=async e=>{let t=async t=>{let o=await e([r.toString(),t]);return o};return t({})};export{n as default};
1
+ import e from"swr";import{ProductOptionNameDocument as r}from"../graphql/queries/product-value-label.generated.js";import{colorPreset as t}from"../components/src/product/helpers/variant-presets.js";import{useSwatches as o}from"./shop.js";import{useFetchHandle as s}from"./useFetchHandle.js";import{useShopStore as p}from"../contexts/ShopContext.js";import"react";import"react/jsx-runtime";import"zustand";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"../graphql-shopify/articles.generated.js";import"../graphql-shopify/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql-shopify/collections.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../graphql-shopify/products.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import"./useStickyStore.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import i from"../helpers/is-browser.js";import"crc-32";import"../helpers/convert.js";let a=!1,l=!1,n=r=>{let t=s(),n=p(e=>e.changeSwatches),{swatches:m}=o(),{data:u}=e(["/query/productOptionName",{productOptionName:[]}],async()=>h(t),{revalidateOnMount:!0}),g=[];if(m?.forEach(e=>{g.push(e.optionTitle)}),u?.productOptionName?.forEach(e=>{g.includes(e)||(a=!0,m?.push({optionTitle:e,optionType:"rectangle_list",optionValues:[]}))}),!r)return[];d(m,r),i()&&m?.length&&(a||l)&&(window?.parent?.postMessage?.(JSON.stringify({type:"update-swatches",swatches:m}),"*"),n(m)),a=!1},m=(e,r)=>{let o=e?t[e.toLocaleLowerCase()]:void 0,s=o?[o]:[],p=r?.[0];return!p&&s.length&&(l=!0),p?[p]:s},u=(e,r)=>{let t=[],o=e.find(e=>e.name===r);return o?.values.forEach(e=>{e.label&&!t.includes(e.label)&&t.push(e.label)}),t},g=e=>{let r=[];return e.forEach(e=>{e.label&&!r.includes(e.label)&&r.push(e.label)}),r},d=(e,r)=>(e&&e?.map(e=>{let t=u(r,e.optionTitle),o=g(e.optionValues);t.forEach(r=>{o.includes(r)||e.optionValues.push({label:r,colors:m(r),imageUrl:""})}),e.optionValues=e.optionValues.map(e=>(void 0===e.imageUrl&&(a=!0),{label:e.label??"",colors:m(e.label,e.colors),imageUrl:e.imageUrl??""}))}),e),h=async e=>{let t=async t=>{let o=await e([r.toString(),t]);return o};return t({})};export{n as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{useMemo as e,useCallback as t,useEffect as r}from"react";import{useProductStore as i}from"../contexts/ProductContext.js";import"react/jsx-runtime";import"zustand";import{usePageStore as o}from"../contexts/PageContext.js";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"swr/infinite";import"../graphql/queries/productsV2.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import{convertDecimalToNumber as s}from"./useFormatMoney.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import{checkInStock as a}from"../helpers/variant.js";import{useShopifyLink as n}from"./shop/useShopifyLink.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import{flattenConnection as p}from"../helpers/flatten-connection.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../helpers/convert.js";import"crc-32";import{getSelectedVariant as u}from"../helpers/product.js";let l=()=>i(e=>e.uiqueId),d=()=>i(e=>e.product),c=()=>i(e=>e.featuredImageGlobal),m=()=>i(e=>e.properties),g=()=>i(e=>e.isSyncProduct),h=()=>{let e=i(e=>e.useProductCompareAtPrice),t=i(e=>e.setUseProductCompareAtPrice);return{useProductCompareAtPrice:e,seUseProductCompareAtPrice:t}},q=()=>{let e=i(e=>e.product),t=e?.baseID?.replace("gid://shopify/Product/",""),{linkEditProduct:r}=n({productId:t});return{linkEditProduct:r,redirectProductShopifyLink:()=>{r&&window.open(r,"_blank")}}},f=()=>{let o=i(e=>e.quantity),s=i(e=>e.updatePrice),a=i(e=>e.decrementQuantity),n=i(e=>e.incrementQuantity),p=i(e=>e.setQuantity),u=i(e=>e.setHasUpdatePriceFollowQuantity),l=i(e=>e.isSyncProduct),d=i(e=>e.product),c=d?.id,m=t(()=>{p(1)},[p]);return r(()=>{if(l){let e=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:o,productId:c}});window.dispatchEvent(e)}},[o,l,c]),e(()=>({quantity:o,hasUpdatePrice:s,increment:n,decrement:a,reset:m,setQuantity:p,setUpdatePrice:u}),[a,n,o,m,p,u,s])},j=()=>{let t=i(e=>e.hasPreSelected),r=i(e=>e.setHasPreSelected);return e(()=>({hasPreSelected:t,setHasPreSelected:r}),[t,r])},y=()=>{let r=i(e=>e.setSelectedOption),o=i(e=>e.selectedOptions),s=i(e=>e.forceSelectedOption),a=i(e=>e.isSyncProduct),n=i(e=>e.isChangeSelectedOption),p=i(e=>e.setIsChangeSelectedOption),u=t((e,t,i,o)=>{if(!o&&a){let r=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:e,optionValue:t,productId:i,isManualChange:!0}});window.dispatchEvent(r)}r(e,t),p(!0)},[a,r,p]),l=t((e,t,r,i)=>{if(!r&&a){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t,isManualChange:i}});window.dispatchEvent(r)}s(e)},[s,a]);return e(()=>({isChangeSelectedOption:n,selectedOptions:o,setSelectedOption:u,forceSelectedOption:l}),[o,u,l])},b=()=>{let e=i(e=>e.product?.variants);return p(e)},P=t=>{let r=b();return e(()=>r?.find(e=>e?.id===t),[t,r])},S=()=>{let{selectedOptions:t}=y(),r=b();return e(()=>u(r,t),[t,r])},v=()=>{let e=S(),t=d();return a(e,t)},w=(e,t,r)=>{let{selectedOptions:i}=y(),o=b(),s=r.optionNumber-1;if(r.position<s)return o.some(r=>{if(r){let{selectedOptions:i}=r,o=i?.some(r=>r?.name===e&&r.value===t),s=a(r);return o&&s}});let n=u(o,{...i,[e]:t});return a(n)},C=(e,t)=>{let r=b();return!!r&&r.some(r=>{if(r){let{selectedOptions:i}=r,o=i?.some(r=>r?.name===e&&r.value===t),s=a(r);return o&&s}return!1})},I=()=>{let e=o(e=>e.productOffers),t=d(),r=S(),i=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!i||!i.isEnabled)return 0;let a=i?.value;if(i&&"PERCENTAGE"===i.valueType&&a){let e=s(r?.price)??0;a=a*e/100}return a||0};export{C as useCheckAvailableVariantInStock,S as useCurrentVariant,v as useCurrentVariantInStock,c as useFeaturedImageGlobal,j as useHasPreSelected,g as useIsSyncProduct,d as useProduct,h as useProductBundleDiscount,I as useProductOfferDiscount,m as useProductProperties,q as useProductShopifyEditLink,f as useQuantity,y as useSelectedOption,l as useUniqProductID,P as useVariant,w as useVariantOutStock,b as useVariants};
2
+ import{useMemo as e,useCallback as t,useEffect as r}from"react";import{useProductStore as o}from"../contexts/ProductContext.js";import"react/jsx-runtime";import"zustand";import{usePageStore as i}from"../contexts/PageContext.js";import"swr";import"../graphql/queries/articles.generated.js";import"../graphql/queries/blogs.generated.js";import"../types/builder.js";import"../types/custom.js";import"../types/animations.js";import"../graphql-shopify/articles.generated.js";import"../graphql-shopify/blogs.generated.js";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"../graphql/queries/collection-detail-filter.generated.js";import"../graphql/queries/collection.generated.js";import"../graphql/queries/collections.generated.js";import"../graphql/queries/published-theme-pages.generated.js";import"../graphql/queries/store-property.generated.js";import"../graphql/queries/preview-page.generated.js";import"../graphql/queries/published-shop-metas.generated.js";import"../graphql/queries/shop-shopify.generated.js";import"../graphql/queries/products-with-selling-plans.generated.js";import"../graphql/queries/product-variant-with-selling-plans.generated.js";import"../graphql/queries/product-variants.generated.js";import"../graphql-shopify/collections.generated.js";import"../graphql-shopify/product-variants.generated.js";import"../graphql-shopify/product-detail.generated.js";import"../graphql-shopify/product-medias.generated.js";import"../graphql/queries/product-little-detail.generated.js";import"../graphql/queries/product-medias.generated.js";import"../graphql/queries/productsV2.generated.js";import"../graphql-shopify/products.generated.js";import"vanilla-lazyload";import"./useCartUI.js";import{convertDecimalToNumber as s}from"./useFormatMoney.js";import"../graphql/queries/product-value-label.generated.js";import"./useStickyStore.js";import{checkInStock as a}from"../helpers/variant.js";import{useShopifyLink as p}from"./shop/useShopifyLink.js";import"react-transition-group";import"../components/constant.js";import"@gem-sdk/core";import{flattenConnection as n}from"../helpers/flatten-connection.js";import"crc-32";import"../helpers/convert.js";import{getSelectedVariant as u}from"../helpers/product.js";let l=()=>o(e=>e.uiqueId),d=()=>o(e=>e.product),c=()=>o(e=>e.featuredImageGlobal),m=()=>o(e=>e.properties),g=()=>o(e=>e.isSyncProduct),h=()=>{let e=o(e=>e.useProductCompareAtPrice),t=o(e=>e.setUseProductCompareAtPrice);return{useProductCompareAtPrice:e,seUseProductCompareAtPrice:t}},q=()=>{let e=o(e=>e.product),t=e?.baseID?.replace("gid://shopify/Product/",""),{linkEditProduct:r}=p({productId:t});return{linkEditProduct:r,redirectProductShopifyLink:()=>{r&&window.open(r,"_blank")}}},f=()=>{let i=o(e=>e.quantity),s=o(e=>e.updatePrice),a=o(e=>e.decrementQuantity),p=o(e=>e.incrementQuantity),n=o(e=>e.setQuantity),u=o(e=>e.setHasUpdatePriceFollowQuantity),l=o(e=>e.isSyncProduct),d=o(e=>e.product),c=d?.id,m=t(()=>{n(1)},[n]);return r(()=>{if(l){let e=new CustomEvent("set-product-quantity",{bubbles:!0,cancelable:!0,composed:!0,detail:{quantity:i,productId:c}});window.dispatchEvent(e)}},[i,l,c]),e(()=>({quantity:i,hasUpdatePrice:s,increment:p,decrement:a,reset:m,setQuantity:n,setUpdatePrice:u}),[a,p,i,m,n,u,s])},j=()=>{let t=o(e=>e.hasPreSelected),r=o(e=>e.setHasPreSelected);return e(()=>({hasPreSelected:t,setHasPreSelected:r}),[t,r])},y=()=>{let r=o(e=>e.setSelectedOption),i=o(e=>e.selectedOptions),s=o(e=>e.forceSelectedOption),a=o(e=>e.isSyncProduct),p=o(e=>e.isChangeSelectedOption),n=o(e=>e.setIsChangeSelectedOption),u=t((e,t,o,i)=>{if(!i&&a){let r=new CustomEvent("set-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{optionId:e,optionValue:t,productId:o,isManualChange:!0}});window.dispatchEvent(r)}r(e,t),n(!0)},[a,r,n]),l=t((e,t,r,o)=>{if(!r&&a){let r=new CustomEvent("force-selected-option",{bubbles:!0,cancelable:!0,composed:!0,detail:{selectedOption:e,productId:t,isManualChange:o}});window.dispatchEvent(r)}s(e)},[s,a]);return e(()=>({isChangeSelectedOption:p,selectedOptions:i,setSelectedOption:u,forceSelectedOption:l}),[i,u,l])},b=()=>{let e=o(e=>e.product?.variants);return n(e)},P=t=>{let r=b();return e(()=>r?.find(e=>e?.id===t),[t,r])},S=()=>{let{selectedOptions:t}=y(),r=b();return e(()=>u(r,t),[t,r])},v=()=>{let e=S(),t=d();return a(e,t)},w=(e,t,r)=>{let{selectedOptions:o}=y(),i=b(),s=r.optionNumber-1;if(r.position<s)return i.some(r=>{if(r){let{selectedOptions:o}=r,i=o?.some(r=>r?.name===e&&r.value===t),s=a(r);return i&&s}});let p=u(i,{...o,[e]:t});return a(p)},C=(e,t)=>{let r=b();return!!r&&r.some(r=>{if(r){let{selectedOptions:o}=r,i=o?.some(r=>r?.name===e&&r.value===t),s=a(r);return i&&s}return!1})},I=()=>{let e=i(e=>e.productOffers),t=d(),r=S(),o=e?.find(e=>e?.node?.objectBaseID===t?.baseID)?.node;if(!o||!o.isEnabled)return 0;let a=o?.value;if(o&&"PERCENTAGE"===o.valueType&&a){let e=s(r?.price)??0;a=a*e/100}return a||0};export{C as useCheckAvailableVariantInStock,S as useCurrentVariant,v as useCurrentVariantInStock,c as useFeaturedImageGlobal,j as useHasPreSelected,g as useIsSyncProduct,d as useProduct,h as useProductBundleDiscount,I as useProductOfferDiscount,m as useProductProperties,q as useProductShopifyEditLink,f as useQuantity,y as useSelectedOption,l as useUniqProductID,P as useVariant,w as useVariantOutStock,b as useVariants};