@useinsider/guido 1.0.0-beta.b7d755a → 1.0.0-beta.c214e7f

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 (129) hide show
  1. package/dist/@types/generic.d.ts +0 -5
  2. package/dist/App.vue.d.ts +1 -1
  3. package/dist/components/Guido.vue.d.ts +2 -6
  4. package/dist/components/Guido.vue.js +8 -8
  5. package/dist/components/Guido.vue2.js +26 -34
  6. package/dist/components/organisms/base/ModalWrapper.vue.d.ts +72 -0
  7. package/dist/components/organisms/base/ModalWrapper.vue.js +19 -0
  8. package/dist/components/organisms/base/ModalWrapper.vue2.js +43 -0
  9. package/dist/components/organisms/header/RightSlot.vue.d.ts +1 -1
  10. package/dist/components/organisms/header/RightSlot.vue.js +1 -1
  11. package/dist/components/organisms/header/RightSlot.vue2.js +12 -10
  12. package/dist/components/organisms/header/ViewOptions.vue.d.ts +1 -1
  13. package/dist/components/organisms/header/version-history/RestoreButton.vue.d.ts +1 -1
  14. package/dist/components/organisms/header/version-history/VersionHistoryItem.vue.d.ts +1 -1
  15. package/dist/components/organisms/header/version-history/VersionHistoryItem.vue.js +1 -1
  16. package/dist/components/organisms/header/version-history/ViewOptions.vue.d.ts +1 -1
  17. package/dist/components/organisms/save-template/SaveTemplateModal.vue.d.ts +16 -0
  18. package/dist/components/organisms/save-template/SaveTemplateModal.vue.js +22 -0
  19. package/dist/components/organisms/save-template/SaveTemplateModal.vue2.js +86 -0
  20. package/dist/composables/useActionsApi.d.ts +0 -1
  21. package/dist/composables/useActionsApi.js +12 -14
  22. package/dist/composables/useSaveAsTemplate.d.ts +17 -0
  23. package/dist/composables/useSaveAsTemplate.js +44 -0
  24. package/dist/composables/useStripo.js +28 -39
  25. package/dist/composables/useTemplateCategories.d.ts +35 -0
  26. package/dist/composables/useTemplateCategories.js +78 -0
  27. package/dist/composables/useTemplateNameValidation.d.ts +13 -0
  28. package/dist/composables/useTemplateNameValidation.js +57 -0
  29. package/dist/guido.css +1 -1
  30. package/dist/mock/api/template-library.d.ts +2 -0
  31. package/dist/stores/editor.d.ts +1 -0
  32. package/dist/stores/editor.js +2 -1
  33. package/dist/utils/base64.d.ts +1 -0
  34. package/dist/utils/base64.js +14 -0
  35. package/package.json +4 -5
  36. package/dist/_virtual/AddCustomFont.js +0 -4
  37. package/dist/_virtual/AiAssistantValueType.js +0 -4
  38. package/dist/_virtual/BackgroundColorBuiltInControl.js +0 -4
  39. package/dist/_virtual/BackgroundImageBuiltInControl.js +0 -4
  40. package/dist/_virtual/Block.js +0 -4
  41. package/dist/_virtual/BlockAttributes.js +0 -4
  42. package/dist/_virtual/BlockCompositionType.js +0 -4
  43. package/dist/_virtual/BlockPaddingsBuiltInControl.js +0 -4
  44. package/dist/_virtual/BlockRenderer.js +0 -4
  45. package/dist/_virtual/BlockType.js +0 -4
  46. package/dist/_virtual/BlocksPanel.js +0 -4
  47. package/dist/_virtual/BuiltInControl.js +0 -4
  48. package/dist/_virtual/BuiltInControlTypes.js +0 -4
  49. package/dist/_virtual/ButtonBorderBuiltInControl.js +0 -4
  50. package/dist/_virtual/ButtonColorBuiltInControl.js +0 -4
  51. package/dist/_virtual/ButtonFontColorBuiltInControl.js +0 -4
  52. package/dist/_virtual/ButtonInternalIndentsBuiltInControl.js +0 -4
  53. package/dist/_virtual/ButtonTextBuiltInControl.js +0 -4
  54. package/dist/_virtual/ContextAction.js +0 -4
  55. package/dist/_virtual/ContextActionType.js +0 -4
  56. package/dist/_virtual/Control.js +0 -4
  57. package/dist/_virtual/EditorStatePropertyType.js +0 -4
  58. package/dist/_virtual/Extension.js +0 -4
  59. package/dist/_virtual/ExtensionBuilder.js +0 -4
  60. package/dist/_virtual/FontFamilyBuiltInControl.js +0 -4
  61. package/dist/_virtual/LinkColorBuiltInControl.js +0 -4
  62. package/dist/_virtual/ModificationDescription.js +0 -4
  63. package/dist/_virtual/PanelPosition.js +0 -4
  64. package/dist/_virtual/PreviewDeviceMode.js +0 -4
  65. package/dist/_virtual/SettingsPanelRegistry.js +0 -4
  66. package/dist/_virtual/SettingsPanelTab.js +0 -4
  67. package/dist/_virtual/SettingsTab.js +0 -4
  68. package/dist/_virtual/StructureBorderBuiltInControl.js +0 -4
  69. package/dist/_virtual/StructurePaddingsBuiltInControl.js +0 -4
  70. package/dist/_virtual/TextColorBuiltInControl.js +0 -4
  71. package/dist/_virtual/TextLineSpacingBuiltInControl.js +0 -4
  72. package/dist/_virtual/TextSizeBuiltInControl.js +0 -4
  73. package/dist/_virtual/TextStyleBuiltInControl.js +0 -4
  74. package/dist/_virtual/UIElement.js +0 -4
  75. package/dist/_virtual/UIElementTagRegistry.js +0 -4
  76. package/dist/_virtual/UIElementType.js +0 -4
  77. package/dist/_virtual/UIElementsAttributes.js +0 -4
  78. package/dist/_virtual/index.js +0 -5
  79. package/dist/_virtual/index2.js +0 -4
  80. package/dist/extensions/DynamicContent/dynamic-content-modal.d.ts +0 -6
  81. package/dist/extensions/DynamicContent/dynamic-content-modal.js +0 -27
  82. package/dist/extensions/DynamicContent/dynamic-content.css.js +0 -24
  83. package/dist/extensions/DynamicContent/dynamic-content.d.ts +0 -16
  84. package/dist/extensions/DynamicContent/dynamic-content.js +0 -63
  85. package/dist/extensions/DynamicContent/extension.d.ts +0 -2
  86. package/dist/extensions/DynamicContent/extension.js +0 -11
  87. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +0 -51
  88. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +0 -52
  89. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +0 -41
  90. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlockRenderer.js +0 -18
  91. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/BlocksPanel.js +0 -32
  92. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/ContextAction.js +0 -18
  93. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AddCustomFont.js +0 -8
  94. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +0 -13
  95. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockAttributes.js +0 -34
  96. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +0 -13
  97. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +0 -13
  98. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +0 -104
  99. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +0 -13
  100. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +0 -13
  101. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +0 -13
  102. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +0 -13
  103. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +0 -13
  104. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +0 -13
  105. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js +0 -45
  106. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundColorBuiltInControl.js +0 -43
  107. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BackgroundImageBuiltInControl.js +0 -46
  108. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BlockPaddingsBuiltInControl.js +0 -44
  109. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/BuiltInControl.js +0 -22
  110. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonBorderBuiltInControl.js +0 -46
  111. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonColorBuiltInControl.js +0 -46
  112. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonFontColorBuiltInControl.js +0 -45
  113. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonInternalIndentsBuiltInControl.js +0 -45
  114. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/ButtonTextBuiltInControl.js +0 -45
  115. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +0 -20
  116. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/FontFamilyBuiltInControl.js +0 -43
  117. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/LinkColorBuiltInControl.js +0 -45
  118. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +0 -18
  119. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +0 -32
  120. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructureBorderBuiltInControl.js +0 -46
  121. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/StructurePaddingsBuiltInControl.js +0 -44
  122. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextColorBuiltInControl.js +0 -43
  123. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextLineSpacingBuiltInControl.js +0 -43
  124. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextSizeBuiltInControl.js +0 -45
  125. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/TextStyleBuiltInControl.js +0 -43
  126. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/index.js +0 -266
  127. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +0 -26
  128. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +0 -22
  129. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +0 -18
@@ -1,8 +1,3 @@
1
1
  export type GuidoConfig = {
2
2
  translationsPath: string;
3
3
  };
4
- export type DynamicContent = {
5
- value: string;
6
- text: string;
7
- fallback?: string;
8
- };
package/dist/App.vue.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import '../node_modules/@useinsider/design-system-vue/dist/design-system-vue.css';
2
- 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
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
3
3
  export default _default;
@@ -1,4 +1,4 @@
1
- import type { DynamicContent, GuidoConfig } from '@@/Types/generic';
1
+ import type { GuidoConfig } from '@@/Types/generic';
2
2
  type __VLS_Props = {
3
3
  emailId: string;
4
4
  userId: string;
@@ -7,11 +7,7 @@ type __VLS_Props = {
7
7
  username?: string;
8
8
  guidoConfig: GuidoConfig;
9
9
  };
10
- declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
11
- applyDynamicContent: (data: DynamicContent) => void;
12
- }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
13
- "dynamic-content:open": (detail: DynamicContent | null) => void;
14
- }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
10
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
15
11
  export default _default;
16
12
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
17
13
  type __VLS_TypePropsToOption<T> = {
@@ -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 a 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 t = this, e = t._self._c, r = t._self._setupProxy;
6
+ return e("div", { staticClass: "guido-editor__wrapper" }, [e(r.HeaderWrapper), e("div", { staticClass: "guido-editor__container", attrs: { id: "guido-editor" } }), e(r.SaveTemplateModal, { attrs: { "is-open": r.editorStore.isSaveTemplateModalOpen }, on: { close: r.handleCloseSaveTemplateModal } })], 1);
7
+ }, i = [], n = /* @__PURE__ */ a(
8
8
  o,
9
9
  s,
10
- _,
10
+ i,
11
11
  !1,
12
12
  null,
13
- "1d1d2b7c"
13
+ "69c35c60"
14
14
  );
15
- const f = a.exports;
15
+ const c = n.exports;
16
16
  export {
17
- f as default
17
+ c as default
18
18
  };
@@ -1,10 +1,12 @@
1
- import { defineComponent as C, onMounted as w } from "vue";
2
- import { usePartner as _ } from "../composables/usePartner.js";
3
- import { useStripo as T } from "../composables/useStripo.js";
4
- import { useTemplates as b } from "../composables/useTemplates.js";
5
- import { DefaultUsername as h, DefaultGuidoConfig as v } from "../enums/defaults.js";
6
- import D from "./organisms/header/HeaderWrapper.vue.js";
7
- const x = /* @__PURE__ */ C({
1
+ import { defineComponent as g, onMounted as T } from "vue";
2
+ import { usePartner as S } from "../composables/usePartner.js";
3
+ import { useStripo as C } from "../composables/useStripo.js";
4
+ import { useTemplates as _ } from "../composables/useTemplates.js";
5
+ import { DefaultUsername as y, DefaultGuidoConfig as w } from "../enums/defaults.js";
6
+ import I from "./organisms/header/HeaderWrapper.vue.js";
7
+ import M from "./organisms/save-template/SaveTemplateModal.vue.js";
8
+ import { useEditorStore as P } from "../stores/editor.js";
9
+ const F = /* @__PURE__ */ g({
8
10
  __name: "Guido",
9
11
  props: {
10
12
  emailId: null,
@@ -14,42 +16,32 @@ const x = /* @__PURE__ */ C({
14
16
  username: null,
15
17
  guidoConfig: null
16
18
  },
17
- emits: ["dynamic-content:open"],
18
- setup(g, { expose: y, emit: n }) {
19
- const o = g, { getPartnerName: t, getProductType: r } = _(), {
20
- emailId: i,
21
- userId: a,
22
- guidoConfig: c,
23
- partnerName: s = t(),
24
- productType: u = r(),
25
- username: d = h
19
+ setup(f) {
20
+ const o = f, { getPartnerName: t, getProductType: r } = S(), {
21
+ emailId: a,
22
+ userId: n,
23
+ guidoConfig: i,
24
+ partnerName: l = t(),
25
+ productType: m = r(),
26
+ username: p = y
26
27
  } = o;
27
28
  window.GuidoConfig = {
28
- ...v,
29
- ...c
29
+ ...w,
30
+ ...i
30
31
  };
31
- const { initPlugin: m } = T({ emailId: i, userId: a, username: d, partnerName: s, productType: u }), { getDefaultTemplate: p } = b(), l = (e) => {
32
- console.debug("dynamic-content:close", e), document.dispatchEvent(new CustomEvent("dynamic-content:close", {
33
- detail: e
34
- }));
32
+ const { initPlugin: u } = C({ emailId: a, userId: n, username: p, partnerName: l, productType: m }), { getDefaultTemplate: s } = _(), d = P(), c = () => {
33
+ d.isSaveTemplateModalOpen = !1;
35
34
  };
36
- return w(async () => {
37
- console.debug("Guido says happy coding 🎉"), console.debug("🚗 Ka-Chow");
35
+ return T(async () => {
38
36
  try {
39
- const e = await p();
40
- await m(e);
37
+ const e = await s();
38
+ await u(e);
41
39
  } catch (e) {
42
40
  console.error("Failed to initialize Stripo editor:", e);
43
41
  }
44
- document.addEventListener("dynamic-content:open", (e) => {
45
- const f = e;
46
- console.debug("dynamic-content:open", f.detail), n("dynamic-content:open", f.detail);
47
- });
48
- }), y({
49
- applyDynamicContent: l
50
- }), { __sfc: !0, props: o, getPartnerName: t, getProductType: r, emailId: i, userId: a, guidoConfig: c, partnerName: s, productType: u, username: d, emit: n, initPlugin: m, getDefaultTemplate: p, applyDynamicContent: l, HeaderWrapper: D };
42
+ }), { __sfc: !0, props: o, getPartnerName: t, getProductType: r, emailId: a, userId: n, guidoConfig: i, partnerName: l, productType: m, username: p, initPlugin: u, getDefaultTemplate: s, editorStore: d, handleCloseSaveTemplateModal: c, HeaderWrapper: I, SaveTemplateModal: M };
51
43
  }
52
44
  });
53
45
  export {
54
- x as default
46
+ F as default
55
47
  };
@@ -0,0 +1,72 @@
1
+ interface ModalWrapperProps {
2
+ isOpen: boolean;
3
+ title: string;
4
+ description?: string;
5
+ size?: 'small' | 'medium' | 'large';
6
+ primaryButtonText?: string;
7
+ primaryButtonDisabled?: boolean;
8
+ primaryButtonLoading?: boolean;
9
+ cancelButtonText?: string;
10
+ showCancelButton?: boolean;
11
+ className?: string;
12
+ }
13
+ declare var __VLS_12: {};
14
+ type __VLS_Slots = {} & {
15
+ default?: (props: typeof __VLS_12) => any;
16
+ };
17
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<ModalWrapperProps>, {
18
+ description: string;
19
+ size: string;
20
+ primaryButtonText: string;
21
+ primaryButtonDisabled: boolean;
22
+ primaryButtonLoading: boolean;
23
+ cancelButtonText: string;
24
+ showCancelButton: boolean;
25
+ className: string;
26
+ }>, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {
27
+ close: () => void;
28
+ save: () => void;
29
+ cancel: () => void;
30
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ModalWrapperProps>, {
31
+ description: string;
32
+ size: string;
33
+ primaryButtonText: string;
34
+ primaryButtonDisabled: boolean;
35
+ primaryButtonLoading: boolean;
36
+ cancelButtonText: string;
37
+ showCancelButton: boolean;
38
+ className: string;
39
+ }>>>, {
40
+ className: string;
41
+ size: "small" | "medium" | "large";
42
+ description: string;
43
+ primaryButtonText: string;
44
+ primaryButtonDisabled: boolean;
45
+ primaryButtonLoading: boolean;
46
+ cancelButtonText: string;
47
+ showCancelButton: boolean;
48
+ }>;
49
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
50
+ export default _default;
51
+ type __VLS_WithDefaults<P, D> = {
52
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
53
+ default: D[K];
54
+ }> : P[K];
55
+ };
56
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
57
+ type __VLS_TypePropsToOption<T> = {
58
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
59
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
60
+ } : {
61
+ type: import('vue').PropType<T[K]>;
62
+ required: true;
63
+ };
64
+ };
65
+ type __VLS_WithSlots<T, S> = T & {
66
+ new (): {
67
+ $scopedSlots: S;
68
+ };
69
+ };
70
+ type __VLS_PrettifyLocal<T> = {
71
+ [K in keyof T]: T[K];
72
+ } & {};
@@ -0,0 +1,19 @@
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
+ };
@@ -0,0 +1,43 @@
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
+ disabled: 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,2 +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<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
2
  export default _default;
@@ -2,7 +2,7 @@ import o from "./RightSlot.vue2.js";
2
2
  import i from "../../../_virtual/_plugin-vue2_normalizer.js";
3
3
  var n = function() {
4
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", "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 } })], 1);
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 }, 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 }, on: { click: t.handleSaveAsTemplate } }), 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 } })], 1);
6
6
  }, r = [], a = /* @__PURE__ */ i(
7
7
  o,
8
8
  n,
@@ -1,21 +1,23 @@
1
1
  import { defineComponent as s } from "vue";
2
- import { useExport as i } from "../../../composables/useExport.js";
3
- import { useVersionHistoryApi as n } from "../../../composables/useVersionHistoryApi.js";
2
+ import { useExport as n } from "../../../composables/useExport.js";
3
+ import { useVersionHistoryApi as i } from "../../../composables/useVersionHistoryApi.js";
4
4
  import { useEditorStore as p } from "../../../stores/editor.js";
5
5
  import { InButtonV2 as m } from "@useinsider/design-system-vue";
6
- const d = /* @__PURE__ */ s({
6
+ const H = /* @__PURE__ */ s({
7
7
  __name: "RightSlot",
8
- setup(f) {
9
- const { exportHtml: e } = i(), { openVersionHistory: o, closeVersionHistory: r } = n(), t = p();
10
- return { __sfc: !0, exportHtml: e, openVersionHistory: o, closeVersionHistory: r, editorStore: t, handleVersionHistory: () => {
11
- if (t.isVersionHistoryOpen) {
12
- r();
8
+ setup(a) {
9
+ const { exportHtml: r } = n(), { openVersionHistory: e, closeVersionHistory: t } = i(), o = p();
10
+ return { __sfc: !0, exportHtml: r, openVersionHistory: e, closeVersionHistory: t, editorStore: o, handleVersionHistory: () => {
11
+ if (o.isVersionHistoryOpen) {
12
+ t();
13
13
  return;
14
14
  }
15
- o();
15
+ e();
16
+ }, handleSaveAsTemplate: async () => {
17
+ o.isSaveTemplateModalOpen = !0;
16
18
  }, InButtonV2: m };
17
19
  }
18
20
  });
19
21
  export {
20
- d as default
22
+ H as default
21
23
  };
@@ -1,2 +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<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
2
  export default _default;
@@ -1,2 +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<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
2
  export default _default;
@@ -3,7 +3,7 @@ type __VLS_Props = {
3
3
  date: number;
4
4
  textAlign: string;
5
5
  };
6
- declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
6
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
7
7
  export default _default;
8
8
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
9
9
  type __VLS_TypePropsToOption<T> = {
@@ -10,7 +10,7 @@ var i = function() {
10
10
  a,
11
11
  !1,
12
12
  null,
13
- "ee4b9c3f"
13
+ "0e2ff42d"
14
14
  );
15
15
  const d = n.exports;
16
16
  export {
@@ -1,2 +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<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
2
  export default _default;
@@ -0,0 +1,16 @@
1
+ interface TemplateModalProps {
2
+ isOpen: boolean;
3
+ }
4
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<TemplateModalProps>, {}, {}, {}, {}, import("vue/types/v3-component-options").ComponentOptionsMixin, import("vue/types/v3-component-options").ComponentOptionsMixin, {
5
+ close: () => void;
6
+ }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<TemplateModalProps>>>, {}>;
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 s from "./SaveTemplateModal.vue2.js";
2
+ import l from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var n = function() {
4
+ var r = this, e = r._self._c, t = r._self._setupProxy;
5
+ return e(t.ModalWrapper, { attrs: { "cancel-button-text": t.trans("products.cancel"), description: t.trans("newsletter.save-template-description"), "is-open": t.props.isOpen, "primary-button-loading": t.saveState.saving || t.isLoadingHtml, "primary-button-text": t.trans("products.save"), title: t.trans("products.save-template") }, on: { cancel: t.closeModal, close: t.closeModal, save: t.saveTemplate } }, [e(t.InTextInput, { staticClass: "mb-5 w-1", attrs: { id: "template-name-input", "with-label": "", name: "templateName", invalid: !!t.validationError, "invalid-message": t.validationError, label: t.trans("products.template-name"), placeholder: t.trans("newsletter.enter-template-name") }, model: { value: t.templateNameInput, callback: function(a) {
6
+ t.templateNameInput = typeof a == "string" ? a.trim() : a;
7
+ }, expression: "templateNameInput" } }), e(t.InMultiSelect, { staticClass: "template-category-dropdown mb-5 w-1", attrs: { "create-option-status": "", "search-status": "", "button-status": !1, "character-limit-validation-text": t.trans("validation-v2.duration-value", {
8
+ min: 1,
9
+ max: t.templateCategorySearchInputLimit
10
+ }), "create-button-label": t.trans("products.create-new-category"), "label-text": t.trans("products.template-category"), "loading-state": t.categoriesData.loading || t.categoriesData.loadingCreate, "max-character-limit": t.templateCategorySearchInputLimit, options: t.categoriesData.mappedCategories, "placeholder-text": t.trans("products.select-template-category"), value: t.categoriesData.selectedCategories }, on: { addOption: t.addOption, change: t.setSelectedCategories, resetAllOptions: t.setSelectedCategories, selectAllOptions: t.setSelectedCategories } })], 1);
11
+ }, o = [], i = /* @__PURE__ */ l(
12
+ s,
13
+ n,
14
+ o,
15
+ !1,
16
+ null,
17
+ null
18
+ );
19
+ const d = i.exports;
20
+ export {
21
+ d as default
22
+ };
@@ -0,0 +1,86 @@
1
+ import { defineComponent as N, ref as o, watch as C } from "vue";
2
+ import { useActionsApi as O } from "../../../composables/useActionsApi.js";
3
+ import { useTemplateCategories as j } from "../../../composables/useTemplateCategories.js";
4
+ import { useToaster as x } from "../../../composables/useToaster.js";
5
+ import { useTranslations as E } from "../../../composables/useTranslations.js";
6
+ import H from "../base/ModalWrapper.vue.js";
7
+ import { InMultiSelect as R, InTextInput as V } from "@useinsider/design-system-vue";
8
+ import { useSaveAsTemplate as B } from "../../../composables/useSaveAsTemplate.js";
9
+ import { useTemplateNameValidation as P } from "../../../composables/useTemplateNameValidation.js";
10
+ const X = /* @__PURE__ */ N({
11
+ __name: "SaveTemplateModal",
12
+ props: {
13
+ isOpen: { type: Boolean }
14
+ },
15
+ emits: ["close"],
16
+ setup(I, { emit: u }) {
17
+ const p = I, l = E(), { showToaster: r } = x(), { getCompiledEmail: v } = O(), {
18
+ data: w,
19
+ fetchCategories: f,
20
+ createCategory: d,
21
+ setSelectedCategories: _,
22
+ resetSelection: y,
23
+ getSelectedCategoryIds: g
24
+ } = j(), {
25
+ state: M,
26
+ saveTemplate: T
27
+ } = B(), {
28
+ validationError: b,
29
+ validateTemplateName: n,
30
+ clearValidation: i
31
+ } = P(), t = o(""), a = o(!1), c = o(!1), s = o(""), A = 40, m = () => {
32
+ t.value = "", s.value = "", y(), i();
33
+ }, h = () => {
34
+ m(), u("close");
35
+ }, D = async () => {
36
+ a.value = !0;
37
+ try {
38
+ if (!(await n(t.value)).isValid) {
39
+ a.value = !1;
40
+ return;
41
+ }
42
+ await T({
43
+ name: t.value,
44
+ htmlContent: s.value,
45
+ categoryIds: g.value
46
+ }) && (r({
47
+ message: l(
48
+ "journey-builder.template-saved-successfully",
49
+ { name: t.value }
50
+ ),
51
+ type: "success"
52
+ }), h(), a.value = !1);
53
+ } catch {
54
+ r({
55
+ message: l("journey-builder.template-save-error", { name: t.value }),
56
+ type: "error"
57
+ }), a.value = !1;
58
+ }
59
+ };
60
+ C(t, (e) => {
61
+ e.trim() ? n(e) : i();
62
+ });
63
+ const S = async () => {
64
+ c.value = !0;
65
+ try {
66
+ const { html: e } = await v();
67
+ s.value = e || "";
68
+ } catch {
69
+ s.value = "";
70
+ } finally {
71
+ c.value = !1;
72
+ }
73
+ }, L = async (e) => {
74
+ await d(e);
75
+ };
76
+ return C(() => p.isOpen, async (e) => {
77
+ e ? await Promise.all([
78
+ S(),
79
+ f()
80
+ ]) : m();
81
+ }), { __sfc: !0, props: p, emit: u, trans: l, showToaster: r, getCompiledEmail: v, categoriesData: w, fetchCategories: f, createCategory: d, setSelectedCategories: _, resetSelection: y, getSelectedCategoryIds: g, saveState: M, saveTemplateToLibrary: T, validationError: b, validateTemplateName: n, clearValidation: i, templateNameInput: t, isSaving: a, isLoadingHtml: c, htmlData: s, templateCategorySearchInputLimit: A, resetModalState: m, closeModal: h, saveTemplate: D, fetchHtmlData: S, addOption: L, ModalWrapper: H, InTextInput: V, InMultiSelect: R };
82
+ }
83
+ });
84
+ export {
85
+ X as default
86
+ };
@@ -1,5 +1,4 @@
1
1
  import { GetCompiledEmailOptions, CompiledEmailResult } from '@@/Types/actions-api';
2
2
  export declare const useActionsApi: () => {
3
3
  getCompiledEmail: (options?: GetCompiledEmailOptions) => Promise<CompiledEmailResult>;
4
- activateCustomViewStyles: (isActive?: boolean) => void;
5
4
  };
@@ -1,5 +1,5 @@
1
- const g = () => ({ getCompiledEmail: (t = {}) => new Promise((i, a) => {
2
- const s = { ...{
1
+ const d = () => ({ getCompiledEmail: (t = {}) => new Promise((a, i) => {
2
+ const m = { ...{
3
3
  minimize: !0,
4
4
  utmEntity: {
5
5
  utmSource: "",
@@ -18,21 +18,19 @@ const g = () => ({ getCompiledEmail: (t = {}) => new Promise((i, a) => {
18
18
  forseAmp: !1,
19
19
  resetDataSavedFlag: !1,
20
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,
21
+ }, ...t }, s = {
22
+ callback: (e, l, n, o, c) => {
23
+ e ? i(e) : a({
24
+ html: l,
25
+ ampHtml: n,
26
+ ampErrors: o,
27
27
  displayConditions: c
28
28
  });
29
29
  },
30
- ...s
30
+ ...m
31
31
  };
32
- window.StripoEditorApi.actionsApi.compileEmail(o);
33
- }), activateCustomViewStyles: (t = !0) => {
34
- window.StripoEditorApi.actionsApi.activateCustomViewStyles(t);
35
- } });
32
+ window.StripoEditorApi.actionsApi.compileEmail(s);
33
+ }) });
36
34
  export {
37
- g as useActionsApi
35
+ d as useActionsApi
38
36
  };
@@ -0,0 +1,17 @@
1
+ import type { StripoConfig, RecommendationConfig, RecommendationCampaignUrls } from '@@/Types/save-as-template';
2
+ interface SaveTemplateData {
3
+ name: string;
4
+ htmlContent: string;
5
+ categoryIds: number[];
6
+ css?: string;
7
+ stripoConfig?: StripoConfig;
8
+ recommendationConfigs?: RecommendationConfig;
9
+ recommendationCampaignUrls?: RecommendationCampaignUrls;
10
+ }
11
+ export declare const useSaveAsTemplate: () => {
12
+ state: {
13
+ saving: boolean;
14
+ };
15
+ saveTemplate: (data: SaveTemplateData) => Promise<boolean>;
16
+ };
17
+ export {};
@@ -0,0 +1,44 @@
1
+ import { useHttp as o } from "./useHttp.js";
2
+ import { base64EncodeWithSpecialChars as n } from "../utils/base64.js";
3
+ import { reactive as a } from "vue";
4
+ const l = () => {
5
+ const { post: i } = o(), s = a({
6
+ saving: !1
7
+ });
8
+ return {
9
+ state: s,
10
+ saveTemplate: async (e) => {
11
+ s.saving = !0;
12
+ try {
13
+ const t = {
14
+ name: e.name,
15
+ categories: e.categoryIds,
16
+ productId: 60,
17
+ editorType: 2,
18
+ content: n(e.htmlContent),
19
+ unsubscriptionPreferencePages: [],
20
+ unsubscriptionPreferencePageStatus: !1
21
+ };
22
+ e.css && (t.css = n(e.css)), e.stripoConfig && (t.stripoConfig = n(
23
+ JSON.stringify(e.stripoConfig)
24
+ )), e.recommendationConfigs && (t.recommendationConfigs = n(
25
+ JSON.stringify(e.recommendationConfigs)
26
+ )), e.recommendationCampaignUrls && (t.recommendationCampaignUrls = n(
27
+ JSON.stringify(e.recommendationCampaignUrls)
28
+ ));
29
+ const r = await i(
30
+ "/newsletter/template-library/create-template",
31
+ t
32
+ );
33
+ return !(!r.data || r.data.type === "error");
34
+ } catch {
35
+ return !1;
36
+ } finally {
37
+ s.saving = !1;
38
+ }
39
+ }
40
+ };
41
+ };
42
+ export {
43
+ l as useSaveAsTemplate
44
+ };