@gem-sdk/pages 1.36.20 → 2.0.0-dev.832
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.
- package/dist/cjs/components/ErrorBoundary.js +1 -40
- package/dist/cjs/components/ErrorFallback.js +1 -26
- package/dist/cjs/components/FacebookPixel.js +3 -36
- package/dist/cjs/components/Footer.js +1 -125
- package/dist/cjs/components/FooterForPostPurchase.js +1 -0
- package/dist/cjs/components/GoogleAnalytic.js +5 -67
- package/dist/cjs/components/Header.js +1 -96
- package/dist/cjs/components/TikTokPixel.js +3 -19
- package/dist/cjs/components/builder/PopupManager.js +1 -62
- package/dist/cjs/components/builder/Toolbar.js +1 -883
- package/dist/cjs/components/builder/Toolbox.js +1 -384
- package/dist/cjs/components/builder/toolbar/Onboarding.js +1 -110
- package/dist/cjs/components/image-to-layout/AddSectionImageToLayout.js +1 -263
- package/dist/cjs/components/image-to-layout/DropElement.js +1 -164
- package/dist/cjs/components/image-to-layout/ImageToLayout.js +1 -41
- package/dist/cjs/index.js +1 -75
- package/dist/cjs/layouts/main.js +1 -30
- package/dist/cjs/libs/api/get-builder-props.js +1 -41
- package/dist/cjs/libs/api/get-collection-props.js +1 -68
- package/dist/cjs/libs/api/get-home-page-props-v2.js +1 -145
- package/dist/cjs/libs/api/get-home-page-props.js +1 -151
- package/dist/cjs/libs/api/get-post-purchase-props-preview.js +1 -0
- package/dist/cjs/libs/api/get-preview-props.js +1 -18
- package/dist/cjs/libs/api/get-product-props.js +1 -73
- package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -150
- package/dist/cjs/libs/api/get-static-page-props-v2.js +1 -152
- package/dist/cjs/libs/api/get-static-page-props.js +1 -148
- package/dist/cjs/libs/custom-fonts.js +6 -60
- package/dist/cjs/libs/fetcher.js +1 -67
- package/dist/cjs/libs/get-layout.js +1 -13
- package/dist/cjs/libs/get-storefront-api.js +1 -12
- package/dist/cjs/libs/getStaticPaths.js +1 -10
- package/dist/cjs/libs/google-fonts.js +1 -81
- package/dist/cjs/libs/helpers/common.js +1 -27
- package/dist/cjs/libs/helpers/gen-css.js +1 -117
- package/dist/cjs/libs/helpers/gen-fonts.js +1 -68
- package/dist/cjs/libs/helpers/generate-manifres.js +1 -5
- package/dist/cjs/libs/helpers/get-fallback.js +1 -35
- package/dist/cjs/libs/helpers/normalize.js +1 -90
- package/dist/cjs/libs/helpers/parse-json.js +1 -16
- package/dist/cjs/libs/helpers/user-agent.js +1 -7
- package/dist/cjs/libs/hooks/use-tracking-view.js +1 -45
- package/dist/cjs/libs/hooks/usePagePreview.js +1 -0
- package/dist/cjs/libs/parse-html.js +1 -42
- package/dist/cjs/libs/shopify-cdn-with-google-fonts.js +1 -1845
- package/dist/cjs/pages/404.js +1 -43
- package/dist/cjs/pages/500.js +1 -74
- package/dist/cjs/pages/CollectionGlobalProvider.js +1 -59
- package/dist/cjs/pages/builder.js +1 -103
- package/dist/cjs/pages/collection-detail.js +1 -64
- package/dist/cjs/pages/preview.js +1 -26
- package/dist/cjs/pages/product-detail.js +1 -69
- package/dist/cjs/pages/static-v2.js +1 -91
- package/dist/cjs/pages/static.js +1 -75
- package/dist/esm/components/ErrorBoundary.js +1 -38
- package/dist/esm/components/ErrorFallback.js +1 -24
- package/dist/esm/components/FacebookPixel.js +3 -34
- package/dist/esm/components/Footer.js +1 -121
- package/dist/esm/components/FooterForPostPurchase.js +1 -0
- package/dist/esm/components/GoogleAnalytic.js +5 -65
- package/dist/esm/components/Header.js +1 -92
- package/dist/esm/components/TikTokPixel.js +3 -17
- package/dist/esm/components/builder/PopupManager.js +1 -58
- package/dist/esm/components/builder/Toolbar.js +1 -879
- package/dist/esm/components/builder/Toolbox.js +1 -380
- package/dist/esm/components/builder/toolbar/Onboarding.js +1 -106
- package/dist/esm/components/image-to-layout/AddSectionImageToLayout.js +1 -259
- package/dist/esm/components/image-to-layout/DropElement.js +1 -162
- package/dist/esm/components/image-to-layout/ImageToLayout.js +1 -37
- package/dist/esm/index.js +1 -33
- package/dist/esm/layouts/main.js +1 -26
- package/dist/esm/libs/api/get-builder-props.js +1 -39
- package/dist/esm/libs/api/get-collection-props.js +1 -66
- package/dist/esm/libs/api/get-home-page-props-v2.js +1 -143
- package/dist/esm/libs/api/get-home-page-props.js +1 -149
- package/dist/esm/libs/api/get-post-purchase-props-preview.js +1 -0
- package/dist/esm/libs/api/get-preview-props.js +1 -16
- package/dist/esm/libs/api/get-product-props.js +1 -71
- package/dist/esm/libs/api/get-static-page-props-preview.js +1 -148
- package/dist/esm/libs/api/get-static-page-props-v2.js +1 -150
- package/dist/esm/libs/api/get-static-page-props.js +1 -146
- package/dist/esm/libs/custom-fonts.js +6 -55
- package/dist/esm/libs/fetcher.js +1 -64
- package/dist/esm/libs/get-layout.js +1 -11
- package/dist/esm/libs/get-storefront-api.js +1 -10
- package/dist/esm/libs/getStaticPaths.js +1 -8
- package/dist/esm/libs/google-fonts.js +1 -75
- package/dist/esm/libs/helpers/common.js +1 -24
- package/dist/esm/libs/helpers/gen-css.js +1 -115
- package/dist/esm/libs/helpers/gen-fonts.js +1 -65
- package/dist/esm/libs/helpers/generate-manifres.js +1 -3
- package/dist/esm/libs/helpers/get-fallback.js +1 -33
- package/dist/esm/libs/helpers/normalize.js +1 -85
- package/dist/esm/libs/helpers/parse-json.js +1 -13
- package/dist/esm/libs/helpers/user-agent.js +1 -5
- package/dist/esm/libs/hooks/use-tracking-view.js +1 -43
- package/dist/esm/libs/hooks/usePagePreview.js +1 -0
- package/dist/esm/libs/parse-html.js +1 -40
- package/dist/esm/libs/shopify-cdn-with-google-fonts.js +1 -1843
- package/dist/esm/pages/404.js +1 -41
- package/dist/esm/pages/500.js +1 -72
- package/dist/esm/pages/CollectionGlobalProvider.js +1 -55
- package/dist/esm/pages/builder.js +1 -101
- package/dist/esm/pages/collection-detail.js +1 -60
- package/dist/esm/pages/preview.js +1 -24
- package/dist/esm/pages/product-detail.js +1 -65
- package/dist/esm/pages/static-v2.js +1 -89
- package/dist/esm/pages/static.js +1 -71
- package/dist/types/index.d.ts +28 -6
- package/package.json +5 -5
|
@@ -1,384 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var core = require('@gem-sdk/core');
|
|
7
|
-
var react = require('react');
|
|
8
|
-
var getStorefrontApi = require('../../libs/get-storefront-api.js');
|
|
9
|
-
var googleFonts = require('../../libs/google-fonts.js');
|
|
10
|
-
var genCss = require('../../libs/helpers/gen-css.js');
|
|
11
|
-
var genFonts = require('../../libs/helpers/gen-fonts.js');
|
|
12
|
-
var shopifyCdnWithGoogleFonts = require('../../libs/shopify-cdn-with-google-fonts.js');
|
|
13
|
-
|
|
14
|
-
const globalStyleId = 'global-style';
|
|
15
|
-
const Toolbox = ()=>{
|
|
16
|
-
const matchMutate = core.useMatchMutate();
|
|
17
|
-
const provider = core.useShopStore((s)=>s.provider);
|
|
18
|
-
const changeStorefrontInfo = core.useShopStore((s)=>s.changeStorefrontInfo);
|
|
19
|
-
const setDynamicProduct = core.usePageStore((s)=>s.setDynamicProduct);
|
|
20
|
-
const setDynamicCollection = core.usePageStore((s)=>s.setDynamicCollection);
|
|
21
|
-
const initState = core.useBuilderPreviewStore((s)=>s.initState);
|
|
22
|
-
const state = core.useBuilderPreviewStore((s)=>s.state);
|
|
23
|
-
const initNormalizeState = core.useBuilderPreviewStore((s)=>s.forceChangeState);
|
|
24
|
-
const forceChangeItemProp = core.useBuilderPreviewStore((s)=>s.forceChangeItemProp);
|
|
25
|
-
const changeItemPropByKey = core.useBuilderPreviewStore((s)=>s.changeItemPropByKey);
|
|
26
|
-
const addItem = core.useBuilderPreviewStore((s)=>s.addItem);
|
|
27
|
-
const moveItem = core.useBuilderPreviewStore((s)=>s.moveItem);
|
|
28
|
-
const removeItem = core.useBuilderPreviewStore((s)=>s.removeItem);
|
|
29
|
-
const addSection = core.useSectionStore((s)=>s.addSection);
|
|
30
|
-
const changeSwatches = core.useShopStore((s)=>s.changeSwatches);
|
|
31
|
-
const updateItemName = core.useBuilderPreviewStore((s)=>s.updateItemName);
|
|
32
|
-
const updateItemAttribute = core.useBuilderPreviewStore((s)=>s.updateItemAttribute);
|
|
33
|
-
const changeLayoutSettings = core.useShopStore((s)=>s.changeLayoutSettings);
|
|
34
|
-
const changeCreateThemeSectionCount = core.useShopStore((s)=>s.changeCreateThemeSectionCount);
|
|
35
|
-
const changeShopPlan = core.useShopStore((s)=>s.changeShopPlan);
|
|
36
|
-
const clearModal = core.useModalStore((s)=>s.clearModal);
|
|
37
|
-
const fonts = react.useMemo(()=>genFonts.getFontsFromDataBuilder(state), [
|
|
38
|
-
state
|
|
39
|
-
]);
|
|
40
|
-
const setFontsToHead = (className, fonts)=>{
|
|
41
|
-
// clear fonts
|
|
42
|
-
if (!fonts?.length) {
|
|
43
|
-
const googleFonts = document.querySelectorAll(`.${className}`);
|
|
44
|
-
googleFonts.forEach((googleFont)=>{
|
|
45
|
-
googleFont.remove();
|
|
46
|
-
});
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
// clear fonts not use
|
|
50
|
-
const googleFonts$1 = document.querySelectorAll(`.${className}`);
|
|
51
|
-
googleFonts$1.forEach((googleFont)=>{
|
|
52
|
-
const fontName = googleFont.getAttribute('data-font');
|
|
53
|
-
const variantName = googleFont.getAttribute('data-font-variant');
|
|
54
|
-
if (!fontName || !variantName) {
|
|
55
|
-
googleFont.remove();
|
|
56
|
-
} else {
|
|
57
|
-
const isUse = fonts.find((font)=>font.family == fontName && font.variants.includes(variantName));
|
|
58
|
-
if (!isUse) {
|
|
59
|
-
googleFont.remove();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
// append new fonts
|
|
64
|
-
for (const font of fonts){
|
|
65
|
-
if (font.type !== 'custom') {
|
|
66
|
-
if (font.variants?.length) {
|
|
67
|
-
for (const variant of font.variants){
|
|
68
|
-
const cloneFont = JSON.parse(JSON.stringify(font));
|
|
69
|
-
cloneFont.variants = [
|
|
70
|
-
variant
|
|
71
|
-
]; // set single variant. Fix error reload font when change href other variant
|
|
72
|
-
const fontName = cloneFont.family;
|
|
73
|
-
const variantName = variant;
|
|
74
|
-
const url = googleFonts.createFontUrl([
|
|
75
|
-
cloneFont
|
|
76
|
-
]);
|
|
77
|
-
if (url) {
|
|
78
|
-
const googleFont = document.querySelector(`.${className}[data-font="${fontName}"][data-font-variant="${variantName}"]`);
|
|
79
|
-
if (googleFont) {
|
|
80
|
-
continue;
|
|
81
|
-
} else {
|
|
82
|
-
const link = document.createElement('link');
|
|
83
|
-
link.className = className;
|
|
84
|
-
link.dataset.font = fontName;
|
|
85
|
-
link.dataset.fontVariant = variantName;
|
|
86
|
-
link.href = url;
|
|
87
|
-
link.rel = 'stylesheet';
|
|
88
|
-
document.head.appendChild(link);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
// Revalidate all query with key match query/
|
|
97
|
-
const onRevalidateQuery = react.useCallback(()=>{
|
|
98
|
-
matchMutate(/query\//, {
|
|
99
|
-
revalidate: true
|
|
100
|
-
});
|
|
101
|
-
}, [
|
|
102
|
-
matchMutate
|
|
103
|
-
]);
|
|
104
|
-
// Update shop info
|
|
105
|
-
const onChangeShopInfo = react.useCallback((e)=>{
|
|
106
|
-
const detail = e.detail;
|
|
107
|
-
changeStorefrontInfo({
|
|
108
|
-
url: detail.shopHandle ? getStorefrontApi.getStorefrontApi(detail.shopHandle, provider) : undefined,
|
|
109
|
-
token: detail.shopToken
|
|
110
|
-
});
|
|
111
|
-
}, [
|
|
112
|
-
changeStorefrontInfo,
|
|
113
|
-
provider
|
|
114
|
-
]);
|
|
115
|
-
const onChangeGlobalStyle = react.useCallback((e)=>{
|
|
116
|
-
const detail = e.detail;
|
|
117
|
-
try {
|
|
118
|
-
if (detail.data) {
|
|
119
|
-
const themeStyle = genCss.genCSS(detail.data, detail.mobileOnly);
|
|
120
|
-
const font = Object.entries(detail.data?.font).map(([, value])=>{
|
|
121
|
-
return value;
|
|
122
|
-
}).map((item)=>{
|
|
123
|
-
if (item.type == 'custom') {
|
|
124
|
-
const isGoogleFont = shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find((ggFont)=>ggFont.family == item.family);
|
|
125
|
-
if (isGoogleFont) {
|
|
126
|
-
return isGoogleFont;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return item;
|
|
130
|
-
});
|
|
131
|
-
const globalStyle = document.getElementById(globalStyleId);
|
|
132
|
-
setFontsToHead('google-font-builder', font);
|
|
133
|
-
if (globalStyle) {
|
|
134
|
-
globalStyle.innerHTML = themeStyle;
|
|
135
|
-
} else {
|
|
136
|
-
const style = document.createElement('style');
|
|
137
|
-
style.id = globalStyleId;
|
|
138
|
-
style.innerHTML = themeStyle;
|
|
139
|
-
document.head.appendChild(style);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
} catch {
|
|
143
|
-
//
|
|
144
|
-
}
|
|
145
|
-
}, []);
|
|
146
|
-
// Init builder data
|
|
147
|
-
const onInitBuilder = react.useCallback((e)=>{
|
|
148
|
-
clearModal();
|
|
149
|
-
try {
|
|
150
|
-
const detail = e.detail;
|
|
151
|
-
if (detail.data) {
|
|
152
|
-
if (detail.type === 'flat') {
|
|
153
|
-
initNormalizeState(detail.data);
|
|
154
|
-
} else {
|
|
155
|
-
initState(detail.data);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
} catch {
|
|
159
|
-
//
|
|
160
|
-
}
|
|
161
|
-
}, [
|
|
162
|
-
initNormalizeState,
|
|
163
|
-
initState,
|
|
164
|
-
clearModal
|
|
165
|
-
]);
|
|
166
|
-
// Add new entity
|
|
167
|
-
const onAddEntity = react.useCallback((e)=>{
|
|
168
|
-
try {
|
|
169
|
-
const detail = e.detail;
|
|
170
|
-
if (detail.entity) {
|
|
171
|
-
addItem({
|
|
172
|
-
data: detail.entity,
|
|
173
|
-
id: detail.id,
|
|
174
|
-
position: detail.position,
|
|
175
|
-
type: detail.type ?? 'component'
|
|
176
|
-
});
|
|
177
|
-
if (detail?.type === 'section' && !Array.isArray(detail.entity)) {
|
|
178
|
-
addSection(detail.entity.uid, detail.entity);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
} catch {
|
|
182
|
-
//
|
|
183
|
-
}
|
|
184
|
-
}, [
|
|
185
|
-
addItem,
|
|
186
|
-
addSection
|
|
187
|
-
]);
|
|
188
|
-
// Update props of entity
|
|
189
|
-
const onUpdateEntityProp = react.useCallback((e)=>{
|
|
190
|
-
try {
|
|
191
|
-
const detail = e.detail;
|
|
192
|
-
if (detail.uid && detail.propName) {
|
|
193
|
-
changeItemPropByKey({
|
|
194
|
-
id: detail.uid,
|
|
195
|
-
key: detail.propName,
|
|
196
|
-
data: detail.propValue,
|
|
197
|
-
group: detail.group
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
} catch {
|
|
201
|
-
//
|
|
202
|
-
}
|
|
203
|
-
}, [
|
|
204
|
-
changeItemPropByKey
|
|
205
|
-
]);
|
|
206
|
-
// Update props of entity
|
|
207
|
-
const onForceUpdateEntityProps = react.useCallback((e)=>{
|
|
208
|
-
try {
|
|
209
|
-
const detail = e.detail;
|
|
210
|
-
if (detail.uid) {
|
|
211
|
-
forceChangeItemProp(detail.uid, detail.data, detail.group);
|
|
212
|
-
}
|
|
213
|
-
} catch {
|
|
214
|
-
//
|
|
215
|
-
}
|
|
216
|
-
}, [
|
|
217
|
-
forceChangeItemProp
|
|
218
|
-
]);
|
|
219
|
-
// Move entity
|
|
220
|
-
const onMoveEntity = react.useCallback((e)=>{
|
|
221
|
-
try {
|
|
222
|
-
const detail = e.detail;
|
|
223
|
-
if (detail.to && detail.uid) {
|
|
224
|
-
moveItem(detail.uid, detail.to, Number(detail.position) ?? 0);
|
|
225
|
-
}
|
|
226
|
-
} catch {
|
|
227
|
-
//
|
|
228
|
-
}
|
|
229
|
-
}, [
|
|
230
|
-
moveItem
|
|
231
|
-
]);
|
|
232
|
-
// Remove entity
|
|
233
|
-
const onRemoveEntity = react.useCallback((e)=>{
|
|
234
|
-
try {
|
|
235
|
-
const detail = e.detail;
|
|
236
|
-
if (detail.uid) {
|
|
237
|
-
removeItem(detail.uid);
|
|
238
|
-
}
|
|
239
|
-
} catch {
|
|
240
|
-
//
|
|
241
|
-
}
|
|
242
|
-
}, [
|
|
243
|
-
removeItem
|
|
244
|
-
]);
|
|
245
|
-
// Change Swatches Data
|
|
246
|
-
const onChangeSwatchesData = react.useCallback((e)=>{
|
|
247
|
-
const detail = e.detail;
|
|
248
|
-
try {
|
|
249
|
-
if (detail.data) {
|
|
250
|
-
changeSwatches(detail.data);
|
|
251
|
-
}
|
|
252
|
-
} catch {
|
|
253
|
-
//
|
|
254
|
-
}
|
|
255
|
-
}, [
|
|
256
|
-
changeSwatches
|
|
257
|
-
]);
|
|
258
|
-
const onChangeLayoutSettingData = react.useCallback((e)=>{
|
|
259
|
-
const detail = e.detail;
|
|
260
|
-
if (!detail) return;
|
|
261
|
-
changeLayoutSettings(detail);
|
|
262
|
-
}, [
|
|
263
|
-
changeLayoutSettings
|
|
264
|
-
]);
|
|
265
|
-
const onUpdateCreateThemeSectionCount = react.useCallback((e)=>{
|
|
266
|
-
const count = e.detail;
|
|
267
|
-
if (!count) return;
|
|
268
|
-
changeCreateThemeSectionCount(count);
|
|
269
|
-
}, [
|
|
270
|
-
changeCreateThemeSectionCount
|
|
271
|
-
]);
|
|
272
|
-
const onUpdateShopPlan = react.useCallback((e)=>{
|
|
273
|
-
const shopPlan = e.detail;
|
|
274
|
-
if (!shopPlan) return;
|
|
275
|
-
changeShopPlan(shopPlan);
|
|
276
|
-
}, [
|
|
277
|
-
changeShopPlan
|
|
278
|
-
]);
|
|
279
|
-
const onUpdateDynamicProduct = react.useCallback((e)=>{
|
|
280
|
-
const product = e.detail;
|
|
281
|
-
if (!product) return;
|
|
282
|
-
setDynamicProduct(product);
|
|
283
|
-
}, [
|
|
284
|
-
setDynamicProduct
|
|
285
|
-
]);
|
|
286
|
-
const onUpdateDynamicCollection = react.useCallback((e)=>{
|
|
287
|
-
const collection = e.detail;
|
|
288
|
-
if (!collection) return;
|
|
289
|
-
setDynamicCollection(collection);
|
|
290
|
-
}, [
|
|
291
|
-
setDynamicCollection
|
|
292
|
-
]);
|
|
293
|
-
react.useEffect(()=>{
|
|
294
|
-
if (fonts) {
|
|
295
|
-
setFontsToHead('google-font-element', fonts);
|
|
296
|
-
}
|
|
297
|
-
}, [
|
|
298
|
-
fonts
|
|
299
|
-
]);
|
|
300
|
-
const onUpdateItemName = react.useCallback((e)=>{
|
|
301
|
-
const detail = e.detail;
|
|
302
|
-
if (detail.uid) {
|
|
303
|
-
updateItemName(detail.uid, detail.name || '');
|
|
304
|
-
}
|
|
305
|
-
}, [
|
|
306
|
-
updateItemName
|
|
307
|
-
]);
|
|
308
|
-
const onUpdateItemAttribute = react.useCallback((e)=>{
|
|
309
|
-
const detail = e.detail;
|
|
310
|
-
if (detail.uid) {
|
|
311
|
-
updateItemAttribute(detail.uid, detail.value || '', detail.attr || '');
|
|
312
|
-
}
|
|
313
|
-
}, [
|
|
314
|
-
updateItemAttribute
|
|
315
|
-
]);
|
|
316
|
-
react.useEffect(()=>{
|
|
317
|
-
if (fonts) {
|
|
318
|
-
setFontsToHead('google-font-element', fonts);
|
|
319
|
-
}
|
|
320
|
-
}, [
|
|
321
|
-
fonts
|
|
322
|
-
]);
|
|
323
|
-
react.useEffect(()=>{
|
|
324
|
-
window.addEventListener('update-shop-info', onChangeShopInfo);
|
|
325
|
-
window.addEventListener('revalidate-query', onRevalidateQuery);
|
|
326
|
-
window.addEventListener('init-builder', onInitBuilder);
|
|
327
|
-
window.addEventListener('add-entity', onAddEntity);
|
|
328
|
-
window.addEventListener('remove-entity', onRemoveEntity);
|
|
329
|
-
window.addEventListener('move-entity', onMoveEntity);
|
|
330
|
-
window.addEventListener('force-update-entity-props', onForceUpdateEntityProps);
|
|
331
|
-
window.addEventListener('update-entity-prop', onUpdateEntityProp);
|
|
332
|
-
window.addEventListener('set-global-style', onChangeGlobalStyle);
|
|
333
|
-
window.addEventListener('update-global-swatches-data', onChangeSwatchesData);
|
|
334
|
-
window.addEventListener('on-off-header-footer', onChangeLayoutSettingData);
|
|
335
|
-
window.addEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
|
|
336
|
-
window.addEventListener('update-shop-plan', onUpdateShopPlan);
|
|
337
|
-
window.addEventListener('set-dynamic-product', onUpdateDynamicProduct);
|
|
338
|
-
window.addEventListener('set-dynamic-collection', onUpdateDynamicCollection);
|
|
339
|
-
window.addEventListener('update-item-name', onUpdateItemName);
|
|
340
|
-
window.addEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
341
|
-
return ()=>{
|
|
342
|
-
window.removeEventListener('update-shop-info', onChangeShopInfo);
|
|
343
|
-
window.removeEventListener('revalidate-query', onRevalidateQuery);
|
|
344
|
-
window.removeEventListener('init-builder', onInitBuilder);
|
|
345
|
-
window.removeEventListener('add-entity', onAddEntity);
|
|
346
|
-
window.removeEventListener('remove-entity', onRemoveEntity);
|
|
347
|
-
window.removeEventListener('move-entity', onMoveEntity);
|
|
348
|
-
window.removeEventListener('update-entity-prop', onUpdateEntityProp);
|
|
349
|
-
window.removeEventListener('set-global-style', onChangeGlobalStyle);
|
|
350
|
-
window.removeEventListener('update-global-swatches-data', onChangeSwatchesData);
|
|
351
|
-
window.removeEventListener('on-off-header-footer', onChangeLayoutSettingData);
|
|
352
|
-
window.removeEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
|
|
353
|
-
window.removeEventListener('update-shop-plan', onUpdateShopPlan);
|
|
354
|
-
window.removeEventListener('set-dynamic-product', onUpdateDynamicProduct);
|
|
355
|
-
window.removeEventListener('set-dynamic-collection', onUpdateDynamicCollection);
|
|
356
|
-
window.removeEventListener('update-item-name', onUpdateItemName);
|
|
357
|
-
window.removeEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
358
|
-
};
|
|
359
|
-
}, [
|
|
360
|
-
onAddEntity,
|
|
361
|
-
onUpdateShopPlan,
|
|
362
|
-
onForceUpdateEntityProps,
|
|
363
|
-
onUpdateEntityProp,
|
|
364
|
-
onInitBuilder,
|
|
365
|
-
onMoveEntity,
|
|
366
|
-
onRemoveEntity,
|
|
367
|
-
onChangeGlobalStyle,
|
|
368
|
-
onChangeSwatchesData,
|
|
369
|
-
onRevalidateQuery,
|
|
370
|
-
onChangeShopInfo,
|
|
371
|
-
onChangeLayoutSettingData,
|
|
372
|
-
onUpdateCreateThemeSectionCount,
|
|
373
|
-
onUpdateDynamicProduct,
|
|
374
|
-
onUpdateDynamicCollection,
|
|
375
|
-
onUpdateItemName,
|
|
376
|
-
onUpdateItemAttribute
|
|
377
|
-
]);
|
|
378
|
-
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
379
|
-
className: "toolbox"
|
|
380
|
-
});
|
|
381
|
-
};
|
|
382
|
-
var Toolbox$1 = /*#__PURE__*/ react.memo(Toolbox);
|
|
383
|
-
|
|
384
|
-
exports.default = Toolbox$1;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),react=require("react"),getStorefrontApi=require("../../libs/get-storefront-api.js"),googleFonts=require("../../libs/google-fonts.js"),genCss=require("../../libs/helpers/gen-css.js"),genFonts=require("../../libs/helpers/gen-fonts.js"),shopifyCdnWithGoogleFonts=require("../../libs/shopify-cdn-with-google-fonts.js");const globalStyleId="global-style",Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),o=core.useShopStore(e=>e.changeStorefrontInfo),r=core.usePageStore(e=>e.setDynamicProduct),a=core.usePageStore(e=>e.setPostPurchaseProductOffers),n=core.usePageStore(e=>e.setSalePageProductId),i=core.usePageStore(e=>e.setDynamicCollection),d=core.useBuilderPreviewStore(e=>e.initState),l=core.useBuilderPreviewStore(e=>e.state),s=core.useBuilderPreviewStore(e=>e.forceChangeState),c=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),u=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),p=core.useBuilderPreviewStore(e=>e.addItem),v=core.useBuilderPreviewStore(e=>e.moveItem),w=core.useBuilderPreviewStore(e=>e.removeItem),m=core.useSectionStore(e=>e.addSection),f=core.useShopStore(e=>e.changeSwatches),y=core.useBuilderPreviewStore(e=>e.updateItemName),g=core.useBuilderPreviewStore(e=>e.updateItemAttribute),h=core.useShopStore(e=>e.changeLayoutSettings),S=core.useShopStore(e=>e.changeCreateThemeSectionCount),b=core.useShopStore(e=>e.changeShopPlan),E=core.useModalStore(e=>e.clearModal),L=react.useMemo(()=>genFonts.getFontsFromDataBuilder(l),[l]),C=(e,t)=>{if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>{e.remove()});return}let o=document.querySelectorAll(`.${e}`);for(let r of(o.forEach(e=>{let o=e.getAttribute("data-font"),r=e.getAttribute("data-font-variant");if(o&&r){let a=t.find(e=>e.family==o&&e.variants.includes(r));a||e.remove()}else e.remove()}),t))if("custom"!==r.type&&r.variants?.length)for(let t of r.variants){let o=JSON.parse(JSON.stringify(r));o.variants=[t];let a=o.family,n=googleFonts.createFontUrl([o]);if(n){let o=document.querySelector(`.${e}[data-font="${a}"][data-font-variant="${t}"]`);if(o)continue;{let o=document.createElement("link");o.className=e,o.dataset.font=a,o.dataset.fontVariant=t,o.href=n,o.rel="stylesheet",document.head.appendChild(o)}}}},k=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),P=react.useCallback(e=>{let r=e.detail;o({url:r.shopHandle?getStorefrontApi.getStorefrontApi(r.shopHandle,t):void 0,token:r.shopToken})},[o,t]),q=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),o=Object.entries(t.data?.font).map(([,e])=>e).map(e=>{if("custom"==e.type){let t=shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find(t=>t.family==e.family);if(t)return t}return e}),r=document.getElementById(globalStyleId);if(C("google-font-builder",o),r)r.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[]),B=react.useCallback(e=>{E();try{let t=e.detail;t.data&&("flat"===t.type?s(t.data):d(t.data))}catch{}},[s,d,E]),I=react.useCallback(e=>{try{let t=e.detail;t.entity&&(p({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||m(t.entity.uid,t.entity))}catch{}},[p,m]),j=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&u({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[u]),x=react.useCallback(e=>{try{let t=e.detail;t.uid&&c(t.uid,t.data,t.group)}catch{}},[c]),A=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&v(t.uid,t.to,Number(t.position)??0)}catch{}},[v]),F=react.useCallback(e=>{try{let t=e.detail;t.uid&&w(t.uid)}catch{}},[w]),M=react.useCallback(e=>{let t=e.detail;try{t.data&&f(t.data)}catch{}},[f]),N=react.useCallback(e=>{let t=e.detail;t&&h(t)},[h]),T=react.useCallback(e=>{let t=e.detail;t&&S(t)},[S]),$=react.useCallback(e=>{let t=e.detail;t&&b(t)},[b]),O=react.useCallback(e=>{let t=e.detail;t&&r(t)},[r]),H=react.useCallback(e=>{let t=e.detail;t&&i(t)},[i]);react.useEffect(()=>{L&&C("google-font-element",L)},[L]);let D=react.useCallback(e=>{let t=e.detail;t.uid&&y(t.uid,t.name||"")},[y]),G=react.useCallback(e=>{let t=e.detail;t.uid&&g(t.uid,t.value||"",t.attr||"")},[g]),W=react.useCallback(e=>{let t=e.detail;t?.length&&a(t)},[a]),J=react.useCallback(e=>{let t=e.detail;t&&n(t)},[n]);return react.useEffect(()=>{L&&C("google-font-element",L)},[L]),react.useEffect(()=>(window.addEventListener("update-shop-info",P),window.addEventListener("revalidate-query",k),window.addEventListener("init-builder",B),window.addEventListener("add-entity",I),window.addEventListener("remove-entity",F),window.addEventListener("move-entity",A),window.addEventListener("force-update-entity-props",x),window.addEventListener("update-entity-prop",j),window.addEventListener("set-global-style",q),window.addEventListener("update-global-swatches-data",M),window.addEventListener("on-off-header-footer",N),window.addEventListener("update-create-theme-section-count",T),window.addEventListener("update-shop-plan",$),window.addEventListener("set-dynamic-product",O),window.addEventListener("set-dynamic-collection",H),window.addEventListener("update-item-name",D),window.addEventListener("update-item-attribute",G),window.addEventListener("set-product-offer",W),window.addEventListener("update-sale-page-product-id",J),()=>{window.removeEventListener("update-shop-info",P),window.removeEventListener("revalidate-query",k),window.removeEventListener("init-builder",B),window.removeEventListener("add-entity",I),window.removeEventListener("remove-entity",F),window.removeEventListener("move-entity",A),window.removeEventListener("update-entity-prop",j),window.removeEventListener("set-global-style",q),window.removeEventListener("update-global-swatches-data",M),window.removeEventListener("on-off-header-footer",N),window.removeEventListener("update-create-theme-section-count",T),window.removeEventListener("update-shop-plan",$),window.removeEventListener("set-dynamic-product",O),window.removeEventListener("set-dynamic-collection",H),window.removeEventListener("update-item-name",D),window.removeEventListener("update-item-attribute",G),window.removeEventListener("set-product-offer",W),window.removeEventListener("update-sale-page-product-id",J)}),[I,$,x,j,B,A,F,q,M,k,P,N,T,O,H,D,G,W,J]),jsxRuntime.jsx("div",{className:"toolbox"})};var Toolbox$1=react.memo(Toolbox);exports.default=Toolbox$1;
|
|
@@ -1,110 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var react = require('react');
|
|
7
|
-
|
|
8
|
-
const Onboarding = ({ enable, position, onCloseOnboarding })=>{
|
|
9
|
-
const closeOnboarding = ()=>{
|
|
10
|
-
onCloseOnboarding();
|
|
11
|
-
};
|
|
12
|
-
const videoSrc = 'https://ucarecdn.com/de5fd2eb-4525-45a7-ad13-53960dac225e/';
|
|
13
|
-
const Video = ()=>{
|
|
14
|
-
return /*#__PURE__*/ jsxRuntime.jsxs("video", {
|
|
15
|
-
width: "100%",
|
|
16
|
-
className: "gp-w-full",
|
|
17
|
-
loop: true,
|
|
18
|
-
muted: true,
|
|
19
|
-
autoPlay: true,
|
|
20
|
-
playsInline: true,
|
|
21
|
-
children: [
|
|
22
|
-
/*#__PURE__*/ jsxRuntime.jsx("source", {
|
|
23
|
-
src: videoSrc,
|
|
24
|
-
type: "video/mp4"
|
|
25
|
-
}),
|
|
26
|
-
"Sorry, your browser doesn‘t support embedded videos."
|
|
27
|
-
]
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
const MemoVideo = /*#__PURE__*/ react.memo(Video);
|
|
31
|
-
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
32
|
-
"data-toolbar-onboarding": true,
|
|
33
|
-
"data-toolbar-onboarding-position": position,
|
|
34
|
-
children: enable && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
35
|
-
children: [
|
|
36
|
-
/*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
37
|
-
"data-icon": true,
|
|
38
|
-
"data-position": position,
|
|
39
|
-
children: position === 'bottom' ? /*#__PURE__*/ jsxRuntime.jsx("svg", {
|
|
40
|
-
width: "8",
|
|
41
|
-
height: "4",
|
|
42
|
-
viewBox: "0 0 8 4",
|
|
43
|
-
fill: "none",
|
|
44
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
45
|
-
children: /*#__PURE__*/ jsxRuntime.jsx("path", {
|
|
46
|
-
d: "M-1.74846e-07 4L4 -1.74846e-07L8 4L-1.74846e-07 4Z",
|
|
47
|
-
fill: "white"
|
|
48
|
-
})
|
|
49
|
-
}) : /*#__PURE__*/ jsxRuntime.jsx("svg", {
|
|
50
|
-
width: "8",
|
|
51
|
-
height: "4",
|
|
52
|
-
viewBox: "0 0 8 4",
|
|
53
|
-
fill: "none",
|
|
54
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
55
|
-
children: /*#__PURE__*/ jsxRuntime.jsx("path", {
|
|
56
|
-
d: "M8 3.33818e-07L4 4L4.76995e-08 7.15256e-07L8 3.33818e-07Z",
|
|
57
|
-
fill: "white"
|
|
58
|
-
})
|
|
59
|
-
})
|
|
60
|
-
}),
|
|
61
|
-
/*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
62
|
-
"data-onboarding-wrapper": true,
|
|
63
|
-
children: [
|
|
64
|
-
/*#__PURE__*/ jsxRuntime.jsx("button", {
|
|
65
|
-
"data-close": true,
|
|
66
|
-
type: "button",
|
|
67
|
-
onClick: closeOnboarding,
|
|
68
|
-
children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
|
|
69
|
-
width: "32",
|
|
70
|
-
height: "32",
|
|
71
|
-
viewBox: "0 0 32 32",
|
|
72
|
-
fill: "none",
|
|
73
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
74
|
-
children: [
|
|
75
|
-
/*#__PURE__*/ jsxRuntime.jsx("path", {
|
|
76
|
-
fillRule: "evenodd",
|
|
77
|
-
clipRule: "evenodd",
|
|
78
|
-
d: "M10.6464 10.6464C10.8417 10.4512 11.1583 10.4512 11.3536 10.6464L21.3536 20.6464C21.5488 20.8417 21.5488 21.1583 21.3536 21.3536C21.1583 21.5488 20.8417 21.5488 20.6464 21.3536L10.6464 11.3536C10.4512 11.1583 10.4512 10.8417 10.6464 10.6464Z",
|
|
79
|
-
fill: "#212121"
|
|
80
|
-
}),
|
|
81
|
-
/*#__PURE__*/ jsxRuntime.jsx("path", {
|
|
82
|
-
fillRule: "evenodd",
|
|
83
|
-
clipRule: "evenodd",
|
|
84
|
-
d: "M21.3536 10.6464C21.5488 10.8417 21.5488 11.1583 21.3536 11.3536L11.3536 21.3536C11.1583 21.5488 10.8417 21.5488 10.6464 21.3536C10.4512 21.1583 10.4512 20.8417 10.6464 20.6464L20.6464 10.6464C20.8417 10.4512 21.1583 10.4512 21.3536 10.6464Z",
|
|
85
|
-
fill: "#212121"
|
|
86
|
-
})
|
|
87
|
-
]
|
|
88
|
-
})
|
|
89
|
-
}),
|
|
90
|
-
/*#__PURE__*/ jsxRuntime.jsx(MemoVideo, {}),
|
|
91
|
-
/*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
92
|
-
"data-content": true,
|
|
93
|
-
children: [
|
|
94
|
-
/*#__PURE__*/ jsxRuntime.jsx("h3", {
|
|
95
|
-
children: "New way to select parent element"
|
|
96
|
-
}),
|
|
97
|
-
/*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
98
|
-
children: "Select parent from here in case you can‘t find yours at times."
|
|
99
|
-
})
|
|
100
|
-
]
|
|
101
|
-
})
|
|
102
|
-
]
|
|
103
|
-
})
|
|
104
|
-
]
|
|
105
|
-
})
|
|
106
|
-
});
|
|
107
|
-
};
|
|
108
|
-
var Onboarding$1 = /*#__PURE__*/ react.memo(Onboarding);
|
|
109
|
-
|
|
110
|
-
exports.default = Onboarding$1;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react");const Onboarding=({enable:e,position:t,onCloseOnboarding:i})=>{let n=()=>{i()},s=()=>jsxRuntime.jsxs("video",{width:"100%",className:"gp-w-full",loop:!0,muted:!0,autoPlay:!0,playsInline:!0,children:[jsxRuntime.jsx("source",{src:"https://ucarecdn.com/de5fd2eb-4525-45a7-ad13-53960dac225e/",type:"video/mp4"}),"Sorry, your browser doesn‘t support embedded videos."]}),o=react.memo(s);return jsxRuntime.jsx("div",{"data-toolbar-onboarding":!0,"data-toolbar-onboarding-position":t,children:e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{"data-icon":!0,"data-position":t,children:"bottom"===t?jsxRuntime.jsx("svg",{width:"8",height:"4",viewBox:"0 0 8 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M-1.74846e-07 4L4 -1.74846e-07L8 4L-1.74846e-07 4Z",fill:"white"})}):jsxRuntime.jsx("svg",{width:"8",height:"4",viewBox:"0 0 8 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M8 3.33818e-07L4 4L4.76995e-08 7.15256e-07L8 3.33818e-07Z",fill:"white"})})}),jsxRuntime.jsxs("div",{"data-onboarding-wrapper":!0,children:[jsxRuntime.jsx("button",{"data-close":!0,type:"button",onClick:n,children:jsxRuntime.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.6464 10.6464C10.8417 10.4512 11.1583 10.4512 11.3536 10.6464L21.3536 20.6464C21.5488 20.8417 21.5488 21.1583 21.3536 21.3536C21.1583 21.5488 20.8417 21.5488 20.6464 21.3536L10.6464 11.3536C10.4512 11.1583 10.4512 10.8417 10.6464 10.6464Z",fill:"#212121"}),jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.3536 10.6464C21.5488 10.8417 21.5488 11.1583 21.3536 11.3536L11.3536 21.3536C11.1583 21.5488 10.8417 21.5488 10.6464 21.3536C10.4512 21.1583 10.4512 20.8417 10.6464 20.6464L20.6464 10.6464C20.8417 10.4512 21.1583 10.4512 21.3536 10.6464Z",fill:"#212121"})]})}),jsxRuntime.jsx(o,{}),jsxRuntime.jsxs("div",{"data-content":!0,children:[jsxRuntime.jsx("h3",{children:"New way to select parent element"}),jsxRuntime.jsx("p",{children:"Select parent from here in case you can‘t find yours at times."})]})]})]})})};var Onboarding$1=react.memo(Onboarding);exports.default=Onboarding$1;
|