@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.
Files changed (112) hide show
  1. package/dist/@types/config/schemas.js +17 -17
  2. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  3. package/dist/components/organisms/header/LeftSlot.vue2.js +25 -20
  4. package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
  5. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +38 -32
  6. package/dist/extensions/Blocks/Items/controls/settingsControl.js +38 -32
  7. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  8. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  9. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  10. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  11. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  12. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  13. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  14. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  15. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  16. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  17. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  18. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  19. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  20. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  21. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  22. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  23. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  24. package/dist/guido.css +1 -1
  25. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +39 -44
  26. package/dist/package.json.js +1 -1
  27. package/dist/src/@types/config/schemas.d.ts +2 -2
  28. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  29. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  30. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  31. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  32. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  33. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  34. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  36. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  37. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  38. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  39. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  40. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  41. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  42. package/dist/static/styles/components/wide-panel.css.js +0 -4
  43. package/dist/static/styles/customEditorStyle.css.js +13 -0
  44. package/package.json +2 -2
  45. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  46. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  47. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  48. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  49. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  50. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  51. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  52. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  53. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  54. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  55. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  56. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  57. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  58. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  59. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  60. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  61. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  62. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  63. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  64. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  65. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  66. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  67. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  68. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  69. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  70. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  71. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  72. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  73. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  74. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  75. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  76. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  77. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  78. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  79. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  80. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  81. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  82. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  83. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  84. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  85. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  86. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  87. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  88. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  89. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  90. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  91. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  92. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  93. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  94. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  95. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  96. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  97. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  98. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  99. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  100. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  101. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  102. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  103. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  104. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  105. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  106. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  107. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  108. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  109. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  110. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  111. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  112. 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 S } from "../../node_modules/valibot/dist/index.js";
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
- }, h = o({
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
- }), k = o({
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.en"),
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
- ]), E = o({
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
- }), N = o({
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
- }), O = o({
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 = S("type", [
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: h,
206
+ identity: S,
207
207
  /** Partner configuration (required) */
208
- partner: k,
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(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
- E as BlocksSchema,
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
- h as IdentitySchema,
238
+ S as IdentitySchema,
239
239
  m as MessageType,
240
- k as PartnerSchema,
240
+ h as PartnerSchema,
241
241
  s as ProductType,
242
- O as RegexRuleSchema,
242
+ N as RegexRuleSchema,
243
243
  L as RemoveRuleSchema,
244
- N as ReplaceRuleSchema,
244
+ E as ReplaceRuleSchema,
245
245
  R as TemplateSchema,
246
246
  I as UISchema
247
247
  };
@@ -1,18 +1,18 @@
1
- import n from "./LeftSlot.vue2.js";
1
+ import o from "./LeftSlot.vue2.js";
2
2
  /* empty css */
3
- import s from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var r = function() {
5
- var e = this, o = e._self._c, t = e._self._setupProxy;
6
- return o("div", { staticClass: "d-f a-i-c" }, [o(t.InButtonV2, { attrs: { id: "guido__back-button", "left-icon": "line-arrow-left", styling: "ghost", type: "secondary", "label-text": t.backButtonLabel, "skeleton-sizing": { width: 150, height: 26 }, "skeleton-status": t.editorStore.loadingStatus }, on: { click: t.handleBackClick } })], 1);
7
- }, a = [], i = /* @__PURE__ */ s(
8
- n,
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
- "c722b9f4"
13
+ "cd76c125"
14
14
  );
15
- const d = i.exports;
15
+ const f = r.exports;
16
16
  export {
17
- d as default
17
+ f as default
18
18
  };
@@ -1,31 +1,36 @@
1
- import { defineComponent as u, computed as m } from "vue";
2
- import { useConfig as f } from "../../../composables/useConfig.js";
3
- import { useBack as p } from "../../../composables/useGuidoActions.js";
4
- import { usePreviewMode as l } from "../../../composables/usePreviewMode.js";
5
- import { useTranslations as d } from "../../../composables/useTranslations.js";
6
- import { useVersionHistoryApi as k } from "../../../composables/useVersionHistoryApi.js";
7
- import { useEditorStore as b } from "../../../stores/editor.js";
8
- import { InButtonV2 as B } from "@useinsider/design-system-vue";
9
- const O = /* @__PURE__ */ u({
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 = b(), r = p(), { closeVersionHistory: i } = k(), { closePreviewMode: n } = l(), o = d(), { config: t } = f(), c = m(() => {
13
- var s, a;
14
- return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (a = (s = t.value) == null ? void 0 : s.ui) != null && a.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design");
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
- i();
18
+ n();
19
19
  return;
20
20
  }
21
21
  if (e.isPreviewModeOpen) {
22
- n();
22
+ s();
23
23
  return;
24
24
  }
25
- e.loadingStatus = !0, r();
26
- }, InButtonV2: B };
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
- O as default
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) => this._onProductImageChange(t)), this.api.onValueChanged(i.PRODUCT_NAME, (t) => this._onProductNameChange(t)), this.api.onValueChanged(i.PRODUCT_QUANTITY, (t) => this._onProductQuantityChange(t)), this.api.onValueChanged(i.PRODUCT_PRICE, (t) => this._onProductPriceChange(t)), this.api.onValueChanged(
146
- i.PRODUCT_ORIGINAL_PRICE,
147
- (t) => this._onProductOriginalPriceChange(t)
148
- ), this.api.onValueChanged(i.PRODUCT_BUTTON, (t) => this._onProductButtonChange(t));
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 R = Object.defineProperty;
2
- var _ = (i, t, e) => t in i ? R(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
- var m = (i, t, e) => _(i, typeof t != "symbol" ? t + "" : t, e);
4
- import { ModificationDescription as F, UIElementType as P, UEAttr as C } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
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 p, ItemsBlockId as g } from "../../enums/controlEnums.js";
7
- import { productPairs as T } from "../../enums/productEnums.js";
8
- import { useItemsBlockStore as A } from "../../store/items-block.js";
9
- import { getItemsBlockConfig as f, setItemsBlockConfig as u } from "../../utils/nodeConfigUtils.js";
10
- const D = p.PRICE_FORMATTED_PRICE, n = {
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 k extends h {
13
+ class y extends h {
14
14
  constructor() {
15
15
  super(...arguments);
16
- m(this, "store", A());
16
+ _(this, "store", O());
17
17
  }
18
18
  getId() {
19
- return D;
19
+ return N;
20
20
  }
21
21
  getTemplate() {
22
22
  return `
23
- <div class="container ${p.PRICE_FORMATTED_PRICE}">
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({ [n.FORMATTED_PRICE]: this.store.formattedPrice }), this.api.onValueChanged(n.FORMATTED_PRICE, (e) => {
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 r = f(this.currentNode);
37
- r && this.store.setFormattedPrice(r.priceFormatted ?? !0);
36
+ const o = u(this.currentNode);
37
+ o && this.store.setFormattedPrice(o.priceFormatted ?? !0);
38
38
  },
39
39
  () => {
40
- this.api.updateValues({ [n.FORMATTED_PRICE]: this.store.formattedPrice });
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), u(this.currentNode, this.api, { priceFormatted: e }), !this.currentNode)
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: r } = this.store, o = T.PAIRS_FOR_EXTENSION.price[r], s = T.PAIRS_FOR_EXTENSION.originalPrice[r], [c, a] = e ? [o.DEFAULT_PRICE, o.DEFAULT_PRICE_FORMATTED] : [o.DEFAULT_PRICE_FORMATTED, o.DEFAULT_PRICE], [l, I] = e ? [s.DEFAULT_PRICE, s.DEFAULT_PRICE_FORMATTED] : [s.DEFAULT_PRICE_FORMATTED, s.DEFAULT_PRICE];
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
- c,
51
- a,
56
+ E,
57
+ R,
52
58
  "price"
53
59
  );
54
- const d = this.currentNode.closest(".items-block"), E = d == null ? void 0 : d.querySelector(`[esd-extension-block-id="${g.ORIGINAL_PRICE}"]`);
55
- E && this._updatePriceBlock(E, l, I, "original price");
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, r, o, s) {
58
- const c = e.getInnerHTML().replace(r, o), a = `Updated ${s} to ${this.store.formattedPrice ? "formatted" : "unformatted"}`;
59
- this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(c).apply(new F(a));
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
- <${P.LABEL}
65
- ${C.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
70
+ <${m.LABEL}
71
+ ${g.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
66
72
  >
67
- </${P.LABEL}>
68
- ${this._GuToggle(n.FORMATTED_PRICE)}
73
+ </${m.LABEL}>
74
+ ${this._GuToggle(c.FORMATTED_PRICE)}
69
75
  </div>
70
76
  `;
71
77
  }
72
78
  }
73
79
  export {
74
- D as CONTROL_BLOCK_ID,
75
- k as PriceFormattedPriceControl
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 = (I, h, e) => h in I ? x(I, h, { enumerable: !0, configurable: !0, writable: !0, value: e }) : I[h] = e;
3
- var O = (I, h, e) => H(I, typeof h != "symbol" ? h + "" : h, e);
4
- import { UEAttr as C, ModificationDescription as p } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
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 T, templateFirstLine as b } from "../enums/productEnums.js";
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 p("Updated template"));
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: T.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[n],
177
- name: T.PAIRS_FOR_EXTENSION.name[e].DEFAULT[n],
178
- price: i ? T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.price[e].DEFAULT_PRICE,
179
- originalPrice: i ? T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE_FORMATTED : T.PAIRS_FOR_EXTENSION.originalPrice[e].DEFAULT_PRICE,
180
- quantity: T.PAIRS_FOR_EXTENSION.quantity[e].DEFAULT,
181
- button: T.PAIRS_FOR_EXTENSION.button[e].DEFAULT_LABEL
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 p("Updated image src"));
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 p("Updated name"));
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 g;
200
- const t = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
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), u = this._replacePriceNumber(s, e), d = this._buildPriceContent(u, c, l), _ = r.replace(n, d);
207
- this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(_).apply(new p("Updated price"));
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 y;
211
- const t = (y = this.currentNode) == null ? void 0 : y.querySelector(
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()) || "", u = this._removeCurrencySymbol(o, s), d = this._replacePriceNumber(u, e), _ = this._buildPriceContent(d, s, c), E = `<s>${n.replace(o, _)}</s>`;
223
- this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(E).apply(new p("Updated original price"));
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
- s = s.replace(c, e);
236
- const u = this.api.getDocumentModifier();
237
- u.modifyHtml(l).setInnerHtml(s), u.modifyHtml(o).setStyle("display", n ? "table-cell" : "none"), u.apply(new p("Updated quantity"));
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 u, d, _, g, E, y;
241
- const e = (u = this.currentNode) == null ? void 0 : u.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), t = (d = this.currentNode) == null ? void 0 : d.querySelector(`[esd-extension-block-id="${m.NAME}"]`), i = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (g = this.currentNode) == null ? void 0 : g.querySelector(
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 = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`);
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 p("Updated image width")), setTimeout(() => {
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 p("Reordered template"));
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 p("Updated data-type attribute"));
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 p("Updated data-number attribute"));
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 p("Recalculated trimming after orientation change"));
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");