@useinsider/guido 2.1.0-beta.efb0c6b → 2.1.0-beta.fb6f235

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 (223) hide show
  1. package/README.md +45 -0
  2. package/dist/@types/config/schemas.js +62 -58
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +68 -58
  5. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  6. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  8. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  9. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  11. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  12. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +16 -15
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  14. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  15. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +12 -11
  16. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  17. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  18. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  19. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  20. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  21. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  22. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  23. package/dist/components/organisms/header/HeaderWrapper.vue.js +10 -9
  24. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  25. package/dist/components/organisms/header/LeftSlot.vue2.js +27 -23
  26. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  27. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  28. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  29. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  30. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  31. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  32. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  33. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  34. package/dist/composables/useActionsApi.js +37 -32
  35. package/dist/composables/useBlocksConfig.js +29 -20
  36. package/dist/config/migrator/index.js +9 -8
  37. package/dist/config/migrator/itemsBlockMigrator.js +351 -0
  38. package/dist/enums/academy.js +8 -0
  39. package/dist/enums/onboarding.js +1 -2
  40. package/dist/enums/unsubscribe.js +20 -21
  41. package/dist/extensions/Blocks/Items/block.js +28 -41
  42. package/dist/extensions/Blocks/Items/controls/button/link.js +18 -37
  43. package/dist/extensions/Blocks/Items/controls/cardComposition.js +164 -96
  44. package/dist/extensions/Blocks/Items/controls/image/link.js +16 -35
  45. package/dist/extensions/Blocks/Items/controls/name/trimming.js +30 -42
  46. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -45
  47. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +56 -59
  48. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +45 -48
  49. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -34
  50. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +47 -57
  51. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +75 -0
  52. package/dist/extensions/Blocks/Items/controls/settingsControl.js +198 -184
  53. package/dist/extensions/Blocks/Items/enums/controlEnums.js +2 -2
  54. package/dist/extensions/Blocks/Items/enums/productEnums.js +43 -45
  55. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +3 -6
  56. package/dist/extensions/Blocks/Items/extension.js +7 -6
  57. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +58 -49
  58. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +48 -59
  59. package/dist/extensions/Blocks/Items/settingsPanel.js +28 -32
  60. package/dist/extensions/Blocks/Items/template.js +397 -143
  61. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +176 -0
  62. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  63. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  64. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  65. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  73. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  74. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  75. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  76. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  77. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  78. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  79. package/dist/extensions/Blocks/common-control.js +104 -106
  80. package/dist/extensions/Blocks/controlFactories.js +55 -45
  81. package/dist/extensions/ModulesTabIcons/extension.js +16 -0
  82. package/dist/guido.css +1 -1
  83. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +439 -297
  84. package/dist/package.json.js +1 -1
  85. package/dist/src/@types/config/schemas.d.ts +10 -2
  86. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  87. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  88. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  89. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  90. package/dist/src/composables/useActionsApi.d.ts +1 -0
  91. package/dist/src/composables/useConfig.d.ts +4 -0
  92. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +6 -0
  93. package/dist/src/enums/academy.d.ts +12 -0
  94. package/dist/src/enums/onboarding.d.ts +0 -1
  95. package/dist/src/enums/unsubscribe.d.ts +0 -1
  96. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  97. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -3
  98. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +13 -4
  99. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -3
  100. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  101. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  102. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  103. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  104. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  105. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -2
  106. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +13 -0
  107. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -16
  108. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +1 -0
  109. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +24 -26
  110. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +1 -2
  111. package/dist/src/extensions/Blocks/Items/template.d.ts +22 -1
  112. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +77 -0
  113. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  114. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  115. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  116. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  124. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  125. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  126. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  127. package/dist/src/extensions/Blocks/common-control.d.ts +10 -12
  128. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  129. package/dist/src/stores/config.d.ts +36 -0
  130. package/dist/src/stores/editor.d.ts +21 -0
  131. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  132. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  133. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  134. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  135. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  136. package/dist/static/styles/components/wide-panel.css.js +1 -5
  137. package/dist/static/styles/customEditorStyle.css.js +13 -0
  138. package/dist/stores/editor.js +1 -0
  139. package/dist/utils/pairProductVariables.js +61 -58
  140. package/dist/utils/templatePreparation.js +17 -17
  141. package/package.json +3 -3
  142. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  143. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  144. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  145. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  146. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  147. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  148. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  149. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  150. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  151. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  152. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  153. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  154. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  155. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  156. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  157. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  158. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  159. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  160. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  162. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  163. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  164. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  165. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  166. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  167. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  168. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  169. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  170. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  171. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  172. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  173. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  174. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  175. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  176. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  177. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  178. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  179. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  180. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  181. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  182. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  183. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  184. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  185. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  186. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  187. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  188. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  189. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  190. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  191. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  192. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  193. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  194. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  195. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  196. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  197. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  198. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  217. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  218. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  219. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  220. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  221. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  222. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  223. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,84 +1,81 @@
1
- var S = Object.defineProperty;
2
- var _ = (c, s, e) => s in c ? S(c, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[s] = e;
3
- var u = (c, s, e) => _(c, typeof s != "symbol" ? s + "" : s, e);
4
- import { ModificationDescription as b } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as R } from "../../../common-control.js";
6
- import { ItemsBlockControlId as h } from "../../enums/controlEnums.js";
7
- import { useItemsBlockStore as f } from "../../store/items-block.js";
8
- import { syncCurrencySymbolFromAttributes as N } from "../../utils/syncAttributesFromConfigBlock.js";
9
- import { updateConfigBlockAttributes as B } from "../../utils/updateAttributes.js";
10
- const E = h.PRICE_CURRENCY_SYMBOL, m = {
1
+ var R = Object.defineProperty;
2
+ var N = (s, c, e) => c in s ? R(s, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[c] = e;
3
+ var h = (s, c, e) => N(s, typeof c != "symbol" ? c + "" : c, e);
4
+ import { ModificationDescription as B } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as E } from "../../../common-control.js";
6
+ import { ItemsBlockControlId as y } from "../../enums/controlEnums.js";
7
+ import { getItemsBlockConfig as p, setItemsBlockConfig as x, escapeReplacement as f } from "../../utils/nodeConfigUtils.js";
8
+ const I = y.PRICE_CURRENCY_SYMBOL, u = {
11
9
  CURRENCY_SYMBOL: "currencySymbol"
12
10
  };
13
- class P extends R {
11
+ class P extends E {
14
12
  constructor() {
15
13
  super(...arguments);
16
- u(this, "store", f());
17
- u(this, "originalPriceContents", /* @__PURE__ */ new Map());
14
+ h(this, "originalPriceContents", /* @__PURE__ */ new Map());
18
15
  }
19
16
  getId() {
20
- return E;
17
+ return I;
21
18
  }
22
19
  getTemplate() {
23
20
  return `
24
- <div class="${h.PRICE_CURRENCY_SYMBOL}">
21
+ <div class="container ${y.PRICE_CURRENCY_SYMBOL}">
25
22
  ${this._getCurrencySymbol()}
26
23
  </div>
27
24
  `;
28
25
  }
29
26
  onRender() {
30
- this.api.updateValues({ [m.CURRENCY_SYMBOL]: this.store.currencySymbol }), this._storeOriginalContents(), this.api.onValueChanged(m.CURRENCY_SYMBOL, (e) => {
31
- this._onCurrencySymbolChange(e);
27
+ const e = p(this.currentNode);
28
+ this.api.updateValues({ [u.CURRENCY_SYMBOL]: (e == null ? void 0 : e.priceCurrencySymbol) ?? "" }), this._storeOriginalContents(), this.api.onValueChanged(u.CURRENCY_SYMBOL, (t) => {
29
+ this._onCurrencySymbolChange(t);
32
30
  });
33
31
  }
34
32
  onDestroy() {
35
33
  super.onDestroy(), this.originalPriceContents.clear();
36
34
  }
37
35
  onTemplateNodeUpdated(e) {
38
- super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
39
- () => N(this.currentNode),
40
- () => {
41
- this.api.updateValues({ [m.CURRENCY_SYMBOL]: this.store.currencySymbol }), this._storeOriginalContents();
42
- }
43
- );
36
+ super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
37
+ const t = p(this.currentNode);
38
+ this.api.updateValues({ [u.CURRENCY_SYMBOL]: (t == null ? void 0 : t.priceCurrencySymbol) ?? "" }), this._storeOriginalContents();
39
+ });
44
40
  }
45
41
  _onCurrencySymbolChange(e) {
46
- var i;
42
+ var a;
47
43
  console.debug("Currency symbol changed to: ", e);
48
- const r = ((i = this.store.currencySymbol) == null ? void 0 : i.trim()) || "";
49
- if (this.store.setCurrencySymbol(e), B(this.currentNode, this.api), !this.currentNode)
44
+ const t = p(this.currentNode), o = ((a = t == null ? void 0 : t.priceCurrencySymbol) == null ? void 0 : a.trim()) || "";
45
+ if (x(this.currentNode, this.api, { priceCurrencySymbol: e }), !this.currentNode)
50
46
  return;
51
- const t = this._getPriceBlocks();
52
- if (!t || t.length === 0)
47
+ const r = this._getPriceBlocks();
48
+ if (!r || r.length === 0)
53
49
  return;
54
- const o = (e == null ? void 0 : e.trim()) || "", { currencyLocation: n } = this.store;
55
- t.forEach((l) => {
56
- const a = this._getParagraph(l);
57
- if (!a)
50
+ const n = (e == null ? void 0 : e.trim()) || "", l = (t == null ? void 0 : t.priceCurrencyLocation) ?? "0", i = this.api.getDocumentModifier();
51
+ r.forEach((d) => {
52
+ const m = this._getParagraph(d);
53
+ if (!m)
58
54
  return;
59
- const y = a.getInnerHTML() || "", p = a.getInnerText() || "", C = this._removeCurrencySymbol(p, r), g = this._buildPriceContent(C, o, n), d = y.replace(p, g);
60
- this.api.getDocumentModifier().modifyHtml(a).setInnerHtml(d).apply(new b(
61
- `Updated currency symbol to ${o || "removed"}`
62
- ));
63
- });
55
+ const g = m.getInnerHTML().trim() || "", C = m.getInnerText().trim() || "", _ = this._removeCurrencySymbol(C, o), S = this._buildPriceContent(_, n, l), b = g.replace(C, f(S));
56
+ i.modifyHtml(m).setInnerHtml(b);
57
+ }), i.apply(new B(
58
+ `Updated currency symbol to ${n || "removed"}`
59
+ ));
64
60
  }
65
61
  _storeOriginalContents() {
66
62
  if (!this.currentNode)
67
63
  return;
64
+ const e = p(this.currentNode);
68
65
  this.currentNode.querySelectorAll(
69
66
  ".items-block-price"
70
- ).forEach((r) => {
71
- var o;
72
- const t = r.querySelector("p");
73
- if (t && !this.originalPriceContents.has(t)) {
74
- const n = t.getInnerText() || "", i = ((o = this.store.currencySymbol) == null ? void 0 : o.trim()) || "", l = this._removeCurrencySymbol(n, i);
75
- this.originalPriceContents.set(t, l);
67
+ ).forEach((o) => {
68
+ var n;
69
+ const r = o.querySelector("p");
70
+ if (r && !this.originalPriceContents.has(r)) {
71
+ const l = r.getInnerText() || "", i = ((n = e == null ? void 0 : e.priceCurrencySymbol) == null ? void 0 : n.trim()) || "", a = this._removeCurrencySymbol(l, i);
72
+ this.originalPriceContents.set(r, a);
76
73
  }
77
74
  });
78
75
  }
79
76
  _getPriceBlocks() {
80
- var e, r;
81
- return ((r = (e = this.currentNode) == null ? void 0 : e.closest(".items-block")) == null ? void 0 : r.querySelectorAll(".items-block-price")) || [];
77
+ var e, t;
78
+ return ((t = (e = this.currentNode) == null ? void 0 : e.closest(".items-block")) == null ? void 0 : t.querySelectorAll(".items-block-price")) || [];
82
79
  }
83
80
  _getParagraph(e) {
84
81
  return e.querySelector("p");
@@ -86,30 +83,30 @@ class P extends R {
86
83
  _escapeRegex(e) {
87
84
  return e.replace(/[-\\^$*+?().|[\]{}]/g, "\\$&");
88
85
  }
89
- _removeCurrencySymbol(e, r) {
90
- const t = e || "";
91
- let o = t;
92
- if (r) {
93
- const n = new RegExp(`\\s*${this._escapeRegex(r)}\\s*`);
94
- o = t.replace(n, "").trim();
86
+ _removeCurrencySymbol(e, t) {
87
+ const o = e || "";
88
+ let r = o;
89
+ if (t) {
90
+ const n = new RegExp(`\\s*${this._escapeRegex(t)}\\s*`);
91
+ r = o.replace(n, "").trim();
95
92
  } else {
96
- const n = t.match(/([^0-9.,\s]+)/);
93
+ const n = o.match(/([^0-9.,\s]+)/);
97
94
  if (n && n[1]) {
98
- const i = n[1].trim(), l = new RegExp(`\\s*${this._escapeRegex(i)}\\s*`);
99
- o = t.replace(l, "").trim();
95
+ const l = n[1].trim(), i = new RegExp(`\\s*${this._escapeRegex(l)}\\s*`);
96
+ r = o.replace(i, "").trim();
100
97
  }
101
98
  }
102
- return o;
99
+ return r;
103
100
  }
104
- _buildPriceContent(e, r, t) {
105
- return r ? t === "1" ? `${e}&nbsp;${r}` : `${r}&nbsp;${e}` : e;
101
+ _buildPriceContent(e, t, o) {
102
+ return t ? o === "1" ? `${e}&nbsp;${t}` : `${t}&nbsp;${e}` : e;
106
103
  }
107
104
  _getCurrencySymbol() {
108
105
  return `
109
106
  ${this._GuTwoColumns([
110
107
  this._GuLabel({ text: "Currency Symbol" }),
111
108
  this._GuTextInput({
112
- name: m.CURRENCY_SYMBOL,
109
+ name: u.CURRENCY_SYMBOL,
113
110
  placeholder: "Enter Currency Symbol",
114
111
  className: "es-180w"
115
112
  })
@@ -118,6 +115,6 @@ class P extends R {
118
115
  }
119
116
  }
120
117
  export {
121
- E as CONTROL_BLOCK_ID,
118
+ I as CONTROL_BLOCK_ID,
122
119
  P as PriceCurrencySymbolControl
123
120
  };
@@ -1,76 +1,73 @@
1
- var _ = Object.defineProperty;
2
- var I = (r, e, t) => e in r ? _(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var P = (r, e, t) => I(r, typeof e != "symbol" ? e + "" : e, t);
4
- import { ModificationDescription as F, UIElementType as m, UEAttr as C } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
1
+ import { ModificationDescription as L, UIElementType as P, UEAttr as D } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
2
  import { CommonControl as h } from "../../../common-control.js";
6
- import { ItemsBlockControlId as l, ItemsBlockId as A } from "../../enums/controlEnums.js";
7
- import { productPairs as T } from "../../enums/productEnums.js";
8
- import { useItemsBlockStore as u } from "../../store/items-block.js";
9
- import { syncFormattedPriceFromAttributes as g } from "../../utils/syncAttributesFromConfigBlock.js";
10
- import { updateConfigBlockAttributes as D } from "../../utils/updateAttributes.js";
11
- const f = l.PRICE_FORMATTED_PRICE, n = {
3
+ import { ItemsBlockControlId as R, ItemsBlockId as _ } from "../../enums/controlEnums.js";
4
+ import { productPairs as I } from "../../enums/productEnums.js";
5
+ import { getItemsBlockConfig as d, setItemsBlockConfig as u, escapeReplacement as O } from "../../utils/nodeConfigUtils.js";
6
+ const g = R.PRICE_FORMATTED_PRICE, s = {
12
7
  FORMATTED_PRICE: "formattedPrice"
13
8
  };
14
- class y extends h {
15
- constructor() {
16
- super(...arguments);
17
- P(this, "store", u());
18
- }
9
+ class k extends h {
19
10
  getId() {
20
- return f;
11
+ return g;
21
12
  }
22
13
  getTemplate() {
23
14
  return `
24
- <div class="${l.PRICE_FORMATTED_PRICE}">
15
+ <div class="container ${R.PRICE_FORMATTED_PRICE}">
25
16
  ${this._getFormattedPrice()}
26
17
  </div>
27
18
  `;
28
19
  }
29
20
  onRender() {
30
- this.api.updateValues({ [n.FORMATTED_PRICE]: this.store.formattedPrice }), this.api.onValueChanged(n.FORMATTED_PRICE, (t) => {
31
- this._onFormattedPriceChange(t);
21
+ const t = d(this.currentNode);
22
+ this.api.updateValues({ [s.FORMATTED_PRICE]: (t == null ? void 0 : t.priceFormatted) ?? !0 }), this.api.onValueChanged(s.FORMATTED_PRICE, (e) => {
23
+ this._onFormattedPriceChange(e);
32
24
  });
33
25
  }
34
26
  onTemplateNodeUpdated(t) {
35
- super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(
36
- () => g(this.currentNode),
37
- () => {
38
- this.api.updateValues({ [n.FORMATTED_PRICE]: this.store.formattedPrice });
39
- }
40
- );
27
+ super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(() => {
28
+ const e = d(this.currentNode);
29
+ this.api.updateValues({ [s.FORMATTED_PRICE]: (e == null ? void 0 : e.priceFormatted) ?? !0 });
30
+ });
41
31
  }
42
32
  _onFormattedPriceChange(t) {
43
- if (console.debug("Formatted price changed to: ", t), this.store.setFormattedPrice(t), D(this.currentNode, this.api), !this.currentNode)
33
+ if (console.debug("Formatted price changed to: ", t), u(this.currentNode, this.api, { priceFormatted: t }), !this.currentNode)
44
34
  return;
45
- const { itemsType: s } = this.store, i = T.PAIRS_FOR_EXTENSION.price[s], o = T.PAIRS_FOR_EXTENSION.originalPrice[s], [c, a] = t ? [i.DEFAULT_PRICE, i.DEFAULT_PRICE_FORMATTED] : [i.DEFAULT_PRICE_FORMATTED, i.DEFAULT_PRICE], [p, R] = t ? [o.DEFAULT_PRICE, o.DEFAULT_PRICE_FORMATTED] : [o.DEFAULT_PRICE_FORMATTED, o.DEFAULT_PRICE];
46
- this._updatePriceBlock(
47
- this.currentNode,
48
- c,
49
- a,
50
- "price"
51
- );
52
- const d = this.currentNode.closest(".items-block"), E = d == null ? void 0 : d.querySelector(`[esd-extension-block-id="${A.ORIGINAL_PRICE}"]`);
53
- E && this._updatePriceBlock(E, p, R, "original price");
35
+ const e = d(this.currentNode), n = (e == null ? void 0 : e.type) ?? "CART_ITEMS", i = (e == null ? void 0 : e.priceSinglePrice) ?? !1, r = I.PAIRS_FOR_EXTENSION.price[n], c = I.PAIRS_FOR_EXTENSION.originalPrice[n], [p, m] = t ? [
36
+ i ? r.DEFAULT_SINGLE_PRICE : r.DEFAULT_PRICE,
37
+ i ? r.DEFAULT_SINGLE_PRICE_FORMATTED : r.DEFAULT_PRICE_FORMATTED
38
+ ] : [
39
+ i ? r.DEFAULT_SINGLE_PRICE_FORMATTED : r.DEFAULT_PRICE_FORMATTED,
40
+ i ? r.DEFAULT_SINGLE_PRICE : r.DEFAULT_PRICE
41
+ ], l = i ? c.DEFAULT_SINGLE_PRICE : c.DEFAULT_PRICE, T = i ? c.DEFAULT_SINGLE_PRICE_FORMATTED : c.DEFAULT_PRICE_FORMATTED, [F, A] = t ? [l, T] : [T, l], o = this.currentNode.closest(".items-block"), C = (o == null ? void 0 : o.querySelectorAll(
42
+ `[esd-extension-block-id="${_.PRICE}"]`
43
+ )) || [], E = this.api.getDocumentModifier();
44
+ C.forEach((a) => {
45
+ this._updatePriceBlock(E, a, p, m);
46
+ }), ((o == null ? void 0 : o.querySelectorAll(
47
+ `[esd-extension-block-id="${_.ORIGINAL_PRICE}"]`
48
+ )) || []).forEach((a) => {
49
+ this._updatePriceBlock(E, a, F, A);
50
+ }), E.apply(new L(
51
+ `Updated price to ${t ? "formatted" : "unformatted"}`
52
+ ));
54
53
  }
55
- _updatePriceBlock(t, s, i, o) {
56
- const c = t.getInnerHTML().replace(s, i), a = `Updated ${o} to ${this.store.formattedPrice ? "formatted" : "unformatted"}`;
57
- this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(c).apply(new F(a));
54
+ _updatePriceBlock(t, e, n, i) {
55
+ const r = e.getInnerHTML().trim().replace(n, O(i));
56
+ t.modifyHtml(e).setInnerHtml(r);
58
57
  }
59
58
  _getFormattedPrice() {
60
59
  return `
61
- <div class="container">
62
- <div class="display-flex align-items-center justify-content-between">
63
- <${m.LABEL}
64
- ${C.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
65
- >
66
- </${m.LABEL}>
67
- ${this._GuToggle(n.FORMATTED_PRICE)}
68
- </div>
60
+ <div class="display-flex align-items-center justify-content-between">
61
+ <${P.LABEL}
62
+ ${D.LABEL.text}="${this.api.translate("Formatted Price (e.g. $9.90)")}"
63
+ >
64
+ </${P.LABEL}>
65
+ ${this._GuToggle(s.FORMATTED_PRICE)}
69
66
  </div>
70
67
  `;
71
68
  }
72
69
  }
73
70
  export {
74
- f as CONTROL_BLOCK_ID,
75
- y as PriceFormattedPriceControl
71
+ g as CONTROL_BLOCK_ID,
72
+ k as PriceFormattedPriceControl
76
73
  };
@@ -1,61 +1,50 @@
1
- var d = Object.defineProperty;
2
- var a = (i, e, t) => e in i ? d(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
- var o = (i, e, t) => a(i, typeof e != "symbol" ? e + "" : e, t);
4
- import { UIElementType as n, UEAttr as c } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as u } from "../../../common-control.js";
6
- import { ItemsBlockControlId as r } from "../../enums/controlEnums.js";
7
- import { useItemsBlockStore as D } from "../../store/items-block.js";
8
- import { syncHideDiscountFromAttributes as p } from "../../utils/syncAttributesFromConfigBlock.js";
9
- import { updateConfigBlockAttributes as I } from "../../utils/updateAttributes.js";
10
- const l = r.PRICE_HIDE_DISCOUNT, s = {
1
+ import { UIElementType as o, UEAttr as d } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as r } from "../../../common-control.js";
3
+ import { ItemsBlockControlId as n } from "../../enums/controlEnums.js";
4
+ import { getItemsBlockConfig as s, setItemsBlockConfig as a } from "../../utils/nodeConfigUtils.js";
5
+ const c = n.PRICE_HIDE_DISCOUNT, i = {
11
6
  HIDE_DISCOUNT: "hideDiscount"
12
7
  };
13
- class N extends u {
14
- constructor() {
15
- super(...arguments);
16
- o(this, "store", D());
17
- }
8
+ class C extends r {
18
9
  getId() {
19
- return l;
10
+ return c;
20
11
  }
21
12
  getTemplate() {
22
13
  return `
23
- <div class="${r.PRICE_HIDE_DISCOUNT}">
14
+ <div class="container ${n.PRICE_HIDE_DISCOUNT}">
24
15
  ${this._getHideDiscount()}
25
16
  </div>
26
17
  `;
27
18
  }
28
19
  onRender() {
29
- this.api.updateValues({ [s.HIDE_DISCOUNT]: this.store.hideDiscount }), this.api.onValueChanged(s.HIDE_DISCOUNT, (t) => {
20
+ const e = s(this.currentNode);
21
+ this.api.updateValues({ [i.HIDE_DISCOUNT]: (e == null ? void 0 : e.priceHideDiscount) ?? !0 }), this.api.onValueChanged(i.HIDE_DISCOUNT, (t) => {
30
22
  this._onHideDiscountChange(t);
31
23
  });
32
24
  }
33
- onTemplateNodeUpdated(t) {
34
- super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(
35
- () => p(this.currentNode),
36
- () => {
37
- this.api.updateValues({ [s.HIDE_DISCOUNT]: this.store.hideDiscount });
38
- }
39
- );
25
+ onTemplateNodeUpdated(e) {
26
+ super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
27
+ const t = s(this.currentNode);
28
+ this.api.updateValues({ [i.HIDE_DISCOUNT]: (t == null ? void 0 : t.priceHideDiscount) ?? !0 });
29
+ });
40
30
  }
41
- _onHideDiscountChange(t) {
42
- this.store.setHideDiscount(t), I(this.currentNode, this.api), this.api.updateValues({ [s.HIDE_DISCOUNT]: t });
31
+ _onHideDiscountChange(e) {
32
+ a(this.currentNode, this.api, { priceHideDiscount: e }), this.api.updateValues({ [i.HIDE_DISCOUNT]: e });
43
33
  }
44
34
  _getHideDiscount() {
45
35
  return `
46
- <div class="container">
47
36
  <div class="display-flex align-items-center justify-content-between">
48
- <${n.LABEL}
49
- ${c.LABEL.text}="${this.api.translate("Hide if same as discounted ")}"
37
+ <${o.LABEL}
38
+ ${d.LABEL.text}="${this.api.translate("Hide if same as discounted ")}"
50
39
  >
51
- </${n.LABEL}>
52
- ${this._GuToggle(s.HIDE_DISCOUNT)}
40
+ </${o.LABEL}>
41
+ ${this._GuToggle(i.HIDE_DISCOUNT)}
53
42
  </div>
54
43
  </div>
55
44
  `;
56
45
  }
57
46
  }
58
47
  export {
59
- l as CONTROL_BLOCK_ID,
60
- N as PriceHideDiscountControl
48
+ c as CONTROL_BLOCK_ID,
49
+ C as PriceHideDiscountControl
61
50
  };
@@ -1,92 +1,82 @@
1
- var I = Object.defineProperty;
2
- var y = (n, o, t) => o in n ? I(n, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[o] = t;
3
- var m = (n, o, t) => y(n, typeof o != "symbol" ? o + "" : o, t);
4
- import { ModificationDescription as h } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as E } from "../../../common-control.js";
6
- import { ItemsBlockControlId as O } from "../../enums/controlEnums.js";
7
- import { SETTINGS_ENUMS as N } from "../../enums/settingsEnums.js";
8
- import { useItemsBlockStore as f } from "../../store/items-block.js";
9
- import { syncPriceOrientationFromAttributes as T } from "../../utils/syncAttributesFromConfigBlock.js";
10
- import { updateConfigBlockAttributes as P } from "../../utils/updateAttributes.js";
11
- const _ = O.PRICE_ORIENTATION, p = {
1
+ import { ModificationDescription as p } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as O } from "../../../common-control.js";
3
+ import { ItemsBlockControlId as m } from "../../enums/controlEnums.js";
4
+ import { SETTINGS_ENUMS as h } from "../../enums/settingsEnums.js";
5
+ import { getItemsBlockConfig as u, setItemsBlockConfig as I } from "../../utils/nodeConfigUtils.js";
6
+ const N = m.PRICE_ORIENTATION, c = {
12
7
  PRICE_ORIENTATION: "priceOrientation"
13
- }, C = [
8
+ }, y = [
14
9
  { icon: "vertical-orientation", value: "vertical" },
15
10
  { icon: "horizontal-orientation", value: "horizontal" }
16
11
  ];
17
- class v extends E {
18
- constructor() {
19
- super(...arguments);
20
- m(this, "store", f());
21
- }
12
+ class P extends O {
22
13
  getId() {
23
- return _;
14
+ return N;
24
15
  }
25
16
  getTemplate() {
26
17
  return `
27
- <div class="${O.PRICE_ORIENTATION}">
18
+ <div class="container ${m.PRICE_ORIENTATION}">
28
19
  ${this._getPriceOrientation()}
29
20
  </div>
30
21
  `;
31
22
  }
32
23
  onRender() {
33
- this.api.updateValues({ [p.PRICE_ORIENTATION]: this.store.priceOrientation }), this.api.onValueChanged(p.PRICE_ORIENTATION, (t) => {
34
- this._onPriceOrientationChange(t);
24
+ const i = u(this.currentNode);
25
+ this.api.updateValues({ [c.PRICE_ORIENTATION]: (i == null ? void 0 : i.priceOrientation) ?? "horizontal" }), this.api.onValueChanged(c.PRICE_ORIENTATION, (t) => {
26
+ typeof t == "string" && this._onPriceOrientationChange(t);
35
27
  });
36
28
  }
37
- onTemplateNodeUpdated(t) {
38
- super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(
39
- () => {
40
- T(this.currentNode);
41
- },
42
- () => {
43
- this.api.updateValues({ [p.PRICE_ORIENTATION]: this.store.priceOrientation });
44
- }
45
- );
29
+ onTemplateNodeUpdated(i) {
30
+ super.onTemplateNodeUpdated(i), this.handleBlockInstanceChange(() => {
31
+ const t = u(this.currentNode);
32
+ this.api.updateValues({ [c.PRICE_ORIENTATION]: (t == null ? void 0 : t.priceOrientation) ?? "horizontal" });
33
+ });
46
34
  }
47
- _onPriceOrientationChange(t) {
48
- if (console.debug("Price orientation changed to: ", t), this.store.setPriceOrientation(t), P(this.currentNode, this.api), !this.currentNode)
35
+ _onPriceOrientationChange(i) {
36
+ if (I(this.currentNode, this.api, {
37
+ priceOrientation: i
38
+ }), !this.currentNode)
49
39
  return;
50
- const { orientation: i } = this.store, r = i === N.ORIENTATION.VERTICAL, e = t === "horizontal";
51
- r ? this._updateVerticalLayout(e) : this._updateHorizontalLayout(e);
40
+ const t = u(this.currentNode), e = ((t == null ? void 0 : t.orientation) ?? h.ORIENTATION.VERTICAL) === h.ORIENTATION.VERTICAL, o = i === "horizontal";
41
+ e ? this._updateVerticalLayout(o) : this._updateHorizontalLayout(o);
52
42
  }
53
- _updateHorizontalLayout(t) {
54
- var c, l, d, a;
55
- const i = ((l = (c = this.currentNode) == null ? void 0 : c.closest(".ins-product-td")) == null ? void 0 : l.querySelectorAll(".product-price-class")) || [], r = ((a = (d = this.currentNode) == null ? void 0 : d.closest(".ins-product-td")) == null ? void 0 : a.querySelectorAll(".product-original-price-class")) || [];
56
- if (!i || !r)
43
+ _updateVerticalLayout(i) {
44
+ var a, s, l, n;
45
+ const t = ((s = (a = this.currentNode) == null ? void 0 : a.closest(".ins-product-td")) == null ? void 0 : s.querySelectorAll(".product-price-class")) || [], r = ((n = (l = this.currentNode) == null ? void 0 : l.closest(".ins-product-td")) == null ? void 0 : n.querySelectorAll(".product-original-price-class")) || [];
46
+ if (!t || !r)
57
47
  return;
58
- const e = t ? "50%" : "100%", s = this.api.getDocumentModifier();
59
- i.forEach((u) => {
60
- s.modifyHtml(u).setAttribute("width", e).setStyle("width", e);
61
- }), r.forEach((u) => {
62
- s.modifyHtml(u).setAttribute("width", e).setStyle("width", e);
63
- }), s.apply(new h(`Updated original price element width to ${e}`));
48
+ const e = i ? "50%" : "100%", o = this.api.getDocumentModifier();
49
+ t.forEach((d) => {
50
+ o.modifyHtml(d).setAttribute("width", e).setStyle("width", e);
51
+ }), r.forEach((d) => {
52
+ o.modifyHtml(d).setAttribute("width", e).setStyle("width", e);
53
+ }), o.apply(new p(`Updated original price element width to ${e}`));
64
54
  }
65
- _updateVerticalLayout(t) {
66
- var s, c, l, d;
67
- const i = ((c = (s = this.currentNode) == null ? void 0 : s.closest(".ins-product-td")) == null ? void 0 : c.querySelectorAll(".horizontal-price")) || [], r = (d = (l = this.currentNode) == null ? void 0 : l.closest(".ins-product-td")) == null ? void 0 : d.querySelector(".vertical-price");
68
- if (!i || !r || i.length === 0)
55
+ _updateHorizontalLayout(i) {
56
+ var o, a, s, l;
57
+ const t = ((a = (o = this.currentNode) == null ? void 0 : o.closest(".ins-product-td")) == null ? void 0 : a.querySelectorAll(".horizontal-price")) || [], r = (l = (s = this.currentNode) == null ? void 0 : s.closest(".ins-product-td")) == null ? void 0 : l.querySelector(".vertical-price");
58
+ if (!t || !r || t.length === 0)
69
59
  return;
70
60
  const e = this.api.getDocumentModifier();
71
- t ? (i.forEach((a) => {
72
- e.modifyHtml(a).setStyle("display", "table-cell");
73
- }), e.modifyHtml(r).setStyle("display", "none").apply(new h("Hide vertical price element"))) : (i.forEach((a) => {
74
- e.modifyHtml(a).setStyle("display", "none");
75
- }), e.modifyHtml(r).setStyle("display", "table-cell").apply(new h("Show vertical price element")));
61
+ i ? (t.forEach((n) => {
62
+ e.modifyHtml(n).setStyle("display", "table-cell");
63
+ }), e.modifyHtml(r).setStyle("display", "none"), e.apply(new p("Show horizontal price orientation"))) : (t.forEach((n) => {
64
+ e.modifyHtml(n).setStyle("display", "none");
65
+ }), e.modifyHtml(r).setStyle("display", "table-cell"), e.apply(new p("Show vertical price orientation")));
76
66
  }
77
67
  _getPriceOrientation() {
78
68
  return `
79
69
  ${this._GuTwoColumns([
80
70
  this._GuLabel({ text: "Price Orientation" }),
81
71
  this._GuRadioButton({
82
- name: p.PRICE_ORIENTATION,
83
- buttons: C
72
+ name: c.PRICE_ORIENTATION,
73
+ buttons: y
84
74
  })
85
75
  ])}
86
76
  `;
87
77
  }
88
78
  }
89
79
  export {
90
- _ as CONTROL_BLOCK_ID,
91
- v as PriceOrientationControl
80
+ N as CONTROL_BLOCK_ID,
81
+ P as PriceOrientationControl
92
82
  };
@@ -0,0 +1,75 @@
1
+ import { ModificationDescription as m, UIElementType as _, UEAttr as A } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as h } from "../../../common-control.js";
3
+ import { ItemsBlockControlId as L, ItemsBlockId as R } from "../../enums/controlEnums.js";
4
+ import { productPairs as T } from "../../enums/productEnums.js";
5
+ import { getItemsBlockConfig as I, setItemsBlockConfig as u, escapeReplacement as N } from "../../utils/nodeConfigUtils.js";
6
+ const D = L.PRICE_SINGLE_PRICE, l = {
7
+ SINGLE_PRICE: "singlePrice"
8
+ };
9
+ class y extends h {
10
+ getId() {
11
+ return D;
12
+ }
13
+ getTemplate() {
14
+ return `
15
+ <div class="container ${L.PRICE_SINGLE_PRICE}">
16
+ ${this._getSinglePrice()}
17
+ </div>
18
+ `;
19
+ }
20
+ onRender() {
21
+ const e = I(this.currentNode);
22
+ this.api.updateValues({ [l.SINGLE_PRICE]: (e == null ? void 0 : e.priceSinglePrice) ?? !1 }), this.api.onValueChanged(l.SINGLE_PRICE, (t) => {
23
+ this._onSinglePriceChange(t);
24
+ });
25
+ }
26
+ onTemplateNodeUpdated(e) {
27
+ super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(() => {
28
+ const t = I(this.currentNode);
29
+ this.api.updateValues({ [l.SINGLE_PRICE]: (t == null ? void 0 : t.priceSinglePrice) ?? !1 });
30
+ });
31
+ }
32
+ _onSinglePriceChange(e) {
33
+ if (console.debug("Single price changed to: ", e), u(this.currentNode, this.api, { priceSinglePrice: e }), !this.currentNode)
34
+ return;
35
+ const t = I(this.currentNode), o = (t == null ? void 0 : t.type) ?? "CART_ITEMS", r = (t == null ? void 0 : t.priceFormatted) ?? !1, i = T.PAIRS_FOR_EXTENSION.price[o], c = T.PAIRS_FOR_EXTENSION.originalPrice[o], [P, p] = e ? [
36
+ r ? i.DEFAULT_PRICE_FORMATTED : i.DEFAULT_PRICE,
37
+ r ? i.DEFAULT_SINGLE_PRICE_FORMATTED : i.DEFAULT_SINGLE_PRICE
38
+ ] : [
39
+ r ? i.DEFAULT_SINGLE_PRICE_FORMATTED : i.DEFAULT_SINGLE_PRICE,
40
+ r ? i.DEFAULT_PRICE_FORMATTED : i.DEFAULT_PRICE
41
+ ], s = r ? c.DEFAULT_PRICE_FORMATTED : c.DEFAULT_PRICE, d = r ? c.DEFAULT_SINGLE_PRICE_FORMATTED : c.DEFAULT_SINGLE_PRICE, [g, C] = e ? [s, d] : [d, s], n = this.currentNode.closest(".items-block"), S = (n == null ? void 0 : n.querySelectorAll(
42
+ `[esd-extension-block-id="${R.PRICE}"]`
43
+ )) || [], E = this.api.getDocumentModifier();
44
+ S.forEach((a) => {
45
+ this._updatePriceBlock(E, a, P, p, e);
46
+ }), ((n == null ? void 0 : n.querySelectorAll(
47
+ `[esd-extension-block-id="${R.ORIGINAL_PRICE}"]`
48
+ )) || []).forEach((a) => {
49
+ this._updatePriceBlock(E, a, g, C, e);
50
+ }), E.apply(new m(
51
+ `Updated price to ${e ? "single" : "total"} price`
52
+ ));
53
+ }
54
+ _updatePriceBlock(e, t, o, r, i) {
55
+ const c = t.getInnerHTML().trim().replace(o, N(r));
56
+ e.modifyHtml(t).setInnerHtml(c), t.querySelectorAll('[product-attr="price"], [product-attr="originalPrice"]').forEach((s) => {
57
+ e.modifyHtml(s).setAttribute("data-single_price", i ? "true" : "false");
58
+ });
59
+ }
60
+ _getSinglePrice() {
61
+ return `
62
+ <div class="display-flex align-items-center justify-content-between">
63
+ <${_.LABEL}
64
+ ${A.LABEL.text}="${this.api.translate("Show Single Product Price")}"
65
+ >
66
+ </${_.LABEL}>
67
+ ${this._GuToggle(l.SINGLE_PRICE)}
68
+ </div>
69
+ `;
70
+ }
71
+ }
72
+ export {
73
+ D as CONTROL_BLOCK_ID,
74
+ y as PriceSinglePriceControl
75
+ };