@gem-sdk/pages 1.46.2 → 1.47.0-dev.4
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/builder/Header.js +4 -1
- package/dist/cjs/components/builder/InteractionSelectOnPageHeader.js +67 -0
- package/dist/cjs/components/builder/Toolbox.js +21 -1
- package/dist/esm/components/builder/Header.js +5 -2
- package/dist/esm/components/builder/InteractionSelectOnPageHeader.js +63 -0
- package/dist/esm/components/builder/Toolbox.js +21 -1
- package/package.json +5 -5
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var core = require('@gem-sdk/core');
|
|
7
7
|
var SwitchView = require('./SwitchView.js');
|
|
8
|
+
var InteractionSelectOnPageHeader = require('./InteractionSelectOnPageHeader.js');
|
|
8
9
|
|
|
9
10
|
const defaultMargin = {
|
|
10
11
|
desktop: '16px',
|
|
@@ -21,6 +22,7 @@ const sizeCheck = {
|
|
|
21
22
|
const Header = (props)=>{
|
|
22
23
|
const { pageType, isOriginTemplate } = props;
|
|
23
24
|
const layoutSetting = core.useShopStore((s)=>s.layoutSettings);
|
|
25
|
+
const isSelectOnPage = core.usePageStore((s)=>s.interactionData?.isSelectOnPage);
|
|
24
26
|
const activeHeader = layoutSetting?.showHeader || isOriginTemplate;
|
|
25
27
|
const headerColor = activeHeader ? HEADER_ON_COLOR : HEADER_OFF_COLOR;
|
|
26
28
|
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
@@ -177,7 +179,8 @@ const Header = (props)=>{
|
|
|
177
179
|
})
|
|
178
180
|
]
|
|
179
181
|
})
|
|
180
|
-
})
|
|
182
|
+
}),
|
|
183
|
+
isSelectOnPage && /*#__PURE__*/ jsxRuntime.jsx(InteractionSelectOnPageHeader.default, {})
|
|
181
184
|
]
|
|
182
185
|
});
|
|
183
186
|
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var core = require('@gem-sdk/core');
|
|
7
|
+
|
|
8
|
+
const InteractionSelectOnPageHeader = ()=>{
|
|
9
|
+
const selectType = core.usePageStore((s)=>s.interactionData?.selectType);
|
|
10
|
+
const setInteractionSelectType = core.usePageStore((s)=>s.setInteractionSelectType);
|
|
11
|
+
const setInteractionIsSelectOnPage = core.usePageStore((s)=>s.setInteractionIsSelectOnPage);
|
|
12
|
+
const closeSelectOnPage = ()=>{
|
|
13
|
+
setInteractionIsSelectOnPage(false);
|
|
14
|
+
const event = new CustomEvent('editor:interaction:change-select-on-page', {
|
|
15
|
+
bubbles: true,
|
|
16
|
+
detail: false
|
|
17
|
+
});
|
|
18
|
+
window.dispatchEvent(event);
|
|
19
|
+
};
|
|
20
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
21
|
+
children: [
|
|
22
|
+
/*#__PURE__*/ jsxRuntime.jsxs("header", {
|
|
23
|
+
className: "gp-flex gp-justify-between gp-h-10 gp-fixed gp-top-0 gp-left-0 gp-w-full gp-z-100",
|
|
24
|
+
children: [
|
|
25
|
+
/*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
26
|
+
className: "gp-h-10 gp-w-10"
|
|
27
|
+
}),
|
|
28
|
+
/*#__PURE__*/ jsxRuntime.jsxs("section", {
|
|
29
|
+
className: "gp-flex gp-bg-[#3C67FF]/[0.15] gp-items-center gp-h-full gp-rounded-b-lg gp-p-1 gp-gap-1",
|
|
30
|
+
children: [
|
|
31
|
+
/*#__PURE__*/ jsxRuntime.jsx("button", {
|
|
32
|
+
onClick: ()=>setInteractionSelectType('element'),
|
|
33
|
+
className: `gp-h-8 gp-w-[132px] gp-items-center gp-justify-center gp-text-[12px] gp-leading-5 gp-font-medium gp-flex gp-rounded-[6px] ${selectType === 'element' ? 'gp-bg-[#3C67FF] gp-text-[#F9F9F9]' : 'gp-text-[#3C67FF]'}`,
|
|
34
|
+
children: "Select an element"
|
|
35
|
+
}),
|
|
36
|
+
/*#__PURE__*/ jsxRuntime.jsx("button", {
|
|
37
|
+
onClick: ()=>setInteractionSelectType('page'),
|
|
38
|
+
className: `gp-h-8 gp-w-[132px] gp-items-center gp-justify-center gp-text-[12px] gp-leading-5 gp-font-medium gp-flex gp-rounded-[6px] ${selectType === 'page' ? 'gp-bg-[#3C67FF] gp-text-[#F9F9F9]' : 'gp-text-[#3C67FF]'}`,
|
|
39
|
+
children: "Choose entire page"
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
}),
|
|
43
|
+
/*#__PURE__*/ jsxRuntime.jsx("button", {
|
|
44
|
+
onClick: closeSelectOnPage,
|
|
45
|
+
className: "gp-h-10 gp-w-10 gp-bg-[#3C67FF]/[0.15] gp-flex gp-items-center gp-justify-center gp-rounded-bl-lg",
|
|
46
|
+
children: /*#__PURE__*/ jsxRuntime.jsx("svg", {
|
|
47
|
+
width: "20",
|
|
48
|
+
height: "20",
|
|
49
|
+
viewBox: "0 0 20 20",
|
|
50
|
+
fill: "none",
|
|
51
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
52
|
+
children: /*#__PURE__*/ jsxRuntime.jsx("path", {
|
|
53
|
+
d: "M3.94194 3.05806C3.69786 2.81398 3.30214 2.81398 3.05806 3.05806C2.81398 3.30214 2.81398 3.69786 3.05806 3.94194L9.11612 10L3.05806 16.0581C2.81398 16.3021 2.81398 16.6979 3.05806 16.9419C3.30214 17.186 3.69786 17.186 3.94194 16.9419L10 10.8839L16.0581 16.9419C16.3021 17.186 16.6979 17.186 16.9419 16.9419C17.186 16.6979 17.186 16.3021 16.9419 16.0581L10.8839 10L16.9419 3.94194C17.186 3.69786 17.186 3.30214 16.9419 3.05806C16.6979 2.81398 16.3021 2.81398 16.0581 3.05806L10 9.11612L3.94194 3.05806Z",
|
|
54
|
+
fill: "#3C67FF"
|
|
55
|
+
})
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
61
|
+
className: "gp-h-full gp-w-full gp-fixed gp-top-0 gp-left-0 gp-border-[#3C67FF] gp-border-[2px]"
|
|
62
|
+
})
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.default = InteractionSelectOnPageHeader;
|
|
@@ -36,6 +36,8 @@ const Toolbox = ()=>{
|
|
|
36
36
|
const changeCreateThemeSectionCount = core.useShopStore((s)=>s.changeCreateThemeSectionCount);
|
|
37
37
|
const changeShopPlan = core.useShopStore((s)=>s.changeShopPlan);
|
|
38
38
|
const clearModal = core.useModalStore((s)=>s.clearModal);
|
|
39
|
+
const setInteractionIsSelectOnPage = core.usePageStore((s)=>s.setInteractionIsSelectOnPage);
|
|
40
|
+
const setInteractionItem = core.usePageStore((s)=>s.setInteractionItem);
|
|
39
41
|
const fonts = react.useMemo(()=>genFonts.getFontsFromDataBuilder(state), [
|
|
40
42
|
state
|
|
41
43
|
]);
|
|
@@ -329,6 +331,18 @@ const Toolbox = ()=>{
|
|
|
329
331
|
}, [
|
|
330
332
|
setSalePageProductId
|
|
331
333
|
]);
|
|
334
|
+
const onUpdateInteractionIsSelectOnPage = react.useCallback((e)=>{
|
|
335
|
+
const isSelectOnPage = e.detail;
|
|
336
|
+
setInteractionIsSelectOnPage(isSelectOnPage);
|
|
337
|
+
}, [
|
|
338
|
+
setInteractionIsSelectOnPage
|
|
339
|
+
]);
|
|
340
|
+
const onUpdateInteractionItem = react.useCallback((e)=>{
|
|
341
|
+
const interactionItem = e.detail;
|
|
342
|
+
setInteractionItem(interactionItem);
|
|
343
|
+
}, [
|
|
344
|
+
setInteractionItem
|
|
345
|
+
]);
|
|
332
346
|
react.useEffect(()=>{
|
|
333
347
|
if (fonts) {
|
|
334
348
|
setFontsToHead('google-font-element', fonts);
|
|
@@ -356,6 +370,8 @@ const Toolbox = ()=>{
|
|
|
356
370
|
window.addEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
357
371
|
window.addEventListener('set-product-offer', onUpdateProductOffers);
|
|
358
372
|
window.addEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
|
|
373
|
+
window.addEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
|
|
374
|
+
window.addEventListener('update-interaction-item', onUpdateInteractionItem);
|
|
359
375
|
return ()=>{
|
|
360
376
|
window.removeEventListener('update-shop-info', onChangeShopInfo);
|
|
361
377
|
window.removeEventListener('revalidate-query', onRevalidateQuery);
|
|
@@ -375,6 +391,8 @@ const Toolbox = ()=>{
|
|
|
375
391
|
window.removeEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
376
392
|
window.removeEventListener('set-product-offer', onUpdateProductOffers);
|
|
377
393
|
window.removeEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
|
|
394
|
+
window.removeEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
|
|
395
|
+
window.removeEventListener('update-interaction-item', onUpdateInteractionItem);
|
|
378
396
|
};
|
|
379
397
|
}, [
|
|
380
398
|
onAddEntity,
|
|
@@ -395,7 +413,9 @@ const Toolbox = ()=>{
|
|
|
395
413
|
onUpdateItemName,
|
|
396
414
|
onUpdateItemAttribute,
|
|
397
415
|
onUpdateProductOffers,
|
|
398
|
-
onUpdateSalePageProductId
|
|
416
|
+
onUpdateSalePageProductId,
|
|
417
|
+
onUpdateInteractionItem,
|
|
418
|
+
onUpdateInteractionIsSelectOnPage
|
|
399
419
|
]);
|
|
400
420
|
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
401
421
|
className: "toolbox"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useShopStore, cls, makeStyleResponsive } from '@gem-sdk/core';
|
|
2
|
+
import { useShopStore, usePageStore, cls, makeStyleResponsive } from '@gem-sdk/core';
|
|
3
3
|
import Devices from './SwitchView.js';
|
|
4
|
+
import InteractionSelectOnPageHeader from './InteractionSelectOnPageHeader.js';
|
|
4
5
|
|
|
5
6
|
const defaultMargin = {
|
|
6
7
|
desktop: '16px',
|
|
@@ -17,6 +18,7 @@ const sizeCheck = {
|
|
|
17
18
|
const Header = (props)=>{
|
|
18
19
|
const { pageType, isOriginTemplate } = props;
|
|
19
20
|
const layoutSetting = useShopStore((s)=>s.layoutSettings);
|
|
21
|
+
const isSelectOnPage = usePageStore((s)=>s.interactionData?.isSelectOnPage);
|
|
20
22
|
const activeHeader = layoutSetting?.showHeader || isOriginTemplate;
|
|
21
23
|
const headerColor = activeHeader ? HEADER_ON_COLOR : HEADER_OFF_COLOR;
|
|
22
24
|
return /*#__PURE__*/ jsxs(Fragment, {
|
|
@@ -173,7 +175,8 @@ const Header = (props)=>{
|
|
|
173
175
|
})
|
|
174
176
|
]
|
|
175
177
|
})
|
|
176
|
-
})
|
|
178
|
+
}),
|
|
179
|
+
isSelectOnPage && /*#__PURE__*/ jsx(InteractionSelectOnPageHeader, {})
|
|
177
180
|
]
|
|
178
181
|
});
|
|
179
182
|
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { usePageStore } from '@gem-sdk/core';
|
|
3
|
+
|
|
4
|
+
const InteractionSelectOnPageHeader = ()=>{
|
|
5
|
+
const selectType = usePageStore((s)=>s.interactionData?.selectType);
|
|
6
|
+
const setInteractionSelectType = usePageStore((s)=>s.setInteractionSelectType);
|
|
7
|
+
const setInteractionIsSelectOnPage = usePageStore((s)=>s.setInteractionIsSelectOnPage);
|
|
8
|
+
const closeSelectOnPage = ()=>{
|
|
9
|
+
setInteractionIsSelectOnPage(false);
|
|
10
|
+
const event = new CustomEvent('editor:interaction:change-select-on-page', {
|
|
11
|
+
bubbles: true,
|
|
12
|
+
detail: false
|
|
13
|
+
});
|
|
14
|
+
window.dispatchEvent(event);
|
|
15
|
+
};
|
|
16
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ jsxs("header", {
|
|
19
|
+
className: "gp-flex gp-justify-between gp-h-10 gp-fixed gp-top-0 gp-left-0 gp-w-full gp-z-100",
|
|
20
|
+
children: [
|
|
21
|
+
/*#__PURE__*/ jsx("div", {
|
|
22
|
+
className: "gp-h-10 gp-w-10"
|
|
23
|
+
}),
|
|
24
|
+
/*#__PURE__*/ jsxs("section", {
|
|
25
|
+
className: "gp-flex gp-bg-[#3C67FF]/[0.15] gp-items-center gp-h-full gp-rounded-b-lg gp-p-1 gp-gap-1",
|
|
26
|
+
children: [
|
|
27
|
+
/*#__PURE__*/ jsx("button", {
|
|
28
|
+
onClick: ()=>setInteractionSelectType('element'),
|
|
29
|
+
className: `gp-h-8 gp-w-[132px] gp-items-center gp-justify-center gp-text-[12px] gp-leading-5 gp-font-medium gp-flex gp-rounded-[6px] ${selectType === 'element' ? 'gp-bg-[#3C67FF] gp-text-[#F9F9F9]' : 'gp-text-[#3C67FF]'}`,
|
|
30
|
+
children: "Select an element"
|
|
31
|
+
}),
|
|
32
|
+
/*#__PURE__*/ jsx("button", {
|
|
33
|
+
onClick: ()=>setInteractionSelectType('page'),
|
|
34
|
+
className: `gp-h-8 gp-w-[132px] gp-items-center gp-justify-center gp-text-[12px] gp-leading-5 gp-font-medium gp-flex gp-rounded-[6px] ${selectType === 'page' ? 'gp-bg-[#3C67FF] gp-text-[#F9F9F9]' : 'gp-text-[#3C67FF]'}`,
|
|
35
|
+
children: "Choose entire page"
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ jsx("button", {
|
|
40
|
+
onClick: closeSelectOnPage,
|
|
41
|
+
className: "gp-h-10 gp-w-10 gp-bg-[#3C67FF]/[0.15] gp-flex gp-items-center gp-justify-center gp-rounded-bl-lg",
|
|
42
|
+
children: /*#__PURE__*/ jsx("svg", {
|
|
43
|
+
width: "20",
|
|
44
|
+
height: "20",
|
|
45
|
+
viewBox: "0 0 20 20",
|
|
46
|
+
fill: "none",
|
|
47
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
48
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
49
|
+
d: "M3.94194 3.05806C3.69786 2.81398 3.30214 2.81398 3.05806 3.05806C2.81398 3.30214 2.81398 3.69786 3.05806 3.94194L9.11612 10L3.05806 16.0581C2.81398 16.3021 2.81398 16.6979 3.05806 16.9419C3.30214 17.186 3.69786 17.186 3.94194 16.9419L10 10.8839L16.0581 16.9419C16.3021 17.186 16.6979 17.186 16.9419 16.9419C17.186 16.6979 17.186 16.3021 16.9419 16.0581L10.8839 10L16.9419 3.94194C17.186 3.69786 17.186 3.30214 16.9419 3.05806C16.6979 2.81398 16.3021 2.81398 16.0581 3.05806L10 9.11612L3.94194 3.05806Z",
|
|
50
|
+
fill: "#3C67FF"
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
/*#__PURE__*/ jsx("div", {
|
|
57
|
+
className: "gp-h-full gp-w-full gp-fixed gp-top-0 gp-left-0 gp-border-[#3C67FF] gp-border-[2px]"
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export { InteractionSelectOnPageHeader as default };
|
|
@@ -32,6 +32,8 @@ const Toolbox = ()=>{
|
|
|
32
32
|
const changeCreateThemeSectionCount = useShopStore((s)=>s.changeCreateThemeSectionCount);
|
|
33
33
|
const changeShopPlan = useShopStore((s)=>s.changeShopPlan);
|
|
34
34
|
const clearModal = useModalStore((s)=>s.clearModal);
|
|
35
|
+
const setInteractionIsSelectOnPage = usePageStore((s)=>s.setInteractionIsSelectOnPage);
|
|
36
|
+
const setInteractionItem = usePageStore((s)=>s.setInteractionItem);
|
|
35
37
|
const fonts = useMemo(()=>getFontsFromDataBuilder(state), [
|
|
36
38
|
state
|
|
37
39
|
]);
|
|
@@ -325,6 +327,18 @@ const Toolbox = ()=>{
|
|
|
325
327
|
}, [
|
|
326
328
|
setSalePageProductId
|
|
327
329
|
]);
|
|
330
|
+
const onUpdateInteractionIsSelectOnPage = useCallback((e)=>{
|
|
331
|
+
const isSelectOnPage = e.detail;
|
|
332
|
+
setInteractionIsSelectOnPage(isSelectOnPage);
|
|
333
|
+
}, [
|
|
334
|
+
setInteractionIsSelectOnPage
|
|
335
|
+
]);
|
|
336
|
+
const onUpdateInteractionItem = useCallback((e)=>{
|
|
337
|
+
const interactionItem = e.detail;
|
|
338
|
+
setInteractionItem(interactionItem);
|
|
339
|
+
}, [
|
|
340
|
+
setInteractionItem
|
|
341
|
+
]);
|
|
328
342
|
useEffect(()=>{
|
|
329
343
|
if (fonts) {
|
|
330
344
|
setFontsToHead('google-font-element', fonts);
|
|
@@ -352,6 +366,8 @@ const Toolbox = ()=>{
|
|
|
352
366
|
window.addEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
353
367
|
window.addEventListener('set-product-offer', onUpdateProductOffers);
|
|
354
368
|
window.addEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
|
|
369
|
+
window.addEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
|
|
370
|
+
window.addEventListener('update-interaction-item', onUpdateInteractionItem);
|
|
355
371
|
return ()=>{
|
|
356
372
|
window.removeEventListener('update-shop-info', onChangeShopInfo);
|
|
357
373
|
window.removeEventListener('revalidate-query', onRevalidateQuery);
|
|
@@ -371,6 +387,8 @@ const Toolbox = ()=>{
|
|
|
371
387
|
window.removeEventListener('update-item-attribute', onUpdateItemAttribute);
|
|
372
388
|
window.removeEventListener('set-product-offer', onUpdateProductOffers);
|
|
373
389
|
window.removeEventListener('update-sale-page-product-id', onUpdateSalePageProductId);
|
|
390
|
+
window.removeEventListener('update-interaction-is-select-on-page', onUpdateInteractionIsSelectOnPage);
|
|
391
|
+
window.removeEventListener('update-interaction-item', onUpdateInteractionItem);
|
|
374
392
|
};
|
|
375
393
|
}, [
|
|
376
394
|
onAddEntity,
|
|
@@ -391,7 +409,9 @@ const Toolbox = ()=>{
|
|
|
391
409
|
onUpdateItemName,
|
|
392
410
|
onUpdateItemAttribute,
|
|
393
411
|
onUpdateProductOffers,
|
|
394
|
-
onUpdateSalePageProductId
|
|
412
|
+
onUpdateSalePageProductId,
|
|
413
|
+
onUpdateInteractionItem,
|
|
414
|
+
onUpdateInteractionIsSelectOnPage
|
|
395
415
|
]);
|
|
396
416
|
return /*#__PURE__*/ jsx("div", {
|
|
397
417
|
className: "toolbox"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.0-dev.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"next": "latest"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@gem-sdk/core": "1.
|
|
30
|
-
"@gem-sdk/plugin-cookie-bar": "1.
|
|
31
|
-
"@gem-sdk/plugin-quick-view": "1.
|
|
32
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "1.
|
|
29
|
+
"@gem-sdk/core": "1.47.0-dev.4",
|
|
30
|
+
"@gem-sdk/plugin-cookie-bar": "1.47.0-dev.4",
|
|
31
|
+
"@gem-sdk/plugin-quick-view": "1.47.0-dev.4",
|
|
32
|
+
"@gem-sdk/plugin-sticky-add-to-cart": "1.47.0-dev.4"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"next": ">=13"
|