@useinsider/guido 1.0.2-beta.29797ee → 1.0.2-beta.357420e

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 (99) hide show
  1. package/README.md +1 -43
  2. package/dist/@types/events.d.ts +0 -6
  3. package/dist/@types/generic.d.ts +0 -5
  4. package/dist/components/Guido.vue.d.ts +0 -3
  5. package/dist/components/Guido.vue.js +11 -11
  6. package/dist/components/Guido.vue2.js +61 -80
  7. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +12 -12
  8. package/dist/components/organisms/email-preview/PreviewContainer.vue2.js +8 -7
  9. package/dist/components/organisms/header/HeaderWrapper.vue.d.ts +1 -3
  10. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -6
  11. package/dist/components/organisms/header/HeaderWrapper.vue2.js +9 -15
  12. package/dist/components/organisms/header/LeftSlot.vue.js +9 -10
  13. package/dist/components/organisms/header/MiddleSlot.vue.js +6 -6
  14. package/dist/components/organisms/header/MiddleSlot.vue2.js +16 -15
  15. package/dist/components/organisms/header/RightSlot.vue.d.ts +1 -3
  16. package/dist/components/organisms/header/RightSlot.vue.js +4 -6
  17. package/dist/components/organisms/header/RightSlot.vue2.js +28 -26
  18. package/dist/components/organisms/header/ViewOptions.vue.js +11 -11
  19. package/dist/components/organisms/header/ViewOptions.vue2.js +15 -14
  20. package/dist/components/organisms/header/version-history/ViewOptions.vue.js +11 -11
  21. package/dist/components/organisms/header/version-history/ViewOptions.vue2.js +5 -5
  22. package/dist/composables/useCustomInterfaceAppearance.js +13 -15
  23. package/dist/composables/useHtmlCompiler.js +9 -17
  24. package/dist/composables/usePartner.d.ts +0 -1
  25. package/dist/composables/usePartner.js +9 -16
  26. package/dist/composables/usePreviewMode.js +13 -13
  27. package/dist/composables/useStripo.js +51 -54
  28. package/dist/composables/useToaster.js +17 -17
  29. package/dist/config/compiler/outlookCompilerRules.d.ts +0 -2
  30. package/dist/enums/defaults.d.ts +1 -6
  31. package/dist/enums/defaults.js +10 -47
  32. package/dist/guido.css +1 -1
  33. package/dist/static/styles/components/wide-panel.css.js +2 -11
  34. package/dist/stores/dynamic-content.d.ts +0 -12
  35. package/dist/stores/dynamic-content.js +6 -7
  36. package/dist/stores/editor.d.ts +1 -194
  37. package/dist/stores/editor.js +2 -18
  38. package/dist/stores/preview.d.ts +8 -0
  39. package/dist/stores/preview.js +20 -12
  40. package/dist/utils/genericUtil.js +6 -9
  41. package/dist/utils/templatePreparation.js +14 -21
  42. package/package.json +2 -4
  43. package/dist/components/organisms/LoadingWrapper.vue.d.ts +0 -2
  44. package/dist/components/organisms/LoadingWrapper.vue.js +0 -18
  45. package/dist/components/organisms/LoadingWrapper.vue2.js +0 -12
  46. package/dist/components/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -2
  47. package/dist/components/organisms/onboarding/AMPOnboarding.vue.js +0 -20
  48. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +0 -37
  49. package/dist/components/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -2
  50. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +0 -21
  51. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +0 -83
  52. package/dist/components/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -2
  53. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +0 -17
  54. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +0 -30
  55. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -2
  56. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +0 -19
  57. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +0 -43
  58. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts +0 -2
  59. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +0 -21
  60. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +0 -74
  61. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +0 -2
  62. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.js +0 -20
  63. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +0 -37
  64. package/dist/composables/useHtmlValidator.d.ts +0 -3
  65. package/dist/composables/useHtmlValidator.js +0 -120
  66. package/dist/composables/useRecommendation.d.ts +0 -19
  67. package/dist/composables/useRecommendation.js +0 -27
  68. package/dist/composables/useSave.d.ts +0 -4
  69. package/dist/composables/useSave.js +0 -15
  70. package/dist/composables/useStripoEventHandler.d.ts +0 -3
  71. package/dist/composables/useStripoEventHandler.js +0 -20
  72. package/dist/config/compiler/outlookCompilerRules.js +0 -36
  73. package/dist/config/compiler/recommendationCompilerRules.d.ts +0 -2
  74. package/dist/config/compiler/recommendationCompilerRules.js +0 -83
  75. package/dist/config/compiler/socialCompilerRules.d.ts +0 -2
  76. package/dist/config/compiler/socialCompilerRules.js +0 -21
  77. package/dist/config/compiler/unsubscribeCompilerRules.d.ts +0 -2
  78. package/dist/config/compiler/unsubscribeCompilerRules.js +0 -64
  79. package/dist/enums/html-validator.d.ts +0 -6
  80. package/dist/enums/html-validator.js +0 -7
  81. package/dist/enums/onboarding.d.ts +0 -1
  82. package/dist/enums/onboarding.js +0 -8
  83. package/dist/enums/recommendation.d.ts +0 -54
  84. package/dist/enums/recommendation.js +0 -56
  85. package/dist/enums/unsubscribe.d.ts +0 -15
  86. package/dist/enums/unsubscribe.js +0 -17
  87. package/dist/mock/api/user-modal-state.d.ts +0 -2
  88. package/dist/mock/api/validator.d.ts +0 -2
  89. package/dist/services/onboardingApi.d.ts +0 -4
  90. package/dist/services/onboardingApi.js +0 -23
  91. package/dist/static/assets/onboarding-img.svg.js +0 -4
  92. package/dist/static/styles/components/loader.css.js +0 -10
  93. package/dist/static/styles/customEditorStyle.css.js +0 -18
  94. package/dist/stores/onboarding.d.ts +0 -1068
  95. package/dist/stores/onboarding.js +0 -95
  96. package/dist/stores/recommendation.d.ts +0 -10
  97. package/dist/stores/recommendation.js +0 -9
  98. package/dist/stores/unsubscribe.d.ts +0 -8
  99. package/dist/stores/unsubscribe.js +0 -9
@@ -1,37 +0,0 @@
1
- import { defineComponent as p, computed as e, watch as m } from "vue";
2
- import { useTranslations as g } from "../../../composables/useTranslations.js";
3
- import { useOnboardingStore as u } from "../../../stores/onboarding.js";
4
- import { InOnboard as b } from "@useinsider/design-system-vue";
5
- const O = /* @__PURE__ */ p({
6
- __name: "AMPOnboarding",
7
- setup(l) {
8
- const i = g(), o = u(), r = e(() => `${window.innerWidth / 2 - 110}px`), a = e(() => [
9
- {
10
- classes: "guido-amp-onboarding",
11
- left: r.value,
12
- top: "70px",
13
- position: "Top Center",
14
- title: i("email-editor.onboarding-amp-title"),
15
- description: i("email-editor.onboarding-amp-description"),
16
- imageSource: "",
17
- backButtonClick: () => {
18
- },
19
- nextButtonType: "text",
20
- nextButtonText: i("action-builder.ok"),
21
- nextButtonClick: () => void o.close("ampOnboarding")
22
- }
23
- ]), d = e(() => o.onboardings.ampOnboarding.config.length > 0 && o.onboardings.ampOnboarding.isActive), s = () => {
24
- var n, t;
25
- (t = (n = o.getAmpCurrentCard) == null ? void 0 : n.nextButtonClick) == null || t.call(n);
26
- }, c = () => {
27
- var n, t;
28
- (t = (n = o.getAmpCurrentCard) == null ? void 0 : n.backButtonClick) == null || t.call(n);
29
- };
30
- return m(() => o.onboardings.ampOnboarding.isActive, (n) => {
31
- n && o.setConfig("ampOnboarding", a.value);
32
- }, { immediate: !0 }), { __sfc: !0, trans: i, onboardingStore: o, centerLeft: r, onboardingCardsConfig: a, isVisible: d, handleNext: s, handleBack: c, InOnboard: b };
33
- }
34
- });
35
- export {
36
- O as default
37
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
- export default _default;
@@ -1,21 +0,0 @@
1
- import c from "./GenericOnboarding.vue2.js";
2
- /* empty css */
3
- import g from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var l = function() {
5
- var r, n, t, i, a, s;
6
- var o = this, d = o._self._c, e = o._self._setupProxy;
7
- return e.isVisible ? d(e.InOnboard, { key: "guido__editor-onboard", staticClass: "w-21-s p-a z-11", class: (r = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : r.classes, attrs: { id: "guido__editor-onboard", "is-multiple-page": "", visible: "", "image-source": "", title: "", "bottom-position": (n = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : n.bottom, "left-position": (t = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : t.left, "pages-config": e.onboardingStore.onboardings.genericOnboarding.config, "pointer-position": (i = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : i.position, "right-position": (a = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : a.right, "top-position": (s = e.onboardingStore.getGenericCurrentCard) == null ? void 0 : s.top }, on: { backButtonClick: e.handleBack, close: function(u) {
8
- return e.onboardingStore.close("genericOnboarding");
9
- }, nextButtonClick: e.handleNext } }) : o._e();
10
- }, p = [], _ = /* @__PURE__ */ g(
11
- c,
12
- l,
13
- p,
14
- !1,
15
- null,
16
- "d3c52b44"
17
- );
18
- const S = _.exports;
19
- export {
20
- S as default
21
- };
@@ -1,83 +0,0 @@
1
- import { defineComponent as l, computed as i, watch as b } from "vue";
2
- import { useTranslations as x } from "../../../composables/useTranslations.js";
3
- import { SERVICE_HOVER_SELECTORS as m } from "../../../enums/onboarding.js";
4
- import { useOnboardingStore as k } from "../../../stores/onboarding.js";
5
- import { InOnboard as f } from "@useinsider/design-system-vue";
6
- const S = /* @__PURE__ */ l({
7
- __name: "GenericOnboarding",
8
- setup(B) {
9
- const e = x(), o = k(), r = i(() => `${window.innerWidth / 2 - 160}px`), c = () => {
10
- const t = document.querySelector("ui-editor");
11
- t != null && t.shadowRoot && m.forEach((n) => {
12
- var d;
13
- const a = (d = t.shadowRoot) == null ? void 0 : d.querySelector(n);
14
- a && a.classList.add("hover");
15
- });
16
- }, s = i(() => [
17
- {
18
- classes: "guido-onboarding-blocks",
19
- left: "90px",
20
- top: "90px",
21
- position: "Left Top",
22
- title: e("email-editor.onboarding-blocks-title"),
23
- description: e("email-editor.onboarding-blocks-description"),
24
- imageSource: "",
25
- backButtonClick: () => {
26
- },
27
- nextButtonType: "text",
28
- nextButtonText: e("products.next"),
29
- nextButtonClick: () => {
30
- c(), o.next("genericOnboarding");
31
- }
32
- },
33
- {
34
- classes: "guido-onboarding-stripes",
35
- right: "450px",
36
- bottom: "38px",
37
- position: "Right Bottom",
38
- title: e("email-editor.onboarding-stripes-title"),
39
- description: e("email-editor.onboarding-stripes-description"),
40
- imageSource: "",
41
- backButtonType: "text",
42
- backButtonText: e("ds-steps.back"),
43
- backButtonClick: () => {
44
- o.previous("genericOnboarding");
45
- },
46
- nextButtonType: "text",
47
- nextButtonText: e("products.next"),
48
- nextButtonClick: () => {
49
- o.next("genericOnboarding");
50
- }
51
- },
52
- {
53
- classes: "guido-onboarding-preview",
54
- left: r.value,
55
- top: "90px",
56
- position: "Top Center",
57
- title: e("email-editor.onboarding-preview-title"),
58
- description: e("email-editor.onboarding-preview-description"),
59
- imageSource: "",
60
- backButtonType: "text",
61
- backButtonText: e("ds-steps.back"),
62
- backButtonClick: () => o.previous("genericOnboarding"),
63
- nextButtonType: "text",
64
- nextButtonText: e("action-builder.ok"),
65
- nextButtonClick: () => {
66
- o.close("genericOnboarding");
67
- }
68
- }
69
- ]), g = i(() => o.onboardings.genericOnboarding.config.length > 0 && o.onboardings.genericOnboarding.isActive), p = () => {
70
- var t, n;
71
- (n = (t = o.getGenericCurrentCard) == null ? void 0 : t.nextButtonClick) == null || n.call(t);
72
- }, u = () => {
73
- var t, n;
74
- (n = (t = o.getGenericCurrentCard) == null ? void 0 : t.backButtonClick) == null || n.call(t);
75
- };
76
- return b(() => o.onboardings.genericOnboarding.isActive, (t) => {
77
- t && o.setConfig("genericOnboarding", s.value);
78
- }, { immediate: !0 }), { __sfc: !0, trans: e, onboardingStore: o, centerLeft: r, addHoverToServiceElements: c, onboardingCardsConfig: s, isVisible: g, handleNext: p, handleBack: u, InOnboard: f };
79
- }
80
- });
81
- export {
82
- S as default
83
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
- export default _default;
@@ -1,17 +0,0 @@
1
- import s from "./NewVersionPopup.vue2.js";
2
- import n from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var r = function() {
4
- var e = this, t = e._self._c, o = e._self._setupProxy;
5
- return o.isVisible ? t(o.WpModal, { attrs: { id: "guido__new-version-popup", "close-on-outside-click": !1, "footer-button-options": o.footerButtonOptions, title: o.trans("email-editor.onboarding-title") }, on: { close: o.handleClose, "primary-action": o.handleDiscoverNow, "secondary-action": o.handleRemindLater } }, [t("div", { staticClass: "d-f f-d-c" }, [t("img", { staticClass: "w-1 h-1 d-b p-e-n mb-5", attrs: { src: o.onboardingImageSvg } }), t("p", { staticClass: "f-s-2 f-w-400", domProps: { innerHTML: e._s(o.trans("email-editor.onboarding-description")) } })])]) : e._e();
6
- }, i = [], a = /* @__PURE__ */ n(
7
- s,
8
- r,
9
- i,
10
- !1,
11
- null,
12
- null
13
- );
14
- const p = a.exports;
15
- export {
16
- p as default
17
- };
@@ -1,30 +0,0 @@
1
- import { defineComponent as s, ref as r } from "vue";
2
- import a from "../../wrappers/WpModal.vue.js";
3
- import { useTranslations as i } from "../../../composables/useTranslations.js";
4
- import l from "../../../static/assets/onboarding-img.svg.js";
5
- import { useOnboardingStore as m } from "../../../stores/onboarding.js";
6
- const w = /* @__PURE__ */ s({
7
- __name: "NewVersionPopup",
8
- setup(p) {
9
- const n = i(), e = m(), o = r(!0), t = r({
10
- primaryButton: {
11
- type: "primary",
12
- labelText: n("left-menu.discover-now")
13
- },
14
- secondaryButton: {
15
- type: "subtle-primary",
16
- labelText: n("products.remind-me-later")
17
- }
18
- });
19
- return { __sfc: !0, trans: n, onboardingStore: e, isVisible: o, footerButtonOptions: t, handleDiscoverNow: () => {
20
- e.onDiscoverNowClicked(), o.value = !1;
21
- }, handleRemindLater: () => {
22
- e.onRemindMeLater(), o.value = !1;
23
- }, handleClose: () => {
24
- e.onNewVersionPopupClose(), o.value = !1;
25
- }, WpModal: a, onboardingImageSvg: l };
26
- }
27
- });
28
- export {
29
- w as default
30
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
- export default _default;
@@ -1,19 +0,0 @@
1
- import o from "./OnboardingWrapper.vue2.js";
2
- import _ from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var s = function() {
4
- var n = this, e = n._self._c, t = n._self._setupProxy;
5
- return e("div", n._l(t.visibleOnboardings, function(r) {
6
- return e(r.component, { key: r.type, tag: "component" });
7
- }), 1);
8
- }, a = [], p = /* @__PURE__ */ _(
9
- o,
10
- s,
11
- a,
12
- !1,
13
- null,
14
- null
15
- );
16
- const m = p.exports;
17
- export {
18
- m as default
19
- };
@@ -1,43 +0,0 @@
1
- import { defineComponent as g, computed as e, onMounted as b, watch as t } from "vue";
2
- import { usePartner as O } from "../../../composables/usePartner.js";
3
- import { useEditorStore as u } from "../../../stores/editor.js";
4
- import { useOnboardingStore as v } from "../../../stores/onboarding.js";
5
- import { usePreviewStore as l } from "../../../stores/preview.js";
6
- import y from "./AMPOnboarding.vue.js";
7
- import S from "./GenericOnboarding.vue.js";
8
- import w from "./NewVersionPopup.vue.js";
9
- import P from "./TextBlockOnboarding.vue.js";
10
- import h from "./VersionHistoryOnboarding.vue.js";
11
- const E = /* @__PURE__ */ g({
12
- __name: "OnboardingWrapper",
13
- setup(_) {
14
- const o = v(), r = u(), s = l(), { isTestPartner: a } = O(), p = e(() => r.isStripoInitialized), d = e(() => a()), m = [
15
- { type: "newVersionPopup", component: w },
16
- { type: "genericOnboarding", component: S },
17
- { type: "textBlockOnboarding", component: P },
18
- { type: "versionHistoryOnboarding", component: h },
19
- { type: "ampOnboarding", component: y }
20
- ], c = (n) => d.value || !p.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), f = e(() => m.filter((n) => c(n.type)));
21
- return b(async () => {
22
- await o.fetchUserModalState();
23
- }), t(
24
- () => r.isVersionHistoryOpen,
25
- (n, i) => {
26
- n && !i && o.shouldShowOnboarding("versionHistoryOnboarding") && o.start("versionHistoryOnboarding"), !n && i && o.isActive("versionHistoryOnboarding") && o.close("versionHistoryOnboarding");
27
- }
28
- ), t(
29
- () => s.emailFormat,
30
- (n, i) => {
31
- i !== "AMP" && n === "AMP" && o.shouldShowOnboarding("ampOnboarding") && o.start("ampOnboarding");
32
- }
33
- ), t(
34
- () => r.isPreviewModeOpen,
35
- (n) => {
36
- !n && o.isActive("ampOnboarding") && o.close("ampOnboarding");
37
- }
38
- ), { __sfc: !0, onboardingStore: o, editorStore: r, previewStore: s, isTestPartner: a, isStripoReady: p, isTestPartnerActive: d, onboardingConfigs: m, shouldShow: c, visibleOnboardings: f };
39
- }
40
- });
41
- export {
42
- E as default
43
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
- export default _default;
@@ -1,21 +0,0 @@
1
- import l from "./TextBlockOnboarding.vue2.js";
2
- /* empty css */
3
- import d from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var g = function() {
5
- var e, n, r, i, a, s;
6
- var t = this, c = t._self._c, o = t._self._setupProxy;
7
- return o.isVisible ? c(o.InOnboard, { key: "guido__text-block-onboard", staticClass: "w-21-s p-a z-11", class: (e = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : e.classes, attrs: { id: "guido__text-block-onboard", "is-multiple-page": "", visible: "", "image-source": "", title: "", "bottom-position": (n = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : n.bottom, "left-position": (r = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : r.left, "pages-config": o.onboardingStore.onboardings.textBlockOnboarding.config, "pointer-position": (i = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : i.position, "right-position": (a = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : a.right, "top-position": (s = o.onboardingStore.getTextBlockCurrentCard) == null ? void 0 : s.top }, on: { backButtonClick: o.handleBack, close: function(u) {
8
- return o.onboardingStore.close("textBlockOnboarding");
9
- }, nextButtonClick: o.handleNext } }) : t._e();
10
- }, b = [], p = /* @__PURE__ */ d(
11
- l,
12
- g,
13
- b,
14
- !1,
15
- null,
16
- "a408dcea"
17
- );
18
- const f = p.exports;
19
- export {
20
- f as default
21
- };
@@ -1,74 +0,0 @@
1
- import { defineComponent as u, computed as a, watch as b } from "vue";
2
- import { useTranslations as m } from "../../../composables/useTranslations.js";
3
- import { useOnboardingStore as k } from "../../../stores/onboarding.js";
4
- import { InOnboard as B } from "@useinsider/design-system-vue";
5
- const y = /* @__PURE__ */ u({
6
- __name: "TextBlockOnboarding",
7
- setup(h) {
8
- const i = m(), o = k(), e = a(() => {
9
- const n = window.innerHeight - 128, r = Math.max(90, n * 0.15), s = Math.max(490, n * 0.71), d = 200, g = 40;
10
- return {
11
- settings: {
12
- top: `${r}px`,
13
- position: r + d + g > n ? "Right Bottom" : "Right Top"
14
- },
15
- dynamic: {
16
- top: `${s}px`,
17
- position: s + d + g > n ? "Right Bottom" : "Right Top"
18
- }
19
- };
20
- }), c = a(() => [
21
- {
22
- classes: "guido-text-block-onboarding-settings",
23
- right: "450px",
24
- top: e.value.settings.top,
25
- position: e.value.settings.position,
26
- title: i("email-editor.onboarding-text-block-title"),
27
- description: i("email-editor.onboarding-text-block-description"),
28
- imageSource: "",
29
- backButtonClick: () => {
30
- },
31
- nextButtonType: "text",
32
- nextButtonText: i("products.next"),
33
- nextButtonClick: () => {
34
- o.next("textBlockOnboarding");
35
- }
36
- },
37
- {
38
- classes: "guido-text-block-onboarding-dynamic",
39
- right: "450px",
40
- top: e.value.dynamic.top,
41
- position: e.value.dynamic.position,
42
- title: i("email-editor.onboarding-dynamic-content-title"),
43
- description: i("email-editor.onboarding-dynamic-content-description"),
44
- imageSource: "",
45
- backButtonType: "text",
46
- backButtonText: i("ds-steps.back"),
47
- backButtonClick: () => {
48
- o.previous("textBlockOnboarding");
49
- },
50
- nextButtonType: "text",
51
- nextButtonText: i("action-builder.ok"),
52
- nextButtonClick: () => {
53
- o.close("textBlockOnboarding");
54
- }
55
- }
56
- ]), l = a(() => o.onboardings.textBlockOnboarding.config.length > 0 && o.onboardings.textBlockOnboarding.isActive), p = () => {
57
- var t, n;
58
- (n = (t = o.getTextBlockCurrentCard) == null ? void 0 : t.nextButtonClick) == null || n.call(t);
59
- }, x = () => {
60
- var t, n;
61
- (n = (t = o.getTextBlockCurrentCard) == null ? void 0 : t.backButtonClick) == null || n.call(t);
62
- };
63
- return b(
64
- () => o.isActive("textBlockOnboarding"),
65
- (t) => {
66
- t && o.setConfig("textBlockOnboarding", c.value);
67
- },
68
- { immediate: !0 }
69
- ), { __sfc: !0, trans: i, onboardingStore: o, dynamicPosition: e, onboardingCardsConfig: c, isVisible: l, handleNext: p, handleBack: x, InOnboard: B };
70
- }
71
- });
72
- export {
73
- y as default
74
- };
@@ -1,2 +0,0 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
- export default _default;
@@ -1,20 +0,0 @@
1
- import g from "./VersionHistoryOnboarding.vue2.js";
2
- import l from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var c = function() {
4
- var n, t, i, e, s, a;
5
- var r = this, d = r._self._c, o = r._self._setupProxy;
6
- return o.isVisible ? d(o.InOnboard, { key: "guido__version-history-onboard", staticClass: "w-21-s p-a z-11", class: (n = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : n.classes, attrs: { id: "guido__version-history-onboard", "is-multiple-page": "", visible: "", "image-source": "", title: "", "bottom-position": (t = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : t.bottom, "left-position": (i = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : i.left, "pages-config": o.onboardingStore.onboardings.versionHistoryOnboarding.config, "pointer-position": (e = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : e.position, "right-position": (s = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : s.right, "top-position": (a = o.onboardingStore.getVersionHistoryCurrentCard) == null ? void 0 : a.top }, on: { backButtonClick: o.handleBack, close: function(b) {
7
- return o.onboardingStore.close("versionHistoryOnboarding");
8
- }, nextButtonClick: o.handleNext } }) : r._e();
9
- }, _ = [], p = /* @__PURE__ */ l(
10
- g,
11
- c,
12
- _,
13
- !1,
14
- null,
15
- null
16
- );
17
- const m = p.exports;
18
- export {
19
- m as default
20
- };
@@ -1,37 +0,0 @@
1
- import { defineComponent as c, computed as e, watch as g } from "vue";
2
- import { useTranslations as b } from "../../../composables/useTranslations.js";
3
- import { useOnboardingStore as u } from "../../../stores/onboarding.js";
4
- import { InOnboard as l } from "@useinsider/design-system-vue";
5
- const C = /* @__PURE__ */ c({
6
- __name: "VersionHistoryOnboarding",
7
- setup(p) {
8
- const t = b(), n = u(), r = e(() => [
9
- {
10
- classes: "guido-version-history-onboarding",
11
- left: "409px",
12
- top: "192px",
13
- position: "Left Top",
14
- title: t("email-editor.onboarding-version-history-title"),
15
- description: t("email-editor.onboarding-version-history-description"),
16
- imageSource: "",
17
- backButtonClick: () => {
18
- },
19
- nextButtonType: "text",
20
- nextButtonText: t("action-builder.ok"),
21
- nextButtonClick: () => void n.close("versionHistoryOnboarding")
22
- }
23
- ]), s = e(() => n.onboardings.versionHistoryOnboarding.config.length > 0 && n.onboardings.versionHistoryOnboarding.isActive), a = () => {
24
- var o, i;
25
- (i = (o = n.getVersionHistoryCurrentCard) == null ? void 0 : o.nextButtonClick) == null || i.call(o);
26
- }, d = () => {
27
- var o, i;
28
- (i = (o = n.getVersionHistoryCurrentCard) == null ? void 0 : o.backButtonClick) == null || i.call(o);
29
- };
30
- return g(() => n.onboardings.versionHistoryOnboarding.isActive, (o) => {
31
- o && n.setConfig("versionHistoryOnboarding", r.value);
32
- }, { immediate: !0 }), { __sfc: !0, trans: t, onboardingStore: n, onboardingCardsConfig: r, isVisible: s, handleNext: a, handleBack: d, InOnboard: l };
33
- }
34
- });
35
- export {
36
- C as default
37
- };
@@ -1,3 +0,0 @@
1
- export declare const useHtmlValidator: () => {
2
- validateHtml: (html: string, customFields: string[], isOnSaveValidation?: boolean) => Promise<boolean>;
3
- };
@@ -1,120 +0,0 @@
1
- import { useConfig as V } from "./useConfig.js";
2
- import { TemplateTypes as H } from "../enums/defaults.js";
3
- import { DISPLAY_CONDITIONS_REGEX as O, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as B, CampaignCouldNotBeSavedKey as _, CanNotMakeAnyChangesForRunningKey as R } from "../enums/html-validator.js";
4
- import { ToasterTypeOptions as r } from "../enums/toaster.js";
5
- import { useRecommendationStore as D } from "../stores/recommendation.js";
6
- import { base64EncodeWithSpecialChars as P } from "../utils/base64.js";
7
- import { useHttp as X } from "./useHttp.js";
8
- import { useToaster as j } from "./useToaster.js";
9
- import { useTranslations as z } from "./useTranslations.js";
10
- const tt = () => {
11
- var d;
12
- const { showToaster: a } = j(), { post: y } = X(), { config: C } = V(), i = z(), m = D(), f = ((d = C.partner) == null ? void 0 : d.messageType) === H.transactional, h = async (t) => {
13
- const e = await y(
14
- "/newsletter/template-library/check-template-html-body",
15
- { html: P(t) }
16
- ), { status: n, message: c } = e.data;
17
- return n || a({
18
- type: r.Alert,
19
- message: n === void 0 ? c : i("newsletter.invalid-url-link-for-toaster")
20
- }), i(_), c === i(R) && a({
21
- type: r.Alert,
22
- message: i("newsletter.already-in-progress")
23
- }), n;
24
- }, v = (t) => !["if", "endif", "else", "elif", "now"].includes(t.toLowerCase()), w = (t) => ["if", "endif"].includes(t.toLowerCase()), S = (t, s) => {
25
- const e = t.match(/({%(.*?)%})/g);
26
- let n = !0;
27
- return e !== null && !f && e.forEach((c) => {
28
- const o = c.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
29
- if (o && o.length > 0) {
30
- const [l] = o;
31
- v(l) && !s.includes(l) && (a({
32
- type: r.Warning,
33
- message: i("custom-fields.invalid-custom-fields")
34
- }), n = !1);
35
- }
36
- }), n;
37
- }, E = async (t, s, e) => {
38
- const n = e ? await h(t) : !0;
39
- return S(t, s) && n;
40
- }, T = (t) => t.length > 0 ? !0 : (a({
41
- type: r.Warning,
42
- message: i("newsletter.html-content-is-empty")
43
- }), !1), I = (t) => {
44
- const s = (t.match(/{/gm) || []).length, e = (t.match(/}/gm) || []).length;
45
- return s > e && a({
46
- type: r.Warning,
47
- message: i("custom-fields.missing-closing-braces")
48
- }), s < e && a({
49
- type: r.Warning,
50
- message: i("custom-fields.missing-opening-braces")
51
- }), s === e;
52
- }, A = (t) => {
53
- const s = t.match(/{{\s*(\w+\s+((\w+\|\w+)|(\w+)))\s*}}/gm) === null;
54
- return s || a({
55
- type: r.Warning,
56
- message: i("custom-fields.invalid-custom-fields")
57
- }), s;
58
- }, W = (t, s) => {
59
- const e = t.match(/{{([a-zA-Z0-9_\s]*)}}/gm);
60
- if (e && !f) {
61
- const n = s.map((o) => o.toLowerCase()), c = e.some((o) => {
62
- const l = o.replace("{{", "").replace("}}", "").trim().toLowerCase();
63
- return !n.includes(l) || l === "";
64
- });
65
- return c && a({
66
- type: r.Warning,
67
- message: i("custom-fields.invalid-custom-fields")
68
- }), !c;
69
- }
70
- return !0;
71
- }, x = (t) => {
72
- const s = t.match(/{%(.*?)%}/g), e = [];
73
- let n = !0;
74
- if (s && s.forEach((c) => {
75
- const o = c.match(O), l = c.match(B), L = (o == null ? void 0 : o.join("")) || "";
76
- (!o || c !== L) && !l && (a({
77
- type: r.Alert,
78
- message: i("newsletter.display-conditions-invalid-syntax")
79
- }), n = !1), o && o.forEach((u) => {
80
- u.trim() === "=" && (a({
81
- type: r.Alert,
82
- message: i("custom-conditions.wrong-equality-operators")
83
- }), n = !1);
84
- const g = u.match(/^[a-zA-Z]*$/g);
85
- g && g.forEach((p) => {
86
- w(p) && e.push(p);
87
- });
88
- });
89
- }), e.length) {
90
- const c = e.filter((l) => l === "if"), o = e.filter((l) => l === "endif");
91
- c.length !== o.length && (a({
92
- type: r.Alert,
93
- message: i("custom-conditions.missing-if-endif-tag")
94
- }), n = !1);
95
- }
96
- return n;
97
- }, b = (t) => {
98
- const s = (t.match(/{% /gm) || []).length, e = (t.match(/ %}/gm) || []).length, n = s === e;
99
- return n || a({
100
- type: r.Warning,
101
- message: i("custom-conditions.no-space-after-braces")
102
- }), n;
103
- }, N = (t) => (t.match(/({%(.*?)%})/g) || []).filter((e) => e.includes("if")).map((e) => (e.match(/{{.*}}/gm) || []).length).reduce((e, n) => e + n, 0) > 0 ? (a({
104
- type: r.Warning,
105
- message: i("custom-conditions.no-braces-inside-if-tag")
106
- }), !1) : !0, k = () => m.recommendationConfigs && Object.values(m.recommendationConfigs).find((s) => s.filters.find((e) => e.value === "")) !== void 0 ? (a({
107
- type: r.Alert,
108
- message: i("newsletter.fill-all-necessary-fields")
109
- }), !1) : !0, F = (t) => {
110
- const s = /src="[^"]*\.(svg|pst)"/gm;
111
- return t.match(s) === null ? !0 : (a({
112
- type: r.Alert,
113
- message: i("newsletter.invalid-image-type")
114
- }), !1);
115
- };
116
- return { validateHtml: async (t, s, e = !1) => await E(t, s, e) && T(t) && I(t) && A(t) && W(t, s) && x(t) && b(t) && N(t) && k() && F(t) };
117
- };
118
- export {
119
- tt as useHtmlValidator
120
- };
@@ -1,19 +0,0 @@
1
- type CardWidthParams = {
2
- mobileLeftPadding: number;
3
- mobileRightPadding: number;
4
- cardsInRow: number;
5
- unresponsive: boolean;
6
- };
7
- interface CampaignData extends CardWidthParams {
8
- textTrimming: boolean;
9
- orientation: string;
10
- priceBeforeTextValue: string;
11
- priceAfterTextValue: string;
12
- discountBeforeTextValue: string;
13
- discountAfterTextValue: string;
14
- }
15
- export declare const useRecommendation: () => {
16
- calculateCardWidth: ({ mobileLeftPadding, mobileRightPadding, cardsInRow, unresponsive, }: CardWidthParams) => number;
17
- getRecommendationCampaignData: (id: string) => CampaignData;
18
- };
19
- export {};
@@ -1,27 +0,0 @@
1
- import { MinDeviceViewport as r, DefaultPadding as c } from "../enums/recommendation.js";
2
- const m = () => ({
3
- calculateCardWidth: ({
4
- mobileLeftPadding: e,
5
- mobileRightPadding: a,
6
- cardsInRow: n,
7
- unresponsive: i
8
- }) => {
9
- const t = i ? n : 1, o = e + a + (t - 1) * c;
10
- return (r - o) / t;
11
- },
12
- getRecommendationCampaignData: (e) => (console.debug(e), {
13
- textTrimming: !1,
14
- orientation: "vertical",
15
- mobileLeftPadding: 0,
16
- mobileRightPadding: 0,
17
- cardsInRow: 2,
18
- unresponsive: !1,
19
- priceBeforeTextValue: "",
20
- priceAfterTextValue: "",
21
- discountBeforeTextValue: "",
22
- discountAfterTextValue: ""
23
- })
24
- });
25
- export {
26
- m as useRecommendation
27
- };
@@ -1,4 +0,0 @@
1
- import { SavedTemplateDetails } from '@@/Types/stripo';
2
- export declare const useSave: () => {
3
- save: (isSilent?: boolean) => Promise<SavedTemplateDetails | undefined>;
4
- };
@@ -1,15 +0,0 @@
1
- import { useSaveStart as i, useSaveComplete as l } from "./useGuidoActions.js";
2
- import { useTemplatePreparation as m } from "../utils/templatePreparation.js";
3
- import { useHtmlValidator as n } from "./useHtmlValidator.js";
4
- const f = () => {
5
- const e = i(), a = l(), { validateHtml: s } = n();
6
- return { save: async (o = !1) => {
7
- e();
8
- const { prepareTemplateDetails: r } = m(), t = await r();
9
- if (await s(t.compiledHtml, [], !0))
10
- return o || a(t), t;
11
- } };
12
- };
13
- export {
14
- f as useSave
15
- };
@@ -1,3 +0,0 @@
1
- export declare const useStripoEventHandler: () => {
2
- handleEvent: (type: string, params: Record<string, string>) => Promise<void>;
3
- };