@useinsider/guido 1.0.3-beta.57a0e76 → 1.0.3-beta.57a56eb

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 +0 -3
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +48 -49
  4. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
  5. package/dist/composables/useActionsApi.js +26 -43
  6. package/dist/composables/useBlocksConfig.js +2 -1
  7. package/dist/composables/useHtmlCompiler.js +13 -15
  8. package/dist/composables/useHtmlValidator.js +35 -36
  9. package/dist/composables/useStripo.js +44 -48
  10. package/dist/enums/extensions/recommendationBlock.js +2 -2
  11. package/dist/enums/onboarding.js +3 -7
  12. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  13. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  14. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  15. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  16. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  17. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  18. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  19. package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
  20. package/dist/extensions/Blocks/common-control.js +110 -174
  21. package/dist/guido.css +1 -1
  22. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +168 -213
  23. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  24. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  25. package/dist/package.json.js +1 -1
  26. package/dist/services/recommendationApi.js +19 -13
  27. package/dist/src/composables/useActionsApi.d.ts +0 -2
  28. package/dist/src/enums/onboarding.d.ts +0 -4
  29. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  30. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  31. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  32. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  33. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  34. package/dist/src/stores/onboarding.d.ts +0 -334
  35. package/dist/static/styles/customEditorStyle.css.js +1 -1
  36. package/dist/stores/onboarding.js +12 -20
  37. package/dist/utils/genericUtil.js +17 -16
  38. package/package.json +4 -4
  39. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  40. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  41. package/dist/composables/useTimerClone.js +0 -53
  42. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  43. package/dist/extensions/Blocks/Items/block.js +0 -67
  44. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  45. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  46. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  47. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  48. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  49. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  50. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  51. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  52. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  53. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -312
  54. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  55. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -273
  56. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -76
  57. package/dist/extensions/Blocks/Items/extension.js +0 -19
  58. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  59. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  60. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  61. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -60
  62. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -131
  63. package/dist/extensions/Blocks/Items/store/items-block.js +0 -71
  64. package/dist/extensions/Blocks/Items/template.js +0 -189
  65. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  66. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  67. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -67
  68. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -44
  69. package/dist/extensions/Blocks/controlFactories.js +0 -223
  70. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  71. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  72. package/dist/node_modules/lodash-es/_Set.js +0 -6
  73. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  74. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  75. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  76. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  77. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  78. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  79. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  80. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  81. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  82. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  83. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  84. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  85. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  86. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  87. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  88. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  89. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  90. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  91. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  92. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  93. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  94. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  95. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  96. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  97. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  98. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  99. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  100. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  101. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  102. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  103. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  104. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  105. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  106. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  107. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  108. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  109. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  110. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  111. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  112. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  113. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  114. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  115. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  116. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  117. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  118. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  119. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  120. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  121. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  122. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  123. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  124. package/dist/node_modules/lodash-es/get.js +0 -8
  125. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  126. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  127. package/dist/node_modules/lodash-es/keys.js +0 -9
  128. package/dist/node_modules/lodash-es/map.js +0 -11
  129. package/dist/node_modules/lodash-es/property.js +0 -10
  130. package/dist/node_modules/lodash-es/range.js +0 -5
  131. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  132. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  133. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  134. package/dist/node_modules/lodash-es/toString.js +0 -7
  135. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  136. package/dist/src/composables/useTimerClone.d.ts +0 -6
  137. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  138. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  139. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  140. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  141. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  142. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  143. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  144. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  145. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  146. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  147. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  148. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  149. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  150. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -162
  151. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -49
  152. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  153. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  154. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  155. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -41
  156. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  157. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  158. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  159. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -44
  160. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  161. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  162. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  163. package/dist/utils/pairProductVariables.js +0 -136
package/README.md CHANGED
@@ -600,9 +600,6 @@ Create a `.env` file with the following variables: (You can get env variables fr
600
600
  VITE_STRIPO_PLUGIN_ID=your_plugin_id
601
601
  VITE_STRIPO_SECRET_KEY=your_secret_key
602
602
  VITE_STRIPO_ROLE=your_role
603
-
604
- # Playwright Test Configuration (Optional - for local debugging only)
605
- HEADED=false # Set to 'true' to run tests with visible browser
606
603
  ```
607
604
 
608
605
  ### Project Structure
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "48a9b534"
15
+ "23c413c9"
16
16
  );
17
17
  const v = s.exports;
18
18
  export {
@@ -1,24 +1,23 @@
1
- import { defineComponent as z, defineAsyncComponent as L, ref as K, computed as W, watch as j, onMounted as q, onUnmounted as J } from "vue";
2
- import { provideGuidoActions as Q } from "../composables/useGuidoActions.js";
3
- import { usePartner as V } from "../composables/usePartner.js";
4
- import { useStripo as X } from "../composables/useStripo.js";
5
- import { useTimerClone as Y } from "../composables/useTimerClone.js";
6
- import { migrate as _ } from "../config/migrator/index.js";
7
- import { DefaultUsername as Z, DefaultMessageType as $, DefaultGuidoConfig as ee } from "../enums/defaults.js";
8
- import oe from "./organisms/base/Toaster.vue.js";
9
- import te from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
10
- import ne from "./organisms/header/HeaderWrapper.vue.js";
11
- import re from "./organisms/LoadingWrapper.vue.js";
12
- import ie from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
13
- import se from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
14
- import { useStripoApi as ae } from "../services/stripoApi.js";
15
- import { useConfigStore as ce } from "../stores/config.js";
16
- import { useDynamicContentStore as me } from "../stores/dynamic-content.js";
17
- import { useEditorStore as de } from "../stores/editor.js";
18
- import { usePreviewStore as le } from "../stores/preview.js";
19
- import { useUnsubscribeStore as ue } from "../stores/unsubscribe.js";
20
- import pe from "../node_modules/lodash-es/merge.js";
21
- const Ae = /* @__PURE__ */ z({
1
+ import { defineComponent as O, defineAsyncComponent as I, ref as z, computed as U, watch as B, onMounted as K, onUnmounted as j } from "vue";
2
+ import { provideGuidoActions as q } from "../composables/useGuidoActions.js";
3
+ import { usePartner as J } from "../composables/usePartner.js";
4
+ import { useStripo as Q } from "../composables/useStripo.js";
5
+ import { migrate as L } from "../config/migrator/index.js";
6
+ import { DefaultUsername as V, DefaultMessageType as X, DefaultGuidoConfig as Y } from "../enums/defaults.js";
7
+ import Z from "./organisms/base/Toaster.vue.js";
8
+ import $ from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
9
+ import ee from "./organisms/header/HeaderWrapper.vue.js";
10
+ import oe from "./organisms/LoadingWrapper.vue.js";
11
+ import te from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
12
+ import ne from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
13
+ import { useStripoApi as re } from "../services/stripoApi.js";
14
+ import { useConfigStore as ie } from "../stores/config.js";
15
+ import { useDynamicContentStore as se } from "../stores/dynamic-content.js";
16
+ import { useEditorStore as ae } from "../stores/editor.js";
17
+ import { usePreviewStore as ce } from "../stores/preview.js";
18
+ import { useUnsubscribeStore as me } from "../stores/unsubscribe.js";
19
+ import de from "../node_modules/lodash-es/merge.js";
20
+ const Ue = /* @__PURE__ */ O({
22
21
  __name: "Guido",
23
22
  props: {
24
23
  templateId: null,
@@ -33,34 +32,34 @@ const Ae = /* @__PURE__ */ z({
33
32
  templateConfig: null
34
33
  },
35
34
  emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
36
- setup(A, { expose: N, emit: o }) {
37
- const u = A, F = L(
35
+ setup(W, { expose: _, emit: o }) {
36
+ const u = W, A = I(
38
37
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
39
- ), H = L(
38
+ ), N = I(
40
39
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
41
- ), p = K(), i = me(), g = ue(), f = ce(), s = de(), O = le(), n = W(() => s.hasChanges), { getPartnerName: y, getProductType: v, isTestPartner: R } = V(), h = () => {
40
+ ), p = z(), i = se(), g = me(), f = ie(), s = ae(), F = ce(), n = U(() => s.hasChanges), { getPartnerName: y, getProductType: v, isTestPartner: H } = J(), b = () => {
42
41
  var e;
43
42
  return (e = p.value) == null ? void 0 : e.handleSave(!0);
44
43
  }, {
45
44
  templateId: a,
46
- userId: b,
47
- guidoConfig: C,
45
+ userId: C,
46
+ guidoConfig: h,
48
47
  templateConfig: t,
49
48
  html: r = "",
50
49
  css: S = "",
51
50
  partnerName: c = y(),
52
51
  productType: m = v(),
53
- messageType: w = $,
54
- username: D = Z
52
+ messageType: w = X,
53
+ username: D = V
55
54
  } = u, d = (t == null ? void 0 : t.preselectedDynamicContentList) || [];
56
- s.templateId = a, window.GuidoConfig = pe(ee, C), window.GuidoConfig.partner = {
55
+ s.templateId = a, window.GuidoConfig = de(Y, h), window.GuidoConfig.partner = {
57
56
  partnerName: c,
58
57
  productType: m,
59
58
  messageType: w
60
59
  }, f.templateConfig = t;
61
- const { initPlugin: T } = X({
60
+ const { initPlugin: E } = Q({
62
61
  emailId: a,
63
- userId: b,
62
+ userId: C,
64
63
  username: D,
65
64
  partnerName: c,
66
65
  productType: m,
@@ -68,11 +67,11 @@ const Ae = /* @__PURE__ */ z({
68
67
  onReady: () => {
69
68
  console.debug("guido:ready"), o("ready");
70
69
  }
71
- }), { getDefaultTemplate: E } = ae(), { cloneTimersOnSave: k, hasTimerBlocks: P } = Y(), x = W(() => {
70
+ }), { getDefaultTemplate: T } = re(), R = U(() => {
72
71
  var e;
73
72
  return !((e = window.GuidoConfig) != null && e.useHeader);
74
73
  });
75
- Q({
74
+ q({
76
75
  onBack: () => {
77
76
  console.debug("guido:back"), o("back");
78
77
  },
@@ -86,50 +85,50 @@ const Ae = /* @__PURE__ */ z({
86
85
  console.debug("guido:test-email:click"), o("test-email:click");
87
86
  }
88
87
  });
89
- const G = (e) => {
88
+ const P = (e) => {
90
89
  console.debug("dynamic-content:close", e), i.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
91
- }, I = () => {
90
+ }, k = () => {
92
91
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
93
92
  };
94
- j(() => n.value, () => {
93
+ B(() => n.value, () => {
95
94
  o("on-change", n.value);
96
95
  });
97
96
  const l = (e) => {
98
- const U = e, { attribute: B, position: M } = U.detail;
99
- console.debug("dynamic-content:open", U.detail), o("dynamic-content:open", B, M);
97
+ const G = e, { attribute: x, position: M } = G.detail;
98
+ console.debug("dynamic-content:open", G.detail), o("dynamic-content:open", x, M);
100
99
  };
101
- return q(async () => {
100
+ return K(async () => {
102
101
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
103
102
  try {
104
103
  g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
105
104
  let e = {
106
- html: r && await _(r),
105
+ html: r && await L(r),
107
106
  css: S,
108
107
  forceRecreate: !0
109
108
  // TODO: It should be false for old templates. We will communicate with Stripo
110
109
  };
111
- e.html || (e = await E(), e.html = await _(e.html)), P(e.html) && (e.html = await k(e.html)), await T(e), i.selectedDynamicContentList = d;
110
+ e.html || (e = await T(), e.html = await L(e.html)), await E(e), i.selectedDynamicContentList = d;
112
111
  } catch (e) {
113
112
  console.error("Failed to initialize Stripo editor:", e);
114
113
  }
115
114
  document.addEventListener("dynamic-content:open", l);
116
- }), J(() => {
115
+ }), j(() => {
117
116
  document.removeEventListener("dynamic-content:open", l);
118
117
  try {
119
118
  window.UIEditor.removeEditor();
120
119
  } catch {
121
120
  console.debug("Failed to remove Stripo editor: No editor found");
122
121
  }
123
- }), N({
122
+ }), _({
124
123
  dynamicContent: {
125
- insert: G,
126
- close: I
124
+ insert: P,
125
+ close: k
127
126
  },
128
127
  hasChanges: n,
129
- saveSilent: h
130
- }), { __sfc: !0, PreviewContainer: F, OnboardingWrapper: H, headerWrapperRef: p, dynamicContentStore: i, unsubscribeStore: g, props: u, configStore: f, editorStore: s, previewStore: O, hasChanges: n, getPartnerName: y, getProductType: v, isTestPartner: R, saveSilent: h, templateId: a, userId: b, guidoConfig: C, templateConfig: t, html: r, css: S, partnerName: c, productType: m, messageType: w, username: D, preselectedDynamicContentList: d, emit: o, initPlugin: T, getDefaultTemplate: E, cloneTimersOnSave: k, hasTimerBlocks: P, noHeader: x, insertDynamicContent: G, closeDynamicContent: I, handleDynamicContentOpen: l, Toaster: oe, FilterSelectionDrawer: te, HeaderWrapper: ne, LoadingWrapper: re, SaveAsTemplateDrawer: ie, UnsubscribeWrapper: se };
128
+ saveSilent: b
129
+ }), { __sfc: !0, PreviewContainer: A, OnboardingWrapper: N, headerWrapperRef: p, dynamicContentStore: i, unsubscribeStore: g, props: u, configStore: f, editorStore: s, previewStore: F, hasChanges: n, getPartnerName: y, getProductType: v, isTestPartner: H, saveSilent: b, templateId: a, userId: C, guidoConfig: h, templateConfig: t, html: r, css: S, partnerName: c, productType: m, messageType: w, username: D, preselectedDynamicContentList: d, emit: o, initPlugin: E, getDefaultTemplate: T, noHeader: R, insertDynamicContent: P, closeDynamicContent: k, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: $, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
131
130
  }
132
131
  });
133
132
  export {
134
- Ae as default
133
+ Ue as default
135
134
  };
@@ -1,25 +1,23 @@
1
1
  import { defineComponent as b, computed as e, onMounted as O, watch as t } from "vue";
2
- import u from "./AMPOnboarding.vue.js";
3
- import v from "./GenericOnboarding.vue.js";
4
- import l from "./ItemsOnboarding.vue.js";
5
- import y from "./NewVersionPopup.vue.js";
6
- import S from "./TextBlockOnboarding.vue.js";
7
- import h from "./VersionHistoryOnboarding.vue.js";
8
- import { usePartner as w } from "../../../composables/usePartner.js";
9
- import { useEditorStore as P } from "../../../stores/editor.js";
10
- import { useOnboardingStore as _ } from "../../../stores/onboarding.js";
11
- import { usePreviewStore as A } from "../../../stores/preview.js";
12
- const G = /* @__PURE__ */ b({
2
+ import { usePartner as u } from "../../../composables/usePartner.js";
3
+ import { useEditorStore as v } from "../../../stores/editor.js";
4
+ import { useOnboardingStore as l } from "../../../stores/onboarding.js";
5
+ import { usePreviewStore as y } from "../../../stores/preview.js";
6
+ import S from "./AMPOnboarding.vue.js";
7
+ import h from "./GenericOnboarding.vue.js";
8
+ import w from "./NewVersionPopup.vue.js";
9
+ import P from "./TextBlockOnboarding.vue.js";
10
+ import _ from "./VersionHistoryOnboarding.vue.js";
11
+ const F = /* @__PURE__ */ b({
13
12
  __name: "OnboardingWrapper",
14
13
  emits: ["onboarding-finished"],
15
- setup(H, { emit: f }) {
16
- const o = _(), r = P(), s = A(), { isTestPartner: a } = w(), p = e(() => r.isStripoInitialized), d = e(() => a()), m = [
17
- { type: "newVersionPopup", component: y },
18
- { type: "genericOnboarding", component: v },
19
- { type: "textBlockOnboarding", component: S },
20
- { type: "versionHistoryOnboarding", component: h },
21
- { type: "ampOnboarding", component: u },
22
- { type: "itemsOnboarding", component: l }
14
+ setup(A, { emit: f }) {
15
+ const o = l(), r = v(), s = y(), { isTestPartner: a } = u(), p = e(() => r.isStripoInitialized), d = e(() => a()), m = [
16
+ { type: "newVersionPopup", component: w },
17
+ { type: "genericOnboarding", component: h },
18
+ { type: "textBlockOnboarding", component: P },
19
+ { type: "versionHistoryOnboarding", component: _ },
20
+ { type: "ampOnboarding", component: S }
23
21
  ], c = (n) => d.value || !p.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), g = e(() => m.filter((n) => c(n.type)));
24
22
  return O(async () => {
25
23
  await o.fetchUserModalState();
@@ -42,5 +40,5 @@ const G = /* @__PURE__ */ b({
42
40
  }
43
41
  });
44
42
  export {
45
- G as default
43
+ F as default
46
44
  };
@@ -1,7 +1,7 @@
1
- import { useToaster as w } from "./useToaster.js";
2
- const S = () => {
3
- const { handleError: l } = w(), s = (t = {}) => new Promise((e, i) => {
4
- const n = { ...{
1
+ import { useToaster as g } from "./useToaster.js";
2
+ const A = () => {
3
+ const { handleError: l } = g(), n = (t = {}) => new Promise((e, a) => {
4
+ const i = { ...{
5
5
  minimize: !0,
6
6
  utmEntity: {
7
7
  utmSource: "",
@@ -17,32 +17,32 @@ const S = () => {
17
17
  ]
18
18
  },
19
19
  mergeTags: ["Tag1", "Tag2"],
20
- forceAmp: !1,
20
+ forseAmp: !1,
21
21
  resetDataSavedFlag: !1,
22
22
  disableLineHeightsReplace: !0
23
23
  }, ...t }, m = {
24
- callback: (o, p, d, c, u) => {
25
- o ? i(o) : e({
26
- html: p,
27
- ampHtml: d,
28
- ampErrors: c,
29
- displayConditions: u
24
+ callback: (s, c, p, u, d) => {
25
+ s ? a(s) : e({
26
+ html: c,
27
+ ampHtml: p,
28
+ ampErrors: u,
29
+ displayConditions: d
30
30
  });
31
31
  },
32
- ...n
32
+ ...i
33
33
  };
34
34
  window.StripoEditorApi.actionsApi.compileEmail(m);
35
35
  });
36
36
  return {
37
- getCompiledEmail: s,
37
+ getCompiledEmail: n,
38
38
  getTemplateData: () => new Promise((t) => {
39
- const e = ({ html: i, css: a, width: n, height: r, utmParams: m, syncModulesIds: o }) => t({
40
- html: i,
41
- css: a,
42
- width: n,
39
+ const e = ({ html: a, css: o, width: i, height: r, utmParams: m, syncModulesIds: s }) => t({
40
+ html: a,
41
+ css: o,
42
+ width: i,
43
43
  height: r,
44
44
  utmParams: m,
45
- syncModulesIds: o
45
+ syncModulesIds: s
46
46
  });
47
47
  window.StripoEditorApi.actionsApi.getTemplateData(e);
48
48
  }),
@@ -53,15 +53,15 @@ const S = () => {
53
53
  try {
54
54
  const {
55
55
  html: e,
56
- displayConditions: i,
57
- ampHtml: a = "",
58
- ampErrors: n = []
59
- } = await s({ minimize: !1, resetDataSavedFlag: !1, ...t });
56
+ displayConditions: a,
57
+ ampHtml: o = "",
58
+ ampErrors: i = []
59
+ } = await n({ minimize: !1, resetDataSavedFlag: !1, ...t });
60
60
  return {
61
61
  html: e,
62
- ampHtml: a,
63
- ampErrors: n,
64
- displayConditions: i
62
+ ampHtml: o,
63
+ ampErrors: i,
64
+ displayConditions: a
65
65
  };
66
66
  } catch (e) {
67
67
  return l(e, "Error loading preview"), {
@@ -71,26 +71,9 @@ const S = () => {
71
71
  displayConditions: []
72
72
  };
73
73
  }
74
- },
75
- updateTimerInClonedTemplate: () => new Promise((t) => {
76
- var e, i;
77
- if (typeof ((i = (e = window.StripoEditorApi) == null ? void 0 : e.actionsApi) == null ? void 0 : i.updateTimerInClonedTemplate) != "function") {
78
- t(null);
79
- return;
80
- }
81
- try {
82
- window.StripoEditorApi.actionsApi.updateTimerInClonedTemplate((a, n) => {
83
- a ? (l(a, "Failed to update timer in cloned template"), t(null)) : t(n || null);
84
- });
85
- } catch (a) {
86
- l(a, "Failed to call updateTimerInClonedTemplate"), t(null);
87
- }
88
- }),
89
- updateHtmlAndCss: (t, e) => {
90
- window.StripoEditorApi.actionsApi.updateHtmlAndCss(t, e);
91
74
  }
92
75
  };
93
76
  };
94
77
  export {
95
- S as useActionsApi
78
+ A as useActionsApi
96
79
  };
@@ -19,7 +19,8 @@ const l = {
19
19
  "recommendation-block": () => import("../extensions/Blocks/Recommendation/extension.js"),
20
20
  "unsubscribe-block": () => import("../extensions/Blocks/Unsubscribe/extension.js"),
21
21
  "coupon-block": () => import("../extensions/Blocks/CouponBlock/extension.js"),
22
- "items-block": () => import("../extensions/Blocks/Items/extension.js")
22
+ "items-block": null
23
+ // TODO: Add ItemsBlock extension when available
23
24
  }, a = (n) => {
24
25
  if (!n || !n.length)
25
26
  return {};
@@ -1,27 +1,25 @@
1
1
  import { defaultHtmlCompilerRules as t } from "../config/compiler/htmlCompilerRules.js";
2
- import { itemsCompilerRules as p } from "../config/compiler/itemsCompilerRules.js";
3
- import { outlookCompilerRules as s } from "../config/compiler/outlookCompilerRules.js";
4
- import { recommendationCompilerRules as u } from "../config/compiler/recommendationCompilerRules.js";
5
- import { socialCompilerRules as n } from "../config/compiler/socialCompilerRules.js";
6
- import { unsubscribeCompilerRules as c } from "../config/compiler/unsubscribeCompilerRules.js";
7
- import { createHtmlCompiler as f } from "../utils/htmlCompiler.js";
8
- import { useConfig as R } from "./useConfig.js";
9
- const x = () => {
10
- const { config: e } = R(), m = e.htmlCompilerRules || [], l = [
2
+ import { outlookCompilerRules as p } from "../config/compiler/outlookCompilerRules.js";
3
+ import { recommendationCompilerRules as s } from "../config/compiler/recommendationCompilerRules.js";
4
+ import { socialCompilerRules as u } from "../config/compiler/socialCompilerRules.js";
5
+ import { unsubscribeCompilerRules as n } from "../config/compiler/unsubscribeCompilerRules.js";
6
+ import { createHtmlCompiler as c } from "../utils/htmlCompiler.js";
7
+ import { useConfig as f } from "./useConfig.js";
8
+ const h = () => {
9
+ const { config: e } = f(), l = e.htmlCompilerRules || [], m = [
11
10
  ...!!e.ignoreDefaultHtmlCompilerRules ? [] : t,
12
- ...u,
13
- ...c,
14
- ...p,
15
11
  ...s,
16
12
  ...n,
17
- ...m.map((o, i) => ({
13
+ ...p,
14
+ ...u,
15
+ ...l.map((o, i) => ({
18
16
  ...o,
19
17
  priority: o.priority + 1e3 + i
20
18
  // Ensure additional rules run after default rules
21
19
  }))
22
- ], r = f(l);
20
+ ], r = c(m);
23
21
  return { compileHtml: (o) => r.compile(o) };
24
22
  };
25
23
  export {
26
- x as useHtmlCompiler
24
+ h as useHtmlCompiler
27
25
  };
@@ -1,19 +1,18 @@
1
- import { useConfig as V } from "./useConfig.js";
2
- import { TemplateTypes as D } from "../enums/defaults.js";
3
- import { DISPLAY_CONDITIONS_REGEX as H, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as P, CampaignCouldNotBeSavedKey as R, CanNotMakeAnyChangesForRunningKey as _ } from "../enums/html-validator.js";
1
+ import { useConfig as H } from "./useConfig.js";
2
+ import { TemplateTypes as V } from "../enums/defaults.js";
3
+ import { DISPLAY_CONDITIONS_REGEX as D, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as P, CampaignCouldNotBeSavedKey as R, CanNotMakeAnyChangesForRunningKey as _ } from "../enums/html-validator.js";
4
4
  import { ToasterTypeOptions as l } from "../enums/toaster.js";
5
- import { itemsBlockDynamicVariables as G } from "../extensions/Blocks/Items/enums/productEnums.js";
6
- import { useRecommendationStore as $ } from "../stores/recommendation.js";
7
- import { base64EncodeWithSpecialChars as j } from "../utils/base64.js";
8
- import { useHttp as q } from "./useHttp.js";
9
- import { useToaster as M } from "./useToaster.js";
10
- import { useTranslations as X } from "./useTranslations.js";
11
- const ie = () => {
5
+ import { useRecommendationStore as G } from "../stores/recommendation.js";
6
+ import { base64EncodeWithSpecialChars as $ } from "../utils/base64.js";
7
+ import { useHttp as j } from "./useHttp.js";
8
+ import { useToaster as q } from "./useToaster.js";
9
+ import { useTranslations as M } from "./useTranslations.js";
10
+ const se = () => {
12
11
  var d;
13
- const { showToaster: c } = M(), { post: y } = q(), { config: h } = V(), a = X(), m = $(), u = ((d = h.partner) == null ? void 0 : d.messageType) === D.transactional, v = async (e) => {
12
+ const { showToaster: c } = q(), { post: y } = j(), { config: h } = H(), a = M(), m = G(), u = ((d = h.partner) == null ? void 0 : d.messageType) === V.transactional, v = async (e) => {
14
13
  const t = await y(
15
14
  "/newsletter/template-library/check-template-html-body",
16
- { html: j(e) }
15
+ { html: $(e) }
17
16
  ), { status: n, message: r } = t.data;
18
17
  return n || c({
19
18
  type: l.Alert,
@@ -26,10 +25,10 @@ const ie = () => {
26
25
  const t = e.match(/({%(.*?)%})/g);
27
26
  let n = !0;
28
27
  return t !== null && !u && t.forEach((r) => {
29
- const i = r.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
30
- if (i && i.length > 0) {
31
- const [o] = i;
32
- C(o) && !s.includes(o) && (c({
28
+ const o = r.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
29
+ if (o && o.length > 0) {
30
+ const [i] = o;
31
+ C(i) && !s.includes(i) && (c({
33
32
  type: l.Warning,
34
33
  message: a("custom-fields.invalid-custom-fields")
35
34
  }), n = !1);
@@ -59,19 +58,19 @@ const ie = () => {
59
58
  }, k = (e, s) => {
60
59
  const t = e.match(/{{([a-zA-Z0-9_\s]*)}}/gm);
61
60
  if (t && !u) {
62
- const n = new Set(s.map((i) => i.toLowerCase())), r = [];
63
- if (t.forEach((i) => {
64
- const o = i.slice(2, -2).trim().toLowerCase();
65
- (!n.has(o) || o === "") && r.push(o);
61
+ const n = new Set(s.map((o) => o.toLowerCase())), r = [];
62
+ if (t.forEach((o) => {
63
+ const i = o.slice(2, -2).trim().toLowerCase();
64
+ (!n.has(i) || i === "") && r.push(i);
66
65
  }), r.length > 0) {
67
- const i = `
66
+ const o = `
68
67
  <ul>
69
- ${r.map((o) => `<li>${o}</li>`).join("")}
68
+ ${r.map((i) => `<li>${i}</li>`).join("")}
70
69
  </ul>
71
70
  `;
72
71
  return c({
73
72
  type: l.Alert,
74
- message: a("custom-fields.invalid-custom-fields") + i
73
+ message: a("custom-fields.invalid-custom-fields") + o
75
74
  }), !1;
76
75
  }
77
76
  }
@@ -80,11 +79,11 @@ const ie = () => {
80
79
  const s = e.match(/{%(.*?)%}/g), t = [];
81
80
  let n = !0;
82
81
  if (s && s.forEach((r) => {
83
- const i = r.match(H), o = r.match(P), B = (i == null ? void 0 : i.join("")) || "";
84
- (!i || r !== B) && !o && (c({
82
+ const o = r.match(D), i = r.match(P), B = (o == null ? void 0 : o.join("")) || "";
83
+ (!o || r !== B) && !i && (c({
85
84
  type: l.Alert,
86
85
  message: a("newsletter.display-conditions-invalid-syntax")
87
- }), n = !1), i && i.forEach((f) => {
86
+ }), n = !1), o && o.forEach((f) => {
88
87
  f.trim() === "=" && (c({
89
88
  type: l.Alert,
90
89
  message: a("custom-conditions.wrong-equality-operators")
@@ -95,8 +94,8 @@ const ie = () => {
95
94
  });
96
95
  });
97
96
  }), t.length) {
98
- const r = t.filter((o) => o === "if"), i = t.filter((o) => o === "endif");
99
- r.length !== i.length && (c({
97
+ const r = t.filter((i) => i === "if"), o = t.filter((i) => i === "endif");
98
+ r.length !== o.length && (c({
100
99
  type: l.Alert,
101
100
  message: a("custom-conditions.missing-if-endif-tag")
102
101
  }), n = !1);
@@ -122,28 +121,28 @@ const ie = () => {
122
121
  }), !1);
123
122
  }, N = (e) => {
124
123
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".checkbox-block-v2");
125
- return Array.from(n).find((i) => {
126
- var o;
127
- return !((o = i.id) != null && o.trim());
124
+ return Array.from(n).find((o) => {
125
+ var i;
126
+ return !((i = o.id) != null && i.trim());
128
127
  }) ? (c({
129
128
  type: l.Alert,
130
129
  message: a("unsubscribe-templates.select-checkbox-groups")
131
130
  }), !1) : !0;
132
131
  }, O = (e) => {
133
132
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".radio-button-v2");
134
- return Array.from(n).find((i) => {
135
- var o;
136
- return !((o = i.id) != null && o.trim());
133
+ return Array.from(n).find((o) => {
134
+ var i;
135
+ return !((i = o.id) != null && i.trim());
137
136
  }) ? (c({
138
137
  type: l.Alert,
139
138
  message: a("unsubscribe-templates.select-radio-button-groups")
140
139
  }), !1) : !0;
141
140
  };
142
141
  return { validateHtml: async (e, s, t = !1) => {
143
- const n = [...s.map((i) => i.value), ...G];
142
+ const n = s.map((o) => o.value);
144
143
  return await b(e, n, t) && E(e) && A(e) && x(e) && k(e, n) && T(e) && F(e) && I(e) && W() && L(e) && N(e) && O(e);
145
144
  } };
146
145
  };
147
146
  export {
148
- ie as useHtmlValidator
147
+ se as useHtmlValidator
149
148
  };