@useinsider/guido 2.1.0-beta.febc521 → 2.1.0-beta.ff9b498

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 (169) hide show
  1. package/README.md +39 -1
  2. package/dist/@types/config/schemas.js +71 -66
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  6. package/dist/composables/useActionsApi.js +15 -13
  7. package/dist/composables/useBlocksConfig.js +26 -16
  8. package/dist/composables/useSave.js +16 -12
  9. package/dist/composables/useStripo.js +58 -54
  10. package/dist/composables/useStripoEventHandler.js +27 -12
  11. package/dist/composables/useSyncModuleExtractor.js +33 -0
  12. package/dist/config/migrator/itemsBlockMigrator.js +138 -117
  13. package/dist/enums/defaults.js +8 -4
  14. package/dist/enums/unsubscribe.js +25 -21
  15. package/dist/extensions/Blocks/Items/block.js +19 -28
  16. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  17. package/dist/extensions/Blocks/Items/controls/cardComposition.js +137 -89
  18. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  19. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  20. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  21. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  22. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  23. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  24. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  25. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  26. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  27. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  28. package/dist/extensions/Blocks/Items/extension.js +8 -9
  29. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  30. package/dist/extensions/Blocks/Items/template.js +181 -175
  31. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  32. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  33. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  34. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  35. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  43. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  44. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  45. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  46. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  47. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  48. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  49. package/dist/extensions/Blocks/common-control.js +91 -92
  50. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  51. package/dist/guido.css +1 -1
  52. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +158 -95
  53. package/dist/package.json.js +1 -1
  54. package/dist/services/stripoApi.js +50 -14
  55. package/dist/src/@types/config/schemas.d.ts +10 -2
  56. package/dist/src/@types/events.d.ts +34 -2
  57. package/dist/src/composables/useConfig.d.ts +4 -0
  58. package/dist/src/composables/useSyncModuleExtractor.d.ts +4 -0
  59. package/dist/src/enums/defaults.d.ts +4 -0
  60. package/dist/src/enums/unsubscribe.d.ts +3 -0
  61. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  62. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  63. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  64. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  65. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  66. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  67. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  68. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  69. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  70. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  71. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  72. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  73. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  74. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  75. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  76. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  77. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  78. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  79. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  80. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  81. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  82. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  83. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  84. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  85. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  86. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  87. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  88. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  89. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  90. package/dist/src/mock/api/settings.d.ts +2 -0
  91. package/dist/src/services/stripoApi.d.ts +5 -0
  92. package/dist/src/stores/config.d.ts +36 -0
  93. package/dist/src/stores/editor.d.ts +23 -0
  94. package/dist/static/styles/components/notification.css.js +1 -0
  95. package/dist/static/styles/components/version-history.css.js +10 -2
  96. package/dist/static/styles/components/wide-panel.css.js +18 -6
  97. package/dist/static/styles/customEditorStyle.css.js +13 -0
  98. package/dist/stores/editor.js +2 -1
  99. package/package.json +2 -2
  100. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  101. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  125. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  126. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  127. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  128. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  129. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  130. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  131. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  132. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  133. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  134. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  135. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  136. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  137. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  138. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  139. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  140. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  141. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  142. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  143. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  144. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  145. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  146. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  147. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  148. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  149. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  150. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  151. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  152. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  153. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  164. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  165. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  166. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  167. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  168. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  169. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
@@ -1,5 +1,6 @@
1
+ import r from "../extensions/ModulesTabIcons/extension.js";
1
2
  import { useConfigStore as l } from "../stores/config.js";
2
- const r = {
3
+ const a = {
3
4
  "amp-accordion": "ampAccordionEnabled",
4
5
  "amp-carousel": "ampCarouselEnabled",
5
6
  "amp-form-controls": "ampFormControlsEnabled",
@@ -13,7 +14,7 @@ const r = {
13
14
  "text-block": "textEnabled",
14
15
  "timer-block": "timerEnabled",
15
16
  "video-block": "videoEnabled"
16
- }, c = {
17
+ }, s = {
17
18
  "dynamic-content": () => import("../extensions/DynamicContent/extension.js"),
18
19
  "checkbox-block": () => import("../extensions/Blocks/Checkbox/extension.js"),
19
20
  "radio-button-block": () => import("../extensions/Blocks/RadioButton/extension.js"),
@@ -21,31 +22,40 @@ const r = {
21
22
  "unsubscribe-block": () => import("../extensions/Blocks/Unsubscribe/extension.js"),
22
23
  "coupon-block": () => import("../extensions/Blocks/CouponBlock/extension.js"),
23
24
  "items-block": () => import("../extensions/Blocks/Items/extension.js")
24
- }, a = (n) => {
25
+ }, i = (n) => {
25
26
  if (!n || !n.length)
26
27
  return {};
27
- const e = {};
28
+ const t = {};
28
29
  return n.forEach((o) => {
29
- const t = r[o];
30
- t && (e[t] = !1);
31
- }), e;
32
- }, i = async (n) => !n || !n.length ? [] : (await Promise.all(
33
- n.map(async (o) => {
34
- const t = c[o];
35
- return t ? (await t()).default : null;
36
- })
37
- )).filter((o) => o !== null), m = () => {
30
+ const e = a[o];
31
+ e && (t[e] = !1);
32
+ }), t;
33
+ }, b = () => [r], m = async (n) => {
34
+ const t = b();
35
+ if (!n || !n.length)
36
+ return t;
37
+ const o = await Promise.all(
38
+ n.map(async (e) => {
39
+ const c = s[e];
40
+ return c ? (await c()).default : null;
41
+ })
42
+ );
43
+ return [
44
+ ...t,
45
+ ...o.filter((e) => e !== null)
46
+ ];
47
+ }, E = () => {
38
48
  const n = l();
39
49
  return {
40
50
  getStripoBlocksConfig: async () => {
41
51
  const o = n.blocks;
42
52
  return {
43
- baseBlocks: a(o == null ? void 0 : o.excludeDefaults),
44
- extensions: await i(o == null ? void 0 : o.includeCustoms)
53
+ baseBlocks: i(o == null ? void 0 : o.excludeDefaults),
54
+ extensions: await m(o == null ? void 0 : o.includeCustoms)
45
55
  };
46
56
  }
47
57
  };
48
58
  };
49
59
  export {
50
- m as useBlocksConfig
60
+ E as useBlocksConfig
51
61
  };
@@ -1,17 +1,21 @@
1
- import { useConfig as l } from "./useConfig.js";
2
- import { useSaveStart as m, useSaveComplete as c } from "./useGuidoActions.js";
3
- import { useTemplatePreparation as d } from "../utils/templatePreparation.js";
4
- import { useHtmlValidator as p } from "./useHtmlValidator.js";
5
- const w = () => {
6
- const i = m(), s = c(), { validateHtml: o } = p(), { callbacks: a } = l();
7
- return { save: async (r = !1) => {
1
+ import { useConfig as u } from "./useConfig.js";
2
+ import { useSaveStart as d, useSaveComplete as p } from "./useGuidoActions.js";
3
+ import { useSyncModuleExtractor as f } from "./useSyncModuleExtractor.js";
4
+ import { useStripoApi as v } from "../services/stripoApi.js";
5
+ import { useTemplatePreparation as S } from "../utils/templatePreparation.js";
6
+ import { useHtmlValidator as x } from "./useHtmlValidator.js";
7
+ const E = () => {
8
+ const o = d(), s = p(), { validateHtml: i } = x(), { callbacks: a } = u(), { extractSyncModuleUnsubscribeData: r } = f(), { setSyncModuleUnsubscriptionPages: n } = v();
9
+ return { save: async (l = !1) => {
8
10
  var e;
9
- i();
10
- const { prepareTemplateDetails: n } = d(), t = await n();
11
- if (await o(t.compiledHtml, t.dynamicContentList, !0) && !((e = a.value) != null && e.externalValidation && !await a.value.externalValidation(t)))
12
- return r || s(t), t;
11
+ o();
12
+ const { prepareTemplateDetails: c } = S(), t = await c();
13
+ if (!await i(t.compiledHtml, t.dynamicContentList, !0) || (e = a.value) != null && e.externalValidation && !await a.value.externalValidation(t))
14
+ return;
15
+ const m = r(t.rawHtml);
16
+ return await n(m), l || s(t), t;
13
17
  } };
14
18
  };
15
19
  export {
16
- w as useSave
20
+ E as useSave
17
21
  };
@@ -1,26 +1,26 @@
1
- import { useActionsApi as _ } from "./useActionsApi.js";
2
- import { useBlocksConfig as B } from "./useBlocksConfig.js";
3
- import { useConfig as v } from "./useConfig.js";
4
- import { useCustomInterfaceAppearance as A } from "./useCustomInterfaceAppearance.js";
5
- import { useStripoEventHandler as F } from "./useStripoEventHandler.js";
6
- import { useToaster as D } from "./useToaster.js";
7
- import { displayConditions as I } from "../enums/displayConditions.js";
8
- import { useStripoApi as M } from "../services/stripoApi.js";
9
- import U from "../static/styles/customEditorStyle.css.js";
10
- import { useEditorStore as P } from "../stores/editor.js";
11
- import { dynamicContentToMergeTags as R } from "../utils/genericUtil.js";
12
- import H from "../package.json.js";
13
- const W = (c) => {
14
- const { features: l, template: y } = v(), { handleError: u } = D(), { getToken: C, getCustomFonts: S } = M(), { handleEvent: E } = F(), { getStripoBlocksConfig: h } = B(), w = async (i, n = []) => {
15
- var m, g, f;
16
- const o = P(), { html: r, css: p } = i, { baseBlocks: s, extensions: t } = await h(), a = ((m = l.value) == null ? void 0 : m.displayConditions) ?? !0, k = ((g = l.value) == null ? void 0 : g.modulesDisabled) ?? !1, T = ((f = y.value) == null ? void 0 : f.forceRecreate) ?? !1;
1
+ import { useActionsApi as M } from "./useActionsApi.js";
2
+ import { useBlocksConfig as A } from "./useBlocksConfig.js";
3
+ import { useConfig as F } from "./useConfig.js";
4
+ import { useCustomInterfaceAppearance as D } from "./useCustomInterfaceAppearance.js";
5
+ import { useStripoEventHandler as I } from "./useStripoEventHandler.js";
6
+ import { useToaster as U } from "./useToaster.js";
7
+ import { displayConditions as P } from "../enums/displayConditions.js";
8
+ import { useStripoApi as R } from "../services/stripoApi.js";
9
+ import H from "../static/styles/customEditorStyle.css.js";
10
+ import { useEditorStore as S } from "../stores/editor.js";
11
+ import { dynamicContentToMergeTags as O } from "../utils/genericUtil.js";
12
+ import q from "../package.json.js";
13
+ const Z = (c) => {
14
+ const { features: l, template: C } = F(), { handleError: u } = U(), { getToken: E, getCustomFonts: h, getSyncModulesStatus: w } = R(), { handleEvent: b } = I(), { getStripoBlocksConfig: k } = A(), T = async (i, n = [], r = !1) => {
15
+ var g, f, y;
16
+ const e = S(), { html: p, css: a } = i, { baseBlocks: t, extensions: d } = await k(), m = ((g = l.value) == null ? void 0 : g.displayConditions) ?? !0, _ = ((f = l.value) == null ? void 0 : f.modulesDisabled) ?? !1, B = ((y = C.value) == null ? void 0 : y.forceRecreate) ?? !1;
17
17
  window.UIEditor.initEditor(
18
18
  document.querySelector("#guido-editor"),
19
19
  {
20
20
  metadata: c,
21
- html: r,
22
- css: p,
23
- forceRecreate: T,
21
+ html: p,
22
+ css: a,
23
+ forceRecreate: B,
24
24
  locale: "en",
25
25
  undoButtonSelector: "#guido__undo-button",
26
26
  redoButtonSelector: "#guido__redo-button",
@@ -30,19 +30,20 @@ const W = (c) => {
30
30
  customAppearanceMergetags: !0,
31
31
  customAppearanceMergetagsBorderColor: "#f1f3fe",
32
32
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
33
- customViewStyles: U,
34
- conditionsEnabled: a,
35
- customConditionsEnabled: a,
36
- conditionCategories: I,
33
+ customViewStyles: H,
34
+ conditionsEnabled: m,
35
+ customConditionsEnabled: m,
36
+ conditionCategories: P,
37
37
  enableXSSSecurity: !0,
38
- modulesDisabled: k,
38
+ modulesDisabled: _,
39
+ syncModulesEnabled: r,
39
40
  messageSettingsEnabled: !0,
40
41
  displayGmailAnnotations: !0,
41
42
  displayHiddenPreheader: !1,
42
43
  displayTitle: !1,
43
44
  displayUTM: !1,
44
45
  selectElementAfterDrop: !0,
45
- ...s ? { baseBlocks: s } : {},
46
+ ...t ? { baseBlocks: t } : {},
46
47
  editorFonts: {
47
48
  showDefaultStandardFonts: !0,
48
49
  showDefaultNotStandardFonts: !0,
@@ -50,68 +51,71 @@ const W = (c) => {
50
51
  },
51
52
  mergeTags: [
52
53
  {
53
- entries: R(c.preselectedDynamicContentList)
54
+ entries: O(c.preselectedDynamicContentList)
54
55
  }
55
56
  ],
56
- async onTokenRefreshRequest(e) {
57
+ async onTokenRefreshRequest(o) {
57
58
  try {
58
- const d = await C();
59
- e(d);
60
- } catch (d) {
61
- u(d, "Failed to refresh token");
59
+ const s = await E();
60
+ o(s);
61
+ } catch (s) {
62
+ u(s, "Failed to refresh token");
62
63
  }
63
64
  },
64
65
  onTemplateLoaded() {
65
66
  try {
66
- const { importCss: e } = A(), { activateCustomViewStyles: d, updateTimerInClonedTemplate: V } = _();
67
- e(), d(), V(), c.onReady(), o.isStripoInitialized = !0, o.loadingStatus = !1, setTimeout(() => {
68
- o.hasChanges = !1;
67
+ const { importCss: o } = D(), { activateCustomViewStyles: s, updateTimerInClonedTemplate: v } = M();
68
+ o(), s(), v(), c.onReady(), e.isStripoInitialized = !0, e.loadingStatus = !1, setTimeout(() => {
69
+ e.hasChanges = !1;
69
70
  }, 1e3);
70
- } catch (e) {
71
- u(e, "Failed to load custom interface appearance");
71
+ } catch (o) {
72
+ u(o, "Failed to load custom interface appearance");
72
73
  }
73
74
  },
74
- onCodeEditorVisibilityChanged(e) {
75
- o.isCodeEditorOpen = e;
75
+ onCodeEditorVisibilityChanged(o) {
76
+ e.isCodeEditorOpen = o;
76
77
  },
77
- onEditorVisualModeChanged(e) {
78
- o.editorVisualMode = e.toLowerCase();
78
+ onEditorVisualModeChanged(o) {
79
+ e.editorVisualMode = o.toLowerCase();
79
80
  },
80
- onVersionHistoryVisibilityChanged(e) {
81
- o.isVersionHistoryOpen = e;
81
+ onVersionHistoryVisibilityChanged(o) {
82
+ e.isVersionHistoryOpen = o;
82
83
  },
83
84
  onDataChanged() {
84
- o.hasChanges = !0;
85
+ e.hasChanges = !0;
85
86
  },
86
- onEvent: E,
87
+ onEvent: b,
87
88
  ignoreClickOutsideSelectors: [
88
89
  "#guido-dynamic-content-modal",
89
90
  ".in-on-board-wrapper",
90
91
  ".in-drawer__container"
91
92
  ],
92
- extensions: t
93
+ extensions: d
93
94
  }
94
95
  );
95
- }, b = (i) => new Promise((n, o) => {
96
- var a;
96
+ }, V = (i) => new Promise((n, r) => {
97
+ var d;
97
98
  if (document.getElementById("UiEditorScript")) {
98
99
  i(), n();
99
100
  return;
100
101
  }
101
- const r = H.guido, s = `https://email-static.useinsider.com/guido/${(a = r == null ? void 0 : r.stripo) == null ? void 0 : a.version}/UIEditor.js`, t = document.createElement("script");
102
- t.id = "UiEditorScript", t.type = "module", t.src = s, t.onload = () => {
102
+ const e = q.guido, a = `https://email-static.useinsider.com/guido/${(d = e == null ? void 0 : e.stripo) == null ? void 0 : d.version}/UIEditor.js`, t = document.createElement("script");
103
+ t.id = "UiEditorScript", t.type = "module", t.src = a, t.onload = () => {
103
104
  i(), n();
104
105
  }, t.onerror = () => {
105
- o(new Error(`Failed to load Stripo UIEditor script from S3: ${s}`));
106
+ r(new Error(`Failed to load Stripo UIEditor script from S3: ${a}`));
106
107
  }, document.body.appendChild(t);
107
108
  });
108
109
  return { initPlugin: async (i) => {
109
- await b(async () => {
110
- const n = await S();
111
- await w(i, n);
110
+ await V(async () => {
111
+ const n = S(), [r, e] = await Promise.all([
112
+ h(),
113
+ w()
114
+ ]);
115
+ n.syncModulesEnabled = e, await T(i, r, e);
112
116
  });
113
117
  } };
114
118
  };
115
119
  export {
116
- W as useStripo
120
+ Z as useStripo
117
121
  };
@@ -1,20 +1,35 @@
1
- import { useOnboardingStore as i } from "../stores/onboarding.js";
2
- const c = () => {
3
- const e = {
4
- block_dropped: ({ blockName: t }) => {
5
- if (t === "BLOCK_TEXT") {
6
- const n = i(), o = !n.shouldShowOnboarding("textBlockOnboarding"), r = n.isActive("textBlockOnboarding");
7
- if (o || r)
1
+ import { useStripoApi as i } from "../services/stripoApi.js";
2
+ import { useEditorStore as u } from "../stores/editor.js";
3
+ import { useOnboardingStore as l } from "../stores/onboarding.js";
4
+ import { useUnsubscribeStore as b } from "../stores/unsubscribe.js";
5
+ const v = () => {
6
+ const { updateSyncModule: d, getSyncModule: r } = i(), n = u(), s = b(), a = {
7
+ block_dropped: ({ blockName: e }) => {
8
+ if (e === "BLOCK_TEXT") {
9
+ const o = l(), t = !o.shouldShowOnboarding("textBlockOnboarding"), c = o.isActive("textBlockOnboarding");
10
+ if (t || c)
8
11
  return;
9
- n.start("textBlockOnboarding");
12
+ o.start("textBlockOnboarding");
10
13
  }
14
+ },
15
+ module_saved: async (e) => {
16
+ n.syncModulesEnabled && (console.debug("[module_saved] Saved module data:", e), await d(e));
17
+ },
18
+ module_dropped: async (e) => {
19
+ if (!n.syncModulesEnabled)
20
+ return;
21
+ const { moduleId: o } = e, t = await r(o);
22
+ console.debug("[module_dropped] Sync module data:", t), t.unsubscriptionPreferencePages.length && await s.fetchTemplates();
23
+ },
24
+ module_updated: async (e) => {
25
+ n.syncModulesEnabled && (console.debug("[module_updated] Updated module data:", e), await d(e));
11
26
  }
12
27
  };
13
- return { handleEvent: async (t, n) => {
14
- const o = e[t];
15
- o && await o(n);
28
+ return { handleEvent: async (e, o) => {
29
+ const t = a[e];
30
+ console.debug("Stripo Event: ", e, o), t && await t(o);
16
31
  } };
17
32
  };
18
33
  export {
19
- c as useStripoEventHandler
34
+ v as useStripoEventHandler
20
35
  };
@@ -0,0 +1,33 @@
1
+ import { UNSUBSCRIBE_SYNC_MODULE_TYPES as S } from "../enums/unsubscribe.js";
2
+ import { DATA_ATTRIBUTES as a } from "../extensions/Blocks/Unsubscribe/utils/constants.js";
3
+ import { useEditorStore as d } from "../stores/editor.js";
4
+ const T = ".esd-synchronizable-module", m = '[esd-extension-block-id="unsubscribe-block"]', A = "esd-custom-block-id", M = () => {
5
+ const l = d();
6
+ return { extractSyncModuleUnsubscribeData: (p) => {
7
+ if (!l.syncModulesEnabled)
8
+ return [];
9
+ const E = new DOMParser().parseFromString(p, "text/html").querySelectorAll(T), e = [];
10
+ return E.forEach((r) => {
11
+ const s = r.getAttribute(A);
12
+ if (!s)
13
+ return;
14
+ r.querySelectorAll(m).forEach((o) => {
15
+ const n = o.getAttribute(a.PAGE_LIST), c = o.getAttribute(a.PAGE_TYPE);
16
+ if (!n || !c)
17
+ return;
18
+ const b = parseInt(c), u = S[b];
19
+ if (!u)
20
+ return;
21
+ const i = n.split(",").map((t) => parseInt(t.trim())).filter((t) => !Number.isNaN(t));
22
+ i.length !== 0 && e.push({
23
+ stripoModuleId: s,
24
+ unsubscriptionPreferencePages: i,
25
+ type: u
26
+ });
27
+ });
28
+ }), e;
29
+ } };
30
+ };
31
+ export {
32
+ M as useSyncModuleExtractor
33
+ };