@useinsider/guido 2.1.0-beta.3c29284 → 2.1.0-beta.425dfd0
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/@types/config/schemas.js +17 -17
- package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
- package/dist/components/organisms/header/LeftSlot.vue2.js +25 -20
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +38 -32
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +38 -32
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
- package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
- package/dist/extensions/Blocks/Recommendation/control.js +91 -61
- package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
- package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
- package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
- package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +39 -44
- package/dist/package.json.js +1 -1
- package/dist/src/@types/config/schemas.d.ts +2 -2
- package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
- package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
- package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
- package/dist/static/styles/components/wide-panel.css.js +0 -4
- package/dist/static/styles/customEditorStyle.css.js +13 -0
- package/package.json +2 -2
- package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
- package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
- package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { object as o, number as b, optional as e, string as t, pipe as u, picklist as n, custom as d, boolean as c, array as a, minLength as p, literal as r, variant as
|
|
1
|
+
import { object as o, number as b, optional as e, string as t, pipe as u, picklist as n, custom as d, boolean as c, array as a, minLength as p, literal as r, variant as k } from "../../node_modules/valibot/dist/index.js";
|
|
2
2
|
const m = {
|
|
3
3
|
/** Promotional/marketing emails */
|
|
4
4
|
PROMOTIONAL: 1,
|
|
@@ -11,7 +11,7 @@ const m = {
|
|
|
11
11
|
ARCHITECT: 49,
|
|
12
12
|
/** Unsubscribe page builder */
|
|
13
13
|
UNSUBSCRIBE_PAGES: 97
|
|
14
|
-
},
|
|
14
|
+
}, S = o({
|
|
15
15
|
/** Unique identifier for the template being edited */
|
|
16
16
|
templateId: u(
|
|
17
17
|
t(),
|
|
@@ -24,7 +24,7 @@ const m = {
|
|
|
24
24
|
),
|
|
25
25
|
/** Optional variation ID for A/B testing */
|
|
26
26
|
variationId: e(t())
|
|
27
|
-
}),
|
|
27
|
+
}), h = o({
|
|
28
28
|
/** Partner/organization name (required) */
|
|
29
29
|
name: u(
|
|
30
30
|
t(),
|
|
@@ -83,7 +83,7 @@ const m = {
|
|
|
83
83
|
/** Locale for the editor UI */
|
|
84
84
|
locale: e(t(), "en"),
|
|
85
85
|
/** Path to translations object */
|
|
86
|
-
translationsPath: e(t(), "window.trans.
|
|
86
|
+
translationsPath: e(t(), "window.trans[Object.keys(window.trans)[0]]"),
|
|
87
87
|
/** Migration date for template compatibility */
|
|
88
88
|
migrationDate: e(b(), 1759696858),
|
|
89
89
|
/** Email header settings */
|
|
@@ -130,7 +130,7 @@ const m = {
|
|
|
130
130
|
"unsubscribe-block",
|
|
131
131
|
"coupon-block",
|
|
132
132
|
"items-block"
|
|
133
|
-
]),
|
|
133
|
+
]), O = o({
|
|
134
134
|
/** Default blocks to exclude from the editor */
|
|
135
135
|
excludeDefaults: e(
|
|
136
136
|
a(A),
|
|
@@ -148,7 +148,7 @@ const m = {
|
|
|
148
148
|
description: e(t()),
|
|
149
149
|
/** Priority for rule ordering (lower = earlier) */
|
|
150
150
|
priority: b()
|
|
151
|
-
}),
|
|
151
|
+
}), E = o({
|
|
152
152
|
...l.entries,
|
|
153
153
|
type: r("replace"),
|
|
154
154
|
/** String to search for */
|
|
@@ -157,7 +157,7 @@ const m = {
|
|
|
157
157
|
replacement: t(),
|
|
158
158
|
/** Replace all occurrences (default: false) */
|
|
159
159
|
replaceAll: e(c())
|
|
160
|
-
}),
|
|
160
|
+
}), N = o({
|
|
161
161
|
...l.entries,
|
|
162
162
|
type: r("regex"),
|
|
163
163
|
/** Regex pattern string */
|
|
@@ -179,9 +179,9 @@ const m = {
|
|
|
179
179
|
(i) => typeof i == "function",
|
|
180
180
|
"processor must be a function"
|
|
181
181
|
)
|
|
182
|
-
}), x =
|
|
182
|
+
}), x = k("type", [
|
|
183
|
+
E,
|
|
183
184
|
N,
|
|
184
|
-
O,
|
|
185
185
|
L,
|
|
186
186
|
v
|
|
187
187
|
]), B = o({
|
|
@@ -203,9 +203,9 @@ const m = {
|
|
|
203
203
|
}), D = o({
|
|
204
204
|
// Required sections
|
|
205
205
|
/** Identity configuration (required) */
|
|
206
|
-
identity:
|
|
206
|
+
identity: S,
|
|
207
207
|
/** Partner configuration (required) */
|
|
208
|
-
partner:
|
|
208
|
+
partner: h,
|
|
209
209
|
// Optional sections (with defaults)
|
|
210
210
|
/** Template content and presets */
|
|
211
211
|
template: e(R, {}),
|
|
@@ -216,14 +216,14 @@ const m = {
|
|
|
216
216
|
/** Feature toggles */
|
|
217
217
|
features: e(T, {}),
|
|
218
218
|
/** Block configuration */
|
|
219
|
-
blocks: e(
|
|
219
|
+
blocks: e(O, {}),
|
|
220
220
|
/** Compiler configuration */
|
|
221
221
|
compiler: e(B, {}),
|
|
222
222
|
/** Callbacks and event handlers */
|
|
223
223
|
callbacks: e(P, {})
|
|
224
224
|
});
|
|
225
225
|
export {
|
|
226
|
-
|
|
226
|
+
O as BlocksSchema,
|
|
227
227
|
P as CallbacksSchema,
|
|
228
228
|
x as CompilerRuleSchema,
|
|
229
229
|
B as CompilerSchema,
|
|
@@ -235,13 +235,13 @@ export {
|
|
|
235
235
|
f as EmailHeaderSchema,
|
|
236
236
|
T as FeaturesSchema,
|
|
237
237
|
D as GuidoConfigSchema,
|
|
238
|
-
|
|
238
|
+
S as IdentitySchema,
|
|
239
239
|
m as MessageType,
|
|
240
|
-
|
|
240
|
+
h as PartnerSchema,
|
|
241
241
|
s as ProductType,
|
|
242
|
-
|
|
242
|
+
N as RegexRuleSchema,
|
|
243
243
|
L as RemoveRuleSchema,
|
|
244
|
-
|
|
244
|
+
E as ReplaceRuleSchema,
|
|
245
245
|
R as TemplateSchema,
|
|
246
246
|
I as UISchema
|
|
247
247
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import
|
|
1
|
+
import o from "./LeftSlot.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
var
|
|
5
|
-
var e = this,
|
|
6
|
-
return
|
|
7
|
-
},
|
|
8
|
-
|
|
9
|
-
r,
|
|
3
|
+
import n from "../../../_virtual/_plugin-vue2_normalizer.js";
|
|
4
|
+
var a = function() {
|
|
5
|
+
var e = this, s = e._self._c, t = e._self._setupProxy;
|
|
6
|
+
return s("div", { staticClass: "d-f a-i-c" }, [s(t.InButtonV2, { attrs: { id: "guido__back-button", "left-icon": "line-arrow-left", styling: "ghost", type: "secondary", "disabled-status": t.isBackButtonDisabled, "label-text": t.backButtonLabel, "skeleton-sizing": { width: 150, height: 26 }, "skeleton-status": t.editorStore.loadingStatus }, on: { click: t.handleBackClick } })], 1);
|
|
7
|
+
}, i = [], r = /* @__PURE__ */ n(
|
|
8
|
+
o,
|
|
10
9
|
a,
|
|
10
|
+
i,
|
|
11
11
|
!1,
|
|
12
12
|
null,
|
|
13
|
-
"
|
|
13
|
+
"cd76c125"
|
|
14
14
|
);
|
|
15
|
-
const
|
|
15
|
+
const f = r.exports;
|
|
16
16
|
export {
|
|
17
|
-
|
|
17
|
+
f as default
|
|
18
18
|
};
|
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useConfig as
|
|
3
|
-
import { useBack as
|
|
4
|
-
import { usePreviewMode as
|
|
5
|
-
import { useTranslations as
|
|
6
|
-
import { useVersionHistoryApi as
|
|
7
|
-
import { useEditorStore as
|
|
8
|
-
import { InButtonV2 as
|
|
9
|
-
|
|
1
|
+
import { defineComponent as l, computed as d, ref as p } from "vue";
|
|
2
|
+
import { useConfig as k } from "../../../composables/useConfig.js";
|
|
3
|
+
import { useBack as B } from "../../../composables/useGuidoActions.js";
|
|
4
|
+
import { usePreviewMode as b } from "../../../composables/usePreviewMode.js";
|
|
5
|
+
import { useTranslations as v } from "../../../composables/useTranslations.js";
|
|
6
|
+
import { useVersionHistoryApi as _ } from "../../../composables/useVersionHistoryApi.js";
|
|
7
|
+
import { useEditorStore as V } from "../../../stores/editor.js";
|
|
8
|
+
import { InButtonV2 as g } from "@useinsider/design-system-vue";
|
|
9
|
+
import { useDebounceFn as w } from "../../../node_modules/@vueuse/shared/index.js";
|
|
10
|
+
const D = /* @__PURE__ */ l({
|
|
10
11
|
__name: "LeftSlot",
|
|
11
|
-
setup(
|
|
12
|
-
const e =
|
|
13
|
-
var
|
|
14
|
-
return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (
|
|
15
|
-
})
|
|
16
|
-
return { __sfc: !0, editorStore: e, handleBack: r, closeVersionHistory: i, closePreviewMode: n, trans: o, config: t, backButtonLabel: c, handleBackClick: () => {
|
|
12
|
+
setup(y) {
|
|
13
|
+
const e = V(), i = B(), { closeVersionHistory: n } = _(), { closePreviewMode: s } = b(), o = v(), { config: t } = k(), f = d(() => {
|
|
14
|
+
var u, m;
|
|
15
|
+
return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (m = (u = t.value) == null ? void 0 : u.ui) != null && m.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design");
|
|
16
|
+
}), r = p(!1), c = () => {
|
|
17
17
|
if (e.isVersionHistoryOpen) {
|
|
18
|
-
|
|
18
|
+
n();
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
if (e.isPreviewModeOpen) {
|
|
22
|
-
|
|
22
|
+
s();
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
e.loadingStatus = !0,
|
|
26
|
-
},
|
|
25
|
+
e.loadingStatus = !0, i();
|
|
26
|
+
}, a = w(() => {
|
|
27
|
+
c(), r.value = !1;
|
|
28
|
+
}, 500);
|
|
29
|
+
return { __sfc: !0, editorStore: e, handleBack: i, closeVersionHistory: n, closePreviewMode: s, trans: o, config: t, backButtonLabel: f, isBackButtonDisabled: r, executeBackAction: c, debouncedBackAction: a, handleBackClick: () => {
|
|
30
|
+
r.value = !0, a();
|
|
31
|
+
}, InButtonV2: g };
|
|
27
32
|
}
|
|
28
33
|
});
|
|
29
34
|
export {
|
|
30
|
-
|
|
35
|
+
D as default
|
|
31
36
|
};
|
|
@@ -142,10 +142,19 @@ class S extends I {
|
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
_listenToFormUpdates() {
|
|
145
|
-
this.api.onValueChanged(i.PRODUCT_IMAGE, (t) =>
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
145
|
+
this.api.onValueChanged(i.PRODUCT_IMAGE, (t) => {
|
|
146
|
+
this._onProductImageChange(t);
|
|
147
|
+
}), this.api.onValueChanged(i.PRODUCT_NAME, (t) => {
|
|
148
|
+
this._onProductNameChange(t);
|
|
149
|
+
}), this.api.onValueChanged(i.PRODUCT_QUANTITY, (t) => {
|
|
150
|
+
this._onProductQuantityChange(t);
|
|
151
|
+
}), this.api.onValueChanged(i.PRODUCT_PRICE, (t) => {
|
|
152
|
+
this._onProductPriceChange(t);
|
|
153
|
+
}), this.api.onValueChanged(i.PRODUCT_ORIGINAL_PRICE, (t) => {
|
|
154
|
+
this._onProductOriginalPriceChange(t);
|
|
155
|
+
}), this.api.onValueChanged(i.PRODUCT_BUTTON, (t) => {
|
|
156
|
+
this._onProductButtonChange(t);
|
|
157
|
+
});
|
|
149
158
|
}
|
|
150
159
|
_onProductImageChange(t) {
|
|
151
160
|
var o;
|
|
@@ -1,76 +1,82 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { ModificationDescription as
|
|
1
|
+
var C = Object.defineProperty;
|
|
2
|
+
var A = (n, r, e) => r in n ? C(n, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[r] = e;
|
|
3
|
+
var _ = (n, r, e) => A(n, typeof r != "symbol" ? r + "" : r, e);
|
|
4
|
+
import { ModificationDescription as L, UIElementType as m, UEAttr as g } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
5
5
|
import { CommonControl as h } from "../../../common-control.js";
|
|
6
|
-
import { ItemsBlockControlId as
|
|
7
|
-
import { productPairs as
|
|
8
|
-
import { useItemsBlockStore as
|
|
9
|
-
import { getItemsBlockConfig as
|
|
10
|
-
const
|
|
6
|
+
import { ItemsBlockControlId as l, ItemsBlockId as D } from "../../enums/controlEnums.js";
|
|
7
|
+
import { productPairs as I } from "../../enums/productEnums.js";
|
|
8
|
+
import { useItemsBlockStore as O } from "../../store/items-block.js";
|
|
9
|
+
import { getItemsBlockConfig as u, setItemsBlockConfig as f } from "../../utils/nodeConfigUtils.js";
|
|
10
|
+
const N = l.PRICE_FORMATTED_PRICE, c = {
|
|
11
11
|
FORMATTED_PRICE: "formattedPrice"
|
|
12
12
|
};
|
|
13
|
-
class
|
|
13
|
+
class y extends h {
|
|
14
14
|
constructor() {
|
|
15
15
|
super(...arguments);
|
|
16
|
-
|
|
16
|
+
_(this, "store", O());
|
|
17
17
|
}
|
|
18
18
|
getId() {
|
|
19
|
-
return
|
|
19
|
+
return N;
|
|
20
20
|
}
|
|
21
21
|
getTemplate() {
|
|
22
22
|
return `
|
|
23
|
-
<div class="container ${
|
|
23
|
+
<div class="container ${l.PRICE_FORMATTED_PRICE}">
|
|
24
24
|
${this._getFormattedPrice()}
|
|
25
25
|
</div>
|
|
26
26
|
`;
|
|
27
27
|
}
|
|
28
28
|
onRender() {
|
|
29
|
-
this.api.updateValues({ [
|
|
29
|
+
this.api.updateValues({ [c.FORMATTED_PRICE]: this.store.formattedPrice }), this.api.onValueChanged(c.FORMATTED_PRICE, (e) => {
|
|
30
30
|
this._onFormattedPriceChange(e);
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
onTemplateNodeUpdated(e) {
|
|
34
34
|
super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
|
|
35
35
|
() => {
|
|
36
|
-
const
|
|
37
|
-
|
|
36
|
+
const o = u(this.currentNode);
|
|
37
|
+
o && this.store.setFormattedPrice(o.priceFormatted ?? !0);
|
|
38
38
|
},
|
|
39
39
|
() => {
|
|
40
|
-
this.api.updateValues({ [
|
|
40
|
+
this.api.updateValues({ [c.FORMATTED_PRICE]: this.store.formattedPrice });
|
|
41
41
|
}
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
_onFormattedPriceChange(e) {
|
|
45
|
-
if (console.debug("Formatted price changed to: ", e), this.store.setFormattedPrice(e),
|
|
45
|
+
if (console.debug("Formatted price changed to: ", e), this.store.setFormattedPrice(e), f(this.currentNode, this.api, { priceFormatted: e }), !this.currentNode)
|
|
46
46
|
return;
|
|
47
|
-
const { itemsType:
|
|
47
|
+
const { itemsType: o, singlePrice: i } = this.store, t = I.PAIRS_FOR_EXTENSION.price[o], s = I.PAIRS_FOR_EXTENSION.originalPrice[o], [E, R] = e ? [
|
|
48
|
+
i ? t.DEFAULT_SINGLE_PRICE : t.DEFAULT_PRICE,
|
|
49
|
+
i ? t.DEFAULT_SINGLE_PRICE_FORMATTED : t.DEFAULT_PRICE_FORMATTED
|
|
50
|
+
] : [
|
|
51
|
+
i ? t.DEFAULT_SINGLE_PRICE_FORMATTED : t.DEFAULT_PRICE_FORMATTED,
|
|
52
|
+
i ? t.DEFAULT_SINGLE_PRICE : t.DEFAULT_PRICE
|
|
53
|
+
], d = i ? s.DEFAULT_SINGLE_PRICE : s.DEFAULT_PRICE, P = i ? s.DEFAULT_SINGLE_PRICE_FORMATTED : s.DEFAULT_PRICE_FORMATTED, [p, F] = e ? [d, P] : [P, d];
|
|
48
54
|
this._updatePriceBlock(
|
|
49
55
|
this.currentNode,
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
E,
|
|
57
|
+
R,
|
|
52
58
|
"price"
|
|
53
59
|
);
|
|
54
|
-
const
|
|
55
|
-
|
|
60
|
+
const a = this.currentNode.closest(".items-block"), T = a == null ? void 0 : a.querySelector(`[esd-extension-block-id="${D.ORIGINAL_PRICE}"]`);
|
|
61
|
+
T && this._updatePriceBlock(T, p, F, "original price");
|
|
56
62
|
}
|
|
57
|
-
_updatePriceBlock(e,
|
|
58
|
-
const
|
|
59
|
-
this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(
|
|
63
|
+
_updatePriceBlock(e, o, i, t) {
|
|
64
|
+
const s = e.getInnerHTML().replace(o, i), E = `Updated ${t} to ${this.store.formattedPrice ? "formatted" : "unformatted"}`;
|
|
65
|
+
this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(s).apply(new L(E));
|
|
60
66
|
}
|
|
61
67
|
_getFormattedPrice() {
|
|
62
68
|
return `
|
|
63
69
|
<div class="display-flex align-items-center justify-content-between">
|
|
64
|
-
<${
|
|
65
|
-
${
|
|
70
|
+
<${m.LABEL}
|
|
71
|
+
${g.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
|
|
66
72
|
>
|
|
67
|
-
</${
|
|
68
|
-
${this._GuToggle(
|
|
73
|
+
</${m.LABEL}>
|
|
74
|
+
${this._GuToggle(c.FORMATTED_PRICE)}
|
|
69
75
|
</div>
|
|
70
76
|
`;
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
79
|
export {
|
|
74
|
-
|
|
75
|
-
|
|
80
|
+
N as CONTROL_BLOCK_ID,
|
|
81
|
+
y as PriceFormattedPriceControl
|
|
76
82
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var x = Object.defineProperty;
|
|
2
|
-
var H = (
|
|
3
|
-
var O = (
|
|
4
|
-
import { UEAttr as C, ModificationDescription as
|
|
2
|
+
var H = (E, h, e) => h in E ? x(E, h, { enumerable: !0, configurable: !0, writable: !0, value: e }) : E[h] = e;
|
|
3
|
+
var O = (E, h, e) => H(E, typeof h != "symbol" ? h + "" : h, e);
|
|
4
|
+
import { UEAttr as C, ModificationDescription as u } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
5
5
|
import { CommonControl as k } from "../../common-control.js";
|
|
6
6
|
import { ItemsBlockId as m } from "../enums/controlEnums.js";
|
|
7
|
-
import { productPairs as
|
|
7
|
+
import { productPairs as _, templateFirstLine as b } from "../enums/productEnums.js";
|
|
8
8
|
import { ItemTypeOptions as R, OrientationOptions as U, ItemInCartOptions as N, SETTINGS_ENUMS as S, DefaultConfigValues as P } from "../enums/settingsEnums.js";
|
|
9
9
|
import F from "../layouts/horizontal.html.js";
|
|
10
10
|
import $ from "../layouts/vertical.html.js";
|
|
@@ -168,23 +168,23 @@ class J extends k {
|
|
|
168
168
|
currencySymbol: r,
|
|
169
169
|
currencyLocation: n,
|
|
170
170
|
formattedPrice: o
|
|
171
|
-
})).apply(new
|
|
171
|
+
})).apply(new u("Updated template"));
|
|
172
172
|
}
|
|
173
173
|
_getTemplateData() {
|
|
174
174
|
const { itemsType: e, itemIds: t, formattedPrice: i } = this.store, r = N[e].findIndex((o) => o.value === t), n = r > -1 ? r : 0;
|
|
175
175
|
return {
|
|
176
|
-
imageSrc:
|
|
177
|
-
name:
|
|
178
|
-
price: i ?
|
|
179
|
-
originalPrice: i ?
|
|
180
|
-
quantity:
|
|
181
|
-
button:
|
|
176
|
+
imageSrc: _.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[n],
|
|
177
|
+
name: _.PAIRS_FOR_EXTENSION.name[e].DEFAULT[n],
|
|
178
|
+
price: i ? _.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE_FORMATTED : _.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE,
|
|
179
|
+
originalPrice: i ? _.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE_FORMATTED : _.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE,
|
|
180
|
+
quantity: _.PAIRS_FOR_EXTENSION.quantity[e].DEFAULT,
|
|
181
|
+
button: _.PAIRS_FOR_EXTENSION.button[e].DEFAULT_LABEL
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
184
|
_updateImageSrc(e) {
|
|
185
185
|
var i;
|
|
186
186
|
const t = (i = this.currentNode) == null ? void 0 : i.querySelector(`[esd-extension-block-id="${m.IMAGE}"] img`);
|
|
187
|
-
t && this.api.getDocumentModifier().modifyHtml(t).setAttribute("src", e).apply(new
|
|
187
|
+
t && this.api.getDocumentModifier().modifyHtml(t).setAttribute("src", e).apply(new u("Updated image src"));
|
|
188
188
|
}
|
|
189
189
|
_updateName(e) {
|
|
190
190
|
var n;
|
|
@@ -193,22 +193,22 @@ class J extends k {
|
|
|
193
193
|
return;
|
|
194
194
|
const i = t.getInnerText().trim();
|
|
195
195
|
let r = t.getInnerHTML();
|
|
196
|
-
r = r.replace(i, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(r).apply(new
|
|
196
|
+
r = r.replace(i, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(r).apply(new u("Updated name"));
|
|
197
197
|
}
|
|
198
198
|
_updatePrice(e) {
|
|
199
|
-
var
|
|
200
|
-
const t = (
|
|
199
|
+
var I;
|
|
200
|
+
const t = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
|
|
201
201
|
if (!t)
|
|
202
202
|
return;
|
|
203
203
|
const i = this._getParagraphFromBlock(t);
|
|
204
204
|
if (!i)
|
|
205
205
|
return;
|
|
206
|
-
const r = i.getInnerHTML() || "", n = i.getInnerText() || "", { currencySymbol: o, currencyLocation: l } = this.store, c = (o == null ? void 0 : o.trim()) || "", s = this._removeCurrencySymbol(n, c),
|
|
207
|
-
this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(
|
|
206
|
+
const r = i.getInnerHTML() || "", n = i.getInnerText() || "", { currencySymbol: o, currencyLocation: l } = this.store, c = (o == null ? void 0 : o.trim()) || "", s = this._removeCurrencySymbol(n, c), T = this._replacePriceNumber(s, e), p = this._buildPriceContent(T, c, l), d = r.replace(n, p);
|
|
207
|
+
this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(d).apply(new u("Updated price"));
|
|
208
208
|
}
|
|
209
209
|
_updateOriginalPrice(e) {
|
|
210
|
-
var
|
|
211
|
-
const t = (
|
|
210
|
+
var g;
|
|
211
|
+
const t = (g = this.currentNode) == null ? void 0 : g.querySelector(
|
|
212
212
|
`[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
|
|
213
213
|
);
|
|
214
214
|
if (!t)
|
|
@@ -219,8 +219,8 @@ class J extends k {
|
|
|
219
219
|
const r = i.querySelector("s");
|
|
220
220
|
if (!r)
|
|
221
221
|
return;
|
|
222
|
-
const n = r.getInnerHTML() || "", o = r.getInnerText() || "", { currencySymbol: l, currencyLocation: c } = this.store, s = (l == null ? void 0 : l.trim()) || "",
|
|
223
|
-
this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(
|
|
222
|
+
const n = r.getInnerHTML() || "", o = r.getInnerText() || "", { currencySymbol: l, currencyLocation: c } = this.store, s = (l == null ? void 0 : l.trim()) || "", T = this._removeCurrencySymbol(o, s), p = this._replacePriceNumber(T, e), d = this._buildPriceContent(p, s, c), y = `<s>${n.replace(o, d)}</s>`;
|
|
223
|
+
this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(y).apply(new u("Updated original price"));
|
|
224
224
|
}
|
|
225
225
|
_updateQuantity(e) {
|
|
226
226
|
var d;
|
|
@@ -232,22 +232,28 @@ class J extends k {
|
|
|
232
232
|
return;
|
|
233
233
|
const c = l.getInnerText().trim();
|
|
234
234
|
let s = l.getInnerHTML();
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
function T(I, y, g) {
|
|
236
|
+
return I.replace(
|
|
237
|
+
new RegExp(`(>\\s*)${y}(\\s*<)`, "g"),
|
|
238
|
+
`$1${g}$2`
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
s = T(s, c, e);
|
|
242
|
+
const p = this.api.getDocumentModifier();
|
|
243
|
+
p.modifyHtml(l).setInnerHtml(s), p.modifyHtml(o).setStyle("display", n ? "table-cell" : "none"), p.apply(new u("Updated quantity"));
|
|
238
244
|
}
|
|
239
245
|
_reOrderTemplate() {
|
|
240
|
-
var
|
|
241
|
-
const e = (
|
|
246
|
+
var T, p, d, I, y, g;
|
|
247
|
+
const e = (T = this.currentNode) == null ? void 0 : T.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), t = (p = this.currentNode) == null ? void 0 : p.querySelector(`[esd-extension-block-id="${m.NAME}"]`), i = (d = this.currentNode) == null ? void 0 : d.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (I = this.currentNode) == null ? void 0 : I.querySelector(
|
|
242
248
|
`[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
|
|
243
|
-
), n = (
|
|
249
|
+
), n = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`);
|
|
244
250
|
if (!e || !t || !i || !r || !n || !o)
|
|
245
251
|
return;
|
|
246
252
|
const { orientation: l } = this.store, c = l === S.ORIENTATION.VERTICAL;
|
|
247
253
|
let s = c ? $ : F;
|
|
248
|
-
this.api.getDocumentModifier().modifyHtml(e.querySelector("img")).setAttribute("width", P.productImageWidth).setAttribute("height", P.productImageWidth).apply(new
|
|
254
|
+
this.api.getDocumentModifier().modifyHtml(e.querySelector("img")).setAttribute("width", P.productImageWidth).setAttribute("height", P.productImageWidth).apply(new u("Updated image width")), setTimeout(() => {
|
|
249
255
|
const M = L(i.getOuterHTML()), D = L(r.getOuterHTML());
|
|
250
|
-
s = s.replace("{-{-TEMPLATE_FIRST_LINE-}-}", c ? b : "").replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", t.getOuterHTML()).replaceAll("{-{-PRODUCT_PRICE-}-}", M).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", D).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()), s = s.trim().replace(b, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(s).apply(new
|
|
256
|
+
s = s.replace("{-{-TEMPLATE_FIRST_LINE-}-}", c ? b : "").replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", t.getOuterHTML()).replaceAll("{-{-PRODUCT_PRICE-}-}", M).replaceAll("{-{-PRODUCT_ORIGINAL_PRICE-}-}", D).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()), s = s.trim().replace(b, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(s).apply(new u("Reordered template"));
|
|
251
257
|
}, 50);
|
|
252
258
|
}
|
|
253
259
|
_updateDataTypeAttributes(e) {
|
|
@@ -257,7 +263,7 @@ class J extends k {
|
|
|
257
263
|
t && i.modifyHtml(t).setAttribute("data-type", e), this.currentNode.querySelectorAll("[data-type]").forEach((n) => {
|
|
258
264
|
const o = n;
|
|
259
265
|
i.modifyHtml(o).setAttribute("data-type", e);
|
|
260
|
-
}), i.apply(new
|
|
266
|
+
}), i.apply(new u("Updated data-type attribute"));
|
|
261
267
|
}
|
|
262
268
|
_updateDataNumberAttributes(e) {
|
|
263
269
|
if (!this.currentNode)
|
|
@@ -277,7 +283,7 @@ class J extends k {
|
|
|
277
283
|
n && o.modifyHtml(n).setAttribute("data-number", r), this.currentNode.querySelectorAll("[data-number]").forEach((c) => {
|
|
278
284
|
const s = c;
|
|
279
285
|
o.modifyHtml(s).setAttribute("data-number", r);
|
|
280
|
-
}), o.apply(new
|
|
286
|
+
}), o.apply(new u("Updated data-number attribute"));
|
|
281
287
|
}
|
|
282
288
|
_reFillTemplate() {
|
|
283
289
|
const e = this._getTemplateData();
|
|
@@ -294,7 +300,7 @@ class J extends k {
|
|
|
294
300
|
if (!t)
|
|
295
301
|
return;
|
|
296
302
|
const i = this.store.orientation === S.ORIENTATION.HORIZONTAL, r = this.store.nameTrimming;
|
|
297
|
-
this.api.getDocumentModifier().modifyHtml(t).setStyle("overflow", "hidden").setStyle("white-space", r ? "nowrap" : "normal").setStyle("text-overflow", r ? "ellipsis" : "unset").setStyle("max-width", i ? "130px" : "520px").setStyle("width", i ? "130px" : "520px").apply(new
|
|
303
|
+
this.api.getDocumentModifier().modifyHtml(t).setStyle("overflow", "hidden").setStyle("white-space", r ? "nowrap" : "normal").setStyle("text-overflow", r ? "ellipsis" : "unset").setStyle("max-width", i ? "130px" : "520px").setStyle("width", i ? "130px" : "520px").apply(new u("Recalculated trimming after orientation change"));
|
|
298
304
|
}
|
|
299
305
|
_getParagraphFromBlock(e) {
|
|
300
306
|
return e.querySelector("p");
|