@gem-sdk/core 1.13.42 → 1.14.0-next.103

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 (241) hide show
  1. package/dist/cjs/components/AddOn.js +1 -18
  2. package/dist/cjs/components/ComponentWrapper.js +1 -28
  3. package/dist/cjs/components/ComponentWrapperPreview.js +1 -72
  4. package/dist/cjs/components/Empty.js +1 -7
  5. package/dist/cjs/components/Render.js +1 -65
  6. package/dist/cjs/components/Render.liquid.js +3 -158
  7. package/dist/cjs/components/RenderBlock.js +1 -54
  8. package/dist/cjs/components/RenderPreview.js +1 -66
  9. package/dist/cjs/components/RenderSection.js +1 -23
  10. package/dist/cjs/components/constant.js +1 -39
  11. package/dist/cjs/contexts/AddonContext.js +1 -36
  12. package/dist/cjs/contexts/BuilderComponent.js +1 -34
  13. package/dist/cjs/contexts/BuilderContext.js +1 -35
  14. package/dist/cjs/contexts/BuilderPreviewContext.js +1 -370
  15. package/dist/cjs/contexts/CartLineContext.js +1 -29
  16. package/dist/cjs/contexts/CollectionContext.js +1 -38
  17. package/dist/cjs/contexts/ModalContext.js +1 -47
  18. package/dist/cjs/contexts/ProductContext.js +1 -149
  19. package/dist/cjs/contexts/ProductListContext.js +1 -32
  20. package/dist/cjs/contexts/SectionContext.js +1 -53
  21. package/dist/cjs/contexts/ShopContext.js +1 -70
  22. package/dist/cjs/graphql/fragments/analytic.generated.js +2 -6
  23. package/dist/cjs/graphql/fragments/collection-detail.generated.js +2 -6
  24. package/dist/cjs/graphql/fragments/collection-product.generated.js +2 -6
  25. package/dist/cjs/graphql/fragments/collection.generated.js +2 -6
  26. package/dist/cjs/graphql/fragments/custom-code.generated.js +2 -6
  27. package/dist/cjs/graphql/fragments/data-seo.generated.js +2 -6
  28. package/dist/cjs/graphql/fragments/media.generated.js +3 -6
  29. package/dist/cjs/graphql/fragments/product-little.generated.js +2 -6
  30. package/dist/cjs/graphql/fragments/product-option-value.generated.js +2 -6
  31. package/dist/cjs/graphql/fragments/product-option.generated.js +2 -6
  32. package/dist/cjs/graphql/fragments/product.generated.js +2 -6
  33. package/dist/cjs/graphql/fragments/published-custom-section.generated.js +2 -6
  34. package/dist/cjs/graphql/fragments/published-page-section.generated.js +2 -6
  35. package/dist/cjs/graphql/fragments/published-theme-page.generated.js +2 -6
  36. package/dist/cjs/graphql/fragments/published-theme-style.generated.js +2 -6
  37. package/dist/cjs/graphql/fragments/selected-option.generated.js +2 -6
  38. package/dist/cjs/graphql/fragments/variant.generated.js +2 -6
  39. package/dist/cjs/graphql/mutations/page-view-up.generated.js +3 -7
  40. package/dist/cjs/graphql/queries/collection-detail-filter.generated.js +2 -16
  41. package/dist/cjs/graphql/queries/collection.generated.js +2 -14
  42. package/dist/cjs/graphql/queries/collections.generated.js +2 -9
  43. package/dist/cjs/graphql/queries/preview-page.generated.js +2 -14
  44. package/dist/cjs/graphql/queries/product-little-detail.generated.js +2 -11
  45. package/dist/cjs/graphql/queries/product-medias.generated.js +2 -8
  46. package/dist/cjs/graphql/queries/product-variants.generated.js +2 -10
  47. package/dist/cjs/graphql/queries/products.generated.js +3 -17
  48. package/dist/cjs/graphql/queries/published-theme-pages.generated.js +2 -14
  49. package/dist/cjs/graphql/queries/store-property.generated.js +2 -6
  50. package/dist/cjs/helpers/GlobalEvent.js +1 -19
  51. package/dist/cjs/helpers/background.js +1 -109
  52. package/dist/cjs/helpers/borders.js +4 -183
  53. package/dist/cjs/helpers/clone-deep.js +1 -5
  54. package/dist/cjs/helpers/cls.js +1 -16
  55. package/dist/cjs/helpers/colors.js +1 -183
  56. package/dist/cjs/helpers/compose-advance-style.js +1 -188
  57. package/dist/cjs/helpers/constant.js +1 -23
  58. package/dist/cjs/helpers/convert.js +1 -7
  59. package/dist/cjs/helpers/css-variable.js +1 -7
  60. package/dist/cjs/helpers/email.js +1 -11
  61. package/dist/cjs/helpers/flatten-connection.js +1 -9
  62. package/dist/cjs/helpers/get-resonsive-value.js +1 -31
  63. package/dist/cjs/helpers/get-shortname.js +1 -92
  64. package/dist/cjs/helpers/is-browser.js +1 -9
  65. package/dist/cjs/helpers/is-defined.js +1 -7
  66. package/dist/cjs/helpers/is-empty-children.js +1 -12
  67. package/dist/cjs/helpers/is-safari.js +1 -9
  68. package/dist/cjs/helpers/layout.js +1 -59
  69. package/dist/cjs/helpers/load-script.js +1 -31
  70. package/dist/cjs/helpers/make-style.js +1 -128
  71. package/dist/cjs/helpers/normalize-builder-data.js +1 -23
  72. package/dist/cjs/helpers/prefetch-queries.js +1 -78
  73. package/dist/cjs/helpers/product.js +1 -45
  74. package/dist/cjs/helpers/queries/get-collection.js +1 -220
  75. package/dist/cjs/helpers/queries/get-collections.js +1 -21
  76. package/dist/cjs/helpers/queries/get-product-by-slug.js +1 -125
  77. package/dist/cjs/helpers/queries/get-product.js +1 -154
  78. package/dist/cjs/helpers/queries/get-products.js +1 -161
  79. package/dist/cjs/helpers/query.js +1 -29
  80. package/dist/cjs/helpers/radius.js +6 -131
  81. package/dist/cjs/helpers/render.js +1 -71
  82. package/dist/cjs/helpers/shadow.js +1 -56
  83. package/dist/cjs/helpers/size.js +4 -35
  84. package/dist/cjs/helpers/spacing.js +1 -43
  85. package/dist/cjs/helpers/tracking/fpixel.js +1 -28
  86. package/dist/cjs/helpers/tracking/gtag.js +1 -93
  87. package/dist/cjs/helpers/tracking/tiktokpixel.js +1 -17
  88. package/dist/cjs/helpers/typography.js +17 -105
  89. package/dist/cjs/helpers/variant.js +1 -8
  90. package/dist/cjs/hooks/cart/use-add-to-cart.js +1 -20
  91. package/dist/cjs/hooks/cart/use-cart-data.js +1 -28
  92. package/dist/cjs/hooks/cart/use-cart-discount-codes-update.js +1 -20
  93. package/dist/cjs/hooks/cart/use-cart-note-update.js +1 -20
  94. package/dist/cjs/hooks/cart/use-create-cart.js +1 -22
  95. package/dist/cjs/hooks/cart/use-remove-cart-item.js +1 -20
  96. package/dist/cjs/hooks/cart/use-update-cart-item.js +1 -20
  97. package/dist/cjs/hooks/shop/use-collection-query.js +1 -22
  98. package/dist/cjs/hooks/shop/use-collections-query.js +1 -17
  99. package/dist/cjs/hooks/shop/use-product-query.js +1 -22
  100. package/dist/cjs/hooks/shop/use-products-query.js +1 -22
  101. package/dist/cjs/hooks/shop.js +1 -126
  102. package/dist/cjs/hooks/use-current-device.js +1 -21
  103. package/dist/cjs/hooks/use-lazy-video.js +1 -15
  104. package/dist/cjs/hooks/useCartId.js +1 -44
  105. package/dist/cjs/hooks/useCartLine.js +1 -11
  106. package/dist/cjs/hooks/useCartUI.js +1 -48
  107. package/dist/cjs/hooks/useCollection.js +1 -9
  108. package/dist/cjs/hooks/useFetchHandle.js +1 -13
  109. package/dist/cjs/hooks/useFormatMoney.js +1 -58
  110. package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +1 -10
  111. package/dist/cjs/hooks/useLoadScript.js +1 -32
  112. package/dist/cjs/hooks/useMoney.js +1 -84
  113. package/dist/cjs/hooks/usePrevious.js +1 -19
  114. package/dist/cjs/hooks/useProduct.js +1 -124
  115. package/dist/cjs/hooks/useProductList.js +1 -21
  116. package/dist/cjs/hooks/useSuspenseFetch.js +1 -27
  117. package/dist/cjs/hooks/useSwatchesOptions.js +1 -41
  118. package/dist/cjs/index.js +1 -291
  119. package/dist/cjs/types/global-style.js +1 -14
  120. package/dist/cjs/types/shop.js +1 -2
  121. package/dist/esm/components/AddOn.js +1 -14
  122. package/dist/esm/components/ComponentWrapper.js +1 -24
  123. package/dist/esm/components/ComponentWrapperPreview.js +1 -68
  124. package/dist/esm/components/Empty.js +1 -3
  125. package/dist/esm/components/Render.js +1 -61
  126. package/dist/esm/components/Render.liquid.js +3 -153
  127. package/dist/esm/components/RenderBlock.js +1 -50
  128. package/dist/esm/components/RenderPreview.js +1 -62
  129. package/dist/esm/components/RenderSection.js +1 -19
  130. package/dist/esm/components/constant.js +1 -37
  131. package/dist/esm/contexts/AddonContext.js +1 -32
  132. package/dist/esm/contexts/BuilderComponent.js +1 -31
  133. package/dist/esm/contexts/BuilderContext.js +1 -32
  134. package/dist/esm/contexts/BuilderPreviewContext.js +1 -367
  135. package/dist/esm/contexts/CartLineContext.js +1 -26
  136. package/dist/esm/contexts/CollectionContext.js +1 -35
  137. package/dist/esm/contexts/ModalContext.js +1 -44
  138. package/dist/esm/contexts/ProductContext.js +1 -146
  139. package/dist/esm/contexts/ProductListContext.js +1 -28
  140. package/dist/esm/contexts/SectionContext.js +1 -49
  141. package/dist/esm/contexts/ShopContext.js +1 -67
  142. package/dist/esm/graphql/fragments/analytic.generated.js +2 -4
  143. package/dist/esm/graphql/fragments/collection-detail.generated.js +2 -4
  144. package/dist/esm/graphql/fragments/collection-product.generated.js +2 -4
  145. package/dist/esm/graphql/fragments/collection.generated.js +2 -4
  146. package/dist/esm/graphql/fragments/custom-code.generated.js +2 -4
  147. package/dist/esm/graphql/fragments/data-seo.generated.js +2 -4
  148. package/dist/esm/graphql/fragments/media.generated.js +3 -4
  149. package/dist/esm/graphql/fragments/product-little.generated.js +2 -4
  150. package/dist/esm/graphql/fragments/product-option-value.generated.js +2 -4
  151. package/dist/esm/graphql/fragments/product-option.generated.js +2 -4
  152. package/dist/esm/graphql/fragments/product.generated.js +2 -4
  153. package/dist/esm/graphql/fragments/published-custom-section.generated.js +2 -4
  154. package/dist/esm/graphql/fragments/published-page-section.generated.js +2 -4
  155. package/dist/esm/graphql/fragments/published-theme-page.generated.js +2 -4
  156. package/dist/esm/graphql/fragments/published-theme-style.generated.js +2 -4
  157. package/dist/esm/graphql/fragments/selected-option.generated.js +2 -4
  158. package/dist/esm/graphql/fragments/variant.generated.js +2 -4
  159. package/dist/esm/graphql/mutations/page-view-up.generated.js +3 -5
  160. package/dist/esm/graphql/queries/collection-detail-filter.generated.js +10 -22
  161. package/dist/esm/graphql/queries/collection.generated.js +8 -18
  162. package/dist/esm/graphql/queries/collections.generated.js +3 -8
  163. package/dist/esm/graphql/queries/preview-page.generated.js +8 -18
  164. package/dist/esm/graphql/queries/product-little-detail.generated.js +5 -12
  165. package/dist/esm/graphql/queries/product-medias.generated.js +2 -6
  166. package/dist/esm/graphql/queries/product-variants.generated.js +4 -10
  167. package/dist/esm/graphql/queries/products.generated.js +9 -20
  168. package/dist/esm/graphql/queries/published-theme-pages.generated.js +8 -18
  169. package/dist/esm/graphql/queries/store-property.generated.js +2 -4
  170. package/dist/esm/helpers/GlobalEvent.js +1 -15
  171. package/dist/esm/helpers/background.js +1 -106
  172. package/dist/esm/helpers/borders.js +4 -175
  173. package/dist/esm/helpers/clone-deep.js +1 -3
  174. package/dist/esm/helpers/cls.js +1 -14
  175. package/dist/esm/helpers/colors.js +1 -168
  176. package/dist/esm/helpers/compose-advance-style.js +1 -185
  177. package/dist/esm/helpers/constant.js +1 -19
  178. package/dist/esm/helpers/convert.js +1 -4
  179. package/dist/esm/helpers/css-variable.js +1 -5
  180. package/dist/esm/helpers/email.js +1 -6
  181. package/dist/esm/helpers/flatten-connection.js +1 -7
  182. package/dist/esm/helpers/get-resonsive-value.js +1 -27
  183. package/dist/esm/helpers/get-shortname.js +1 -90
  184. package/dist/esm/helpers/is-browser.js +1 -5
  185. package/dist/esm/helpers/is-defined.js +1 -5
  186. package/dist/esm/helpers/is-empty-children.js +1 -7
  187. package/dist/esm/helpers/is-safari.js +1 -5
  188. package/dist/esm/helpers/layout.js +1 -54
  189. package/dist/esm/helpers/load-script.js +1 -29
  190. package/dist/esm/helpers/make-style.js +1 -117
  191. package/dist/esm/helpers/normalize-builder-data.js +1 -21
  192. package/dist/esm/helpers/prefetch-queries.js +1 -76
  193. package/dist/esm/helpers/product.js +1 -41
  194. package/dist/esm/helpers/queries/get-collection.js +1 -217
  195. package/dist/esm/helpers/queries/get-collections.js +1 -19
  196. package/dist/esm/helpers/queries/get-product-by-slug.js +1 -123
  197. package/dist/esm/helpers/queries/get-product.js +1 -150
  198. package/dist/esm/helpers/queries/get-products.js +1 -159
  199. package/dist/esm/helpers/query.js +1 -25
  200. package/dist/esm/helpers/radius.js +6 -124
  201. package/dist/esm/helpers/render.js +1 -64
  202. package/dist/esm/helpers/shadow.js +1 -51
  203. package/dist/esm/helpers/size.js +4 -31
  204. package/dist/esm/helpers/spacing.js +1 -40
  205. package/dist/esm/helpers/tracking/fpixel.js +1 -24
  206. package/dist/esm/helpers/tracking/gtag.js +1 -87
  207. package/dist/esm/helpers/tracking/tiktokpixel.js +1 -15
  208. package/dist/esm/helpers/typography.js +17 -96
  209. package/dist/esm/helpers/variant.js +1 -6
  210. package/dist/esm/hooks/cart/use-add-to-cart.js +1 -18
  211. package/dist/esm/hooks/cart/use-cart-data.js +1 -26
  212. package/dist/esm/hooks/cart/use-cart-discount-codes-update.js +1 -18
  213. package/dist/esm/hooks/cart/use-cart-note-update.js +1 -18
  214. package/dist/esm/hooks/cart/use-create-cart.js +1 -20
  215. package/dist/esm/hooks/cart/use-remove-cart-item.js +1 -18
  216. package/dist/esm/hooks/cart/use-update-cart-item.js +1 -18
  217. package/dist/esm/hooks/shop/use-collection-query.js +1 -20
  218. package/dist/esm/hooks/shop/use-collections-query.js +1 -15
  219. package/dist/esm/hooks/shop/use-product-query.js +1 -20
  220. package/dist/esm/hooks/shop/use-products-query.js +1 -20
  221. package/dist/esm/hooks/shop.js +1 -111
  222. package/dist/esm/hooks/use-current-device.js +1 -19
  223. package/dist/esm/hooks/use-lazy-video.js +1 -13
  224. package/dist/esm/hooks/useCartId.js +1 -40
  225. package/dist/esm/hooks/useCartLine.js +1 -7
  226. package/dist/esm/hooks/useCartUI.js +1 -44
  227. package/dist/esm/hooks/useCollection.js +1 -7
  228. package/dist/esm/hooks/useFetchHandle.js +1 -11
  229. package/dist/esm/hooks/useFormatMoney.js +1 -56
  230. package/dist/esm/hooks/useIsomorphicLayoutEffect.js +1 -6
  231. package/dist/esm/hooks/useLoadScript.js +1 -28
  232. package/dist/esm/hooks/useMoney.js +1 -80
  233. package/dist/esm/hooks/usePrevious.js +1 -17
  234. package/dist/esm/hooks/useProduct.js +1 -111
  235. package/dist/esm/hooks/useProductList.js +1 -16
  236. package/dist/esm/hooks/useSuspenseFetch.js +1 -23
  237. package/dist/esm/hooks/useSwatchesOptions.js +1 -37
  238. package/dist/esm/index.js +1 -92
  239. package/dist/esm/types/global-style.js +1 -11
  240. package/dist/types/index.d.ts +1036 -983
  241. package/package.json +2 -2
@@ -1,35 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const BuilderContext = /*#__PURE__*/ react.createContext(null);
8
- const createBuilderProvider = (data)=>zustand.createStore((_, get)=>({
9
- state: data,
10
- getItem: (id)=>{
11
- return get().state[id];
12
- }
13
- }));
14
- const BuilderProvider = ({ children, state, lazy, priority, ...passProps })=>{
15
- const Component = lazy ? react.Suspense : react.Fragment;
16
- const store = createBuilderProvider(state);
17
- return /*#__PURE__*/ jsxRuntime.jsx(Component, {
18
- children: /*#__PURE__*/ jsxRuntime.jsx(BuilderContext.Provider, {
19
- ...passProps,
20
- value: store,
21
- children: children
22
- })
23
- });
24
- };
25
- // export const useBuilderStore = useStore;
26
- const useBuilderStore = (selector, equalityFn)=>{
27
- const store = react.useContext(BuilderContext);
28
- if (!store) {
29
- throw new Error('useBuilderStore must be used within a BuilderProvider');
30
- }
31
- return zustand.useStore(store, selector, equalityFn);
32
- };
33
-
34
- exports.BuilderProvider = BuilderProvider;
35
- exports.useBuilderStore = useBuilderStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const BuilderContext=react.createContext(null),createBuilderProvider=e=>zustand.createStore((r,t)=>({state:e,getItem:e=>t().state[e]})),BuilderProvider=({children:e,state:r,lazy:t,priority:u,...i})=>{let d=t?react.Suspense:react.Fragment,s=createBuilderProvider(r);return jsxRuntime.jsx(d,{children:jsxRuntime.jsx(BuilderContext.Provider,{...i,value:s,children:e})})},useBuilderStore=(e,r)=>{let t=react.useContext(BuilderContext);if(!t)throw Error("useBuilderStore must be used within a BuilderProvider");return zustand.useStore(t,e,r)};exports.BuilderProvider=BuilderProvider,exports.useBuilderStore=useBuilderStore;
@@ -1,370 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
- var cloneDeep = require('../helpers/clone-deep.js');
7
- var normalizeBuilderData = require('../helpers/normalize-builder-data.js');
8
-
9
- function moveByIndex(input, from, to) {
10
- const elm = input.splice(from, 1)[0];
11
- if (elm !== undefined) {
12
- input.splice(to, 0, elm);
13
- }
14
- }
15
- function removeByKey(id, data) {
16
- const item = data[id];
17
- if (item) {
18
- delete data[id];
19
- if (item.type !== 'section') {
20
- item.childrens?.map((child)=>removeByKey(child, data));
21
- }
22
- }
23
- }
24
- const BuilderPreviewContext = /*#__PURE__*/ react.createContext(null);
25
- const root = {
26
- uid: 'ROOT',
27
- tag: 'Root',
28
- label: 'Root',
29
- childrens: []
30
- };
31
- const createBuilderPreviewProvider = (args)=>zustand.createStore((set, get)=>({
32
- state: args,
33
- loaded: false,
34
- addItem: (args)=>{
35
- const { position, data } = args;
36
- const state = get().state;
37
- const dateModified = Date.now();
38
- if (args.type === 'section') {
39
- if (!Array.isArray(data)) {
40
- const sectionId = data.uid;
41
- // Section only add to ROOT
42
- const ROOT = state.ROOT;
43
- if (!ROOT.childrens) {
44
- ROOT.childrens = [
45
- sectionId
46
- ];
47
- } else {
48
- ROOT.childrens.splice(position ?? 0, 0, sectionId);
49
- }
50
- ROOT.dateModified = dateModified;
51
- set({
52
- state: {
53
- ...state,
54
- [sectionId]: {
55
- uid: sectionId,
56
- type: 'section',
57
- label: data.label
58
- },
59
- ROOT: cloneDeep.cloneDeep(ROOT)
60
- }
61
- });
62
- }
63
- } else {
64
- const { id, data } = args;
65
- const parent = id ? state[id] ?? state.ROOT : state.ROOT;
66
- // Can't add item to section
67
- if (parent.type === 'section') return;
68
- if (Array.isArray(data)) {
69
- const childrens = data.map((v)=>v.uid);
70
- const newState = data.reduceRight((prev, current)=>{
71
- const item = normalizeBuilderData.normalizeBuilderData(current);
72
- return {
73
- ...prev,
74
- ...item
75
- };
76
- }, {});
77
- parent.dateModified = dateModified;
78
- parent.childrens = parent.childrens ?? [];
79
- parent.childrens.splice(position ?? 0, 0, ...childrens);
80
- set({
81
- state: {
82
- ...state,
83
- ...newState,
84
- [parent.uid]: cloneDeep.cloneDeep(parent)
85
- }
86
- });
87
- } else {
88
- const item = normalizeBuilderData.normalizeBuilderData(data);
89
- parent.dateModified = dateModified;
90
- parent.childrens = parent.childrens ?? [];
91
- parent.childrens.splice(position ?? 0, 0, data.uid);
92
- set({
93
- state: {
94
- ...state,
95
- ...item,
96
- [parent.uid]: cloneDeep.cloneDeep(parent)
97
- }
98
- });
99
- }
100
- }
101
- },
102
- changeItemProp: (id, data, group)=>{
103
- if (!group || ![
104
- 'setting',
105
- 'style',
106
- 'advanced'
107
- ].includes(group)) return;
108
- const state = get().state;
109
- const item = state[id];
110
- // Ignore section
111
- if (item?.type === 'section') return;
112
- if (item) {
113
- const dateModified = Date.now();
114
- item.dateModified = dateModified;
115
- switch(group){
116
- case 'setting':
117
- set({
118
- state: {
119
- ...state,
120
- [id]: {
121
- ...item,
122
- settings: {
123
- ...item.settings,
124
- ...data
125
- }
126
- }
127
- }
128
- });
129
- break;
130
- case 'style':
131
- set({
132
- state: {
133
- ...state,
134
- [id]: {
135
- ...item,
136
- styles: {
137
- ...item.styles,
138
- ...data
139
- }
140
- }
141
- }
142
- });
143
- break;
144
- case 'advanced':
145
- set({
146
- state: {
147
- ...state,
148
- [id]: {
149
- ...item,
150
- advanced: {
151
- ...item.advanced,
152
- ...data
153
- }
154
- }
155
- }
156
- });
157
- break;
158
- }
159
- }
160
- },
161
- changeItemPropByKey: ({ id, key, data, group })=>{
162
- if (!group || ![
163
- 'setting',
164
- 'style',
165
- 'advanced'
166
- ].includes(group)) return;
167
- const state = get().state;
168
- const item = state[id];
169
- // Ignore section
170
- if (item?.type === 'section') return;
171
- if (item) {
172
- const itemSetting = {
173
- style: item.styles ?? {},
174
- advanced: item.advanced ?? {},
175
- setting: item.settings ?? {}
176
- };
177
- if (data === undefined) {
178
- console.warn('Data is undefined');
179
- delete itemSetting[group][key];
180
- } else {
181
- itemSetting[group][key] = data;
182
- }
183
- set({
184
- state: {
185
- ...state,
186
- [id]: {
187
- ...item,
188
- settings: {
189
- ...itemSetting.setting
190
- },
191
- styles: {
192
- ...itemSetting.style
193
- },
194
- advanced: {
195
- ...itemSetting.advanced
196
- }
197
- }
198
- }
199
- });
200
- }
201
- },
202
- getItem: (id)=>{
203
- return get().state[id];
204
- },
205
- removeItem: (id)=>{
206
- if (id === 'ROOT') {
207
- set({
208
- state: {
209
- ROOT: root
210
- }
211
- });
212
- } else {
213
- const state = get().state;
214
- removeByKey(id, state);
215
- // Get parent node by id
216
- const parent = Object.entries(state).find(([, value])=>value.type !== 'section' && value.childrens?.includes(id));
217
- if (parent) {
218
- const dateModified = Date.now();
219
- const [parentId, parentValue] = parent;
220
- if (parentValue.type === 'section') return;
221
- parentValue.childrens = parentValue.childrens?.filter((child)=>child !== id);
222
- parentValue.dateModified = dateModified;
223
- set({
224
- state: {
225
- ...state,
226
- [parentId]: cloneDeep.cloneDeep(parentValue)
227
- }
228
- });
229
- }
230
- }
231
- },
232
- moveItem: (id, toId, position)=>{
233
- const state = get().state;
234
- const item = state[id];
235
- const moveTo = state[toId];
236
- // Ignore section
237
- if (!item || !moveTo || moveTo.type === 'section') return;
238
- if (item.type === 'section') {
239
- // Section only add to ROOT
240
- const ROOT = state.ROOT;
241
- if (!ROOT.childrens) return;
242
- const currentIndex = ROOT.childrens.findIndex((uid)=>uid === id);
243
- moveByIndex(ROOT.childrens, currentIndex, position ?? 0);
244
- set({
245
- state: {
246
- ...state,
247
- ROOT: cloneDeep.cloneDeep(ROOT)
248
- }
249
- });
250
- } else {
251
- const parent = Object.entries(state).find(([, value])=>value.type !== 'section' && value.childrens?.includes(id));
252
- if (item && parent) {
253
- const dateModified = Date.now();
254
- const [, parentItem] = parent;
255
- // Ignore section
256
- if (parentItem.type === 'section') return;
257
- parentItem.dateModified = dateModified;
258
- if (toId === parentItem.uid && parentItem.childrens) {
259
- // Move item to the same parent
260
- const currentIndex = parentItem.childrens.findIndex((uid)=>uid === id);
261
- if (parentItem.childrens && currentIndex !== position) {
262
- moveByIndex(parentItem.childrens, currentIndex, position ?? 0);
263
- set({
264
- state: {
265
- ...state,
266
- [parentItem.uid]: cloneDeep.cloneDeep(parentItem)
267
- }
268
- });
269
- }
270
- } else {
271
- // Move item to another parent
272
- // Remove item from parent node
273
- parentItem.childrens = parentItem.childrens?.filter((uid)=>uid !== id);
274
- if (moveTo) {
275
- moveTo.dateModified = dateModified;
276
- moveTo.childrens = moveTo.childrens ?? [];
277
- moveTo.childrens.splice(position ?? 0, 0, item.uid);
278
- set({
279
- state: {
280
- ...state,
281
- [moveTo.uid]: cloneDeep.cloneDeep(moveTo),
282
- [parentItem.uid]: cloneDeep.cloneDeep(parentItem)
283
- }
284
- });
285
- }
286
- }
287
- }
288
- }
289
- },
290
- forceChangeState: (data)=>{
291
- set({
292
- state: data,
293
- loaded: true
294
- });
295
- },
296
- initState: (data)=>{
297
- if (Array.isArray(data)) {
298
- const childrens = data.map((v)=>v.uid);
299
- const newState = data.reduceRight((prev, current)=>{
300
- const item = normalizeBuilderData.normalizeBuilderData(current);
301
- return {
302
- ...prev,
303
- ...item
304
- };
305
- }, {});
306
- set({
307
- loaded: true,
308
- state: {
309
- ROOT: {
310
- ...root,
311
- childrens
312
- },
313
- ...newState
314
- }
315
- });
316
- } else {
317
- const newState = normalizeBuilderData.normalizeBuilderData(data);
318
- set({
319
- loaded: true,
320
- state: {
321
- ROOT: {
322
- ...root,
323
- childrens: [
324
- data.uid
325
- ]
326
- },
327
- ...newState
328
- }
329
- });
330
- }
331
- },
332
- addSection: (data, position)=>{
333
- const state = get().state;
334
- const ROOT = state.ROOT;
335
- if (!ROOT.childrens) ROOT.childrens = [];
336
- ROOT.childrens.splice(position ?? 0, 0, data.uid);
337
- set({
338
- state: {
339
- ...state,
340
- ROOT: cloneDeep.cloneDeep(ROOT)
341
- }
342
- });
343
- }
344
- }));
345
- const BuilderPreviewProvider = ({ children, state, lazy, ...passProps })=>{
346
- const Component = lazy ? react.Suspense : react.Fragment;
347
- const value = react.useMemo(()=>{
348
- return createBuilderPreviewProvider(state);
349
- }, [
350
- state
351
- ]);
352
- return /*#__PURE__*/ jsxRuntime.jsx(Component, {
353
- children: /*#__PURE__*/ jsxRuntime.jsx(BuilderPreviewContext.Provider, {
354
- ...passProps,
355
- value: value,
356
- children: children
357
- })
358
- });
359
- };
360
- // export const useBuilderPreviewStore = useStore;
361
- const useBuilderPreviewStore = (selector, equalityFn)=>{
362
- const store = react.useContext(BuilderPreviewContext);
363
- if (!store) {
364
- throw new Error('useBuilderPreviewStore must be used within a BuilderPreviewProvider');
365
- }
366
- return zustand.useStore(store, selector, equalityFn);
367
- };
368
-
369
- exports.BuilderPreviewProvider = BuilderPreviewProvider;
370
- exports.useBuilderPreviewStore = useBuilderPreviewStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand"),cloneDeep=require("../helpers/clone-deep.js"),normalizeBuilderData=require("../helpers/normalize-builder-data.js");function moveByIndex(e,t,i){let r=e.splice(t,1)[0];void 0!==r&&e.splice(i,0,r)}function removeByKey(e,t){let i=t[e];i&&(delete t[e],"section"!==i.type&&i.childrens?.map(e=>removeByKey(e,t)))}const BuilderPreviewContext=react.createContext(null),root={uid:"ROOT",tag:"Root",label:"Root",childrens:[]},createBuilderPreviewProvider=e=>zustand.createStore((t,i)=>({state:e,loaded:!1,addItem:e=>{let{position:r,data:l}=e,d=i().state,n=Date.now();if("section"===e.type){if(!Array.isArray(l)){let e=l.uid,i=d.ROOT;i.childrens?i.childrens.splice(r??0,0,e):i.childrens=[e],i.dateModified=n,t({state:{...d,[e]:{uid:e,type:"section",label:l.label},ROOT:cloneDeep.cloneDeep(i)}})}}else{let{id:i,data:l}=e,s=i?d[i]??d.ROOT:d.ROOT;if("section"===s.type)return;if(Array.isArray(l)){let e=l.map(e=>e.uid),i=l.reduceRight((e,t)=>{let i=normalizeBuilderData.normalizeBuilderData(t);return{...e,...i}},{});s.dateModified=n,s.childrens=s.childrens??[],s.childrens.splice(r??0,0,...e),t({state:{...d,...i,[s.uid]:cloneDeep.cloneDeep(s)}})}else{let e=normalizeBuilderData.normalizeBuilderData(l);s.dateModified=n,s.childrens=s.childrens??[],s.childrens.splice(r??0,0,l.uid),t({state:{...d,...e,[s.uid]:cloneDeep.cloneDeep(s)}})}}},changeItemProp:(e,r,l)=>{if(!l||!["setting","style","advanced"].includes(l))return;let d=i().state,n=d[e];if(n?.type!=="section"&&n){let i=Date.now();switch(n.dateModified=i,l){case"setting":t({state:{...d,[e]:{...n,settings:{...n.settings,...r}}}});break;case"style":t({state:{...d,[e]:{...n,styles:{...n.styles,...r}}}});break;case"advanced":t({state:{...d,[e]:{...n,advanced:{...n.advanced,...r}}}})}}},changeItemPropByKey:({id:e,key:r,data:l,group:d})=>{if(!d||!["setting","style","advanced"].includes(d))return;let n=i().state,s=n[e];if(s?.type!=="section"&&s){let i={style:s.styles??{},advanced:s.advanced??{},setting:s.settings??{}};void 0===l?(console.warn("Data is undefined"),delete i[d][r]):i[d][r]=l,t({state:{...n,[e]:{...s,settings:{...i.setting},styles:{...i.style},advanced:{...i.advanced}}}})}},getItem:e=>i().state[e],removeItem:e=>{if("ROOT"===e)t({state:{ROOT:root}});else{let r=i().state;removeByKey(e,r);let l=Object.entries(r).find(([,t])=>"section"!==t.type&&t.childrens?.includes(e));if(l){let i=Date.now(),[d,n]=l;if("section"===n.type)return;n.childrens=n.childrens?.filter(t=>t!==e),n.dateModified=i,t({state:{...r,[d]:cloneDeep.cloneDeep(n)}})}}},moveItem:(e,r,l)=>{let d=i().state,n=d[e],s=d[r];if(n&&s&&"section"!==s.type){if("section"===n.type){let i=d.ROOT;if(!i.childrens)return;let r=i.childrens.findIndex(t=>t===e);moveByIndex(i.childrens,r,l??0),t({state:{...d,ROOT:cloneDeep.cloneDeep(i)}})}else{let i=Object.entries(d).find(([,t])=>"section"!==t.type&&t.childrens?.includes(e));if(n&&i){let a=Date.now(),[,c]=i;if("section"===c.type)return;if(c.dateModified=a,r===c.uid&&c.childrens){let i=c.childrens.findIndex(t=>t===e);c.childrens&&i!==l&&(moveByIndex(c.childrens,i,l??0),t({state:{...d,[c.uid]:cloneDeep.cloneDeep(c)}}))}else c.childrens=c.childrens?.filter(t=>t!==e),s&&(s.dateModified=a,s.childrens=s.childrens??[],s.childrens.splice(l??0,0,n.uid),t({state:{...d,[s.uid]:cloneDeep.cloneDeep(s),[c.uid]:cloneDeep.cloneDeep(c)}}))}}}},forceChangeState:e=>{t({state:e,loaded:!0})},initState:e=>{if(Array.isArray(e)){let i=e.map(e=>e.uid),r=e.reduceRight((e,t)=>{let i=normalizeBuilderData.normalizeBuilderData(t);return{...e,...i}},{});t({loaded:!0,state:{ROOT:{...root,childrens:i},...r}})}else{let i=normalizeBuilderData.normalizeBuilderData(e);t({loaded:!0,state:{ROOT:{...root,childrens:[e.uid]},...i}})}},addSection:(e,r)=>{let l=i().state,d=l.ROOT;d.childrens||(d.childrens=[]),d.childrens.splice(r??0,0,e.uid),t({state:{...l,ROOT:cloneDeep.cloneDeep(d)}})}})),BuilderPreviewProvider=({children:e,state:t,lazy:i,...r})=>{let l=i?react.Suspense:react.Fragment,d=react.useMemo(()=>createBuilderPreviewProvider(t),[t]);return jsxRuntime.jsx(l,{children:jsxRuntime.jsx(BuilderPreviewContext.Provider,{...r,value:d,children:e})})},useBuilderPreviewStore=(e,t)=>{let i=react.useContext(BuilderPreviewContext);if(!i)throw Error("useBuilderPreviewStore must be used within a BuilderPreviewProvider");return zustand.useStore(i,e,t)};exports.BuilderPreviewProvider=BuilderPreviewProvider,exports.useBuilderPreviewStore=useBuilderPreviewStore;
@@ -1,29 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var zustand = require('zustand');
5
- var react = require('react');
6
-
7
- const CartLineContext = /*#__PURE__*/ react.createContext(null);
8
- const createCartLineStore = (data)=>zustand.createStore(()=>({
9
- ...data
10
- }));
11
- const CartLineProvider = ({ children, line })=>{
12
- return /*#__PURE__*/ jsxRuntime.jsx(CartLineContext.Provider, {
13
- value: createCartLineStore({
14
- line
15
- }),
16
- children: children
17
- }, `${line.id}-${line.quantity}`);
18
- };
19
- // export const useCartLineStore = useStore;
20
- const useCartLineStore = (selector, equalityFn)=>{
21
- const store = react.useContext(CartLineContext);
22
- if (!store) {
23
- throw new Error('useCartLineStore must be used within a CartLineProvider');
24
- }
25
- return zustand.useStore(store, selector, equalityFn);
26
- };
27
-
28
- exports.CartLineProvider = CartLineProvider;
29
- exports.useCartLineStore = useCartLineStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),zustand=require("zustand"),react=require("react");const CartLineContext=react.createContext(null),createCartLineStore=e=>zustand.createStore(()=>({...e})),CartLineProvider=({children:e,line:t})=>jsxRuntime.jsx(CartLineContext.Provider,{value:createCartLineStore({line:t}),children:e},`${t.id}-${t.quantity}`),useCartLineStore=(e,t)=>{let r=react.useContext(CartLineContext);if(!r)throw Error("useCartLineStore must be used within a CartLineProvider");return zustand.useStore(r,e,t)};exports.CartLineProvider=CartLineProvider,exports.useCartLineStore=useCartLineStore;
@@ -1,38 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const CollectionContext = /*#__PURE__*/ react.createContext(null);
8
- const createCollectionProvider = (data)=>zustand.createStore((set)=>({
9
- ...data,
10
- changeCollectionStore: ({ collection })=>{
11
- set({
12
- collection: collection
13
- });
14
- }
15
- }));
16
- const CollectionProvider = ({ collection, children })=>{
17
- const store = react.useMemo(()=>{
18
- return createCollectionProvider({
19
- collection
20
- });
21
- }, [
22
- collection
23
- ]);
24
- return /*#__PURE__*/ jsxRuntime.jsx(CollectionContext.Provider, {
25
- value: store,
26
- children: children
27
- }, collection?.id);
28
- };
29
- const useCollectionStore = (selector, equalityFn)=>{
30
- const store = react.useContext(CollectionContext);
31
- if (!store) {
32
- throw new Error('useCollectionStore must be used within a useCollectionStore');
33
- }
34
- return zustand.useStore(store, selector, equalityFn);
35
- };
36
-
37
- exports.CollectionProvider = CollectionProvider;
38
- exports.useCollectionStore = useCollectionStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const CollectionContext=react.createContext(null),createCollectionProvider=e=>zustand.createStore(t=>({...e,changeCollectionStore:({collection:e})=>{t({collection:e})}})),CollectionProvider=({collection:e,children:t})=>{let o=react.useMemo(()=>createCollectionProvider({collection:e}),[e]);return jsxRuntime.jsx(CollectionContext.Provider,{value:o,children:t},e?.id)},useCollectionStore=(e,t)=>{let o=react.useContext(CollectionContext);if(!o)throw Error("useCollectionStore must be used within a useCollectionStore");return zustand.useStore(o,e,t)};exports.CollectionProvider=CollectionProvider,exports.useCollectionStore=useCollectionStore;
@@ -1,47 +1 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react = require('react');
5
- var zustand = require('zustand');
6
-
7
- const ModalContext = /*#__PURE__*/ react.createContext(null);
8
- const createModalProvider = (data)=>zustand.createStore((set)=>({
9
- activeId: data,
10
- setModalActive: (id)=>{
11
- window?.parent?.postMessage?.(JSON.stringify({
12
- type: 'active-element',
13
- uid: id
14
- }), '*');
15
- set({
16
- activeId: id
17
- });
18
- },
19
- clearModal: ()=>{
20
- window?.parent?.postMessage?.(JSON.stringify({
21
- type: 'active-element',
22
- uid: null
23
- }), '*');
24
- set({
25
- activeId: undefined
26
- });
27
- }
28
- }));
29
- const ModalProvider = ({ children, activeId, ...passProps })=>{
30
- const store = createModalProvider(activeId);
31
- return /*#__PURE__*/ jsxRuntime.jsx(ModalContext.Provider, {
32
- ...passProps,
33
- value: store,
34
- children: children
35
- });
36
- };
37
- // export const useBuilderStore = useStore;
38
- const useModalStore = (selector, equalityFn)=>{
39
- const store = react.useContext(ModalContext);
40
- if (!store) {
41
- throw new Error('useModalStore must be used within a ModalProvider');
42
- }
43
- return zustand.useStore(store, selector, equalityFn);
44
- };
45
-
46
- exports.ModalProvider = ModalProvider;
47
- exports.useModalStore = useModalStore;
1
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");const ModalContext=react.createContext(null),createModalProvider=e=>zustand.createStore(t=>({activeId:e,setModalActive:e=>{window?.parent?.postMessage?.(JSON.stringify({type:"active-element",uid:e}),"*"),t({activeId:e})},clearModal:()=>{window?.parent?.postMessage?.(JSON.stringify({type:"active-element",uid:null}),"*"),t({activeId:void 0})}})),ModalProvider=({children:e,activeId:t,...r})=>{let o=createModalProvider(t);return jsxRuntime.jsx(ModalContext.Provider,{...r,value:o,children:e})},useModalStore=(e,t)=>{let r=react.useContext(ModalContext);if(!r)throw Error("useModalStore must be used within a ModalProvider");return zustand.useStore(r,e,t)};exports.ModalProvider=ModalProvider,exports.useModalStore=useModalStore;