@useinsider/guido 2.0.0-beta.9a5f81c → 2.0.0-beta.9cda4d8

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 (163) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +55 -39
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +2 -2
  6. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +2 -2
  7. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +5 -5
  8. package/dist/components/organisms/header/RightSlot.vue2.js +10 -10
  9. package/dist/composables/useConfig.js +29 -27
  10. package/dist/composables/useSave.js +13 -11
  11. package/dist/composables/useStripo.js +40 -40
  12. package/dist/config/migrator/index.js +8 -9
  13. package/dist/extensions/Blocks/CouponBlock/constants.js +4 -0
  14. package/dist/extensions/Blocks/CouponBlock/controls/index.js +29 -0
  15. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -4
  16. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +20 -14
  17. package/dist/extensions/Blocks/CouponBlock/template.js +22 -11
  18. package/dist/extensions/Blocks/Items/block.js +40 -39
  19. package/dist/extensions/Blocks/Items/controls/button/link.js +11 -11
  20. package/dist/extensions/Blocks/Items/controls/cardComposition.js +62 -50
  21. package/dist/extensions/Blocks/Items/controls/image/link.js +8 -8
  22. package/dist/extensions/Blocks/Items/controls/name/trimming.js +15 -13
  23. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +1 -1
  24. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +1 -1
  25. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +17 -15
  26. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +15 -15
  27. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +27 -29
  28. package/dist/extensions/Blocks/Items/controls/settingsControl.js +138 -143
  29. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +2 -2
  30. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +48 -58
  31. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +58 -48
  32. package/dist/extensions/Blocks/Items/settingsPanel.js +4 -4
  33. package/dist/extensions/Blocks/Items/store/items-block.js +2 -2
  34. package/dist/extensions/Blocks/Items/template.js +125 -312
  35. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +20 -11
  36. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  37. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  38. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  39. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  47. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  48. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  49. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  50. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  51. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  52. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  53. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  54. package/dist/extensions/Blocks/common-control.js +55 -67
  55. package/dist/extensions/Blocks/controlFactories.js +122 -111
  56. package/dist/guido.css +1 -1
  57. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +25 -26
  58. package/dist/package.json.js +1 -1
  59. package/dist/services/stripoApi.js +6 -10
  60. package/dist/src/@types/config/index.d.ts +2 -2
  61. package/dist/src/@types/config/schemas.d.ts +30 -0
  62. package/dist/src/@types/config/types.d.ts +7 -1
  63. package/dist/src/composables/useConfig.d.ts +8 -0
  64. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +14 -0
  65. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +108 -0
  66. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  67. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +1 -1
  68. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +4 -0
  69. package/dist/src/extensions/Blocks/Items/template.d.ts +1 -20
  70. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  71. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  72. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  73. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  76. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  77. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  81. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  82. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  83. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  84. package/dist/src/extensions/Blocks/common-control.d.ts +9 -14
  85. package/dist/src/extensions/Blocks/controlFactories.d.ts +30 -7
  86. package/dist/src/stores/config.d.ts +164 -1
  87. package/dist/static/styles/components/button.css.js +1 -1
  88. package/dist/static/styles/components/wide-panel.css.js +0 -4
  89. package/dist/static/styles/customEditorStyle.css.js +13 -0
  90. package/dist/stores/config.js +7 -0
  91. package/package.json +2 -2
  92. package/dist/config/migrator/itemsBlockMigrator.js +0 -283
  93. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +0 -172
  94. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  95. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  96. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  97. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  98. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  99. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  100. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  101. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  125. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  126. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  127. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  128. package/dist/src/config/migrator/itemsBlockMigrator.d.ts +0 -6
  129. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +0 -71
  130. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  131. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  132. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  133. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  134. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  135. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  136. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  137. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  138. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  139. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  140. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  141. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  142. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  143. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  144. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  145. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  146. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  147. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  148. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  149. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  150. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  151. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  152. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  153. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
@@ -1,26 +1,26 @@
1
- import { useActionsApi as T } from "./useActionsApi.js";
2
- import { useBlocksConfig as V } from "./useBlocksConfig.js";
3
- import { useConfig as _ } from "./useConfig.js";
4
- import { useCustomInterfaceAppearance as B } from "./useCustomInterfaceAppearance.js";
5
- import { useStripoEventHandler as v } from "./useStripoEventHandler.js";
6
- import { useToaster as A } from "./useToaster.js";
7
- import { displayConditions as F } from "../enums/displayConditions.js";
8
- import { useStripoApi as D } from "../services/stripoApi.js";
9
- import I from "../static/styles/customEditorStyle.css.js";
10
- import { useEditorStore as M } from "../stores/editor.js";
11
- import { dynamicContentToMergeTags as U } from "../utils/genericUtil.js";
12
- import P from "../package.json.js";
13
- const K = (c) => {
14
- const { features: l } = _(), { handleError: u } = A(), { getToken: y, getCustomFonts: S } = D(), { handleEvent: C } = v(), { getStripoBlocksConfig: E } = V(), h = async (i, n = []) => {
15
- var g, f;
16
- const o = M(), { html: r, css: p, forceRecreate: a } = i, { baseBlocks: t, extensions: d } = await E(), m = ((g = l.value) == null ? void 0 : g.displayConditions) ?? !0, b = ((f = l.value) == null ? void 0 : f.modulesDisabled) ?? !1;
1
+ import { useActionsApi as _ } from "./useActionsApi.js";
2
+ import { useBlocksConfig as B } from "./useBlocksConfig.js";
3
+ import { useConfig as v } from "./useConfig.js";
4
+ import { useCustomInterfaceAppearance as A } from "./useCustomInterfaceAppearance.js";
5
+ import { useStripoEventHandler as F } from "./useStripoEventHandler.js";
6
+ import { useToaster as D } from "./useToaster.js";
7
+ import { displayConditions as I } from "../enums/displayConditions.js";
8
+ import { useStripoApi as M } from "../services/stripoApi.js";
9
+ import U from "../static/styles/customEditorStyle.css.js";
10
+ import { useEditorStore as P } from "../stores/editor.js";
11
+ import { dynamicContentToMergeTags as R } from "../utils/genericUtil.js";
12
+ import H from "../package.json.js";
13
+ const W = (c) => {
14
+ const { features: l, template: y } = v(), { handleError: u } = D(), { getToken: C, getCustomFonts: S } = M(), { handleEvent: E } = F(), { getStripoBlocksConfig: h } = B(), w = async (i, n = []) => {
15
+ var m, g, f;
16
+ const o = P(), { html: r, css: p } = i, { baseBlocks: s, extensions: t } = await h(), a = ((m = l.value) == null ? void 0 : m.displayConditions) ?? !0, k = ((g = l.value) == null ? void 0 : g.modulesDisabled) ?? !1, T = ((f = y.value) == null ? void 0 : f.forceRecreate) ?? !1;
17
17
  window.UIEditor.initEditor(
18
18
  document.querySelector("#guido-editor"),
19
19
  {
20
20
  metadata: c,
21
21
  html: r,
22
22
  css: p,
23
- forceRecreate: a,
23
+ forceRecreate: T,
24
24
  locale: "en",
25
25
  undoButtonSelector: "#guido__undo-button",
26
26
  redoButtonSelector: "#guido__redo-button",
@@ -30,19 +30,19 @@ const K = (c) => {
30
30
  customAppearanceMergetags: !0,
31
31
  customAppearanceMergetagsBorderColor: "#f1f3fe",
32
32
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
33
- customViewStyles: I,
34
- conditionsEnabled: m,
35
- customConditionsEnabled: m,
36
- conditionCategories: F,
33
+ customViewStyles: U,
34
+ conditionsEnabled: a,
35
+ customConditionsEnabled: a,
36
+ conditionCategories: I,
37
37
  enableXSSSecurity: !0,
38
- modulesDisabled: b,
38
+ modulesDisabled: k,
39
39
  messageSettingsEnabled: !0,
40
40
  displayGmailAnnotations: !0,
41
41
  displayHiddenPreheader: !1,
42
42
  displayTitle: !1,
43
43
  displayUTM: !1,
44
44
  selectElementAfterDrop: !0,
45
- ...t ? { baseBlocks: t } : {},
45
+ ...s ? { baseBlocks: s } : {},
46
46
  editorFonts: {
47
47
  showDefaultStandardFonts: !0,
48
48
  showDefaultNotStandardFonts: !0,
@@ -50,21 +50,21 @@ const K = (c) => {
50
50
  },
51
51
  mergeTags: [
52
52
  {
53
- entries: U(c.preselectedDynamicContentList)
53
+ entries: R(c.preselectedDynamicContentList)
54
54
  }
55
55
  ],
56
56
  async onTokenRefreshRequest(e) {
57
57
  try {
58
- const s = await y();
59
- e(s);
60
- } catch (s) {
61
- u(s, "Failed to refresh token");
58
+ const d = await C();
59
+ e(d);
60
+ } catch (d) {
61
+ u(d, "Failed to refresh token");
62
62
  }
63
63
  },
64
64
  onTemplateLoaded() {
65
65
  try {
66
- const { importCss: e } = B(), { activateCustomViewStyles: s, updateTimerInClonedTemplate: k } = T();
67
- e(), s(), k(), c.onReady(), o.isStripoInitialized = !0, o.loadingStatus = !1, setTimeout(() => {
66
+ const { importCss: e } = A(), { activateCustomViewStyles: d, updateTimerInClonedTemplate: V } = _();
67
+ e(), d(), V(), c.onReady(), o.isStripoInitialized = !0, o.loadingStatus = !1, setTimeout(() => {
68
68
  o.hasChanges = !1;
69
69
  }, 1e3);
70
70
  } catch (e) {
@@ -83,35 +83,35 @@ const K = (c) => {
83
83
  onDataChanged() {
84
84
  o.hasChanges = !0;
85
85
  },
86
- onEvent: C,
86
+ onEvent: E,
87
87
  ignoreClickOutsideSelectors: [
88
88
  "#guido-dynamic-content-modal",
89
89
  ".in-on-board-wrapper",
90
90
  ".in-drawer__container"
91
91
  ],
92
- extensions: d
92
+ extensions: t
93
93
  }
94
94
  );
95
- }, w = (i) => new Promise((n, o) => {
96
- var d;
95
+ }, b = (i) => new Promise((n, o) => {
96
+ var a;
97
97
  if (document.getElementById("UiEditorScript")) {
98
98
  i(), n();
99
99
  return;
100
100
  }
101
- const r = P.guido, a = `https://email-static.useinsider.com/guido/${(d = r == null ? void 0 : r.stripo) == null ? void 0 : d.version}/UIEditor.js`, t = document.createElement("script");
102
- t.id = "UiEditorScript", t.type = "module", t.src = a, t.onload = () => {
101
+ const r = H.guido, s = `https://email-static.useinsider.com/guido/${(a = r == null ? void 0 : r.stripo) == null ? void 0 : a.version}/UIEditor.js`, t = document.createElement("script");
102
+ t.id = "UiEditorScript", t.type = "module", t.src = s, t.onload = () => {
103
103
  i(), n();
104
104
  }, t.onerror = () => {
105
- o(new Error(`Failed to load Stripo UIEditor script from S3: ${a}`));
105
+ o(new Error(`Failed to load Stripo UIEditor script from S3: ${s}`));
106
106
  }, document.body.appendChild(t);
107
107
  });
108
108
  return { initPlugin: async (i) => {
109
- await w(async () => {
109
+ await b(async () => {
110
110
  const n = await S();
111
- await h(i, n);
111
+ await w(i, n);
112
112
  });
113
113
  } };
114
114
  };
115
115
  export {
116
- K as useStripo
116
+ W as useStripo
117
117
  };
@@ -1,13 +1,12 @@
1
- import { migrateCheckbox as t } from "./checkboxMigrator.js";
1
+ import { migrateCheckbox as m } from "./checkboxMigrator.js";
2
2
  import { migrateCouponBlock as o } from "./couponBlockMigrator.js";
3
- import { migrateItemsBlock as i } from "./itemsBlockMigrator.js";
4
- import { migrateRadioButton as e } from "./radioButtonMigrator.js";
5
- import { migrateRecommendation as a } from "./recommendationMigrator.js";
6
- import { migrateUnsubscribe as g } from "./unsubscribeMigrator.js";
7
- const u = async (r) => {
8
- let m = r;
9
- return m = t(m), m = e(m), m = await g(m), m = o(m), m = a(m), m = i(m), m;
3
+ import { migrateRadioButton as i } from "./radioButtonMigrator.js";
4
+ import { migrateRecommendation as e } from "./recommendationMigrator.js";
5
+ import { migrateUnsubscribe as a } from "./unsubscribeMigrator.js";
6
+ const s = async (t) => {
7
+ let r = t;
8
+ return r = m(r), r = i(r), r = await a(r), r = o(r), r = e(r), r;
10
9
  };
11
10
  export {
12
- u as migrate
11
+ s as migrate
13
12
  };
@@ -0,0 +1,4 @@
1
+ var t = /* @__PURE__ */ ((c) => (c.TEXT_ALIGN = "coupon-block-text-align-control", c.TEXT_COLOR = "coupon-block-text-color-control", c.TEXT_SIZE = "coupon-block-text-size-control", c.TEXT_STYLE = "coupon-block-text-style-control", c.TEXT_FONT_FAMILY = "coupon-block-text-font-family-control", c.TEXT_BACKGROUND = "coupon-block-text-background-control", c.TEXT_PADDINGS = "coupon-block-text-paddings-control", c.TEXT_LINE_SPACING = "coupon-block-text-line-spacing-control", c))(t || {});
2
+ export {
3
+ t as CouponControlId
4
+ };
@@ -0,0 +1,29 @@
1
+ import { createTextAlignControl as t, createTextColorControl as e, createTextSizeControl as n, createTextStyleControl as r, createTextFontFamilyControl as T, createTextBackgroundColorControl as l, createPaddingsControl as C, createTextLineSpacingControl as c } from "../../controlFactories.js";
2
+ import { CouponControlId as o } from "../constants.js";
3
+ const i = t(
4
+ o.TEXT_ALIGN
5
+ ), E = e(
6
+ o.TEXT_COLOR
7
+ ), s = n(
8
+ o.TEXT_SIZE
9
+ ), S = r(
10
+ o.TEXT_STYLE
11
+ ), _ = T(
12
+ o.TEXT_FONT_FAMILY
13
+ ), g = l(
14
+ o.TEXT_BACKGROUND
15
+ ), X = C(
16
+ o.TEXT_PADDINGS
17
+ ), d = c(
18
+ o.TEXT_LINE_SPACING
19
+ );
20
+ export {
21
+ i as TextAlignControl,
22
+ g as TextBackgroundControl,
23
+ E as TextColorControl,
24
+ _ as TextFontFamilyControl,
25
+ d as TextLineSpacingControl,
26
+ X as TextPaddingsControl,
27
+ s as TextSizeControl,
28
+ S as TextStyleControl
29
+ };
@@ -1,8 +1,9 @@
1
1
  import { ExtensionBuilder as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
2
  import { CouponBlock as t } from "./block.js";
3
- import { CouponIconsRegistry as i } from "./iconsRegistry.js";
4
- import { CouponBlockSettings as n } from "./settingsPanel.js";
5
- const p = new o().addBlock(t).withSettingsPanelRegistry(n).withIconsRegistry(i).build();
3
+ import { TextAlignControl as n, TextColorControl as r, TextSizeControl as l, TextStyleControl as d, TextFontFamilyControl as e, TextBackgroundControl as i, TextPaddingsControl as C, TextLineSpacingControl as a } from "./controls/index.js";
4
+ import { CouponIconsRegistry as s } from "./iconsRegistry.js";
5
+ import { CouponBlockSettings as m } from "./settingsPanel.js";
6
+ const u = new o().addBlock(t).withSettingsPanelRegistry(m).addControl(n).addControl(r).addControl(l).addControl(d).addControl(e).addControl(i).addControl(C).addControl(a).withIconsRegistry(s).build();
6
7
  export {
7
- p as default
8
+ u as default
8
9
  };
@@ -1,24 +1,30 @@
1
- import { SettingsPanelRegistry as T, SettingsPanelTab as o, SettingsTab as O, TextControls as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { COUPON_BLOCK_ID as N } from "./block.js";
3
- class _ extends T {
1
+ import { SettingsPanelRegistry as n, SettingsPanelTab as o, SettingsTab as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { COUPON_BLOCK_ID as E } from "./block.js";
3
+ import { CouponControlId as T } from "./constants.js";
4
+ class i extends n {
4
5
  registerBlockControls(e) {
5
- e[N] = [
6
+ e[E] = [
6
7
  new o(
7
- O.SETTINGS,
8
+ t.SETTINGS,
8
9
  [
9
- t.FONT_FAMILY,
10
- t.FONT_SIZE,
11
- t.FORMAT,
12
- t.FONT_COLOR,
13
- t.TEXT_BLOCK_BACKGROUND_COLOR,
14
- t.ALIGN,
15
- t.LINE_HEIGHT,
16
- t.INTERNAL_INDENTS
10
+ T.TEXT_STYLE,
11
+ T.TEXT_ALIGN,
12
+ T.TEXT_PADDINGS
13
+ ]
14
+ ),
15
+ new o(
16
+ t.STYLES,
17
+ [
18
+ T.TEXT_BACKGROUND,
19
+ T.TEXT_FONT_FAMILY,
20
+ T.TEXT_LINE_SPACING,
21
+ T.TEXT_SIZE,
22
+ T.TEXT_COLOR
17
23
  ]
18
24
  )
19
25
  ];
20
26
  }
21
27
  }
22
28
  export {
23
- _ as CouponBlockSettings
29
+ i as CouponBlockSettings
24
30
  };
@@ -1,18 +1,29 @@
1
- const o = `
2
- <td class="coupon-block ins-coupon-code esd-block-text coupon-block-v2">
3
- <p class="ins-title" contenteditable="false">{@COUPON_CODE}</p>
4
- </td>`, e = `
5
- <td
6
- class="coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block"
7
- esd-extension-block-id="coupon-block"
1
+ import { BlockType as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { COUPON_BLOCK_ID as e } from "./block.js";
3
+ const t = `
4
+ <${o.BLOCK_TEXT}
5
+ class="coupon-block ins-coupon-code coupon-block-v2 es-p10"
6
+ align="center"
7
+ esd-extension-block-id="${e}">
8
+ <p
9
+ path="1"
10
+ contenteditable="false"
11
+ style="font-size: 16px; color: #333333;">
12
+ <strong path="1,0">{@COUPON_CODE}</strong>
13
+ </p>
14
+ </${o.BLOCK_TEXT}>
15
+ `, l = `
16
+ <td
17
+ class="coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block"
18
+ esd-extension-block-id="${e}"
8
19
  >
9
20
  <p class="ins-title" contenteditable="false">{@COUPON_CODE}</p>
10
21
  </td>
11
22
  `;
12
- function t() {
13
- return o;
23
+ function s() {
24
+ return t;
14
25
  }
15
26
  export {
16
- e as default,
17
- t as getDefaultTemplate
27
+ l as default,
28
+ s as getDefaultTemplate
18
29
  };
@@ -1,20 +1,20 @@
1
- import { useOnboardingStore as d } from "../../../stores/onboarding.js";
2
- import { Block as u, BlockCompositionType as p, ModificationDescription as n } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
- import { ItemsBlockId as f } from "./enums/controlEnums.js";
4
- import { SETTINGS_ENUMS as c, DefaultConfigValues as o } from "./enums/settingsEnums.js";
5
- import { useItemsBlockStore as g } from "./store/items-block.js";
6
- import { getDefaultTemplate as y } from "./template.js";
7
- import { getItemsBlockContainer as C, getItemsBlockConfig as a, getDefaultItemsBlockConfig as I } from "./utils/nodeConfigUtils.js";
8
- const b = "items-block";
9
- class O extends u {
1
+ import { useOnboardingStore as y } from "../../../stores/onboarding.js";
2
+ import { Block as R, BlockCompositionType as L, ModificationDescription as a } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ import { configAttributes as t } from "./enums/productEnums.js";
4
+ import { DefaultConfigValues as e, SETTINGS_ENUMS as l } from "./enums/settingsEnums.js";
5
+ import { useItemsBlockStore as S } from "./store/items-block.js";
6
+ import { getDefaultTemplate as V } from "./template.js";
7
+ import { syncCurrencySymbolFromAttributes as B, syncCurrencyLocationFromAttributes as U, syncFormattedPriceFromAttributes as k } from "./utils/syncAttributesFromConfigBlock.js";
8
+ const M = "items-block";
9
+ class x extends R {
10
10
  getId() {
11
- return b;
11
+ return M;
12
12
  }
13
13
  getIcon() {
14
14
  return "items-icon";
15
15
  }
16
16
  getBlockCompositionType() {
17
- return p.CONTAINER;
17
+ return L.CONTAINER;
18
18
  }
19
19
  getName() {
20
20
  return this.api.translate("Items");
@@ -23,44 +23,45 @@ class O extends u {
23
23
  return this.api.translate("Items lets you display personalized products based on user behavior.");
24
24
  }
25
25
  getTemplate() {
26
- return y({
27
- orientation: c.ORIENTATION.VERTICAL,
28
- itemsType: c.ITEMS_TYPE.CART_ITEMS,
26
+ return V({
27
+ orientation: l.ORIENTATION.HORIZONTAL,
28
+ itemsType: l.ITEMS_TYPE.CART_ITEMS,
29
29
  itemId: "{{Abandoned Cart Item (1) Url}}",
30
- currencySymbol: o.productPriceCurrencySymbolControlValue,
31
- currencyLocation: o.productPriceCurrencyLocationControlValue,
32
- formattedPrice: o.productPriceFormattedControlValue === "1"
30
+ currencySymbol: e.productPriceCurrencySymbolControlValue,
31
+ currencyLocation: e.productPriceCurrencyLocationControlValue,
32
+ formattedPrice: e.productPriceFormattedControlValue === "1"
33
33
  });
34
34
  }
35
35
  allowInnerBlocksDND() {
36
36
  return !1;
37
37
  }
38
- onCreated(i) {
39
- const e = C(i);
40
- if (!e)
38
+ onCreated(r) {
39
+ const n = r.querySelector("esd-config-block");
40
+ if (!n)
41
41
  return;
42
- const t = e.getNodeConfig(), l = t && Object.keys(t).length > 0, r = a(i);
43
- if (r != null && r.initialized)
44
- l ? r.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...r, blockInstanceId: String(Date.now()) }).apply(new n("Assign block instance ID to block")) : this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(r).apply(new n("Migrate legacy esd-config-block to nodeConfig"));
45
- else {
46
- const m = I();
47
- this.api.getDocumentModifier().modifyHtml(e).setNodeConfig(m).apply(new n("Initialize Items block with default configuration")), d().startOnboarding("itemsOnboarding");
42
+ const o = n, s = o.getAttribute("data-initialized") || "0", u = o.getAttribute(t.BLOCK_INSTANCE_ID), c = () => String(Date.now() + Math.floor(Math.random() * 1e3));
43
+ if (Number(s)) {
44
+ if (!u) {
45
+ const i = c();
46
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, i).apply(new a("Assign block instance ID to legacy block"));
47
+ }
48
+ } else {
49
+ const i = e.itemsType, I = e.cartItemsSelectControlValue, d = e.cardOrientationControlValue, m = e.productNameTrimmingControlValue, C = e.productPriceHideDiscountControlValue, b = e.productPriceFormattedControlValue, T = e.productPriceCurrencySymbolControlValue, A = e.productPriceCurrencyLocationControlValue, E = e.productButtonLinkControlValue, O = e.productImageLinkControlValue, _ = e.productImageVisible, p = e.productNameVisible, N = e.productQuantityVisible, f = e.productPriceVisible, g = e.productOriginalPriceVisible, D = e.productButtonVisible, P = c();
50
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", i).setAttribute(t.TYPE, i).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, I).setAttribute(t.ORIENTATION, d).setAttribute(t.PRODUCT_NAME_TRIMMING, m).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, C).setAttribute(t.PRODUCT_PRICE_FORMATTED, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, T).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, A).setAttribute(t.PRODUCT_BUTTON_LINK, E).setAttribute(t.PRODUCT_IMAGE_LINK, O).setAttribute(t.BLOCK_INSTANCE_ID, P).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
51
+ t.QUANTITY_CONTROL_ENABLED,
52
+ e.productQuantityControlEnabled
53
+ ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).setAttribute(t.PRODUCT_IMAGE_VISIBLE, _).setAttribute(t.PRODUCT_NAME_VISIBLE, p).setAttribute(t.PRODUCT_QUANTITY_VISIBLE, N).setAttribute(t.PRODUCT_PRICE_VISIBLE, f).setAttribute(t.PRODUCT_ORIGINAL_PRICE_VISIBLE, g).setAttribute(t.PRODUCT_BUTTON_VISIBLE, D).apply(new a("Initialize config block attributes with defaults")), y().startOnboarding("itemsOnboarding");
48
54
  }
49
- const s = `[esd-extension-block-id="${f.IMAGE}"] img`;
50
- this.api.getDocumentModifier().modifyHtml(i.querySelector(s)).setStyle("object-fit", "contain").apply(new n("Updated image object-fit"));
51
55
  }
52
- onSelect(i) {
53
- const e = g(), t = a(i);
54
- t && (e.setItemsType(t.type || o.itemsType), e.setItemIds(t.itemsSelectValue || o.cartItemsSelectControlValue), e.setOrientation(t.orientation || o.cardOrientationControlValue), e.setCurrencySymbol(
55
- t.priceCurrencySymbol || o.productPriceCurrencySymbolControlValue
56
- ), e.setCurrencyLocation(
57
- t.priceCurrencyLocation || o.productPriceCurrencyLocationControlValue
58
- ), e.setFormattedPrice(
59
- t.priceFormatted ?? o.productPriceFormattedControlValue === "1"
60
- ));
56
+ onSelect(r) {
57
+ const n = r.querySelector("esd-config-block"), o = S();
58
+ if (!n)
59
+ return;
60
+ const s = n, u = s.getAttribute(t.TYPE) || e.itemsType, c = s.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, i = s.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
+ o.setItemsType(u), o.setItemIds(c), o.setOrientation(i), B(r), U(r), k(r);
61
62
  }
62
63
  }
63
64
  export {
64
- b as BLOCK_ID,
65
- O as ItemsBlock
65
+ M as BLOCK_ID,
66
+ x as ItemsBlock
66
67
  };
@@ -1,32 +1,32 @@
1
1
  var r = Object.defineProperty;
2
- var a = (n, e, t) => e in n ? r(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var i = (n, e, t) => a(n, typeof e != "symbol" ? e + "" : e, t);
2
+ var a = (o, e, t) => e in o ? r(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
3
+ var s = (o, e, t) => a(o, typeof e != "symbol" ? e + "" : e, t);
4
4
  import { CommonControl as u } from "../../../common-control.js";
5
5
  import { ItemsBlockControlId as d } from "../../enums/controlEnums.js";
6
6
  import { useItemsBlockStore as l } from "../../store/items-block.js";
7
7
  import { syncButtonLinkFromAttributes as h } from "../../utils/syncAttributesFromConfigBlock.js";
8
8
  import { updateConfigBlockAttributes as m } from "../../utils/updateAttributes.js";
9
- const s = d.BUTTON_LINK, o = {
9
+ const i = d.BUTTON_LINK, n = {
10
10
  LINK: "link"
11
11
  };
12
12
  class C extends u {
13
13
  constructor() {
14
14
  super(...arguments);
15
- i(this, "store", l());
15
+ s(this, "store", l());
16
16
  }
17
17
  getId() {
18
- return s;
18
+ return i;
19
19
  }
20
20
  getTemplate() {
21
21
  return `
22
- <div class="container ${s}">
22
+ <div class="${i}">
23
23
  ${this._getLink()}
24
24
  </div>
25
25
  `;
26
26
  }
27
27
  onRender() {
28
28
  this.api.updateValues({
29
- [o.LINK]: this.store.buttonLink
29
+ [n.LINK]: this.store.buttonLink
30
30
  }), this._listenToFormUpdates();
31
31
  }
32
32
  onTemplateNodeUpdated(t) {
@@ -34,14 +34,14 @@ class C extends u {
34
34
  () => h(this.currentNode),
35
35
  () => {
36
36
  this.api.updateValues({
37
- [o.LINK]: this.store.buttonLink
37
+ [n.LINK]: this.store.buttonLink
38
38
  });
39
39
  }
40
40
  );
41
41
  }
42
42
  _listenToFormUpdates() {
43
43
  this.api.onValueChanged(
44
- o.LINK,
44
+ n.LINK,
45
45
  (t) => this._onLinkChange(t)
46
46
  );
47
47
  }
@@ -53,7 +53,7 @@ class C extends u {
53
53
  ${this._GuOneColumn([
54
54
  this._GuLabel({ text: "Link" }),
55
55
  this._GuTextInput({
56
- name: o.LINK,
56
+ name: n.LINK,
57
57
  placeholder: "Enter Link",
58
58
  className: "es-100",
59
59
  disabled: !0
@@ -64,5 +64,5 @@ class C extends u {
64
64
  }
65
65
  export {
66
66
  C as ButtonLinkControl,
67
- s as CONTROL_BLOCK_ID
67
+ i as CONTROL_BLOCK_ID
68
68
  };