@useinsider/guido 1.0.3-beta.2f9ae0f → 1.0.3-beta.3020a70

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 (196) hide show
  1. package/README.md +0 -4
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +73 -79
  4. package/dist/components/organisms/header/RightSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/RightSlot.vue2.js +22 -23
  6. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
  7. package/dist/composables/useActionsApi.js +1 -1
  8. package/dist/composables/useBlocksConfig.js +2 -1
  9. package/dist/composables/useGuidoActions.js +9 -19
  10. package/dist/composables/useHtmlCompiler.js +13 -15
  11. package/dist/composables/useHtmlValidator.js +35 -36
  12. package/dist/composables/useStripo.js +28 -32
  13. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  14. package/dist/enums/extensions/recommendationBlock.js +2 -2
  15. package/dist/enums/onboarding.js +3 -7
  16. package/dist/enums/unsubscribe.js +25 -27
  17. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  18. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  19. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  20. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  21. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  22. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  23. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  24. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  25. package/dist/extensions/Blocks/Unsubscribe/block.js +41 -45
  26. package/dist/extensions/Blocks/common-control.js +110 -174
  27. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  28. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  29. package/dist/guido.css +1 -1
  30. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +168 -213
  31. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  32. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  33. package/dist/package.json.js +1 -1
  34. package/dist/services/recommendationApi.js +19 -13
  35. package/dist/src/@types/generic.d.ts +6 -26
  36. package/dist/src/components/Guido.vue.d.ts +2 -3
  37. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  38. package/dist/src/enums/onboarding.d.ts +0 -4
  39. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  40. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  41. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  42. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  43. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  44. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +4 -3
  45. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  46. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  47. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  48. package/dist/src/stores/config.d.ts +2 -2
  49. package/dist/src/stores/dynamic-content.d.ts +3 -3
  50. package/dist/src/stores/editor.d.ts +1 -1
  51. package/dist/src/stores/onboarding.d.ts +1 -335
  52. package/dist/src/stores/preview.d.ts +1 -1
  53. package/dist/src/stores/recommendation.d.ts +1 -1
  54. package/dist/src/stores/save-as-template.d.ts +1 -1
  55. package/dist/src/stores/toaster.d.ts +1 -1
  56. package/dist/src/stores/unsubscribe.d.ts +1 -1
  57. package/dist/src/stores/version-history.d.ts +1 -1
  58. package/dist/src/utils/genericUtil.d.ts +0 -1
  59. package/dist/static/styles/customEditorStyle.css.js +1 -1
  60. package/dist/stores/config.js +5 -5
  61. package/dist/stores/dynamic-content.js +2 -2
  62. package/dist/stores/editor.js +1 -1
  63. package/dist/stores/onboarding.js +36 -44
  64. package/dist/stores/preview.js +1 -1
  65. package/dist/stores/recommendation.js +3 -3
  66. package/dist/stores/save-as-template.js +2 -2
  67. package/dist/stores/toaster.js +1 -1
  68. package/dist/stores/unsubscribe.js +1 -1
  69. package/dist/stores/version-history.js +4 -4
  70. package/dist/utils/genericUtil.js +8 -18
  71. package/package.json +4 -4
  72. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  73. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  74. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  75. package/dist/extensions/Blocks/Items/block.js +0 -67
  76. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  77. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  78. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  79. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  80. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  81. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  82. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  83. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  84. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  85. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -316
  86. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  87. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -273
  88. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -77
  89. package/dist/extensions/Blocks/Items/extension.js +0 -19
  90. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  91. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  92. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  93. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -60
  94. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -131
  95. package/dist/extensions/Blocks/Items/store/items-block.js +0 -71
  96. package/dist/extensions/Blocks/Items/template.js +0 -195
  97. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  98. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  99. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -67
  100. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -44
  101. package/dist/extensions/Blocks/controlFactories.js +0 -223
  102. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  103. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  104. package/dist/node_modules/lodash-es/_Set.js +0 -6
  105. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  106. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  107. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  108. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  109. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  110. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  111. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  112. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  113. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  114. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  115. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  116. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  117. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  118. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  119. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  120. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  121. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  122. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  123. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  124. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  125. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  126. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  127. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  128. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  129. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  130. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  131. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  132. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  133. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  134. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  135. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  136. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  137. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  138. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  139. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  140. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  141. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  142. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  143. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  144. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  145. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  146. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  147. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  148. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  149. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  150. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  151. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  152. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  153. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  154. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  155. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  156. package/dist/node_modules/lodash-es/get.js +0 -8
  157. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  158. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  159. package/dist/node_modules/lodash-es/keys.js +0 -9
  160. package/dist/node_modules/lodash-es/map.js +0 -11
  161. package/dist/node_modules/lodash-es/property.js +0 -10
  162. package/dist/node_modules/lodash-es/range.js +0 -5
  163. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  164. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  165. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  166. package/dist/node_modules/lodash-es/toString.js +0 -7
  167. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  168. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  169. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  170. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  171. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  172. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  173. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  174. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  175. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  176. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  177. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  178. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  179. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  180. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  181. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -162
  182. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -50
  183. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  184. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  185. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  186. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -41
  187. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  188. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  189. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  190. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -44
  191. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  192. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  193. package/dist/src/utils/environmentUtil.d.ts +0 -5
  194. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  195. package/dist/utils/environmentUtil.js +0 -4
  196. package/dist/utils/pairProductVariables.js +0 -136
package/README.md CHANGED
@@ -167,7 +167,6 @@ 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 |
171
170
 
172
171
  ### Guido Exposed Methods
173
172
  ```typescript
@@ -600,9 +599,6 @@ Create a `.env` file with the following variables: (You can get env variables fr
600
599
  VITE_STRIPO_PLUGIN_ID=your_plugin_id
601
600
  VITE_STRIPO_SECRET_KEY=your_secret_key
602
601
  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
602
  ```
607
603
 
608
604
  ### Project Structure
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "23c413c9"
15
+ "3c910a93"
16
16
  );
17
17
  const v = s.exports;
18
18
  export {
@@ -1,23 +1,23 @@
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({
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({
21
21
  __name: "Guido",
22
22
  props: {
23
23
  templateId: null,
@@ -31,104 +31,98 @@ const Ue = /* @__PURE__ */ O({
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", "test-email:click"],
35
- setup(W, { expose: _, emit: o }) {
36
- const u = W, A = I(
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(
37
37
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
38
- ), N = I(
38
+ ), A = I(
39
39
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
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 = () => {
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 = () => {
41
41
  var e;
42
- return (e = p.value) == null ? void 0 : e.handleSave(!0);
42
+ return (e = l.value) == null ? void 0 : e.handleSave(!0);
43
43
  }, {
44
- templateId: a,
45
- userId: C,
46
- guidoConfig: h,
47
- templateConfig: t,
44
+ templateId: s,
45
+ userId: b,
46
+ guidoConfig: C,
47
+ templateConfig: o,
48
48
  html: r = "",
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 = {
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 = {
56
56
  partnerName: c,
57
- productType: m,
58
- messageType: w
59
- }, f.templateConfig = t;
60
- const { initPlugin: E } = Q({
61
- emailId: a,
62
- userId: C,
63
- username: D,
57
+ productType: d,
58
+ messageType: S
59
+ }, g.templateConfig = o;
60
+ const { initPlugin: D } = j({
61
+ emailId: s,
62
+ userId: b,
63
+ username: w,
64
64
  partnerName: c,
65
- productType: m,
66
- preselectedDynamicContentList: d,
65
+ productType: d,
66
+ preselectedDynamicContentList: m,
67
67
  onReady: () => {
68
- console.debug("guido:ready"), o("ready");
68
+ console.debug("guido:ready"), t("ready");
69
69
  }
70
- }), { getDefaultTemplate: T } = re(), R = U(() => {
70
+ }), { getDefaultTemplate: T } = oe(), H = U(() => {
71
71
  var e;
72
72
  return !((e = window.GuidoConfig) != null && e.useHeader);
73
73
  });
74
- q({
74
+ K({
75
75
  onBack: () => {
76
- console.debug("guido:back"), o("back");
76
+ console.debug("guido:back"), t("back");
77
77
  },
78
78
  onSaveStart: () => {
79
- console.debug("guido:save:start"), o("save:start");
79
+ console.debug("guido:save:start"), t("save:start");
80
80
  },
81
81
  onSaveComplete: (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");
82
+ console.debug("guido:save:complete", e), t("save:complete", e);
86
83
  }
87
84
  });
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 = () => {
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 = () => {
91
88
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
92
89
  };
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 () => {
90
+ return M(() => n.value, () => {
91
+ t("on-change", n.value);
92
+ }), z(async () => {
101
93
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
102
94
  try {
103
- g.selectedUnsubscribePages = (t == null ? void 0 : t.selectedUnsubscribePages) || [];
95
+ p.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
104
96
  let e = {
105
- html: r && await L(r),
106
- css: S,
97
+ html: r && await W(r),
98
+ css: h,
107
99
  forceRecreate: !0
108
100
  // TODO: It should be false for old templates. We will communicate with Stripo
109
101
  };
110
- e.html || (e = await T(), e.html = await L(e.html)), await E(e), i.selectedDynamicContentList = d;
102
+ e.html || (e = await T(), e.html = await W(e.html)), await D(e), a.selectedDynamicContentList = m;
111
103
  } catch (e) {
112
104
  console.error("Failed to initialize Stripo editor:", e);
113
105
  }
114
- document.addEventListener("dynamic-content:open", l);
115
- }), j(() => {
116
- document.removeEventListener("dynamic-content:open", l);
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(() => {
117
111
  try {
118
112
  window.UIEditor.removeEditor();
119
113
  } catch {
120
114
  console.debug("Failed to remove Stripo editor: No editor found");
121
115
  }
122
- }), _({
116
+ }), L({
123
117
  dynamicContent: {
124
- insert: P,
125
- close: k
118
+ insert: E,
119
+ close: P
126
120
  },
127
121
  hasChanges: n,
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 };
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 };
130
124
  }
131
125
  });
132
126
  export {
133
- Ue as default
127
+ Ge as default
134
128
  };
@@ -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") }, 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) {
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(_) {
7
7
  return t.handleSave(!1);
8
8
  } } })], 1);
9
9
  }, u = [], d = /* @__PURE__ */ l(
@@ -1,36 +1,35 @@
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";
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";
7
6
  import { useVersionHistoryApi as w } from "../../../composables/useVersionHistoryApi.js";
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({
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({
12
11
  __name: "RightSlot",
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) {
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) {
16
15
  a();
17
16
  return;
18
17
  }
19
18
  i();
20
- }, v = async () => {
19
+ }, f = async () => {
21
20
  e.value = !0, await r(), e.value = !1;
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;
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;
28
27
  };
29
28
  return m({
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 };
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 };
32
31
  }
33
32
  });
34
33
  export {
35
- J as default
34
+ z as default
36
35
  };
@@ -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
  };
@@ -17,7 +17,7 @@ const A = () => {
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 = {
@@ -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,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"), 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);
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);
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"), c = Symb
9
9
  "useBack: No back handler provided. Make sure Guido component is in the component tree."
10
10
  );
11
11
  }
12
- }, l = () => {
12
+ }, d = () => {
13
13
  try {
14
14
  return t(n);
15
15
  } catch {
@@ -17,31 +17,21 @@ const r = Symbol.for("guido.back"), n = Symbol.for("guido.save.start"), c = Symb
17
17
  "useSaveStart: No save start handler provided. Make sure Guido component is in the component tree."
18
18
  );
19
19
  }
20
- }, d = () => {
21
- try {
22
- return t(c);
23
- } catch {
24
- throw new Error(
25
- "useSaveComplete: No save complete handler provided. Make sure Guido component is in the component tree."
26
- );
27
- }
28
- }, m = () => {
20
+ }, i = () => {
29
21
  try {
30
22
  return t(a);
31
23
  } catch {
32
24
  throw new Error(
33
- "useTestEmailClick: No test email click handler provided. Make sure Guido component is in the component tree."
25
+ "useSaveComplete: No save complete handler provided. Make sure Guido component is in the component tree."
34
26
  );
35
27
  }
36
28
  };
37
29
  export {
38
30
  r as BACK_KEY,
39
- c as SAVE_COMPLETE_KEY,
31
+ a as SAVE_COMPLETE_KEY,
40
32
  n as SAVE_START_KEY,
41
- a as TEST_EMAIL_CLICK_KEY,
42
- i as provideGuidoActions,
33
+ s as provideGuidoActions,
43
34
  u as useBack,
44
- d as useSaveComplete,
45
- l as useSaveStart,
46
- m as useTestEmailClick
35
+ i as useSaveComplete,
36
+ d as useSaveStart
47
37
  };
@@ -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
  };