@useinsider/guido 1.0.3-beta.2a27b98 → 1.0.3-beta.2dd7b80

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 (155) hide show
  1. package/README.md +3 -0
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +79 -73
  4. package/dist/components/organisms/header/RightSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/RightSlot.vue2.js +23 -22
  6. package/dist/composables/useGuidoActions.js +19 -9
  7. package/dist/composables/useStripo.js +36 -38
  8. package/dist/config/compiler/unsubscribeCompilerRules.js +33 -28
  9. package/dist/enums/defaults.js +2 -1
  10. package/dist/enums/unsubscribe.js +27 -25
  11. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +68 -158
  12. package/dist/extensions/Blocks/Recommendation/constants.js +1 -10
  13. package/dist/extensions/Blocks/Recommendation/control.js +59 -74
  14. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  15. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  16. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  17. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  18. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  19. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  20. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  21. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  22. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  23. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  24. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  25. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  26. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  27. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/extension.js +40 -16
  49. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +71 -124
  50. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  51. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +65 -89
  52. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +19 -56
  53. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +45 -74
  54. package/dist/extensions/DynamicContent/dynamic-content-modal.js +25 -19
  55. package/dist/extensions/DynamicContent/dynamic-content.js +128 -33
  56. package/dist/guido.css +1 -1
  57. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +70 -75
  58. package/dist/package.json.js +1 -1
  59. package/dist/src/@types/generic.d.ts +27 -6
  60. package/dist/src/components/Guido.vue.d.ts +3 -2
  61. package/dist/src/composables/useGuidoActions.d.ts +9 -0
  62. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +3 -54
  63. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +1 -41
  64. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +2 -5
  65. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  66. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  67. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  68. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  73. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  76. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  77. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  81. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  82. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  83. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  84. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  85. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  86. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  87. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  88. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  89. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  90. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  91. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  92. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  93. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  94. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  95. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  96. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  97. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  98. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  99. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  100. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  101. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +1 -1
  102. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +7 -15
  103. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +9 -2
  104. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +52 -2
  105. package/dist/src/stores/config.d.ts +3 -2
  106. package/dist/src/stores/dynamic-content.d.ts +3 -3
  107. package/dist/src/stores/editor.d.ts +1 -1
  108. package/dist/src/stores/onboarding.d.ts +1 -1
  109. package/dist/src/stores/preview.d.ts +1 -1
  110. package/dist/src/stores/recommendation.d.ts +1 -1
  111. package/dist/src/stores/save-as-template.d.ts +1 -1
  112. package/dist/src/stores/toaster.d.ts +1 -1
  113. package/dist/src/stores/unsubscribe.d.ts +1 -1
  114. package/dist/src/stores/version-history.d.ts +1 -1
  115. package/dist/src/utils/environmentUtil.d.ts +5 -0
  116. package/dist/src/utils/genericUtil.d.ts +1 -0
  117. package/dist/static/styles/components/wide-panel.css.js +4 -0
  118. package/dist/static/styles/customEditorStyle.css.js +0 -14
  119. package/dist/stores/config.js +5 -5
  120. package/dist/stores/dynamic-content.js +2 -2
  121. package/dist/stores/editor.js +1 -1
  122. package/dist/stores/onboarding.js +27 -27
  123. package/dist/stores/preview.js +1 -1
  124. package/dist/stores/recommendation.js +3 -3
  125. package/dist/stores/save-as-template.js +2 -2
  126. package/dist/stores/toaster.js +1 -1
  127. package/dist/stores/unsubscribe.js +1 -1
  128. package/dist/stores/version-history.js +4 -4
  129. package/dist/utils/environmentUtil.js +4 -0
  130. package/dist/utils/genericUtil.js +20 -9
  131. package/package.json +3 -3
  132. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  133. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -272
  134. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  135. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +0 -71
  136. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +0 -71
  137. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +0 -71
  138. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +0 -71
  139. package/dist/extensions/Blocks/Recommendation/controls/priceHideControl.js +0 -60
  140. package/dist/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.js +0 -160
  141. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  142. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -25
  143. package/dist/extensions/Blocks/controlFactories.js +0 -234
  144. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +0 -25
  145. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -71
  146. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  147. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +0 -15
  148. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +0 -15
  149. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +0 -15
  150. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +0 -15
  151. package/dist/src/extensions/Blocks/Recommendation/controls/priceHideControl.d.ts +0 -16
  152. package/dist/src/extensions/Blocks/Recommendation/controls/priceInlineLayoutControl.d.ts +0 -50
  153. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +0 -60
  154. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
  155. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -95
package/README.md CHANGED
@@ -167,6 +167,7 @@ export default {
167
167
  | `on-change` | void | It Fires once for managing leave modal etc. |
168
168
  | `ready` | void | Fired when the editor is ready and template is loaded |
169
169
  | `onboarding-finished` | void | Fired when the onboarding popup is dismissed or completed, allowing parent applications to track onboarding state |
170
+ | `test-email:click` | - | Fired when user clicks the test email button in the header |
170
171
 
171
172
  ### Guido Exposed Methods
172
173
  ```typescript
@@ -197,6 +198,7 @@ interface GuidoConfig {
197
198
  saveAsTemplate: boolean;
198
199
  versionHistory: boolean;
199
200
  testMessage: boolean;
201
+ displayConditions: boolean;
200
202
  };
201
203
  blocks?: {
202
204
  excludeDefaults?: GuidoBlockType[];
@@ -215,6 +217,7 @@ interface GuidoConfig {
215
217
  | `features.dynamicContent` | `boolean` | `true` | Enable dynamic content insertion feature |
216
218
  | `features.saveAsTemplate` | `boolean` | `true` | Enable save as template feature |
217
219
  | `features.versionHistory` | `boolean` | `true` | Enable version history feature |
220
+ | `features.displayConditions` | `boolean` | `true` | Enable display conditions |
218
221
  | `blocks` | `BlocksConfig` | `{ excludeDefaults: [], includeCustoms: [] }` | Block configuration for excluding default blocks and including custom blocks. See [Blocks Configuration](#-blocks-configuration) section below |
219
222
  | `blocks.excludeDefaults` | `GuidoBlockType[]` | `[]` | Array of default Stripo blocks to exclude from the editor |
220
223
  | `blocks.includeCustoms` | `GuidoCustomBlockType[]` | `[]` | Array of custom blocks to include in the editor |
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "3c910a93"
15
+ "23c413c9"
16
16
  );
17
17
  const v = s.exports;
18
18
  export {
@@ -1,23 +1,23 @@
1
- import { defineComponent as R, defineAsyncComponent as I, ref as x, computed as U, watch as M, onMounted as z, onUnmounted as B } from "vue";
2
- import { provideGuidoActions as K } from "../composables/useGuidoActions.js";
3
- import { usePartner as O } from "../composables/usePartner.js";
4
- import { useStripo as j } from "../composables/useStripo.js";
5
- import { migrate as W } from "../config/migrator/index.js";
6
- import { DefaultUsername as q, DefaultMessageType as J, DefaultGuidoConfig as Q } from "../enums/defaults.js";
7
- import V from "./organisms/base/Toaster.vue.js";
8
- import X from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
9
- import Y from "./organisms/header/HeaderWrapper.vue.js";
10
- import Z from "./organisms/LoadingWrapper.vue.js";
11
- import $ from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
12
- import ee from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
13
- import { useStripoApi as oe } from "../services/stripoApi.js";
14
- import { useConfigStore as te } from "../stores/config.js";
15
- import { useDynamicContentStore as ne } from "../stores/dynamic-content.js";
16
- import { useEditorStore as re } from "../stores/editor.js";
17
- import { usePreviewStore as ae } from "../stores/preview.js";
18
- import { useUnsubscribeStore as ie } from "../stores/unsubscribe.js";
19
- import se from "../node_modules/lodash-es/merge.js";
20
- const Ge = /* @__PURE__ */ R({
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({
21
21
  __name: "Guido",
22
22
  props: {
23
23
  templateId: null,
@@ -31,98 +31,104 @@ const Ge = /* @__PURE__ */ R({
31
31
  guidoConfig: null,
32
32
  templateConfig: null
33
33
  },
34
- emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished"],
35
- setup(_, { expose: L, emit: t }) {
36
- const u = _, k = I(
34
+ emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change", "ready", "onboarding:finished", "test-email:click"],
35
+ setup(W, { expose: _, emit: o }) {
36
+ const u = W, A = I(
37
37
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
38
- ), A = I(
38
+ ), N = I(
39
39
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
40
- ), l = x(), a = ne(), p = ie(), g = te(), i = re(), N = ae(), n = U(() => i.hasChanges), { getPartnerName: f, getProductType: y, isTestPartner: F } = O(), v = () => {
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 = () => {
41
41
  var e;
42
- return (e = l.value) == null ? void 0 : e.handleSave(!0);
42
+ return (e = p.value) == null ? void 0 : e.handleSave(!0);
43
43
  }, {
44
- templateId: s,
45
- userId: b,
46
- guidoConfig: C,
47
- templateConfig: o,
44
+ templateId: a,
45
+ userId: C,
46
+ guidoConfig: h,
47
+ templateConfig: t,
48
48
  html: r = "",
49
- css: h = "",
50
- partnerName: c = f(),
51
- productType: d = y(),
52
- messageType: S = J,
53
- username: w = q
54
- } = u, m = (o == null ? void 0 : o.preselectedDynamicContentList) || [];
55
- i.templateId = s, window.GuidoConfig = se(Q, C), window.GuidoConfig.partner = {
49
+ css: S = "",
50
+ partnerName: c = y(),
51
+ productType: m = v(),
52
+ messageType: w = X,
53
+ username: D = V
54
+ } = u, d = (t == null ? void 0 : t.preselectedDynamicContentList) || [];
55
+ s.templateId = a, window.GuidoConfig = de(Y, h), window.GuidoConfig.partner = {
56
56
  partnerName: c,
57
- productType: d,
58
- messageType: S
59
- }, g.templateConfig = o;
60
- const { initPlugin: D } = j({
61
- emailId: s,
62
- userId: b,
63
- username: w,
57
+ productType: m,
58
+ messageType: w
59
+ }, f.templateConfig = t;
60
+ const { initPlugin: E } = Q({
61
+ emailId: a,
62
+ userId: C,
63
+ username: D,
64
64
  partnerName: c,
65
- productType: d,
66
- preselectedDynamicContentList: m,
65
+ productType: m,
66
+ preselectedDynamicContentList: d,
67
67
  onReady: () => {
68
- console.debug("guido:ready"), t("ready");
68
+ console.debug("guido:ready"), o("ready");
69
69
  }
70
- }), { getDefaultTemplate: T } = oe(), H = U(() => {
70
+ }), { getDefaultTemplate: T } = re(), R = U(() => {
71
71
  var e;
72
72
  return !((e = window.GuidoConfig) != null && e.useHeader);
73
73
  });
74
- K({
74
+ q({
75
75
  onBack: () => {
76
- console.debug("guido:back"), t("back");
76
+ console.debug("guido:back"), o("back");
77
77
  },
78
78
  onSaveStart: () => {
79
- console.debug("guido:save:start"), t("save:start");
79
+ console.debug("guido:save:start"), o("save:start");
80
80
  },
81
81
  onSaveComplete: (e) => {
82
- console.debug("guido:save:complete", e), t("save:complete", e);
82
+ console.debug("guido:save:complete", e), o("save:complete", e);
83
+ },
84
+ onTestEmailClick: () => {
85
+ console.debug("guido:test-email:click"), o("test-email:click");
83
86
  }
84
87
  });
85
- const E = (e) => {
86
- console.debug("dynamic-content:close", e), a.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
87
- }, P = () => {
88
+ const P = (e) => {
89
+ console.debug("dynamic-content:close", e), i.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
90
+ }, k = () => {
88
91
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
89
92
  };
90
- return M(() => n.value, () => {
91
- t("on-change", n.value);
92
- }), z(async () => {
93
+ B(() => n.value, () => {
94
+ o("on-change", n.value);
95
+ });
96
+ const l = (e) => {
97
+ const G = e, { attribute: x, position: M } = G.detail;
98
+ console.debug("dynamic-content:open", G.detail), o("dynamic-content:open", x, M);
99
+ };
100
+ return K(async () => {
93
101
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
94
102
  try {
95
- p.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
103
+ g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
96
104
  let e = {
97
- html: r && await W(r),
98
- css: h,
105
+ html: r && await L(r),
106
+ css: S,
99
107
  forceRecreate: !0
100
108
  // TODO: It should be false for old templates. We will communicate with Stripo
101
109
  };
102
- e.html || (e = await T(), e.html = await W(e.html)), await D(e), a.selectedDynamicContentList = m;
110
+ e.html || (e = await T(), e.html = await L(e.html)), await E(e), i.selectedDynamicContentList = d;
103
111
  } catch (e) {
104
112
  console.error("Failed to initialize Stripo editor:", e);
105
113
  }
106
- document.addEventListener("dynamic-content:open", (e) => {
107
- const G = e;
108
- console.debug("dynamic-content:open", G.detail), t("dynamic-content:open", G.detail);
109
- });
110
- }), B(() => {
114
+ document.addEventListener("dynamic-content:open", l);
115
+ }), j(() => {
116
+ document.removeEventListener("dynamic-content:open", l);
111
117
  try {
112
118
  window.UIEditor.removeEditor();
113
119
  } catch {
114
120
  console.debug("Failed to remove Stripo editor: No editor found");
115
121
  }
116
- }), L({
122
+ }), _({
117
123
  dynamicContent: {
118
- insert: E,
119
- close: P
124
+ insert: P,
125
+ close: k
120
126
  },
121
127
  hasChanges: n,
122
- saveSilent: v
123
- }), { __sfc: !0, PreviewContainer: k, OnboardingWrapper: A, headerWrapperRef: l, dynamicContentStore: a, unsubscribeStore: p, props: u, configStore: g, editorStore: i, previewStore: N, hasChanges: n, getPartnerName: f, getProductType: y, isTestPartner: F, saveSilent: v, templateId: s, userId: b, guidoConfig: C, templateConfig: o, html: r, css: h, partnerName: c, productType: d, messageType: S, username: w, preselectedDynamicContentList: m, emit: t, initPlugin: D, getDefaultTemplate: T, noHeader: H, insertDynamicContent: E, closeDynamicContent: P, Toaster: V, FilterSelectionDrawer: X, HeaderWrapper: Y, LoadingWrapper: Z, SaveAsTemplateDrawer: $, UnsubscribeWrapper: ee };
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 };
124
130
  }
125
131
  });
126
132
  export {
127
- Ge as default
133
+ Ue as default
128
134
  };
@@ -3,7 +3,7 @@ import l from "../../../_virtual/_plugin-vue2_normalizer.js";
3
3
  var r = function() {
4
4
  var o, i, n;
5
5
  var s = this, e = s._self._c, t = s._self._setupProxy;
6
- return e("div", { staticClass: "d-f" }, [(o = t.config.features) != null && o.versionHistory ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : s._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (i = t.config.features) != null && i.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : s._e(), (n = t.config.features) != null && n.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button"), "tooltip-text": t.trans("newsletter.test-email") } }) : s._e(), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "loading-status": t.isSaving }, on: { click: function(_) {
6
+ return e("div", { staticClass: "d-f" }, [(o = t.config.features) != null && o.versionHistory ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : s._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (i = t.config.features) != null && i.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : s._e(), (n = t.config.features) != null && n.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button"), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.testEmailClick } }) : s._e(), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "loading-status": t.isSaving }, on: { click: function(c) {
7
7
  return t.handleSave(!1);
8
8
  } } })], 1);
9
9
  }, u = [], d = /* @__PURE__ */ l(
@@ -1,35 +1,36 @@
1
- import { defineComponent as g, ref as l, computed as H } from "vue";
2
- import { useConfig as _ } from "../../../composables/useConfig.js";
3
- import { useExport as h } from "../../../composables/useExport.js";
4
- import { useSave as V } from "../../../composables/useSave.js";
5
- import { useTranslations as x } from "../../../composables/useTranslations.js";
1
+ import { defineComponent as H, ref as p, computed as _ } from "vue";
2
+ import { useConfig as h } from "../../../composables/useConfig.js";
3
+ import { useExport as V } from "../../../composables/useExport.js";
4
+ import { useTestEmailClick as x } from "../../../composables/useGuidoActions.js";
5
+ import { useSave as E } from "../../../composables/useSave.js";
6
+ import { useTranslations as T } from "../../../composables/useTranslations.js";
6
7
  import { useVersionHistoryApi as w } from "../../../composables/useVersionHistoryApi.js";
7
- import { useEditorStore as T } from "../../../stores/editor.js";
8
- import { getTooltipOptions as E } from "../../../utils/tooltipUtils.js";
9
- import { InButtonV2 as O } from "@useinsider/design-system-vue";
10
- const z = /* @__PURE__ */ g({
8
+ import { useEditorStore as C } from "../../../stores/editor.js";
9
+ import { getTooltipOptions as O } from "../../../utils/tooltipUtils.js";
10
+ import { InButtonV2 as A } from "@useinsider/design-system-vue";
11
+ const J = /* @__PURE__ */ H({
11
12
  __name: "RightSlot",
12
- setup(A, { expose: m }) {
13
- const { config: u } = _(), { exportHtml: r } = h(), { save: n } = V(), { openVersionHistory: i, closeVersionHistory: a } = w(), o = T(), t = x(), e = l(!1), s = l(!1), c = () => {
14
- if (o.isVersionHistoryOpen) {
13
+ setup(k, { expose: m }) {
14
+ const { config: c } = h(), { exportHtml: r } = V(), { save: n } = E(), { openVersionHistory: i, closeVersionHistory: a } = w(), t = C(), o = T(), e = p(!1), s = p(!1), u = x(), f = () => {
15
+ if (t.isVersionHistoryOpen) {
15
16
  a();
16
17
  return;
17
18
  }
18
19
  i();
19
- }, f = async () => {
20
+ }, v = async () => {
20
21
  e.value = !0, await r(), e.value = !1;
21
- }, v = () => {
22
- o.isSaveAsTemplateDrawerOpen = !0;
23
- }, d = H(() => o.isVersionHistoryOpen ? t("newsletter.close-version-history") : t("newsletter.version-history")), p = async (y) => {
24
- s.value = !0, o.loadingStatus = !0;
25
- const S = await n(y);
26
- return s.value = !1, o.loadingStatus = !1, S;
22
+ }, d = () => {
23
+ t.isSaveAsTemplateDrawerOpen = !0;
24
+ }, y = _(() => t.isVersionHistoryOpen ? o("newsletter.close-version-history") : o("newsletter.version-history")), l = async (S) => {
25
+ s.value = !0, t.loadingStatus = !0;
26
+ const g = await n(S);
27
+ return s.value = !1, t.loadingStatus = !1, g;
27
28
  };
28
29
  return m({
29
- handleSave: p
30
- }), { __sfc: !0, config: u, exportHtml: r, save: n, openVersionHistory: i, closeVersionHistory: a, editorStore: o, trans: t, isExporting: e, isSaving: s, handleVersionHistory: c, handleExport: f, handleSaveAs: v, versionHistoryTooltipText: d, handleSave: p, getTooltipOptions: E, InButtonV2: O };
30
+ handleSave: l
31
+ }), { __sfc: !0, config: c, exportHtml: r, save: n, openVersionHistory: i, closeVersionHistory: a, editorStore: t, trans: o, isExporting: e, isSaving: s, testEmailClick: u, handleVersionHistory: f, handleExport: v, handleSaveAs: d, versionHistoryTooltipText: y, handleSave: l, getTooltipOptions: O, InButtonV2: A };
31
32
  }
32
33
  });
33
34
  export {
34
- z as default
35
+ J as default
35
36
  };
@@ -1,6 +1,6 @@
1
1
  import { provideValue as o, useInjectedValue as t } from "./useProvideInject.js";
2
- const r = Symbol.for("guido.back"), n = Symbol.for("guido.save.start"), a = Symbol.for("guido.save.complete"), s = (e) => {
3
- o(r, e.onBack), o(n, e.onSaveStart), o(a, e.onSaveComplete);
2
+ const r = Symbol.for("guido.back"), n = Symbol.for("guido.save.start"), c = Symbol.for("guido.save.complete"), a = Symbol.for("guido.test.email.click"), i = (e) => {
3
+ o(r, e.onBack), o(n, e.onSaveStart), o(c, e.onSaveComplete), o(a, e.onTestEmailClick);
4
4
  }, u = () => {
5
5
  try {
6
6
  return t(r);
@@ -9,7 +9,7 @@ const r = Symbol.for("guido.back"), n = Symbol.for("guido.save.start"), a = Symb
9
9
  "useBack: No back handler provided. Make sure Guido component is in the component tree."
10
10
  );
11
11
  }
12
- }, d = () => {
12
+ }, l = () => {
13
13
  try {
14
14
  return t(n);
15
15
  } catch {
@@ -17,21 +17,31 @@ const r = Symbol.for("guido.back"), n = Symbol.for("guido.save.start"), a = Symb
17
17
  "useSaveStart: No save start handler provided. Make sure Guido component is in the component tree."
18
18
  );
19
19
  }
20
- }, i = () => {
20
+ }, d = () => {
21
21
  try {
22
- return t(a);
22
+ return t(c);
23
23
  } catch {
24
24
  throw new Error(
25
25
  "useSaveComplete: No save complete handler provided. Make sure Guido component is in the component tree."
26
26
  );
27
27
  }
28
+ }, m = () => {
29
+ try {
30
+ return t(a);
31
+ } catch {
32
+ throw new Error(
33
+ "useTestEmailClick: No test email click handler provided. Make sure Guido component is in the component tree."
34
+ );
35
+ }
28
36
  };
29
37
  export {
30
38
  r as BACK_KEY,
31
- a as SAVE_COMPLETE_KEY,
39
+ c as SAVE_COMPLETE_KEY,
32
40
  n as SAVE_START_KEY,
33
- s as provideGuidoActions,
41
+ a as TEST_EMAIL_CLICK_KEY,
42
+ i as provideGuidoActions,
34
43
  u as useBack,
35
- i as useSaveComplete,
36
- d as useSaveStart
44
+ d as useSaveComplete,
45
+ l as useSaveStart,
46
+ m as useTestEmailClick
37
47
  };
@@ -1,23 +1,25 @@
1
- import { useActionsApi as C } from "./useActionsApi.js";
2
- import { useBlocksConfig as E } from "./useBlocksConfig.js";
3
- import { useCustomInterfaceAppearance as h } from "./useCustomInterfaceAppearance.js";
4
- import { useStripoEventHandler as w } from "./useStripoEventHandler.js";
5
- import { useToaster as b } from "./useToaster.js";
6
- import { displayConditions as k } from "../enums/displayConditions.js";
7
- import { useStripoApi as B } from "../services/stripoApi.js";
8
- import V from "../static/styles/customEditorStyle.css.js";
9
- import { useEditorStore as _ } from "../stores/editor.js";
10
- import { dynamicContentToMergeTags as T } from "../utils/genericUtil.js";
11
- import A from "../package.json.js";
12
- const L = (c) => {
13
- const { handleError: l } = b(), { getToken: p, getCustomFonts: m } = B(), { handleEvent: g } = w(), { getStripoBlocksConfig: f } = E(), S = async (i, r = []) => {
14
- const t = _(), { html: n, css: u, forceRecreate: a } = i, { baseBlocks: e, extensions: d } = await f();
1
+ import { useActionsApi as h } from "./useActionsApi.js";
2
+ import { useBlocksConfig as b } from "./useBlocksConfig.js";
3
+ import { useConfig as k } from "./useConfig.js";
4
+ import { useCustomInterfaceAppearance as B } from "./useCustomInterfaceAppearance.js";
5
+ import { useStripoEventHandler as V } from "./useStripoEventHandler.js";
6
+ import { useToaster as _ } from "./useToaster.js";
7
+ import { displayConditions as F } from "../enums/displayConditions.js";
8
+ import { useStripoApi as A } from "../services/stripoApi.js";
9
+ import T from "../static/styles/customEditorStyle.css.js";
10
+ import { useEditorStore as v } from "../stores/editor.js";
11
+ import { dynamicContentToMergeTags as I } from "../utils/genericUtil.js";
12
+ import M from "../package.json.js";
13
+ const N = (d) => {
14
+ const { config: u } = k(), { handleError: l } = _(), { getToken: f, getCustomFonts: S } = A(), { handleEvent: C } = V(), { getStripoBlocksConfig: y } = b(), E = async (i, r = []) => {
15
+ var m, g;
16
+ const t = v(), { html: n, css: p, forceRecreate: a } = i, { baseBlocks: e, extensions: c } = await y();
15
17
  window.UIEditor.initEditor(
16
18
  document.querySelector("#guido-editor"),
17
19
  {
18
- metadata: c,
20
+ metadata: d,
19
21
  html: n,
20
- css: u,
22
+ css: p,
21
23
  forceRecreate: a,
22
24
  locale: "en",
23
25
  undoButtonSelector: "#guido__undo-button",
@@ -28,16 +30,12 @@ const L = (c) => {
28
30
  customAppearanceMergetags: !0,
29
31
  customAppearanceMergetagsBorderColor: "#f1f3fe",
30
32
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
31
- customViewStyles: V,
32
- conditionsEnabled: !0,
33
- customConditionsEnabled: !0,
34
- conditionCategories: k,
33
+ customViewStyles: T,
34
+ conditionsEnabled: ((m = u.features) == null ? void 0 : m.displayConditions) ?? !0,
35
+ customConditionsEnabled: ((g = u.features) == null ? void 0 : g.displayConditions) ?? !0,
36
+ conditionCategories: F,
35
37
  enableXSSSecurity: !0,
36
- messageSettingsEnabled: !0,
37
- displayGmailAnnotations: !0,
38
- displayHiddenPreheader: !1,
39
- displayTitle: !1,
40
- displayUTM: !1,
38
+ messageSettingsEnabled: !1,
41
39
  selectBlockAfterDropFromSettingsPanel: !0,
42
40
  ...e ? { baseBlocks: e } : {},
43
41
  editorFonts: {
@@ -47,12 +45,12 @@ const L = (c) => {
47
45
  },
48
46
  mergeTags: [
49
47
  {
50
- entries: T(c.preselectedDynamicContentList)
48
+ entries: I(d.preselectedDynamicContentList)
51
49
  }
52
50
  ],
53
51
  async onTokenRefreshRequest(o) {
54
52
  try {
55
- const s = await p();
53
+ const s = await f();
56
54
  o(s);
57
55
  } catch (s) {
58
56
  l(s, "Failed to refresh token");
@@ -60,8 +58,8 @@ const L = (c) => {
60
58
  },
61
59
  onTemplateLoaded() {
62
60
  try {
63
- const { importCss: o } = h(), { activateCustomViewStyles: s } = C();
64
- o(), s(), c.onReady(), t.isStripoInitialized = !0, t.loadingStatus = !1, setTimeout(() => {
61
+ const { importCss: o } = B(), { activateCustomViewStyles: s } = h();
62
+ o(), s(), d.onReady(), t.isStripoInitialized = !0, t.loadingStatus = !1, setTimeout(() => {
65
63
  t.hasChanges = !1;
66
64
  }, 1e3);
67
65
  } catch (o) {
@@ -80,22 +78,22 @@ const L = (c) => {
80
78
  onDataChanged() {
81
79
  t.hasChanges = !0;
82
80
  },
83
- onEvent: g,
81
+ onEvent: C,
84
82
  ignoreClickOutsideSelectors: [
85
83
  "#guido-dynamic-content-modal",
86
84
  ".in-on-board-wrapper",
87
85
  ".in-drawer__container"
88
86
  ],
89
- extensions: d
87
+ extensions: c
90
88
  }
91
89
  );
92
- }, y = (i) => new Promise((r, t) => {
93
- var d;
90
+ }, w = (i) => new Promise((r, t) => {
91
+ var c;
94
92
  if (document.getElementById("UiEditorScript")) {
95
93
  i(), r();
96
94
  return;
97
95
  }
98
- const n = A.guido, a = `https://email-static.useinsider.com/guido/${(d = n == null ? void 0 : n.stripo) == null ? void 0 : d.version}/UIEditor.js`, e = document.createElement("script");
96
+ const n = M.guido, a = `https://email-static.useinsider.com/guido/${(c = n == null ? void 0 : n.stripo) == null ? void 0 : c.version}/UIEditor.js`, e = document.createElement("script");
99
97
  e.id = "UiEditorScript", e.type = "module", e.src = a, e.onload = () => {
100
98
  i(), r();
101
99
  }, e.onerror = () => {
@@ -103,12 +101,12 @@ const L = (c) => {
103
101
  }, document.body.appendChild(e);
104
102
  });
105
103
  return { initPlugin: async (i) => {
106
- await y(async () => {
107
- const r = await m();
108
- await S(i, r);
104
+ await w(async () => {
105
+ const r = await S();
106
+ await E(i, r);
109
107
  });
110
108
  } };
111
109
  };
112
110
  export {
113
- L as useStripo
111
+ N as useStripo
114
112
  };
@@ -1,36 +1,41 @@
1
- import { usePartner as U } from "../../composables/usePartner.js";
2
- import { LINK_REGEXES as l, LINK_TYPES as b, URLS as f } from "../../enums/unsubscribe.js";
3
- import { parsePageList as B } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
4
- import { useConfigStore as N } from "../../stores/config.js";
5
- import { useUnsubscribeStore as I } from "../../stores/unsubscribe.js";
6
- const T = [
1
+ import { usePartner as N } from "../../composables/usePartner.js";
2
+ import { LINK_REGEXES as l, LINK_TYPES as g, INSIDER_ID as f, URLS as S } from "../../enums/unsubscribe.js";
3
+ import { parsePageList as U } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
4
+ import { useConfigStore as B } from "../../stores/config.js";
5
+ import { useDynamicContentStore as y } from "../../stores/dynamic-content.js";
6
+ import { useUnsubscribeStore as L } from "../../stores/unsubscribe.js";
7
+ const D = [
7
8
  {
8
9
  id: "add-unsubscribe-link-values",
9
10
  description: "Adding unsubscribe link values",
10
11
  type: "custom",
11
12
  processor: (t) => {
12
- const { getPartnerName: i } = U(), a = N(), n = I(), u = a.getVariationId;
13
- if (!u)
13
+ const { getPartnerName: i } = N(), c = B(), n = y(), u = L(), a = c.getVariationId;
14
+ if (!a)
14
15
  return t;
15
- let o = t;
16
- const e = `/${i()}/email/${u}?user={{iid}}`;
17
- return new DOMParser().parseFromString(o, "text/html").querySelectorAll(".unsubscribe-block-v2[data-unsubscribe-page-list]").forEach((p) => {
18
- var g;
19
- const d = p.getAttribute("data-unsubscribe-page-list");
20
- if (!d)
16
+ let e = t;
17
+ const r = `/${i()}/email/${a}?user={{iid}}`;
18
+ return new DOMParser().parseFromString(e, "text/html").querySelectorAll(".unsubscribe-block-v2[data-unsubscribe-page-list]").forEach((p) => {
19
+ var b;
20
+ const m = p.getAttribute("data-unsubscribe-page-list");
21
+ if (!m)
21
22
  return;
22
- const S = B(d), m = ((g = n.templates) == null ? void 0 : g.filter(
23
- (c) => S.includes(c.id)
24
- )) ?? [], R = m.some((c) => c.type === b.UNSUBSCRIBE_LINK_TYPE), _ = m.some((c) => c.type === b.PREFERENCES_LINK_TYPE), E = p.outerHTML;
23
+ const R = U(m), d = ((b = u.templates) == null ? void 0 : b.filter(
24
+ (o) => R.includes(o.id)
25
+ )) ?? [], _ = d.some((o) => o.type === g.UNSUBSCRIBE_LINK_TYPE), I = d.some((o) => o.type === g.PREFERENCES_LINK_TYPE), E = p.outerHTML;
25
26
  let s = E;
26
- R && (s = s.replace(
27
+ _ && (n.selectedDynamicContentList.push({
28
+ text: f,
29
+ value: f,
30
+ fallback: ""
31
+ }), s = s.replace(
27
32
  l.GLOBAL_UNSUBSCRIBE_LINK_REGEX,
28
- f.UNSUBSCRIBE_URL + e
29
- )), _ && (s = s.replace(
33
+ S.UNSUBSCRIBE_URL + r
34
+ )), I && (s = s.replace(
30
35
  l.PREFERENCES_UNSUBSCRIBE_LINK_REGEX,
31
- f.PREFERENCES_URL + e
32
- )), s = s.replace(l.UNSUBSCRIBE_LINK_REGEX, ""), o = o.replace(E, s);
33
- }), o;
36
+ S.PREFERENCES_URL + r
37
+ )), s = s.replace(l.UNSUBSCRIBE_LINK_REGEX, ""), e = e.replace(E, s);
38
+ }), e;
34
39
  },
35
40
  priority: 60
36
41
  },
@@ -56,16 +61,16 @@ const T = [
56
61
  type: "custom",
57
62
  processor: (t) => {
58
63
  let i = t;
59
- const a = i.match(/<a[^>]+>(.*?)<\/a>/gm);
60
- return a && a.forEach((n) => {
64
+ const c = i.match(/<a[^>]+>(.*?)<\/a>/gm);
65
+ return c && c.forEach((n) => {
61
66
  if (n.includes("insEmail=1"))
62
67
  return;
63
68
  if (n.match(/<a\s+(?:[^>]*?\s+)?href=(["'`”])(.*?)\1\s+(?:[^>]*?\s+)?universal=(["'`”])true\3/gm)) {
64
- const o = n.replace(/href=(["'`”])(.*?)\1/gm, (e) => {
69
+ const a = n.replace(/href=(["'`”])(.*?)\1/gm, (e) => {
65
70
  const r = e.slice(6, e.length - 1).trim();
66
71
  return e.includes("?") || e.includes("#") ? r.slice(-1) === "&" ? e.replace(r, `${r}insEmail=1`) : e.replace(r, `${r}&insEmail=1`) : e.replace(r, `${r}?insEmail=1`);
67
72
  });
68
- i = i.replace(n, o);
73
+ i = i.replace(n, a);
69
74
  }
70
75
  }), i;
71
76
  },
@@ -73,5 +78,5 @@ const T = [
73
78
  }
74
79
  ];
75
80
  export {
76
- T as unsubscribeCompilerRules
81
+ D as unsubscribeCompilerRules
77
82
  };
@@ -16,7 +16,8 @@ const e = {
16
16
  dynamicContent: !0,
17
17
  saveAsTemplate: !0,
18
18
  versionHistory: !0,
19
- testMessage: !0
19
+ testMessage: !0,
20
+ displayConditions: !0
20
21
  },
21
22
  useHeader: !0
22
23
  }, t = {