@useinsider/guido 1.0.0-beta.c2acdd4 → 1.0.0-beta.c798ebe

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 (80) hide show
  1. package/dist/@types/generic.d.ts +5 -0
  2. package/dist/components/Guido.vue.js +6 -6
  3. package/dist/components/Guido.vue2.js +36 -37
  4. package/dist/components/organisms/email-preview/PreviewContainer.vue.d.ts +2 -0
  5. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +19 -0
  6. package/dist/components/organisms/email-preview/PreviewContainer.vue2.js +19 -0
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +4 -0
  8. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +22 -0
  9. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +30 -0
  10. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.d.ts +2 -0
  11. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +19 -0
  12. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +29 -0
  13. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +2 -0
  14. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +22 -0
  15. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +30 -0
  16. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +2 -0
  17. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +17 -0
  18. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +20 -0
  19. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +2 -0
  20. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +18 -0
  21. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +22 -0
  22. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +4 -0
  23. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +19 -0
  24. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +23 -0
  25. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +4 -0
  26. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +20 -0
  27. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +21 -0
  28. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +2 -0
  29. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +17 -0
  30. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +22 -0
  31. package/dist/components/organisms/header/MiddleSlot.vue.js +9 -9
  32. package/dist/components/organisms/header/MiddleSlot.vue2.js +19 -14
  33. package/dist/components/organisms/header/RightSlot.vue.js +3 -3
  34. package/dist/components/organisms/header/RightSlot.vue2.js +19 -20
  35. package/dist/components/organisms/header/ViewOptions.vue.js +8 -8
  36. package/dist/components/organisms/header/ViewOptions.vue2.js +10 -8
  37. package/dist/components/wrappers/{ModalWrapper.vue.d.ts → WpModal.vue.d.ts} +37 -33
  38. package/dist/components/wrappers/WpModal.vue.js +27 -0
  39. package/dist/components/wrappers/WpModal.vue2.js +22 -0
  40. package/dist/composables/useActionsApi.d.ts +3 -2
  41. package/dist/composables/useActionsApi.js +49 -43
  42. package/dist/composables/useCodeEditorApi.d.ts +4 -0
  43. package/dist/composables/useCodeEditorApi.js +11 -0
  44. package/dist/composables/useConfig.d.ts +5 -0
  45. package/dist/composables/useConfig.js +11 -0
  46. package/dist/composables/useDebounce.d.ts +4 -0
  47. package/dist/composables/useDebounce.js +12 -0
  48. package/dist/composables/useHttp.js +21 -23
  49. package/dist/composables/usePreviewMode.d.ts +5 -0
  50. package/dist/composables/usePreviewMode.js +31 -0
  51. package/dist/composables/useResponsivePreview.d.ts +5 -0
  52. package/dist/composables/useResponsivePreview.js +86 -0
  53. package/dist/enums/defaults.js +9 -5
  54. package/dist/enums/preview.d.ts +13 -0
  55. package/dist/enums/preview.js +23 -0
  56. package/dist/guido.css +1 -1
  57. package/dist/static/assets/inbox-mockup.svg.js +4 -0
  58. package/dist/static/assets/phone-mockup.svg.js +4 -0
  59. package/dist/stores/editor.d.ts +0 -1
  60. package/dist/stores/editor.js +1 -2
  61. package/dist/stores/preview.d.ts +89 -0
  62. package/dist/stores/preview.js +63 -0
  63. package/package.json +3 -1
  64. package/dist/components/organisms/save-template/SaveTemplateModal.vue.d.ts +0 -16
  65. package/dist/components/organisms/save-template/SaveTemplateModal.vue.js +0 -20
  66. package/dist/components/organisms/save-template/SaveTemplateModal.vue2.js +0 -78
  67. package/dist/components/wrappers/ModalWrapper.vue.js +0 -19
  68. package/dist/components/wrappers/ModalWrapper.vue2.js +0 -43
  69. package/dist/composables/useSaveAsTemplate.d.ts +0 -7
  70. package/dist/composables/useSaveAsTemplate.js +0 -51
  71. package/dist/composables/useTemplateNameValidation.d.ts +0 -7
  72. package/dist/composables/useTemplateNameValidation.js +0 -33
  73. package/dist/mock/api/template-library.d.ts +0 -2
  74. package/dist/stores/template-categories.d.ts +0 -41
  75. package/dist/stores/template-categories.js +0 -91
  76. package/dist/utils/base64.d.ts +0 -2
  77. package/dist/utils/base64.js +0 -14
  78. package/dist/utils/generic.d.ts +0 -1
  79. package/dist/utils/generic.js +0 -7
  80. package/dist/utils/textUtil.d.ts +0 -2
@@ -0,0 +1,31 @@
1
+ import { useEditorStore as d } from "../stores/editor.js";
2
+ import { usePreviewStore as n } from "../stores/preview.js";
3
+ import { useActionsApi as m } from "./useActionsApi.js";
4
+ import { useCodeEditorApi as l } from "./useCodeEditorApi.js";
5
+ const M = () => {
6
+ const r = d(), e = n(), { closeCodeEditor: i } = l(), { getPreviewData: s } = m();
7
+ return {
8
+ closePreviewMode: () => {
9
+ e.isPreviewModeOpen = !1, e.resetState();
10
+ },
11
+ openPreviewMode: () => {
12
+ r.isCodeEditorOpen && i(), e.isPreviewModeOpen = !0;
13
+ },
14
+ loadPreviewData: async () => {
15
+ if (!(e.isLoading || e.isLoaded)) {
16
+ e.setLoading(!0);
17
+ try {
18
+ const { html: o, ampHtml: t, ampErrors: a } = await s();
19
+ e.setTemplateHtml(o || ""), e.setAmpHtml(t || ""), e.setAmpErrors(a || []), e.setEmailFormat(t ? "AMP" : "html"), e.setLoaded(!0);
20
+ } catch (o) {
21
+ console.error("Failed to load preview data:", o);
22
+ } finally {
23
+ e.setLoading(!1);
24
+ }
25
+ }
26
+ }
27
+ };
28
+ };
29
+ export {
30
+ M as usePreviewMode
31
+ };
@@ -0,0 +1,5 @@
1
+ export declare const useResponsivePreview: () => {
2
+ setupResponsivePreview: (iframe: HTMLIFrameElement) => void;
3
+ tearDownEmailResponsiveFit: (iframe: HTMLIFrameElement) => void;
4
+ hasResponsiveMetaViewport: (doc: Document) => boolean;
5
+ };
@@ -0,0 +1,86 @@
1
+ import { useDebounce as p } from "./useDebounce.js";
2
+ import { ResponsivePreviewRegex as c, ResponsivePreviewSelectors as v, ResponsivePreviewConfig as a } from "../enums/preview.js";
3
+ let i = null, l = null;
4
+ const { debounce: y } = p(), h = (t) => {
5
+ if (!t)
6
+ return null;
7
+ const e = t.match(c.TABLE_WIDTH);
8
+ if (!e)
9
+ return null;
10
+ const n = Number(e[1]);
11
+ return Number.isNaN(n) ? null : n;
12
+ }, w = (t) => Array.from(t.querySelectorAll("table[width]")).reduce((e, n) => {
13
+ const o = h(n.getAttribute("width"));
14
+ return o && o > e ? o : e;
15
+ }, 0), f = (t) => Array.from(t.querySelectorAll('[style*="width"]')).reduce((e, n) => {
16
+ const r = (n.getAttribute("style") || "").match(c.INLINE_WIDTH);
17
+ if (!r)
18
+ return e;
19
+ const s = Number(r[1]);
20
+ return !Number.isNaN(s) && s > e ? s : e;
21
+ }, 0), W = (t) => v.CONTAINERS.reduce((e, n) => {
22
+ const o = t.querySelector(n);
23
+ if (!o)
24
+ return e;
25
+ const r = Math.max(o.offsetWidth, o.scrollWidth);
26
+ return r > e ? r : e;
27
+ }, 0), E = (t) => {
28
+ const e = {
29
+ maxTableWidth: w(t),
30
+ maxInlineWidth: f(t),
31
+ maxContainerWidth: W(t)
32
+ }, { maxTableWidth: n, maxInlineWidth: o, maxContainerWidth: r } = e;
33
+ return Math.max(n, o, r) || a.DEFAULT_WIDTH;
34
+ }, b = (t) => {
35
+ const { documentElement: e, body: n } = t;
36
+ e.style.setProperty("overflow-x", "visible", "important"), n.style.setProperty("visibility", "visible", "important");
37
+ }, g = (t) => {
38
+ const { documentElement: e, body: n } = t;
39
+ e.style.removeProperty("transform"), e.style.removeProperty("transform-origin"), e.style.removeProperty("height"), n.style.removeProperty("overflow-x");
40
+ }, S = (t) => {
41
+ const { targetWidth: e, deviceWidth: n, minScale: o, maxScale: r } = t, s = n / e;
42
+ return Math.min(Math.max(s, o), r);
43
+ }, P = (t, e) => {
44
+ const n = E(t), o = S({
45
+ targetWidth: n,
46
+ deviceWidth: e,
47
+ minScale: a.MIN_SCALE,
48
+ maxScale: 1
49
+ }), { documentElement: r, body: s } = t;
50
+ r.style.setProperty("height", "100%", "important"), r.style.setProperty("transform", `scale(${o})`, "important"), r.style.setProperty("transform-origin", "top left", "important"), s.style.setProperty("overflow-x", "hidden", "important");
51
+ }, u = (t) => {
52
+ const e = t.querySelector('meta[name="viewport"]');
53
+ if (!e)
54
+ return !1;
55
+ const n = e.getAttribute("content") || "";
56
+ return c.META_VIEWPORT.test(n);
57
+ }, R = (t) => t.clientWidth || t.getBoundingClientRect().width || 375, d = (t) => {
58
+ const e = t.contentWindow;
59
+ l && e && e.removeEventListener("resize", l), i && window.removeEventListener("resize", i), l = null, i = null;
60
+ }, x = (t, e) => {
61
+ const n = t.contentWindow;
62
+ if (!n)
63
+ return;
64
+ d(t);
65
+ const o = () => y(e, a.RESIZE_DEBOUNCE_MS);
66
+ l = o, n.addEventListener("resize", l), i = o, window.addEventListener("resize", i);
67
+ }, M = () => ({
68
+ setupResponsivePreview: (n) => {
69
+ const o = n.contentDocument, r = n.contentWindow;
70
+ if (!o || !r)
71
+ return;
72
+ b(o);
73
+ const s = () => {
74
+ const m = R(n);
75
+ u(o) ? g(o) : P(o, m);
76
+ };
77
+ s(), x(n, s);
78
+ },
79
+ tearDownEmailResponsiveFit: (n) => {
80
+ d(n);
81
+ },
82
+ hasResponsiveMetaViewport: u
83
+ });
84
+ export {
85
+ M as useResponsivePreview
86
+ };
@@ -1,8 +1,12 @@
1
- const t = {
2
- translationsPath: "window.trans.en"
3
- }, e = "newsletter", n = "Guido User";
1
+ const e = {
2
+ translationsPath: "window.trans.en",
3
+ emailHeader: {
4
+ senderName: "",
5
+ subject: ""
6
+ }
7
+ }, t = "newsletter", n = "Guido User";
4
8
  export {
5
- t as DefaultGuidoConfig,
6
- e as DefaultProductType,
9
+ e as DefaultGuidoConfig,
10
+ t as DefaultProductType,
7
11
  n as DefaultUsername
8
12
  };
@@ -0,0 +1,13 @@
1
+ export declare const ResponsivePreviewConfig: {
2
+ DEFAULT_WIDTH: number;
3
+ MIN_SCALE: number;
4
+ RESIZE_DEBOUNCE_MS: number;
5
+ };
6
+ export declare const ResponsivePreviewRegex: {
7
+ INLINE_WIDTH: RegExp;
8
+ TABLE_WIDTH: RegExp;
9
+ META_VIEWPORT: RegExp;
10
+ };
11
+ export declare const ResponsivePreviewSelectors: {
12
+ CONTAINERS: string[];
13
+ };
@@ -0,0 +1,23 @@
1
+ const e = {
2
+ DEFAULT_WIDTH: 600,
3
+ MIN_SCALE: 0.2,
4
+ RESIZE_DEBOUNCE_MS: 100
5
+ }, i = {
6
+ INLINE_WIDTH: /width\s*:\s*(\d+(\.\d+)?)px/i,
7
+ TABLE_WIDTH: /^(\d+(\.\d+)?)(px)?$/i,
8
+ META_VIEWPORT: /width\s*=\s*device-width/i
9
+ }, n = {
10
+ CONTAINERS: [
11
+ ".wrapper",
12
+ ".container",
13
+ "#wrapper",
14
+ "#container",
15
+ "[data-email-container]",
16
+ '[role="presentation"]'
17
+ ]
18
+ };
19
+ export {
20
+ e as ResponsivePreviewConfig,
21
+ i as ResponsivePreviewRegex,
22
+ n as ResponsivePreviewSelectors
23
+ };
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-66fa3f35],.guido-editor__container[data-v-66fa3f35]{width:100%;height:calc(100vh - 75px)}
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-c4fe2637] .guido__view-option-selection-desktop svg,[data-v-c4fe2637] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-c4fe2637] .in-segments-wrapper__button_selected,[data-v-c4fe2637] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.guido-editor__wrapper[data-v-5fe1cbdf],.guido-editor__container[data-v-5fe1cbdf]{width:100%;height:calc(100vh - 75px)}.error-list[data-v-cfb613b7]{gap:16px}[data-v-bd212ce2] .in-progress-wrapper__progress p span:last-child{display:none!important}.desktop-preview-container[data-v-9c6e7ff0],[data-v-9c6e7ff0] .desktop-preview-container .in-container{min-height:720px!important;height:100%}.cropped-text[data-v-d3bb77b4]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@@ -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
+ };
@@ -2,5 +2,4 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"editor", {
2
2
  isCodeEditorOpen: boolean;
3
3
  isVersionHistoryOpen: boolean;
4
4
  editorVisualMode: string;
5
- isSaveTemplateModalOpen: boolean;
6
5
  }, {}, {}>;
@@ -3,8 +3,7 @@ const t = e("editor", {
3
3
  state: () => ({
4
4
  isCodeEditorOpen: !1,
5
5
  isVersionHistoryOpen: !1,
6
- editorVisualMode: "desktop",
7
- isSaveTemplateModalOpen: !1
6
+ editorVisualMode: "desktop"
8
7
  })
9
8
  });
10
9
  export {
@@ -0,0 +1,89 @@
1
+ export type EmailFormat = 'html' | 'AMP';
2
+ export interface PreviewState {
3
+ emailFormat: EmailFormat;
4
+ ampHtml: string;
5
+ ampErrors: string[];
6
+ templateHtml: string;
7
+ isLoading: boolean;
8
+ isLoaded: boolean;
9
+ isAMPErrorModalVisible: boolean;
10
+ isPreviewModeOpen: boolean;
11
+ }
12
+ export declare const usePreviewStore: import("pinia").StoreDefinition<"preview", PreviewState, {
13
+ isAMPModeEnabled: (state: {
14
+ emailFormat: EmailFormat;
15
+ ampHtml: string;
16
+ ampErrors: string[];
17
+ templateHtml: string;
18
+ isLoading: boolean;
19
+ isLoaded: boolean;
20
+ isAMPErrorModalVisible: boolean;
21
+ isPreviewModeOpen: boolean;
22
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
23
+ previewHtml: (state: {
24
+ emailFormat: EmailFormat;
25
+ ampHtml: string;
26
+ ampErrors: string[];
27
+ templateHtml: string;
28
+ isLoading: boolean;
29
+ isLoaded: boolean;
30
+ isAMPErrorModalVisible: boolean;
31
+ isPreviewModeOpen: boolean;
32
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => string;
33
+ hasAMP: (state: {
34
+ emailFormat: EmailFormat;
35
+ ampHtml: string;
36
+ ampErrors: string[];
37
+ templateHtml: string;
38
+ isLoading: boolean;
39
+ isLoaded: boolean;
40
+ isAMPErrorModalVisible: boolean;
41
+ isPreviewModeOpen: boolean;
42
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
43
+ hasAMPErrors: (state: {
44
+ emailFormat: EmailFormat;
45
+ ampHtml: string;
46
+ ampErrors: string[];
47
+ templateHtml: string;
48
+ isLoading: boolean;
49
+ isLoaded: boolean;
50
+ isAMPErrorModalVisible: boolean;
51
+ isPreviewModeOpen: boolean;
52
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
53
+ showAMPErrorButton: (state: {
54
+ emailFormat: EmailFormat;
55
+ ampHtml: string;
56
+ ampErrors: string[];
57
+ templateHtml: string;
58
+ isLoading: boolean;
59
+ isLoaded: boolean;
60
+ isAMPErrorModalVisible: boolean;
61
+ isPreviewModeOpen: boolean;
62
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
63
+ isAMPResponsive: (state: {
64
+ emailFormat: EmailFormat;
65
+ ampHtml: string;
66
+ ampErrors: string[];
67
+ templateHtml: string;
68
+ isLoading: boolean;
69
+ isLoaded: boolean;
70
+ isAMPErrorModalVisible: boolean;
71
+ isPreviewModeOpen: boolean;
72
+ } & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
73
+ }, {
74
+ updateAMPData(ampData: {
75
+ ampHtml?: string;
76
+ ampErrors?: string[];
77
+ }): void;
78
+ setEmailFormat(format: EmailFormat): void;
79
+ setTemplateHtml(html: string): void;
80
+ setAmpHtml(html: string): void;
81
+ setAmpErrors(errors: string[]): void;
82
+ setLoading(loading: boolean): void;
83
+ setLoaded(loaded: boolean): void;
84
+ resetState(): void;
85
+ closeErrorModal(): void;
86
+ openErrorModal(): void;
87
+ openPreviewMode(): void;
88
+ closePreviewMode(): void;
89
+ }>;
@@ -0,0 +1,63 @@
1
+ import { defineStore as r } from "pinia";
2
+ const t = () => ({
3
+ emailFormat: "html",
4
+ ampHtml: "",
5
+ ampErrors: [],
6
+ templateHtml: "",
7
+ isLoading: !1,
8
+ isLoaded: !1,
9
+ isAMPErrorModalVisible: !1,
10
+ isPreviewModeOpen: !1
11
+ }), s = r("preview", {
12
+ state: () => t(),
13
+ getters: {
14
+ isAMPModeEnabled: (e) => e.emailFormat === "AMP",
15
+ previewHtml: (e) => e.emailFormat === "AMP" ? e.ampHtml : e.templateHtml,
16
+ hasAMP: (e) => !!e.ampHtml,
17
+ hasAMPErrors: (e) => e.ampErrors.length > 0,
18
+ showAMPErrorButton: (e) => e.emailFormat === "AMP" && e.ampErrors.length > 0,
19
+ isAMPResponsive: (e) => e.emailFormat === "AMP" && e.ampHtml.includes("@media") && e.ampHtml.includes(".adapt-img")
20
+ },
21
+ actions: {
22
+ updateAMPData(e) {
23
+ this.ampHtml = e.ampHtml ?? "", this.ampErrors = e.ampErrors ?? [], this.emailFormat = e.ampHtml ? "AMP" : "html";
24
+ },
25
+ setEmailFormat(e) {
26
+ this.emailFormat = e;
27
+ },
28
+ setTemplateHtml(e) {
29
+ this.templateHtml = e;
30
+ },
31
+ setAmpHtml(e) {
32
+ this.ampHtml = e;
33
+ },
34
+ setAmpErrors(e) {
35
+ this.ampErrors = e;
36
+ },
37
+ setLoading(e) {
38
+ this.isLoading = e;
39
+ },
40
+ setLoaded(e) {
41
+ this.isLoaded = e;
42
+ },
43
+ resetState() {
44
+ const e = t();
45
+ this.$patch(e);
46
+ },
47
+ closeErrorModal() {
48
+ this.isAMPErrorModalVisible = !1;
49
+ },
50
+ openErrorModal() {
51
+ this.isAMPErrorModalVisible = !0;
52
+ },
53
+ openPreviewMode() {
54
+ this.isPreviewModeOpen = !0;
55
+ },
56
+ closePreviewMode() {
57
+ this.isPreviewModeOpen = !1;
58
+ }
59
+ }
60
+ });
61
+ export {
62
+ s as usePreviewStore
63
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "1.0.0-beta.c2acdd4",
3
+ "version": "1.0.0-beta.c798ebe",
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",
@@ -31,6 +31,8 @@
31
31
  "dependencies": {
32
32
  "@stripoinc/ui-editor-extensions": "^1.0.6",
33
33
  "@useinsider/design-system-vue": "0.14.8",
34
+ "@vuelidate/core": "2.0.3",
35
+ "@vuelidate/validators": "2.0.4",
34
36
  "lodash-es": "4.17.21",
35
37
  "pinia": "2.3.1",
36
38
  "vite": "6.3.5",
@@ -1,16 +0,0 @@
1
- interface Props {
2
- isOpen: boolean;
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
- };
@@ -1,20 +0,0 @@
1
- import s from "./SaveTemplateModal.vue2.js";
2
- import r from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var o = function() {
4
- var a = this, t = a._self._c, e = a._self._setupProxy;
5
- return t(e.ModalWrapper, { attrs: { "cancel-button-text": e.trans("products.cancel"), description: e.trans("newsletter.save-template-description"), "is-open": e.props.isOpen, "primary-button-loading": e.saveState.saving, "primary-button-text": e.trans(e.saveState.saving ? "newsletter.saving" : "products.save"), title: e.trans("products.save-template") }, on: { cancel: e.closeModal, close: e.closeModal, save: e.saveTemplate } }, [t(e.InBasicTextInput, { staticClass: "mb-5 w-1", attrs: { id: "template-name-input", name: "templateName", "character-counter-status": !1, "disabled-status": e.saveState.saving, "label-text": e.trans("products.template-name"), "placeholder-text": e.trans("newsletter.enter-template-name"), "state-message": e.getValidationMessage(), states: e.hasError() ? "error" : "", "tooltip-status": !1, value: e.templateName }, on: { input: e.templateNameInputHandler } }), t(e.InMultiSelect, { staticClass: "template-category-dropdown mb-5 w-1", attrs: { "create-option-status": "", "search-status": "", "button-status": !1, "character-limit-validation-text": e.trans("validation-v2.duration-value", {
6
- min: 1,
7
- max: e.templateCategorySearchInputLimit
8
- }), "create-button-label": e.trans("products.create-new-category"), "disabled-status": e.saveState.saving, "label-text": e.trans("products.template-category"), "loading-state": e.categoriesStore.loading || e.categoriesStore.loadingCreate, "max-character-limit": e.templateCategorySearchInputLimit, options: e.categoriesStore.mappedCategories, "placeholder-text": e.trans("products.select-template-category"), value: e.categoriesStore.selectedCategories }, on: { addOption: e.addOption, change: e.categoriesStore.setSelectedCategories, resetAllOptions: e.categoriesStore.setSelectedCategories, selectAllOptions: e.categoriesStore.setSelectedCategories } })], 1);
9
- }, n = [], l = /* @__PURE__ */ r(
10
- s,
11
- o,
12
- n,
13
- !1,
14
- null,
15
- null
16
- );
17
- const d = l.exports;
18
- export {
19
- d as default
20
- };
@@ -1,78 +0,0 @@
1
- import { defineComponent as b, ref as u, computed as A, watch as H } from "vue";
2
- import L from "../../wrappers/ModalWrapper.vue.js";
3
- import { useActionsApi as N } from "../../../composables/useActionsApi.js";
4
- import { useToaster as V } from "../../../composables/useToaster.js";
5
- import { useTranslations as j } from "../../../composables/useTranslations.js";
6
- import { useTemplateCategoriesStore as x } from "../../../stores/template-categories.js";
7
- import { InMultiSelect as B, InBasicTextInput as P } from "@useinsider/design-system-vue";
8
- import { useSaveAsTemplate as E } from "../../../composables/useSaveAsTemplate.js";
9
- import { useTemplateNameValidation as R } from "../../../composables/useTemplateNameValidation.js";
10
- const U = /* @__PURE__ */ b({
11
- __name: "SaveTemplateModal",
12
- props: {
13
- isOpen: { type: Boolean }
14
- },
15
- emits: ["close"],
16
- setup(S, { emit: p }) {
17
- const v = S, n = j(), { showToaster: c } = V(), { getRawTemplateData: f } = N(), a = x(), {
18
- state: t,
19
- saveTemplate: d
20
- } = E(), {
21
- templateName: s,
22
- getValidationMessage: I,
23
- hasError: w,
24
- validateInputs: g,
25
- resetValidation: i
26
- } = R(), l = u(!1), o = u(""), r = u(""), C = 40, y = A(() => t.saving || l.value || a.loading || a.loadingCreate), m = () => {
27
- s.value = "", o.value = "", r.value = "", a.resetSelection(), i();
28
- }, M = (e) => {
29
- s.value = e, i();
30
- }, T = () => {
31
- m(), p("close");
32
- }, _ = async () => {
33
- if (!y.value) {
34
- if (t.saving = !0, !await g()) {
35
- t.saving = !1;
36
- return;
37
- }
38
- try {
39
- await d({
40
- name: s.value,
41
- htmlContent: o.value,
42
- categoryIds: a.getSelectedCategoryIds,
43
- css: r.value
44
- }) && (t.saving = !1, c({
45
- message: n("journey-builder.template-saved-successfully", { name: s.value }),
46
- type: "success"
47
- }), T());
48
- } catch {
49
- t.saving = !1, c({
50
- message: n("journey-builder.template-save-error", { name: s.value }),
51
- type: "error"
52
- });
53
- }
54
- }
55
- }, h = async () => {
56
- l.value = !0;
57
- try {
58
- const { html: e, css: O } = await f();
59
- r.value = O || "", o.value = e || "";
60
- } catch {
61
- o.value = "", r.value = "";
62
- } finally {
63
- l.value = !1;
64
- }
65
- }, D = async (e) => {
66
- await a.createCategory(e);
67
- };
68
- return H(() => v.isOpen, async (e) => {
69
- e ? await Promise.all([
70
- h(),
71
- a.fetchCategories()
72
- ]) : m();
73
- }), { __sfc: !0, props: v, emit: p, trans: n, showToaster: c, getRawTemplateData: f, categoriesStore: a, saveState: t, saveTemplateToLibrary: d, templateName: s, getValidationMessage: I, hasError: w, validateInputs: g, resetValidation: i, isLoadingHtml: l, htmlData: o, cssData: r, templateCategorySearchInputLimit: C, isOperationInProgress: y, resetModalState: m, templateNameInputHandler: M, closeModal: T, saveTemplate: _, fetchHtmlData: h, addOption: D, ModalWrapper: L, InBasicTextInput: P, InMultiSelect: B };
74
- }
75
- });
76
- export {
77
- U as default
78
- };
@@ -1,19 +0,0 @@
1
- import r from "./ModalWrapper.vue2.js";
2
- import o from "../../_virtual/_plugin-vue2_normalizer.js";
3
- var s = function() {
4
- var t = this, n = t._self._c, e = t._self._setupProxy;
5
- return n(e.InDrawer, { attrs: { id: "modal-wrapper", "description-text": t.description, "footer-button-group-options": e.drawerFooterOptions, size: t.size, status: t.isOpen, "title-text": t.title }, on: { cancelOrBackButtonEvent: e.handleCancel, onCloseEvent: e.handleClose, primaryButtonEvent: e.handleSave }, scopedSlots: t._u([{ key: "contentSlot", fn: function() {
6
- return [n("div", { staticClass: "modal-content-wrapper", class: t.className }, [t._t("default")], 2)];
7
- }, proxy: !0 }], null, !0) });
8
- }, a = [], l = /* @__PURE__ */ o(
9
- r,
10
- s,
11
- a,
12
- !1,
13
- null,
14
- null
15
- );
16
- const u = l.exports;
17
- export {
18
- u as default
19
- };
@@ -1,43 +0,0 @@
1
- import { defineComponent as o, computed as l } from "vue";
2
- import { InDrawer as s } from "@useinsider/design-system-vue";
3
- const i = /* @__PURE__ */ o({
4
- __name: "ModalWrapper",
5
- props: {
6
- isOpen: { type: Boolean },
7
- title: null,
8
- description: { default: "" },
9
- size: { default: "small" },
10
- primaryButtonText: { default: "" },
11
- primaryButtonDisabled: { type: Boolean, default: !1 },
12
- primaryButtonLoading: { type: Boolean, default: !1 },
13
- cancelButtonText: { default: "" },
14
- showCancelButton: { type: Boolean, default: !0 },
15
- className: { default: "" }
16
- },
17
- emits: ["close", "save", "cancel"],
18
- setup(a, { emit: t }) {
19
- const e = a, n = l(() => ({
20
- primaryButton: {
21
- styling: "solid",
22
- type: "primary",
23
- labelText: e.primaryButtonText,
24
- disabledStatus: e.primaryButtonDisabled || e.primaryButtonLoading
25
- },
26
- cancelOrBackButton: e.showCancelButton ? {
27
- type: "secondary",
28
- styling: "ghost",
29
- labelText: e.cancelButtonText
30
- } : void 0
31
- }));
32
- return { __sfc: !0, props: e, emit: t, drawerFooterOptions: n, handleClose: () => {
33
- t("close");
34
- }, handleSave: () => {
35
- t("save");
36
- }, handleCancel: () => {
37
- t("cancel");
38
- }, InDrawer: s };
39
- }
40
- });
41
- export {
42
- i as default
43
- };
@@ -1,7 +0,0 @@
1
- import type { SaveTemplatePayload } from '@@/Types/save-as-template';
2
- export declare const useSaveAsTemplate: () => {
3
- state: {
4
- saving: boolean;
5
- };
6
- saveTemplate: (data: SaveTemplatePayload) => Promise<boolean>;
7
- };