@useinsider/guido 1.0.0-beta.5e50654 → 1.0.0-beta.5f47ded

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/dist/@types/generic.d.ts +3 -5
  2. package/dist/components/Guido.vue.d.ts +2 -1
  3. package/dist/components/Guido.vue.js +8 -8
  4. package/dist/components/Guido.vue2.js +26 -23
  5. package/dist/components/organisms/design-preview/AmpErrorModal.vue.d.ts +16 -0
  6. package/dist/components/organisms/design-preview/AmpErrorModal.vue.js +21 -0
  7. package/dist/components/organisms/design-preview/AmpErrorModal.vue2.js +30 -0
  8. package/dist/components/organisms/design-preview/DesktopPreview.vue.d.ts +16 -0
  9. package/dist/components/organisms/design-preview/DesktopPreview.vue.js +22 -0
  10. package/dist/components/organisms/design-preview/DesktopPreview.vue2.js +42 -0
  11. package/dist/components/organisms/design-preview/EmailPreview.vue.d.ts +16 -0
  12. package/dist/components/organisms/design-preview/EmailPreview.vue.js +17 -0
  13. package/dist/components/organisms/design-preview/EmailPreview.vue2.js +33 -0
  14. package/dist/components/organisms/design-preview/EmailView.vue.d.ts +18 -0
  15. package/dist/components/organisms/design-preview/EmailView.vue.js +19 -0
  16. package/dist/components/organisms/design-preview/EmailView.vue2.js +24 -0
  17. package/dist/components/organisms/design-preview/InboxView.vue.d.ts +17 -0
  18. package/dist/components/organisms/design-preview/InboxView.vue.js +19 -0
  19. package/dist/components/organisms/design-preview/InboxView.vue2.js +23 -0
  20. package/dist/components/organisms/design-preview/MobilePreview.vue.d.ts +17 -0
  21. package/dist/components/organisms/design-preview/MobilePreview.vue.js +17 -0
  22. package/dist/components/organisms/design-preview/MobilePreview.vue2.js +24 -0
  23. package/dist/components/organisms/header/AmpToggle.vue.d.ts +2 -0
  24. package/dist/components/organisms/header/AmpToggle.vue.js +17 -0
  25. package/dist/components/organisms/header/AmpToggle.vue2.js +48 -0
  26. package/dist/components/organisms/header/MiddleSlot.vue.js +6 -6
  27. package/dist/components/organisms/header/MiddleSlot.vue2.js +20 -15
  28. package/dist/components/organisms/header/RightSlot.vue.js +7 -7
  29. package/dist/components/organisms/header/RightSlot.vue2.js +22 -24
  30. package/dist/components/organisms/header/ViewOptions.vue.js +6 -6
  31. package/dist/composables/useActionsApi.d.ts +2 -0
  32. package/dist/composables/useActionsApi.js +47 -36
  33. package/dist/composables/useDebounce.d.ts +4 -0
  34. package/dist/composables/useDebounce.js +12 -0
  35. package/dist/composables/useMobileGmailFit.d.ts +5 -0
  36. package/dist/composables/useMobileGmailFit.js +69 -0
  37. package/dist/enums/gmailMobilePreview.d.ts +7 -0
  38. package/dist/enums/gmailMobilePreview.js +17 -0
  39. package/dist/guido.css +1 -1
  40. package/dist/static/assets/inbox-mockup.svg.js +4 -0
  41. package/dist/static/assets/phone-mockup.svg.js +4 -0
  42. package/dist/stores/editor.d.ts +3 -0
  43. package/dist/stores/editor.js +6 -3
  44. package/package.json +1 -1
  45. package/dist/utils/tooltipUtils.d.ts +0 -2
  46. package/dist/utils/tooltipUtils.js +0 -9
@@ -9,9 +9,7 @@ export type DynamicContent = {
9
9
  text: string;
10
10
  fallback?: string;
11
11
  };
12
- export interface TooltipOptions {
13
- id: string;
14
- dynamicPosition: boolean;
15
- staticPosition: 'top' | 'bottom' | 'left' | 'right';
16
- iconStatus: boolean;
12
+ export interface EmailData {
13
+ senderName: string;
14
+ subject: string;
17
15
  }
@@ -1,4 +1,4 @@
1
- import type { DynamicContent, GuidoConfig } from '@@/Types/generic';
1
+ import type { DynamicContent, GuidoConfig, EmailData } from '@@/Types/generic';
2
2
  import type { Template } from '@@/Types/stripo';
3
3
  type __VLS_Props = {
4
4
  templateId: string;
@@ -9,6 +9,7 @@ type __VLS_Props = {
9
9
  html?: string;
10
10
  css?: string;
11
11
  guidoConfig: GuidoConfig;
12
+ emailData?: EmailData;
12
13
  };
13
14
  declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
14
15
  dynamicContent: {
@@ -1,18 +1,18 @@
1
1
  import o from "./Guido.vue2.js";
2
2
  /* empty css */
3
- import i from "../_virtual/_plugin-vue2_normalizer.js";
3
+ import t from "../_virtual/_plugin-vue2_normalizer.js";
4
4
  var s = function() {
5
- var e = this, r = e._self._c, t = e._self._setupProxy;
6
- return r("div", { staticClass: "guido-editor__wrapper" }, [r(t.HeaderWrapper), r("div", { staticClass: "guido-editor__container", attrs: { id: "guido-editor" } })], 1);
7
- }, _ = [], a = /* @__PURE__ */ i(
5
+ var i = this, r = i._self._c, e = i._self._setupProxy;
6
+ return r("div", { staticClass: "guido-editor__wrapper" }, [r(e.HeaderWrapper), r(e.EmailPreview, { directives: [{ name: "show", rawName: "v-show", value: e.editorStore.isPreviewModeOpen, expression: "editorStore.isPreviewModeOpen" }], attrs: { "email-data": i.emailData, "is-visible": e.editorStore.isPreviewModeOpen } }), r("div", { directives: [{ name: "show", rawName: "v-show", value: !e.editorStore.isPreviewModeOpen, expression: "!editorStore.isPreviewModeOpen" }], staticClass: "guido-editor__container", attrs: { id: "guido-editor" } })], 1);
7
+ }, a = [], d = /* @__PURE__ */ t(
8
8
  o,
9
9
  s,
10
- _,
10
+ a,
11
11
  !1,
12
12
  null,
13
- "89bedf08"
13
+ "7836f831"
14
14
  );
15
- const f = a.exports;
15
+ const m = d.exports;
16
16
  export {
17
- f as default
17
+ m as default
18
18
  };
@@ -1,11 +1,13 @@
1
- import { defineComponent as h, onMounted as w } from "vue";
2
- import { provideGuidoActions as D } from "../composables/useGuidoActions.js";
3
- import { usePartner as E } from "../composables/usePartner.js";
4
- import { useStripo as S } from "../composables/useStripo.js";
5
- import { DefaultUsername as _, DefaultGuidoConfig as G } from "../enums/defaults.js";
6
- import I from "./organisms/header/HeaderWrapper.vue.js";
7
- import { useStripoApi as k } from "../services/stripoApi.js";
8
- const B = /* @__PURE__ */ h({
1
+ import { defineComponent as w, onMounted as E } from "vue";
2
+ import { provideGuidoActions as S } from "../composables/useGuidoActions.js";
3
+ import { usePartner as D } from "../composables/usePartner.js";
4
+ import { useStripo as _ } from "../composables/useStripo.js";
5
+ import { DefaultUsername as G, DefaultGuidoConfig as I } from "../enums/defaults.js";
6
+ import P from "./organisms/design-preview/EmailPreview.vue.js";
7
+ import k from "./organisms/header/HeaderWrapper.vue.js";
8
+ import { useStripoApi as T } from "../services/stripoApi.js";
9
+ import { useEditorStore as N } from "../stores/editor.js";
10
+ const M = /* @__PURE__ */ w({
9
11
  __name: "Guido",
10
12
  props: {
11
13
  templateId: null,
@@ -15,26 +17,27 @@ const B = /* @__PURE__ */ h({
15
17
  username: null,
16
18
  html: null,
17
19
  css: null,
18
- guidoConfig: null
20
+ guidoConfig: null,
21
+ emailData: null
19
22
  },
20
23
  emits: ["dynamic-content:open", "back", "save:start", "save:complete"],
21
24
  setup(C, { expose: b, emit: t }) {
22
- const o = C, { getPartnerName: n, getProductType: a } = E(), {
25
+ const o = C, { getPartnerName: n, getProductType: a } = D(), {
23
26
  templateId: c,
24
- userId: s,
27
+ userId: r,
25
28
  guidoConfig: i,
26
- html: r = "",
29
+ html: s = "",
27
30
  css: l = "",
28
31
  partnerName: d = n(),
29
32
  productType: u = a(),
30
- username: m = _
33
+ username: m = G
31
34
  } = o;
32
35
  window.GuidoConfig = {
33
- ...G,
36
+ ...I,
34
37
  ...i
35
38
  };
36
- const { initPlugin: p } = S({ emailId: c, userId: s, username: m, partnerName: d, productType: u }), { getDefaultTemplate: g } = k();
37
- D({
39
+ const { initPlugin: p } = _({ emailId: c, userId: r, username: m, partnerName: d, productType: u }), { getDefaultTemplate: f } = T(), h = N();
40
+ S({
38
41
  onBack: () => {
39
42
  console.debug("guido:back"), t("back");
40
43
  },
@@ -45,21 +48,21 @@ const B = /* @__PURE__ */ h({
45
48
  console.debug("guido:save:complete", e), t("save:complete", e);
46
49
  }
47
50
  });
48
- const f = (e) => {
51
+ const g = (e) => {
49
52
  console.debug("dynamic-content:close", e), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: e }));
50
53
  }, y = () => {
51
54
  console.debug("dynamic-content:close", "Without Data"), document.dispatchEvent(new CustomEvent("dynamic-content:close", { detail: { text: "", value: "" } }));
52
55
  };
53
- return w(async () => {
56
+ return E(async () => {
54
57
  console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
55
58
  try {
56
59
  let e = {
57
- html: r,
60
+ html: s,
58
61
  css: l,
59
62
  forceRecreate: !0
60
63
  // TODO: It should be false for old templates. We will communicate with Stripo
61
64
  };
62
- e.html || (e = await g()), await p(e);
65
+ e.html || (e = await f()), await p(e);
63
66
  } catch (e) {
64
67
  console.error("Failed to initialize Stripo editor:", e);
65
68
  }
@@ -69,12 +72,12 @@ const B = /* @__PURE__ */ h({
69
72
  });
70
73
  }), b({
71
74
  dynamicContent: {
72
- insert: f,
75
+ insert: g,
73
76
  close: y
74
77
  }
75
- }), { __sfc: !0, props: o, getPartnerName: n, getProductType: a, templateId: c, userId: s, guidoConfig: i, html: r, css: l, partnerName: d, productType: u, username: m, emit: t, initPlugin: p, getDefaultTemplate: g, insertDynamicContent: f, closeDynamicContent: y, HeaderWrapper: I };
78
+ }), { __sfc: !0, props: o, getPartnerName: n, getProductType: a, templateId: c, userId: r, guidoConfig: i, html: s, css: l, partnerName: d, productType: u, username: m, emit: t, initPlugin: p, getDefaultTemplate: f, editorStore: h, insertDynamicContent: g, closeDynamicContent: y, EmailPreview: P, HeaderWrapper: k };
76
79
  }
77
80
  });
78
81
  export {
79
- B as default
82
+ M as default
80
83
  };
@@ -0,0 +1,16 @@
1
+ interface Props {
2
+ errors: string[];
3
+ }
4
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
5
+ close: () => void;
6
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,21 @@
1
+ import n from "./AmpErrorModal.vue2.js";
2
+ import a from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var i = function() {
4
+ var e = this, o = e._self._c, t = e._self._setupProxy;
5
+ return o(t.InModalV2, { attrs: { id: "amp-error-modal", "close-button-status": "", "close-on-outside-click": "", "description-status": "", "footer-status": "", status: "", size: "medium", "description-text": t.trans("email-editor.amp-validation-description"), "footer-button-group-options": t.footerButtonOptions, "title-text": t.trans("email-editor.amp-validation-title") }, on: { cancelOrBackButtonEvent: t.handleClose, onCloseEvent: t.handleClose, primaryButtonEvent: t.handleFixInCodeEditor }, scopedSlots: e._u([{ key: "contentSlot", fn: function() {
6
+ return [o("div", { staticClass: "d-f f-d-c" }, [o("div", { staticClass: "mb-3" }, [o("div", { staticClass: "l-s-5 f-s-1 f-w-600 t-c-55 t-t-u" }, [e._v(" " + e._s(`${t.trans("products.errors")}(${t.errorCount})`) + " ")])]), o("div", { staticClass: "d-f f-d-c g-13 max-h-21-s o-y-a", staticStyle: { gap: "16px" } }, e._l(t.props.errors, function(s, r) {
7
+ return o(t.InOnPageMessage, { key: r, attrs: { icon: "filled-error-box", size: "medium", type: "alert", text: s } });
8
+ }), 1)])];
9
+ }, proxy: !0 }]) });
10
+ }, l = [], d = /* @__PURE__ */ a(
11
+ n,
12
+ i,
13
+ l,
14
+ !1,
15
+ null,
16
+ null
17
+ );
18
+ const f = d.exports;
19
+ export {
20
+ f as default
21
+ };
@@ -0,0 +1,30 @@
1
+ import { defineComponent as m } from "vue";
2
+ import { useToaster as f } from "../../../composables/useToaster.js";
3
+ import { useTranslations as u } from "../../../composables/useTranslations.js";
4
+ import { useEditorStore as E } from "../../../stores/editor.js";
5
+ import { InOnPageMessage as g, InModalV2 as y } from "@useinsider/design-system-vue";
6
+ const x = /* @__PURE__ */ m({
7
+ __name: "AmpErrorModal",
8
+ props: {
9
+ errors: null
10
+ },
11
+ emits: ["close"],
12
+ setup(a, { emit: o }) {
13
+ const r = a, e = u(), t = E(), { showToaster: i } = f(), p = r.errors.length, d = () => {
14
+ o("close");
15
+ }, l = () => {
16
+ var n, s;
17
+ o("close"), t.isPreviewModeOpen = !1, (s = (n = window.StripoEditorApi) == null ? void 0 : n.codeEditorApi) != null && s.openCodeEditor ? window.StripoEditorApi.codeEditorApi.openCodeEditor() : i({
18
+ type: "error",
19
+ message: "StripoEditorApi codeEditorApi not available"
20
+ });
21
+ }, c = {
22
+ primaryButton: { type: "primary", labelText: e("email-editor.amp-validation-fix") },
23
+ cancelOrBackButton: { type: "secondary", labelText: e("campaign-builder.cancel"), styling: "ghost" }
24
+ };
25
+ return { __sfc: !0, props: r, emit: o, trans: e, editorStore: t, showToaster: i, errorCount: p, handleClose: d, handleFixInCodeEditor: l, footerButtonOptions: c, InModalV2: y, InOnPageMessage: g };
26
+ }
27
+ });
28
+ export {
29
+ x as default
30
+ };
@@ -0,0 +1,16 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ emailHtml: string;
4
+ emailData?: EmailData;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,22 @@
1
+ import i from "./DesktopPreview.vue2.js";
2
+ /* empty css */
3
+ import a from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var r = function() {
5
+ var e = this, t = e._self._c, s = e._self._setupProxy;
6
+ return t("div", { ref: "containerRef", staticStyle: { "min-height": "720px", height: "80vh" } }, [t(s.InContainer, { staticClass: "s-2 m-b-5 desktop-preview-container", attrs: { "full-width-content-status": "", "header-status": "", "border-radius": "bor-r-1", "container-type": "default", "footer-status": !1 }, scopedSlots: e._u([{ key: "headerLeftSlot", fn: function() {
7
+ return [t("div", { staticClass: "d-f a-i-c j-c-s-b w-1" }, [t("div", { staticClass: "d-f a-i-c" }, [t("div", { staticClass: "b-c-49 bor-r-100 w-5-s h-5-s d-f a-i-c j-c-c" }, [t(s.InIcons, { attrs: { name: "line-menu-profile" } })], 1), t("div", { staticClass: "d-f f-d-c ml-2" }, [t("p", { staticClass: "t-c-53 f-w-600 f-s-1 l-h-1" }, [e._v(" " + e._s(s.senderName) + " ")]), t("p", { staticClass: "t-c-55 f-w-400 f-s-12 l-h-1" }, [e._v(" " + e._s(s.subject) + " ")])])])])];
8
+ }, proxy: !0 }, { key: "headerRightSlot", fn: function() {
9
+ return [t("div", { staticClass: "d-f a-i-c j-c-c" }, [t(s.InProgress, { staticClass: "min-w-15-s", attrs: { id: "email-size-progress", "description-status": "", "description-position": "left", description: s.emailSize, "max-value": s.MAX_EMAIL_WEIGHT, type: s.progressType, value: s.progressValue } }), t(s.InTooltip, { staticClass: "d-f ml-1", attrs: { id: "email-size-tooltip", align: "center", position: "bottom", text: s.trans("email-editor.preview-design-size-tooltip") } })], 1)];
10
+ }, proxy: !0 }]) }, [t("iframe", { staticClass: "email-iframe w-1 bor-w-0", style: { height: s.iframeHeight }, attrs: { sandbox: "allow-same-origin allow-popups allow-forms allow-scripts", srcdoc: e.emailHtml } })])], 1);
11
+ }, o = [], l = /* @__PURE__ */ a(
12
+ i,
13
+ r,
14
+ o,
15
+ !1,
16
+ null,
17
+ "af6f2286"
18
+ );
19
+ const d = l.exports;
20
+ export {
21
+ d as default
22
+ };
@@ -0,0 +1,42 @@
1
+ import { defineComponent as I, computed as d, ref as n, onMounted as B, onUnmounted as w, watch as z } from "vue";
2
+ import { useTranslations as E } from "../../../composables/useTranslations.js";
3
+ import { InTooltip as M, InProgress as R, InIcons as y, InContainer as C } from "@useinsider/design-system-vue";
4
+ const j = /* @__PURE__ */ I({
5
+ __name: "DesktopPreview",
6
+ props: {
7
+ emailHtml: null,
8
+ emailData: null
9
+ },
10
+ setup(h) {
11
+ const t = h, r = 102, i = E(), g = d(() => {
12
+ var e;
13
+ return ((e = t.emailData) == null ? void 0 : e.senderName) || `(${i("settings.sender-name")})`;
14
+ }), _ = d(() => {
15
+ var e;
16
+ return ((e = t.emailData) == null ? void 0 : e.subject) || i("newsletter.subject");
17
+ }), u = n("~-- KB"), m = n(0), l = n("success"), s = n(), p = n("400px"), v = () => {
18
+ if (!t.emailHtml)
19
+ return;
20
+ const e = new Blob([t.emailHtml]).size, o = Math.round(e / 1024);
21
+ u.value = `~${o} KB`, m.value = Math.min(o, r), o < r ? l.value = "success" : l.value = "warning";
22
+ }, c = () => {
23
+ if (!s.value)
24
+ return;
25
+ const e = s.value.querySelector(".in-container");
26
+ if (!e)
27
+ return;
28
+ const o = e.getBoundingClientRect(), f = e.querySelector(".in-container__header"), H = f ? f.getBoundingClientRect().height : 0, b = o.height - H;
29
+ p.value = `${b}px`;
30
+ }, a = n();
31
+ return B(() => {
32
+ c(), a.value = new ResizeObserver(() => {
33
+ c();
34
+ }), s.value && a.value.observe(s.value);
35
+ }), w(() => {
36
+ a.value && a.value.disconnect();
37
+ }), z(() => t.emailHtml, v, { immediate: !0 }), { __sfc: !0, MAX_EMAIL_WEIGHT: r, trans: i, props: t, senderName: g, subject: _, emailSize: u, progressValue: m, progressType: l, containerRef: s, iframeHeight: p, calculateEmailSize: v, calculateIframeHeight: c, resizeObserver: a, InContainer: C, InIcons: y, InProgress: R, InTooltip: M };
38
+ }
39
+ });
40
+ export {
41
+ j as default
42
+ };
@@ -0,0 +1,16 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ isVisible: boolean;
4
+ emailData?: EmailData;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
7
+ export default _default;
8
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
+ type __VLS_TypePropsToOption<T> = {
10
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
11
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
12
+ } : {
13
+ type: import('vue').PropType<T[K]>;
14
+ required: true;
15
+ };
16
+ };
@@ -0,0 +1,17 @@
1
+ import i from "./EmailPreview.vue2.js";
2
+ import e from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var r = function() {
4
+ var t = this, s = t._self._c, a = t._self._setupProxy;
5
+ return t.isVisible ? s("div", { staticClass: "d-f f-d-c h-1 b-c-5 bor-r-2 pb-5" }, [s("div", { staticClass: "f-g-1 d-f p-5 o-a g-4 min-h-600" }, [a.isLoading ? [s("div", { staticClass: "d-f a-i-c j-c-c w-1 h-1 f-g-1" }, [s(a.InLoading, { attrs: { "color-class": "i-c-1", size: "32" } })], 1)] : [s(a.DesktopPreview, { staticClass: "f-g-1 min-w-0", attrs: { "email-data": t.emailData, "email-html": a.currentHtml } }), s(a.MobilePreview, { staticClass: "f-0 min-w-a", attrs: { "email-data": t.emailData, "email-html": a.currentHtml, "is-amp": a.isAmp } })]], 2)]) : t._e();
6
+ }, l = [], m = /* @__PURE__ */ e(
7
+ i,
8
+ r,
9
+ l,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const f = m.exports;
15
+ export {
16
+ f as default
17
+ };
@@ -0,0 +1,33 @@
1
+ import { defineComponent as u, ref as l, computed as n, watch as d, onMounted as v } from "vue";
2
+ import { useActionsApi as w } from "../../../composables/useActionsApi.js";
3
+ import { useToaster as y } from "../../../composables/useToaster.js";
4
+ import { useEditorStore as P } from "../../../stores/editor.js";
5
+ import { InLoading as _ } from "@useinsider/design-system-vue";
6
+ import g from "./DesktopPreview.vue.js";
7
+ import h from "./MobilePreview.vue.js";
8
+ const L = /* @__PURE__ */ u({
9
+ __name: "EmailPreview",
10
+ props: {
11
+ isVisible: { type: Boolean },
12
+ emailData: null
13
+ },
14
+ setup(p) {
15
+ const o = p, { getPreviewData: s } = w(), { showToaster: m } = y(), e = P(), t = l(""), r = l(!1), c = n(() => e.emailFormat === "amp" && e.ampHtml ? e.ampHtml : t.value), f = n(() => e.emailFormat === "amp"), a = async () => {
16
+ r.value = !0;
17
+ try {
18
+ const i = await s();
19
+ t.value = i.html;
20
+ } catch {
21
+ console.error("Failed to load preview"), m({ type: "error", message: "Failed to load email preview. Please try again later." });
22
+ } finally {
23
+ r.value = !1;
24
+ }
25
+ };
26
+ return d(() => o.isVisible, (i) => i && a()), v(() => {
27
+ o.isVisible && a();
28
+ }), { __sfc: !0, props: o, getPreviewData: s, showToaster: m, editorStore: e, html: t, isLoading: r, currentHtml: c, isAmp: f, loadPreview: a, InLoading: _, DesktopPreview: g, MobilePreview: h };
29
+ }
30
+ });
31
+ export {
32
+ L as default
33
+ };
@@ -0,0 +1,18 @@
1
+ interface Props {
2
+ emailHtml: string;
3
+ isAmp?: boolean;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
6
+ "back-to-inbox": () => void;
7
+ load: () => void;
8
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
9
+ export default _default;
10
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
11
+ type __VLS_TypePropsToOption<T> = {
12
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
13
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
14
+ } : {
15
+ type: import('vue').PropType<T[K]>;
16
+ required: true;
17
+ };
18
+ };
@@ -0,0 +1,19 @@
1
+ import n from "./EmailView.vue2.js";
2
+ import c from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var e = function() {
4
+ var a = this, s = a._self._c, t = a._self._setupProxy;
5
+ return s("div", { staticClass: "w-1 h-1 b-c-4 d-f f-d-c" }, [s("div", { staticClass: "d-f j-c-s-b a-i-c p-2 h-6-s" }, [s("div", { staticClass: "d-f a-i-c cur-p", on: { click: function(r) {
6
+ return a.$emit("back-to-inbox");
7
+ } } }, [s(t.InIcons, { staticClass: "f-s-3 i-c-7", attrs: { name: "line-chevron-left" } }), s("span", { staticClass: "ml-2 f-s-1 f-w-400 l-h-1 t-c-7" }, [a._v(a._s(t.trans("newsletter.inbox")))])], 1), s("div", { staticClass: "d-f a-i-c" }, [s(t.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-down" } }), s(t.InIcons, { staticClass: "ml-1 i-c-52", attrs: { name: "line-chevron-up" } })], 1)]), s("iframe", { ref: "iframeRef", staticClass: "f-g-1 w-1 d-b b-c-4 bor-s-n", attrs: { sandbox: "allow-same-origin allow-popups allow-forms allow-scripts", srcdoc: a.emailHtml }, on: { load: t.onLoad } })]);
8
+ }, i = [], o = /* @__PURE__ */ c(
9
+ n,
10
+ e,
11
+ i,
12
+ !1,
13
+ null,
14
+ null
15
+ );
16
+ const d = o.exports;
17
+ export {
18
+ d as default
19
+ };
@@ -0,0 +1,24 @@
1
+ import { defineComponent as p, ref as c } from "vue";
2
+ import { useMobileGmailFit as u } from "../../../composables/useMobileGmailFit.js";
3
+ import { useTranslations as f } from "../../../composables/useTranslations.js";
4
+ import { InIcons as d } from "@useinsider/design-system-vue";
5
+ const E = /* @__PURE__ */ p({
6
+ __name: "EmailView",
7
+ props: {
8
+ emailHtml: null,
9
+ isAmp: { type: Boolean }
10
+ },
11
+ emits: ["back-to-inbox", "load"],
12
+ setup(l, { emit: t }) {
13
+ const o = l, a = f(), n = c(), { setupMobileGmailFit: m } = u(), s = () => !!o.isAmp && o.emailHtml.includes("@media") && o.emailHtml.includes(".adapt-img"), r = (e) => {
14
+ e.documentElement.style.removeProperty("transform"), e.documentElement.style.removeProperty("transform-origin"), e.documentElement.style.removeProperty("height");
15
+ };
16
+ return { __sfc: !0, props: o, emit: t, trans: a, iframeRef: n, setupMobileGmailFit: m, isAmpResponsive: s, clearAmpTransforms: r, onLoad: () => {
17
+ const e = n.value, i = e == null ? void 0 : e.contentDocument;
18
+ !e || !i || (m(e), s() && setTimeout(() => r(i), 50), t("load"));
19
+ }, InIcons: d };
20
+ }
21
+ });
22
+ export {
23
+ E as default
24
+ };
@@ -0,0 +1,17 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ emailData?: EmailData;
4
+ }
5
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
6
+ "open-email": () => void;
7
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
8
+ export default _default;
9
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
+ type __VLS_TypePropsToOption<T> = {
11
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
12
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
13
+ } : {
14
+ type: import('vue').PropType<T[K]>;
15
+ required: true;
16
+ };
17
+ };
@@ -0,0 +1,19 @@
1
+ import a from "./InboxView.vue2.js";
2
+ import e from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var n = function() {
4
+ var s = this, t = s._self._c, c = s._self._setupProxy;
5
+ return t("div", { staticClass: "p-y-13 p-x-3 bor-b-w-1 bor-b-s-s bor-b-c-50 cur-p b-c-4 b-c-h-5 p-3", on: { click: function(l) {
6
+ return s.$emit("open-email");
7
+ } } }, [t("div", { staticClass: "d-f j-c-s-b a-i-c w-1" }, [t("div", { staticClass: "f-g-1 min-w-0-s" }, [t("div", { staticClass: "f-s-1 f-w-600 t-c-53 l-h-1 mb-12" }, [s._v(" " + s._s(c.senderName) + " ")]), t("div", { staticClass: "f-s-12 f-w-400 t-c-55 l-h-1" }, [s._v(" " + s._s(c.subject) + " ")])]), t("div", { staticClass: "f-sh-0 ml-2 f-s-12 f-w-400 t-c-55 l-h-1" }, [s._v(" " + s._s(c.trans("product-catalog.today")) + " ")]), t(c.InIcons, { staticClass: "i-c-52", attrs: { name: "line-chevron-right" } })], 1)]);
8
+ }, r = [], i = /* @__PURE__ */ e(
9
+ a,
10
+ n,
11
+ r,
12
+ !1,
13
+ null,
14
+ null
15
+ );
16
+ const m = i.exports;
17
+ export {
18
+ m as default
19
+ };
@@ -0,0 +1,23 @@
1
+ import { defineComponent as r, computed as n } from "vue";
2
+ import { useTranslations as i } from "../../../composables/useTranslations.js";
3
+ import { InIcons as c } from "@useinsider/design-system-vue";
4
+ const f = /* @__PURE__ */ r({
5
+ __name: "InboxView",
6
+ props: {
7
+ emailData: null
8
+ },
9
+ emits: ["open-email"],
10
+ setup(o) {
11
+ const t = o, s = i(), a = n(() => {
12
+ var e;
13
+ return ((e = t.emailData) == null ? void 0 : e.senderName) || `(${s("settings.sender-name")})`;
14
+ }), m = n(() => {
15
+ var e;
16
+ return ((e = t.emailData) == null ? void 0 : e.subject) || s("newsletter.subject");
17
+ });
18
+ return { __sfc: !0, props: t, trans: s, senderName: a, subject: m, InIcons: c };
19
+ }
20
+ });
21
+ export {
22
+ f as default
23
+ };
@@ -0,0 +1,17 @@
1
+ import type { EmailData } from '@@/Types/generic';
2
+ interface Props {
3
+ emailHtml: string;
4
+ isAmp: boolean;
5
+ emailData?: EmailData;
6
+ }
7
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<Props>>>, {}>;
8
+ export default _default;
9
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
+ type __VLS_TypePropsToOption<T> = {
11
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
12
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
13
+ } : {
14
+ type: import('vue').PropType<T[K]>;
15
+ required: true;
16
+ };
17
+ };
@@ -0,0 +1,17 @@
1
+ import e from "./MobilePreview.vue2.js";
2
+ import o from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var i = function() {
4
+ var t = this, s = t._self._c, a = t._self._setupProxy;
5
+ return s("div", { staticClass: "d-f j-c-c pl-5" }, [s("div", { staticClass: "p-r w-35-s h-26-s" }, [s("img", { staticClass: "w-1 h-1 d-b p-e-n", attrs: { alt: a.mockupAlt, src: a.mockupImage } }), s("div", { staticClass: "p-a w-21-s h-24-s o-h", style: { top: a.phoneScreenTopMargin, left: "20px" } }, [a.showInbox ? s(a.InboxView, { attrs: { "email-data": a.props.emailData }, on: { "open-email": a.openEmail } }) : s(a.EmailView, { attrs: { "email-html": t.emailHtml, "is-amp": t.isAmp }, on: { "back-to-inbox": a.backToInbox } })], 1)])]);
6
+ }, l = [], n = /* @__PURE__ */ o(
7
+ e,
8
+ i,
9
+ l,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const c = n.exports;
15
+ export {
16
+ c as default
17
+ };
@@ -0,0 +1,24 @@
1
+ import { defineComponent as l, ref as s, computed as e } from "vue";
2
+ import c from "../../../static/assets/inbox-mockup.svg.js";
3
+ import u from "../../../static/assets/phone-mockup.svg.js";
4
+ import f from "./EmailView.vue.js";
5
+ import v from "./InboxView.vue.js";
6
+ const I = /* @__PURE__ */ l({
7
+ __name: "MobilePreview",
8
+ props: {
9
+ emailHtml: null,
10
+ isAmp: { type: Boolean },
11
+ emailData: null
12
+ },
13
+ setup(n) {
14
+ const m = n, o = s(!1), p = e(() => o.value ? c : u), t = e(() => o.value ? "Inbox mockup" : "Phone mockup"), r = () => {
15
+ o.value = !1;
16
+ }, a = () => {
17
+ o.value = !0;
18
+ }, i = e(() => o.value ? "88px" : "44px");
19
+ return { __sfc: !0, props: m, showInbox: o, mockupImage: p, mockupAlt: t, openEmail: r, backToInbox: a, phoneScreenTopMargin: i, EmailView: f, InboxView: v };
20
+ }
21
+ });
22
+ export {
23
+ I as default
24
+ };
@@ -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 t from "./AmpToggle.vue2.js";
2
+ import s from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var a = function() {
4
+ var e = this, o = e._self._c, r = e._self._setupProxy;
5
+ return r.editorStore.isPreviewModeOpen ? o("div", [o("div", { staticClass: "d-f a-i-c ml-3" }, [o(r.InSegments, { attrs: { id: "guido__amp-toggle", "segment-list": r.segmentList, selected: r.editorStore.emailFormat }, on: { click: r.handleFormatChange } }), r.showErrorButton ? o(r.InButtonV2, { staticClass: "ml-2 d-f a-i-c b-c-11 b-c-h-11 t-c-4 t-c-h-4 i-c-4 bor-w-1 bor-s-s bor-c-11 bor-r-2", attrs: { id: "guido__amp-error-button", "left-icon": "line-error-box", type: "danger", "label-text-status": !1 }, on: { click: r.handleErrorClick } }) : e._e()], 1), r.showErrorModal ? o(r.AmpErrorModal, { attrs: { errors: r.editorStore.ampErrors || [] }, on: { close: r.closeErrorModal } }) : e._e()], 1) : e._e();
6
+ }, n = [], l = /* @__PURE__ */ s(
7
+ t,
8
+ a,
9
+ n,
10
+ !1,
11
+ null,
12
+ null
13
+ );
14
+ const d = l.exports;
15
+ export {
16
+ d as default
17
+ };
@@ -0,0 +1,48 @@
1
+ import { defineComponent as h, ref as v, computed as r, watch as E } from "vue";
2
+ import { useActionsApi as g } from "../../../composables/useActionsApi.js";
3
+ import { useToaster as w } from "../../../composables/useToaster.js";
4
+ import { useTranslations as M } from "../../../composables/useTranslations.js";
5
+ import A from "../design-preview/AmpErrorModal.vue.js";
6
+ import { useEditorStore as _ } from "../../../stores/editor.js";
7
+ import { InButtonV2 as P, InSegments as y } from "@useinsider/design-system-vue";
8
+ const D = /* @__PURE__ */ h({
9
+ __name: "AmpToggle",
10
+ setup(F) {
11
+ const t = _(), { getPreviewData: s } = g(), { showToaster: l } = w(), e = M(), a = v(!1), m = r(() => !!t.ampHtml), n = r(() => !!(t.ampErrors && t.ampErrors.length > 0)), p = r(() => [
12
+ { text: e("dynamic-creatives.html"), value: "html" },
13
+ {
14
+ text: e("email-editor.amp-html"),
15
+ value: "amp",
16
+ tooltipText: m.value ? "" : e("email-editor.preview-amp-unavailable-tooltip"),
17
+ position: "bottom",
18
+ align: "center",
19
+ disable: !m.value
20
+ }
21
+ ]), i = async () => {
22
+ try {
23
+ const o = await s();
24
+ t.ampHtml = o.ampHtml ?? null, t.ampErrors = o.ampErrors ?? null, t.emailFormat = o.ampHtml ? "amp" : "html";
25
+ } catch {
26
+ l({
27
+ type: "error",
28
+ message: "Failed to load AMP data. Please try again later."
29
+ });
30
+ }
31
+ };
32
+ E([() => t.editorVisualMode, () => t.isPreviewModeOpen], () => {
33
+ t.isPreviewModeOpen && i();
34
+ }, { immediate: !0 });
35
+ const c = (o) => {
36
+ t.emailFormat = o;
37
+ }, u = () => {
38
+ a.value = !0;
39
+ }, d = r(() => t.emailFormat === "amp" && n.value);
40
+ function f() {
41
+ a.value = !1;
42
+ }
43
+ return { __sfc: !0, editorStore: t, getPreviewData: s, showToaster: l, trans: e, showErrorModal: a, hasAMP: m, hasAMPErrors: n, segmentList: p, updateAmpData: i, handleFormatChange: c, handleErrorClick: u, showErrorButton: d, closeErrorModal: f, AmpErrorModal: A, InSegments: y, InButtonV2: P };
44
+ }
45
+ });
46
+ export {
47
+ D as default
48
+ };
@@ -1,10 +1,10 @@
1
- import i from "./MiddleSlot.vue2.js";
2
- import s from "../../../_virtual/_plugin-vue2_normalizer.js";
1
+ import s from "./MiddleSlot.vue2.js";
2
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
3
3
  var n = function() {
4
- var e = this, o = e._self._c, t = e._self._setupProxy;
5
- return t.editorStore.isVersionHistoryOpen ? o("div", { staticClass: "d-f" }, [o(t.VersionHistory), o(t.VersionHistoryViewOptions)], 1) : o("div", { staticClass: "d-f" }, [o(t.InButtonV2, { attrs: { id: "guido__undo-button", "left-icon": "line-undo", styling: "ghost", type: "secondary", "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__undo-button"), "tooltip-text": t.trans("action-builder.undo") } }), o(t.InButtonV2, { attrs: { id: "guido__redo-button", "left-icon": "line-redo", styling: "ghost", type: "secondary", "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__redo-button"), "tooltip-text": t.trans("action-builder.redo") } }), o(t.InButtonV2, { attrs: { id: "guido__code-button", "data-testid": "Code Editor", "left-icon": "line-code", styling: "ghost", type: "secondary", "label-text-status": !1, "selected-status": t.editorStore.isCodeEditorOpen, "tooltip-options": t.getTooltipOptions("guido__code-button"), "tooltip-text": t.codeEditorTooltipText } }), o(t.InButtonV2, { attrs: { id: "guido__preview-button", "left-icon": "line-show-on", styling: "ghost", type: "secondary", "label-text-status": !1, "selected-status": t.editorStore.isPreviewModeOpen, "tooltip-options": t.getTooltipOptions("guido__preview-button"), "tooltip-text": t.previewTooltipText }, on: { click: t.handlePreview } }), o(t.ViewOptions, { staticClass: "ml-3" })], 1);
6
- }, l = [], r = /* @__PURE__ */ s(
7
- i,
4
+ var o = this, e = o._self._c, t = o._self._setupProxy;
5
+ return t.editorStore.isVersionHistoryOpen ? e("div", { staticClass: "d-f" }, [e(t.VersionHistory), e(t.VersionHistoryViewOptions)], 1) : e("div", { staticClass: "d-f" }, [e(t.InButtonV2, { attrs: { id: "guido__undo-button", "left-icon": "line-undo", styling: "ghost", type: "secondary", "disabled-status": t.isPreviewModeOpen, "label-text-status": !1 } }), e(t.InButtonV2, { attrs: { id: "guido__redo-button", "left-icon": "line-redo", styling: "ghost", type: "secondary", "disabled-status": t.isPreviewModeOpen, "label-text-status": !1 } }), e(t.InButtonV2, { attrs: { id: "guido__code-button", "data-testid": "Code Editor", "left-icon": "line-code", styling: "ghost", "tooltip-text": "Code Editor", type: "secondary", "disabled-status": t.isPreviewModeOpen, "label-text-status": !1, "selected-status": t.editorStore.isCodeEditorOpen, "tooltip-options": t.getTooltipOptions("guido__code-button") } }), e(t.InButtonV2, { attrs: { id: "guido__preview-button", "left-icon": "line-show-on", styling: "ghost", type: "secondary", "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__preview-button"), "tooltip-text": t.isPreviewModeOpen ? t.trans("newsletter.close-email-preview") : t.trans("newsletter.email-preview") }, on: { click: t.handlePreviewClick } }), e(t.ViewOptions, { staticClass: "ml-3" }), e(t.AmpToggle)], 1);
6
+ }, l = [], r = /* @__PURE__ */ i(
7
+ s,
8
8
  n,
9
9
  l,
10
10
  !1,
@@ -1,20 +1,25 @@
1
- import { defineComponent as s, computed as t } from "vue";
2
- import { useTranslations as n } from "../../../composables/useTranslations.js";
3
- import { useEditorStore as p } from "../../../stores/editor.js";
4
- import { getTooltipOptions as m } from "../../../utils/tooltipUtils.js";
5
- import { InButtonV2 as l } from "@useinsider/design-system-vue";
6
- import d from "./version-history/VersionHistory.vue.js";
7
- import w from "./version-history/ViewOptions.vue.js";
8
- import c from "./ViewOptions.vue.js";
9
- const M = /* @__PURE__ */ s({
1
+ import { defineComponent as s, computed as n } from "vue";
2
+ import { useTranslations as p } from "../../../composables/useTranslations.js";
3
+ import { useEditorStore as m } from "../../../stores/editor.js";
4
+ import { InButtonV2 as c } from "@useinsider/design-system-vue";
5
+ import d from "./AmpToggle.vue.js";
6
+ import f from "./version-history/VersionHistory.vue.js";
7
+ import a from "./version-history/ViewOptions.vue.js";
8
+ import l from "./ViewOptions.vue.js";
9
+ const T = /* @__PURE__ */ s({
10
10
  __name: "MiddleSlot",
11
- setup(f) {
12
- const e = p(), o = n(), r = t(() => e.isCodeEditorOpen ? o("newsletter.close-html-editor") : o("newsletter.html-editor")), i = t(() => e.isPreviewModeOpen ? o("newsletter.close-email-preview") : o("newsletter.email-preview"));
13
- return { __sfc: !0, editorStore: e, trans: o, codeEditorTooltipText: r, previewTooltipText: i, handlePreview: () => {
14
- e.isPreviewModeOpen = !e.isPreviewModeOpen;
15
- }, getTooltipOptions: m, InButtonV2: l, VersionHistory: d, VersionHistoryViewOptions: w, ViewOptions: c };
11
+ setup(u) {
12
+ const o = m(), t = p(), e = () => {
13
+ o.isPreviewModeOpen = !o.isPreviewModeOpen;
14
+ }, i = n(() => o.isPreviewModeOpen);
15
+ return { __sfc: !0, editorStore: o, trans: t, handlePreviewClick: e, isPreviewModeOpen: i, getTooltipOptions: (r) => ({
16
+ id: `${r}-tooltip`,
17
+ dynamicPosition: !1,
18
+ staticPosition: "bottom center",
19
+ iconStatus: !1
20
+ }), InButtonV2: c, AmpToggle: d, VersionHistory: f, VersionHistoryViewOptions: a, ViewOptions: l };
16
21
  }
17
22
  });
18
23
  export {
19
- M as default
24
+ T as default
20
25
  };
@@ -1,17 +1,17 @@
1
- import s from "./RightSlot.vue2.js";
1
+ import o from "./RightSlot.vue2.js";
2
2
  import i from "../../../_virtual/_plugin-vue2_normalizer.js";
3
3
  var n = function() {
4
- var o = this, e = o._self._c, t = o._self._setupProxy;
5
- return e("div", { staticClass: "d-f" }, [e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "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(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.exportHtml } }), e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") } }), e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button"), "tooltip-text": t.trans("newsletter.test-email") } }), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": t.editorStore.isVersionHistoryOpen }, on: { click: t.handleSave } })], 1);
6
- }, r = [], l = /* @__PURE__ */ i(
7
- s,
4
+ var s = this, e = s._self._c, t = s._self._setupProxy;
5
+ return e("div", { staticClass: "d-f" }, [e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isPreviewModeOpen, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen }, on: { click: t.handleVersionHistory } }), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1 }, on: { click: t.exportHtml } }), e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1 } }), e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryOpen, "label-text-status": !1 } }), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": t.editorStore.isVersionHistoryOpen || t.editorStore.isPreviewModeOpen }, on: { click: t.handleSave } })], 1);
6
+ }, r = [], a = /* @__PURE__ */ i(
7
+ o,
8
8
  n,
9
9
  r,
10
10
  !1,
11
11
  null,
12
12
  null
13
13
  );
14
- const u = l.exports;
14
+ const c = a.exports;
15
15
  export {
16
- u as default
16
+ c as default
17
17
  };
@@ -1,37 +1,35 @@
1
- import { defineComponent as l, computed as f } from "vue";
2
- import { useActionsApi as u } from "../../../composables/useActionsApi.js";
3
- import { useExport as d } from "../../../composables/useExport.js";
4
- import { useSaveStart as y, useSaveComplete as v } from "../../../composables/useGuidoActions.js";
5
- import { useTranslations as h } from "../../../composables/useTranslations.js";
6
- import { useVersionHistoryApi as S } from "../../../composables/useVersionHistoryApi.js";
7
- import { useEditorStore as H } from "../../../stores/editor.js";
8
- import { getTooltipOptions as _ } from "../../../utils/tooltipUtils.js";
9
- import { InButtonV2 as V } from "@useinsider/design-system-vue";
10
- const R = /* @__PURE__ */ l({
1
+ import { defineComponent as m } from "vue";
2
+ import { useActionsApi as p } from "../../../composables/useActionsApi.js";
3
+ import { useExport as c } from "../../../composables/useExport.js";
4
+ import { useSaveStart as l, useSaveComplete as f } from "../../../composables/useGuidoActions.js";
5
+ import { useVersionHistoryApi as u } from "../../../composables/useVersionHistoryApi.js";
6
+ import { useEditorStore as d } from "../../../stores/editor.js";
7
+ import { InButtonV2 as S } from "@useinsider/design-system-vue";
8
+ const E = /* @__PURE__ */ m({
11
9
  __name: "RightSlot",
12
- setup(g) {
13
- const { exportHtml: p } = d(), { getCompiledEmail: r } = u(), s = y(), i = v(), { openVersionHistory: n, closeVersionHistory: m } = S(), o = H(), t = h(), a = () => {
14
- if (o.isVersionHistoryOpen) {
15
- m();
10
+ setup(h) {
11
+ const { exportHtml: a } = c(), { getCompiledEmail: t } = p(), e = l(), r = f(), { openVersionHistory: s, closeVersionHistory: n } = u(), i = d();
12
+ return { __sfc: !0, exportHtml: a, getCompiledEmail: t, saveStart: e, saveComplete: r, openVersionHistory: s, closeVersionHistory: n, editorStore: i, handleVersionHistory: () => {
13
+ if (i.isVersionHistoryOpen) {
14
+ n();
16
15
  return;
17
16
  }
18
- n();
19
- }, c = f(() => o.isVersionHistoryOpen ? t("newsletter.close-version-history") : t("newsletter.version-history"));
20
- return { __sfc: !0, exportHtml: p, getCompiledEmail: r, saveStart: s, saveComplete: i, openVersionHistory: n, closeVersionHistory: m, editorStore: o, trans: t, handleVersionHistory: a, versionHistoryTooltipText: c, handleSave: async () => {
21
17
  s();
18
+ }, handleSave: async () => {
19
+ e();
22
20
  try {
23
- const { html: e } = await r();
24
- i({
25
- html: e || "",
21
+ const { html: o } = await t();
22
+ r({
23
+ html: o || "",
26
24
  css: ""
27
25
  // CSS is embedded in HTML from Stripo
28
26
  });
29
- } catch (e) {
30
- console.error("Failed to get template data for save:", e);
27
+ } catch (o) {
28
+ console.error("Failed to get template data for save:", o);
31
29
  }
32
- }, getTooltipOptions: _, InButtonV2: V };
30
+ }, InButtonV2: S };
33
31
  }
34
32
  });
35
33
  export {
36
- R as default
34
+ E as default
37
35
  };
@@ -1,16 +1,16 @@
1
1
  import r from "./ViewOptions.vue2.js";
2
2
  /* empty css */
3
- import s from "../../../_virtual/_plugin-vue2_normalizer.js";
4
- var n = function() {
3
+ import i from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var s = function() {
5
5
  var t = this, o = t._self._c, e = t._self._setupProxy;
6
- return o(e.InSegments, { attrs: { id: "guido__view-option-selection", "with-icon": "", "segment-list": e.segmentList, selected: e.editorStore.editorVisualMode } });
7
- }, i = [], _ = /* @__PURE__ */ s(
6
+ return o(e.InSegments, { attrs: { id: "guido__view-option-selection", "with-icon": "", disable: e.editorStore.isPreviewModeOpen, "segment-list": e.segmentList, selected: e.editorStore.editorVisualMode } });
7
+ }, n = [], _ = /* @__PURE__ */ i(
8
8
  r,
9
+ s,
9
10
  n,
10
- i,
11
11
  !1,
12
12
  null,
13
- "0fff376c"
13
+ "f90d31ea"
14
14
  );
15
15
  const l = _.exports;
16
16
  export {
@@ -1,5 +1,7 @@
1
+ import type { CompileEmailOptions } from '@@/Types/stripo';
1
2
  import { GetCompiledEmailOptions, CompiledEmailResult } from '@@/Types/actions-api';
2
3
  export declare const useActionsApi: () => {
3
4
  getCompiledEmail: (options?: GetCompiledEmailOptions) => Promise<CompiledEmailResult>;
4
5
  activateCustomViewStyles: (isActive?: boolean) => void;
6
+ getPreviewData: (options?: CompileEmailOptions) => Promise<CompiledEmailResult>;
5
7
  };
@@ -1,38 +1,49 @@
1
- const g = () => ({ getCompiledEmail: (t = {}) => new Promise((i, a) => {
2
- const s = { ...{
3
- minimize: !0,
4
- utmEntity: {
5
- utmSource: "",
6
- utmMedium: "",
7
- utmCampaign: "",
8
- utmContent: "",
9
- utmTerm: "",
10
- customUtms: [
11
- {
12
- name1: "val1",
13
- name2: "val2"
14
- }
15
- ]
16
- },
17
- mergeTags: ["Tag1", "Tag2"],
18
- forseAmp: !1,
19
- resetDataSavedFlag: !1,
20
- disableLineHeightsReplace: !0
21
- }, ...t }, o = {
22
- callback: (e, m, l, n, c) => {
23
- e ? a(e) : i({
24
- html: m,
25
- ampHtml: l,
26
- ampErrors: n,
27
- displayConditions: c
28
- });
29
- },
30
- ...s
31
- };
32
- window.StripoEditorApi.actionsApi.compileEmail(o);
33
- }), activateCustomViewStyles: (t = !0) => {
34
- window.StripoEditorApi.actionsApi.activateCustomViewStyles(t);
35
- } });
1
+ const w = () => {
2
+ const a = (e = {}) => new Promise((t, s) => {
3
+ const m = { ...{
4
+ minimize: !0,
5
+ utmEntity: {
6
+ utmSource: "",
7
+ utmMedium: "",
8
+ utmCampaign: "",
9
+ utmContent: "",
10
+ utmTerm: "",
11
+ customUtms: [
12
+ {
13
+ name1: "val1",
14
+ name2: "val2"
15
+ }
16
+ ]
17
+ },
18
+ mergeTags: ["Tag1", "Tag2"],
19
+ forseAmp: !1,
20
+ resetDataSavedFlag: !1,
21
+ disableLineHeightsReplace: !0
22
+ }, ...e }, o = {
23
+ callback: (i, n, l, r, c) => {
24
+ i ? s(i) : t({
25
+ html: n,
26
+ ampHtml: l,
27
+ ampErrors: r,
28
+ displayConditions: c
29
+ });
30
+ },
31
+ ...m
32
+ };
33
+ window.StripoEditorApi.actionsApi.compileEmail(o);
34
+ });
35
+ return { getCompiledEmail: a, activateCustomViewStyles: (e = !0) => {
36
+ window.StripoEditorApi.actionsApi.activateCustomViewStyles(e);
37
+ }, getPreviewData: async (e) => {
38
+ const t = await a({ minimize: !1, resetDataSavedFlag: !1, ...e });
39
+ return {
40
+ html: t.html,
41
+ ampHtml: t.ampHtml ?? "",
42
+ ampErrors: t.ampErrors ?? null,
43
+ displayConditions: t.displayConditions
44
+ };
45
+ } };
46
+ };
36
47
  export {
37
- g as useActionsApi
48
+ w as useActionsApi
38
49
  };
@@ -0,0 +1,4 @@
1
+ export declare const useDebounce: () => {
2
+ debounce: (fn: () => void, ms?: number) => void;
3
+ clearDebounce: () => void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { ref as c } from "vue";
2
+ const r = () => {
3
+ const e = c(void 0);
4
+ return { debounce: (o, u = 150) => {
5
+ e.value && window.clearTimeout(e.value), e.value = window.setTimeout(o, u);
6
+ }, clearDebounce: () => {
7
+ e.value && (window.clearTimeout(e.value), e.value = void 0);
8
+ } };
9
+ };
10
+ export {
11
+ r as useDebounce
12
+ };
@@ -0,0 +1,5 @@
1
+ export declare const useMobileGmailFit: () => {
2
+ setupMobileGmailFit: (iframe: HTMLIFrameElement) => void;
3
+ tearDownMobileGmailFit: (iframe: HTMLIFrameElement) => void;
4
+ hasResponsiveMetaViewport: (doc: Document) => boolean;
5
+ };
@@ -0,0 +1,69 @@
1
+ import { useDebounce as p } from "./useDebounce.js";
2
+ import { META_VIEWPORT_REGEX as h, INLINE_WIDTH_REGEX as w, EMAIL_CONTAINER_SELECTORS as f, DEFAULT_EMAIL_WIDTH as b, MIN_SCALE as v, TABLE_WIDTH_REGEX as A, RESIZE_DEBOUNCE_MS as u } from "../enums/gmailMobilePreview.js";
3
+ let a = null, c = null;
4
+ const { debounce: y } = p(), M = (t) => {
5
+ if (!t)
6
+ return null;
7
+ const e = t.match(A);
8
+ if (!e)
9
+ return null;
10
+ const r = Number(e[1]);
11
+ return Number.isNaN(r) ? null : r;
12
+ }, g = (t) => {
13
+ const e = Array.from(t.querySelectorAll("table[width]")).reduce(
14
+ (n, i) => {
15
+ const o = M(i.getAttribute("width"));
16
+ return o && o > n ? o : n;
17
+ },
18
+ 0
19
+ ), r = Array.from(t.querySelectorAll('[style*="width"]')).reduce(
20
+ (n, i) => {
21
+ const l = (i.getAttribute("style") || "").match(w);
22
+ if (!l)
23
+ return n;
24
+ const m = Number(l[1]);
25
+ return !Number.isNaN(m) && m > n ? m : n;
26
+ },
27
+ 0
28
+ ), s = f.reduce((n, i) => {
29
+ const o = t.querySelector(i);
30
+ if (!o)
31
+ return n;
32
+ const l = Math.max(o.offsetWidth, o.scrollWidth);
33
+ return l > n ? l : n;
34
+ }, 0);
35
+ return Math.max(e, r, s) || b;
36
+ }, N = (t) => {
37
+ t.documentElement.style.setProperty("overflow-x", "visible", "important"), t.body.style.setProperty("visibility", "visible", "important");
38
+ }, S = (t) => {
39
+ t.documentElement.style.removeProperty("transform"), t.documentElement.style.removeProperty("transform-origin"), t.documentElement.style.removeProperty("height"), t.body.style.removeProperty("overflow-x");
40
+ }, d = (t) => {
41
+ const e = t.querySelector('meta[name="viewport"]');
42
+ if (!e)
43
+ return !1;
44
+ const r = e.getAttribute("content") || "";
45
+ return h.test(r);
46
+ }, W = (t, e) => {
47
+ const r = g(t), s = e / r, n = Math.min(Math.max(s, v), 1);
48
+ t.documentElement.style.setProperty("height", "100%", "important"), t.documentElement.style.setProperty("transform", `scale(${n})`, "important"), t.documentElement.style.setProperty("transform-origin", "top left", "important"), t.body.style.setProperty("overflow-x", "hidden", "important");
49
+ }, E = (t) => {
50
+ const e = t.contentWindow;
51
+ c && e && e.removeEventListener("resize", c), a && window.removeEventListener("resize", a), c = null, a = null;
52
+ }, P = () => ({ setupMobileGmailFit: (e) => {
53
+ const r = e.contentDocument, s = e.contentWindow;
54
+ if (!r || !s)
55
+ return;
56
+ N(r);
57
+ const n = () => {
58
+ const i = e.clientWidth || e.getBoundingClientRect().width || 375;
59
+ if (d(r)) {
60
+ S(r);
61
+ return;
62
+ }
63
+ W(r, i);
64
+ };
65
+ n(), E(e), c = () => y(n, u), s.addEventListener("resize", c), a = () => y(n, u), window.addEventListener("resize", a);
66
+ }, tearDownMobileGmailFit: E, hasResponsiveMetaViewport: d });
67
+ export {
68
+ P as useMobileGmailFit
69
+ };
@@ -0,0 +1,7 @@
1
+ export declare const DEFAULT_EMAIL_WIDTH = 600;
2
+ export declare const MIN_SCALE = 0.2;
3
+ export declare const RESIZE_DEBOUNCE_MS = 100;
4
+ export declare const INLINE_WIDTH_REGEX: RegExp;
5
+ export declare const TABLE_WIDTH_REGEX: RegExp;
6
+ export declare const META_VIEWPORT_REGEX: RegExp;
7
+ export declare const EMAIL_CONTAINER_SELECTORS: readonly [".wrapper", ".container", "#wrapper", "#container", "[data-email-container]", "[role=\"presentation\"]"];
@@ -0,0 +1,17 @@
1
+ const E = 600, t = 0.2, n = 100, o = /width\s*:\s*(\d+(\.\d+)?)px/i, _ = /^(\d+(\.\d+)?)(px)?$/i, e = /width\s*=\s*device-width/i, i = [
2
+ ".wrapper",
3
+ ".container",
4
+ "#wrapper",
5
+ "#container",
6
+ "[data-email-container]",
7
+ '[role="presentation"]'
8
+ ];
9
+ export {
10
+ E as DEFAULT_EMAIL_WIDTH,
11
+ i as EMAIL_CONTAINER_SELECTORS,
12
+ o as INLINE_WIDTH_REGEX,
13
+ e as META_VIEWPORT_REGEX,
14
+ t as MIN_SCALE,
15
+ n as RESIZE_DEBOUNCE_MS,
16
+ _ as TABLE_WIDTH_REGEX
17
+ };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history-wrapper[data-v-52a77eec]{gap:8px}[data-v-6a2bde67] .guido__verion-history-view-option-selection-desktop svg,[data-v-6a2bde67] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6a2bde67] .in-segments-wrapper__button_selected,[data-v-6a2bde67] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-0fff376c] .guido__view-option-selection-desktop svg,[data-v-0fff376c] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-0fff376c] .in-segments-wrapper__button_selected,[data-v-0fff376c] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.guido-editor__wrapper[data-v-89bedf08],.guido-editor__container[data-v-89bedf08]{width:100%;height:calc(100vh - 75px)}
1
+ [data-v-af6f2286] .in-progress-wrapper__progress p span:last-child{display:none!important}.desktop-preview-container[data-v-af6f2286],[data-v-af6f2286] .desktop-preview-container .in-container{min-height:720px!important;height:100%}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history-wrapper[data-v-52a77eec]{gap:8px}[data-v-6a2bde67] .guido__verion-history-view-option-selection-desktop svg,[data-v-6a2bde67] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6a2bde67] .in-segments-wrapper__button_selected,[data-v-6a2bde67] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-f90d31ea] .guido__view-option-selection-desktop svg,[data-v-f90d31ea] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-f90d31ea] .in-segments-wrapper__button_selected,[data-v-f90d31ea] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.guido-editor__wrapper[data-v-7836f831],.guido-editor__container[data-v-7836f831]{width:100%;height:calc(100vh - 75px)}
@@ -0,0 +1,4 @@
1
+ const e = "data:image/svg+xml,%3csvg%20width='344'%20height='713'%20viewBox='0%200%20344%20713'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='344'%20height='712.056'%20rx='44'%20fill='white'/%3e%3cpath%20d='M152.709%2071V61.9H153.814V71H152.709ZM155.939%2071V64.5H156.914L156.979%2065.696V71H155.939ZM160.502%2071V67.672H161.542V71H160.502ZM160.502%2067.672C160.502%2067.0307%20160.429%2066.541%20160.281%2066.203C160.134%2065.865%20159.93%2065.6353%20159.67%2065.514C159.41%2065.384%20159.116%2065.319%20158.786%2065.319C158.214%2065.319%20157.768%2065.5227%20157.447%2065.93C157.135%2066.3287%20156.979%2066.8963%20156.979%2067.633H156.472C156.472%2066.9483%20156.572%2066.359%20156.771%2065.865C156.971%2065.371%20157.261%2064.994%20157.642%2064.734C158.024%2064.474%20158.483%2064.344%20159.02%2064.344C159.532%2064.344%20159.974%2064.448%20160.346%2064.656C160.728%2064.8553%20161.022%2065.176%20161.23%2065.618C161.447%2066.06%20161.551%2066.6407%20161.542%2067.36V67.672H160.502ZM163.188%2071V61.9H164.228V69.791L164.176%2071H163.188ZM166.425%2071.156C165.879%2071.156%20165.398%2071.013%20164.982%2070.727C164.575%2070.441%20164.259%2070.0423%20164.033%2069.531C163.808%2069.011%20163.695%2068.4173%20163.695%2067.75C163.695%2067.074%20163.808%2066.4803%20164.033%2065.969C164.259%2065.4577%20164.575%2065.059%20164.982%2064.773C165.398%2064.487%20165.879%2064.344%20166.425%2064.344C167.006%2064.344%20167.517%2064.487%20167.959%2064.773C168.401%2065.059%20168.744%2065.4577%20168.986%2065.969C169.238%2066.4803%20169.363%2067.074%20169.363%2067.75C169.363%2068.4173%20169.238%2069.011%20168.986%2069.531C168.744%2070.0423%20168.401%2070.441%20167.959%2070.727C167.517%2071.013%20167.006%2071.156%20166.425%2071.156ZM166.191%2070.207C166.599%2070.207%20166.958%2070.103%20167.27%2069.895C167.591%2069.687%20167.842%2069.3967%20168.024%2069.024C168.215%2068.6513%20168.31%2068.2267%20168.31%2067.75C168.31%2067.2733%20168.219%2066.8487%20168.037%2066.476C167.864%2066.1033%20167.617%2065.813%20167.296%2065.605C166.976%2065.397%20166.612%2065.293%20166.204%2065.293C165.823%2065.293%20165.481%2065.397%20165.177%2065.605C164.883%2065.813%20164.649%2066.1033%20164.475%2066.476C164.311%2066.8487%20164.228%2067.2733%20164.228%2067.75C164.228%2068.2267%20164.311%2068.6513%20164.475%2069.024C164.649%2069.3967%20164.883%2069.687%20165.177%2069.895C165.472%2070.103%20165.81%2070.207%20166.191%2070.207ZM173.679%2071.156C173.046%2071.156%20172.483%2071.013%20171.989%2070.727C171.503%2070.4323%20171.122%2070.0293%20170.845%2069.518C170.567%2069.0067%20170.429%2068.4173%20170.429%2067.75C170.429%2067.0827%20170.563%2066.4933%20170.832%2065.982C171.109%2065.4707%20171.49%2065.072%20171.976%2064.786C172.47%2064.4913%20173.029%2064.344%20173.653%2064.344C174.294%2064.344%20174.857%2064.4913%20175.343%2064.786C175.837%2065.072%20176.218%2065.4707%20176.487%2065.982C176.764%2066.4933%20176.903%2067.0827%20176.903%2067.75C176.903%2068.4173%20176.764%2069.0067%20176.487%2069.518C176.218%2070.0293%20175.841%2070.4323%20175.356%2070.727C174.87%2071.013%20174.311%2071.156%20173.679%2071.156ZM173.679%2070.194C174.112%2070.194%20174.489%2070.09%20174.81%2069.882C175.13%2069.674%20175.382%2069.388%20175.564%2069.024C175.754%2068.66%20175.85%2068.2353%20175.85%2067.75C175.85%2067.2647%20175.754%2066.84%20175.564%2066.476C175.382%2066.112%20175.126%2065.826%20174.797%2065.618C174.467%2065.41%20174.086%2065.306%20173.653%2065.306C173.228%2065.306%20172.851%2065.41%20172.522%2065.618C172.201%2065.826%20171.945%2066.112%20171.755%2066.476C171.573%2066.84%20171.482%2067.2647%20171.482%2067.75C171.482%2068.2267%20171.573%2068.6513%20171.755%2069.024C171.945%2069.388%20172.205%2069.674%20172.535%2069.882C172.873%2070.09%20173.254%2070.194%20173.679%2070.194ZM177.503%2071L180.155%2067.269L182.027%2064.5H183.262L180.792%2068.01L178.764%2071H177.503ZM182.17%2071L180.168%2068.01L177.672%2064.5H178.907L180.792%2067.269L183.418%2071H182.17Z'%20fill='%23989898'/%3e%3cline%20x1='12'%20y1='86.5'%20x2='332'%20y2='86.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='150.5'%20x2='316'%20y2='150.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='214.5'%20x2='316'%20y2='214.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='278.5'%20x2='316'%20y2='278.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='342.5'%20x2='316'%20y2='342.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='406.5'%20x2='316'%20y2='406.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='470.5'%20x2='316'%20y2='470.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='534.5'%20x2='316'%20y2='534.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3cline%20x1='28'%20y1='598.5'%20x2='316'%20y2='598.5'%20stroke='black'%20stroke-opacity='0.07'/%3e%3crect%20width='320'%20height='64'%20transform='translate(12%20626)'%20fill='white'/%3e%3crect%20x='28'%20y='644'%20width='20'%20height='20'%20fill='url(%23pattern0_24_102)'/%3e%3crect%20x='292'%20y='642'%20width='24'%20height='24'%20fill='url(%23pattern1_24_102)'/%3e%3cpath%20d='M54.6454%2035V29.1943H54.5624L52.8095%2030.4346V29.248L54.6503%2027.9541H55.9052V35H54.6454ZM60.7072%2035V33.6475H57.2599V32.6172C58.173%2031.0303%2059.174%2029.4092%2060.131%2027.9541H61.9132V32.6074H62.8605V33.6475H61.9132V35H60.7072ZM58.4318%2032.6367H60.7267V28.96H60.6535C59.9308%2030.0635%2059.1154%2031.3672%2058.4318%2032.5635V32.6367ZM64.6742%2030.4346C64.2298%2030.4346%2063.8978%2030.0928%2063.8978%2029.6631C63.8978%2029.2285%2064.2298%2028.8916%2064.6742%2028.8916C65.1234%2028.8916%2065.4505%2029.2285%2065.4505%2029.6631C65.4505%2030.0928%2065.1234%2030.4346%2064.6742%2030.4346ZM64.6742%2034.0576C64.2298%2034.0576%2063.8978%2033.7207%2063.8978%2033.2861C63.8978%2032.8516%2064.2298%2032.5146%2064.6742%2032.5146C65.1234%2032.5146%2065.4505%2032.8516%2065.4505%2033.2861C65.4505%2033.7207%2065.1234%2034.0576%2064.6742%2034.0576ZM66.688%2035V34.1504L69.0025%2031.7871C69.9595%2030.8203%2070.2281%2030.4639%2070.2281%2029.9219V29.9072C70.2281%2029.2578%2069.7837%2028.7891%2069.0513%2028.7891C68.3042%2028.7891%2067.8013%2029.2822%2067.8013%2030.0098L67.7964%2030.0293L66.6246%2030.0244L66.6197%2030.0098C66.6197%2028.6963%2067.6451%2027.7783%2069.1148%2027.7783C70.4869%2027.7783%2071.4732%2028.6133%2071.4732%2029.7998V29.8145C71.4732%2030.6152%2071.0875%2031.25%2069.8033%2032.4854L68.3921%2033.8525V33.9551H71.5806V35H66.688ZM75.1521%2035.1758C73.4773%2035.1758%2072.4714%2033.7549%2072.4714%2031.4795V31.4697C72.4714%2029.1943%2073.4773%2027.7783%2075.1521%2027.7783C76.8269%2027.7783%2077.8425%2029.1943%2077.8425%2031.4697V31.4795C77.8425%2033.7549%2076.8269%2035.1758%2075.1521%2035.1758ZM75.1521%2034.1553C76.0505%2034.1553%2076.573%2033.1494%2076.573%2031.4795V31.4697C76.573%2029.7998%2076.0505%2028.8037%2075.1521%2028.8037C74.2537%2028.8037%2073.741%2029.7998%2073.741%2031.4697V31.4795C73.741%2033.1494%2074.2537%2034.1553%2075.1521%2034.1553Z'%20fill='black'/%3e%3cpath%20d='M257.835%2028C257.835%2027.5398%20258.208%2027.1667%20258.668%2027.1667H259.501C259.961%2027.1667%20260.335%2027.5398%20260.335%2028V34.6667C260.335%2035.1269%20259.961%2035.5%20259.501%2035.5H258.668C258.208%2035.5%20257.835%2035.1269%20257.835%2034.6667V28Z'%20fill='black'/%3e%3cpath%20d='M262.001%2026.3333C262.001%2025.8731%20262.374%2025.5%20262.835%2025.5H263.668C264.128%2025.5%20264.501%2025.8731%20264.501%2026.3333V34.6667C264.501%2035.1269%20264.128%2035.5%20263.668%2035.5H262.835C262.374%2035.5%20262.001%2035.1269%20262.001%2034.6667V26.3333Z'%20fill='black'/%3e%3cpath%20d='M253.668%2030.9167C253.668%2030.4564%20254.041%2030.0833%20254.501%2030.0833H255.335C255.795%2030.0833%20256.168%2030.4564%20256.168%2030.9167V34.6667C256.168%2035.1269%20255.795%2035.5%20255.335%2035.5H254.501C254.041%2035.5%20253.668%2035.1269%20253.668%2034.6667V30.9167Z'%20fill='black'/%3e%3cpath%20d='M249.501%2033C249.501%2032.5398%20249.874%2032.1667%20250.335%2032.1667H251.168C251.628%2032.1667%20252.001%2032.5398%20252.001%2033V34.6667C252.001%2035.1269%20251.628%2035.5%20251.168%2035.5H250.335C249.874%2035.5%20249.501%2035.1269%20249.501%2034.6667V33Z'%20fill='black'/%3e%3cpath%20d='M277.668%2033.0361C278.868%2032.0006%20280.625%2032.0004%20281.824%2033.0361C281.885%2033.0918%20281.919%2033.1709%20281.921%2033.2539C281.923%2033.3368%20281.891%2033.4165%20281.833%2033.4746L279.954%2035.4102C279.899%2035.4669%20279.825%2035.499%20279.746%2035.499C279.668%2035.499%20279.592%2035.467%20279.537%2035.4102L277.658%2033.4746C277.601%2033.4165%20277.569%2033.3367%20277.571%2033.2539C277.572%2033.1709%20277.608%2033.0918%20277.668%2033.0361ZM275.128%2030.7197C277.713%2028.2656%20281.716%2028.2656%20284.301%2030.7197C284.359%2030.7773%20284.392%2030.8567%20284.393%2030.9395C284.394%2031.0223%20284.362%2031.1024%20284.305%2031.1611L283.219%2032.2812C283.107%2032.3954%20282.926%2032.3974%20282.812%2032.2861C281.963%2031.5016%20280.858%2031.0673%20279.713%2031.0674C278.569%2031.068%20277.466%2031.5022%20276.617%2032.2861C276.503%2032.3974%20276.322%2032.3953%20276.21%2032.2812L275.124%2031.1611C275.067%2031.1025%20275.036%2031.0223%20275.036%2030.9395C275.037%2030.8567%20275.07%2030.7772%20275.128%2030.7197ZM272.591%2028.4082C276.556%2024.5301%20282.81%2024.5301%20286.775%2028.4082C286.832%2028.4658%20286.864%2028.5448%20286.865%2028.627C286.865%2028.7088%20286.834%2028.7875%20286.778%2028.8457L285.69%2029.9658C285.578%2030.0808%20285.396%2030.0819%20285.282%2029.9688C283.772%2028.503%20281.767%2027.6856%20279.683%2027.6855C277.599%2027.6857%20275.594%2028.503%20274.083%2029.9688C273.97%2030.0821%20273.788%2030.0809%20273.676%2029.9658L272.588%2028.8457C272.532%2028.7874%20272.501%2028.708%20272.501%2028.626C272.502%2028.5441%20272.534%2028.4656%20272.591%2028.4082Z'%20fill='black'/%3e%3cpath%20opacity='0.35'%20d='M298.865%2026H309.865C311.245%2026%20312.365%2027.1193%20312.365%2028.5V31.5C312.365%2032.8807%20311.245%2034%20309.865%2034H298.865C297.484%2034%20296.365%2032.8807%20296.365%2031.5V28.5C296.365%2027.1193%20297.484%2026%20298.865%2026Z'%20stroke='black'/%3e%3cpath%20opacity='0.4'%20d='M313.865%2028.5V31.5C314.47%2031.2459%20314.865%2030.6549%20314.865%2030C314.865%2029.3451%20314.47%2028.7541%20313.865%2028.5Z'%20fill='black'/%3e%3cpath%20d='M297.865%2028.5C297.865%2027.9477%20298.312%2027.5%20298.865%2027.5H309.865C310.417%2027.5%20310.865%2027.9477%20310.865%2028.5V31.5C310.865%2032.0523%20310.417%2032.5%20309.865%2032.5H298.865C298.312%2032.5%20297.865%2032.0523%20297.865%2031.5V28.5Z'%20fill='black'/%3e%3cg%20opacity='0.8'%3e%3crect%20x='127'%20y='690'%20width='90'%20height='4'%20rx='2'%20fill='%230F1218'%20style='mix-blend-mode:darken'/%3e%3c/g%3e%3crect%20x='131'%20y='20'%20width='83'%20height='22'%20rx='11'%20fill='%2324262D'/%3e%3cdefs%3e%3cpattern%20id='pattern0_24_102'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_24_102'%20transform='scale(0.02)'/%3e%3c/pattern%3e%3cpattern%20id='pattern1_24_102'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image1_24_102'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cimage%20id='image0_24_102'%20width='50'%20height='50'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEL0lEQVR4nO1aS48UVRS+xAcajIqKutSl0Sh/wifia+drB9ENMEG3OK7FWRTTfb/vVKfTSS97qSFGEzGIGhBE2MigsFJZKLoTJWjafD3nJpVM10x3Tz9qCF9SSc/cW6fuqXPuOed+p0K4gesUjUbjHjN7ieRBkodJLpH8E8BVXf77nI8dBPBijHFrqAJardZtMcY3SX5G8j+S3WEuAP8C+JTkG1mWbZ66AgsLC7eb2TsALhUW9g+AI2Z2QJap1+uP6I2b2S269Fv/0xiA90h+oXsKSv1Kcr9ezlSUMLMdJC8WFnDSzHaZ2V3Dymq1WncD2E3yVEHeBTN7dqJuxGWkB35nZk+NSz7JZwB8X7BwfezWqdVqD2rhrsBfJPd0Op2bxvqQEIJkAthH8kqydqPReGAswvM8f1jmdsHnYoyPhQmjXq8/DuC8W+YnrWFdApvN5rYkEMC3ZnZfmBJijFtJfuXKXJRXjCRI/llwp2/a7faWMGW02+0tAI4nNxtpz6SNLXdSsgszwuLi4r0FN6uPEmJ7G3sae2KQPUMPAIpuAye7Qp7YEyoCknNp8w/kYgDeTXliEiF2VMzPz99M8owrM7fqZNU7XipIkSdDxQDgOV/bpVWtouItRYhQQXS73U0pkprZa6UTvYrVpF39xgEcG7bCHfUCcKxkDW/5+Cd9lVCIVVmtirSsAJymIiS/LEuUfr651nedAF52AZ+HigPAUV/rzn6DH7pbHQgVB4D33b0+WDHoR9BujPGFUHHAvQfARysGSf6oQZ3iQsWR5/mj7lpLKwYB/KHBWdZVg0JVuFvktxWDHgm6nU7n1lBxZFm2OfEE61ZkEqEYJbljKEVIXtagyuZZKcKS3LGKa/1+/W52evgVAxgqDpKvlIbflBBFnoWNnBBtmbfV4JGwQUqUGOPzZcVYr2gUAxgqisZycdsrGrMsu7PvJCeUZZXdoaIg+bZv9MOlkwC87pNODSp4HGF40PzR7XY3kTzt97y6FpfVO+rGGJ+eliJD5I8drsTPa7YhRO278NMVJB/O+lFj75o3uFUS17svVAT0FyyybuCmkPoTbpUrIsfCjJHn+XYAf7s1hmtliJ5Mb2DQ+msSaDab20TK+VoODS3AXeykCzg+CxK7VqvdQfKEe8eJkfuM/jaWUltBf4fpJr6v/dkX1t3wUZOlYNrzAJ4Y22rLn7k9PVNVOYCHxiJYbyO5mbPicwqHYTIhdn/a2HKnGOP9k2iG9gKAX2fG1X1VxvZkd7aQ7Q9NtPeu/kTB7D3WXjTmKF8xaB947dQrO+iuNM5u8SDWUb/il4JCV728nhfvpFOcwrY4AF36raaRH4o052jiCVLZYWZ7Z/IFhB4qVlyEsh8Bhq2xrqmKVQE4EwX6QYSyuFid2kh+7B/QXC58VCNy4wcdT33OztLzxA2EjY//AVnMqJspfcIsAAAAAElFTkSuQmCC'/%3e%3cimage%20id='image1_24_102'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9UlEQVR4nO2Zv2oVQRTGBxHsLG1FEdTCXoh/wVpUtFGMD+EDbGW0Ehb2zvd9V7FO6qSztfAJBPMIQhqTaCGinGQXxuXmund3NswN84NTXe7M9zuc2V12nctkTj5lWZ713l92y4j3/iaAHZJ/SL51y4SkawD26vAHNZlMrrploSiK0wDWm/AA9r3351zqALgD4IMJWJHcIPkLwOPei3rvLwJ4A2ALwMeYJelpK3wzNhuNhJ2F3uFJPgLwM5zFWAXgXVEUp2aEb35f7x086Pwo4Um+nxee5G8Aq4MEbGyCbny1OZR0L0LdbcJLuj1K+FpgKxDof4iOQGOGN+yQNQtb51xEJN0gudsOL+lFtE3GEujSeT/kyjOmgHUewPd5nZf00vZOTqBreB6eubQESN6aNfP4d2yuBxeNdAQArPyv84btkZxA1/BJCiwSPjmBo67z825SSkXAHhNIfln0JqVUBAA87HOHVSoCJD8FQb4BeNblf0pBQNKVOsBn7/3zsizPdN1PKQjY/FdVdanPfkpBYAjKAi2ywIIoC7TIAguiLHDMr1XaSHoSPD9tuqEAeB0suG0bRHqxNass/HbQsFeDBabT6QWSP1pPlqMXgP2qqs67GEh6cJwSOPwOcN/FxLpRj9Nm7NfrqMvWJrkWrfOZTCaTOfH8BUJmVJAShmWwAAAAAElFTkSuQmCC'/%3e%3c/defs%3e%3c/svg%3e";
2
+ export {
3
+ e as default
4
+ };
@@ -0,0 +1,4 @@
1
+ const C = "data:image/svg+xml,%3csvg%20width='344'%20height='713'%20viewBox='0%200%20344%20713'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='344'%20height='712.056'%20rx='44'%20fill='white'/%3e%3cpath%20d='M54.6454%2034V28.1943H54.5624L52.8095%2029.4346V28.248L54.6503%2026.9541H55.9052V34H54.6454ZM60.7072%2034V32.6475H57.2599V31.6172C58.173%2030.0303%2059.174%2028.4092%2060.131%2026.9541H61.9132V31.6074H62.8605V32.6475H61.9132V34H60.7072ZM58.4318%2031.6367H60.7267V27.96H60.6534C59.9308%2029.0635%2059.1154%2030.3672%2058.4318%2031.5635V31.6367ZM64.6742%2029.4346C64.2298%2029.4346%2063.8978%2029.0928%2063.8978%2028.6631C63.8978%2028.2285%2064.2298%2027.8916%2064.6742%2027.8916C65.1234%2027.8916%2065.4505%2028.2285%2065.4505%2028.6631C65.4505%2029.0928%2065.1234%2029.4346%2064.6742%2029.4346ZM64.6742%2033.0576C64.2298%2033.0576%2063.8978%2032.7207%2063.8978%2032.2861C63.8978%2031.8516%2064.2298%2031.5146%2064.6742%2031.5146C65.1234%2031.5146%2065.4505%2031.8516%2065.4505%2032.2861C65.4505%2032.7207%2065.1234%2033.0576%2064.6742%2033.0576ZM66.688%2034V33.1504L69.0025%2030.7871C69.9595%2029.8203%2070.2281%2029.4639%2070.2281%2028.9219V28.9072C70.2281%2028.2578%2069.7837%2027.7891%2069.0513%2027.7891C68.3042%2027.7891%2067.8013%2028.2822%2067.8013%2029.0098L67.7964%2029.0293L66.6245%2029.0244L66.6197%2029.0098C66.6197%2027.6963%2067.6451%2026.7783%2069.1148%2026.7783C70.4869%2026.7783%2071.4732%2027.6133%2071.4732%2028.7998V28.8145C71.4732%2029.6152%2071.0874%2030.25%2069.8033%2031.4854L68.3921%2032.8525V32.9551H71.5806V34H66.688ZM75.1521%2034.1758C73.4773%2034.1758%2072.4714%2032.7549%2072.4714%2030.4795V30.4697C72.4714%2028.1943%2073.4773%2026.7783%2075.1521%2026.7783C76.8269%2026.7783%2077.8425%2028.1943%2077.8425%2030.4697V30.4795C77.8425%2032.7549%2076.8269%2034.1758%2075.1521%2034.1758ZM75.1521%2033.1553C76.0505%2033.1553%2076.573%2032.1494%2076.573%2030.4795V30.4697C76.573%2028.7998%2076.0505%2027.8037%2075.1521%2027.8037C74.2537%2027.8037%2073.741%2028.7998%2073.741%2030.4697V30.4795C73.741%2032.1494%2074.2537%2033.1553%2075.1521%2033.1553Z'%20fill='black'/%3e%3cpath%20d='M257.835%2027C257.835%2026.5398%20258.208%2026.1667%20258.668%2026.1667H259.501C259.961%2026.1667%20260.335%2026.5398%20260.335%2027V33.6667C260.335%2034.1269%20259.961%2034.5%20259.501%2034.5H258.668C258.208%2034.5%20257.835%2034.1269%20257.835%2033.6667V27Z'%20fill='black'/%3e%3cpath%20d='M262.001%2025.3333C262.001%2024.8731%20262.374%2024.5%20262.835%2024.5H263.668C264.128%2024.5%20264.501%2024.8731%20264.501%2025.3333V33.6667C264.501%2034.1269%20264.128%2034.5%20263.668%2034.5H262.835C262.374%2034.5%20262.001%2034.1269%20262.001%2033.6667V25.3333Z'%20fill='black'/%3e%3cpath%20d='M253.668%2029.9167C253.668%2029.4564%20254.041%2029.0833%20254.501%2029.0833H255.335C255.795%2029.0833%20256.168%2029.4564%20256.168%2029.9167V33.6667C256.168%2034.1269%20255.795%2034.5%20255.335%2034.5H254.501C254.041%2034.5%20253.668%2034.1269%20253.668%2033.6667V29.9167Z'%20fill='black'/%3e%3cpath%20d='M249.501%2032C249.501%2031.5398%20249.874%2031.1667%20250.335%2031.1667H251.168C251.628%2031.1667%20252.001%2031.5398%20252.001%2032V33.6667C252.001%2034.1269%20251.628%2034.5%20251.168%2034.5H250.335C249.874%2034.5%20249.501%2034.1269%20249.501%2033.6667V32Z'%20fill='black'/%3e%3cpath%20d='M277.668%2032.0361C278.868%2031.0007%20280.625%2031.0005%20281.824%2032.0361C281.885%2032.0918%20281.919%2032.1709%20281.921%2032.2539C281.923%2032.3369%20281.891%2032.4174%20281.833%2032.4756L279.954%2034.4102C279.899%2034.4669%20279.825%2034.4989%20279.746%2034.499C279.668%2034.499%20279.592%2034.467%20279.537%2034.4102L277.658%2032.4756C277.6%2032.4174%20277.569%2032.3369%20277.57%2032.2539C277.572%2032.1709%20277.608%2032.0918%20277.668%2032.0361ZM275.128%2029.7207C277.713%2027.2665%20281.716%2027.2665%20284.301%2029.7207C284.359%2029.7782%20284.392%2029.8569%20284.393%2029.9395C284.394%2030.0223%20284.362%2030.1024%20284.305%2030.1611L283.219%2031.2812C283.107%2031.3954%20282.926%2031.3974%20282.812%2031.2861C281.963%2030.5016%20280.858%2030.0673%20279.713%2030.0674C278.569%2030.068%20277.466%2030.5022%20276.617%2031.2861C276.503%2031.3974%20276.322%2031.3954%20276.21%2031.2812L275.124%2030.1611C275.067%2030.1025%20275.036%2030.0223%20275.036%2029.9395C275.037%2029.8569%20275.07%2029.7781%20275.128%2029.7207ZM272.591%2027.4082C276.555%2023.5301%20282.81%2023.5301%20286.775%2027.4082C286.832%2027.4658%20286.864%2027.5448%20286.864%2027.627C286.865%2027.7088%20286.834%2027.7875%20286.778%2027.8457L285.69%2028.9658C285.578%2029.0807%20285.396%2029.0826%20285.282%2028.9697C283.772%2027.5039%20281.767%2026.6866%20279.683%2026.6865C277.599%2026.6866%20275.594%2027.5039%20274.083%2028.9697C273.969%2029.0827%20273.788%2029.0808%20273.676%2028.9658L272.588%2027.8457C272.532%2027.7875%20272.501%2027.7088%20272.501%2027.627C272.502%2027.5448%20272.534%2027.4658%20272.591%2027.4082Z'%20fill='black'/%3e%3cpath%20opacity='0.35'%20d='M298.864%2025H309.864C311.245%2025%20312.364%2026.1193%20312.364%2027.5V30.5C312.364%2031.8807%20311.245%2033%20309.864%2033H298.864C297.484%2033%20296.364%2031.8807%20296.364%2030.5V27.5C296.364%2026.1193%20297.484%2025%20298.864%2025Z'%20stroke='black'/%3e%3cpath%20opacity='0.4'%20d='M313.864%2027.5V30.5C314.47%2030.2459%20314.864%2029.6549%20314.864%2029C314.864%2028.3451%20314.47%2027.7541%20313.864%2027.5Z'%20fill='black'/%3e%3cpath%20d='M297.864%2027.5C297.864%2026.9477%20298.312%2026.5%20298.864%2026.5H309.864C310.417%2026.5%20310.864%2026.9477%20310.864%2027.5V30.5C310.864%2031.0523%20310.417%2031.5%20309.864%2031.5H298.864C298.312%2031.5%20297.864%2031.0523%20297.864%2030.5V27.5Z'%20fill='black'/%3e%3crect%20width='320'%20height='66'%20transform='translate(12%20623)'%20fill='white'/%3e%3cpath%20d='M38.5%20642.625C37.4661%20642.625%2036.625%20643.466%2036.625%20644.5V645.625H32.875C32.461%20645.625%2032.125%20645.961%2032.125%20646.375C32.125%20646.789%2032.461%20647.125%2032.875%20647.125H33.666L34.2974%20658.5C34.3641%20659.691%2035.3501%20660.625%2036.5437%20660.625H43.4563C44.6495%20660.625%2045.6359%20659.691%2045.7026%20658.5L46.334%20647.125H47.125C47.539%20647.125%2047.875%20646.789%2047.875%20646.375C47.875%20645.961%2047.539%20645.625%2047.125%20645.625H43.375V644.5C43.375%20643.466%2042.5339%20642.625%2041.5%20642.625H38.5ZM38.5%20644.125H41.5C41.707%20644.125%2041.875%20644.293%2041.875%20644.5V645.625H38.125V644.5C38.125%20644.293%2038.293%20644.125%2038.5%20644.125ZM35.1675%20647.125H44.8325L44.2048%20658.416C44.1827%20658.814%2043.8542%20659.125%2043.4563%20659.125H36.5437C36.1462%20659.125%2035.8173%20658.814%2035.7952%20658.417L35.1675%20647.125ZM40%20648.719C39.6374%20648.719%2039.3438%20649.013%2039.3438%20649.375V656.875C39.3438%20657.237%2039.6374%20657.531%2040%20657.531C40.3626%20657.531%2040.6562%20657.237%2040.6562%20656.875V649.375C40.6562%20649.013%2040.3626%20648.719%2040%20648.719ZM37.241%20648.719C36.8791%20648.732%2036.5958%20649.035%2036.6082%20649.398L36.8696%20656.93C36.882%20657.284%2037.1734%20657.563%2037.5252%20657.563C37.533%20657.563%2037.5407%20657.563%2037.5486%20657.563C37.9105%20657.551%2038.1938%20657.247%2038.1814%20656.885L37.9199%20649.352C37.9072%20648.99%2037.6025%20648.711%2037.241%20648.719ZM42.7583%20648.719C42.3957%20648.709%2042.0928%20648.99%2042.0801%20649.352L41.8186%20656.885C41.8059%20657.247%2042.0892%20657.551%2042.4514%20657.563C42.4593%20657.564%2042.467%20657.563%2042.4749%20657.563C42.8266%20657.563%2043.118%20657.284%2043.1304%20656.93L43.3918%20649.398C43.4046%20649.035%2043.1206%20648.732%2042.7583%20648.719Z'%20fill='%23989898'/%3e%3cpath%20d='M122%20644.875C120.759%20644.875%20119.75%20645.884%20119.75%20647.125V656.875C119.75%20658.116%20120.759%20659.125%20122%20659.125H134C135.241%20659.125%20136.25%20658.116%20136.25%20656.875V648.625C136.25%20647.384%20135.241%20646.375%20134%20646.375H126.914C126.574%20646.375%20126.242%20646.258%20125.978%20646.046L125.335%20645.533C124.806%20645.109%20124.14%20644.875%20123.461%20644.875H122ZM122%20646.375H123.461C123.801%20646.375%20124.133%20646.492%20124.398%20646.704L125.04%20647.217C125.569%20647.641%20126.235%20647.875%20126.914%20647.875H134C134.414%20647.875%20134.75%20648.211%20134.75%20648.625V649H121.25V647.125C121.25%20646.711%20121.586%20646.375%20122%20646.375ZM121.25%20650.5H134.75V656.875C134.75%20657.289%20134.414%20657.625%20134%20657.625H122C121.586%20657.625%20121.25%20657.289%20121.25%20656.875V650.5Z'%20fill='%23989898'/%3e%3crect%20x='204'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern0_2_77)'/%3e%3crect%20x='292'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern1_2_77)'/%3e%3cg%20opacity='0.8'%3e%3crect%20x='127'%20y='690'%20width='90'%20height='4'%20rx='2'%20fill='%230F1218'%20style='mix-blend-mode:darken'/%3e%3c/g%3e%3crect%20x='131'%20y='20'%20width='83'%20height='22'%20rx='11'%20fill='%2324262D'/%3e%3cdefs%3e%3cpattern%20id='pattern0_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cpattern%20id='pattern1_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image1_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cimage%20id='image0_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADPElEQVR4nO1YSWgUQRTtKHEJKnpwAUURBMXlIi6HQBS9iCKeREHwIIJeBBFBBHGOLhBktKn3fichHiRgK+Yi0YuIiAdxF7xo9BBwQUVUMMFoMvLJb2gGx2SmM5O09IO+dFf9eu9Xdf3F8zJkyJAhw3iB7/uLSD4j2eGlDSKyjGQPyQLJV16aICKrAXw08ukSQLKJ5DclDuBiqgSIyDaSvUb+fBiGk1IjwDm3G0C/kT+t70SkPhUCSB4kOQBgkOTh6H0qBAA4bl7vB7An/i0SAOCNc25WqUfH1Zx4oVCoA3DWCPaR3F48JrYDwz4APgB4pDYBNOZyuQlVIx+G4USSgS38HcDGUmNJ3iL55V+PHb1iUS9FZKc6arTJ681y2ch/IrkmqU3dKQDz1RG2A92xnbkXBMGCUSEvIg0Abpjx9yKyyqsCCoVCnXo/EmKOakpktL29fSaAu9FP6fv+klFjXHrNKSQvmcN6RWRtRYZaWlrmAnhi5J/7vj/Pq+1l0WwiespeWw2QfGEG7uu159UYuVxuAslr5sDOSjzw3Ca/DYJghTcG8H1/mq5vPBrLmtzW1jab5EPbhc8A1nljABHZbxxulT05n8/PAHAnuvudc5tGuGh9qQhcbrAKw3Ci7gKA3865OWWLaG5ungrgehR9AewYwdl9PYII3AXgqIgsHI4DAOg859w+rxJYetBhBH4B2PuPsQ1GcvAv0bfvL4IGNEgCWF7KpqYsNrbVqxTq2cgTRu7QMAI+ldpR59xKPdsaIAH8tvE/SZ7QI1M8Ry8RG9PlJYHdTqdiR+FkuQKK4ZxbSvJKzGan2igaM8u+P/VGAySPRckYgHPx5KtcARFI7gLww4jejKfbVakxAByw86uG26Otr1SAQkTW621nNi9UvUiKl5QaNfP5/OQkAhQkt8Qqvc1Vr/IAbI2KepK3NYdKIkABIG82us0p1S1TNe0F8NUWeZxUQGtr63QA78zekZrU2cWNrSQCFBq0zNY3LW5q0iiItxaTCsgNxZ1HUQCrWadDm7sAHmiHLqktEdkQi9bju1VTCiSvprLfGiEIgsWxHCp9AhQkz6RaQH6oLrmredhYc8mQIUOG/xB/ACszo0e1cHoDAAAAAElFTkSuQmCC'/%3e%3cimage%20id='image1_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9UlEQVR4nO2Zv2oVQRTGBxHsLG1FEdTCXoh/wVpUtFGMD+EDbGW0Ehb2zvd9V7FO6qSztfAJBPMIQhqTaCGinGQXxuXmund3NswN84NTXe7M9zuc2V12nctkTj5lWZ713l92y4j3/iaAHZJ/SL51y4SkawD26vAHNZlMrrploSiK0wDWm/AA9r3351zqALgD4IMJWJHcIPkLwOPei3rvLwJ4A2ALwMeYJelpK3wzNhuNhJ2F3uFJPgLwM5zFWAXgXVEUp2aEb35f7x086Pwo4Um+nxee5G8Aq4MEbGyCbny1OZR0L0LdbcJLuj1K+FpgKxDof4iOQGOGN+yQNQtb51xEJN0gudsOL+lFtE3GEujSeT/kyjOmgHUewPd5nZf00vZOTqBreB6eubQESN6aNfP4d2yuBxeNdAQArPyv84btkZxA1/BJCiwSPjmBo67z825SSkXAHhNIfln0JqVUBAA87HOHVSoCJD8FQb4BeNblf0pBQNKVOsBn7/3zsizPdN1PKQjY/FdVdanPfkpBYAjKAi2ywIIoC7TIAguiLHDMr1XaSHoSPD9tuqEAeB0suG0bRHqxNass/HbQsFeDBabT6QWSP1pPlqMXgP2qqs67GEh6cJwSOPwOcN/FxLpRj9Nm7NfrqMvWJrkWrfOZTCaTOfH8BUJmVJAShmWwAAAAAElFTkSuQmCC'/%3e%3c/defs%3e%3c/svg%3e";
2
+ export {
3
+ C as default
4
+ };
@@ -3,4 +3,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"editor", {
3
3
  isVersionHistoryOpen: boolean;
4
4
  isPreviewModeOpen: boolean;
5
5
  editorVisualMode: string;
6
+ emailFormat: "html" | "amp";
7
+ ampHtml: string | null;
8
+ ampErrors: string[] | null;
6
9
  }, {}, {}>;
@@ -1,12 +1,15 @@
1
1
  import { defineStore as e } from "pinia";
2
- const i = e("editor", {
2
+ const r = e("editor", {
3
3
  state: () => ({
4
4
  isCodeEditorOpen: !1,
5
5
  isVersionHistoryOpen: !1,
6
6
  isPreviewModeOpen: !1,
7
- editorVisualMode: "desktop"
7
+ editorVisualMode: "desktop",
8
+ emailFormat: "amp",
9
+ ampHtml: null,
10
+ ampErrors: null
8
11
  })
9
12
  });
10
13
  export {
11
- i as useEditorStore
14
+ r as useEditorStore
12
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "1.0.0-beta.5e50654",
3
+ "version": "1.0.0-beta.5f47ded",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -1,2 +0,0 @@
1
- import type { TooltipOptions } from '../@types/generic';
2
- export declare const getTooltipOptions: (id: string, options?: Partial<Omit<TooltipOptions, "id">>) => TooltipOptions;
@@ -1,9 +0,0 @@
1
- const o = (i, t = {}) => ({
2
- id: i,
3
- dynamicPosition: t.dynamicPosition ?? !0,
4
- staticPosition: t.staticPosition ?? "bottom",
5
- iconStatus: t.iconStatus ?? !1
6
- });
7
- export {
8
- o as getTooltipOptions
9
- };