@useinsider/guido 1.0.2-beta.c122fb4 → 1.0.2-beta.c50c279

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 (46) hide show
  1. package/README.md +24 -1
  2. package/dist/@types/events.d.ts +6 -0
  3. package/dist/components/Guido.vue.js +2 -2
  4. package/dist/components/Guido.vue2.js +41 -39
  5. package/dist/components/organisms/header/ViewOptions.vue.js +11 -11
  6. package/dist/components/organisms/header/ViewOptions.vue2.js +5 -5
  7. package/dist/components/organisms/header/version-history/ViewOptions.vue.js +11 -11
  8. package/dist/components/organisms/header/version-history/ViewOptions.vue2.js +5 -5
  9. package/dist/components/organisms/onboarding/AMPOnboarding.vue.d.ts +2 -0
  10. package/dist/components/organisms/onboarding/AMPOnboarding.vue.js +20 -0
  11. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +37 -0
  12. package/dist/components/organisms/onboarding/GenericOnboarding.vue.d.ts +2 -0
  13. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +21 -0
  14. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +83 -0
  15. package/dist/components/organisms/onboarding/NewVersionPopup.vue.d.ts +2 -0
  16. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +17 -0
  17. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +30 -0
  18. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +2 -0
  19. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +19 -0
  20. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +43 -0
  21. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts +2 -0
  22. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +21 -0
  23. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +74 -0
  24. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts +2 -0
  25. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.js +20 -0
  26. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +37 -0
  27. package/dist/composables/useHtmlValidator.js +51 -51
  28. package/dist/composables/usePartner.d.ts +1 -0
  29. package/dist/composables/usePartner.js +16 -9
  30. package/dist/composables/useStripo.js +37 -35
  31. package/dist/composables/useStripoEventHandler.d.ts +3 -0
  32. package/dist/composables/useStripoEventHandler.js +20 -0
  33. package/dist/enums/defaults.d.ts +1 -0
  34. package/dist/enums/defaults.js +42 -10
  35. package/dist/enums/onboarding.d.ts +1 -0
  36. package/dist/enums/onboarding.js +8 -0
  37. package/dist/guido.css +1 -1
  38. package/dist/mock/api/user-modal-state.d.ts +2 -0
  39. package/dist/services/onboardingApi.d.ts +4 -0
  40. package/dist/services/onboardingApi.js +23 -0
  41. package/dist/static/assets/onboarding-img.svg.js +4 -0
  42. package/dist/stores/editor.d.ts +21 -0
  43. package/dist/stores/editor.js +2 -1
  44. package/dist/stores/onboarding.d.ts +1068 -0
  45. package/dist/stores/onboarding.js +95 -0
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -16,7 +16,30 @@ npm install @useinsider/guido
16
16
  ```
17
17
  ### Prerequisites
18
18
  🍍 Your project should have `pinia`
19
-
19
+ You need to be sure those lines added in your config file:
20
+
21
+ â„šī¸ It helps to optimize your dependencies and sharing by Guido. This is why Guido pretty fast and tiny.
22
+
23
+ #### For Webpack
24
+ `/webpack.config.js` or `/vue.config.js`
25
+ ```js
26
+ // ... Previous Configs
27
+ shared: {
28
+ vue: { singleton: true },
29
+ pinia: { singleton: true },
30
+ },
31
+ // ... Upcoming Configs
32
+ ```
33
+
34
+ ##### For Vite:
35
+ `/vite.config.js`
36
+ ```js
37
+ // ... Previous Configs
38
+ resolve: {
39
+ dedupe: ['vue', 'pinia'],
40
+ },
41
+ // ... Upcoming Configs
42
+ ```
20
43
  ---
21
44
  ## 🚀 Usage
22
45
 
@@ -1 +1,7 @@
1
1
  export type StripoEventType = 'save' | 'export' | 'close' | 'autosave' | 'publish' | 'export:requested' | 'export:ready';
2
+ export interface EventHandler {
3
+ (params: Record<string, string>): void | Promise<void>;
4
+ }
5
+ export interface EventHandlers {
6
+ [eventType: string]: EventHandler;
7
+ }
@@ -3,14 +3,14 @@ import a from "./Guido.vue2.js";
3
3
  import i from "../_virtual/_plugin-vue2_normalizer.js";
4
4
  var t = function() {
5
5
  var o = this, r = o._self._c, e = o._self._setupProxy;
6
- return r("div", { staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.SaveAsTemplateDrawer), r(e.LoadingWrapper)], 1);
6
+ return r("div", { staticClass: "guido-editor__wrapper", class: { "guido-editor__no-header": e.noHeader } }, [r(e.HeaderWrapper), e.editorStore.isPreviewModeOpen ? r(e.PreviewContainer) : o._e(), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.previewStore.isLoaded, expression: "!previewStore.isLoaded" }], staticClass: "guido-editor__container", class: { "guido-editor__no-header": e.noHeader }, attrs: { id: "guido-editor" } }), r(e.Toaster), r(e.SaveAsTemplateDrawer), e.isTestPartner() ? o._e() : r(e.OnboardingWrapper), r(e.LoadingWrapper)], 1);
7
7
  }, s = [], d = /* @__PURE__ */ i(
8
8
  a,
9
9
  t,
10
10
  s,
11
11
  !1,
12
12
  null,
13
- "aef3bfa0"
13
+ "39783038"
14
14
  );
15
15
  const v = d.exports;
16
16
  export {
@@ -1,18 +1,18 @@
1
- import { defineComponent as P, defineAsyncComponent as _, computed as b, watch as k, onMounted as A, onUnmounted as H } from "vue";
2
- import { provideGuidoActions as N } from "../composables/useGuidoActions.js";
3
- import { usePartner as U } from "../composables/usePartner.js";
4
- import { useStripo as W } from "../composables/useStripo.js";
5
- import { DefaultUsername as x, DefaultMessageType as M, DefaultGuidoConfig as z } from "../enums/defaults.js";
6
- import B from "./organisms/base/Toaster.vue.js";
7
- import F from "./organisms/header/HeaderWrapper.vue.js";
8
- import K from "./organisms/LoadingWrapper.vue.js";
9
- import R from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
10
- import { useStripoApi as j } from "../services/stripoApi.js";
11
- import { useDynamicContentStore as q } from "../stores/dynamic-content.js";
12
- import { useEditorStore as J } from "../stores/editor.js";
13
- import { usePreviewStore as O } from "../stores/preview.js";
14
- import Q from "../node_modules/lodash-es/merge.js";
15
- const me = /* @__PURE__ */ P({
1
+ import { defineComponent as A, defineAsyncComponent as b, computed as T, watch as W, onMounted as H, onUnmounted as N } from "vue";
2
+ import { provideGuidoActions as U } from "../composables/useGuidoActions.js";
3
+ import { usePartner as x } from "../composables/usePartner.js";
4
+ import { useStripo as M } from "../composables/useStripo.js";
5
+ import { DefaultUsername as z, DefaultMessageType as B, DefaultGuidoConfig as F } from "../enums/defaults.js";
6
+ import K from "./organisms/base/Toaster.vue.js";
7
+ import O from "./organisms/header/HeaderWrapper.vue.js";
8
+ import R from "./organisms/LoadingWrapper.vue.js";
9
+ import j from "./organisms/save-as-template/SaveAsTemplateDrawer.vue.js";
10
+ import { useStripoApi as q } from "../services/stripoApi.js";
11
+ import { useDynamicContentStore as J } from "../stores/dynamic-content.js";
12
+ import { useEditorStore as Q } from "../stores/editor.js";
13
+ import { usePreviewStore as V } from "../stores/preview.js";
14
+ import X from "../node_modules/lodash-es/merge.js";
15
+ const le = /* @__PURE__ */ A({
16
16
  __name: "Guido",
17
17
  props: {
18
18
  templateId: null,
@@ -27,45 +27,47 @@ const me = /* @__PURE__ */ P({
27
27
  guidoConfig: null
28
28
  },
29
29
  emits: ["dynamic-content:open", "back", "save:start", "save:complete", "on-change"],
30
- setup(E, { expose: T, emit: o }) {
31
- const t = E, G = _(
30
+ setup(E, { expose: G, emit: t }) {
31
+ const o = E, P = b(
32
32
  () => import("./organisms/email-preview/PreviewContainer.vue.js")
33
- ), n = q(), c = J(), I = O(), r = b(() => c.hasChanges), a = t.preselectedDynamicContentList || [], { getPartnerName: m, getProductType: d } = U(), {
33
+ ), I = b(
34
+ () => import("./organisms/onboarding/OnboardingWrapper.vue.js")
35
+ ), n = J(), c = Q(), L = V(), r = T(() => c.hasChanges), a = o.preselectedDynamicContentList || [], { getPartnerName: m, getProductType: d, isTestPartner: _ } = x(), {
34
36
  templateId: l,
35
- userId: u,
36
- guidoConfig: p,
37
+ userId: p,
38
+ guidoConfig: u,
37
39
  html: g = "",
38
40
  css: f = "",
39
41
  partnerName: i = m(),
40
42
  productType: s = d(),
41
- messageType: y = M,
42
- username: C = x
43
- } = t;
44
- window.GuidoConfig = Q(z, p), window.GuidoConfig.partner = {
43
+ messageType: y = B,
44
+ username: C = z
45
+ } = o;
46
+ window.GuidoConfig = X(F, u), window.GuidoConfig.partner = {
45
47
  partnerName: i,
46
48
  productType: s,
47
49
  messageType: y
48
50
  };
49
- const { initPlugin: v } = W({
51
+ const { initPlugin: v } = M({
50
52
  emailId: l,
51
- userId: u,
53
+ userId: p,
52
54
  username: C,
53
55
  partnerName: i,
54
56
  productType: s,
55
57
  preselectedDynamicContentList: a
56
- }), { getDefaultTemplate: w } = j(), L = b(() => {
58
+ }), { getDefaultTemplate: w } = q(), k = T(() => {
57
59
  var e;
58
60
  return !((e = window.GuidoConfig) != null && e.useHeader);
59
61
  });
60
- N({
62
+ U({
61
63
  onBack: () => {
62
- console.debug("guido:back"), o("back");
64
+ console.debug("guido:back"), t("back");
63
65
  },
64
66
  onSaveStart: () => {
65
- console.debug("guido:save:start"), o("save:start");
67
+ console.debug("guido:save:start"), t("save:start");
66
68
  },
67
69
  onSaveComplete: (e) => {
68
- console.debug("guido:save:complete", e), o("save:complete", e);
70
+ console.debug("guido:save:complete", e), t("save:complete", e);
69
71
  }
70
72
  });
71
73
  const h = (e) => {
@@ -73,9 +75,9 @@ const me = /* @__PURE__ */ P({
73
75
  }, D = () => {
74
76
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
75
77
  };
76
- return k(() => r.value, () => {
77
- o("on-change");
78
- }), A(async () => {
78
+ return W(() => r.value, () => {
79
+ t("on-change");
80
+ }), H(async () => {
79
81
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
80
82
  try {
81
83
  let e = {
@@ -90,19 +92,19 @@ const me = /* @__PURE__ */ P({
90
92
  }
91
93
  document.addEventListener("dynamic-content:open", (e) => {
92
94
  const S = e;
93
- console.debug("dynamic-content:open", S.detail), o("dynamic-content:open", S.detail);
95
+ console.debug("dynamic-content:open", S.detail), t("dynamic-content:open", S.detail);
94
96
  });
95
- }), H(() => {
97
+ }), N(() => {
96
98
  window.UIEditor.removeEditor();
97
- }), T({
99
+ }), G({
98
100
  dynamicContent: {
99
101
  insert: h,
100
102
  close: D
101
103
  },
102
104
  hasChanges: r
103
- }), { __sfc: !0, PreviewContainer: G, dynamicContentStore: n, props: t, editorStore: c, previewStore: I, hasChanges: r, preselectedDynamicContentList: a, getPartnerName: m, getProductType: d, templateId: l, userId: u, guidoConfig: p, html: g, css: f, partnerName: i, productType: s, messageType: y, username: C, emit: o, initPlugin: v, getDefaultTemplate: w, noHeader: L, insertDynamicContent: h, closeDynamicContent: D, Toaster: B, HeaderWrapper: F, LoadingWrapper: K, SaveAsTemplateDrawer: R };
105
+ }), { __sfc: !0, PreviewContainer: P, OnboardingWrapper: I, dynamicContentStore: n, props: o, editorStore: c, previewStore: L, hasChanges: r, preselectedDynamicContentList: a, getPartnerName: m, getProductType: d, isTestPartner: _, templateId: l, userId: p, guidoConfig: u, html: g, css: f, partnerName: i, productType: s, messageType: y, username: C, emit: t, initPlugin: v, getDefaultTemplate: w, noHeader: k, insertDynamicContent: h, closeDynamicContent: D, Toaster: K, HeaderWrapper: O, LoadingWrapper: R, SaveAsTemplateDrawer: j };
104
106
  }
105
107
  });
106
108
  export {
107
- me as default
109
+ le as default
108
110
  };
@@ -1,18 +1,18 @@
1
- import o from "./ViewOptions.vue2.js";
1
+ import i from "./ViewOptions.vue2.js";
2
2
  /* empty css */
3
- import s from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var r = function() {
5
- var t = this, i = t._self._c, e = t._self._setupProxy;
6
- return i(e.InSegments, { attrs: { id: "guido__view-option-selection", "with-icon": "", disable: e.editorStore.isViewOptionsDisabled, "segment-list": e.segmentList, selected: e.editorStore.editorVisualMode } });
7
- }, n = [], _ = /* @__PURE__ */ s(
8
- o,
9
- r,
3
+ import o from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var n = function() {
5
+ var t = this, s = t._self._c, e = t._self._setupProxy;
6
+ return s("div", { staticClass: "view-options-wrapper" }, [s(e.InSegments, { attrs: { id: "guido__view-option-selection", "with-icon": "", disable: e.editorStore.isViewOptionsDisabled, "segment-list": e.segmentList, selected: e.editorStore.editorVisualMode } }), e.editorStore.isViewOptionsDisabled ? t._e() : s(e.InChips, { staticClass: "new-tag", attrs: { id: "guido__view-options-new-tag", styles: "stroke", value: "chips", "close-button": !1, interactive: !1, text: e.trans("settings.new") } })], 1);
7
+ }, r = [], a = /* @__PURE__ */ o(
8
+ i,
10
9
  n,
10
+ r,
11
11
  !1,
12
12
  null,
13
- "ad3cf7cc"
13
+ "195ab6d4"
14
14
  );
15
- const m = _.exports;
15
+ const c = a.exports;
16
16
  export {
17
- m as default
17
+ c as default
18
18
  };
@@ -2,10 +2,10 @@ import { defineComponent as n } from "vue";
2
2
  import { useTranslations as p } from "../../../composables/useTranslations.js";
3
3
  import { useEditorStore as s } from "../../../stores/editor.js";
4
4
  import { getTooltipOptions as o } from "../../../utils/tooltipUtils.js";
5
- import { InSegments as r } from "@useinsider/design-system-vue";
6
- const d = /* @__PURE__ */ n({
5
+ import { InChips as r, InSegments as m } from "@useinsider/design-system-vue";
6
+ const f = /* @__PURE__ */ n({
7
7
  __name: "ViewOptions",
8
- setup(m) {
8
+ setup(l) {
9
9
  const e = s(), t = p(), i = [
10
10
  {
11
11
  text: "",
@@ -26,9 +26,9 @@ const d = /* @__PURE__ */ n({
26
26
  tooltipOptions: o("guido__view-option-mobile")
27
27
  }
28
28
  ];
29
- return { __sfc: !0, editorStore: e, trans: t, segmentList: i, InSegments: r };
29
+ return { __sfc: !0, editorStore: e, trans: t, segmentList: i, InSegments: m, InChips: r };
30
30
  }
31
31
  });
32
32
  export {
33
- d as default
33
+ f as default
34
34
  };
@@ -1,18 +1,18 @@
1
- import s from "./ViewOptions.vue2.js";
1
+ import i from "./ViewOptions.vue2.js";
2
2
  /* empty css */
3
- import i from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
- var r = function() {
5
- var t = this, o = t._self._c, e = t._self._setupProxy;
6
- return o(e.InSegments, { attrs: { id: "guido__verion-history-view-option-selection", "with-icon": "", "segment-list": e.segmentList, selected: e.versionHistoryStore.editorVisualMode }, on: { click: e.changeVisualMode } });
7
- }, n = [], _ = /* @__PURE__ */ i(
8
- s,
9
- r,
3
+ import o from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var n = function() {
5
+ var s = this, t = s._self._c, e = s._self._setupProxy;
6
+ return t("div", { staticClass: "view-options-wrapper" }, [t(e.InSegments, { attrs: { id: "guido__verion-history-view-option-selection", "with-icon": "", "segment-list": e.segmentList, selected: e.versionHistoryStore.editorVisualMode }, on: { click: e.changeVisualMode } }), t(e.InChips, { staticClass: "new-tag", attrs: { id: "guido__view-options-new-tag", styles: "stroke", value: "chips", "close-button": !1, interactive: !1, text: e.trans("settings.new") } })], 1);
7
+ }, r = [], a = /* @__PURE__ */ o(
8
+ i,
10
9
  n,
10
+ r,
11
11
  !1,
12
12
  null,
13
- "421ffc13"
13
+ "d405ca59"
14
14
  );
15
- const f = _.exports;
15
+ const d = a.exports;
16
16
  export {
17
- f as default
17
+ d as default
18
18
  };
@@ -3,10 +3,10 @@ import { useTranslations as m } from "../../../../composables/useTranslations.js
3
3
  import { useVersionHistoryApi as l } from "../../../../composables/useVersionHistoryApi.js";
4
4
  import { useVersionHistoryStore as a } from "../../../../stores/version-history.js";
5
5
  import { getTooltipOptions as n } from "../../../../utils/tooltipUtils.js";
6
- import { InSegments as c } from "@useinsider/design-system-vue";
7
- const h = /* @__PURE__ */ p({
6
+ import { InChips as c, InSegments as u } from "@useinsider/design-system-vue";
7
+ const T = /* @__PURE__ */ p({
8
8
  __name: "ViewOptions",
9
- setup(u) {
9
+ setup(_) {
10
10
  const t = a(), { switchToDesktopPreview: e, switchToMobilePreview: i } = l(), o = m(), r = [
11
11
  {
12
12
  text: "",
@@ -33,9 +33,9 @@ const h = /* @__PURE__ */ p({
33
33
  return;
34
34
  }
35
35
  e();
36
- }, InSegments: c };
36
+ }, InSegments: u, InChips: c };
37
37
  }
38
38
  });
39
39
  export {
40
- h as default
40
+ T as default
41
41
  };
@@ -0,0 +1,2 @@
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;
@@ -0,0 +1,20 @@
1
+ import d from "./AMPOnboarding.vue2.js";
2
+ import g from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var l = function() {
4
+ var t, r, e, i, a, s;
5
+ var n = this, p = n._self._c, o = n._self._setupProxy;
6
+ return o.isVisible ? p(o.InOnboard, { key: "guido__amp-onboard", staticClass: "w-21-s p-a z-11", class: (t = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : t.classes, attrs: { id: "guido__amp-onboard", "is-multiple-page": "", visible: "", "image-source": "", title: "", "bottom-position": (r = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : r.bottom, "left-position": (e = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : e.left, "pages-config": o.onboardingStore.onboardings.ampOnboarding.config, "pointer-position": (i = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : i.position, "right-position": (a = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : a.right, "top-position": (s = o.onboardingStore.getAmpCurrentCard) == null ? void 0 : s.top }, on: { backButtonClick: o.handleBack, close: function(u) {
7
+ return o.onboardingStore.close("ampOnboarding");
8
+ }, nextButtonClick: o.handleNext } }) : n._e();
9
+ }, m = [], c = /* @__PURE__ */ g(
10
+ d,
11
+ l,
12
+ m,
13
+ !1,
14
+ null,
15
+ null
16
+ );
17
+ const f = c.exports;
18
+ export {
19
+ f as default
20
+ };
@@ -0,0 +1,37 @@
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
+ };
@@ -0,0 +1,2 @@
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;
@@ -0,0 +1,21 @@
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
+ };
@@ -0,0 +1,83 @@
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
+ };
@@ -0,0 +1,2 @@
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;
@@ -0,0 +1,17 @@
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
+ };
@@ -0,0 +1,30 @@
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
+ };
@@ -0,0 +1,2 @@
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;
@@ -0,0 +1,19 @@
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
+ };
@@ -0,0 +1,43 @@
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
+ };
@@ -0,0 +1,2 @@
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;
@@ -0,0 +1,21 @@
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
+ };