@gem-sdk/components 2.4.10 → 2.4.12
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/button/components/Button.liquid.js +3 -3
- package/dist/cjs/post-purchase/product/components/ProductVariant.js +3 -2
- package/dist/cjs/product/components/ProductButton.js +1 -1
- package/dist/cjs/product/components/ProductButton.liquid.js +21 -3
- package/dist/cjs/third-party/components/Releasit.liquid.js +3 -2
- package/dist/cjs/third-party/configs/BoldProductOptions.js +2 -2
- package/dist/cjs/third-party/setting/Releasit.js +59 -2
- package/dist/esm/button/components/Button.liquid.js +3 -3
- package/dist/esm/post-purchase/product/components/ProductVariant.js +4 -3
- package/dist/esm/product/components/ProductButton.js +1 -1
- package/dist/esm/product/components/ProductButton.liquid.js +21 -3
- package/dist/esm/third-party/components/Releasit.liquid.js +3 -2
- package/dist/esm/third-party/configs/BoldProductOptions.js +2 -2
- package/dist/esm/third-party/setting/Releasit.js +59 -2
- package/dist/types/index.d.ts +10 -1
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var core = require('@gem-sdk/core');
|
|
6
6
|
var helpers = require('../../helpers.js');
|
|
7
7
|
|
|
8
|
-
const Button = ({ className, builderProps, customAttrs, pageContext, setting = {}, styles = {}, style, wrapClassName = '', advanced, nodePrice, dataId })=>{
|
|
8
|
+
const Button = ({ className, builderProps, customAttrs, pageContext, setting = {}, styles = {}, style, wrapClassName = '', advanced, nodePrice, dataId, isUseTranslatedValue = false })=>{
|
|
9
9
|
const { align, size, backgroundColor, textColor, roundedBtn, iconSpacing, globalSize } = styles;
|
|
10
10
|
const { label, iconSvg, btnLink, htmlType, disabled, loading, iconAlign, iconVisible, translate, disabledLoading = true } = setting;
|
|
11
11
|
const [wrapStyle, restStyle] = core.splitStyle([
|
|
@@ -70,7 +70,7 @@ const Button = ({ className, builderProps, customAttrs, pageContext, setting = {
|
|
|
70
70
|
color: ${core.getSingleColorVariable(styles?.textColor?.hover)};
|
|
71
71
|
}
|
|
72
72
|
`;
|
|
73
|
-
const labelValDisplay = helpers.getDynamicSourceLocales({
|
|
73
|
+
const labelValDisplay = !isUseTranslatedValue ? label : helpers.getDynamicSourceLocales({
|
|
74
74
|
val: label,
|
|
75
75
|
uid: builderProps?.uidTranslate ?? builderProps?.uid,
|
|
76
76
|
settingId: translate ?? 'label',
|
|
@@ -161,7 +161,7 @@ const Button = ({ className, builderProps, customAttrs, pageContext, setting = {
|
|
|
161
161
|
>${iconSvg}</span>`)}
|
|
162
162
|
<span
|
|
163
163
|
data-gp-text
|
|
164
|
-
class="${`group-hover/button:!gp-text-inherit gp-button-text-only gp-break-words group-data-[state=loading]/button:gp-invisible [&_p]:gp-whitespace-pre-line gp-z-1 gp-h-full gp-flex gp-items-center gp-overflow-hidden ${nodePrice ? appendTypoClass : ''}
|
|
164
|
+
class="${`gp-content-product-button group-hover/button:!gp-text-inherit gp-button-text-only gp-break-words group-data-[state=loading]/button:gp-invisible [&_p]:gp-whitespace-pre-line gp-z-1 gp-h-full gp-flex gp-items-center gp-overflow-hidden ${nodePrice ? appendTypoClass : ''}
|
|
165
165
|
${styles?.typo?.attrs?.italic ? '[&:not(:has(p))]:gp-pr-[0.2em] [&_p]:[&:has(p)]:gp-pr-[0.2em]' : ''}`}"
|
|
166
166
|
style="${{
|
|
167
167
|
...nodePrice && appendTypoStyle,
|
|
@@ -30,6 +30,7 @@ const PostPurchaseProductVariants = ({ builderProps, style, styles, setting })=>
|
|
|
30
30
|
const { selectedOptions, setSelectedOption, forceSelectedOption } = core.useSelectedOption();
|
|
31
31
|
const variantsWidth = core.makeStyleResponsive('w', core.makeWidth(width, fullWidth));
|
|
32
32
|
const [variantId, setVariantId] = React.useState('');
|
|
33
|
+
const mode = core.useEditorMode();
|
|
33
34
|
React.useEffect(()=>{
|
|
34
35
|
const url = new URL(window.location.href);
|
|
35
36
|
const variantParam = url.searchParams.get(VARIANT_PARAM_PATH);
|
|
@@ -231,10 +232,10 @@ const PostPurchaseProductVariants = ({ builderProps, style, styles, setting })=>
|
|
|
231
232
|
})
|
|
232
233
|
]
|
|
233
234
|
}) : /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
234
|
-
children: /*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
235
|
+
children: mode === 'edit' ? /*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
235
236
|
className: "gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",
|
|
236
237
|
children: "This product has only default variant"
|
|
237
|
-
})
|
|
238
|
+
}) : null
|
|
238
239
|
})
|
|
239
240
|
});
|
|
240
241
|
};
|
|
@@ -218,7 +218,7 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
218
218
|
]);
|
|
219
219
|
const isInStock = core.useCurrentVariantInStock();
|
|
220
220
|
const isDisable = !isInStock || createCartLoading || addToCartLoading;
|
|
221
|
-
const label = !isInStock ? setting?.outOfStockLabel : setting?.label;
|
|
221
|
+
const label = !isInStock ? !currentVariant ? 'Unavailable' : setting?.outOfStockLabel : setting?.label;
|
|
222
222
|
if (!isInStock && isCustomOutOfStock) {
|
|
223
223
|
buttonStyles.backgroundColor = {
|
|
224
224
|
normal: oosBackground
|
|
@@ -188,6 +188,22 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
188
188
|
pageContext,
|
|
189
189
|
translate: setting?.translate
|
|
190
190
|
});
|
|
191
|
+
const labelUnavailableTranslate = helpers.getDynamicSourceLocales({
|
|
192
|
+
val: 'Unavailable',
|
|
193
|
+
uid: builderProps?.uid,
|
|
194
|
+
settingId: 'unavailableLabel',
|
|
195
|
+
isLiquid: true,
|
|
196
|
+
pageContext,
|
|
197
|
+
translate: setting?.translate ? 'unavailableLabel' : undefined
|
|
198
|
+
});
|
|
199
|
+
const labelOutOfStockTranslate = helpers.getDynamicSourceLocales({
|
|
200
|
+
val: setting?.outOfStockLabel,
|
|
201
|
+
uid: builderProps?.uid,
|
|
202
|
+
settingId: 'outOfStockLabel',
|
|
203
|
+
isLiquid: true,
|
|
204
|
+
pageContext,
|
|
205
|
+
translate: setting?.translate ? 'outOfStockLabel' : undefined
|
|
206
|
+
});
|
|
191
207
|
return core.template /* liquid */ `
|
|
192
208
|
{%- liquid
|
|
193
209
|
assign inventory_quantity = variant.inventory_quantity | default: 0
|
|
@@ -195,6 +211,8 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
195
211
|
<gp-product-button
|
|
196
212
|
class="gp-product-button"
|
|
197
213
|
gp-data-wrapper="true"
|
|
214
|
+
gp-label-out-of-stock="${pageContext?.isPreviewing ? labelOutOfStockTranslate : `{{${labelOutOfStockTranslate}}}`}"
|
|
215
|
+
gp-label-unavailable="${pageContext?.isPreviewing ? labelUnavailableTranslate : `{{${labelUnavailableTranslate}}}`}"
|
|
198
216
|
gp-data='${JSON.stringify({
|
|
199
217
|
setting: {
|
|
200
218
|
actionEffect: setting?.actionEffect,
|
|
@@ -272,8 +290,7 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
272
290
|
'gp-data-hidden': `{% if variant.available %}true{% endif %}`
|
|
273
291
|
},
|
|
274
292
|
setting: {
|
|
275
|
-
label:
|
|
276
|
-
translate: setting?.translate ? 'outOfStockLabel' : undefined,
|
|
293
|
+
label: `${pageContext?.isPreviewing ? labelOutOfStockTranslate : `{{${labelOutOfStockTranslate}}}`}`,
|
|
277
294
|
htmlType: 'button',
|
|
278
295
|
iconAlign: iconAlign,
|
|
279
296
|
iconSvg: iconSvg,
|
|
@@ -292,7 +309,8 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
292
309
|
}
|
|
293
310
|
},
|
|
294
311
|
pageContext,
|
|
295
|
-
nodePrice: composeNodePrice()
|
|
312
|
+
nodePrice: composeNodePrice(),
|
|
313
|
+
isUseTranslatedValue: true
|
|
296
314
|
})}
|
|
297
315
|
</gp-product-button>
|
|
298
316
|
${core.RenderIf(core.isLocalEnv, `<script ${helpers.getSettingPreloadData('class="gps-link" delay', 'src')}="{{ 'gp-product-button.js' | asset_url }}" defer="defer"></script>`, `<script ${helpers.getSettingPreloadData('class="gps-link" delay', 'src')}="${core.baseAssetURL}/assets-v2/gp-product-button.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var thirdParty = require('../helpers/thirdParty.js');
|
|
5
6
|
var core = require('@gem-sdk/core');
|
|
6
7
|
|
|
7
8
|
const Releasit = ({ setting, advanced })=>{
|
|
8
|
-
const { align } = setting ?? {};
|
|
9
|
-
return core.template`
|
|
9
|
+
const { align, version, appBlockId } = setting ?? {};
|
|
10
|
+
return version === 'v2' ? thirdParty.getLiquidForAppBlock(appBlockId, align, `${advanced?.cssClass ?? ''}!gp-block`) : core.template`
|
|
10
11
|
<div
|
|
11
12
|
class="${advanced?.cssClass}"
|
|
12
13
|
style="${{
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var BoldProductOptionsConfig = {
|
|
6
6
|
id: 'bold-product-options',
|
|
7
|
-
label: '
|
|
8
|
-
logoUrl: 'https://
|
|
7
|
+
label: 'SC Product Options',
|
|
8
|
+
logoUrl: 'https://cdn.shopify.com/app-store/listing_images/9a0bf1159f79c6ab0660ec422f350445/icon/CP2Uwo_GuYIDEAE=.png',
|
|
9
9
|
tag: 'BoldProductOptions'
|
|
10
10
|
};
|
|
11
11
|
|
|
@@ -11,6 +11,11 @@ const config = {
|
|
|
11
11
|
editorConfigs: {
|
|
12
12
|
component: {
|
|
13
13
|
isThirdParty: true
|
|
14
|
+
},
|
|
15
|
+
placeholder: {
|
|
16
|
+
flowTag: [
|
|
17
|
+
'Product'
|
|
18
|
+
]
|
|
14
19
|
}
|
|
15
20
|
},
|
|
16
21
|
presets: [
|
|
@@ -39,6 +44,16 @@ const config = {
|
|
|
39
44
|
{
|
|
40
45
|
id: 'setting',
|
|
41
46
|
controls: [
|
|
47
|
+
{
|
|
48
|
+
id: 'appBlockId',
|
|
49
|
+
type: 'input',
|
|
50
|
+
default: ''
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'productHandle',
|
|
54
|
+
type: 'input',
|
|
55
|
+
default: ''
|
|
56
|
+
},
|
|
42
57
|
{
|
|
43
58
|
id: 'install',
|
|
44
59
|
type: 'open-link',
|
|
@@ -55,6 +70,38 @@ const config = {
|
|
|
55
70
|
href: 'https://admin.shopify.com/?redirect=/apps/releasit-cod-order-form',
|
|
56
71
|
appName: Releasit.default.label
|
|
57
72
|
},
|
|
73
|
+
{
|
|
74
|
+
id: 'version',
|
|
75
|
+
label: 'Choose version',
|
|
76
|
+
type: 'select',
|
|
77
|
+
default: 'v1',
|
|
78
|
+
options: [
|
|
79
|
+
{
|
|
80
|
+
label: 'V1',
|
|
81
|
+
value: 'v1'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
label: 'V2',
|
|
85
|
+
value: 'v2'
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: 'widgetTypeV2',
|
|
91
|
+
label: 'Choose widget',
|
|
92
|
+
type: 'select',
|
|
93
|
+
default: 'button-app-block',
|
|
94
|
+
options: [
|
|
95
|
+
{
|
|
96
|
+
label: 'Releasit button',
|
|
97
|
+
value: 'button-app-block'
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
label: 'Releasit embedded form',
|
|
101
|
+
value: 'form-app-block'
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
58
105
|
{
|
|
59
106
|
id: 'align',
|
|
60
107
|
label: 'Alignment',
|
|
@@ -95,12 +142,22 @@ const config = {
|
|
|
95
142
|
{
|
|
96
143
|
type: 'control',
|
|
97
144
|
label: {
|
|
98
|
-
en: 'Choose
|
|
145
|
+
en: 'Choose version'
|
|
99
146
|
},
|
|
100
147
|
setting: {
|
|
101
|
-
id: '
|
|
148
|
+
id: 'version'
|
|
102
149
|
}
|
|
103
150
|
},
|
|
151
|
+
{
|
|
152
|
+
type: 'control',
|
|
153
|
+
label: {
|
|
154
|
+
en: 'Choose widget'
|
|
155
|
+
},
|
|
156
|
+
setting: {
|
|
157
|
+
id: 'widgetTypeV2'
|
|
158
|
+
},
|
|
159
|
+
condition: 'version === "v2"'
|
|
160
|
+
},
|
|
104
161
|
{
|
|
105
162
|
type: 'control',
|
|
106
163
|
setting: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { splitStyle, makeStyleResponsive, makeGlobalSize, composeTypographyClassName, composeTypographyStyle, composeBorderCss, composeCornerCss, getSingleColorVariable, template, cls, getGlobalColorStateClass, getGlobalColorStateStyle, composeRadius, getStyleShadowState, composeSize, getGradientBgrStyleForButton, RenderIf } from '@gem-sdk/core';
|
|
2
2
|
import { getInsertLinkData, getDynamicSourceLocales } from '../../helpers.js';
|
|
3
3
|
|
|
4
|
-
const Button = ({ className, builderProps, customAttrs, pageContext, setting = {}, styles = {}, style, wrapClassName = '', advanced, nodePrice, dataId })=>{
|
|
4
|
+
const Button = ({ className, builderProps, customAttrs, pageContext, setting = {}, styles = {}, style, wrapClassName = '', advanced, nodePrice, dataId, isUseTranslatedValue = false })=>{
|
|
5
5
|
const { align, size, backgroundColor, textColor, roundedBtn, iconSpacing, globalSize } = styles;
|
|
6
6
|
const { label, iconSvg, btnLink, htmlType, disabled, loading, iconAlign, iconVisible, translate, disabledLoading = true } = setting;
|
|
7
7
|
const [wrapStyle, restStyle] = splitStyle([
|
|
@@ -66,7 +66,7 @@ const Button = ({ className, builderProps, customAttrs, pageContext, setting = {
|
|
|
66
66
|
color: ${getSingleColorVariable(styles?.textColor?.hover)};
|
|
67
67
|
}
|
|
68
68
|
`;
|
|
69
|
-
const labelValDisplay = getDynamicSourceLocales({
|
|
69
|
+
const labelValDisplay = !isUseTranslatedValue ? label : getDynamicSourceLocales({
|
|
70
70
|
val: label,
|
|
71
71
|
uid: builderProps?.uidTranslate ?? builderProps?.uid,
|
|
72
72
|
settingId: translate ?? 'label',
|
|
@@ -157,7 +157,7 @@ const Button = ({ className, builderProps, customAttrs, pageContext, setting = {
|
|
|
157
157
|
>${iconSvg}</span>`)}
|
|
158
158
|
<span
|
|
159
159
|
data-gp-text
|
|
160
|
-
class="${`group-hover/button:!gp-text-inherit gp-button-text-only gp-break-words group-data-[state=loading]/button:gp-invisible [&_p]:gp-whitespace-pre-line gp-z-1 gp-h-full gp-flex gp-items-center gp-overflow-hidden ${nodePrice ? appendTypoClass : ''}
|
|
160
|
+
class="${`gp-content-product-button group-hover/button:!gp-text-inherit gp-button-text-only gp-break-words group-data-[state=loading]/button:gp-invisible [&_p]:gp-whitespace-pre-line gp-z-1 gp-h-full gp-flex gp-items-center gp-overflow-hidden ${nodePrice ? appendTypoClass : ''}
|
|
161
161
|
${styles?.typo?.attrs?.italic ? '[&:not(:has(p))]:gp-pr-[0.2em] [&_p]:[&:has(p)]:gp-pr-[0.2em]' : ''}`}"
|
|
162
162
|
style="${{
|
|
163
163
|
...nodePrice && appendTypoStyle,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { useVariants, useProduct, useIsSyncProduct, useSelectedOption, makeStyleResponsive, makeWidth, useInitialSwatchesOptions, useSwatchesOptions, optionLayoutStyle, cls, OptionSpecialStyle, getSelectedVariant } from '@gem-sdk/core';
|
|
2
|
+
import { useVariants, useProduct, useIsSyncProduct, useSelectedOption, makeStyleResponsive, makeWidth, useEditorMode, useInitialSwatchesOptions, useSwatchesOptions, optionLayoutStyle, cls, OptionSpecialStyle, getSelectedVariant } from '@gem-sdk/core';
|
|
3
3
|
import { useState, useEffect, useMemo, useCallback } from 'react';
|
|
4
4
|
import { checkDefaultVariant } from '../../../product/helpers/product.js';
|
|
5
5
|
import { useTransition } from '../../../product/components/ProductVariants/common.js';
|
|
@@ -26,6 +26,7 @@ const PostPurchaseProductVariants = ({ builderProps, style, styles, setting })=>
|
|
|
26
26
|
const { selectedOptions, setSelectedOption, forceSelectedOption } = useSelectedOption();
|
|
27
27
|
const variantsWidth = makeStyleResponsive('w', makeWidth(width, fullWidth));
|
|
28
28
|
const [variantId, setVariantId] = useState('');
|
|
29
|
+
const mode = useEditorMode();
|
|
29
30
|
useEffect(()=>{
|
|
30
31
|
const url = new URL(window.location.href);
|
|
31
32
|
const variantParam = url.searchParams.get(VARIANT_PARAM_PATH);
|
|
@@ -227,10 +228,10 @@ const PostPurchaseProductVariants = ({ builderProps, style, styles, setting })=>
|
|
|
227
228
|
})
|
|
228
229
|
]
|
|
229
230
|
}) : /*#__PURE__*/ jsx("div", {
|
|
230
|
-
children: /*#__PURE__*/ jsx("p", {
|
|
231
|
+
children: mode === 'edit' ? /*#__PURE__*/ jsx("p", {
|
|
231
232
|
className: "gp-p-2 gp-text-center gp-text-sm gp-font-semibold gp-text-gray-500",
|
|
232
233
|
children: "This product has only default variant"
|
|
233
|
-
})
|
|
234
|
+
}) : null
|
|
234
235
|
})
|
|
235
236
|
});
|
|
236
237
|
};
|
|
@@ -214,7 +214,7 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
214
214
|
]);
|
|
215
215
|
const isInStock = useCurrentVariantInStock();
|
|
216
216
|
const isDisable = !isInStock || createCartLoading || addToCartLoading;
|
|
217
|
-
const label = !isInStock ? setting?.outOfStockLabel : setting?.label;
|
|
217
|
+
const label = !isInStock ? !currentVariant ? 'Unavailable' : setting?.outOfStockLabel : setting?.label;
|
|
218
218
|
if (!isInStock && isCustomOutOfStock) {
|
|
219
219
|
buttonStyles.backgroundColor = {
|
|
220
220
|
normal: oosBackground
|
|
@@ -184,6 +184,22 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
184
184
|
pageContext,
|
|
185
185
|
translate: setting?.translate
|
|
186
186
|
});
|
|
187
|
+
const labelUnavailableTranslate = getDynamicSourceLocales({
|
|
188
|
+
val: 'Unavailable',
|
|
189
|
+
uid: builderProps?.uid,
|
|
190
|
+
settingId: 'unavailableLabel',
|
|
191
|
+
isLiquid: true,
|
|
192
|
+
pageContext,
|
|
193
|
+
translate: setting?.translate ? 'unavailableLabel' : undefined
|
|
194
|
+
});
|
|
195
|
+
const labelOutOfStockTranslate = getDynamicSourceLocales({
|
|
196
|
+
val: setting?.outOfStockLabel,
|
|
197
|
+
uid: builderProps?.uid,
|
|
198
|
+
settingId: 'outOfStockLabel',
|
|
199
|
+
isLiquid: true,
|
|
200
|
+
pageContext,
|
|
201
|
+
translate: setting?.translate ? 'outOfStockLabel' : undefined
|
|
202
|
+
});
|
|
187
203
|
return template /* liquid */ `
|
|
188
204
|
{%- liquid
|
|
189
205
|
assign inventory_quantity = variant.inventory_quantity | default: 0
|
|
@@ -191,6 +207,8 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
191
207
|
<gp-product-button
|
|
192
208
|
class="gp-product-button"
|
|
193
209
|
gp-data-wrapper="true"
|
|
210
|
+
gp-label-out-of-stock="${pageContext?.isPreviewing ? labelOutOfStockTranslate : `{{${labelOutOfStockTranslate}}}`}"
|
|
211
|
+
gp-label-unavailable="${pageContext?.isPreviewing ? labelUnavailableTranslate : `{{${labelUnavailableTranslate}}}`}"
|
|
194
212
|
gp-data='${JSON.stringify({
|
|
195
213
|
setting: {
|
|
196
214
|
actionEffect: setting?.actionEffect,
|
|
@@ -268,8 +286,7 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
268
286
|
'gp-data-hidden': `{% if variant.available %}true{% endif %}`
|
|
269
287
|
},
|
|
270
288
|
setting: {
|
|
271
|
-
label:
|
|
272
|
-
translate: setting?.translate ? 'outOfStockLabel' : undefined,
|
|
289
|
+
label: `${pageContext?.isPreviewing ? labelOutOfStockTranslate : `{{${labelOutOfStockTranslate}}}`}`,
|
|
273
290
|
htmlType: 'button',
|
|
274
291
|
iconAlign: iconAlign,
|
|
275
292
|
iconSvg: iconSvg,
|
|
@@ -288,7 +305,8 @@ const ProductButton = ({ setting, builderProps, builderAttrs, style, styles, adv
|
|
|
288
305
|
}
|
|
289
306
|
},
|
|
290
307
|
pageContext,
|
|
291
|
-
nodePrice: composeNodePrice()
|
|
308
|
+
nodePrice: composeNodePrice(),
|
|
309
|
+
isUseTranslatedValue: true
|
|
292
310
|
})}
|
|
293
311
|
</gp-product-button>
|
|
294
312
|
${RenderIf(isLocalEnv, `<script ${getSettingPreloadData('class="gps-link" delay', 'src')}="{{ 'gp-product-button.js' | asset_url }}" defer="defer"></script>`, `<script ${getSettingPreloadData('class="gps-link" delay', 'src')}="${baseAssetURL}/assets-v2/gp-product-button.js?v={{ shop.metafields.GEMPAGES.ASSETS_VERSION }}" defer="defer"></script>`)}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { getLiquidForAppBlock } from '../helpers/thirdParty.js';
|
|
1
2
|
import { template, makeStyleResponsive } from '@gem-sdk/core';
|
|
2
3
|
|
|
3
4
|
const Releasit = ({ setting, advanced })=>{
|
|
4
|
-
const { align } = setting ?? {};
|
|
5
|
-
return template`
|
|
5
|
+
const { align, version, appBlockId } = setting ?? {};
|
|
6
|
+
return version === 'v2' ? getLiquidForAppBlock(appBlockId, align, `${advanced?.cssClass ?? ''}!gp-block`) : template`
|
|
6
7
|
<div
|
|
7
8
|
class="${advanced?.cssClass}"
|
|
8
9
|
style="${{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var BoldProductOptionsConfig = {
|
|
2
2
|
id: 'bold-product-options',
|
|
3
|
-
label: '
|
|
4
|
-
logoUrl: 'https://
|
|
3
|
+
label: 'SC Product Options',
|
|
4
|
+
logoUrl: 'https://cdn.shopify.com/app-store/listing_images/9a0bf1159f79c6ab0660ec422f350445/icon/CP2Uwo_GuYIDEAE=.png',
|
|
5
5
|
tag: 'BoldProductOptions'
|
|
6
6
|
};
|
|
7
7
|
|
|
@@ -7,6 +7,11 @@ const config = {
|
|
|
7
7
|
editorConfigs: {
|
|
8
8
|
component: {
|
|
9
9
|
isThirdParty: true
|
|
10
|
+
},
|
|
11
|
+
placeholder: {
|
|
12
|
+
flowTag: [
|
|
13
|
+
'Product'
|
|
14
|
+
]
|
|
10
15
|
}
|
|
11
16
|
},
|
|
12
17
|
presets: [
|
|
@@ -35,6 +40,16 @@ const config = {
|
|
|
35
40
|
{
|
|
36
41
|
id: 'setting',
|
|
37
42
|
controls: [
|
|
43
|
+
{
|
|
44
|
+
id: 'appBlockId',
|
|
45
|
+
type: 'input',
|
|
46
|
+
default: ''
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: 'productHandle',
|
|
50
|
+
type: 'input',
|
|
51
|
+
default: ''
|
|
52
|
+
},
|
|
38
53
|
{
|
|
39
54
|
id: 'install',
|
|
40
55
|
type: 'open-link',
|
|
@@ -51,6 +66,38 @@ const config = {
|
|
|
51
66
|
href: 'https://admin.shopify.com/?redirect=/apps/releasit-cod-order-form',
|
|
52
67
|
appName: ReleasitConfig.label
|
|
53
68
|
},
|
|
69
|
+
{
|
|
70
|
+
id: 'version',
|
|
71
|
+
label: 'Choose version',
|
|
72
|
+
type: 'select',
|
|
73
|
+
default: 'v1',
|
|
74
|
+
options: [
|
|
75
|
+
{
|
|
76
|
+
label: 'V1',
|
|
77
|
+
value: 'v1'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
label: 'V2',
|
|
81
|
+
value: 'v2'
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'widgetTypeV2',
|
|
87
|
+
label: 'Choose widget',
|
|
88
|
+
type: 'select',
|
|
89
|
+
default: 'button-app-block',
|
|
90
|
+
options: [
|
|
91
|
+
{
|
|
92
|
+
label: 'Releasit button',
|
|
93
|
+
value: 'button-app-block'
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
label: 'Releasit embedded form',
|
|
97
|
+
value: 'form-app-block'
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
54
101
|
{
|
|
55
102
|
id: 'align',
|
|
56
103
|
label: 'Alignment',
|
|
@@ -91,12 +138,22 @@ const config = {
|
|
|
91
138
|
{
|
|
92
139
|
type: 'control',
|
|
93
140
|
label: {
|
|
94
|
-
en: 'Choose
|
|
141
|
+
en: 'Choose version'
|
|
95
142
|
},
|
|
96
143
|
setting: {
|
|
97
|
-
id: '
|
|
144
|
+
id: 'version'
|
|
98
145
|
}
|
|
99
146
|
},
|
|
147
|
+
{
|
|
148
|
+
type: 'control',
|
|
149
|
+
label: {
|
|
150
|
+
en: 'Choose widget'
|
|
151
|
+
},
|
|
152
|
+
setting: {
|
|
153
|
+
id: 'widgetTypeV2'
|
|
154
|
+
},
|
|
155
|
+
condition: 'version === "v2"'
|
|
156
|
+
},
|
|
100
157
|
{
|
|
101
158
|
type: 'control',
|
|
102
159
|
setting: {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1577,6 +1577,8 @@ type ProductButtonProps = BasePropsWrap<{
|
|
|
1577
1577
|
translate?: string;
|
|
1578
1578
|
outOfStockLabel?: string;
|
|
1579
1579
|
unavailableLabel?: string;
|
|
1580
|
+
labelUnavailableTranslate?: string;
|
|
1581
|
+
labelOutOfStockTranslate?: string;
|
|
1580
1582
|
actionEffect?: 'open-cart-drawer' | 'buy-now' | 'continue-shopping' | 'go-to-url';
|
|
1581
1583
|
customURL?: {
|
|
1582
1584
|
link?: string;
|
|
@@ -2875,6 +2877,10 @@ type ReleasitProps = BaseProps<{
|
|
|
2875
2877
|
align?: ObjectDevices<AlignProp>;
|
|
2876
2878
|
openApp?: any;
|
|
2877
2879
|
install?: any;
|
|
2880
|
+
version?: 'v1' | 'v2';
|
|
2881
|
+
widgetTypeV2?: string;
|
|
2882
|
+
appBlockId?: string;
|
|
2883
|
+
productHandle?: string;
|
|
2878
2884
|
}>;
|
|
2879
2885
|
declare const Releasit$1: React.FC<ReleasitProps>;
|
|
2880
2886
|
|
|
@@ -5429,10 +5435,11 @@ type ButtonLiquidProps = MixedProps & ButtonProps & {
|
|
|
5429
5435
|
advanced?: any;
|
|
5430
5436
|
pageContext?: PageContext;
|
|
5431
5437
|
nodePrice?: string | null;
|
|
5438
|
+
isUseTranslatedValue?: boolean;
|
|
5432
5439
|
} & {
|
|
5433
5440
|
dataId?: string;
|
|
5434
5441
|
};
|
|
5435
|
-
declare const Button: ({ className, builderProps, customAttrs, pageContext, setting, styles, style, wrapClassName, advanced, nodePrice, dataId, }: ButtonLiquidProps) => string;
|
|
5442
|
+
declare const Button: ({ className, builderProps, customAttrs, pageContext, setting, styles, style, wrapClassName, advanced, nodePrice, dataId, isUseTranslatedValue, }: ButtonLiquidProps) => string;
|
|
5436
5443
|
|
|
5437
5444
|
declare const Coupon: ({ setting, builderProps, builderAttrs, style, styles, advanced, pageContext, }: _gem_sdk_core.BaseProps<{
|
|
5438
5445
|
copyContent?: string | undefined;
|
|
@@ -5684,6 +5691,8 @@ declare const ProductButton: ({ setting, builderProps, builderAttrs, style, styl
|
|
|
5684
5691
|
translate?: string | undefined;
|
|
5685
5692
|
outOfStockLabel?: string | undefined;
|
|
5686
5693
|
unavailableLabel?: string | undefined;
|
|
5694
|
+
labelUnavailableTranslate?: string | undefined;
|
|
5695
|
+
labelOutOfStockTranslate?: string | undefined;
|
|
5687
5696
|
actionEffect?: "buy-now" | "open-cart-drawer" | "continue-shopping" | "go-to-url" | undefined;
|
|
5688
5697
|
customURL?: {
|
|
5689
5698
|
link?: string | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/components",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.12",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"format": "prettier --write \"./src/**/*.{ts,tsx}\""
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@gem-sdk/core": "2.4.
|
|
24
|
+
"@gem-sdk/core": "2.4.11",
|
|
25
25
|
"@gem-sdk/styles": "2.4.8",
|
|
26
26
|
"@types/react-transition-group": "^4.4.5"
|
|
27
27
|
},
|