@useinsider/guido 2.1.0-beta.c2eabd2 → 2.1.0-beta.c305789

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 (55) hide show
  1. package/dist/components/Guido.vue.js +1 -1
  2. package/dist/components/Guido.vue2.js +36 -39
  3. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
  4. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
  5. package/dist/components/organisms/header/EditorActions.vue.js +10 -8
  6. package/dist/components/organisms/header/EditorActions.vue2.js +40 -31
  7. package/dist/components/organisms/header/MigrationConfirmModal.vue.js +17 -0
  8. package/dist/components/organisms/header/MigrationConfirmModal.vue2.js +41 -0
  9. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
  10. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
  11. package/dist/composables/useStripo.js +25 -23
  12. package/dist/composables/useVersionHistoryApi.js +1 -1
  13. package/dist/config/i18n/en/index.js +11 -0
  14. package/dist/config/i18n/en/labels.json.js +12 -0
  15. package/dist/config/i18n/en/toasters.json.js +56 -0
  16. package/dist/config/i18n/en/tooltips.json.js +82 -0
  17. package/dist/config/i18n/index.js +7 -0
  18. package/dist/config/migrator/itemsBlockMigrator.js +136 -130
  19. package/dist/config/migrator/recommendationMigrator.js +45 -40
  20. package/dist/extensions/Blocks/Items/block.js +45 -25
  21. package/dist/extensions/Blocks/Items/iconsRegistry.js +6 -5
  22. package/dist/extensions/Blocks/Items/items.css.js +48 -0
  23. package/dist/extensions/Blocks/Recommendation/block.js +49 -29
  24. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +4 -3
  25. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +48 -0
  26. package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
  27. package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
  28. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
  29. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
  30. package/dist/extensions/Blocks/common-control.js +12 -4
  31. package/dist/extensions/Blocks/common-icons.js +39 -0
  32. package/dist/guido.css +1 -1
  33. package/dist/services/stripoApi.js +20 -17
  34. package/dist/src/components/Guido.vue.d.ts +1 -1
  35. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  36. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  37. package/dist/src/components/organisms/header/MigrationConfirmModal.vue.d.ts +6 -0
  38. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  39. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  40. package/dist/src/config/i18n/en/index.d.ts +1 -0
  41. package/dist/src/config/i18n/index.d.ts +16 -0
  42. package/dist/src/extensions/Blocks/Items/block.d.ts +1 -0
  43. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +1 -0
  44. package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
  45. package/dist/src/extensions/Blocks/common-control.d.ts +5 -0
  46. package/dist/src/extensions/Blocks/common-icons.d.ts +1 -0
  47. package/dist/src/stores/template.d.ts +3 -0
  48. package/dist/static/styles/components/notification.css.js +18 -0
  49. package/dist/static/styles/components/tools.css.js +6 -2
  50. package/dist/static/styles/variables.css.js +2 -0
  51. package/dist/static/templates/empty/index.html.js +74 -0
  52. package/dist/static/templates/empty/style.css.js +779 -0
  53. package/dist/stores/template.js +9 -0
  54. package/dist/stores/unsubscribe.js +37 -34
  55. package/package.json +1 -1
@@ -12,7 +12,7 @@ var t = function() {
12
12
  n,
13
13
  !1,
14
14
  null,
15
- "6e44ca36"
15
+ "16abb398"
16
16
  );
17
17
  const v = s.exports;
18
18
  export {
@@ -1,4 +1,4 @@
1
- import { defineComponent as z, defineAsyncComponent as M, ref as K, computed as _, watch as V, onMounted as $, onBeforeUnmount as j, onUnmounted as q } from "vue";
1
+ import { defineComponent as z, defineAsyncComponent as M, ref as K, computed as _, watch as V, onMounted as j, onUnmounted as q } from "vue";
2
2
  import { provideGuidoActions as J } from "../composables/useGuidoActions.js";
3
3
  import { usePartner as Q } from "../composables/usePartner.js";
4
4
  import { useStripo as X } from "../composables/useStripo.js";
@@ -6,19 +6,18 @@ import { useTimerClone as Y } from "../composables/useTimerClone.js";
6
6
  import { migrate as P } from "../config/migrator/index.js";
7
7
  import { ModuleFolderDefaults as A } from "../enums/defaults.js";
8
8
  import Z from "./organisms/base/Toaster.vue.js";
9
- import ee from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
10
- import oe from "./organisms/header/HeaderWrapper.vue.js";
11
- import te from "./organisms/LoadingWrapper.vue.js";
12
- import ne from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
13
- import re from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
14
- import { useStripoApi as se } from "../services/stripoApi.js";
15
- import { useConfigStore as ce } from "../stores/config.js";
16
- import { useDynamicContentStore as ae } from "../stores/dynamic-content.js";
17
- import { useEditorStore as ie } from "../stores/editor.js";
18
- import { usePreviewStore as me } from "../stores/preview.js";
19
- import { useToasterStore as de } from "../stores/toaster.js";
20
- import { useUnsubscribeStore as le } from "../stores/unsubscribe.js";
21
- const Pe = /* @__PURE__ */ z({
9
+ import $ from "./organisms/extensions/recommendation/FilterSelectionDrawer.vue.js";
10
+ import ee from "./organisms/header/HeaderWrapper.vue.js";
11
+ import oe from "./organisms/LoadingWrapper.vue.js";
12
+ import te from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
13
+ import ne from "./organisms/unsubscribe/UnsubscribeWrapper.vue.js";
14
+ import { useStripoApi as re } from "../services/stripoApi.js";
15
+ import { useConfigStore as se } from "../stores/config.js";
16
+ import { useDynamicContentStore as ce } from "../stores/dynamic-content.js";
17
+ import { useEditorStore as ae } from "../stores/editor.js";
18
+ import { usePreviewStore as ie } from "../stores/preview.js";
19
+ import { useUnsubscribeStore as de } from "../stores/unsubscribe.js";
20
+ const Le = /* @__PURE__ */ z({
22
21
  __name: "Guido",
23
22
  props: {
24
23
  config: null
@@ -29,34 +28,34 @@ const Pe = /* @__PURE__ */ z({
29
28
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
30
29
  ), O = M(
31
30
  () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
32
- ), p = K(), a = ae(), v = le(), r = ce();
31
+ ), p = K(), a = ce(), v = de(), r = se();
33
32
  r.init(u.config);
34
- const i = ie(), B = me(), s = _(() => i.hasChanges), { isTestPartner: G } = Q(), f = () => {
33
+ const i = ae(), G = ie(), s = _(() => i.hasChanges), { isTestPartner: H } = Q(), y = () => {
35
34
  var e;
36
35
  return (e = p.value) == null ? void 0 : e.handleSave(!0);
37
36
  }, {
38
- templateId: m,
39
- userId: y,
40
- partnerName: h,
37
+ templateId: d,
38
+ userId: h,
39
+ partnerName: f,
41
40
  productType: b,
42
41
  username: S,
43
42
  template: o,
44
43
  editor: n
45
- } = r, c = (o == null ? void 0 : o.html) || "", g = (o == null ? void 0 : o.css) || "", d = (o == null ? void 0 : o.preselectedDynamicContent) || [], w = (n == null ? void 0 : n.savedModulesFolderName) || A.SAVED_MODULES, D = (n == null ? void 0 : n.defaultModulesFolderName) || A.DEFAULT_MODULES;
46
- i.templateId = m;
44
+ } = r, c = (o == null ? void 0 : o.html) || "", g = (o == null ? void 0 : o.css) || "", m = (o == null ? void 0 : o.preselectedDynamicContent) || [], w = (n == null ? void 0 : n.savedModulesFolderName) || A.SAVED_MODULES, D = (n == null ? void 0 : n.defaultModulesFolderName) || A.DEFAULT_MODULES;
45
+ i.templateId = d;
47
46
  const { initPlugin: E } = X({
48
- emailId: m,
49
- userId: y,
47
+ emailId: d,
48
+ userId: h,
50
49
  username: S,
51
- partnerName: h,
50
+ partnerName: f,
52
51
  productType: b,
53
- preselectedDynamicContentList: d,
52
+ preselectedDynamicContentList: m,
54
53
  savedModulesFolderName: w,
55
54
  defaultModulesFolderName: D,
56
55
  onReady: () => {
57
56
  console.debug("guido:ready"), t("ready");
58
57
  }
59
- }), { getDefaultTemplate: C } = se(), { cloneTimersOnSave: T, hasTimerBlocks: U } = Y(), H = _(() => {
58
+ }), { getDefaultTemplate: C } = re(), { cloneTimersOnSave: T, hasTimerBlocks: k } = Y(), x = _(() => {
60
59
  var e;
61
60
  return !((e = r.ui) != null && e.showHeader);
62
61
  });
@@ -74,19 +73,19 @@ const Pe = /* @__PURE__ */ z({
74
73
  console.debug("guido:test-email:click"), t("test-email:click");
75
74
  }
76
75
  });
77
- const k = (e) => {
76
+ const F = (e) => {
78
77
  console.debug("dynamic-content:close", e), a.setSelectedDynamicContent(e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
79
- }, F = () => {
78
+ }, U = () => {
80
79
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
81
80
  };
82
81
  V(() => s.value, () => {
83
82
  t("on-change", s.value);
84
83
  });
85
84
  const l = (e) => {
86
- const L = e, { attribute: x, position: R } = L.detail;
87
- console.debug("dynamic-content:open", L.detail), t("dynamic-content:open", x, R);
85
+ const L = e, { attribute: B, position: R } = L.detail;
86
+ console.debug("dynamic-content:open", L.detail), t("dynamic-content:open", B, R);
88
87
  };
89
- return $(async () => {
88
+ return j(async () => {
90
89
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
91
90
  try {
92
91
  v.selectedUnsubscribePages = (o == null ? void 0 : o.selectedUnsubscribePages) || [];
@@ -94,13 +93,11 @@ const Pe = /* @__PURE__ */ z({
94
93
  html: c && await P(c),
95
94
  css: g
96
95
  };
97
- e.html || (e = await C(), e.html = await P(e.html)), U(e.html) && (e.html = await T(e.html)), await E(e), a.selectedDynamicContentList = d;
96
+ e.html || (e = await C(), e.html = await P(e.html)), k(e.html) && (e.html = await T(e.html)), await E(e), a.selectedDynamicContentList = m;
98
97
  } catch (e) {
99
98
  console.error("Failed to initialize Stripo editor:", e);
100
99
  }
101
100
  document.addEventListener("dynamic-content:open", l);
102
- }), j(() => {
103
- de().$reset();
104
101
  }), q(() => {
105
102
  document.removeEventListener("dynamic-content:open", l);
106
103
  try {
@@ -111,14 +108,14 @@ const Pe = /* @__PURE__ */ z({
111
108
  r.reset();
112
109
  }), W({
113
110
  dynamicContent: {
114
- insert: k,
115
- close: F
111
+ insert: F,
112
+ close: U
116
113
  },
117
114
  hasChanges: s,
118
- saveSilent: f
119
- }), { __sfc: !0, PreviewContainer: I, OnboardingWrapper: O, headerWrapperRef: p, dynamicContentStore: a, unsubscribeStore: v, props: u, configStore: r, editorStore: i, previewStore: B, hasChanges: s, isTestPartner: G, saveSilent: f, templateId: m, userId: y, partnerName: h, productType: b, username: S, templateConfig: o, editorConfig: n, html: c, css: g, preselectedDynamicContentList: d, savedModulesFolderName: w, defaultModulesFolderName: D, emit: t, initPlugin: E, getDefaultTemplate: C, cloneTimersOnSave: T, hasTimerBlocks: U, noHeader: H, insertDynamicContent: k, closeDynamicContent: F, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: ee, HeaderWrapper: oe, LoadingWrapper: te, SaveAsTemplateDrawer: ne, UnsubscribeWrapper: re };
115
+ saveSilent: y
116
+ }), { __sfc: !0, PreviewContainer: I, OnboardingWrapper: O, headerWrapperRef: p, dynamicContentStore: a, unsubscribeStore: v, props: u, configStore: r, editorStore: i, previewStore: G, hasChanges: s, isTestPartner: H, saveSilent: y, templateId: d, userId: h, partnerName: f, productType: b, username: S, templateConfig: o, editorConfig: n, html: c, css: g, preselectedDynamicContentList: m, savedModulesFolderName: w, defaultModulesFolderName: D, emit: t, initPlugin: E, getDefaultTemplate: C, cloneTimersOnSave: T, hasTimerBlocks: k, noHeader: x, insertDynamicContent: F, closeDynamicContent: U, handleDynamicContentOpen: l, Toaster: Z, FilterSelectionDrawer: $, HeaderWrapper: ee, LoadingWrapper: oe, SaveAsTemplateDrawer: te, UnsubscribeWrapper: ne };
120
117
  }
121
118
  });
122
119
  export {
123
- Pe as default
120
+ Le as default
124
121
  };
@@ -1,16 +1,16 @@
1
- import s from "./EmailSizeIndicator.vue2.js";
1
+ import i from "./EmailSizeIndicator.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
4
  var o = function() {
5
- var e = this, i = e._self._c, t = e._self._setupProxy;
6
- return t.previewStore.previewHtml ? i("div", { staticClass: "d-f a-i-c j-c-c" }, [i(t.InProgress, { staticClass: "min-w-15-s", attrs: { id: "email-size-progress", "description-status": "", "description-position": "left", description: t.htmlSize, "max-value": t.MAX_EMAIL_SIZE_IN_KB, type: t.progress.type, value: t.progress.value } }), i(t.InTooltipV2, { attrs: { id: "email-size-tooltip", "icon-status": "", "static-position": "bottom center", "dynamic-position": !1, text: t.trans("email-editor.preview-design-size-tooltip") } })], 1) : e._e();
5
+ var t = this, s = t._self._c, e = t._self._setupProxy;
6
+ return e.previewStore.previewHtml ? s("div", { staticClass: "d-f a-i-c j-c-c" }, [s(e.InProgress, { staticClass: "min-w-15-s", attrs: { id: "email-size-progress", "description-status": "", "description-position": "left", description: e.htmlSize, "max-value": e.MAX_EMAIL_SIZE_IN_KB, type: e.progress.type, value: e.progress.value } }), s(e.InTooltip, { staticClass: "d-f ml-1", attrs: { id: "email-size-tooltip", align: "center", position: "bottom", text: e.trans("email-editor.preview-design-size-tooltip") } })], 1) : t._e();
7
7
  }, a = [], n = /* @__PURE__ */ r(
8
- s,
8
+ i,
9
9
  o,
10
10
  a,
11
11
  !1,
12
12
  null,
13
- "079d2bf7"
13
+ "913a3417"
14
14
  );
15
15
  const m = n.exports;
16
16
  export {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as c, ref as n, computed as l, watch as u } from "vue";
2
2
  import { useTranslations as p } from "../../../../composables/useTranslations.js";
3
3
  import { usePreviewStore as _ } from "../../../../stores/preview.js";
4
- import { InTooltipV2 as v, InProgress as f } from "@useinsider/design-system-vue";
4
+ import { InTooltip as v, InProgress as f } from "@useinsider/design-system-vue";
5
5
  const S = /* @__PURE__ */ c({
6
6
  __name: "EmailSizeIndicator",
7
7
  setup(w) {
@@ -17,7 +17,7 @@ const S = /* @__PURE__ */ c({
17
17
  }, i = p();
18
18
  return u(() => t.previewHtml, () => {
19
19
  r();
20
- }, { immediate: !0 }), { __sfc: !0, previewStore: t, MAX_EMAIL_SIZE_IN_KB: o, htmlKB: e, progress: s, htmlSize: a, calculateProgress: r, trans: i, InProgress: f, InTooltipV2: v };
20
+ }, { immediate: !0 }), { __sfc: !0, previewStore: t, MAX_EMAIL_SIZE_IN_KB: o, htmlKB: e, progress: s, htmlSize: a, calculateProgress: r, trans: i, InProgress: f, InTooltip: v };
21
21
  }
22
22
  });
23
23
  export {
@@ -1,21 +1,23 @@
1
1
  import l from "./EditorActions.vue2.js";
2
2
  /* empty css */
3
- import r from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var d = function() {
3
+ import d from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var u = function() {
5
5
  var s, i, n, a;
6
- var e = this, o = e._self._c, t = e._self._setupProxy;
7
- return o("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? o(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 } }) : e._e(), o(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 = (s = t.config) == null ? void 0 : s.features) != null && i.saveAsTemplate ? o(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 } }) : e._e(), (a = (n = t.config) == null ? void 0 : n.features) != null && a.testMessage ? o(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", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.testEmailClick } }) : e._e(), t.editorStore.isPreviewModeOpen ? e._e() : o(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
+ var o = this, e = o._self._c, t = o._self._setupProxy;
7
+ return e("div", { staticClass: "d-f editor-actions" }, [t.isVersionHistoryButtonVisible ? 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 } }) : o._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 = (s = t.config) == null ? void 0 : s.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 } }) : o._e(), (a = (n = t.config) == null ? void 0 : n.features) != null && a.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", { staticPosition: "bottom right" }), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.testEmailClick } }) : o._e(), t.editorStore.isPreviewModeOpen ? o._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(r) {
8
8
  return t.handleSave(!1);
9
+ } } }), e(t.MigrationConfirmModal, { ref: "migrationModalRef", on: { confirm: function(r) {
10
+ return t.executeSave(!1);
9
11
  } } })], 1);
10
- }, u = [], p = /* @__PURE__ */ r(
12
+ }, p = [], c = /* @__PURE__ */ d(
11
13
  l,
12
- d,
13
14
  u,
15
+ p,
14
16
  !1,
15
17
  null,
16
- "17dd4d8b"
18
+ "c2f87f0a"
17
19
  );
18
- const v = p.exports;
20
+ const v = c.exports;
19
21
  export {
20
22
  v as default
21
23
  };
@@ -1,41 +1,50 @@
1
- import { defineComponent as g, ref as u, computed as f } from "vue";
2
- import { useConfig as E } from "../../../composables/useConfig.js";
3
- import { useExport as h } from "../../../composables/useExport.js";
4
- import { useTestEmailClick as w } from "../../../composables/useGuidoActions.js";
5
- import { useSave as x } from "../../../composables/useSave.js";
6
- import { useTranslations as T } from "../../../composables/useTranslations.js";
7
- import { useVersionHistoryApi as O } from "../../../composables/useVersionHistoryApi.js";
8
- import { useEditorStore as A } from "../../../stores/editor.js";
9
- import { getTooltipOptions as C } from "../../../utils/tooltipUtils.js";
10
- import { InButtonV2 as k } from "@useinsider/design-system-vue";
11
- const J = /* @__PURE__ */ g({
1
+ import { defineComponent as T, ref as n, computed as a } from "vue";
2
+ import { useConfig as w } from "../../../composables/useConfig.js";
3
+ import { useExport as O } from "../../../composables/useExport.js";
4
+ import { useTestEmailClick as C } from "../../../composables/useGuidoActions.js";
5
+ import { useSave as M } from "../../../composables/useSave.js";
6
+ import { useTranslations as A } from "../../../composables/useTranslations.js";
7
+ import { useVersionHistoryApi as b } from "../../../composables/useVersionHistoryApi.js";
8
+ import { useEditorStore as k } from "../../../stores/editor.js";
9
+ import { useTemplateStore as B } from "../../../stores/template.js";
10
+ import { getTooltipOptions as j } from "../../../utils/tooltipUtils.js";
11
+ import { InButtonV2 as D } from "@useinsider/design-system-vue";
12
+ import I from "./MigrationConfirmModal.vue.js";
13
+ const X = /* @__PURE__ */ T({
12
14
  __name: "EditorActions",
13
- setup(B, { expose: v }) {
14
- const { config: n } = E(), { exportHtml: a } = h(), { save: l } = x(), { openVersionHistory: p, closeVersionHistory: c } = O(), o = A(), s = T(), r = u(!1), i = u(!1), d = w(), y = () => {
15
- if (o.isVersionHistoryOpen) {
16
- c();
15
+ setup(P, { expose: H }) {
16
+ const { config: m } = w(), { exportHtml: l } = O(), { save: p } = M(), { openVersionHistory: c, closeVersionHistory: u } = b(), e = k(), f = B(), s = A(), r = n(!1), i = n(!1), v = n(), S = C(), d = a(() => Object.values(f.migrations).some((o) => o > 0)), V = () => {
17
+ if (e.isVersionHistoryOpen) {
18
+ u();
17
19
  return;
18
20
  }
19
- p();
20
- }, H = async () => {
21
- r.value = !0, await a(), r.value = !1;
22
- }, V = () => {
23
- o.isSaveAsTemplateDrawerOpen = !0;
24
- }, S = f(() => o.isVersionHistoryOpen ? s("newsletter.close-version-history") : s("newsletter.version-history")), _ = f(
21
+ c();
22
+ }, _ = async () => {
23
+ r.value = !0, await l(), r.value = !1;
24
+ }, h = () => {
25
+ e.isSaveAsTemplateDrawerOpen = !0;
26
+ }, x = a(() => e.isVersionHistoryOpen ? s("newsletter.close-version-history") : s("newsletter.version-history")), E = a(
25
27
  () => {
26
- var t, e;
27
- return ((e = (t = n.value) == null ? void 0 : t.features) == null ? void 0 : e.versionHistory) && !o.isPreviewModeOpen;
28
+ var o, t;
29
+ return ((t = (o = m.value) == null ? void 0 : o.features) == null ? void 0 : t.versionHistory) && !e.isPreviewModeOpen;
28
30
  }
29
- ), m = async (t) => {
30
- i.value = !0, o.loadingStatus = !0;
31
- const e = await l(t);
32
- return i.value = !1, (t || !e) && (o.loadingStatus = !1), e;
31
+ ), y = async (o) => {
32
+ i.value = !0, e.loadingStatus = !0;
33
+ const t = await p(o);
34
+ return i.value = !1, (o || !t) && (e.loadingStatus = !1), t;
35
+ }, g = (o) => {
36
+ var t;
37
+ if (!o && d.value) {
38
+ (t = v.value) == null || t.open();
39
+ return;
40
+ }
41
+ y(o);
33
42
  };
34
- return v({
35
- handleSave: m
36
- }), { __sfc: !0, config: n, exportHtml: a, save: l, openVersionHistory: p, closeVersionHistory: c, editorStore: o, trans: s, isExporting: r, isSaving: i, testEmailClick: d, handleVersionHistory: y, handleExport: H, handleSaveAs: V, versionHistoryTooltipText: S, isVersionHistoryButtonVisible: _, handleSave: m, getTooltipOptions: C, InButtonV2: k };
43
+ return H({
44
+ handleSave: g
45
+ }), { __sfc: !0, config: m, exportHtml: l, save: p, openVersionHistory: c, closeVersionHistory: u, editorStore: e, templateStore: f, trans: s, isExporting: r, isSaving: i, migrationModalRef: v, testEmailClick: S, hasMigrations: d, handleVersionHistory: V, handleExport: _, handleSaveAs: h, versionHistoryTooltipText: x, isVersionHistoryButtonVisible: E, executeSave: y, handleSave: g, getTooltipOptions: j, InButtonV2: D, MigrationConfirmModal: I };
37
46
  }
38
47
  });
39
48
  export {
40
- J as default
49
+ X as default
41
50
  };
@@ -0,0 +1,17 @@
1
+ import r from "./MigrationConfirmModal.vue2.js";
2
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var n = function() {
4
+ var o = this, s = o._self._c, e = o._self._setupProxy;
5
+ return e.isVisible ? s(e.WpModal, { attrs: { id: "migration-confirm-modal", size: "X-small", "close-on-outside-click": !1, "footer-button-options": e.footerButtonOptions, title: e.trans("email-editor.migration-confirm-save") }, on: { close: e.close, "primary-action": e.handleConfirm } }, [s("p", [o._v(" " + o._s(e.confirmMessage.prefix)), s("strong", [o._v(o._s(e.blockNames))]), o._v(o._s(e.confirmMessage.suffix) + " ")])]) : o._e();
6
+ }, t = [], a = /* @__PURE__ */ i(
7
+ r,
8
+ n,
9
+ t,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const m = a.exports;
15
+ export {
16
+ m as default
17
+ };
@@ -0,0 +1,41 @@
1
+ import { defineComponent as _, ref as a, computed as c } from "vue";
2
+ import x from "../../wrappers/WpModal.vue.js";
3
+ import { useTranslations as y } from "../../../composables/useTranslations.js";
4
+ import { useTemplateStore as k } from "../../../stores/template.js";
5
+ const C = /* @__PURE__ */ _({
6
+ __name: "MigrationConfirmModal",
7
+ emits: ["confirm"],
8
+ setup(h, { expose: l, emit: m }) {
9
+ const t = a(!1), n = k(), e = y(), f = a({
10
+ cancelOrBackButton: {
11
+ type: "secondary",
12
+ labelText: e("campaign-builder.cancel"),
13
+ styling: "ghost"
14
+ },
15
+ primaryButton: {
16
+ type: "primary",
17
+ labelText: e("email-editor.migration-confirm-save")
18
+ }
19
+ }), p = c(() => {
20
+ const i = n.migrations["recommendation-block"] > 0, o = n.migrations["items-block"] > 0;
21
+ if (i && o) {
22
+ const g = e("email-recommendation.recommendation"), b = e("email-items.items");
23
+ return `${g} ${e("campaign-builder.or")} ${b}`;
24
+ }
25
+ return e(o ? "email-items.items" : "email-recommendation.recommendation");
26
+ }), u = c(() => {
27
+ const [i, o] = e("email-editor.migration-confirm-message").split("{blockNames}");
28
+ return { prefix: i || "", suffix: o || "" };
29
+ }), r = () => {
30
+ t.value = !0;
31
+ }, s = () => {
32
+ t.value = !1;
33
+ }, d = () => {
34
+ s(), m("confirm");
35
+ };
36
+ return l({ open: r }), { __sfc: !0, emit: m, isVisible: t, templateStore: n, trans: e, footerButtonOptions: f, blockNames: p, confirmMessage: u, open: r, close: s, handleConfirm: d, WpModal: x };
37
+ }
38
+ });
39
+ export {
40
+ C as default
41
+ };
@@ -16,7 +16,7 @@ var o = function() {
16
16
  i,
17
17
  !1,
18
18
  null,
19
- "a86fc486"
19
+ "df672485"
20
20
  );
21
21
  const _ = c.exports;
22
22
  export {
@@ -1,15 +1,15 @@
1
- import { defineComponent as f, ref as y, computed as n, watch as T } from "vue";
2
- import g from "../../wrappers/WpDrawer.vue.js";
3
- import { useToaster as S } from "../../../composables/useToaster.js";
4
- import { useTranslations as v } from "../../../composables/useTranslations.js";
5
- import { ToasterTypeOptions as B } from "../../../enums/toaster.js";
1
+ import { defineComponent as g, ref as y, computed as n, watch as S } from "vue";
2
+ import T from "../../wrappers/WpDrawer.vue.js";
3
+ import { useToaster as v } from "../../../composables/useToaster.js";
4
+ import { useTranslations as B } from "../../../composables/useTranslations.js";
5
+ import { ToasterTypeOptions as C } from "../../../enums/toaster.js";
6
6
  import { useUnsubscribeStore as w } from "../../../stores/unsubscribe.js";
7
- import { InContainer as C } from "@useinsider/design-system-vue";
8
- import h from "./UnsubscribeBreadcrumb.vue.js";
9
- const E = /* @__PURE__ */ f({
7
+ import { InContainer as h } from "@useinsider/design-system-vue";
8
+ import U from "./UnsubscribeBreadcrumb.vue.js";
9
+ const F = /* @__PURE__ */ g({
10
10
  __name: "UnsubscribePageSelection",
11
- setup(_) {
12
- const s = v(), e = w(), { showToaster: a } = S(), o = y(!1), c = n(() => e.isActiveTypeLastInCollection ? o.value ? s("unsubscription-preference.applying-changes") : s("statistics.apply") : s("products.select-and-continue")), i = n(() => e.pageSelectionUpdateStatus && e.isActiveTypeFirstInCollection ? s("products.cancel") : s("newsletter.back")), p = n(() => ({
11
+ setup(P) {
12
+ const s = B(), e = w(), { showToaster: a } = v(), o = y(!1), c = n(() => e.isActiveTypeLastInCollection ? o.value ? s("unsubscription-preference.applying-changes") : s("statistics.apply") : s("products.select-and-continue")), i = n(() => e.pageSelectionUpdateStatus && e.isActiveTypeFirstInCollection ? s("products.cancel") : s("newsletter.back")), u = n(() => ({
13
13
  primaryButton: {
14
14
  styling: "solid",
15
15
  type: "primary",
@@ -23,28 +23,28 @@ const E = /* @__PURE__ */ f({
23
23
  labelText: i.value,
24
24
  disabledStatus: o.value
25
25
  }
26
- })), u = (t) => e.getSelectedTemplateByActiveType === t ? "bor-w-3 bor-s-s bor-c-7" : "bor-w-1 bor-s-s bor-c-6", r = (t) => {
26
+ })), p = (t) => e.getSelectedTemplateByActiveType === t ? "bor-w-3 bor-s-s bor-c-7" : "bor-w-1 bor-s-s bor-c-6", r = (t) => {
27
27
  e.pageSelectionDrawerStatus = !1, t && setTimeout(() => {
28
28
  t();
29
29
  }, 500);
30
- }, m = () => {
30
+ }, d = () => {
31
31
  if (e.isActiveTypeFirstInCollection) {
32
32
  r(), e.pageSelectionUpdateStatus || (e.typeSelectionDrawerStatus = !0);
33
33
  return;
34
34
  }
35
35
  e.setPreviousType();
36
- }, d = () => {
36
+ }, m = () => {
37
37
  if (e.isActiveTypeLastInCollection) {
38
38
  o.value = !0;
39
- const t = e.selectedCollectionType, l = e.getSelectedTemplatesByCollection(t);
40
- e.addUnsubscribePages(l), document.dispatchEvent(new CustomEvent("unsubscribe:select", {
39
+ const t = e.selectedCollectionType, l = e.getSelectedTemplatesByCollection(t), f = e.getSelectedUnsubscribePagesByCollection(t);
40
+ e.removeUnsubscribePages(f), e.addUnsubscribePages(l), document.dispatchEvent(new CustomEvent("unsubscribe:select", {
41
41
  detail: {
42
42
  collectionType: t,
43
43
  selectedPages: l
44
44
  }
45
45
  })), r(() => {
46
46
  o.value = !1, a({
47
- type: B.Success,
47
+ type: C.Success,
48
48
  message: s("global-unsubscribe.pages-were-attached")
49
49
  });
50
50
  });
@@ -54,11 +54,11 @@ const E = /* @__PURE__ */ f({
54
54
  }, b = (t) => {
55
55
  e.setSelectedTemplate(t);
56
56
  };
57
- return T(() => e.pageSelectionDrawerStatus, (t) => {
57
+ return S(() => e.pageSelectionDrawerStatus, (t) => {
58
58
  t && e.pageSelectionUpdateStatus && e.fetchTemplates();
59
- }), { __sfc: !0, trans: s, unsubscribeStore: e, showToaster: a, isApplying: o, getPrimaryButtonText: c, getCancelOrBackButtonText: i, footerButtonGroupOptions: p, getBorderClass: u, closeModal: r, handleBack: m, handleSave: d, selectTemplate: b, WpDrawer: g, InContainer: C, UnsubscribeBreadcrumb: h };
59
+ }), { __sfc: !0, trans: s, unsubscribeStore: e, showToaster: a, isApplying: o, getPrimaryButtonText: c, getCancelOrBackButtonText: i, footerButtonGroupOptions: u, getBorderClass: p, closeModal: r, handleBack: d, handleSave: m, selectTemplate: b, WpDrawer: T, InContainer: h, UnsubscribeBreadcrumb: U };
60
60
  }
61
61
  });
62
62
  export {
63
- E as default
63
+ F as default
64
64
  };
@@ -4,21 +4,22 @@ import { useConfig as v } from "./useConfig.js";
4
4
  import { useCustomInterfaceAppearance as A } from "./useCustomInterfaceAppearance.js";
5
5
  import { useStripoEventHandler as F } from "./useStripoEventHandler.js";
6
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;
7
+ import { localePatch as I } from "../config/i18n/index.js";
8
+ import { displayConditions as M } from "../enums/displayConditions.js";
9
+ import { useStripoApi as U } from "../services/stripoApi.js";
10
+ import P from "../static/styles/customEditorStyle.css.js";
11
+ import { useEditorStore as R } from "../stores/editor.js";
12
+ import { dynamicContentToMergeTags as H } from "../utils/genericUtil.js";
13
+ import O from "../package.json.js";
14
+ const Z = (c) => {
15
+ const { features: l, template: y } = v(), { handleError: u } = D(), { getToken: C, getCustomFonts: S } = U(), { handleEvent: E } = F(), { getStripoBlocksConfig: h } = B(), w = async (i, r = []) => {
16
+ var m, f, g;
17
+ const o = R(), { html: n, css: p } = i, { baseBlocks: s, extensions: t } = await h(), a = ((m = l.value) == null ? void 0 : m.displayConditions) ?? !0, k = ((f = l.value) == null ? void 0 : f.modulesDisabled) ?? !1, T = ((g = y.value) == null ? void 0 : g.forceRecreate) ?? !1;
17
18
  window.UIEditor.initEditor(
18
19
  document.querySelector("#guido-editor"),
19
20
  {
20
21
  metadata: c,
21
- html: r,
22
+ html: n,
22
23
  css: p,
23
24
  forceRecreate: T,
24
25
  locale: "en",
@@ -30,10 +31,10 @@ const W = (c) => {
30
31
  customAppearanceMergetags: !0,
31
32
  customAppearanceMergetagsBorderColor: "#f1f3fe",
32
33
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
33
- customViewStyles: U,
34
+ customViewStyles: P,
34
35
  conditionsEnabled: a,
35
36
  customConditionsEnabled: a,
36
- conditionCategories: I,
37
+ conditionCategories: M,
37
38
  enableXSSSecurity: !0,
38
39
  modulesDisabled: k,
39
40
  messageSettingsEnabled: !0,
@@ -46,11 +47,11 @@ const W = (c) => {
46
47
  editorFonts: {
47
48
  showDefaultStandardFonts: !0,
48
49
  showDefaultNotStandardFonts: !0,
49
- customFonts: n
50
+ customFonts: r
50
51
  },
51
52
  mergeTags: [
52
53
  {
53
- entries: R(c.preselectedDynamicContentList)
54
+ entries: H(c.preselectedDynamicContentList)
54
55
  }
55
56
  ],
56
57
  async onTokenRefreshRequest(e) {
@@ -89,29 +90,30 @@ const W = (c) => {
89
90
  ".in-on-board-wrapper",
90
91
  ".in-drawer__container"
91
92
  ],
92
- extensions: t
93
+ extensions: t,
94
+ localePatch: I
93
95
  }
94
96
  );
95
- }, b = (i) => new Promise((n, o) => {
97
+ }, b = (i) => new Promise((r, o) => {
96
98
  var a;
97
99
  if (document.getElementById("UiEditorScript")) {
98
- i(), n();
100
+ i(), r();
99
101
  return;
100
102
  }
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");
103
+ const n = O.guido, s = `https://email-static.useinsider.com/guido/${(a = n == null ? void 0 : n.stripo) == null ? void 0 : a.version}/UIEditor.js`, t = document.createElement("script");
102
104
  t.id = "UiEditorScript", t.type = "module", t.src = s, t.onload = () => {
103
- i(), n();
105
+ i(), r();
104
106
  }, t.onerror = () => {
105
107
  o(new Error(`Failed to load Stripo UIEditor script from S3: ${s}`));
106
108
  }, document.body.appendChild(t);
107
109
  });
108
110
  return { initPlugin: async (i) => {
109
111
  await b(async () => {
110
- const n = await S();
111
- await w(i, n);
112
+ const r = await S();
113
+ await w(i, r);
112
114
  });
113
115
  } };
114
116
  };
115
117
  export {
116
- W as useStripo
118
+ Z as useStripo
117
119
  };
@@ -35,7 +35,7 @@ const S = () => {
35
35
  () => {
36
36
  s({
37
37
  type: t.Success,
38
- message: `${e} patch restored successfully.`
38
+ message: "Your version has been restored successfully."
39
39
  });
40
40
  },
41
41
  (o) => {
@@ -0,0 +1,11 @@
1
+ import o from "./labels.json.js";
2
+ import t from "./toasters.json.js";
3
+ import r from "./tooltips.json.js";
4
+ const e = {
5
+ ...o,
6
+ ...r,
7
+ ...t
8
+ };
9
+ export {
10
+ e as en
11
+ };
@@ -0,0 +1,12 @@
1
+ const e = "Items", o = {
2
+ "Global Styles & Layout": "Global Styles and Layout",
3
+ "Structures & Modules": "Structures and Modules",
4
+ "Recommendation Block": "Recommendation",
5
+ Items: e,
6
+ "This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Recommendation block and test your message to ensure it works properly.",
7
+ "This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.": "This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly."
8
+ };
9
+ export {
10
+ e as Items,
11
+ o as default
12
+ };